pptx-react-viewer 1.18.0 → 1.19.1

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 (99) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/{Model3DScene-GVWQ6SOM.js → Model3DScene-3RYDRQOD.js} +3 -3
  3. package/dist/Model3DScene-3RYDRQOD.js.br +0 -0
  4. package/dist/Model3DScene-3RYDRQOD.js.gz +0 -0
  5. package/dist/{Model3DScene-JGVLIDLD.mjs → Model3DScene-SLGODOXT.mjs} +2 -2
  6. package/dist/Model3DScene-SLGODOXT.mjs.br +0 -0
  7. package/dist/Model3DScene-SLGODOXT.mjs.gz +0 -0
  8. package/dist/PowerPointViewer-C4d7SKZf.d.ts.map +1 -1
  9. package/dist/{SurfaceChart3DScene-ZOTOHOIE.js → SurfaceChart3DScene-3UZ5HZ2W.js} +3 -3
  10. package/dist/SurfaceChart3DScene-3UZ5HZ2W.js.br +0 -0
  11. package/dist/SurfaceChart3DScene-3UZ5HZ2W.js.gz +0 -0
  12. package/dist/{SurfaceChart3DScene-DBWSDSKI.mjs → SurfaceChart3DScene-YL4QD3O5.mjs} +2 -2
  13. package/dist/SurfaceChart3DScene-YL4QD3O5.mjs.br +0 -0
  14. package/dist/SurfaceChart3DScene-YL4QD3O5.mjs.gz +0 -0
  15. package/dist/{chunk-Z4MDCPAY.mjs → chunk-3TRQKGBU.mjs} +26 -731
  16. package/dist/chunk-3TRQKGBU.mjs.br +0 -0
  17. package/dist/chunk-3TRQKGBU.mjs.gz +0 -0
  18. package/dist/{chunk-SBNTEQUA.mjs → chunk-3ZGCM6RC.mjs} +20269 -12232
  19. package/dist/chunk-3ZGCM6RC.mjs.br +0 -0
  20. package/dist/chunk-3ZGCM6RC.mjs.gz +0 -0
  21. package/dist/{chunk-73ST7AC6.js → chunk-7JYQRDRI.js} +6962 -6661
  22. package/dist/chunk-7JYQRDRI.js.br +0 -0
  23. package/dist/chunk-7JYQRDRI.js.gz +0 -0
  24. package/dist/{chunk-EXDUEXTO.js → chunk-AD3EAEY6.js} +20282 -12231
  25. package/dist/chunk-AD3EAEY6.js.br +0 -0
  26. package/dist/chunk-AD3EAEY6.js.gz +0 -0
  27. package/dist/{chunk-HBXPK572.js → chunk-G5GATDE4.js} +2969 -746
  28. package/dist/chunk-G5GATDE4.js.br +0 -0
  29. package/dist/chunk-G5GATDE4.js.gz +0 -0
  30. package/dist/{chunk-JDRC3PSY.js → chunk-H5V24JVW.js} +470 -1186
  31. package/dist/chunk-H5V24JVW.js.br +0 -0
  32. package/dist/chunk-H5V24JVW.js.gz +0 -0
  33. package/dist/{chunk-KMLIWCNL.mjs → chunk-TG2ZYU7Y.mjs} +5782 -5480
  34. package/dist/chunk-TG2ZYU7Y.mjs.br +0 -0
  35. package/dist/chunk-TG2ZYU7Y.mjs.gz +0 -0
  36. package/dist/{chunk-HHTZQHKZ.mjs → chunk-VOU7OCQM.mjs} +2922 -722
  37. package/dist/chunk-VOU7OCQM.mjs.br +0 -0
  38. package/dist/chunk-VOU7OCQM.mjs.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 +0 -0
  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 +2 -2
  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 +12 -12
  71. package/dist/Model3DScene-GVWQ6SOM.js.br +0 -0
  72. package/dist/Model3DScene-GVWQ6SOM.js.gz +0 -0
  73. package/dist/Model3DScene-JGVLIDLD.mjs.br +0 -0
  74. package/dist/Model3DScene-JGVLIDLD.mjs.gz +0 -0
  75. package/dist/SurfaceChart3DScene-DBWSDSKI.mjs.br +0 -0
  76. package/dist/SurfaceChart3DScene-DBWSDSKI.mjs.gz +0 -0
  77. package/dist/SurfaceChart3DScene-ZOTOHOIE.js.br +0 -0
  78. package/dist/SurfaceChart3DScene-ZOTOHOIE.js.gz +0 -0
  79. package/dist/chunk-73ST7AC6.js.br +0 -0
  80. package/dist/chunk-73ST7AC6.js.gz +0 -0
  81. package/dist/chunk-EXDUEXTO.js.br +0 -0
  82. package/dist/chunk-EXDUEXTO.js.gz +0 -0
  83. package/dist/chunk-HBXPK572.js.br +0 -0
  84. package/dist/chunk-HBXPK572.js.gz +0 -0
  85. package/dist/chunk-HHTZQHKZ.mjs.br +0 -0
  86. package/dist/chunk-HHTZQHKZ.mjs.gz +0 -0
  87. package/dist/chunk-JDRC3PSY.js.br +0 -0
  88. package/dist/chunk-JDRC3PSY.js.gz +0 -0
  89. package/dist/chunk-KMLIWCNL.mjs.br +0 -0
  90. package/dist/chunk-KMLIWCNL.mjs.gz +0 -0
  91. package/dist/chunk-SBNTEQUA.mjs.br +0 -0
  92. package/dist/chunk-SBNTEQUA.mjs.gz +0 -0
  93. package/dist/chunk-Z4MDCPAY.mjs.br +0 -0
  94. package/dist/chunk-Z4MDCPAY.mjs.gz +0 -0
  95. package/dist/dist-KRRXYUGI.js.br +0 -0
  96. package/dist/dist-KRRXYUGI.js.gz +0 -0
  97. package/dist/dist-N6PAPXK6.mjs +0 -2
  98. package/dist/dist-N6PAPXK6.mjs.br +0 -0
  99. package/dist/dist-N6PAPXK6.mjs.gz +0 -0
@@ -439,6 +439,8 @@ interface CustomGeometryPath {
439
439
  * and the text rectangle are not lost when a custGeom is edited and saved.
440
440
  */
441
441
  interface CustomGeometryRawData {
442
+ /** Raw `a:avLst` XML content (adjustment value list). */
443
+ avLstXml?: unknown;
442
444
  /** Raw `a:gdLst` XML content (guide list). */
443
445
  gdLstXml?: unknown;
444
446
  /** Raw `a:ahLst` XML content (adjustment handles). */
@@ -579,7 +581,7 @@ interface PptxCustomPathProperties {
579
581
  pathHeight?: number;
580
582
  /** Structured custom geometry paths for editing (maps to a:custGeom/a:pathLst). */
581
583
  customGeometryPaths?: CustomGeometryPath[];
582
- /** Raw a:gdLst/a:ahLst/a:cxnLst/a:rect XML preserved for round-trip serialization. */
584
+ /** Raw adjustment/guide/handle/connection/text-rectangle XML preserved for serialization. */
583
585
  customGeometryRawData?: CustomGeometryRawData;
584
586
  /**
585
587
  * Typed XY adjustment handles parsed from `a:custGeom/a:ahLst/a:ahXY`.
@@ -790,6 +792,12 @@ type PptxTextWarpPreset = 'textNoShape' | 'textPlain' | 'textStop' | 'textTriang
790
792
  * @module pptx-types/shape-style
791
793
  */
792
794
 
795
+ interface PptxCustomDashSegment {
796
+ /** Dash length as a non-negative percentage in thousandths of one percent. */
797
+ dash: number;
798
+ /** Space length as a non-negative percentage in thousandths of one percent. */
799
+ space: number;
800
+ }
793
801
  /**
794
802
  * Comprehensive visual style for a shape, connector, or image element.
795
803
  *
@@ -1022,11 +1030,12 @@ interface ShapeStyle {
1022
1030
  connectorStartConnection?: ConnectorConnectionPoint;
1023
1031
  /** Connection point for the end of a connector. */
1024
1032
  connectorEndConnection?: ConnectorConnectionPoint;
1025
- /** Custom dash segments array (`a:custDash/a:ds`). Each entry has dash length and space length in EMU. */
1026
- customDashSegments?: Array<{
1027
- dash: number;
1028
- space: number;
1029
- }>;
1033
+ /** Custom dash pattern, measured relative to line width in thousandths of one percent. */
1034
+ customDashSegments?: PptxCustomDashSegment[];
1035
+ /** Original `a:ds` payloads retained by index for lossless edits. */
1036
+ customDashSegmentXml?: XmlObject[];
1037
+ /** Original `a:custDash` payload retained for lossless edits. */
1038
+ customDashXml?: XmlObject;
1030
1039
  /** 3D scene/camera settings from `a:scene3d`. */
1031
1040
  scene3d?: Pptx3DScene;
1032
1041
  /** 3D shape extrusion/bevel from `a:sp3d`. */
@@ -1138,6 +1147,8 @@ interface ShapeStyle {
1138
1147
  * ```
1139
1148
  */
1140
1149
  interface TextStyle {
1150
+ /** Original `a:rPr` XML retained by projections that share the shape-text model. */
1151
+ runPropertiesXml?: XmlObject;
1141
1152
  fontFamily?: string;
1142
1153
  fontSize?: number;
1143
1154
  /** When true, renderer should shrink text to fit the shape bounds. */
@@ -1880,10 +1891,104 @@ interface PptxChartAxisLabelFormatting {
1880
1891
  labelAlignment?: 'ctr' | 'l' | 'r';
1881
1892
  /** Category/date label distance, from 0 through 1000 percent. */
1882
1893
  labelOffset?: number;
1894
+ /** Number of category/date labels between rendered labels. */
1895
+ tickLabelSkip?: number;
1896
+ /** Number of category/date tick positions between major tick marks. */
1897
+ tickMarkSkip?: number;
1883
1898
  /** Suppress multi-level category labels (`c:noMultiLvlLbl`). */
1884
1899
  noMultiLevelLabels?: boolean;
1885
1900
  }
1886
1901
 
1902
+ interface PptxChartPivotFormat {
1903
+ index: number;
1904
+ shapePropertiesXml?: XmlObject | null;
1905
+ markerXml?: XmlObject | null;
1906
+ dataLabelXml?: XmlObject | null;
1907
+ extensionListXml?: XmlObject | null;
1908
+ rawXml?: XmlObject;
1909
+ }
1910
+ /** Editable classic ChartML `c:pivotFmts` collection. */
1911
+ interface PptxChartPivotFormats {
1912
+ formats: PptxChartPivotFormat[];
1913
+ rawXml?: XmlObject;
1914
+ }
1915
+
1916
+ /** Editable classic ChartML `c:pivotSource` metadata. */
1917
+ interface PptxChartPivotSource {
1918
+ /** Pivot table reference stored as `c:name` text. */
1919
+ name: string;
1920
+ /** Required unsigned format identifier stored in `c:fmtId/@val`. */
1921
+ formatId: number;
1922
+ /** Internal source subtree used to preserve extensions and foreign markup. */
1923
+ rawXml?: XmlObject;
1924
+ }
1925
+
1926
+ /** Headers and footers used when a classic ChartML chart is printed. */
1927
+ interface PptxChartPrintHeaderFooter {
1928
+ oddHeader?: string;
1929
+ oddFooter?: string;
1930
+ evenHeader?: string;
1931
+ evenFooter?: string;
1932
+ firstHeader?: string;
1933
+ firstFooter?: string;
1934
+ alignWithMargins?: boolean;
1935
+ differentOddEven?: boolean;
1936
+ differentFirst?: boolean;
1937
+ /** Original subtree retained for foreign attributes and extension children. */
1938
+ rawXml?: unknown;
1939
+ }
1940
+ /** Required page margins from ChartML `c:pageMargins`, measured in inches. */
1941
+ interface PptxChartPageMargins {
1942
+ left: number;
1943
+ right: number;
1944
+ top: number;
1945
+ bottom: number;
1946
+ header: number;
1947
+ footer: number;
1948
+ /** Original leaf retained for foreign attributes. */
1949
+ rawXml?: unknown;
1950
+ }
1951
+ /** Printer page configuration from ChartML `c:pageSetup`. */
1952
+ interface PptxChartPageSetup {
1953
+ paperSize?: number;
1954
+ firstPageNumber?: number;
1955
+ orientation?: 'default' | 'portrait' | 'landscape';
1956
+ blackAndWhite?: boolean;
1957
+ draft?: boolean;
1958
+ useFirstPageNumber?: boolean;
1959
+ horizontalDpi?: number;
1960
+ verticalDpi?: number;
1961
+ copies?: number;
1962
+ /** Original leaf retained for foreign attributes. */
1963
+ rawXml?: unknown;
1964
+ }
1965
+ /** Editable `c:printSettings` content from a classic ChartML chart space. */
1966
+ interface PptxChartPrintSettings {
1967
+ headerFooter?: PptxChartPrintHeaderFooter | null;
1968
+ pageMargins?: PptxChartPageMargins | null;
1969
+ pageSetup?: PptxChartPageSetup | null;
1970
+ /** `null` removes the legacy header/footer drawing relationship element. */
1971
+ legacyDrawingHeaderFooterRelationshipId?: string | null;
1972
+ /** Original subtree retained for unknown and extension content. */
1973
+ rawXml?: unknown;
1974
+ }
1975
+
1976
+ /** Editable classic ChartML `c:protection` settings. */
1977
+ interface PptxChartProtection {
1978
+ /** Prevent editing the chart object. */
1979
+ chartObject?: boolean | null;
1980
+ /** Prevent editing the chart data. */
1981
+ data?: boolean | null;
1982
+ /** Prevent editing chart formatting. */
1983
+ formatting?: boolean | null;
1984
+ /** Prevent selecting chart elements. */
1985
+ selection?: boolean | null;
1986
+ /** Prevent chart user-interface operations. */
1987
+ userInterface?: boolean | null;
1988
+ /** Internal source subtree used to preserve foreign markup during edits. */
1989
+ rawXml?: XmlObject;
1990
+ }
1991
+
1887
1992
  /**
1888
1993
  * Chart types: chart categories, series data, style metadata, data tables,
1889
1994
  * trendlines, error bars, and the composite `PptxChartData`.
@@ -2040,6 +2145,7 @@ interface PptxChartUpDownBars {
2040
2145
  /** Marker appearance on a chart series or data point. */
2041
2146
  interface PptxChartMarker {
2042
2147
  symbol: PptxChartMarkerSymbol;
2148
+ /** Marker size in points, constrained by ST_MarkerSize to 2 through 72. */
2043
2149
  size?: number;
2044
2150
  spPr?: PptxChartShapeProps;
2045
2151
  }
@@ -2050,6 +2156,8 @@ interface PptxChartDataPoint {
2050
2156
  explosion?: number;
2051
2157
  invertIfNegative?: boolean;
2052
2158
  marker?: PptxChartMarker;
2159
+ /** Render a bubble-chart point with a 3-D appearance. */
2160
+ bubble3D?: boolean;
2053
2161
  }
2054
2162
  /** Schema values accepted by `c:dLblPos`. */
2055
2163
  type PptxChartDataLabelPosition = 'bestFit' | 'b' | 'ctr' | 'inBase' | 'inEnd' | 'l' | 'outEnd' | 'r' | 't';
@@ -2092,6 +2200,12 @@ interface PptxChartAxisFormatting extends PptxChartAxisLabelFormatting {
2092
2200
  axisId?: number;
2093
2201
  /** Cross-axis identifier — the axis this axis crosses. */
2094
2202
  crossAxisId?: number;
2203
+ /** Automatic crossing mode (`c:crosses`). Mutually exclusive with `crossesAt`. */
2204
+ crosses?: 'autoZero' | 'min' | 'max';
2205
+ /** Explicit crossing value (`c:crossesAt`). Units depend on the axis type. */
2206
+ crossesAt?: number;
2207
+ /** Whether a value axis crosses between or at category tick marks. */
2208
+ crossBetween?: 'between' | 'midCat';
2095
2209
  numFmt?: PptxChartAxisNumFmt;
2096
2210
  titleText?: string;
2097
2211
  spPr?: PptxChartShapeProps;
@@ -2109,6 +2223,8 @@ interface PptxChartAxisFormatting extends PptxChartAxisLabelFormatting {
2109
2223
  min?: number;
2110
2224
  /** Maximum axis value override (c:max/@val). */
2111
2225
  max?: number;
2226
+ /** Axis value direction (`c:scaling/c:orientation/@val`). */
2227
+ orientation?: 'minMax' | 'maxMin';
2112
2228
  /** Whether the axis is deleted/hidden (c:delete/@val). */
2113
2229
  deleted?: boolean;
2114
2230
  /**
@@ -2132,12 +2248,69 @@ interface PptxChartAxisFormatting extends PptxChartAxisLabelFormatting {
2132
2248
  majorUnit?: number;
2133
2249
  /** Minor-unit interval between secondary tick marks (c:minorUnit/@val). */
2134
2250
  minorUnit?: number;
2251
+ /** Calendar unit used to interpret date-axis serial values. */
2252
+ baseTimeUnit?: 'days' | 'months' | 'years';
2253
+ majorTimeUnit?: 'days' | 'months' | 'years';
2254
+ minorTimeUnit?: 'days' | 'months' | 'years';
2135
2255
  }
2136
2256
  /** 3D wall or floor element formatting. */
2137
2257
  interface PptxChart3DSurface {
2138
2258
  thickness?: number;
2139
2259
  spPr?: PptxChartShapeProps;
2140
2260
  }
2261
+ /** Office 2016 ChartEx box-and-whisker series layout options. */
2262
+ interface PptxChartBoxWhiskerOptions {
2263
+ quartileMethod?: 'inclusive' | 'exclusive';
2264
+ showMeanLine?: boolean;
2265
+ showMeanMarker?: boolean;
2266
+ /** Show non-outlier (inner) data points. */
2267
+ showInnerPoints?: boolean;
2268
+ showOutlierPoints?: boolean;
2269
+ }
2270
+ /** Office 2016 ChartEx histogram and Pareto series layout options. */
2271
+ interface PptxChartHistogramOptions {
2272
+ /** Maps to `clusteredColumn` for histogram columns or `paretoLine`. */
2273
+ layout?: 'histogram' | 'pareto';
2274
+ /** Exactly one of binSize and binCount is emitted by the ChartEx writer. */
2275
+ binSize?: number;
2276
+ binCount?: number;
2277
+ intervalClosed?: 'l' | 'r';
2278
+ underflow?: number | 'auto';
2279
+ overflow?: number | 'auto';
2280
+ }
2281
+ /** Office 2016 ChartEx waterfall series layout options. */
2282
+ interface PptxChartWaterfallOptions {
2283
+ /** Zero-based data point indexes rendered as absolute subtotal or total bars. */
2284
+ subtotalIndices?: number[];
2285
+ /** Whether connector lines are visible between adjacent bars. */
2286
+ connectorLines?: boolean;
2287
+ }
2288
+ /** Office 2016 ChartEx geographic series dimensions and layout options. */
2289
+ interface PptxChartRegionMapOptions {
2290
+ /** Optional provider entity identifiers aligned with categories and values. */
2291
+ entityIds?: string[];
2292
+ /** Original `cx:pt/@idx` values for category points. */
2293
+ categorySourceIndices?: number[];
2294
+ /** Original `cx:pt/@idx` values for colour-value points. */
2295
+ valueSourceIndices?: number[];
2296
+ /** Original `cx:pt/@idx` values for entity-ID points. */
2297
+ entityIdSourceIndices?: number[];
2298
+ regionLabelLayout?: 'none' | 'bestFitOnly' | 'showAll';
2299
+ projectionType?: 'mercator' | 'miller' | 'robinson' | 'albers';
2300
+ viewedRegionType?: 'dataOnly' | 'postalCode' | 'county' | 'state' | 'countryRegion' | 'countryRegionList' | 'world';
2301
+ cultureLanguage?: string;
2302
+ /** ISO-3166-1 alpha-2 region code. */
2303
+ cultureRegion?: string;
2304
+ attribution?: string;
2305
+ /** Opaque authored provider cache under `cx:geography/cx:geoCache`. */
2306
+ geographyCache?: XmlObject;
2307
+ }
2308
+ /** Layout for parent category labels in a hierarchical ChartEx treemap. */
2309
+ type PptxChartParentLabelLayout = 'none' | 'banner' | 'overlapping';
2310
+ /** Per-series layout options for an Office 2016+ ChartEx treemap. */
2311
+ interface PptxChartTreemapOptions {
2312
+ parentLabelLayout?: PptxChartParentLabelLayout;
2313
+ }
2141
2314
  /**
2142
2315
  * A single data series within a chart.
2143
2316
  *
@@ -2173,6 +2346,11 @@ interface PptxChartSeries {
2173
2346
  * series.
2174
2347
  */
2175
2348
  seriesChartType?: PptxChartType;
2349
+ boxWhiskerOptions?: PptxChartBoxWhiskerOptions;
2350
+ histogramOptions?: PptxChartHistogramOptions;
2351
+ waterfallOptions?: PptxChartWaterfallOptions;
2352
+ regionMapOptions?: PptxChartRegionMapOptions;
2353
+ treemapOptions?: PptxChartTreemapOptions;
2176
2354
  }
2177
2355
  /**
2178
2356
  * Chart-level data-label options (`c:dLbls` directly under a chart-type
@@ -2378,6 +2556,16 @@ interface PptxEmbeddedWorkbookData {
2378
2556
  name: string;
2379
2557
  values: number[];
2380
2558
  }>;
2559
+ /** Whether the workbook uses the 1904 date system. */
2560
+ date1904?: boolean;
2561
+ }
2562
+ /** Raw numeric category cache used by a classic ChartML date axis. */
2563
+ interface PptxChartDateCategories {
2564
+ values: number[];
2565
+ /** False/default uses Excel's 1900 date system; true uses the 1904 system. */
2566
+ date1904?: boolean;
2567
+ /** Number format copied from the numeric category cache. */
2568
+ formatCode?: string;
2381
2569
  }
2382
2570
  /**
2383
2571
  * Complete parsed chart data for a {@link ChartPptxElement}.
@@ -2401,6 +2589,13 @@ interface PptxChartData {
2401
2589
  title?: string;
2402
2590
  chartType: PptxChartType;
2403
2591
  categories: string[];
2592
+ /**
2593
+ * Hierarchical category levels in source XML order for ChartEx hierarchy charts.
2594
+ * Level 0 contains the leaf labels and remains mirrored by {@link categories}
2595
+ * for consumers that only understand a flat category axis.
2596
+ */
2597
+ categoryLevels?: string[][];
2598
+ dateCategories?: PptxChartDateCategories;
2404
2599
  series: PptxChartSeries[];
2405
2600
  /** Chart style/formatting metadata. */
2406
2601
  style?: PptxChartStyle;
@@ -2437,12 +2632,7 @@ interface PptxChartData {
2437
2632
  * The chart still renders using its cached series data; this field
2438
2633
  * is metadata about the data origin, preserved for round-trip fidelity.
2439
2634
  */
2440
- pivotSource?: {
2441
- /** Pivot table reference name, e.g. "[workbook.xlsx]Sheet1!PivotTable1". */
2442
- name: string;
2443
- /** Format identifier from c:fmtId/@val. */
2444
- formatId?: number;
2445
- };
2635
+ pivotSource?: PptxChartPivotSource | null;
2446
2636
  /**
2447
2637
  * Whether only visible cells are plotted (c:plotVisOnly).
2448
2638
  * When `true` (the default), hidden cells are excluded from the chart.
@@ -2465,6 +2655,12 @@ interface PptxChartData {
2465
2655
  * - `"acrossLinear"` — gradient across series
2466
2656
  */
2467
2657
  colorMethod?: 'cycle' | 'withinLinear' | 'acrossLinear';
2658
+ /** Internal source color-style part path used for lossless dirty saves. */
2659
+ colorStylePartPath?: string;
2660
+ /** Internal parsed palette snapshot used to detect actual edits. */
2661
+ colorStyleOriginalPalette?: string[];
2662
+ /** Internal parsed method snapshot used to detect actual edits. */
2663
+ colorStyleOriginalMethod?: 'cycle' | 'withinLinear' | 'acrossLinear';
2468
2664
  /**
2469
2665
  * Pie-of-pie / Bar-of-pie options (`c:ofPieChart`, CT_OfPieChart).
2470
2666
  *
@@ -2490,6 +2686,10 @@ interface PptxChartData {
2490
2686
  * source data, so absence does not produce empty `<c:…/>` placeholders.
2491
2687
  */
2492
2688
  chartChrome?: PptxChartChrome;
2689
+ /** `c:chartSpace/c:printSettings`; `null` removes the container on save. */
2690
+ printSettings?: PptxChartPrintSettings | null;
2691
+ /** `c:chartSpace/c:protection`; `null` removes the container on save. */
2692
+ protection?: PptxChartProtection | null;
2493
2693
  /** Editable manual placement for the title, plot area, and legend. */
2494
2694
  layouts?: PptxChartLayouts;
2495
2695
  /**
@@ -2508,7 +2708,8 @@ interface PptxChartData {
2508
2708
  * for charts whose data originates from a PivotTable. Preserved
2509
2709
  * verbatim for round-trip fidelity.
2510
2710
  */
2511
- pivotFmtsXml?: unknown;
2711
+ /** Typed pivot-chart format persistence; `null` removes `c:pivotFmts`. */
2712
+ pivotFormats?: PptxChartPivotFormats | null;
2512
2713
  /**
2513
2714
  * Color-map override (`c:clrMapOvr`) carrying 12 attributes that
2514
2715
  * remap theme colour roles for this chart only. Preserved as a flat
@@ -2519,7 +2720,7 @@ interface PptxChartData {
2519
2720
 
2520
2721
  type EffectDagBlendMode = 'darken' | 'lighten' | 'mult' | 'over' | 'screen';
2521
2722
  type EffectDagContainerType = 'sib' | 'tree';
2522
- type EffectDagNode = EffectDagContainer | EffectDagBlend | EffectDagXfrm | EffectDagRelOff | EffectDagBlur | EffectDagPresetShadow | EffectDagRawLeaf;
2723
+ type EffectDagNode = EffectDagContainer | EffectDagBlend | EffectDagXfrm | EffectDagRelOff | EffectDagBlur | EffectDagAlphaOutset | EffectDagPresetShadow | EffectDagRawLeaf;
2523
2724
  interface EffectDagContainer {
2524
2725
  kind: 'cont';
2525
2726
  type: EffectDagContainerType;
@@ -2552,6 +2753,12 @@ interface EffectDagBlur {
2552
2753
  grow?: boolean;
2553
2754
  xml: XmlObject;
2554
2755
  }
2756
+ /** Typed CT_AlphaOutsetEffect with original XML retained for lossless edits. */
2757
+ interface EffectDagAlphaOutset {
2758
+ kind: 'alphaOutset';
2759
+ radiusEmu?: number;
2760
+ xml: XmlObject;
2761
+ }
2555
2762
  /** Typed CT_PresetShadowEffect with colour and extension XML retained verbatim. */
2556
2763
  interface EffectDagPresetShadow {
2557
2764
  kind: 'prstShdw';
@@ -2591,6 +2798,8 @@ interface PptxImageEffects {
2591
2798
  duotone?: {
2592
2799
  color1: string;
2593
2800
  color2: string;
2801
+ /** Original effect XML, retained while the resolved colours are unchanged. */
2802
+ rawXml?: XmlObject;
2594
2803
  };
2595
2804
  /** Grayscale flag. */
2596
2805
  grayscale?: boolean;
@@ -2605,8 +2814,10 @@ interface PptxImageEffects {
2605
2814
  artisticEffect?: string;
2606
2815
  /** Artistic effect radius/amount. */
2607
2816
  artisticRadius?: number;
2608
- /** Alpha modulation fixed overall opacity (0-100, where 100 = fully opaque). */
2817
+ /** Alpha modulation fixed: non-negative percentage (100 means unchanged opacity). */
2609
2818
  alphaModFix?: number;
2819
+ /** Original alpha modulation fixed node, including foreign attributes. */
2820
+ alphaModFixRawXml?: XmlObject;
2610
2821
  /** Bi-level threshold — converts to 1-bit black/white (0-100). */
2611
2822
  biLevel?: number;
2612
2823
  /** Colour change — swap one colour range for another (used for transparency keying). */
@@ -2615,7 +2826,13 @@ interface PptxImageEffects {
2615
2826
  clrTo: string;
2616
2827
  /** Whether the target colour is fully transparent (alpha = 0). */
2617
2828
  clrToTransparent?: boolean;
2829
+ /** Original effect XML, including colour transforms and extensions. */
2830
+ rawXml?: XmlObject;
2618
2831
  };
2832
+ /** Original grayscale node, including extension or foreign attributes. */
2833
+ grayscaleRawXml?: XmlObject;
2834
+ /** Original bi-level node, including extension or foreign attributes. */
2835
+ biLevelRawXml?: XmlObject;
2619
2836
  /**
2620
2837
  * Alpha inverse effect (`a:alphaInv`). Inverts the alpha channel; an optional
2621
2838
  * colour child shifts the inversion baseline.
@@ -2623,11 +2840,17 @@ interface PptxImageEffects {
2623
2840
  alphaInv?: {
2624
2841
  /** Optional baseline colour (hex). */
2625
2842
  color?: string;
2843
+ /** Original effect XML, including colour transforms and foreign attributes. */
2844
+ rawXml?: XmlObject;
2626
2845
  };
2627
2846
  /** Alpha ceiling (`a:alphaCeiling`) — clamps any non-zero alpha to fully opaque. Boolean flag. */
2628
2847
  alphaCeiling?: boolean;
2848
+ /** Original alpha ceiling node, including foreign attributes. */
2849
+ alphaCeilingRawXml?: XmlObject;
2629
2850
  /** Alpha floor (`a:alphaFloor`) — clamps any non-fully-opaque alpha to fully transparent. Boolean flag. */
2630
2851
  alphaFloor?: boolean;
2852
+ /** Original alpha floor node, including foreign attributes. */
2853
+ alphaFloorRawXml?: XmlObject;
2631
2854
  /**
2632
2855
  * Alpha modulate (`a:alphaMod`). The schema requires a single `cont` (effect
2633
2856
  * container) child; we preserve the inner XML opaquely for round-trip.
@@ -2635,11 +2858,17 @@ interface PptxImageEffects {
2635
2858
  alphaMod?: {
2636
2859
  /** Raw opaque XML for the `a:cont` child to preserve on save. */
2637
2860
  contRawXml?: Record<string, unknown>;
2861
+ /** Original effect XML, including foreign attributes. */
2862
+ rawXml?: XmlObject;
2638
2863
  };
2639
2864
  /** Alpha replace (`a:alphaRepl`) — replaces alpha with the given fixed-percent value (0..100). */
2640
2865
  alphaRepl?: number;
2866
+ /** Original alpha replace node, including foreign attributes. */
2867
+ alphaReplRawXml?: XmlObject;
2641
2868
  /** Alpha bi-level (`a:alphaBiLevel`) — threshold (0..100) above which alpha becomes fully opaque. */
2642
2869
  alphaBiLevel?: number;
2870
+ /** Original alpha bi-level node, including foreign attributes. */
2871
+ alphaBiLevelRawXml?: XmlObject;
2643
2872
  /**
2644
2873
  * Colour replace (`a:clrRepl`) — replaces all colour information in an image
2645
2874
  * with the given solid colour. Stores the raw colour child to preserve scheme
@@ -2782,6 +3011,7 @@ declare module "./index" {
2782
3011
  *
2783
3012
  * @module pptx-types/media
2784
3013
  */
3014
+
2785
3015
  /**
2786
3016
  * Discriminator for embedded media element types.
2787
3017
  *
@@ -2796,6 +3026,8 @@ type PptxMediaReferenceKind = 'audioCd' | 'wavAudioFile' | 'audioFile' | 'videoF
2796
3026
  interface PptxAudioCdPosition {
2797
3027
  track: number;
2798
3028
  time?: number;
3029
+ /** Original `st` or `end` node, retained for lossless edits. */
3030
+ rawXml?: XmlObject;
2799
3031
  }
2800
3032
  /**
2801
3033
  * A named bookmark within a media clip timeline.
@@ -2873,7 +3105,39 @@ interface MediaCaptionTrack {
2873
3105
  isDefault?: boolean;
2874
3106
  }
2875
3107
 
3108
+ type PptxSmartArtConstraintRelationship = 'self' | 'ch' | 'des';
3109
+ type PptxSmartArtConstraintOperator = 'none' | 'equ' | 'gte' | 'lte';
3110
+ type PptxSmartArtConstraintPointType = 'all' | 'doc' | 'node' | 'norm' | 'nonNorm' | 'asst' | 'nonAsst' | 'parTrans' | 'pres' | 'sibTrans';
3111
+ interface PptxSmartArtConstraintTarget {
3112
+ for?: PptxSmartArtConstraintRelationship;
3113
+ forName?: string;
3114
+ pointType?: PptxSmartArtConstraintPointType;
3115
+ }
3116
+ /** Editable DiagramML CT_Constraint. */
3117
+ interface PptxSmartArtConstraint extends PptxSmartArtConstraintTarget {
3118
+ type: string;
3119
+ referenceType?: string;
3120
+ referenceFor?: PptxSmartArtConstraintRelationship;
3121
+ referenceForName?: string;
3122
+ referencePointType?: PptxSmartArtConstraintPointType;
3123
+ operator?: PptxSmartArtConstraintOperator;
3124
+ value?: number;
3125
+ factor?: number;
3126
+ /** Original constraint retained for foreign attributes and extension content. */
3127
+ rawXml?: XmlObject;
3128
+ }
3129
+ /** Editable DiagramML CT_NumericRule. */
3130
+ interface PptxSmartArtNumericRule extends PptxSmartArtConstraintTarget {
3131
+ type: string;
3132
+ value?: number;
3133
+ factor?: number;
3134
+ max?: number;
3135
+ /** Original rule retained for foreign attributes and extension content. */
3136
+ rawXml?: XmlObject;
3137
+ }
3138
+
2876
3139
  /** Typed, editable metadata from a DiagramML layout-definition part. */
3140
+
2877
3141
  interface PptxSmartArtLocalizedText {
2878
3142
  value: string;
2879
3143
  language?: string;
@@ -2882,12 +3146,56 @@ interface PptxSmartArtLayoutCategory {
2882
3146
  type: string;
2883
3147
  priority: number;
2884
3148
  }
3149
+ interface PptxSmartArtAlgorithmParameter {
3150
+ type: string;
3151
+ value?: string;
3152
+ }
3153
+ /** Typed DiagramML CT_Algorithm data attached to a layout node. */
3154
+ interface PptxSmartArtLayoutAlgorithm {
3155
+ type: string;
3156
+ revision?: number;
3157
+ parameters?: PptxSmartArtAlgorithmParameter[];
3158
+ }
3159
+ interface PptxSmartArtIteratorAttributes {
3160
+ name?: string;
3161
+ reference?: string;
3162
+ axis?: string[];
3163
+ pointTypes?: string[];
3164
+ hideLastTransition?: boolean[];
3165
+ start?: number[];
3166
+ count?: number[];
3167
+ step?: number[];
3168
+ }
3169
+ interface PptxSmartArtForEach extends PptxSmartArtIteratorAttributes {
3170
+ rawXml?: XmlObject;
3171
+ }
3172
+ interface PptxSmartArtWhen extends PptxSmartArtIteratorAttributes {
3173
+ function: string;
3174
+ argument?: string;
3175
+ operator: string;
3176
+ value: string;
3177
+ rawXml?: XmlObject;
3178
+ }
3179
+ interface PptxSmartArtChoose {
3180
+ name?: string;
3181
+ when: PptxSmartArtWhen[];
3182
+ otherwise?: {
3183
+ name?: string;
3184
+ rawXml?: XmlObject;
3185
+ } | null;
3186
+ rawXml?: XmlObject;
3187
+ }
2885
3188
  /** Identity and ordering metadata from DiagramML CT_LayoutNode. */
2886
3189
  interface PptxSmartArtLayoutNode {
2887
3190
  name?: string;
2888
3191
  styleLabel?: string;
2889
3192
  childOrder?: 'b' | 't';
2890
3193
  moveWith?: string;
3194
+ algorithm?: PptxSmartArtLayoutAlgorithm;
3195
+ forEach?: PptxSmartArtForEach[];
3196
+ choose?: PptxSmartArtChoose[];
3197
+ constraints?: PptxSmartArtConstraint[];
3198
+ rules?: PptxSmartArtNumericRule[];
2891
3199
  children?: PptxSmartArtLayoutNode[];
2892
3200
  }
2893
3201
  /** Metadata and root node from DiagramML CT_DiagramDefinition. */
@@ -2899,6 +3207,8 @@ interface PptxSmartArtLayoutDefinition {
2899
3207
  descriptions?: PptxSmartArtLocalizedText[];
2900
3208
  categories?: PptxSmartArtLayoutCategory[];
2901
3209
  rootNode: PptxSmartArtLayoutNode;
3210
+ /** Original definition retained for constraint evaluation and foreign rules. */
3211
+ rawXml?: XmlObject;
2902
3212
  }
2903
3213
 
2904
3214
  /**
@@ -2910,6 +3220,7 @@ interface PptxSmartArtLayoutDefinition {
2910
3220
  *
2911
3221
  * @module pptx-types/smart-art-node
2912
3222
  */
3223
+
2913
3224
  /**
2914
3225
  * A single run of text inside a SmartArt node, capturing the run text and the
2915
3226
  * raw `a:rPr` run-properties object verbatim so per-run formatting (bold,
@@ -2933,6 +3244,54 @@ interface PptxSmartArtTextRun {
2933
3244
  * round-trip. Untyped XML, hence the loose record shape.
2934
3245
  */
2935
3246
  rPr?: Record<string, unknown>;
3247
+ /** Resolved standard shape-text style derived from {@link rPr}. */
3248
+ style?: TextStyle;
3249
+ /** Raw run XML used to retain unmodelled extension children on save. */
3250
+ rawXml?: Record<string, unknown>;
3251
+ /** Original direct-child order, including unmodelled extension children. */
3252
+ childOrder?: string[];
3253
+ }
3254
+ /** An ordered item within a SmartArt text paragraph. */
3255
+ type PptxSmartArtTextParagraphItem = {
3256
+ kind: 'run';
3257
+ run: PptxSmartArtTextRun;
3258
+ } | {
3259
+ kind: 'break';
3260
+ rPr?: Record<string, unknown>;
3261
+ style?: TextStyle;
3262
+ rawXml?: Record<string, unknown>;
3263
+ childOrder?: string[];
3264
+ } | {
3265
+ kind: 'field';
3266
+ id?: string;
3267
+ fieldType?: string;
3268
+ text: string;
3269
+ rPr?: Record<string, unknown>;
3270
+ style?: TextStyle;
3271
+ pPr?: Record<string, unknown>;
3272
+ rawXml?: Record<string, unknown>;
3273
+ childOrder?: string[];
3274
+ } | {
3275
+ kind: 'tab';
3276
+ rawXml?: Record<string, unknown>;
3277
+ childOrder?: string[];
3278
+ } | {
3279
+ kind: 'raw';
3280
+ name: string;
3281
+ value: unknown;
3282
+ };
3283
+ /** A complete `a:p` paragraph in a SmartArt data-model text body. */
3284
+ interface PptxSmartArtTextParagraph {
3285
+ /** Paragraph properties (`a:pPr`) preserved verbatim. */
3286
+ pPr?: Record<string, unknown>;
3287
+ /** Text children in source order. */
3288
+ items: PptxSmartArtTextParagraphItem[];
3289
+ /** End-paragraph run properties (`a:endParaRPr`) preserved verbatim. */
3290
+ endParaRPr?: Record<string, unknown>;
3291
+ /** Resolved style for the paragraph terminator. */
3292
+ endParaStyle?: TextStyle;
3293
+ /** Raw paragraph XML used to retain unmodelled extension children on save. */
3294
+ rawXml?: Record<string, unknown>;
2936
3295
  }
2937
3296
  /**
2938
3297
  * Per-node visual override for a SmartArt node.
@@ -3002,6 +3361,11 @@ interface PptxSmartArtNode {
3002
3361
  * is not flattened. When {@link text} diverges, the runs are ignored.
3003
3362
  */
3004
3363
  runs?: PptxSmartArtTextRun[];
3364
+ /**
3365
+ * Complete typed paragraph model. Unlike {@link runs}, this retains every
3366
+ * paragraph and the ordered run, field, break, and tab children within it.
3367
+ */
3368
+ paragraphs?: PptxSmartArtTextParagraph[];
3005
3369
  /**
3006
3370
  * Optional per-node visual override (fill / line / font colour, bold /
3007
3371
  * italic). Read at parse time from the point's `spPr` / first-run `rPr`, set
@@ -3165,7 +3529,7 @@ interface PptxSmartArtConnection {
3165
3529
  * // => satisfies PptxSmartArtDrawingShape
3166
3530
  * ```
3167
3531
  */
3168
- interface PptxSmartArtDrawingShape {
3532
+ interface PptxSmartArtDrawingShape extends PptxCustomPathProperties {
3169
3533
  /** Shape ID within the drawing. */
3170
3534
  id: string;
3171
3535
  /** Preset geometry type (e.g. "roundRect", "ellipse"). */
@@ -3189,6 +3553,8 @@ interface PptxSmartArtDrawingShape {
3189
3553
  strokeWidth?: number;
3190
3554
  /** Text content of the shape. */
3191
3555
  text?: string;
3556
+ /** Standard rich-text segments projected from the associated SmartArt node. */
3557
+ textSegments?: TextSegment[];
3192
3558
  /** Font size in points. */
3193
3559
  fontSize?: number;
3194
3560
  /** Font colour (hex). */
@@ -3886,6 +4252,8 @@ interface MediaPptxElement extends PptxElementBase {
3886
4252
  mediaMimeType?: string;
3887
4253
  mediaReferenceKind?: PptxMediaReferenceKind;
3888
4254
  mediaReferenceName?: string;
4255
+ /** Explicit DrawingML `audioFile/@contentType` value when present. */
4256
+ mediaReferenceContentType?: string;
3889
4257
  audioCdStart?: PptxAudioCdPosition;
3890
4258
  audioCdEnd?: PptxAudioCdPosition;
3891
4259
  rawMediaReferenceXml?: XmlObject;
@@ -4009,6 +4377,10 @@ interface ContentPartPptxElement extends PptxElementBase {
4009
4377
  type: 'contentPart';
4010
4378
  /** Ink strokes contained in this content part. */
4011
4379
  inkStrokes?: ContentPartInkStroke[];
4380
+ /** Package path of the related InkML part. */
4381
+ inkPartPath?: string;
4382
+ /** Parsed InkML root retained for unknown-node preservation on dirty save. */
4383
+ inkPartRawXml?: XmlObject;
4012
4384
  }
4013
4385
  /**
4014
4386
  * A Slide Zoom or Section Zoom element (PowerPoint Zoom Object).
@@ -4029,12 +4401,32 @@ interface ContentPartPptxElement extends PptxElementBase {
4029
4401
  */
4030
4402
  interface ZoomPptxElement extends PptxElementBase, PptxImageProperties {
4031
4403
  type: 'zoom';
4032
- /** Type of zoom: slide-level or section-level. */
4033
- zoomType: 'slide' | 'section';
4404
+ /** Type of zoom: slide-level, section-level, or a multi-section summary. */
4405
+ zoomType: 'slide' | 'section' | 'summary';
4034
4406
  /** Zero-based index of the target slide. */
4035
4407
  targetSlideIndex: number;
4036
4408
  /** Section ID for section zoom. */
4037
4409
  targetSectionId?: string;
4410
+ /** Ordered section tiles in a Summary Zoom container. */
4411
+ summaryTargets?: SummaryZoomTarget[];
4412
+ /** Layout mode authored on the Summary Zoom container. */
4413
+ summaryLayout?: 'grid' | 'fixed';
4414
+ }
4415
+ /** A single section tile within a PowerPoint Summary Zoom container. */
4416
+ interface SummaryZoomTarget extends PptxImageProperties {
4417
+ sectionId: string;
4418
+ targetSlideIndex: number;
4419
+ x: number;
4420
+ y: number;
4421
+ width: number;
4422
+ height: number;
4423
+ title?: string;
4424
+ description?: string;
4425
+ offsetFactorX?: number;
4426
+ offsetFactorY?: number;
4427
+ scaleFactorX?: number;
4428
+ scaleFactorY?: number;
4429
+ rawXml?: XmlObject;
4038
4430
  }
4039
4431
  /**
4040
4432
  * A 3D model object embedded via `p16:model3D` inside an
@@ -4676,6 +5068,33 @@ interface PptxElementAnimation {
4676
5068
  stopSound?: boolean;
4677
5069
  }
4678
5070
 
5071
+ interface PptxEmbeddedFontDataId {
5072
+ /** Required relationship identifier from `r:id`. */
5073
+ relationshipId?: string | null;
5074
+ /** Original leaf retained for unknown attribute preservation. */
5075
+ rawXml?: XmlObject;
5076
+ }
5077
+ interface PptxEmbeddedFontDescriptor {
5078
+ typeface?: string | null;
5079
+ panose?: string | null;
5080
+ pitchFamily?: string | null;
5081
+ charset?: string | null;
5082
+ rawXml?: XmlObject;
5083
+ }
5084
+ interface PptxEmbeddedFontListEntry {
5085
+ font: PptxEmbeddedFontDescriptor;
5086
+ regular?: PptxEmbeddedFontDataId | null;
5087
+ bold?: PptxEmbeddedFontDataId | null;
5088
+ italic?: PptxEmbeddedFontDataId | null;
5089
+ boldItalic?: PptxEmbeddedFontDataId | null;
5090
+ rawXml?: XmlObject;
5091
+ }
5092
+ interface PptxEmbeddedFontList {
5093
+ fonts: PptxEmbeddedFontListEntry[];
5094
+ /** Original list retained for unknown attribute and child preservation. */
5095
+ rawXml?: XmlObject;
5096
+ }
5097
+
4679
5098
  /**
4680
5099
  * Metadata types: slide comments, compatibility warnings, tags,
4681
5100
  * custom properties, core/app document properties.
@@ -4831,9 +5250,17 @@ interface PptxTag {
4831
5250
  */
4832
5251
  interface PptxTagCollection {
4833
5252
  /** File path within the PPTX archive. */
4834
- path: string;
5253
+ path?: string;
5254
+ /** Package owner of the tags relationship. New collections default to presentation. */
5255
+ owner?: 'presentation' | 'slide' | 'part';
5256
+ /** Source OPC part that owns the relationship, e.g. ppt/slides/slide1.xml. */
5257
+ sourcePartPath?: string;
5258
+ /** Durable relationship identifier from the owning part. */
5259
+ relationshipId?: string;
4835
5260
  /** Tags in this collection. */
4836
5261
  tags: PptxTag[];
5262
+ /** Parsed tag-list XML retained for unknown-node preservation. */
5263
+ rawXml?: XmlObject;
4837
5264
  }
4838
5265
  /**
4839
5266
  * A custom document property from `docProps/custom.xml`.
@@ -4938,6 +5365,19 @@ interface PptxAppProperties {
4938
5365
  /** Hyperlink base URL. */
4939
5366
  hyperlinkBase?: string;
4940
5367
  }
5368
+
5369
+ type PptxPrintOutput = 'slides' | 'handouts1' | 'handouts2' | 'handouts3' | 'handouts4' | 'handouts6' | 'handouts9' | 'notes' | 'outline';
5370
+ type PptxPrintColorMode = 'bw' | 'gray' | 'clr';
5371
+ /** PresentationML `CT_PrintProperties` (`p:prnPr`). */
5372
+ interface PptxPresentationPrintProperties {
5373
+ printWhat?: PptxPrintOutput | null;
5374
+ colorMode?: PptxPrintColorMode | null;
5375
+ hiddenSlides?: boolean | null;
5376
+ scaleToFitPaper?: boolean | null;
5377
+ frameSlides?: boolean | null;
5378
+ /** Original subtree retained for unknown attributes and `p:extLst`. */
5379
+ rawXml?: XmlObject;
5380
+ }
4941
5381
  /**
4942
5382
  * Resolved hex values for the 12 theme colour slots.
4943
5383
  *
@@ -5296,6 +5736,11 @@ interface PptxViewScale {
5296
5736
  n: number;
5297
5737
  /** Denominator of the scale percentage (e.g. 100 for 100%). */
5298
5738
  d: number;
5739
+ /** Optional independent vertical scale. When absent, the X scale is used. */
5740
+ sy?: {
5741
+ n: number;
5742
+ d: number;
5743
+ };
5299
5744
  }
5300
5745
  /**
5301
5746
  * Origin point for a view (x, y in twips or EMU).
@@ -5304,6 +5749,16 @@ interface PptxViewOrigin {
5304
5749
  x: number;
5305
5750
  y: number;
5306
5751
  }
5752
+ /** A horizontal or vertical drawing guide in slide coordinates. */
5753
+ interface PptxViewGuide {
5754
+ orientation?: 'horz' | 'vert';
5755
+ position?: number;
5756
+ }
5757
+ /** Positive grid spacing from `p:gridSpacing`. */
5758
+ interface PptxGridSpacing {
5759
+ cx: number;
5760
+ cy: number;
5761
+ }
5307
5762
  /**
5308
5763
  * Restored region dimensions for normal view splitter.
5309
5764
  * Represents `p:restoredLeft` or `p:restoredTop`.
@@ -5345,6 +5800,10 @@ interface PptxCommonSlideViewProperties {
5345
5800
  snapToObjects?: boolean;
5346
5801
  /** Whether drawing guides are shown. */
5347
5802
  showGuides?: boolean;
5803
+ /** Whether the application may vary the scale automatically. */
5804
+ variableScale?: boolean;
5805
+ /** Drawing guides shown in this slide view. */
5806
+ guides?: PptxViewGuide[];
5348
5807
  /** View origin (scroll position). */
5349
5808
  origin?: PptxViewOrigin;
5350
5809
  /** View scale. */
@@ -5372,6 +5831,8 @@ interface PptxViewProperties {
5372
5831
  };
5373
5832
  /** Notes view properties. */
5374
5833
  notesViewPr?: PptxCommonSlideViewProperties;
5834
+ /** Grid spacing in positive DrawingML coordinates. */
5835
+ gridSpacing?: PptxGridSpacing;
5375
5836
  /** Raw XML preserved for lossless round-trip of unparsed attributes. */
5376
5837
  rawXml?: Record<string, unknown>;
5377
5838
  }
@@ -5386,12 +5847,16 @@ interface PptxViewProperties {
5386
5847
  * @see ECMA-376 Part 1, §19.2.1.3 (custDataLst), §19.3.1.6 (custData)
5387
5848
  */
5388
5849
  interface PptxCustomerData {
5389
- /** Resolved part path inside the package (e.g. `ppt/customerData/item1.xml`). */
5390
- id: string;
5850
+ /** Resolved part path inside the package (e.g. `customXml/item1.xml`). */
5851
+ id?: string;
5391
5852
  /** Relationship ID referencing the custom data part. */
5392
- relId: string;
5853
+ relId?: string;
5393
5854
  /** Raw string content of the custom data part (if resolvable). */
5394
5855
  data?: string;
5856
+ /** OPC content type for the custom data part. */
5857
+ contentType?: string;
5858
+ /** Raw `p:custData` XML retained for unknown-node preservation. */
5859
+ rawXml?: XmlObject;
5395
5860
  }
5396
5861
  /**
5397
5862
  * An ActiveX control reference from `p:controls / p:control`.
@@ -5640,11 +6105,13 @@ interface PptxPresentationProperties {
5640
6105
  showSlidesTo?: number;
5641
6106
  /** Whether to show subtitles/captions during presentation mode. */
5642
6107
  showSubtitles?: boolean;
5643
- /** Print settings: slides per page. */
6108
+ /** Typed `p:prnPr` settings. Set to null during save to remove the element. */
6109
+ printProperties?: PptxPresentationPrintProperties | null;
6110
+ /** @deprecated Use `printProperties.printWhat`; retained as a handout compatibility alias. */
5644
6111
  printSlidesPerPage?: number;
5645
- /** Print settings: frame slides. */
6112
+ /** @deprecated Use `printProperties.frameSlides`. */
5646
6113
  printFrameSlides?: boolean;
5647
- /** Print settings: colour mode (from `p:prnPr/@clrMode`). */
6114
+ /** @deprecated Use `printProperties.colorMode`. */
5648
6115
  printColorMode?: 'clr' | 'gray' | 'bw';
5649
6116
  /** Most-recently-used colours from the presentation palette. */
5650
6117
  mruColors?: string[];
@@ -5781,11 +6248,13 @@ interface PptxPhotoAlbum {
5781
6248
  */
5782
6249
  interface PptxKinsoku {
5783
6250
  /** Language code (e.g. "ja-JP", "zh-CN"). */
5784
- lang?: string;
6251
+ lang?: string | null;
5785
6252
  /** Characters that cannot begin a line. */
5786
6253
  invalStChars?: string;
5787
6254
  /** Characters that cannot end a line. */
5788
6255
  invalEndChars?: string;
6256
+ /** Original leaf retained for unknown attribute preservation. */
6257
+ rawXml?: XmlObject;
5789
6258
  }
5790
6259
  /**
5791
6260
  * Root data structure returned by {@link PptxHandlerCore.load}.
@@ -5836,6 +6305,8 @@ interface PptxData {
5836
6305
  isPasswordProtected?: boolean;
5837
6306
  /** Embedded font data (name + binary data URL) extracted from the presentation. */
5838
6307
  embeddedFonts?: PptxEmbeddedFont[];
6308
+ /** Typed `p:embeddedFontLst` package metadata, including unresolved variants. */
6309
+ embeddedFontList?: PptxEmbeddedFontList;
5839
6310
  /** Most-recently-used colour list from presentation properties. */
5840
6311
  mruColors?: string[];
5841
6312
  /** Parsed notes master data if present in the PPTX. */
@@ -6170,10 +6641,17 @@ interface ChartSeriesInput {
6170
6641
  name: string;
6171
6642
  values: number[];
6172
6643
  color?: string;
6644
+ boxWhiskerOptions?: PptxChartBoxWhiskerOptions;
6645
+ histogramOptions?: PptxChartHistogramOptions;
6646
+ waterfallOptions?: PptxChartWaterfallOptions;
6647
+ regionMapOptions?: PptxChartRegionMapOptions;
6648
+ treemapOptions?: PptxChartTreemapOptions;
6173
6649
  }
6174
6650
  interface ChartInput {
6175
6651
  series: ChartSeriesInput[];
6176
6652
  categories: string[];
6653
+ /** ChartEx hierarchy levels in leaf-to-root XML order. */
6654
+ categoryLevels?: string[][];
6177
6655
  title?: string;
6178
6656
  hasLegend?: boolean;
6179
6657
  legendPosition?: 't' | 'b' | 'l' | 'r' | 'tr';
@@ -6687,10 +7165,12 @@ interface PptxHandlerSaveOptions {
6687
7165
  slideLayouts?: PptxSlideLayout[];
6688
7166
  /** Updated tag collections to save back to ppt/tags/tag*.xml. */
6689
7167
  tags?: PptxTagCollection[];
7168
+ /** Presentation-level customer data references to author or update. */
7169
+ customerData?: PptxCustomerData[];
6690
7170
  /** Photo album metadata to save back to `p:photoAlbum`. */
6691
7171
  photoAlbum?: PptxPhotoAlbum;
6692
7172
  /** East Asian line-break settings to save back to `p:kinsoku`. */
6693
- kinsoku?: PptxKinsoku;
7173
+ kinsoku?: PptxKinsoku | null;
6694
7174
  /** Write-protection verifier. Set to `null` to remove, `undefined` to preserve existing. */
6695
7175
  modifyVerifier?: PptxModifyVerifier | null;
6696
7176
  /** View properties to save back to ppt/viewProps.xml. */
@@ -6722,6 +7202,8 @@ interface PptxHandlerSaveOptions {
6722
7202
  * preserved (i.e. the default is lossless round-trip).
6723
7203
  */
6724
7204
  embeddedFonts?: PptxEmbeddedFont[];
7205
+ /** Typed embedded-font list metadata. Set to null to remove fonts and relationships. */
7206
+ embeddedFontList?: PptxEmbeddedFontList | null;
6725
7207
  /**
6726
7208
  * OOXML conformance class for the saved output.
6727
7209
  * - `'preserve'` (default): use the same conformance as the loaded file.