pptx-react-viewer 1.18.0 → 1.19.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 (98) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/{Model3DScene-GVWQ6SOM.js → Model3DScene-CQP7JLKK.js} +3 -3
  3. package/dist/{Model3DScene-GVWQ6SOM.js.br → Model3DScene-CQP7JLKK.js.br} +0 -0
  4. package/dist/Model3DScene-CQP7JLKK.js.gz +0 -0
  5. package/dist/{Model3DScene-JGVLIDLD.mjs → Model3DScene-J2KBVMEZ.mjs} +2 -2
  6. package/dist/Model3DScene-J2KBVMEZ.mjs.br +0 -0
  7. package/dist/Model3DScene-J2KBVMEZ.mjs.gz +0 -0
  8. package/dist/PowerPointViewer-C4d7SKZf.d.ts.map +1 -1
  9. package/dist/{SurfaceChart3DScene-DBWSDSKI.mjs → SurfaceChart3DScene-52VUVZSC.mjs} +2 -2
  10. package/dist/SurfaceChart3DScene-52VUVZSC.mjs.br +0 -0
  11. package/dist/SurfaceChart3DScene-52VUVZSC.mjs.gz +0 -0
  12. package/dist/{SurfaceChart3DScene-ZOTOHOIE.js → SurfaceChart3DScene-U6LVKSKR.js} +3 -3
  13. package/dist/SurfaceChart3DScene-U6LVKSKR.js.br +0 -0
  14. package/dist/SurfaceChart3DScene-U6LVKSKR.js.gz +0 -0
  15. package/dist/{chunk-SBNTEQUA.mjs → chunk-3ZGCM6RC.mjs} +20269 -12232
  16. package/dist/chunk-3ZGCM6RC.mjs.br +0 -0
  17. package/dist/chunk-3ZGCM6RC.mjs.gz +0 -0
  18. package/dist/{chunk-EXDUEXTO.js → chunk-AD3EAEY6.js} +20282 -12231
  19. package/dist/chunk-AD3EAEY6.js.br +0 -0
  20. package/dist/chunk-AD3EAEY6.js.gz +0 -0
  21. package/dist/{chunk-73ST7AC6.js → chunk-DBZLZMED.js} +6795 -6485
  22. package/dist/chunk-DBZLZMED.js.br +0 -0
  23. package/dist/chunk-DBZLZMED.js.gz +0 -0
  24. package/dist/{chunk-HBXPK572.js → chunk-P3T4E6JQ.js} +2969 -743
  25. package/dist/chunk-P3T4E6JQ.js.br +0 -0
  26. package/dist/chunk-P3T4E6JQ.js.gz +0 -0
  27. package/dist/{chunk-HHTZQHKZ.mjs → chunk-R7FTNSSP.mjs} +2922 -719
  28. package/dist/chunk-R7FTNSSP.mjs.br +0 -0
  29. package/dist/chunk-R7FTNSSP.mjs.gz +0 -0
  30. package/dist/{chunk-KMLIWCNL.mjs → chunk-SLJXGFZS.mjs} +5783 -5473
  31. package/dist/chunk-SLJXGFZS.mjs.br +0 -0
  32. package/dist/chunk-SLJXGFZS.mjs.gz +0 -0
  33. package/dist/{chunk-Z4MDCPAY.mjs → chunk-XGTMHQR7.mjs} +26 -731
  34. package/dist/chunk-XGTMHQR7.mjs.br +0 -0
  35. package/dist/chunk-XGTMHQR7.mjs.gz +0 -0
  36. package/dist/{chunk-JDRC3PSY.js → chunk-YF6JD4DO.js} +470 -1186
  37. package/dist/chunk-YF6JD4DO.js.br +0 -0
  38. package/dist/chunk-YF6JD4DO.js.gz +0 -0
  39. package/dist/dist-3YRZ26TL.mjs +2 -0
  40. package/dist/dist-3YRZ26TL.mjs.br +0 -0
  41. package/dist/dist-3YRZ26TL.mjs.gz +0 -0
  42. package/dist/{dist-KRRXYUGI.js → dist-M2P6HBG4.js} +602 -546
  43. package/dist/dist-M2P6HBG4.js.br +0 -0
  44. package/dist/dist-M2P6HBG4.js.gz +0 -0
  45. package/dist/hooks-unstable.d.ts +523 -49
  46. package/dist/hooks-unstable.d.ts.map +1 -1
  47. package/dist/hooks-unstable.js +77 -77
  48. package/dist/hooks-unstable.js.br +0 -0
  49. package/dist/hooks-unstable.js.gz +0 -0
  50. package/dist/hooks-unstable.mjs +3 -3
  51. package/dist/hooks-unstable.mjs.br +0 -0
  52. package/dist/hooks-unstable.mjs.gz +0 -0
  53. package/dist/index.d.ts +417 -21
  54. package/dist/index.js +18 -18
  55. package/dist/index.js.br +3 -3
  56. package/dist/index.js.gz +0 -0
  57. package/dist/index.mjs +4 -4
  58. package/dist/index.mjs.br +0 -0
  59. package/dist/index.mjs.gz +0 -0
  60. package/dist/pptx-viewer.css +1 -1
  61. package/dist/pptx-viewer.css.br +0 -0
  62. package/dist/pptx-viewer.css.gz +0 -0
  63. package/dist/viewer/index.d.ts +509 -27
  64. package/dist/viewer/index.js +20 -20
  65. package/dist/viewer/index.js.br +0 -0
  66. package/dist/viewer/index.js.gz +0 -0
  67. package/dist/viewer/index.mjs +4 -4
  68. package/dist/viewer/index.mjs.br +0 -0
  69. package/dist/viewer/index.mjs.gz +0 -0
  70. package/package.json +1 -1
  71. package/dist/Model3DScene-GVWQ6SOM.js.gz +0 -0
  72. package/dist/Model3DScene-JGVLIDLD.mjs.br +0 -0
  73. package/dist/Model3DScene-JGVLIDLD.mjs.gz +0 -0
  74. package/dist/SurfaceChart3DScene-DBWSDSKI.mjs.br +0 -0
  75. package/dist/SurfaceChart3DScene-DBWSDSKI.mjs.gz +0 -0
  76. package/dist/SurfaceChart3DScene-ZOTOHOIE.js.br +0 -0
  77. package/dist/SurfaceChart3DScene-ZOTOHOIE.js.gz +0 -0
  78. package/dist/chunk-73ST7AC6.js.br +0 -0
  79. package/dist/chunk-73ST7AC6.js.gz +0 -0
  80. package/dist/chunk-EXDUEXTO.js.br +0 -0
  81. package/dist/chunk-EXDUEXTO.js.gz +0 -0
  82. package/dist/chunk-HBXPK572.js.br +0 -0
  83. package/dist/chunk-HBXPK572.js.gz +0 -0
  84. package/dist/chunk-HHTZQHKZ.mjs.br +0 -0
  85. package/dist/chunk-HHTZQHKZ.mjs.gz +0 -0
  86. package/dist/chunk-JDRC3PSY.js.br +0 -0
  87. package/dist/chunk-JDRC3PSY.js.gz +0 -0
  88. package/dist/chunk-KMLIWCNL.mjs.br +0 -0
  89. package/dist/chunk-KMLIWCNL.mjs.gz +0 -0
  90. package/dist/chunk-SBNTEQUA.mjs.br +0 -0
  91. package/dist/chunk-SBNTEQUA.mjs.gz +0 -0
  92. package/dist/chunk-Z4MDCPAY.mjs.br +0 -0
  93. package/dist/chunk-Z4MDCPAY.mjs.gz +0 -0
  94. package/dist/dist-KRRXYUGI.js.br +0 -0
  95. package/dist/dist-KRRXYUGI.js.gz +0 -0
  96. package/dist/dist-N6PAPXK6.mjs +0 -2
  97. package/dist/dist-N6PAPXK6.mjs.br +0 -0
  98. package/dist/dist-N6PAPXK6.mjs.gz +0 -0
package/dist/index.d.ts CHANGED
@@ -484,6 +484,8 @@ interface CustomGeometryPath {
484
484
  * and the text rectangle are not lost when a custGeom is edited and saved.
485
485
  */
486
486
  interface CustomGeometryRawData {
487
+ /** Raw `a:avLst` XML content (adjustment value list). */
488
+ avLstXml?: unknown;
487
489
  /** Raw `a:gdLst` XML content (guide list). */
488
490
  gdLstXml?: unknown;
489
491
  /** Raw `a:ahLst` XML content (adjustment handles). */
@@ -624,7 +626,7 @@ interface PptxCustomPathProperties {
624
626
  pathHeight?: number;
625
627
  /** Structured custom geometry paths for editing (maps to a:custGeom/a:pathLst). */
626
628
  customGeometryPaths?: CustomGeometryPath[];
627
- /** Raw a:gdLst/a:ahLst/a:cxnLst/a:rect XML preserved for round-trip serialization. */
629
+ /** Raw adjustment/guide/handle/connection/text-rectangle XML preserved for serialization. */
628
630
  customGeometryRawData?: CustomGeometryRawData;
629
631
  /**
630
632
  * Typed XY adjustment handles parsed from `a:custGeom/a:ahLst/a:ahXY`.
@@ -835,6 +837,12 @@ type PptxTextWarpPreset = 'textNoShape' | 'textPlain' | 'textStop' | 'textTriang
835
837
  * @module pptx-types/shape-style
836
838
  */
837
839
 
840
+ interface PptxCustomDashSegment {
841
+ /** Dash length as a non-negative percentage in thousandths of one percent. */
842
+ dash: number;
843
+ /** Space length as a non-negative percentage in thousandths of one percent. */
844
+ space: number;
845
+ }
838
846
  /**
839
847
  * Comprehensive visual style for a shape, connector, or image element.
840
848
  *
@@ -1067,11 +1075,12 @@ interface ShapeStyle {
1067
1075
  connectorStartConnection?: ConnectorConnectionPoint;
1068
1076
  /** Connection point for the end of a connector. */
1069
1077
  connectorEndConnection?: ConnectorConnectionPoint;
1070
- /** Custom dash segments array (`a:custDash/a:ds`). Each entry has dash length and space length in EMU. */
1071
- customDashSegments?: Array<{
1072
- dash: number;
1073
- space: number;
1074
- }>;
1078
+ /** Custom dash pattern, measured relative to line width in thousandths of one percent. */
1079
+ customDashSegments?: PptxCustomDashSegment[];
1080
+ /** Original `a:ds` payloads retained by index for lossless edits. */
1081
+ customDashSegmentXml?: XmlObject[];
1082
+ /** Original `a:custDash` payload retained for lossless edits. */
1083
+ customDashXml?: XmlObject;
1075
1084
  /** 3D scene/camera settings from `a:scene3d`. */
1076
1085
  scene3d?: Pptx3DScene;
1077
1086
  /** 3D shape extrusion/bevel from `a:sp3d`. */
@@ -1183,6 +1192,8 @@ interface ShapeStyle {
1183
1192
  * ```
1184
1193
  */
1185
1194
  interface TextStyle {
1195
+ /** Original `a:rPr` XML retained by projections that share the shape-text model. */
1196
+ runPropertiesXml?: XmlObject;
1186
1197
  fontFamily?: string;
1187
1198
  fontSize?: number;
1188
1199
  /** When true, renderer should shrink text to fit the shape bounds. */
@@ -1884,10 +1895,104 @@ interface PptxChartAxisLabelFormatting {
1884
1895
  labelAlignment?: 'ctr' | 'l' | 'r';
1885
1896
  /** Category/date label distance, from 0 through 1000 percent. */
1886
1897
  labelOffset?: number;
1898
+ /** Number of category/date labels between rendered labels. */
1899
+ tickLabelSkip?: number;
1900
+ /** Number of category/date tick positions between major tick marks. */
1901
+ tickMarkSkip?: number;
1887
1902
  /** Suppress multi-level category labels (`c:noMultiLvlLbl`). */
1888
1903
  noMultiLevelLabels?: boolean;
1889
1904
  }
1890
1905
 
1906
+ interface PptxChartPivotFormat {
1907
+ index: number;
1908
+ shapePropertiesXml?: XmlObject | null;
1909
+ markerXml?: XmlObject | null;
1910
+ dataLabelXml?: XmlObject | null;
1911
+ extensionListXml?: XmlObject | null;
1912
+ rawXml?: XmlObject;
1913
+ }
1914
+ /** Editable classic ChartML `c:pivotFmts` collection. */
1915
+ interface PptxChartPivotFormats {
1916
+ formats: PptxChartPivotFormat[];
1917
+ rawXml?: XmlObject;
1918
+ }
1919
+
1920
+ /** Editable classic ChartML `c:pivotSource` metadata. */
1921
+ interface PptxChartPivotSource {
1922
+ /** Pivot table reference stored as `c:name` text. */
1923
+ name: string;
1924
+ /** Required unsigned format identifier stored in `c:fmtId/@val`. */
1925
+ formatId: number;
1926
+ /** Internal source subtree used to preserve extensions and foreign markup. */
1927
+ rawXml?: XmlObject;
1928
+ }
1929
+
1930
+ /** Headers and footers used when a classic ChartML chart is printed. */
1931
+ interface PptxChartPrintHeaderFooter {
1932
+ oddHeader?: string;
1933
+ oddFooter?: string;
1934
+ evenHeader?: string;
1935
+ evenFooter?: string;
1936
+ firstHeader?: string;
1937
+ firstFooter?: string;
1938
+ alignWithMargins?: boolean;
1939
+ differentOddEven?: boolean;
1940
+ differentFirst?: boolean;
1941
+ /** Original subtree retained for foreign attributes and extension children. */
1942
+ rawXml?: unknown;
1943
+ }
1944
+ /** Required page margins from ChartML `c:pageMargins`, measured in inches. */
1945
+ interface PptxChartPageMargins {
1946
+ left: number;
1947
+ right: number;
1948
+ top: number;
1949
+ bottom: number;
1950
+ header: number;
1951
+ footer: number;
1952
+ /** Original leaf retained for foreign attributes. */
1953
+ rawXml?: unknown;
1954
+ }
1955
+ /** Printer page configuration from ChartML `c:pageSetup`. */
1956
+ interface PptxChartPageSetup {
1957
+ paperSize?: number;
1958
+ firstPageNumber?: number;
1959
+ orientation?: 'default' | 'portrait' | 'landscape';
1960
+ blackAndWhite?: boolean;
1961
+ draft?: boolean;
1962
+ useFirstPageNumber?: boolean;
1963
+ horizontalDpi?: number;
1964
+ verticalDpi?: number;
1965
+ copies?: number;
1966
+ /** Original leaf retained for foreign attributes. */
1967
+ rawXml?: unknown;
1968
+ }
1969
+ /** Editable `c:printSettings` content from a classic ChartML chart space. */
1970
+ interface PptxChartPrintSettings {
1971
+ headerFooter?: PptxChartPrintHeaderFooter | null;
1972
+ pageMargins?: PptxChartPageMargins | null;
1973
+ pageSetup?: PptxChartPageSetup | null;
1974
+ /** `null` removes the legacy header/footer drawing relationship element. */
1975
+ legacyDrawingHeaderFooterRelationshipId?: string | null;
1976
+ /** Original subtree retained for unknown and extension content. */
1977
+ rawXml?: unknown;
1978
+ }
1979
+
1980
+ /** Editable classic ChartML `c:protection` settings. */
1981
+ interface PptxChartProtection {
1982
+ /** Prevent editing the chart object. */
1983
+ chartObject?: boolean | null;
1984
+ /** Prevent editing the chart data. */
1985
+ data?: boolean | null;
1986
+ /** Prevent editing chart formatting. */
1987
+ formatting?: boolean | null;
1988
+ /** Prevent selecting chart elements. */
1989
+ selection?: boolean | null;
1990
+ /** Prevent chart user-interface operations. */
1991
+ userInterface?: boolean | null;
1992
+ /** Internal source subtree used to preserve foreign markup during edits. */
1993
+ rawXml?: XmlObject;
1994
+ }
1995
+
1891
1996
  /**
1892
1997
  * Chart types: chart categories, series data, style metadata, data tables,
1893
1998
  * trendlines, error bars, and the composite `PptxChartData`.
@@ -2044,6 +2149,7 @@ interface PptxChartUpDownBars {
2044
2149
  /** Marker appearance on a chart series or data point. */
2045
2150
  interface PptxChartMarker {
2046
2151
  symbol: PptxChartMarkerSymbol;
2152
+ /** Marker size in points, constrained by ST_MarkerSize to 2 through 72. */
2047
2153
  size?: number;
2048
2154
  spPr?: PptxChartShapeProps;
2049
2155
  }
@@ -2054,6 +2160,8 @@ interface PptxChartDataPoint {
2054
2160
  explosion?: number;
2055
2161
  invertIfNegative?: boolean;
2056
2162
  marker?: PptxChartMarker;
2163
+ /** Render a bubble-chart point with a 3-D appearance. */
2164
+ bubble3D?: boolean;
2057
2165
  }
2058
2166
  /** Schema values accepted by `c:dLblPos`. */
2059
2167
  type PptxChartDataLabelPosition = 'bestFit' | 'b' | 'ctr' | 'inBase' | 'inEnd' | 'l' | 'outEnd' | 'r' | 't';
@@ -2096,6 +2204,12 @@ interface PptxChartAxisFormatting extends PptxChartAxisLabelFormatting {
2096
2204
  axisId?: number;
2097
2205
  /** Cross-axis identifier — the axis this axis crosses. */
2098
2206
  crossAxisId?: number;
2207
+ /** Automatic crossing mode (`c:crosses`). Mutually exclusive with `crossesAt`. */
2208
+ crosses?: 'autoZero' | 'min' | 'max';
2209
+ /** Explicit crossing value (`c:crossesAt`). Units depend on the axis type. */
2210
+ crossesAt?: number;
2211
+ /** Whether a value axis crosses between or at category tick marks. */
2212
+ crossBetween?: 'between' | 'midCat';
2099
2213
  numFmt?: PptxChartAxisNumFmt;
2100
2214
  titleText?: string;
2101
2215
  spPr?: PptxChartShapeProps;
@@ -2113,6 +2227,8 @@ interface PptxChartAxisFormatting extends PptxChartAxisLabelFormatting {
2113
2227
  min?: number;
2114
2228
  /** Maximum axis value override (c:max/@val). */
2115
2229
  max?: number;
2230
+ /** Axis value direction (`c:scaling/c:orientation/@val`). */
2231
+ orientation?: 'minMax' | 'maxMin';
2116
2232
  /** Whether the axis is deleted/hidden (c:delete/@val). */
2117
2233
  deleted?: boolean;
2118
2234
  /**
@@ -2136,12 +2252,69 @@ interface PptxChartAxisFormatting extends PptxChartAxisLabelFormatting {
2136
2252
  majorUnit?: number;
2137
2253
  /** Minor-unit interval between secondary tick marks (c:minorUnit/@val). */
2138
2254
  minorUnit?: number;
2255
+ /** Calendar unit used to interpret date-axis serial values. */
2256
+ baseTimeUnit?: 'days' | 'months' | 'years';
2257
+ majorTimeUnit?: 'days' | 'months' | 'years';
2258
+ minorTimeUnit?: 'days' | 'months' | 'years';
2139
2259
  }
2140
2260
  /** 3D wall or floor element formatting. */
2141
2261
  interface PptxChart3DSurface {
2142
2262
  thickness?: number;
2143
2263
  spPr?: PptxChartShapeProps;
2144
2264
  }
2265
+ /** Office 2016 ChartEx box-and-whisker series layout options. */
2266
+ interface PptxChartBoxWhiskerOptions {
2267
+ quartileMethod?: 'inclusive' | 'exclusive';
2268
+ showMeanLine?: boolean;
2269
+ showMeanMarker?: boolean;
2270
+ /** Show non-outlier (inner) data points. */
2271
+ showInnerPoints?: boolean;
2272
+ showOutlierPoints?: boolean;
2273
+ }
2274
+ /** Office 2016 ChartEx histogram and Pareto series layout options. */
2275
+ interface PptxChartHistogramOptions {
2276
+ /** Maps to `clusteredColumn` for histogram columns or `paretoLine`. */
2277
+ layout?: 'histogram' | 'pareto';
2278
+ /** Exactly one of binSize and binCount is emitted by the ChartEx writer. */
2279
+ binSize?: number;
2280
+ binCount?: number;
2281
+ intervalClosed?: 'l' | 'r';
2282
+ underflow?: number | 'auto';
2283
+ overflow?: number | 'auto';
2284
+ }
2285
+ /** Office 2016 ChartEx waterfall series layout options. */
2286
+ interface PptxChartWaterfallOptions {
2287
+ /** Zero-based data point indexes rendered as absolute subtotal or total bars. */
2288
+ subtotalIndices?: number[];
2289
+ /** Whether connector lines are visible between adjacent bars. */
2290
+ connectorLines?: boolean;
2291
+ }
2292
+ /** Office 2016 ChartEx geographic series dimensions and layout options. */
2293
+ interface PptxChartRegionMapOptions {
2294
+ /** Optional provider entity identifiers aligned with categories and values. */
2295
+ entityIds?: string[];
2296
+ /** Original `cx:pt/@idx` values for category points. */
2297
+ categorySourceIndices?: number[];
2298
+ /** Original `cx:pt/@idx` values for colour-value points. */
2299
+ valueSourceIndices?: number[];
2300
+ /** Original `cx:pt/@idx` values for entity-ID points. */
2301
+ entityIdSourceIndices?: number[];
2302
+ regionLabelLayout?: 'none' | 'bestFitOnly' | 'showAll';
2303
+ projectionType?: 'mercator' | 'miller' | 'robinson' | 'albers';
2304
+ viewedRegionType?: 'dataOnly' | 'postalCode' | 'county' | 'state' | 'countryRegion' | 'countryRegionList' | 'world';
2305
+ cultureLanguage?: string;
2306
+ /** ISO-3166-1 alpha-2 region code. */
2307
+ cultureRegion?: string;
2308
+ attribution?: string;
2309
+ /** Opaque authored provider cache under `cx:geography/cx:geoCache`. */
2310
+ geographyCache?: XmlObject;
2311
+ }
2312
+ /** Layout for parent category labels in a hierarchical ChartEx treemap. */
2313
+ type PptxChartParentLabelLayout = 'none' | 'banner' | 'overlapping';
2314
+ /** Per-series layout options for an Office 2016+ ChartEx treemap. */
2315
+ interface PptxChartTreemapOptions {
2316
+ parentLabelLayout?: PptxChartParentLabelLayout;
2317
+ }
2145
2318
  /**
2146
2319
  * A single data series within a chart.
2147
2320
  *
@@ -2177,6 +2350,11 @@ interface PptxChartSeries {
2177
2350
  * series.
2178
2351
  */
2179
2352
  seriesChartType?: PptxChartType;
2353
+ boxWhiskerOptions?: PptxChartBoxWhiskerOptions;
2354
+ histogramOptions?: PptxChartHistogramOptions;
2355
+ waterfallOptions?: PptxChartWaterfallOptions;
2356
+ regionMapOptions?: PptxChartRegionMapOptions;
2357
+ treemapOptions?: PptxChartTreemapOptions;
2180
2358
  }
2181
2359
  /**
2182
2360
  * Chart-level data-label options (`c:dLbls` directly under a chart-type
@@ -2382,6 +2560,16 @@ interface PptxEmbeddedWorkbookData {
2382
2560
  name: string;
2383
2561
  values: number[];
2384
2562
  }>;
2563
+ /** Whether the workbook uses the 1904 date system. */
2564
+ date1904?: boolean;
2565
+ }
2566
+ /** Raw numeric category cache used by a classic ChartML date axis. */
2567
+ interface PptxChartDateCategories {
2568
+ values: number[];
2569
+ /** False/default uses Excel's 1900 date system; true uses the 1904 system. */
2570
+ date1904?: boolean;
2571
+ /** Number format copied from the numeric category cache. */
2572
+ formatCode?: string;
2385
2573
  }
2386
2574
  /**
2387
2575
  * Complete parsed chart data for a {@link ChartPptxElement}.
@@ -2405,6 +2593,13 @@ interface PptxChartData {
2405
2593
  title?: string;
2406
2594
  chartType: PptxChartType;
2407
2595
  categories: string[];
2596
+ /**
2597
+ * Hierarchical category levels in source XML order for ChartEx hierarchy charts.
2598
+ * Level 0 contains the leaf labels and remains mirrored by {@link categories}
2599
+ * for consumers that only understand a flat category axis.
2600
+ */
2601
+ categoryLevels?: string[][];
2602
+ dateCategories?: PptxChartDateCategories;
2408
2603
  series: PptxChartSeries[];
2409
2604
  /** Chart style/formatting metadata. */
2410
2605
  style?: PptxChartStyle;
@@ -2441,12 +2636,7 @@ interface PptxChartData {
2441
2636
  * The chart still renders using its cached series data; this field
2442
2637
  * is metadata about the data origin, preserved for round-trip fidelity.
2443
2638
  */
2444
- pivotSource?: {
2445
- /** Pivot table reference name, e.g. "[workbook.xlsx]Sheet1!PivotTable1". */
2446
- name: string;
2447
- /** Format identifier from c:fmtId/@val. */
2448
- formatId?: number;
2449
- };
2639
+ pivotSource?: PptxChartPivotSource | null;
2450
2640
  /**
2451
2641
  * Whether only visible cells are plotted (c:plotVisOnly).
2452
2642
  * When `true` (the default), hidden cells are excluded from the chart.
@@ -2469,6 +2659,12 @@ interface PptxChartData {
2469
2659
  * - `"acrossLinear"` — gradient across series
2470
2660
  */
2471
2661
  colorMethod?: 'cycle' | 'withinLinear' | 'acrossLinear';
2662
+ /** Internal source color-style part path used for lossless dirty saves. */
2663
+ colorStylePartPath?: string;
2664
+ /** Internal parsed palette snapshot used to detect actual edits. */
2665
+ colorStyleOriginalPalette?: string[];
2666
+ /** Internal parsed method snapshot used to detect actual edits. */
2667
+ colorStyleOriginalMethod?: 'cycle' | 'withinLinear' | 'acrossLinear';
2472
2668
  /**
2473
2669
  * Pie-of-pie / Bar-of-pie options (`c:ofPieChart`, CT_OfPieChart).
2474
2670
  *
@@ -2494,6 +2690,10 @@ interface PptxChartData {
2494
2690
  * source data, so absence does not produce empty `<c:…/>` placeholders.
2495
2691
  */
2496
2692
  chartChrome?: PptxChartChrome;
2693
+ /** `c:chartSpace/c:printSettings`; `null` removes the container on save. */
2694
+ printSettings?: PptxChartPrintSettings | null;
2695
+ /** `c:chartSpace/c:protection`; `null` removes the container on save. */
2696
+ protection?: PptxChartProtection | null;
2497
2697
  /** Editable manual placement for the title, plot area, and legend. */
2498
2698
  layouts?: PptxChartLayouts;
2499
2699
  /**
@@ -2512,7 +2712,8 @@ interface PptxChartData {
2512
2712
  * for charts whose data originates from a PivotTable. Preserved
2513
2713
  * verbatim for round-trip fidelity.
2514
2714
  */
2515
- pivotFmtsXml?: unknown;
2715
+ /** Typed pivot-chart format persistence; `null` removes `c:pivotFmts`. */
2716
+ pivotFormats?: PptxChartPivotFormats | null;
2516
2717
  /**
2517
2718
  * Color-map override (`c:clrMapOvr`) carrying 12 attributes that
2518
2719
  * remap theme colour roles for this chart only. Preserved as a flat
@@ -2523,7 +2724,7 @@ interface PptxChartData {
2523
2724
 
2524
2725
  type EffectDagBlendMode = 'darken' | 'lighten' | 'mult' | 'over' | 'screen';
2525
2726
  type EffectDagContainerType = 'sib' | 'tree';
2526
- type EffectDagNode = EffectDagContainer | EffectDagBlend | EffectDagXfrm | EffectDagRelOff | EffectDagBlur | EffectDagPresetShadow | EffectDagRawLeaf;
2727
+ type EffectDagNode = EffectDagContainer | EffectDagBlend | EffectDagXfrm | EffectDagRelOff | EffectDagBlur | EffectDagAlphaOutset | EffectDagPresetShadow | EffectDagRawLeaf;
2527
2728
  interface EffectDagContainer {
2528
2729
  kind: 'cont';
2529
2730
  type: EffectDagContainerType;
@@ -2556,6 +2757,12 @@ interface EffectDagBlur {
2556
2757
  grow?: boolean;
2557
2758
  xml: XmlObject;
2558
2759
  }
2760
+ /** Typed CT_AlphaOutsetEffect with original XML retained for lossless edits. */
2761
+ interface EffectDagAlphaOutset {
2762
+ kind: 'alphaOutset';
2763
+ radiusEmu?: number;
2764
+ xml: XmlObject;
2765
+ }
2559
2766
  /** Typed CT_PresetShadowEffect with colour and extension XML retained verbatim. */
2560
2767
  interface EffectDagPresetShadow {
2561
2768
  kind: 'prstShdw';
@@ -2595,6 +2802,8 @@ interface PptxImageEffects {
2595
2802
  duotone?: {
2596
2803
  color1: string;
2597
2804
  color2: string;
2805
+ /** Original effect XML, retained while the resolved colours are unchanged. */
2806
+ rawXml?: XmlObject;
2598
2807
  };
2599
2808
  /** Grayscale flag. */
2600
2809
  grayscale?: boolean;
@@ -2609,8 +2818,10 @@ interface PptxImageEffects {
2609
2818
  artisticEffect?: string;
2610
2819
  /** Artistic effect radius/amount. */
2611
2820
  artisticRadius?: number;
2612
- /** Alpha modulation fixed overall opacity (0-100, where 100 = fully opaque). */
2821
+ /** Alpha modulation fixed: non-negative percentage (100 means unchanged opacity). */
2613
2822
  alphaModFix?: number;
2823
+ /** Original alpha modulation fixed node, including foreign attributes. */
2824
+ alphaModFixRawXml?: XmlObject;
2614
2825
  /** Bi-level threshold — converts to 1-bit black/white (0-100). */
2615
2826
  biLevel?: number;
2616
2827
  /** Colour change — swap one colour range for another (used for transparency keying). */
@@ -2619,7 +2830,13 @@ interface PptxImageEffects {
2619
2830
  clrTo: string;
2620
2831
  /** Whether the target colour is fully transparent (alpha = 0). */
2621
2832
  clrToTransparent?: boolean;
2833
+ /** Original effect XML, including colour transforms and extensions. */
2834
+ rawXml?: XmlObject;
2622
2835
  };
2836
+ /** Original grayscale node, including extension or foreign attributes. */
2837
+ grayscaleRawXml?: XmlObject;
2838
+ /** Original bi-level node, including extension or foreign attributes. */
2839
+ biLevelRawXml?: XmlObject;
2623
2840
  /**
2624
2841
  * Alpha inverse effect (`a:alphaInv`). Inverts the alpha channel; an optional
2625
2842
  * colour child shifts the inversion baseline.
@@ -2627,11 +2844,17 @@ interface PptxImageEffects {
2627
2844
  alphaInv?: {
2628
2845
  /** Optional baseline colour (hex). */
2629
2846
  color?: string;
2847
+ /** Original effect XML, including colour transforms and foreign attributes. */
2848
+ rawXml?: XmlObject;
2630
2849
  };
2631
2850
  /** Alpha ceiling (`a:alphaCeiling`) — clamps any non-zero alpha to fully opaque. Boolean flag. */
2632
2851
  alphaCeiling?: boolean;
2852
+ /** Original alpha ceiling node, including foreign attributes. */
2853
+ alphaCeilingRawXml?: XmlObject;
2633
2854
  /** Alpha floor (`a:alphaFloor`) — clamps any non-fully-opaque alpha to fully transparent. Boolean flag. */
2634
2855
  alphaFloor?: boolean;
2856
+ /** Original alpha floor node, including foreign attributes. */
2857
+ alphaFloorRawXml?: XmlObject;
2635
2858
  /**
2636
2859
  * Alpha modulate (`a:alphaMod`). The schema requires a single `cont` (effect
2637
2860
  * container) child; we preserve the inner XML opaquely for round-trip.
@@ -2639,11 +2862,17 @@ interface PptxImageEffects {
2639
2862
  alphaMod?: {
2640
2863
  /** Raw opaque XML for the `a:cont` child to preserve on save. */
2641
2864
  contRawXml?: Record<string, unknown>;
2865
+ /** Original effect XML, including foreign attributes. */
2866
+ rawXml?: XmlObject;
2642
2867
  };
2643
2868
  /** Alpha replace (`a:alphaRepl`) — replaces alpha with the given fixed-percent value (0..100). */
2644
2869
  alphaRepl?: number;
2870
+ /** Original alpha replace node, including foreign attributes. */
2871
+ alphaReplRawXml?: XmlObject;
2645
2872
  /** Alpha bi-level (`a:alphaBiLevel`) — threshold (0..100) above which alpha becomes fully opaque. */
2646
2873
  alphaBiLevel?: number;
2874
+ /** Original alpha bi-level node, including foreign attributes. */
2875
+ alphaBiLevelRawXml?: XmlObject;
2647
2876
  /**
2648
2877
  * Colour replace (`a:clrRepl`) — replaces all colour information in an image
2649
2878
  * with the given solid colour. Stores the raw colour child to preserve scheme
@@ -2786,6 +3015,7 @@ declare module "./index" {
2786
3015
  *
2787
3016
  * @module pptx-types/media
2788
3017
  */
3018
+
2789
3019
  /**
2790
3020
  * Discriminator for embedded media element types.
2791
3021
  *
@@ -2800,6 +3030,8 @@ type PptxMediaReferenceKind = 'audioCd' | 'wavAudioFile' | 'audioFile' | 'videoF
2800
3030
  interface PptxAudioCdPosition {
2801
3031
  track: number;
2802
3032
  time?: number;
3033
+ /** Original `st` or `end` node, retained for lossless edits. */
3034
+ rawXml?: XmlObject;
2803
3035
  }
2804
3036
  /**
2805
3037
  * A named bookmark within a media clip timeline.
@@ -2877,7 +3109,39 @@ interface MediaCaptionTrack {
2877
3109
  isDefault?: boolean;
2878
3110
  }
2879
3111
 
3112
+ type PptxSmartArtConstraintRelationship = 'self' | 'ch' | 'des';
3113
+ type PptxSmartArtConstraintOperator = 'none' | 'equ' | 'gte' | 'lte';
3114
+ type PptxSmartArtConstraintPointType = 'all' | 'doc' | 'node' | 'norm' | 'nonNorm' | 'asst' | 'nonAsst' | 'parTrans' | 'pres' | 'sibTrans';
3115
+ interface PptxSmartArtConstraintTarget {
3116
+ for?: PptxSmartArtConstraintRelationship;
3117
+ forName?: string;
3118
+ pointType?: PptxSmartArtConstraintPointType;
3119
+ }
3120
+ /** Editable DiagramML CT_Constraint. */
3121
+ interface PptxSmartArtConstraint extends PptxSmartArtConstraintTarget {
3122
+ type: string;
3123
+ referenceType?: string;
3124
+ referenceFor?: PptxSmartArtConstraintRelationship;
3125
+ referenceForName?: string;
3126
+ referencePointType?: PptxSmartArtConstraintPointType;
3127
+ operator?: PptxSmartArtConstraintOperator;
3128
+ value?: number;
3129
+ factor?: number;
3130
+ /** Original constraint retained for foreign attributes and extension content. */
3131
+ rawXml?: XmlObject;
3132
+ }
3133
+ /** Editable DiagramML CT_NumericRule. */
3134
+ interface PptxSmartArtNumericRule extends PptxSmartArtConstraintTarget {
3135
+ type: string;
3136
+ value?: number;
3137
+ factor?: number;
3138
+ max?: number;
3139
+ /** Original rule retained for foreign attributes and extension content. */
3140
+ rawXml?: XmlObject;
3141
+ }
3142
+
2880
3143
  /** Typed, editable metadata from a DiagramML layout-definition part. */
3144
+
2881
3145
  interface PptxSmartArtLocalizedText {
2882
3146
  value: string;
2883
3147
  language?: string;
@@ -2886,12 +3150,56 @@ interface PptxSmartArtLayoutCategory {
2886
3150
  type: string;
2887
3151
  priority: number;
2888
3152
  }
3153
+ interface PptxSmartArtAlgorithmParameter {
3154
+ type: string;
3155
+ value?: string;
3156
+ }
3157
+ /** Typed DiagramML CT_Algorithm data attached to a layout node. */
3158
+ interface PptxSmartArtLayoutAlgorithm {
3159
+ type: string;
3160
+ revision?: number;
3161
+ parameters?: PptxSmartArtAlgorithmParameter[];
3162
+ }
3163
+ interface PptxSmartArtIteratorAttributes {
3164
+ name?: string;
3165
+ reference?: string;
3166
+ axis?: string[];
3167
+ pointTypes?: string[];
3168
+ hideLastTransition?: boolean[];
3169
+ start?: number[];
3170
+ count?: number[];
3171
+ step?: number[];
3172
+ }
3173
+ interface PptxSmartArtForEach extends PptxSmartArtIteratorAttributes {
3174
+ rawXml?: XmlObject;
3175
+ }
3176
+ interface PptxSmartArtWhen extends PptxSmartArtIteratorAttributes {
3177
+ function: string;
3178
+ argument?: string;
3179
+ operator: string;
3180
+ value: string;
3181
+ rawXml?: XmlObject;
3182
+ }
3183
+ interface PptxSmartArtChoose {
3184
+ name?: string;
3185
+ when: PptxSmartArtWhen[];
3186
+ otherwise?: {
3187
+ name?: string;
3188
+ rawXml?: XmlObject;
3189
+ } | null;
3190
+ rawXml?: XmlObject;
3191
+ }
2889
3192
  /** Identity and ordering metadata from DiagramML CT_LayoutNode. */
2890
3193
  interface PptxSmartArtLayoutNode {
2891
3194
  name?: string;
2892
3195
  styleLabel?: string;
2893
3196
  childOrder?: 'b' | 't';
2894
3197
  moveWith?: string;
3198
+ algorithm?: PptxSmartArtLayoutAlgorithm;
3199
+ forEach?: PptxSmartArtForEach[];
3200
+ choose?: PptxSmartArtChoose[];
3201
+ constraints?: PptxSmartArtConstraint[];
3202
+ rules?: PptxSmartArtNumericRule[];
2895
3203
  children?: PptxSmartArtLayoutNode[];
2896
3204
  }
2897
3205
  /** Metadata and root node from DiagramML CT_DiagramDefinition. */
@@ -2903,6 +3211,8 @@ interface PptxSmartArtLayoutDefinition {
2903
3211
  descriptions?: PptxSmartArtLocalizedText[];
2904
3212
  categories?: PptxSmartArtLayoutCategory[];
2905
3213
  rootNode: PptxSmartArtLayoutNode;
3214
+ /** Original definition retained for constraint evaluation and foreign rules. */
3215
+ rawXml?: XmlObject;
2906
3216
  }
2907
3217
 
2908
3218
  /**
@@ -2914,6 +3224,7 @@ interface PptxSmartArtLayoutDefinition {
2914
3224
  *
2915
3225
  * @module pptx-types/smart-art-node
2916
3226
  */
3227
+
2917
3228
  /**
2918
3229
  * A single run of text inside a SmartArt node, capturing the run text and the
2919
3230
  * raw `a:rPr` run-properties object verbatim so per-run formatting (bold,
@@ -2937,6 +3248,54 @@ interface PptxSmartArtTextRun {
2937
3248
  * round-trip. Untyped XML, hence the loose record shape.
2938
3249
  */
2939
3250
  rPr?: Record<string, unknown>;
3251
+ /** Resolved standard shape-text style derived from {@link rPr}. */
3252
+ style?: TextStyle;
3253
+ /** Raw run XML used to retain unmodelled extension children on save. */
3254
+ rawXml?: Record<string, unknown>;
3255
+ /** Original direct-child order, including unmodelled extension children. */
3256
+ childOrder?: string[];
3257
+ }
3258
+ /** An ordered item within a SmartArt text paragraph. */
3259
+ type PptxSmartArtTextParagraphItem = {
3260
+ kind: 'run';
3261
+ run: PptxSmartArtTextRun;
3262
+ } | {
3263
+ kind: 'break';
3264
+ rPr?: Record<string, unknown>;
3265
+ style?: TextStyle;
3266
+ rawXml?: Record<string, unknown>;
3267
+ childOrder?: string[];
3268
+ } | {
3269
+ kind: 'field';
3270
+ id?: string;
3271
+ fieldType?: string;
3272
+ text: string;
3273
+ rPr?: Record<string, unknown>;
3274
+ style?: TextStyle;
3275
+ pPr?: Record<string, unknown>;
3276
+ rawXml?: Record<string, unknown>;
3277
+ childOrder?: string[];
3278
+ } | {
3279
+ kind: 'tab';
3280
+ rawXml?: Record<string, unknown>;
3281
+ childOrder?: string[];
3282
+ } | {
3283
+ kind: 'raw';
3284
+ name: string;
3285
+ value: unknown;
3286
+ };
3287
+ /** A complete `a:p` paragraph in a SmartArt data-model text body. */
3288
+ interface PptxSmartArtTextParagraph {
3289
+ /** Paragraph properties (`a:pPr`) preserved verbatim. */
3290
+ pPr?: Record<string, unknown>;
3291
+ /** Text children in source order. */
3292
+ items: PptxSmartArtTextParagraphItem[];
3293
+ /** End-paragraph run properties (`a:endParaRPr`) preserved verbatim. */
3294
+ endParaRPr?: Record<string, unknown>;
3295
+ /** Resolved style for the paragraph terminator. */
3296
+ endParaStyle?: TextStyle;
3297
+ /** Raw paragraph XML used to retain unmodelled extension children on save. */
3298
+ rawXml?: Record<string, unknown>;
2940
3299
  }
2941
3300
  /**
2942
3301
  * Per-node visual override for a SmartArt node.
@@ -3006,6 +3365,11 @@ interface PptxSmartArtNode {
3006
3365
  * is not flattened. When {@link text} diverges, the runs are ignored.
3007
3366
  */
3008
3367
  runs?: PptxSmartArtTextRun[];
3368
+ /**
3369
+ * Complete typed paragraph model. Unlike {@link runs}, this retains every
3370
+ * paragraph and the ordered run, field, break, and tab children within it.
3371
+ */
3372
+ paragraphs?: PptxSmartArtTextParagraph[];
3009
3373
  /**
3010
3374
  * Optional per-node visual override (fill / line / font colour, bold /
3011
3375
  * italic). Read at parse time from the point's `spPr` / first-run `rPr`, set
@@ -3169,7 +3533,7 @@ interface PptxSmartArtConnection {
3169
3533
  * // => satisfies PptxSmartArtDrawingShape
3170
3534
  * ```
3171
3535
  */
3172
- interface PptxSmartArtDrawingShape {
3536
+ interface PptxSmartArtDrawingShape extends PptxCustomPathProperties {
3173
3537
  /** Shape ID within the drawing. */
3174
3538
  id: string;
3175
3539
  /** Preset geometry type (e.g. "roundRect", "ellipse"). */
@@ -3193,6 +3557,8 @@ interface PptxSmartArtDrawingShape {
3193
3557
  strokeWidth?: number;
3194
3558
  /** Text content of the shape. */
3195
3559
  text?: string;
3560
+ /** Standard rich-text segments projected from the associated SmartArt node. */
3561
+ textSegments?: TextSegment[];
3196
3562
  /** Font size in points. */
3197
3563
  fontSize?: number;
3198
3564
  /** Font colour (hex). */
@@ -3770,6 +4136,8 @@ interface MediaPptxElement extends PptxElementBase {
3770
4136
  mediaMimeType?: string;
3771
4137
  mediaReferenceKind?: PptxMediaReferenceKind;
3772
4138
  mediaReferenceName?: string;
4139
+ /** Explicit DrawingML `audioFile/@contentType` value when present. */
4140
+ mediaReferenceContentType?: string;
3773
4141
  audioCdStart?: PptxAudioCdPosition;
3774
4142
  audioCdEnd?: PptxAudioCdPosition;
3775
4143
  rawMediaReferenceXml?: XmlObject;
@@ -3893,6 +4261,10 @@ interface ContentPartPptxElement extends PptxElementBase {
3893
4261
  type: 'contentPart';
3894
4262
  /** Ink strokes contained in this content part. */
3895
4263
  inkStrokes?: ContentPartInkStroke[];
4264
+ /** Package path of the related InkML part. */
4265
+ inkPartPath?: string;
4266
+ /** Parsed InkML root retained for unknown-node preservation on dirty save. */
4267
+ inkPartRawXml?: XmlObject;
3896
4268
  }
3897
4269
  /**
3898
4270
  * A Slide Zoom or Section Zoom element (PowerPoint Zoom Object).
@@ -3913,12 +4285,32 @@ interface ContentPartPptxElement extends PptxElementBase {
3913
4285
  */
3914
4286
  interface ZoomPptxElement extends PptxElementBase, PptxImageProperties {
3915
4287
  type: 'zoom';
3916
- /** Type of zoom: slide-level or section-level. */
3917
- zoomType: 'slide' | 'section';
4288
+ /** Type of zoom: slide-level, section-level, or a multi-section summary. */
4289
+ zoomType: 'slide' | 'section' | 'summary';
3918
4290
  /** Zero-based index of the target slide. */
3919
4291
  targetSlideIndex: number;
3920
4292
  /** Section ID for section zoom. */
3921
4293
  targetSectionId?: string;
4294
+ /** Ordered section tiles in a Summary Zoom container. */
4295
+ summaryTargets?: SummaryZoomTarget[];
4296
+ /** Layout mode authored on the Summary Zoom container. */
4297
+ summaryLayout?: 'grid' | 'fixed';
4298
+ }
4299
+ /** A single section tile within a PowerPoint Summary Zoom container. */
4300
+ interface SummaryZoomTarget extends PptxImageProperties {
4301
+ sectionId: string;
4302
+ targetSlideIndex: number;
4303
+ x: number;
4304
+ y: number;
4305
+ width: number;
4306
+ height: number;
4307
+ title?: string;
4308
+ description?: string;
4309
+ offsetFactorX?: number;
4310
+ offsetFactorY?: number;
4311
+ scaleFactorX?: number;
4312
+ scaleFactorY?: number;
4313
+ rawXml?: XmlObject;
3922
4314
  }
3923
4315
  /**
3924
4316
  * A 3D model object embedded via `p16:model3D` inside an
@@ -4539,12 +4931,16 @@ interface PptxSlideTransition {
4539
4931
  * @see ECMA-376 Part 1, §19.2.1.3 (custDataLst), §19.3.1.6 (custData)
4540
4932
  */
4541
4933
  interface PptxCustomerData {
4542
- /** Resolved part path inside the package (e.g. `ppt/customerData/item1.xml`). */
4543
- id: string;
4934
+ /** Resolved part path inside the package (e.g. `customXml/item1.xml`). */
4935
+ id?: string;
4544
4936
  /** Relationship ID referencing the custom data part. */
4545
- relId: string;
4937
+ relId?: string;
4546
4938
  /** Raw string content of the custom data part (if resolvable). */
4547
4939
  data?: string;
4940
+ /** OPC content type for the custom data part. */
4941
+ contentType?: string;
4942
+ /** Raw `p:custData` XML retained for unknown-node preservation. */
4943
+ rawXml?: XmlObject;
4548
4944
  }
4549
4945
  /**
4550
4946
  * An ActiveX control reference from `p:controls / p:control`.