pptx-react-viewer 1.17.1 → 1.18.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 (120) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +1 -1
  3. package/dist/{Model3DScene-YA4F63DT.js → Model3DScene-GVWQ6SOM.js} +3 -3
  4. package/dist/Model3DScene-GVWQ6SOM.js.br +0 -0
  5. package/dist/Model3DScene-GVWQ6SOM.js.gz +0 -0
  6. package/dist/{Model3DScene-QHDYQXL2.mjs → Model3DScene-JGVLIDLD.mjs} +2 -2
  7. package/dist/Model3DScene-JGVLIDLD.mjs.br +0 -0
  8. package/dist/Model3DScene-JGVLIDLD.mjs.gz +0 -0
  9. package/dist/{SurfaceChart3DScene-GUAS2NWQ.mjs → SurfaceChart3DScene-DBWSDSKI.mjs} +2 -2
  10. package/dist/SurfaceChart3DScene-DBWSDSKI.mjs.br +0 -0
  11. package/dist/SurfaceChart3DScene-DBWSDSKI.mjs.gz +0 -0
  12. package/dist/{SurfaceChart3DScene-TGNJHTJQ.js → SurfaceChart3DScene-ZOTOHOIE.js} +3 -3
  13. package/dist/SurfaceChart3DScene-ZOTOHOIE.js.br +0 -0
  14. package/dist/SurfaceChart3DScene-ZOTOHOIE.js.gz +0 -0
  15. package/dist/{chunk-WH7YXV3I.js → chunk-73ST7AC6.js} +2153 -1572
  16. package/dist/chunk-73ST7AC6.js.br +0 -0
  17. package/dist/chunk-73ST7AC6.js.gz +0 -0
  18. package/dist/{chunk-IZXN663G.js → chunk-AALZCSY4.js} +7 -0
  19. package/dist/chunk-AALZCSY4.js.br +0 -0
  20. package/dist/chunk-AALZCSY4.js.gz +0 -0
  21. package/dist/{chunk-MGLRKGCH.js → chunk-EXDUEXTO.js} +26101 -15360
  22. package/dist/chunk-EXDUEXTO.js.br +0 -0
  23. package/dist/chunk-EXDUEXTO.js.gz +0 -0
  24. package/dist/{chunk-JWS3RQKN.js → chunk-HBXPK572.js} +584 -144
  25. package/dist/chunk-HBXPK572.js.br +0 -0
  26. package/dist/chunk-HBXPK572.js.gz +0 -0
  27. package/dist/{chunk-G22EWPLH.mjs → chunk-HHTZQHKZ.mjs} +532 -119
  28. package/dist/chunk-HHTZQHKZ.mjs.br +0 -0
  29. package/dist/chunk-HHTZQHKZ.mjs.gz +0 -0
  30. package/dist/{chunk-SXCO5HHN.js → chunk-JDRC3PSY.js} +655 -491
  31. package/dist/chunk-JDRC3PSY.js.br +0 -0
  32. package/dist/chunk-JDRC3PSY.js.gz +0 -0
  33. package/dist/{chunk-PCQH2UBR.mjs → chunk-KMLIWCNL.mjs} +1345 -764
  34. package/dist/chunk-KMLIWCNL.mjs.br +0 -0
  35. package/dist/chunk-KMLIWCNL.mjs.gz +0 -0
  36. package/dist/{chunk-5CD34U2V.mjs → chunk-RIRK64DM.mjs} +7 -0
  37. package/dist/chunk-RIRK64DM.mjs.br +0 -0
  38. package/dist/chunk-RIRK64DM.mjs.gz +0 -0
  39. package/dist/{chunk-XRYREYXC.mjs → chunk-SBNTEQUA.mjs} +26062 -15360
  40. package/dist/chunk-SBNTEQUA.mjs.br +0 -0
  41. package/dist/chunk-SBNTEQUA.mjs.gz +0 -0
  42. package/dist/{chunk-HN7CPQUG.mjs → chunk-Z4MDCPAY.mjs} +223 -59
  43. package/dist/chunk-Z4MDCPAY.mjs.br +0 -0
  44. package/dist/chunk-Z4MDCPAY.mjs.gz +0 -0
  45. package/dist/{dist-2ZAH7U6U.js → dist-KRRXYUGI.js} +663 -507
  46. package/dist/dist-KRRXYUGI.js.br +0 -0
  47. package/dist/dist-KRRXYUGI.js.gz +0 -0
  48. package/dist/dist-N6PAPXK6.mjs +2 -0
  49. package/dist/dist-N6PAPXK6.mjs.br +0 -0
  50. package/dist/dist-N6PAPXK6.mjs.gz +0 -0
  51. package/dist/hooks-unstable.d.ts +484 -117
  52. package/dist/hooks-unstable.d.ts.map +1 -1
  53. package/dist/hooks-unstable.js +75 -75
  54. package/dist/hooks-unstable.js.br +0 -0
  55. package/dist/hooks-unstable.js.gz +0 -0
  56. package/dist/hooks-unstable.mjs +4 -4
  57. package/dist/hooks-unstable.mjs.br +0 -0
  58. package/dist/hooks-unstable.mjs.gz +0 -0
  59. package/dist/i18n.js +3 -3
  60. package/dist/i18n.js.br +0 -0
  61. package/dist/i18n.js.gz +0 -0
  62. package/dist/i18n.mjs +1 -1
  63. package/dist/i18n.mjs.br +0 -0
  64. package/dist/i18n.mjs.gz +0 -0
  65. package/dist/{index-XGt7MZpa.d.ts → index-DmHVR48M.d.ts} +25 -3
  66. package/dist/index-DmHVR48M.d.ts.map +1 -0
  67. package/dist/index.d.ts +412 -117
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +19 -19
  70. package/dist/index.js.br +0 -0
  71. package/dist/index.js.gz +0 -0
  72. package/dist/index.mjs +5 -5
  73. package/dist/index.mjs.br +0 -0
  74. package/dist/index.mjs.gz +0 -0
  75. package/dist/pptx-viewer.css +1 -1
  76. package/dist/pptx-viewer.css.br +0 -0
  77. package/dist/pptx-viewer.css.gz +0 -0
  78. package/dist/viewer/index.d.ts +438 -121
  79. package/dist/viewer/index.d.ts.map +1 -1
  80. package/dist/viewer/index.js +24 -20
  81. package/dist/viewer/index.js.br +0 -0
  82. package/dist/viewer/index.js.gz +0 -0
  83. package/dist/viewer/index.mjs +5 -5
  84. package/dist/viewer/index.mjs.br +0 -0
  85. package/dist/viewer/index.mjs.gz +0 -0
  86. package/package.json +1 -1
  87. package/dist/Model3DScene-QHDYQXL2.mjs.br +0 -0
  88. package/dist/Model3DScene-QHDYQXL2.mjs.gz +0 -0
  89. package/dist/Model3DScene-YA4F63DT.js.br +0 -0
  90. package/dist/Model3DScene-YA4F63DT.js.gz +0 -0
  91. package/dist/SurfaceChart3DScene-GUAS2NWQ.mjs.br +0 -0
  92. package/dist/SurfaceChart3DScene-GUAS2NWQ.mjs.gz +0 -0
  93. package/dist/SurfaceChart3DScene-TGNJHTJQ.js.br +0 -0
  94. package/dist/SurfaceChart3DScene-TGNJHTJQ.js.gz +0 -0
  95. package/dist/chunk-5CD34U2V.mjs.br +0 -0
  96. package/dist/chunk-5CD34U2V.mjs.gz +0 -0
  97. package/dist/chunk-G22EWPLH.mjs.br +0 -0
  98. package/dist/chunk-G22EWPLH.mjs.gz +0 -0
  99. package/dist/chunk-HN7CPQUG.mjs.br +0 -0
  100. package/dist/chunk-HN7CPQUG.mjs.gz +0 -0
  101. package/dist/chunk-IZXN663G.js.br +0 -0
  102. package/dist/chunk-IZXN663G.js.gz +0 -0
  103. package/dist/chunk-JWS3RQKN.js.br +0 -0
  104. package/dist/chunk-JWS3RQKN.js.gz +0 -0
  105. package/dist/chunk-MGLRKGCH.js.br +0 -0
  106. package/dist/chunk-MGLRKGCH.js.gz +0 -0
  107. package/dist/chunk-PCQH2UBR.mjs.br +0 -0
  108. package/dist/chunk-PCQH2UBR.mjs.gz +0 -0
  109. package/dist/chunk-SXCO5HHN.js.br +0 -0
  110. package/dist/chunk-SXCO5HHN.js.gz +0 -0
  111. package/dist/chunk-WH7YXV3I.js.br +0 -0
  112. package/dist/chunk-WH7YXV3I.js.gz +0 -0
  113. package/dist/chunk-XRYREYXC.mjs.br +0 -0
  114. package/dist/chunk-XRYREYXC.mjs.gz +0 -0
  115. package/dist/dist-2ZAH7U6U.js.br +0 -0
  116. package/dist/dist-2ZAH7U6U.js.gz +0 -0
  117. package/dist/dist-MXDC6YTS.mjs +0 -2
  118. package/dist/dist-MXDC6YTS.mjs.br +0 -0
  119. package/dist/dist-MXDC6YTS.mjs.gz +0 -0
  120. package/dist/index-XGt7MZpa.d.ts.map +0 -1
@@ -679,6 +679,10 @@ interface Text3DStyle {
679
679
  interface Pptx3DScene {
680
680
  /** Camera preset type, e.g. "orthographicFront", "perspectiveFront". */
681
681
  cameraPreset?: string;
682
+ /** Camera field of view in 1/60000 degrees (`a:camera/@fov`). */
683
+ cameraFieldOfView?: number;
684
+ /** Camera zoom as an OOXML percentage fraction (`a:camera/@zoom`, 1 = 100%). */
685
+ cameraZoom?: number;
682
686
  /** Camera rotation around X axis in 1/60000 degrees. */
683
687
  cameraRotX?: number;
684
688
  /** Camera rotation around Y axis in 1/60000 degrees. */
@@ -689,6 +693,12 @@ interface Pptx3DScene {
689
693
  lightRigType?: string;
690
694
  /** Light rig direction, e.g. "t", "b", "l", "r", "tl". */
691
695
  lightRigDirection?: string;
696
+ /** Light-rig rotation latitude in 1/60000 degrees. */
697
+ lightRigRotX?: number;
698
+ /** Light-rig rotation longitude in 1/60000 degrees. */
699
+ lightRigRotY?: number;
700
+ /** Light-rig rotation revolution in 1/60000 degrees. */
701
+ lightRigRotZ?: number;
692
702
  /** Whether a 3D backdrop plane is present (`a:backdrop`). */
693
703
  hasBackdrop?: boolean;
694
704
  /** Backdrop plane anchor X in EMU. */
@@ -697,6 +707,18 @@ interface Pptx3DScene {
697
707
  backdropAnchorY?: number;
698
708
  /** Backdrop plane anchor Z in EMU. */
699
709
  backdropAnchorZ?: number;
710
+ /** Backdrop normal vector X component. */
711
+ backdropNormalX?: number;
712
+ /** Backdrop normal vector Y component. */
713
+ backdropNormalY?: number;
714
+ /** Backdrop normal vector Z component. */
715
+ backdropNormalZ?: number;
716
+ /** Backdrop up vector X component. */
717
+ backdropUpX?: number;
718
+ /** Backdrop up vector Y component. */
719
+ backdropUpY?: number;
720
+ /** Backdrop up vector Z component. */
721
+ backdropUpZ?: number;
700
722
  }
701
723
  /**
702
724
  * 3D shape extrusion/bevel from `a:sp3d`.
@@ -816,9 +838,13 @@ interface ShapeStyle {
816
838
  */
817
839
  fillColorXml?: XmlObject;
818
840
  fillGradient?: string;
841
+ /** Original `gradFill` XML retained for unknown-child and extension round-tripping. */
842
+ fillGradientXml?: XmlObject;
819
843
  fillMode?: 'solid' | 'gradient' | 'pattern' | 'none' | 'image' | 'theme' | 'group';
820
844
  fillPatternPreset?: string;
821
845
  fillPatternBackgroundColor?: string;
846
+ /** Original `pattFill` XML retained for unknown-child round-tripping. */
847
+ fillPatternXml?: XmlObject;
822
848
  /** Raw XML node for pattern fill foreground colour (preserves color transforms). */
823
849
  fillPatternFgClrXml?: XmlObject;
824
850
  /** Raw XML node for pattern fill background colour (preserves color transforms). */
@@ -884,6 +910,14 @@ interface ShapeStyle {
884
910
  /** Pen line alignment (`a:ln/@algn`): `ctr` (centre, default) or `in` (inside). */
885
911
  lineAlignment?: 'ctr' | 'in';
886
912
  shadowColor?: string;
913
+ /** Preserved source `a:effectLst`, including unknown effects and extensions. */
914
+ effectListXml?: XmlObject;
915
+ /** Original outer-shadow node used for lossless surgical updates. */
916
+ outerShadowXml?: XmlObject;
917
+ /** Resolved source shadow colour used to detect colour edits. */
918
+ outerShadowOriginalColor?: string;
919
+ /** Source shadow opacity used to detect alpha edits. */
920
+ outerShadowOriginalOpacity?: number;
887
921
  shadowBlur?: number;
888
922
  shadowOffsetX?: number;
889
923
  shadowOffsetY?: number;
@@ -927,11 +961,23 @@ interface ShapeStyle {
927
961
  /** Multiple shadow layers (for advanced effects). */
928
962
  shadows?: ShadowEffect[];
929
963
  glowColor?: string;
964
+ /** Original glow node used for lossless surgical updates. */
965
+ glowXml?: XmlObject;
966
+ /** Resolved source glow colour used to detect colour edits. */
967
+ glowOriginalColor?: string;
968
+ /** Source glow opacity used to detect alpha edits. */
969
+ glowOriginalOpacity?: number;
930
970
  glowRadius?: number;
931
971
  glowOpacity?: number;
932
972
  softEdgeRadius?: number;
933
973
  /** Inner shadow colour (`a:innerShdw`). */
934
974
  innerShadowColor?: string;
975
+ /** Original inner-shadow node used for lossless surgical updates. */
976
+ innerShadowXml?: XmlObject;
977
+ /** Resolved source inner-shadow colour used to detect colour edits. */
978
+ innerShadowOriginalColor?: string;
979
+ /** Source inner-shadow opacity used to detect alpha edits. */
980
+ innerShadowOriginalOpacity?: number;
935
981
  /** Inner shadow opacity (0-1). */
936
982
  innerShadowOpacity?: number;
937
983
  /** Inner shadow blur radius in px. */
@@ -940,8 +986,12 @@ interface ShapeStyle {
940
986
  innerShadowOffsetX?: number;
941
987
  /** Inner shadow vertical offset in px. */
942
988
  innerShadowOffsetY?: number;
989
+ /** Original soft-edge node, including vendor attributes and extensions. */
990
+ softEdgeXml?: XmlObject;
943
991
  /** Reflection effect — distance from shape bottom in px. */
944
992
  reflectionBlurRadius?: number;
993
+ /** Original reflection node, including vendor attributes and extensions. */
994
+ reflectionXml?: XmlObject;
945
995
  /** Reflection start opacity (0-1). */
946
996
  reflectionStartOpacity?: number;
947
997
  /** Reflection end opacity (0-1). */
@@ -1437,6 +1487,8 @@ interface TextStyle {
1437
1487
  text3d?: Text3DStyle;
1438
1488
  /** 3D scene (camera + light rig) settings on the text body (`a:bodyPr/a:scene3d`). */
1439
1489
  textBodyScene3d?: Pptx3DScene;
1490
+ /** Raw `a:scene3d` subtree used to preserve extensions and unmodelled children. */
1491
+ textBodyScene3dXml?: XmlObject;
1440
1492
  /**
1441
1493
  * Raw `<a:extLst>` subtree captured from `<a:bodyPr>`. Preserved verbatim so
1442
1494
  * authored extensions (e.g. content placeholders, custom application data)
@@ -1813,12 +1865,32 @@ interface PlaceholderTextLevelStyle {
1813
1865
  spaceAfter?: number;
1814
1866
  }
1815
1867
 
1868
+ /** Tick-mark placement from ChartML `ST_TickMark`. */
1869
+ type PptxChartTickMark = 'cross' | 'in' | 'none' | 'out';
1870
+ /** Typed axis tick and category/date label controls. */
1871
+ interface PptxChartAxisLabelFormatting {
1872
+ /** Primary and secondary tick-mark placement. */
1873
+ majorTickMark?: PptxChartTickMark;
1874
+ minorTickMark?: PptxChartTickMark;
1875
+ /** Tick-label position from ChartML `ST_TickLblPos`. */
1876
+ tickLblPos?: 'high' | 'low' | 'nextTo' | 'none';
1877
+ /** Automatic category/date axis behavior (`c:auto`). */
1878
+ auto?: boolean;
1879
+ /** Category-axis label alignment (`c:lblAlgn`). */
1880
+ labelAlignment?: 'ctr' | 'l' | 'r';
1881
+ /** Category/date label distance, from 0 through 1000 percent. */
1882
+ labelOffset?: number;
1883
+ /** Suppress multi-level category labels (`c:noMultiLvlLbl`). */
1884
+ noMultiLevelLabels?: boolean;
1885
+ }
1886
+
1816
1887
  /**
1817
1888
  * Chart types: chart categories, series data, style metadata, data tables,
1818
1889
  * trendlines, error bars, and the composite `PptxChartData`.
1819
1890
  *
1820
1891
  * @module pptx-types/chart
1821
1892
  */
1893
+
1822
1894
  /**
1823
1895
  * Supported chart type discriminators.
1824
1896
  *
@@ -1855,6 +1927,7 @@ type PptxChartTrendlineType = 'linear' | 'exponential' | 'logarithmic' | 'polyno
1855
1927
  */
1856
1928
  interface PptxChartTrendline {
1857
1929
  trendlineType: PptxChartTrendlineType;
1930
+ name?: string;
1858
1931
  order?: number;
1859
1932
  period?: number;
1860
1933
  forward?: number;
@@ -1863,6 +1936,13 @@ interface PptxChartTrendline {
1863
1936
  displayRSq?: boolean;
1864
1937
  displayEq?: boolean;
1865
1938
  color?: string;
1939
+ label?: PptxChartTrendlineLabel | null;
1940
+ }
1941
+ /** Typed, commonly edited properties of `c:trendlineLbl`. */
1942
+ interface PptxChartTrendlineLabel {
1943
+ layout?: PptxChartManualLayout;
1944
+ numberFormatCode?: string;
1945
+ sourceLinked?: boolean;
1866
1946
  }
1867
1947
  /** Error-bar direction axis. */
1868
1948
  type PptxChartErrBarDir = 'x' | 'y';
@@ -1899,6 +1979,8 @@ interface PptxChartErrBars {
1899
1979
  val?: number;
1900
1980
  customPlus?: number[];
1901
1981
  customMinus?: number[];
1982
+ noEndCap?: boolean;
1983
+ color?: string;
1902
1984
  }
1903
1985
  /**
1904
1986
  * Visibility flags for the chart data table (axes + legend keys).
@@ -1948,6 +2030,13 @@ interface PptxChartShapeProps {
1948
2030
  /** Line dash style (a:prstDash/@val), e.g. 'solid', 'dash', 'dot', 'lgDash'. */
1949
2031
  strokeDashStyle?: string;
1950
2032
  }
2033
+ /** Up/down bar formatting on line and stock charts (`c:upDownBars`). */
2034
+ interface PptxChartUpDownBars {
2035
+ /** Gap between bars as a percentage, constrained to 0 through 500. */
2036
+ gapWidth?: number;
2037
+ upBars?: PptxChartShapeProps;
2038
+ downBars?: PptxChartShapeProps;
2039
+ }
1951
2040
  /** Marker appearance on a chart series or data point. */
1952
2041
  interface PptxChartMarker {
1953
2042
  symbol: PptxChartMarkerSymbol;
@@ -1962,25 +2051,40 @@ interface PptxChartDataPoint {
1962
2051
  invertIfNegative?: boolean;
1963
2052
  marker?: PptxChartMarker;
1964
2053
  }
2054
+ /** Schema values accepted by `c:dLblPos`. */
2055
+ type PptxChartDataLabelPosition = 'bestFit' | 'b' | 'ctr' | 'inBase' | 'inEnd' | 'l' | 'outEnd' | 'r' | 't';
1965
2056
  /** Individual data label override (c:dLbl). */
1966
2057
  interface PptxChartDataLabel {
1967
2058
  idx: number;
2059
+ /** Suppress this data point's automatically generated label. */
2060
+ deleted?: boolean;
1968
2061
  showVal?: boolean;
1969
2062
  showCatName?: boolean;
1970
2063
  showSerName?: boolean;
1971
2064
  showPercent?: boolean;
1972
2065
  showLegendKey?: boolean;
1973
2066
  showBubbleSize?: boolean;
1974
- position?: string;
2067
+ position?: PptxChartDataLabelPosition;
1975
2068
  text?: string;
2069
+ separator?: string;
2070
+ showLeaderLines?: boolean;
1976
2071
  }
1977
2072
  /** Axis number format. */
1978
2073
  interface PptxChartAxisNumFmt {
1979
2074
  formatCode: string;
1980
2075
  sourceLinked?: boolean;
1981
2076
  }
2077
+ /** Typed contents of a value-axis display-unit label (`c:dispUnitsLbl`). */
2078
+ interface PptxChartDisplayUnitsLabel {
2079
+ /** Literal label text. Omit to preserve the source text subtree. */
2080
+ text?: string;
2081
+ /** Manual label placement. `null` removes only the manual layout. */
2082
+ layout?: PptxChartManualLayout | null;
2083
+ /** Label shape formatting. `null` removes `c:spPr`. */
2084
+ spPr?: PptxChartShapeProps | null;
2085
+ }
1982
2086
  /** Axis formatting for category, value, or date axes. */
1983
- interface PptxChartAxisFormatting {
2087
+ interface PptxChartAxisFormatting extends PptxChartAxisLabelFormatting {
1984
2088
  axisType: 'catAx' | 'valAx' | 'dateAx' | 'serAx';
1985
2089
  /** Axis position: "b" (bottom), "l" (left), "r" (right), "t" (top). */
1986
2090
  axPos?: 'b' | 'l' | 'r' | 't';
@@ -2014,8 +2118,12 @@ interface PptxChartAxisFormatting {
2014
2118
  displayUnits?: 'hundreds' | 'thousands' | 'tenThousands' | 'hundredThousands' | 'millions' | 'tenMillions' | 'hundredMillions' | 'billions' | 'trillions' | 'custom';
2015
2119
  /** Custom display unit divisor value (c:dispUnits/c:custUnit/@val). Only used when displayUnits is 'custom'. */
2016
2120
  displayUnitsValue?: number;
2017
- /** Display units label text (c:dispUnits/c:dispUnitsLbl). Overrides the built-in default label when present. */
2018
- displayUnitsLabel?: string;
2121
+ /**
2122
+ * Display-unit label contents (`c:dispUnits/c:dispUnitsLbl`). A string is
2123
+ * retained as a compatibility shorthand for `{ text: string }`; `null`
2124
+ * explicitly removes the label.
2125
+ */
2126
+ displayUnitsLabel?: string | PptxChartDisplayUnitsLabel | null;
2019
2127
  /** Whether logarithmic scaling is enabled (presence of c:scaling/c:logBase). */
2020
2128
  logScale?: boolean;
2021
2129
  /** Logarithmic base value (c:scaling/c:logBase/@val), typically 10 or e. */
@@ -2024,8 +2132,6 @@ interface PptxChartAxisFormatting {
2024
2132
  majorUnit?: number;
2025
2133
  /** Minor-unit interval between secondary tick marks (c:minorUnit/@val). */
2026
2134
  minorUnit?: number;
2027
- /** Tick-label position (c:tickLblPos/@val): 'high', 'low', 'nextTo', or 'none'. */
2028
- tickLblPos?: 'high' | 'low' | 'nextTo' | 'none';
2029
2135
  }
2030
2136
  /** 3D wall or floor element formatting. */
2031
2137
  interface PptxChart3DSurface {
@@ -2084,12 +2190,32 @@ interface PptxChartDataLabelOptions {
2084
2190
  showPercent?: boolean;
2085
2191
  /** Show the legend key swatch (`c:showLegendKey`). */
2086
2192
  showLegendKey?: boolean;
2193
+ /** Show bubble size (`c:showBubbleSize`). */
2194
+ showBubbleSize?: boolean;
2195
+ /** Text placed between combined label components (`c:separator`). */
2196
+ separator?: string;
2197
+ /** Show leader lines where supported (`c:showLeaderLines`). */
2198
+ showLeaderLines?: boolean;
2087
2199
  /**
2088
2200
  * Label position (`c:dLblPos`). Valid values depend on the chart type
2089
2201
  * (`ctr`, `inEnd`, `inBase`, `outEnd`, `bestFit`, `l`, `r`, `t`, `b`).
2090
2202
  * Omit to let PowerPoint use the type default.
2091
2203
  */
2092
- position?: 'ctr' | 'inEnd' | 'inBase' | 'outEnd' | 'bestFit' | 'l' | 'r' | 't' | 'b';
2204
+ position?: PptxChartDataLabelPosition;
2205
+ }
2206
+ /** Typed text defaults for a single chart legend entry. */
2207
+ interface PptxChartLegendTextStyle {
2208
+ fontFamily?: string;
2209
+ fontSize?: number;
2210
+ bold?: boolean;
2211
+ italic?: boolean;
2212
+ color?: string;
2213
+ }
2214
+ /** Per-series legend entry override (`c:legendEntry`). */
2215
+ interface PptxChartLegendEntry {
2216
+ index: number;
2217
+ deleted?: boolean;
2218
+ textStyle?: PptxChartLegendTextStyle;
2093
2219
  }
2094
2220
  /**
2095
2221
  * Style / formatting metadata for a chart.
@@ -2112,6 +2238,8 @@ interface PptxChartStyle {
2112
2238
  hasLegend?: boolean;
2113
2239
  /** Legend position (t, b, l, r, tr). */
2114
2240
  legendPosition?: string;
2241
+ /** Per-series visibility and text-style overrides. */
2242
+ legendEntries?: PptxChartLegendEntry[];
2115
2243
  /** Whether the chart has a title. */
2116
2244
  hasTitle?: boolean;
2117
2245
  /** Whether gridlines are visible. */
@@ -2172,6 +2300,14 @@ interface PptxChartOfPieOptions {
2172
2300
  serLines?: boolean;
2173
2301
  gapWidth?: number;
2174
2302
  }
2303
+ /** Classic `c:bubbleChart` options from CT_BubbleChart. */
2304
+ interface PptxBubbleChartOptions {
2305
+ bubble3D?: boolean;
2306
+ /** Bubble diameter scale in percent, constrained to 0 through 300. */
2307
+ bubbleScale?: number;
2308
+ showNegativeBubbles?: boolean;
2309
+ sizeRepresents?: 'area' | 'w';
2310
+ }
2175
2311
  /**
2176
2312
  * 3D viewing parameters for a chart (`c:view3D`, ECMA-376 §21.2.2.228 /
2177
2313
  * CT_View3D).
@@ -2212,6 +2348,27 @@ interface PptxChartChrome {
2212
2348
  dispBlanksAs?: 'gap' | 'zero' | 'span';
2213
2349
  showDLblsOverMax?: boolean;
2214
2350
  }
2351
+ /** Manual chart placement from `c:layout/c:manualLayout` (CT_ManualLayout). */
2352
+ interface PptxChartManualLayout {
2353
+ layoutTarget?: 'inner' | 'outer';
2354
+ xMode?: 'edge' | 'factor';
2355
+ yMode?: 'edge' | 'factor';
2356
+ widthMode?: 'edge' | 'factor';
2357
+ heightMode?: 'edge' | 'factor';
2358
+ x?: number;
2359
+ y?: number;
2360
+ width?: number;
2361
+ height?: number;
2362
+ }
2363
+ /**
2364
+ * Typed manual layouts for chart regions that accept `c:layout`.
2365
+ * A `null` region removes its manual layout without removing extensions.
2366
+ */
2367
+ interface PptxChartLayouts {
2368
+ title?: PptxChartManualLayout | null;
2369
+ plotArea?: PptxChartManualLayout | null;
2370
+ legend?: PptxChartManualLayout | null;
2371
+ }
2215
2372
  /** Parsed data extracted from an embedded xlsx workbook. */
2216
2373
  interface PptxEmbeddedWorkbookData {
2217
2374
  /** Category labels from the first column/row. */
@@ -2253,9 +2410,12 @@ interface PptxChartData {
2253
2410
  chartPartPath?: string;
2254
2411
  /** Internal: relationship ID linking the graphic frame to the chart part. */
2255
2412
  chartRelationshipId?: string;
2256
- dataTable?: PptxChartDataTable;
2413
+ /** `null` explicitly removes an existing ChartML data table. */
2414
+ dataTable?: PptxChartDataTable | null;
2257
2415
  dropLines?: PptxChartLineStyle;
2258
2416
  hiLowLines?: PptxChartLineStyle;
2417
+ /** `null` explicitly removes an existing up/down-bars container. */
2418
+ upDownBars?: PptxChartUpDownBars | null;
2259
2419
  axes?: PptxChartAxisFormatting[];
2260
2420
  floor?: PptxChart3DSurface;
2261
2421
  sideWall?: PptxChart3DSurface;
@@ -2313,6 +2473,8 @@ interface PptxChartData {
2313
2473
  * `ofPieChart` element can be re-emitted on save with full fidelity.
2314
2474
  */
2315
2475
  ofPieOptions?: PptxChartOfPieOptions;
2476
+ /** Classic bubble-chart display options (`c:bubbleChart`). */
2477
+ bubbleOptions?: PptxBubbleChartOptions;
2316
2478
  /**
2317
2479
  * 3D viewing parameters (`c:view3D`, CT_View3D).
2318
2480
  *
@@ -2328,6 +2490,8 @@ interface PptxChartData {
2328
2490
  * source data, so absence does not produce empty `<c:…/>` placeholders.
2329
2491
  */
2330
2492
  chartChrome?: PptxChartChrome;
2493
+ /** Editable manual placement for the title, plot area, and legend. */
2494
+ layouts?: PptxChartLayouts;
2331
2495
  /**
2332
2496
  * Raw `c:userShapes` XML subtree (a drawing tree) preserved verbatim.
2333
2497
  *
@@ -2353,107 +2517,55 @@ interface PptxChartData {
2353
2517
  clrMapOvr?: Record<string, string>;
2354
2518
  }
2355
2519
 
2356
- /**
2357
- * Image types: effects, crop shapes, and properties shared by image/picture
2358
- * elements.
2359
- *
2360
- * @module pptx-types/image
2361
- */
2362
- /**
2363
- * Blend mode for `a:blend` container nodes inside an `a:effectDag` (CT_BlendEffect).
2364
- *
2365
- * Per ECMA-376 §20.1.8.10, valid values are: `darken`, `lighten`, `mult`,
2366
- * `over`, `screen`.
2367
- */
2368
2520
  type EffectDagBlendMode = 'darken' | 'lighten' | 'mult' | 'over' | 'screen';
2369
- /**
2370
- * Container node kind inside an `a:effectDag` (CT_EffectContainer @type).
2371
- *
2372
- * Per ECMA-376 §20.1.8.20, `sib` (sibling) draws each child independently
2373
- * over the same source; `tree` (tree) chains effects so each sees the output
2374
- * of its siblings.
2375
- */
2376
2521
  type EffectDagContainerType = 'sib' | 'tree';
2377
- /**
2378
- * Typed model of the directed-acyclic effect graph stored in `a:effectDag`.
2379
- *
2380
- * The four "structural" container/transform nodes are typed; any other inner
2381
- * effect (e.g. `a:outerShdw`, `a:glow`, `a:alphaInv`) is preserved verbatim
2382
- * as a raw XML object via the {@link EffectDagRawLeaf} variant so we never
2383
- * have to recurse into the full effect taxonomy.
2384
- *
2385
- * @example
2386
- * ```ts
2387
- * // <a:effectDag>
2388
- * // <a:cont type="sib">
2389
- * // <a:blend blend="mult"><a:cont type="tree" /></a:blend>
2390
- * // </a:cont>
2391
- * // </a:effectDag>
2392
- * const dag: EffectDagContainer = {
2393
- * kind: "cont",
2394
- * type: "sib",
2395
- * children: [{
2396
- * kind: "blend",
2397
- * mode: "mult",
2398
- * container: { kind: "cont", type: "tree", children: [] },
2399
- * }],
2400
- * };
2401
- * ```
2402
- */
2403
- type EffectDagNode = EffectDagContainer | EffectDagBlend | EffectDagXfrm | EffectDagRelOff | EffectDagRawLeaf;
2404
- /** `a:cont` — CT_EffectContainer. Recursive; mirrors the top-level `effectDag`. */
2522
+ type EffectDagNode = EffectDagContainer | EffectDagBlend | EffectDagXfrm | EffectDagRelOff | EffectDagBlur | EffectDagPresetShadow | EffectDagRawLeaf;
2405
2523
  interface EffectDagContainer {
2406
2524
  kind: 'cont';
2407
- /** `@type` — `sib` or `tree`. */
2408
2525
  type: EffectDagContainerType;
2409
- /** Optional `@name` attribute. */
2410
2526
  name?: string;
2411
- /** Ordered children. */
2412
2527
  children: EffectDagNode[];
2413
2528
  }
2414
- /** `a:blend` — CT_BlendEffect. Always wraps a single `a:cont` child. */
2415
2529
  interface EffectDagBlend {
2416
2530
  kind: 'blend';
2417
- /** `@blend` attribute. */
2418
2531
  mode: EffectDagBlendMode;
2419
- /** Required child `a:cont` container. */
2420
2532
  container: EffectDagContainer;
2421
2533
  }
2422
- /** `a:xfrmEffect` — CT_TransformEffect. Affine transform with no children. */
2423
2534
  interface EffectDagXfrm {
2424
2535
  kind: 'xfrmEffect';
2425
- /** Horizontal scale, percentage * 1000 (e.g. 100000 = 100%). */
2426
2536
  sx?: number;
2427
- /** Vertical scale, percentage * 1000. */
2428
2537
  sy?: number;
2429
- /** Horizontal skew, degrees * 60000. */
2430
2538
  kx?: number;
2431
- /** Vertical skew, degrees * 60000. */
2432
2539
  ky?: number;
2433
- /** Horizontal translation in EMU. */
2434
2540
  tx?: number;
2435
- /** Vertical translation in EMU. */
2436
2541
  ty?: number;
2437
2542
  }
2438
- /** `a:relOff` — CT_RelativeOffsetEffect. Relative offset in 1000ths of a percent. */
2439
2543
  interface EffectDagRelOff {
2440
2544
  kind: 'relOff';
2441
- /** Horizontal offset, percentage * 1000. */
2442
2545
  tx?: number;
2443
- /** Vertical offset, percentage * 1000. */
2444
2546
  ty?: number;
2445
2547
  }
2446
- /**
2447
- * Catch-all leaf preserving any non-container effect (e.g. `a:outerShdw`,
2448
- * `a:glow`, `a:alphaInv`) as raw XML. Re-emitted verbatim on save.
2449
- */
2548
+ /** Typed CT_BlurEffect with its original payload retained for lossless edits. */
2549
+ interface EffectDagBlur {
2550
+ kind: 'blur';
2551
+ radiusEmu?: number;
2552
+ grow?: boolean;
2553
+ xml: XmlObject;
2554
+ }
2555
+ /** Typed CT_PresetShadowEffect with colour and extension XML retained verbatim. */
2556
+ interface EffectDagPresetShadow {
2557
+ kind: 'prstShdw';
2558
+ preset?: `shdw${number}`;
2559
+ distanceEmu?: number;
2560
+ direction?: number;
2561
+ xml: XmlObject;
2562
+ }
2450
2563
  interface EffectDagRawLeaf {
2451
2564
  kind: 'raw';
2452
- /** Local element name without the `a:` prefix (e.g. `outerShdw`, `glow`). */
2453
2565
  tag: string;
2454
- /** Raw XML object captured at load — preserved verbatim on save. */
2455
2566
  xml: Record<string, unknown>;
2456
2567
  }
2568
+
2457
2569
  /**
2458
2570
  * Image recolour/adjustment properties parsed from blip extensions.
2459
2571
  *
@@ -2680,6 +2792,11 @@ declare module "./index" {
2680
2792
  * ```
2681
2793
  */
2682
2794
  type PptxMediaType = 'video' | 'audio' | 'unknown';
2795
+ type PptxMediaReferenceKind = 'audioCd' | 'wavAudioFile' | 'audioFile' | 'videoFile' | 'quickTimeFile';
2796
+ interface PptxAudioCdPosition {
2797
+ track: number;
2798
+ time?: number;
2799
+ }
2683
2800
  /**
2684
2801
  * A named bookmark within a media clip timeline.
2685
2802
  *
@@ -2756,6 +2873,34 @@ interface MediaCaptionTrack {
2756
2873
  isDefault?: boolean;
2757
2874
  }
2758
2875
 
2876
+ /** Typed, editable metadata from a DiagramML layout-definition part. */
2877
+ interface PptxSmartArtLocalizedText {
2878
+ value: string;
2879
+ language?: string;
2880
+ }
2881
+ interface PptxSmartArtLayoutCategory {
2882
+ type: string;
2883
+ priority: number;
2884
+ }
2885
+ /** Identity and ordering metadata from DiagramML CT_LayoutNode. */
2886
+ interface PptxSmartArtLayoutNode {
2887
+ name?: string;
2888
+ styleLabel?: string;
2889
+ childOrder?: 'b' | 't';
2890
+ moveWith?: string;
2891
+ children?: PptxSmartArtLayoutNode[];
2892
+ }
2893
+ /** Metadata and root node from DiagramML CT_DiagramDefinition. */
2894
+ interface PptxSmartArtLayoutDefinition {
2895
+ uniqueId?: string;
2896
+ minimumVersion?: string;
2897
+ defaultStyle?: string;
2898
+ titles?: PptxSmartArtLocalizedText[];
2899
+ descriptions?: PptxSmartArtLocalizedText[];
2900
+ categories?: PptxSmartArtLayoutCategory[];
2901
+ rootNode: PptxSmartArtLayoutNode;
2902
+ }
2903
+
2759
2904
  /**
2760
2905
  * SmartArt node types: per-run text, per-node visual override, and the
2761
2906
  * data-model node itself. Split out of `smart-art.ts` to keep each type file
@@ -2843,6 +2988,8 @@ interface PptxSmartArtNodeStyle {
2843
2988
  interface PptxSmartArtNode {
2844
2989
  id: string;
2845
2990
  text: string;
2991
+ /** CT_Pt connection identifier, when the point references a connection. */
2992
+ connectionId?: string | null;
2846
2993
  parentId?: string;
2847
2994
  children?: PptxSmartArtNode[];
2848
2995
  /** Node type from `@_type` attribute (e.g. "doc", "node", "asst", "pres"). */
@@ -2864,6 +3011,64 @@ interface PptxSmartArtNode {
2864
3011
  style?: PptxSmartArtNodeStyle;
2865
3012
  }
2866
3013
 
3014
+ /** Editable metadata shared by DiagramML quick-style and color definitions. */
3015
+ interface PptxSmartArtDefinitionText {
3016
+ value: string;
3017
+ language?: string;
3018
+ }
3019
+ interface PptxSmartArtDefinitionCategory {
3020
+ type: string;
3021
+ priority: number;
3022
+ }
3023
+ type PptxSmartArtColorApplicationMethod = 'span' | 'cycle' | 'repeat';
3024
+ type PptxSmartArtHueDirection = 'cw' | 'ccw';
3025
+ /** CT_Colors application metadata. Color-choice children remain preserved XML. */
3026
+ interface PptxSmartArtColorListMetadata {
3027
+ method?: PptxSmartArtColorApplicationMethod;
3028
+ hueDirection?: PptxSmartArtHueDirection;
3029
+ }
3030
+ /** CT_StyleLabel metadata from a quick-style definition. */
3031
+ interface PptxSmartArtQuickStyleLabel {
3032
+ name: string;
3033
+ }
3034
+ /** CT_CTStyleLabel metadata from a color-transform definition. */
3035
+ interface PptxSmartArtColorStyleLabel {
3036
+ name: string;
3037
+ fill?: PptxSmartArtColorListMetadata;
3038
+ line?: PptxSmartArtColorListMetadata;
3039
+ effect?: PptxSmartArtColorListMetadata;
3040
+ textLine?: PptxSmartArtColorListMetadata;
3041
+ textFill?: PptxSmartArtColorListMetadata;
3042
+ textEffect?: PptxSmartArtColorListMetadata;
3043
+ }
3044
+ interface PptxSmartArtDefinitionMetadata {
3045
+ uniqueId?: string;
3046
+ minimumVersion?: string;
3047
+ titles?: PptxSmartArtDefinitionText[];
3048
+ descriptions?: PptxSmartArtDefinitionText[];
3049
+ categories?: PptxSmartArtDefinitionCategory[];
3050
+ }
3051
+ /** Typed CT_ColorTransform metadata and the resolved legacy color palette. */
3052
+ interface PptxSmartArtColorTransform extends PptxSmartArtDefinitionMetadata {
3053
+ /** Legacy resolved display name. */
3054
+ name?: string;
3055
+ /** Ordered resolved fill colors for rendering. */
3056
+ fillColors: string[];
3057
+ /** Ordered resolved line colors for rendering. */
3058
+ lineColors: string[];
3059
+ /** Ordered CT_CTStyleLabel metadata. */
3060
+ labels?: PptxSmartArtColorStyleLabel[];
3061
+ }
3062
+ /** Typed CT_StyleDefinition metadata and legacy rendering hint. */
3063
+ interface PptxSmartArtQuickStyle extends PptxSmartArtDefinitionMetadata {
3064
+ /** Legacy resolved display name. */
3065
+ name?: string;
3066
+ /** Legacy effect-intensity rendering hint. */
3067
+ effectIntensity?: string;
3068
+ /** Ordered CT_StyleLabel metadata. Complex style payload remains preserved XML. */
3069
+ labels?: PptxSmartArtQuickStyleLabel[];
3070
+ }
3071
+
2867
3072
  /**
2868
3073
  * SmartArt types: layout categories, layout presets, colour schemes,
2869
3074
  * data-model nodes/connections, drawing shapes, chrome, and the composite
@@ -2926,6 +3131,8 @@ type SmartArtStyle = 'flat' | 'moderate' | 'intense';
2926
3131
  * ```
2927
3132
  */
2928
3133
  interface PptxSmartArtConnection {
3134
+ /** Stable CT_Cxn model identifier. Required when serialized. */
3135
+ modelId?: string | null;
2929
3136
  /** Model ID of the source node. */
2930
3137
  sourceId: string;
2931
3138
  /** Model ID of the destination node. */
@@ -2936,6 +3143,12 @@ interface PptxSmartArtConnection {
2936
3143
  srcOrd?: number;
2937
3144
  /** Destination index for ordering. */
2938
3145
  destOrd?: number;
3146
+ /** Model ID of the parent transition point associated with this edge. */
3147
+ parentTransitionId?: string | null;
3148
+ /** Model ID of the sibling transition point associated with this edge. */
3149
+ siblingTransitionId?: string | null;
3150
+ /** Layout presentation identifier used by presentation connections. */
3151
+ presentationId?: string | null;
2939
3152
  }
2940
3153
  /**
2941
3154
  * A pre-computed shape from `ppt/diagrams/drawing*.xml`.
@@ -3002,45 +3215,6 @@ interface PptxSmartArtChrome {
3002
3215
  /** Outline stroke width in points. */
3003
3216
  outlineWidth?: number;
3004
3217
  }
3005
- /**
3006
- * Colour transform entry from `ppt/diagrams/colors*.xml`.
3007
- *
3008
- * @example
3009
- * ```ts
3010
- * const transform: PptxSmartArtColorTransform = {
3011
- * name: "Colorful - Accent Colors",
3012
- * fillColors: ["#4F81BD", "#C0504D", "#9BBB59"],
3013
- * lineColors: ["#385D8A", "#8C3836", "#71893F"],
3014
- * };
3015
- * // => satisfies PptxSmartArtColorTransform
3016
- * ```
3017
- */
3018
- interface PptxSmartArtColorTransform {
3019
- /** Colour scheme name / title. */
3020
- name?: string;
3021
- /** Ordered list of fill colours (hex) for each node. */
3022
- fillColors: string[];
3023
- /** Ordered list of line colours (hex). */
3024
- lineColors: string[];
3025
- }
3026
- /**
3027
- * Style entry from `ppt/diagrams/quickStyles*.xml`.
3028
- *
3029
- * @example
3030
- * ```ts
3031
- * const qs: PptxSmartArtQuickStyle = {
3032
- * name: "Moderate Effect",
3033
- * effectIntensity: "moderate",
3034
- * };
3035
- * // => satisfies PptxSmartArtQuickStyle
3036
- * ```
3037
- */
3038
- interface PptxSmartArtQuickStyle {
3039
- /** Style name / title. */
3040
- name?: string;
3041
- /** Effect intensity identifier (e.g. "subtle", "moderate", "intense"). */
3042
- effectIntensity?: string;
3043
- }
3044
3218
  /**
3045
3219
  * Complete parsed SmartArt data for a {@link SmartArtPptxElement}.
3046
3220
  *
@@ -3080,14 +3254,28 @@ interface PptxSmartArtData {
3080
3254
  colorTransform?: PptxSmartArtColorTransform;
3081
3255
  /** Quick style from `ppt/diagrams/quickStyles*.xml`. */
3082
3256
  quickStyle?: PptxSmartArtQuickStyle;
3257
+ /** Editable metadata from the related DiagramML layout definition. */
3258
+ layoutDefinition?: PptxSmartArtLayoutDefinition;
3083
3259
  /** Relationship ID for the diagram data part (for round-trip save). */
3084
3260
  dataRelId?: string;
3261
+ /** Relationship ID for the diagram layout part. */
3262
+ layoutRelId?: string;
3085
3263
  /** Relationship ID for the drawing part. */
3086
3264
  drawingRelId?: string;
3087
3265
  /** Relationship ID for the colours part. */
3088
3266
  colorsRelId?: string;
3089
3267
  /** Relationship ID for the quick-styles part. */
3090
3268
  styleRelId?: string;
3269
+ /** Internal save hint: the layout definition changed in the editor. */
3270
+ layoutDirty?: boolean;
3271
+ /** Internal save hint: typed layout-definition metadata changed. */
3272
+ layoutDefinitionDirty?: boolean;
3273
+ /** Internal save hint: quick-style definition metadata changed. */
3274
+ quickStyleDirty?: boolean;
3275
+ /** Internal save hint: color-transform definition metadata changed. */
3276
+ colorTransformDirty?: boolean;
3277
+ /** Internal save hint: cached drawing geometry or text changed in the editor. */
3278
+ drawingDirty?: boolean;
3091
3279
  }
3092
3280
 
3093
3281
  /**
@@ -3696,6 +3884,11 @@ interface MediaPptxElement extends PptxElementBase {
3696
3884
  mediaPath?: string;
3697
3885
  mediaData?: string;
3698
3886
  mediaMimeType?: string;
3887
+ mediaReferenceKind?: PptxMediaReferenceKind;
3888
+ mediaReferenceName?: string;
3889
+ audioCdStart?: PptxAudioCdPosition;
3890
+ audioCdEnd?: PptxAudioCdPosition;
3891
+ rawMediaReferenceXml?: XmlObject;
3699
3892
  /** Trim start in milliseconds (from p:cMediaNode p:cTn @st). */
3700
3893
  trimStartMs?: number;
3701
3894
  /** Trim end in milliseconds (from p:cMediaNode p:cTn @end). */
@@ -4120,6 +4313,44 @@ type PptxAnimationTrigger = 'onClick' | 'onShapeClick' | 'onHover' | 'afterPrevi
4120
4313
  * is preserved alongside other animations.
4121
4314
  */
4122
4315
  type PptxNativeAnimationKind = 'media';
4316
+ /** A target selected by `p:tgtEl` in the PresentationML timing model. */
4317
+ type PptxAnimationTarget = {
4318
+ type: 'shape';
4319
+ shapeId: string;
4320
+ rawXml?: XmlObject;
4321
+ } | {
4322
+ type: 'slide';
4323
+ rawXml?: XmlObject;
4324
+ } | {
4325
+ type: 'sound';
4326
+ relationshipId: string;
4327
+ name?: string;
4328
+ rawXml?: XmlObject;
4329
+ } | {
4330
+ type: 'ink';
4331
+ shapeId: string;
4332
+ rawXml?: XmlObject;
4333
+ } | {
4334
+ type: 'unknown';
4335
+ rawXml: XmlObject;
4336
+ };
4337
+ /** Nested build choice carried by `p:bldGraphic`. */
4338
+ type PptxGraphicBuild = {
4339
+ mode: 'asOne';
4340
+ rawXml?: XmlObject;
4341
+ } | {
4342
+ mode: 'sub';
4343
+ kind: 'diagram';
4344
+ build: string;
4345
+ reverse: boolean;
4346
+ rawXml?: XmlObject;
4347
+ } | {
4348
+ mode: 'sub';
4349
+ kind: 'chart';
4350
+ build: string;
4351
+ animateBackground: boolean;
4352
+ rawXml?: XmlObject;
4353
+ };
4123
4354
  /**
4124
4355
  * Parsed native animation record from `p:timing / p:tnLst`.
4125
4356
  *
@@ -4141,6 +4372,8 @@ type PptxNativeAnimationKind = 'media';
4141
4372
  interface PptxNativeAnimation {
4142
4373
  /** Target element/shape ID. */
4143
4374
  targetId?: string;
4375
+ /** Full timing target, including sound and ink target variants. */
4376
+ target?: PptxAnimationTarget;
4144
4377
  /** Trigger type. */
4145
4378
  trigger?: PptxAnimationTrigger;
4146
4379
  /** Shape ID that triggers this animation when clicked (interactive sequence). */
@@ -4245,6 +4478,8 @@ interface PptxNativeAnimation {
4245
4478
  * that aren't OLE charts).
4246
4479
  */
4247
4480
  graphicBuild?: string;
4481
+ /** Schema-accurate `p:bldGraphic/p:bldAsOne|p:bldSub` representation. */
4482
+ graphicBuildProperties?: PptxGraphicBuild;
4248
4483
  /**
4249
4484
  * Opaque map of `p:cTn` attributes that don't have a typed home on this
4250
4485
  * interface but must round-trip through parse → save. Keys are stored
@@ -4361,6 +4596,8 @@ interface AnimationCondition {
4361
4596
  targetShapeId?: string;
4362
4597
  /** Whether the condition targets a slide (from `p:tgtEl/p:sldTgt`). */
4363
4598
  targetSlide?: boolean;
4599
+ /** Full target choice, including `p:sndTgt` and `p:inkTgt`. */
4600
+ target?: PptxAnimationTarget;
4364
4601
  }
4365
4602
  /** Iteration configuration from `p:iterate`. */
4366
4603
  interface PptxAnimationIterate {
@@ -4445,6 +4682,7 @@ interface PptxElementAnimation {
4445
4682
  *
4446
4683
  * @module pptx-types/metadata
4447
4684
  */
4685
+
4448
4686
  /**
4449
4687
  * A slide comment — may be a legacy positional comment or a modern
4450
4688
  * threaded comment with replies.
@@ -4464,6 +4702,10 @@ interface PptxElementAnimation {
4464
4702
  interface PptxComment {
4465
4703
  id: string;
4466
4704
  text: string;
4705
+ /** Storage vocabulary used by this comment. Omitted means legacy PresentationML. */
4706
+ format?: 'legacy' | 'modern';
4707
+ /** Stable GUID author identifier used by Office 2021 modern comments. */
4708
+ authorId?: string;
4467
4709
  /** Optional parent comment id for reply threading metadata. */
4468
4710
  parentId?: string;
4469
4711
  author?: string;
@@ -4472,12 +4714,35 @@ interface PptxComment {
4472
4714
  y?: number;
4473
4715
  /** Whether this comment has been resolved/marked done. */
4474
4716
  resolved?: boolean;
4717
+ /** Native p188 status token. */
4718
+ status?: 'active' | 'resolved' | 'closed';
4719
+ /** Modern comment classification tags and author IDs that liked the comment. */
4720
+ tags?: string[];
4721
+ likes?: string[];
4722
+ startDate?: string;
4723
+ dueDate?: string;
4724
+ assignedTo?: string[];
4725
+ /** Task completion in thousandths of a percent, from 0 through 100000. */
4726
+ complete?: number;
4727
+ priority?: number;
4728
+ title?: string;
4475
4729
  /** Modern threaded comment support (p15:threadingInfo). */
4476
4730
  threadId?: string;
4477
4731
  /** Replies to this comment (for modern threaded comments). */
4478
4732
  replies?: PptxComment[];
4479
4733
  /** ID of the element this comment is associated with (if any). */
4480
4734
  elementId?: string;
4735
+ /** Original `p:cm` subtree, retained for unknown child and extension preservation. */
4736
+ rawXml?: XmlObject;
4737
+ }
4738
+ /** Office 2021 comment author from the p188 Author part. */
4739
+ interface PptxModernCommentAuthor {
4740
+ id: string;
4741
+ name: string;
4742
+ initials?: string;
4743
+ userId: string;
4744
+ providerId: string;
4745
+ rawXml?: XmlObject;
4481
4746
  }
4482
4747
  /**
4483
4748
  * A comment author from `ppt/commentAuthors.xml`.
@@ -4510,6 +4775,8 @@ interface PptxCommentAuthor {
4510
4775
  lastIdx: number;
4511
4776
  /** Colour index assigned to this author (`@_clrIdx`). */
4512
4777
  clrIdx: number;
4778
+ /** Original `p:cmAuthor` subtree, retained for unknown attribute preservation. */
4779
+ rawXml?: XmlObject;
4513
4780
  }
4514
4781
  /**
4515
4782
  * A compatibility warning generated during parse or save when the
@@ -4957,6 +5224,8 @@ interface PptxTheme {
4957
5224
  type PptxTransitionType = 'none' | 'cut' | 'fade' | 'push' | 'wipe' | 'split' | 'randomBar' | 'blinds' | 'checker' | 'circle' | 'comb' | 'cover' | 'diamond' | 'dissolve' | 'plus' | 'pull' | 'random' | 'strips' | 'uncover' | 'wedge' | 'wheel' | 'zoom' | 'newsflash' | 'morph' | 'conveyor' | 'doors' | 'ferris' | 'flash' | 'flythrough' | 'gallery' | 'glitter' | 'honeycomb' | 'pan' | 'prism' | 'reveal' | 'ripple' | 'shred' | 'switch' | 'vortex' | 'warp' | 'wheelReverse' | 'window' | 'cube' | 'flip' | 'rotate' | 'orbit';
4958
5225
  /** Split orientation from OOXML `@_orient`. */
4959
5226
  type PptxSplitOrientation = 'horz' | 'vert';
5227
+ /** Schema-defined `ST_TransitionSpeed` values. */
5228
+ type PptxTransitionSpeed = 'slow' | 'med' | 'fast';
4960
5229
  /**
4961
5230
  * Slide transition configuration.
4962
5231
  *
@@ -4973,6 +5242,8 @@ type PptxSplitOrientation = 'horz' | 'vert';
4973
5242
  */
4974
5243
  interface PptxSlideTransition {
4975
5244
  type: PptxTransitionType;
5245
+ /** Schema-defined transition speed. Defaults to `fast` when omitted. */
5246
+ speed?: PptxTransitionSpeed;
4976
5247
  durationMs?: number;
4977
5248
  direction?: string;
4978
5249
  advanceOnClick?: boolean;
@@ -4987,6 +5258,10 @@ interface PptxSlideTransition {
4987
5258
  orient?: PptxSplitOrientation;
4988
5259
  /** Relationship ID of transition sound from `p:sndAc/p:stSnd/@r:embed` when present. */
4989
5260
  soundRId?: string;
5261
+ /** Embedded WAV display name from `p:stSnd/p:snd/@name`. */
5262
+ soundName?: string;
5263
+ /** Whether the transition sound repeats until another sound starts. */
5264
+ soundLoop?: boolean;
4990
5265
  /** Resolved transition sound media path within the package. */
4991
5266
  soundPath?: string;
4992
5267
  /** Human-readable sound file name (extracted from soundPath). */
@@ -5000,6 +5275,8 @@ interface PptxSlideTransition {
5000
5275
  rawSoundAction?: XmlObject;
5001
5276
  /** Preserved extension-list XML node from `p:extLst` within the transition for lossless round-trip. */
5002
5277
  rawExtLst?: XmlObject;
5278
+ /** Original transition node, retained to preserve unknown attributes and children. */
5279
+ rawTransition?: XmlObject;
5003
5280
  }
5004
5281
 
5005
5282
  /**
@@ -5239,6 +5516,8 @@ interface PptxSlide {
5239
5516
  /** Optional `<p:cSld @name>` value of the notes slide, for round-trip. */
5240
5517
  notesCSldName?: string;
5241
5518
  comments?: PptxComment[];
5519
+ /** Source package metadata for an Office 2021 p188 comment part. */
5520
+ modernCommentPart?: PptxModernCommentPart;
5242
5521
  warnings?: PptxCompatibilityWarning[];
5243
5522
  rawXml?: XmlObject;
5244
5523
  /** Per-slide colour map override parsed from `p:clrMapOvr`. */
@@ -5257,6 +5536,24 @@ interface PptxSlide {
5257
5536
  activeXControls?: PptxActiveXControl[];
5258
5537
  /** Per-slide header/footer flags from `<p:hf>` (P-H3). */
5259
5538
  headerFooterFlags?: PptxHeaderFooterFlags;
5539
+ /** Server-backed slide synchronization metadata stored in a related OPC part. */
5540
+ slideSynchronization?: PptxSlideSyncProperties;
5541
+ }
5542
+ interface PptxModernCommentPart {
5543
+ path: string;
5544
+ relationshipId: string;
5545
+ /** Original p188:cmLst root, including unknown attributes and extensions. */
5546
+ rawXml?: XmlObject;
5547
+ }
5548
+ /** Metadata from a `p:sldSyncPr` slide synchronization data part. */
5549
+ interface PptxSlideSyncProperties {
5550
+ serverSlideId: string;
5551
+ serverSlideModifiedTime: string;
5552
+ clientInsertedTime: string;
5553
+ extensionList?: XmlObject;
5554
+ rawXml?: XmlObject;
5555
+ partPath?: string;
5556
+ relationshipId?: string;
5260
5557
  }
5261
5558
  /**
5262
5559
  * A slide layout available in the loaded presentation.
@@ -5384,6 +5681,8 @@ interface PptxCustomShow {
5384
5681
  id: string;
5385
5682
  /** Ordered list of slide relationship IDs included in this custom show. */
5386
5683
  slideRIds: string[];
5684
+ /** Original `p:custShow` subtree used to preserve unmodelled attributes and extensions. */
5685
+ rawXml?: XmlObject;
5387
5686
  }
5388
5687
  /**
5389
5688
  * An ordered section in the presentation (from `p:sectionLst` / `p14:sectionLst`).
@@ -5412,6 +5711,8 @@ interface PptxSection {
5412
5711
  collapsed?: boolean;
5413
5712
  /** Section highlight color hex (from p15:sectionPr/@clr). */
5414
5713
  color?: string;
5714
+ /** Original section subtree used to preserve unmodelled attributes and extensions. */
5715
+ rawXml?: XmlObject;
5415
5716
  }
5416
5717
  /**
5417
5718
  * Write-protection hash data parsed from `p:modifyVerifier` in `presentation.xml`.
@@ -5575,6 +5876,8 @@ interface PptxData {
5575
5876
  thumbnailData?: Uint8Array;
5576
5877
  /** Comment authors parsed from `ppt/commentAuthors.xml` for round-trip preservation. */
5577
5878
  commentAuthors?: PptxCommentAuthor[];
5879
+ /** Office 2021 p188 authors from the modern Author part. */
5880
+ modernCommentAuthors?: PptxModernCommentAuthor[];
5578
5881
  /**
5579
5882
  * OOXML conformance class of the loaded file.
5580
5883
  * - `'strict'` -- ISO/IEC 29500 Strict (uses `purl.oclc.org` namespace URIs)
@@ -7150,10 +7453,12 @@ type CollaborationRole = 'owner' | 'collaborator' | 'viewer';
7150
7453
  * any signaling server, which makes this mode usable from static hosting.
7151
7454
  */
7152
7455
  type CollaborationTransport = 'websocket' | 'webrtc';
7456
+ /** How the local user entered a collaboration session. */
7457
+ type CollaborationSessionIntent = 'create' | 'join';
7153
7458
  /**
7154
7459
  * Real-time collaboration configuration.
7155
7460
  *
7156
- * The same shape is accepted by the React, Vue, and Angular bindings.
7461
+ * The same shape is accepted by every framework binding.
7157
7462
  */
7158
7463
  interface CollaborationConfig {
7159
7464
  /** Unique identifier for the collaboration room (alphanumeric, hyphens, underscores). */
@@ -7181,6 +7486,13 @@ interface CollaborationConfig {
7181
7486
  authToken?: string;
7182
7487
  /** Role in the session; defaults to `'collaborator'`. */
7183
7488
  role?: CollaborationRole;
7489
+ /**
7490
+ * Whether this client created the room or joined an existing room. Providers
7491
+ * do not use this value, but hosts can use it to avoid publishing local file
7492
+ * bytes when handling a join request. Omitted values retain the legacy
7493
+ * create-session behaviour.
7494
+ */
7495
+ sessionIntent?: CollaborationSessionIntent;
7184
7496
  /**
7185
7497
  * Elected-writer write-back callback (Area 3 of the C3 hardening plan).
7186
7498
  *
@@ -7953,6 +8265,11 @@ interface UseCollaborativeHistoryResult {
7953
8265
  declare function useCollaborativeHistory({ localClientId: _localClientId, handleUndo, handleRedo, canUndo, canRedo }: UseCollaborativeHistoryInput): UseCollaborativeHistoryResult;
7954
8266
  //#endregion
7955
8267
  //#region src/viewer/hooks/presentation-mode/usePresenterWindow.d.ts
8268
+ /**
8269
+ * Parse the session nonce from the current page URL hash. Returns null if the
8270
+ * hash is not in the expected `#pptx-audience&nonce=<uuid>` form.
8271
+ */
8272
+ declare function parseAudienceNonce(): string | null;
7956
8273
  /** Returns true if the current page was opened as an audience tab. */
7957
8274
  declare function isAudienceTab(): boolean;
7958
8275
 
@@ -7983,16 +8300,16 @@ declare const PowerPointViewer: React.ForwardRefExoticComponent<PowerPointViewer
7983
8300
  * Store PPTX content bytes so the audience tab can retrieve them.
7984
8301
  * Called by the presenter before opening the audience window.
7985
8302
  */
7986
- declare function storeAudienceContent(content: ArrayBuffer | Uint8Array): Promise<void>;
8303
+ declare function storeAudienceContent(content: ArrayBuffer | Uint8Array, sessionId?: string): Promise<void>;
7987
8304
  /**
7988
8305
  * Load PPTX content bytes stored by the presenter tab.
7989
8306
  * Returns `null` if nothing is stored.
7990
8307
  */
7991
- declare function loadAudienceContent(): Promise<Uint8Array | null>;
8308
+ declare function loadAudienceContent(sessionId?: string): Promise<Uint8Array | null>;
7992
8309
  /**
7993
8310
  * Remove stored audience content (cleanup).
7994
8311
  */
7995
- declare function clearAudienceContent(): Promise<void>;
8312
+ declare function clearAudienceContent(sessionId?: string): Promise<void>;
7996
8313
  //#endregion
7997
8314
  //#region src/viewer/components/collaboration/CollaborationProvider.d.ts
7998
8315
  interface CollaborationProviderProps {
@@ -8045,5 +8362,5 @@ interface CollaborationStatusIndicatorProps {
8045
8362
  }
8046
8363
  declare function CollaborationStatusIndicator({ status, connectedCount, onRetry }: CollaborationStatusIndicatorProps): React__default.ReactElement;
8047
8364
 
8048
- export { CollaborationProvider, CollaborationStatusIndicator, PowerPointViewer, RemoteUserCursors, UserAvatarBar, clearAudienceContent, getAnimationInitialStyle, isAudienceTab, loadAudienceContent, storeAudienceContent, useCollaborativeHistory, useCollaborativeState, usePresenceTracking, useThemeSwitching, useYjsProvider };
8365
+ export { CollaborationProvider, CollaborationStatusIndicator, PowerPointViewer, RemoteUserCursors, UserAvatarBar, clearAudienceContent, getAnimationInitialStyle, isAudienceTab, loadAudienceContent, parseAudienceNonce, storeAudienceContent, useCollaborativeHistory, useCollaborativeState, usePresenceTracking, useThemeSwitching, useYjsProvider };
8049
8366
  export type { AccessibilityIssue, AnimationPresetOption, CanvasSize, CollaborationConfig, CollaborationContextValue, CollaborationRole, CollaborationStatusIndicatorProps, ConnectionStatus, ConnectorArrowOption, ConnectorGeometryOption, ConnectorGeometryType, ConnectorPathGeometry, DragState, DrawingTool, EditorHistorySnapshot, ElementBounds, ElementClipboardPayload, ElementContextMenuAction, ElementContextMenuState, FileViewerHandle, MarqueeSelectionState, ParsedTableCell, ParsedTableData, PowerPointViewerHandle, PowerPointViewerProps, PresentationAnimationRuntime, RemoteUserCursorsProps, ResizeHandle, ResizeState, ShapeAdjustmentDragState, ShapeAdjustmentHandleDescriptor, ShapePreset, ShapeQuickStyle, ShortcutReferenceItem, SlideAlignment, SlideSectionGroup, SlideTransitionOption, StrokeDashOption, SupportedShapeType, TableCellEditorState, ThemeSwitchingResult, ToolbarSection, UseCollaborativeHistoryResult, UseCollaborativeStateInput, UsePresenceTrackingResult, UseThemeSwitchingInput, UserAvatarBarProps, UserPresence, ViewerMode };