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
@@ -359,6 +359,8 @@ interface CustomGeometryPath {
359
359
  * and the text rectangle are not lost when a custGeom is edited and saved.
360
360
  */
361
361
  interface CustomGeometryRawData {
362
+ /** Raw `a:avLst` XML content (adjustment value list). */
363
+ avLstXml?: unknown;
362
364
  /** Raw `a:gdLst` XML content (guide list). */
363
365
  gdLstXml?: unknown;
364
366
  /** Raw `a:ahLst` XML content (adjustment handles). */
@@ -499,7 +501,7 @@ interface PptxCustomPathProperties {
499
501
  pathHeight?: number;
500
502
  /** Structured custom geometry paths for editing (maps to a:custGeom/a:pathLst). */
501
503
  customGeometryPaths?: CustomGeometryPath[];
502
- /** Raw a:gdLst/a:ahLst/a:cxnLst/a:rect XML preserved for round-trip serialization. */
504
+ /** Raw adjustment/guide/handle/connection/text-rectangle XML preserved for serialization. */
503
505
  customGeometryRawData?: CustomGeometryRawData;
504
506
  /**
505
507
  * Typed XY adjustment handles parsed from `a:custGeom/a:ahLst/a:ahXY`.
@@ -710,6 +712,12 @@ type PptxTextWarpPreset = 'textNoShape' | 'textPlain' | 'textStop' | 'textTriang
710
712
  * @module pptx-types/shape-style
711
713
  */
712
714
 
715
+ interface PptxCustomDashSegment {
716
+ /** Dash length as a non-negative percentage in thousandths of one percent. */
717
+ dash: number;
718
+ /** Space length as a non-negative percentage in thousandths of one percent. */
719
+ space: number;
720
+ }
713
721
  /**
714
722
  * Comprehensive visual style for a shape, connector, or image element.
715
723
  *
@@ -942,11 +950,12 @@ interface ShapeStyle {
942
950
  connectorStartConnection?: ConnectorConnectionPoint;
943
951
  /** Connection point for the end of a connector. */
944
952
  connectorEndConnection?: ConnectorConnectionPoint;
945
- /** Custom dash segments array (`a:custDash/a:ds`). Each entry has dash length and space length in EMU. */
946
- customDashSegments?: Array<{
947
- dash: number;
948
- space: number;
949
- }>;
953
+ /** Custom dash pattern, measured relative to line width in thousandths of one percent. */
954
+ customDashSegments?: PptxCustomDashSegment[];
955
+ /** Original `a:ds` payloads retained by index for lossless edits. */
956
+ customDashSegmentXml?: XmlObject[];
957
+ /** Original `a:custDash` payload retained for lossless edits. */
958
+ customDashXml?: XmlObject;
950
959
  /** 3D scene/camera settings from `a:scene3d`. */
951
960
  scene3d?: Pptx3DScene;
952
961
  /** 3D shape extrusion/bevel from `a:sp3d`. */
@@ -1058,6 +1067,8 @@ interface ShapeStyle {
1058
1067
  * ```
1059
1068
  */
1060
1069
  interface TextStyle {
1070
+ /** Original `a:rPr` XML retained by projections that share the shape-text model. */
1071
+ runPropertiesXml?: XmlObject;
1061
1072
  fontFamily?: string;
1062
1073
  fontSize?: number;
1063
1074
  /** When true, renderer should shrink text to fit the shape bounds. */
@@ -1800,10 +1811,104 @@ interface PptxChartAxisLabelFormatting {
1800
1811
  labelAlignment?: 'ctr' | 'l' | 'r';
1801
1812
  /** Category/date label distance, from 0 through 1000 percent. */
1802
1813
  labelOffset?: number;
1814
+ /** Number of category/date labels between rendered labels. */
1815
+ tickLabelSkip?: number;
1816
+ /** Number of category/date tick positions between major tick marks. */
1817
+ tickMarkSkip?: number;
1803
1818
  /** Suppress multi-level category labels (`c:noMultiLvlLbl`). */
1804
1819
  noMultiLevelLabels?: boolean;
1805
1820
  }
1806
1821
 
1822
+ interface PptxChartPivotFormat {
1823
+ index: number;
1824
+ shapePropertiesXml?: XmlObject | null;
1825
+ markerXml?: XmlObject | null;
1826
+ dataLabelXml?: XmlObject | null;
1827
+ extensionListXml?: XmlObject | null;
1828
+ rawXml?: XmlObject;
1829
+ }
1830
+ /** Editable classic ChartML `c:pivotFmts` collection. */
1831
+ interface PptxChartPivotFormats {
1832
+ formats: PptxChartPivotFormat[];
1833
+ rawXml?: XmlObject;
1834
+ }
1835
+
1836
+ /** Editable classic ChartML `c:pivotSource` metadata. */
1837
+ interface PptxChartPivotSource {
1838
+ /** Pivot table reference stored as `c:name` text. */
1839
+ name: string;
1840
+ /** Required unsigned format identifier stored in `c:fmtId/@val`. */
1841
+ formatId: number;
1842
+ /** Internal source subtree used to preserve extensions and foreign markup. */
1843
+ rawXml?: XmlObject;
1844
+ }
1845
+
1846
+ /** Headers and footers used when a classic ChartML chart is printed. */
1847
+ interface PptxChartPrintHeaderFooter {
1848
+ oddHeader?: string;
1849
+ oddFooter?: string;
1850
+ evenHeader?: string;
1851
+ evenFooter?: string;
1852
+ firstHeader?: string;
1853
+ firstFooter?: string;
1854
+ alignWithMargins?: boolean;
1855
+ differentOddEven?: boolean;
1856
+ differentFirst?: boolean;
1857
+ /** Original subtree retained for foreign attributes and extension children. */
1858
+ rawXml?: unknown;
1859
+ }
1860
+ /** Required page margins from ChartML `c:pageMargins`, measured in inches. */
1861
+ interface PptxChartPageMargins {
1862
+ left: number;
1863
+ right: number;
1864
+ top: number;
1865
+ bottom: number;
1866
+ header: number;
1867
+ footer: number;
1868
+ /** Original leaf retained for foreign attributes. */
1869
+ rawXml?: unknown;
1870
+ }
1871
+ /** Printer page configuration from ChartML `c:pageSetup`. */
1872
+ interface PptxChartPageSetup {
1873
+ paperSize?: number;
1874
+ firstPageNumber?: number;
1875
+ orientation?: 'default' | 'portrait' | 'landscape';
1876
+ blackAndWhite?: boolean;
1877
+ draft?: boolean;
1878
+ useFirstPageNumber?: boolean;
1879
+ horizontalDpi?: number;
1880
+ verticalDpi?: number;
1881
+ copies?: number;
1882
+ /** Original leaf retained for foreign attributes. */
1883
+ rawXml?: unknown;
1884
+ }
1885
+ /** Editable `c:printSettings` content from a classic ChartML chart space. */
1886
+ interface PptxChartPrintSettings {
1887
+ headerFooter?: PptxChartPrintHeaderFooter | null;
1888
+ pageMargins?: PptxChartPageMargins | null;
1889
+ pageSetup?: PptxChartPageSetup | null;
1890
+ /** `null` removes the legacy header/footer drawing relationship element. */
1891
+ legacyDrawingHeaderFooterRelationshipId?: string | null;
1892
+ /** Original subtree retained for unknown and extension content. */
1893
+ rawXml?: unknown;
1894
+ }
1895
+
1896
+ /** Editable classic ChartML `c:protection` settings. */
1897
+ interface PptxChartProtection {
1898
+ /** Prevent editing the chart object. */
1899
+ chartObject?: boolean | null;
1900
+ /** Prevent editing the chart data. */
1901
+ data?: boolean | null;
1902
+ /** Prevent editing chart formatting. */
1903
+ formatting?: boolean | null;
1904
+ /** Prevent selecting chart elements. */
1905
+ selection?: boolean | null;
1906
+ /** Prevent chart user-interface operations. */
1907
+ userInterface?: boolean | null;
1908
+ /** Internal source subtree used to preserve foreign markup during edits. */
1909
+ rawXml?: XmlObject;
1910
+ }
1911
+
1807
1912
  /**
1808
1913
  * Chart types: chart categories, series data, style metadata, data tables,
1809
1914
  * trendlines, error bars, and the composite `PptxChartData`.
@@ -1960,6 +2065,7 @@ interface PptxChartUpDownBars {
1960
2065
  /** Marker appearance on a chart series or data point. */
1961
2066
  interface PptxChartMarker {
1962
2067
  symbol: PptxChartMarkerSymbol;
2068
+ /** Marker size in points, constrained by ST_MarkerSize to 2 through 72. */
1963
2069
  size?: number;
1964
2070
  spPr?: PptxChartShapeProps;
1965
2071
  }
@@ -1970,6 +2076,8 @@ interface PptxChartDataPoint {
1970
2076
  explosion?: number;
1971
2077
  invertIfNegative?: boolean;
1972
2078
  marker?: PptxChartMarker;
2079
+ /** Render a bubble-chart point with a 3-D appearance. */
2080
+ bubble3D?: boolean;
1973
2081
  }
1974
2082
  /** Schema values accepted by `c:dLblPos`. */
1975
2083
  type PptxChartDataLabelPosition = 'bestFit' | 'b' | 'ctr' | 'inBase' | 'inEnd' | 'l' | 'outEnd' | 'r' | 't';
@@ -2012,6 +2120,12 @@ interface PptxChartAxisFormatting extends PptxChartAxisLabelFormatting {
2012
2120
  axisId?: number;
2013
2121
  /** Cross-axis identifier — the axis this axis crosses. */
2014
2122
  crossAxisId?: number;
2123
+ /** Automatic crossing mode (`c:crosses`). Mutually exclusive with `crossesAt`. */
2124
+ crosses?: 'autoZero' | 'min' | 'max';
2125
+ /** Explicit crossing value (`c:crossesAt`). Units depend on the axis type. */
2126
+ crossesAt?: number;
2127
+ /** Whether a value axis crosses between or at category tick marks. */
2128
+ crossBetween?: 'between' | 'midCat';
2015
2129
  numFmt?: PptxChartAxisNumFmt;
2016
2130
  titleText?: string;
2017
2131
  spPr?: PptxChartShapeProps;
@@ -2029,6 +2143,8 @@ interface PptxChartAxisFormatting extends PptxChartAxisLabelFormatting {
2029
2143
  min?: number;
2030
2144
  /** Maximum axis value override (c:max/@val). */
2031
2145
  max?: number;
2146
+ /** Axis value direction (`c:scaling/c:orientation/@val`). */
2147
+ orientation?: 'minMax' | 'maxMin';
2032
2148
  /** Whether the axis is deleted/hidden (c:delete/@val). */
2033
2149
  deleted?: boolean;
2034
2150
  /**
@@ -2052,12 +2168,69 @@ interface PptxChartAxisFormatting extends PptxChartAxisLabelFormatting {
2052
2168
  majorUnit?: number;
2053
2169
  /** Minor-unit interval between secondary tick marks (c:minorUnit/@val). */
2054
2170
  minorUnit?: number;
2171
+ /** Calendar unit used to interpret date-axis serial values. */
2172
+ baseTimeUnit?: 'days' | 'months' | 'years';
2173
+ majorTimeUnit?: 'days' | 'months' | 'years';
2174
+ minorTimeUnit?: 'days' | 'months' | 'years';
2055
2175
  }
2056
2176
  /** 3D wall or floor element formatting. */
2057
2177
  interface PptxChart3DSurface {
2058
2178
  thickness?: number;
2059
2179
  spPr?: PptxChartShapeProps;
2060
2180
  }
2181
+ /** Office 2016 ChartEx box-and-whisker series layout options. */
2182
+ interface PptxChartBoxWhiskerOptions {
2183
+ quartileMethod?: 'inclusive' | 'exclusive';
2184
+ showMeanLine?: boolean;
2185
+ showMeanMarker?: boolean;
2186
+ /** Show non-outlier (inner) data points. */
2187
+ showInnerPoints?: boolean;
2188
+ showOutlierPoints?: boolean;
2189
+ }
2190
+ /** Office 2016 ChartEx histogram and Pareto series layout options. */
2191
+ interface PptxChartHistogramOptions {
2192
+ /** Maps to `clusteredColumn` for histogram columns or `paretoLine`. */
2193
+ layout?: 'histogram' | 'pareto';
2194
+ /** Exactly one of binSize and binCount is emitted by the ChartEx writer. */
2195
+ binSize?: number;
2196
+ binCount?: number;
2197
+ intervalClosed?: 'l' | 'r';
2198
+ underflow?: number | 'auto';
2199
+ overflow?: number | 'auto';
2200
+ }
2201
+ /** Office 2016 ChartEx waterfall series layout options. */
2202
+ interface PptxChartWaterfallOptions {
2203
+ /** Zero-based data point indexes rendered as absolute subtotal or total bars. */
2204
+ subtotalIndices?: number[];
2205
+ /** Whether connector lines are visible between adjacent bars. */
2206
+ connectorLines?: boolean;
2207
+ }
2208
+ /** Office 2016 ChartEx geographic series dimensions and layout options. */
2209
+ interface PptxChartRegionMapOptions {
2210
+ /** Optional provider entity identifiers aligned with categories and values. */
2211
+ entityIds?: string[];
2212
+ /** Original `cx:pt/@idx` values for category points. */
2213
+ categorySourceIndices?: number[];
2214
+ /** Original `cx:pt/@idx` values for colour-value points. */
2215
+ valueSourceIndices?: number[];
2216
+ /** Original `cx:pt/@idx` values for entity-ID points. */
2217
+ entityIdSourceIndices?: number[];
2218
+ regionLabelLayout?: 'none' | 'bestFitOnly' | 'showAll';
2219
+ projectionType?: 'mercator' | 'miller' | 'robinson' | 'albers';
2220
+ viewedRegionType?: 'dataOnly' | 'postalCode' | 'county' | 'state' | 'countryRegion' | 'countryRegionList' | 'world';
2221
+ cultureLanguage?: string;
2222
+ /** ISO-3166-1 alpha-2 region code. */
2223
+ cultureRegion?: string;
2224
+ attribution?: string;
2225
+ /** Opaque authored provider cache under `cx:geography/cx:geoCache`. */
2226
+ geographyCache?: XmlObject;
2227
+ }
2228
+ /** Layout for parent category labels in a hierarchical ChartEx treemap. */
2229
+ type PptxChartParentLabelLayout = 'none' | 'banner' | 'overlapping';
2230
+ /** Per-series layout options for an Office 2016+ ChartEx treemap. */
2231
+ interface PptxChartTreemapOptions {
2232
+ parentLabelLayout?: PptxChartParentLabelLayout;
2233
+ }
2061
2234
  /**
2062
2235
  * A single data series within a chart.
2063
2236
  *
@@ -2093,6 +2266,11 @@ interface PptxChartSeries {
2093
2266
  * series.
2094
2267
  */
2095
2268
  seriesChartType?: PptxChartType;
2269
+ boxWhiskerOptions?: PptxChartBoxWhiskerOptions;
2270
+ histogramOptions?: PptxChartHistogramOptions;
2271
+ waterfallOptions?: PptxChartWaterfallOptions;
2272
+ regionMapOptions?: PptxChartRegionMapOptions;
2273
+ treemapOptions?: PptxChartTreemapOptions;
2096
2274
  }
2097
2275
  /**
2098
2276
  * Chart-level data-label options (`c:dLbls` directly under a chart-type
@@ -2298,6 +2476,16 @@ interface PptxEmbeddedWorkbookData {
2298
2476
  name: string;
2299
2477
  values: number[];
2300
2478
  }>;
2479
+ /** Whether the workbook uses the 1904 date system. */
2480
+ date1904?: boolean;
2481
+ }
2482
+ /** Raw numeric category cache used by a classic ChartML date axis. */
2483
+ interface PptxChartDateCategories {
2484
+ values: number[];
2485
+ /** False/default uses Excel's 1900 date system; true uses the 1904 system. */
2486
+ date1904?: boolean;
2487
+ /** Number format copied from the numeric category cache. */
2488
+ formatCode?: string;
2301
2489
  }
2302
2490
  /**
2303
2491
  * Complete parsed chart data for a {@link ChartPptxElement}.
@@ -2321,6 +2509,13 @@ interface PptxChartData {
2321
2509
  title?: string;
2322
2510
  chartType: PptxChartType;
2323
2511
  categories: string[];
2512
+ /**
2513
+ * Hierarchical category levels in source XML order for ChartEx hierarchy charts.
2514
+ * Level 0 contains the leaf labels and remains mirrored by {@link categories}
2515
+ * for consumers that only understand a flat category axis.
2516
+ */
2517
+ categoryLevels?: string[][];
2518
+ dateCategories?: PptxChartDateCategories;
2324
2519
  series: PptxChartSeries[];
2325
2520
  /** Chart style/formatting metadata. */
2326
2521
  style?: PptxChartStyle;
@@ -2357,12 +2552,7 @@ interface PptxChartData {
2357
2552
  * The chart still renders using its cached series data; this field
2358
2553
  * is metadata about the data origin, preserved for round-trip fidelity.
2359
2554
  */
2360
- pivotSource?: {
2361
- /** Pivot table reference name, e.g. "[workbook.xlsx]Sheet1!PivotTable1". */
2362
- name: string;
2363
- /** Format identifier from c:fmtId/@val. */
2364
- formatId?: number;
2365
- };
2555
+ pivotSource?: PptxChartPivotSource | null;
2366
2556
  /**
2367
2557
  * Whether only visible cells are plotted (c:plotVisOnly).
2368
2558
  * When `true` (the default), hidden cells are excluded from the chart.
@@ -2385,6 +2575,12 @@ interface PptxChartData {
2385
2575
  * - `"acrossLinear"` — gradient across series
2386
2576
  */
2387
2577
  colorMethod?: 'cycle' | 'withinLinear' | 'acrossLinear';
2578
+ /** Internal source color-style part path used for lossless dirty saves. */
2579
+ colorStylePartPath?: string;
2580
+ /** Internal parsed palette snapshot used to detect actual edits. */
2581
+ colorStyleOriginalPalette?: string[];
2582
+ /** Internal parsed method snapshot used to detect actual edits. */
2583
+ colorStyleOriginalMethod?: 'cycle' | 'withinLinear' | 'acrossLinear';
2388
2584
  /**
2389
2585
  * Pie-of-pie / Bar-of-pie options (`c:ofPieChart`, CT_OfPieChart).
2390
2586
  *
@@ -2410,6 +2606,10 @@ interface PptxChartData {
2410
2606
  * source data, so absence does not produce empty `<c:…/>` placeholders.
2411
2607
  */
2412
2608
  chartChrome?: PptxChartChrome;
2609
+ /** `c:chartSpace/c:printSettings`; `null` removes the container on save. */
2610
+ printSettings?: PptxChartPrintSettings | null;
2611
+ /** `c:chartSpace/c:protection`; `null` removes the container on save. */
2612
+ protection?: PptxChartProtection | null;
2413
2613
  /** Editable manual placement for the title, plot area, and legend. */
2414
2614
  layouts?: PptxChartLayouts;
2415
2615
  /**
@@ -2428,7 +2628,8 @@ interface PptxChartData {
2428
2628
  * for charts whose data originates from a PivotTable. Preserved
2429
2629
  * verbatim for round-trip fidelity.
2430
2630
  */
2431
- pivotFmtsXml?: unknown;
2631
+ /** Typed pivot-chart format persistence; `null` removes `c:pivotFmts`. */
2632
+ pivotFormats?: PptxChartPivotFormats | null;
2432
2633
  /**
2433
2634
  * Color-map override (`c:clrMapOvr`) carrying 12 attributes that
2434
2635
  * remap theme colour roles for this chart only. Preserved as a flat
@@ -2439,7 +2640,7 @@ interface PptxChartData {
2439
2640
 
2440
2641
  type EffectDagBlendMode = 'darken' | 'lighten' | 'mult' | 'over' | 'screen';
2441
2642
  type EffectDagContainerType = 'sib' | 'tree';
2442
- type EffectDagNode = EffectDagContainer | EffectDagBlend | EffectDagXfrm | EffectDagRelOff | EffectDagBlur | EffectDagPresetShadow | EffectDagRawLeaf;
2643
+ type EffectDagNode = EffectDagContainer | EffectDagBlend | EffectDagXfrm | EffectDagRelOff | EffectDagBlur | EffectDagAlphaOutset | EffectDagPresetShadow | EffectDagRawLeaf;
2443
2644
  interface EffectDagContainer {
2444
2645
  kind: 'cont';
2445
2646
  type: EffectDagContainerType;
@@ -2472,6 +2673,12 @@ interface EffectDagBlur {
2472
2673
  grow?: boolean;
2473
2674
  xml: XmlObject;
2474
2675
  }
2676
+ /** Typed CT_AlphaOutsetEffect with original XML retained for lossless edits. */
2677
+ interface EffectDagAlphaOutset {
2678
+ kind: 'alphaOutset';
2679
+ radiusEmu?: number;
2680
+ xml: XmlObject;
2681
+ }
2475
2682
  /** Typed CT_PresetShadowEffect with colour and extension XML retained verbatim. */
2476
2683
  interface EffectDagPresetShadow {
2477
2684
  kind: 'prstShdw';
@@ -2511,6 +2718,8 @@ interface PptxImageEffects {
2511
2718
  duotone?: {
2512
2719
  color1: string;
2513
2720
  color2: string;
2721
+ /** Original effect XML, retained while the resolved colours are unchanged. */
2722
+ rawXml?: XmlObject;
2514
2723
  };
2515
2724
  /** Grayscale flag. */
2516
2725
  grayscale?: boolean;
@@ -2525,8 +2734,10 @@ interface PptxImageEffects {
2525
2734
  artisticEffect?: string;
2526
2735
  /** Artistic effect radius/amount. */
2527
2736
  artisticRadius?: number;
2528
- /** Alpha modulation fixed overall opacity (0-100, where 100 = fully opaque). */
2737
+ /** Alpha modulation fixed: non-negative percentage (100 means unchanged opacity). */
2529
2738
  alphaModFix?: number;
2739
+ /** Original alpha modulation fixed node, including foreign attributes. */
2740
+ alphaModFixRawXml?: XmlObject;
2530
2741
  /** Bi-level threshold — converts to 1-bit black/white (0-100). */
2531
2742
  biLevel?: number;
2532
2743
  /** Colour change — swap one colour range for another (used for transparency keying). */
@@ -2535,7 +2746,13 @@ interface PptxImageEffects {
2535
2746
  clrTo: string;
2536
2747
  /** Whether the target colour is fully transparent (alpha = 0). */
2537
2748
  clrToTransparent?: boolean;
2749
+ /** Original effect XML, including colour transforms and extensions. */
2750
+ rawXml?: XmlObject;
2538
2751
  };
2752
+ /** Original grayscale node, including extension or foreign attributes. */
2753
+ grayscaleRawXml?: XmlObject;
2754
+ /** Original bi-level node, including extension or foreign attributes. */
2755
+ biLevelRawXml?: XmlObject;
2539
2756
  /**
2540
2757
  * Alpha inverse effect (`a:alphaInv`). Inverts the alpha channel; an optional
2541
2758
  * colour child shifts the inversion baseline.
@@ -2543,11 +2760,17 @@ interface PptxImageEffects {
2543
2760
  alphaInv?: {
2544
2761
  /** Optional baseline colour (hex). */
2545
2762
  color?: string;
2763
+ /** Original effect XML, including colour transforms and foreign attributes. */
2764
+ rawXml?: XmlObject;
2546
2765
  };
2547
2766
  /** Alpha ceiling (`a:alphaCeiling`) — clamps any non-zero alpha to fully opaque. Boolean flag. */
2548
2767
  alphaCeiling?: boolean;
2768
+ /** Original alpha ceiling node, including foreign attributes. */
2769
+ alphaCeilingRawXml?: XmlObject;
2549
2770
  /** Alpha floor (`a:alphaFloor`) — clamps any non-fully-opaque alpha to fully transparent. Boolean flag. */
2550
2771
  alphaFloor?: boolean;
2772
+ /** Original alpha floor node, including foreign attributes. */
2773
+ alphaFloorRawXml?: XmlObject;
2551
2774
  /**
2552
2775
  * Alpha modulate (`a:alphaMod`). The schema requires a single `cont` (effect
2553
2776
  * container) child; we preserve the inner XML opaquely for round-trip.
@@ -2555,11 +2778,17 @@ interface PptxImageEffects {
2555
2778
  alphaMod?: {
2556
2779
  /** Raw opaque XML for the `a:cont` child to preserve on save. */
2557
2780
  contRawXml?: Record<string, unknown>;
2781
+ /** Original effect XML, including foreign attributes. */
2782
+ rawXml?: XmlObject;
2558
2783
  };
2559
2784
  /** Alpha replace (`a:alphaRepl`) — replaces alpha with the given fixed-percent value (0..100). */
2560
2785
  alphaRepl?: number;
2786
+ /** Original alpha replace node, including foreign attributes. */
2787
+ alphaReplRawXml?: XmlObject;
2561
2788
  /** Alpha bi-level (`a:alphaBiLevel`) — threshold (0..100) above which alpha becomes fully opaque. */
2562
2789
  alphaBiLevel?: number;
2790
+ /** Original alpha bi-level node, including foreign attributes. */
2791
+ alphaBiLevelRawXml?: XmlObject;
2563
2792
  /**
2564
2793
  * Colour replace (`a:clrRepl`) — replaces all colour information in an image
2565
2794
  * with the given solid colour. Stores the raw colour child to preserve scheme
@@ -2702,6 +2931,7 @@ declare module "./hooks-unstable" {
2702
2931
  *
2703
2932
  * @module pptx-types/media
2704
2933
  */
2934
+
2705
2935
  /**
2706
2936
  * Discriminator for embedded media element types.
2707
2937
  *
@@ -2716,6 +2946,8 @@ type PptxMediaReferenceKind = 'audioCd' | 'wavAudioFile' | 'audioFile' | 'videoF
2716
2946
  interface PptxAudioCdPosition {
2717
2947
  track: number;
2718
2948
  time?: number;
2949
+ /** Original `st` or `end` node, retained for lossless edits. */
2950
+ rawXml?: XmlObject;
2719
2951
  }
2720
2952
  /**
2721
2953
  * A named bookmark within a media clip timeline.
@@ -2793,7 +3025,39 @@ interface MediaCaptionTrack {
2793
3025
  isDefault?: boolean;
2794
3026
  }
2795
3027
 
3028
+ type PptxSmartArtConstraintRelationship = 'self' | 'ch' | 'des';
3029
+ type PptxSmartArtConstraintOperator = 'none' | 'equ' | 'gte' | 'lte';
3030
+ type PptxSmartArtConstraintPointType = 'all' | 'doc' | 'node' | 'norm' | 'nonNorm' | 'asst' | 'nonAsst' | 'parTrans' | 'pres' | 'sibTrans';
3031
+ interface PptxSmartArtConstraintTarget {
3032
+ for?: PptxSmartArtConstraintRelationship;
3033
+ forName?: string;
3034
+ pointType?: PptxSmartArtConstraintPointType;
3035
+ }
3036
+ /** Editable DiagramML CT_Constraint. */
3037
+ interface PptxSmartArtConstraint extends PptxSmartArtConstraintTarget {
3038
+ type: string;
3039
+ referenceType?: string;
3040
+ referenceFor?: PptxSmartArtConstraintRelationship;
3041
+ referenceForName?: string;
3042
+ referencePointType?: PptxSmartArtConstraintPointType;
3043
+ operator?: PptxSmartArtConstraintOperator;
3044
+ value?: number;
3045
+ factor?: number;
3046
+ /** Original constraint retained for foreign attributes and extension content. */
3047
+ rawXml?: XmlObject;
3048
+ }
3049
+ /** Editable DiagramML CT_NumericRule. */
3050
+ interface PptxSmartArtNumericRule extends PptxSmartArtConstraintTarget {
3051
+ type: string;
3052
+ value?: number;
3053
+ factor?: number;
3054
+ max?: number;
3055
+ /** Original rule retained for foreign attributes and extension content. */
3056
+ rawXml?: XmlObject;
3057
+ }
3058
+
2796
3059
  /** Typed, editable metadata from a DiagramML layout-definition part. */
3060
+
2797
3061
  interface PptxSmartArtLocalizedText {
2798
3062
  value: string;
2799
3063
  language?: string;
@@ -2802,12 +3066,56 @@ interface PptxSmartArtLayoutCategory {
2802
3066
  type: string;
2803
3067
  priority: number;
2804
3068
  }
3069
+ interface PptxSmartArtAlgorithmParameter {
3070
+ type: string;
3071
+ value?: string;
3072
+ }
3073
+ /** Typed DiagramML CT_Algorithm data attached to a layout node. */
3074
+ interface PptxSmartArtLayoutAlgorithm {
3075
+ type: string;
3076
+ revision?: number;
3077
+ parameters?: PptxSmartArtAlgorithmParameter[];
3078
+ }
3079
+ interface PptxSmartArtIteratorAttributes {
3080
+ name?: string;
3081
+ reference?: string;
3082
+ axis?: string[];
3083
+ pointTypes?: string[];
3084
+ hideLastTransition?: boolean[];
3085
+ start?: number[];
3086
+ count?: number[];
3087
+ step?: number[];
3088
+ }
3089
+ interface PptxSmartArtForEach extends PptxSmartArtIteratorAttributes {
3090
+ rawXml?: XmlObject;
3091
+ }
3092
+ interface PptxSmartArtWhen extends PptxSmartArtIteratorAttributes {
3093
+ function: string;
3094
+ argument?: string;
3095
+ operator: string;
3096
+ value: string;
3097
+ rawXml?: XmlObject;
3098
+ }
3099
+ interface PptxSmartArtChoose {
3100
+ name?: string;
3101
+ when: PptxSmartArtWhen[];
3102
+ otherwise?: {
3103
+ name?: string;
3104
+ rawXml?: XmlObject;
3105
+ } | null;
3106
+ rawXml?: XmlObject;
3107
+ }
2805
3108
  /** Identity and ordering metadata from DiagramML CT_LayoutNode. */
2806
3109
  interface PptxSmartArtLayoutNode {
2807
3110
  name?: string;
2808
3111
  styleLabel?: string;
2809
3112
  childOrder?: 'b' | 't';
2810
3113
  moveWith?: string;
3114
+ algorithm?: PptxSmartArtLayoutAlgorithm;
3115
+ forEach?: PptxSmartArtForEach[];
3116
+ choose?: PptxSmartArtChoose[];
3117
+ constraints?: PptxSmartArtConstraint[];
3118
+ rules?: PptxSmartArtNumericRule[];
2811
3119
  children?: PptxSmartArtLayoutNode[];
2812
3120
  }
2813
3121
  /** Metadata and root node from DiagramML CT_DiagramDefinition. */
@@ -2819,6 +3127,8 @@ interface PptxSmartArtLayoutDefinition {
2819
3127
  descriptions?: PptxSmartArtLocalizedText[];
2820
3128
  categories?: PptxSmartArtLayoutCategory[];
2821
3129
  rootNode: PptxSmartArtLayoutNode;
3130
+ /** Original definition retained for constraint evaluation and foreign rules. */
3131
+ rawXml?: XmlObject;
2822
3132
  }
2823
3133
 
2824
3134
  /**
@@ -2830,6 +3140,7 @@ interface PptxSmartArtLayoutDefinition {
2830
3140
  *
2831
3141
  * @module pptx-types/smart-art-node
2832
3142
  */
3143
+
2833
3144
  /**
2834
3145
  * A single run of text inside a SmartArt node, capturing the run text and the
2835
3146
  * raw `a:rPr` run-properties object verbatim so per-run formatting (bold,
@@ -2853,6 +3164,54 @@ interface PptxSmartArtTextRun {
2853
3164
  * round-trip. Untyped XML, hence the loose record shape.
2854
3165
  */
2855
3166
  rPr?: Record<string, unknown>;
3167
+ /** Resolved standard shape-text style derived from {@link rPr}. */
3168
+ style?: TextStyle;
3169
+ /** Raw run XML used to retain unmodelled extension children on save. */
3170
+ rawXml?: Record<string, unknown>;
3171
+ /** Original direct-child order, including unmodelled extension children. */
3172
+ childOrder?: string[];
3173
+ }
3174
+ /** An ordered item within a SmartArt text paragraph. */
3175
+ type PptxSmartArtTextParagraphItem = {
3176
+ kind: 'run';
3177
+ run: PptxSmartArtTextRun;
3178
+ } | {
3179
+ kind: 'break';
3180
+ rPr?: Record<string, unknown>;
3181
+ style?: TextStyle;
3182
+ rawXml?: Record<string, unknown>;
3183
+ childOrder?: string[];
3184
+ } | {
3185
+ kind: 'field';
3186
+ id?: string;
3187
+ fieldType?: string;
3188
+ text: string;
3189
+ rPr?: Record<string, unknown>;
3190
+ style?: TextStyle;
3191
+ pPr?: Record<string, unknown>;
3192
+ rawXml?: Record<string, unknown>;
3193
+ childOrder?: string[];
3194
+ } | {
3195
+ kind: 'tab';
3196
+ rawXml?: Record<string, unknown>;
3197
+ childOrder?: string[];
3198
+ } | {
3199
+ kind: 'raw';
3200
+ name: string;
3201
+ value: unknown;
3202
+ };
3203
+ /** A complete `a:p` paragraph in a SmartArt data-model text body. */
3204
+ interface PptxSmartArtTextParagraph {
3205
+ /** Paragraph properties (`a:pPr`) preserved verbatim. */
3206
+ pPr?: Record<string, unknown>;
3207
+ /** Text children in source order. */
3208
+ items: PptxSmartArtTextParagraphItem[];
3209
+ /** End-paragraph run properties (`a:endParaRPr`) preserved verbatim. */
3210
+ endParaRPr?: Record<string, unknown>;
3211
+ /** Resolved style for the paragraph terminator. */
3212
+ endParaStyle?: TextStyle;
3213
+ /** Raw paragraph XML used to retain unmodelled extension children on save. */
3214
+ rawXml?: Record<string, unknown>;
2856
3215
  }
2857
3216
  /**
2858
3217
  * Per-node visual override for a SmartArt node.
@@ -2922,6 +3281,11 @@ interface PptxSmartArtNode {
2922
3281
  * is not flattened. When {@link text} diverges, the runs are ignored.
2923
3282
  */
2924
3283
  runs?: PptxSmartArtTextRun[];
3284
+ /**
3285
+ * Complete typed paragraph model. Unlike {@link runs}, this retains every
3286
+ * paragraph and the ordered run, field, break, and tab children within it.
3287
+ */
3288
+ paragraphs?: PptxSmartArtTextParagraph[];
2925
3289
  /**
2926
3290
  * Optional per-node visual override (fill / line / font colour, bold /
2927
3291
  * italic). Read at parse time from the point's `spPr` / first-run `rPr`, set
@@ -3085,7 +3449,7 @@ interface PptxSmartArtConnection {
3085
3449
  * // => satisfies PptxSmartArtDrawingShape
3086
3450
  * ```
3087
3451
  */
3088
- interface PptxSmartArtDrawingShape {
3452
+ interface PptxSmartArtDrawingShape extends PptxCustomPathProperties {
3089
3453
  /** Shape ID within the drawing. */
3090
3454
  id: string;
3091
3455
  /** Preset geometry type (e.g. "roundRect", "ellipse"). */
@@ -3109,6 +3473,8 @@ interface PptxSmartArtDrawingShape {
3109
3473
  strokeWidth?: number;
3110
3474
  /** Text content of the shape. */
3111
3475
  text?: string;
3476
+ /** Standard rich-text segments projected from the associated SmartArt node. */
3477
+ textSegments?: TextSegment[];
3112
3478
  /** Font size in points. */
3113
3479
  fontSize?: number;
3114
3480
  /** Font colour (hex). */
@@ -3806,6 +4172,8 @@ interface MediaPptxElement extends PptxElementBase {
3806
4172
  mediaMimeType?: string;
3807
4173
  mediaReferenceKind?: PptxMediaReferenceKind;
3808
4174
  mediaReferenceName?: string;
4175
+ /** Explicit DrawingML `audioFile/@contentType` value when present. */
4176
+ mediaReferenceContentType?: string;
3809
4177
  audioCdStart?: PptxAudioCdPosition;
3810
4178
  audioCdEnd?: PptxAudioCdPosition;
3811
4179
  rawMediaReferenceXml?: XmlObject;
@@ -3929,6 +4297,10 @@ interface ContentPartPptxElement extends PptxElementBase {
3929
4297
  type: 'contentPart';
3930
4298
  /** Ink strokes contained in this content part. */
3931
4299
  inkStrokes?: ContentPartInkStroke[];
4300
+ /** Package path of the related InkML part. */
4301
+ inkPartPath?: string;
4302
+ /** Parsed InkML root retained for unknown-node preservation on dirty save. */
4303
+ inkPartRawXml?: XmlObject;
3932
4304
  }
3933
4305
  /**
3934
4306
  * A Slide Zoom or Section Zoom element (PowerPoint Zoom Object).
@@ -3949,12 +4321,32 @@ interface ContentPartPptxElement extends PptxElementBase {
3949
4321
  */
3950
4322
  interface ZoomPptxElement extends PptxElementBase, PptxImageProperties {
3951
4323
  type: 'zoom';
3952
- /** Type of zoom: slide-level or section-level. */
3953
- zoomType: 'slide' | 'section';
4324
+ /** Type of zoom: slide-level, section-level, or a multi-section summary. */
4325
+ zoomType: 'slide' | 'section' | 'summary';
3954
4326
  /** Zero-based index of the target slide. */
3955
4327
  targetSlideIndex: number;
3956
4328
  /** Section ID for section zoom. */
3957
4329
  targetSectionId?: string;
4330
+ /** Ordered section tiles in a Summary Zoom container. */
4331
+ summaryTargets?: SummaryZoomTarget[];
4332
+ /** Layout mode authored on the Summary Zoom container. */
4333
+ summaryLayout?: 'grid' | 'fixed';
4334
+ }
4335
+ /** A single section tile within a PowerPoint Summary Zoom container. */
4336
+ interface SummaryZoomTarget extends PptxImageProperties {
4337
+ sectionId: string;
4338
+ targetSlideIndex: number;
4339
+ x: number;
4340
+ y: number;
4341
+ width: number;
4342
+ height: number;
4343
+ title?: string;
4344
+ description?: string;
4345
+ offsetFactorX?: number;
4346
+ offsetFactorY?: number;
4347
+ scaleFactorX?: number;
4348
+ scaleFactorY?: number;
4349
+ rawXml?: XmlObject;
3958
4350
  }
3959
4351
  /**
3960
4352
  * A 3D model object embedded via `p16:model3D` inside an
@@ -4606,6 +4998,33 @@ interface PptxElementAnimation {
4606
4998
  stopSound?: boolean;
4607
4999
  }
4608
5000
 
5001
+ interface PptxEmbeddedFontDataId {
5002
+ /** Required relationship identifier from `r:id`. */
5003
+ relationshipId?: string | null;
5004
+ /** Original leaf retained for unknown attribute preservation. */
5005
+ rawXml?: XmlObject;
5006
+ }
5007
+ interface PptxEmbeddedFontDescriptor {
5008
+ typeface?: string | null;
5009
+ panose?: string | null;
5010
+ pitchFamily?: string | null;
5011
+ charset?: string | null;
5012
+ rawXml?: XmlObject;
5013
+ }
5014
+ interface PptxEmbeddedFontListEntry {
5015
+ font: PptxEmbeddedFontDescriptor;
5016
+ regular?: PptxEmbeddedFontDataId | null;
5017
+ bold?: PptxEmbeddedFontDataId | null;
5018
+ italic?: PptxEmbeddedFontDataId | null;
5019
+ boldItalic?: PptxEmbeddedFontDataId | null;
5020
+ rawXml?: XmlObject;
5021
+ }
5022
+ interface PptxEmbeddedFontList {
5023
+ fonts: PptxEmbeddedFontListEntry[];
5024
+ /** Original list retained for unknown attribute and child preservation. */
5025
+ rawXml?: XmlObject;
5026
+ }
5027
+
4609
5028
  /**
4610
5029
  * Metadata types: slide comments, compatibility warnings, tags,
4611
5030
  * custom properties, core/app document properties.
@@ -4761,9 +5180,17 @@ interface PptxTag {
4761
5180
  */
4762
5181
  interface PptxTagCollection {
4763
5182
  /** File path within the PPTX archive. */
4764
- path: string;
5183
+ path?: string;
5184
+ /** Package owner of the tags relationship. New collections default to presentation. */
5185
+ owner?: 'presentation' | 'slide' | 'part';
5186
+ /** Source OPC part that owns the relationship, e.g. ppt/slides/slide1.xml. */
5187
+ sourcePartPath?: string;
5188
+ /** Durable relationship identifier from the owning part. */
5189
+ relationshipId?: string;
4765
5190
  /** Tags in this collection. */
4766
5191
  tags: PptxTag[];
5192
+ /** Parsed tag-list XML retained for unknown-node preservation. */
5193
+ rawXml?: XmlObject;
4767
5194
  }
4768
5195
  /**
4769
5196
  * A custom document property from `docProps/custom.xml`.
@@ -4868,6 +5295,19 @@ interface PptxAppProperties {
4868
5295
  /** Hyperlink base URL. */
4869
5296
  hyperlinkBase?: string;
4870
5297
  }
5298
+
5299
+ type PptxPrintOutput = 'slides' | 'handouts1' | 'handouts2' | 'handouts3' | 'handouts4' | 'handouts6' | 'handouts9' | 'notes' | 'outline';
5300
+ type PptxPrintColorMode = 'bw' | 'gray' | 'clr';
5301
+ /** PresentationML `CT_PrintProperties` (`p:prnPr`). */
5302
+ interface PptxPresentationPrintProperties {
5303
+ printWhat?: PptxPrintOutput | null;
5304
+ colorMode?: PptxPrintColorMode | null;
5305
+ hiddenSlides?: boolean | null;
5306
+ scaleToFitPaper?: boolean | null;
5307
+ frameSlides?: boolean | null;
5308
+ /** Original subtree retained for unknown attributes and `p:extLst`. */
5309
+ rawXml?: XmlObject;
5310
+ }
4871
5311
  /**
4872
5312
  * Resolved hex values for the 12 theme colour slots.
4873
5313
  *
@@ -5226,6 +5666,11 @@ interface PptxViewScale {
5226
5666
  n: number;
5227
5667
  /** Denominator of the scale percentage (e.g. 100 for 100%). */
5228
5668
  d: number;
5669
+ /** Optional independent vertical scale. When absent, the X scale is used. */
5670
+ sy?: {
5671
+ n: number;
5672
+ d: number;
5673
+ };
5229
5674
  }
5230
5675
  /**
5231
5676
  * Origin point for a view (x, y in twips or EMU).
@@ -5234,6 +5679,16 @@ interface PptxViewOrigin {
5234
5679
  x: number;
5235
5680
  y: number;
5236
5681
  }
5682
+ /** A horizontal or vertical drawing guide in slide coordinates. */
5683
+ interface PptxViewGuide {
5684
+ orientation?: 'horz' | 'vert';
5685
+ position?: number;
5686
+ }
5687
+ /** Positive grid spacing from `p:gridSpacing`. */
5688
+ interface PptxGridSpacing {
5689
+ cx: number;
5690
+ cy: number;
5691
+ }
5237
5692
  /**
5238
5693
  * Restored region dimensions for normal view splitter.
5239
5694
  * Represents `p:restoredLeft` or `p:restoredTop`.
@@ -5275,6 +5730,10 @@ interface PptxCommonSlideViewProperties {
5275
5730
  snapToObjects?: boolean;
5276
5731
  /** Whether drawing guides are shown. */
5277
5732
  showGuides?: boolean;
5733
+ /** Whether the application may vary the scale automatically. */
5734
+ variableScale?: boolean;
5735
+ /** Drawing guides shown in this slide view. */
5736
+ guides?: PptxViewGuide[];
5278
5737
  /** View origin (scroll position). */
5279
5738
  origin?: PptxViewOrigin;
5280
5739
  /** View scale. */
@@ -5302,6 +5761,8 @@ interface PptxViewProperties {
5302
5761
  };
5303
5762
  /** Notes view properties. */
5304
5763
  notesViewPr?: PptxCommonSlideViewProperties;
5764
+ /** Grid spacing in positive DrawingML coordinates. */
5765
+ gridSpacing?: PptxGridSpacing;
5305
5766
  /** Raw XML preserved for lossless round-trip of unparsed attributes. */
5306
5767
  rawXml?: Record<string, unknown>;
5307
5768
  }
@@ -5316,12 +5777,16 @@ interface PptxViewProperties {
5316
5777
  * @see ECMA-376 Part 1, §19.2.1.3 (custDataLst), §19.3.1.6 (custData)
5317
5778
  */
5318
5779
  interface PptxCustomerData {
5319
- /** Resolved part path inside the package (e.g. `ppt/customerData/item1.xml`). */
5320
- id: string;
5780
+ /** Resolved part path inside the package (e.g. `customXml/item1.xml`). */
5781
+ id?: string;
5321
5782
  /** Relationship ID referencing the custom data part. */
5322
- relId: string;
5783
+ relId?: string;
5323
5784
  /** Raw string content of the custom data part (if resolvable). */
5324
5785
  data?: string;
5786
+ /** OPC content type for the custom data part. */
5787
+ contentType?: string;
5788
+ /** Raw `p:custData` XML retained for unknown-node preservation. */
5789
+ rawXml?: XmlObject;
5325
5790
  }
5326
5791
  /**
5327
5792
  * An ActiveX control reference from `p:controls / p:control`.
@@ -5570,11 +6035,13 @@ interface PptxPresentationProperties {
5570
6035
  showSlidesTo?: number;
5571
6036
  /** Whether to show subtitles/captions during presentation mode. */
5572
6037
  showSubtitles?: boolean;
5573
- /** Print settings: slides per page. */
6038
+ /** Typed `p:prnPr` settings. Set to null during save to remove the element. */
6039
+ printProperties?: PptxPresentationPrintProperties | null;
6040
+ /** @deprecated Use `printProperties.printWhat`; retained as a handout compatibility alias. */
5574
6041
  printSlidesPerPage?: number;
5575
- /** Print settings: frame slides. */
6042
+ /** @deprecated Use `printProperties.frameSlides`. */
5576
6043
  printFrameSlides?: boolean;
5577
- /** Print settings: colour mode (from `p:prnPr/@clrMode`). */
6044
+ /** @deprecated Use `printProperties.colorMode`. */
5578
6045
  printColorMode?: 'clr' | 'gray' | 'bw';
5579
6046
  /** Most-recently-used colours from the presentation palette. */
5580
6047
  mruColors?: string[];
@@ -5711,11 +6178,13 @@ interface PptxPhotoAlbum {
5711
6178
  */
5712
6179
  interface PptxKinsoku {
5713
6180
  /** Language code (e.g. "ja-JP", "zh-CN"). */
5714
- lang?: string;
6181
+ lang?: string | null;
5715
6182
  /** Characters that cannot begin a line. */
5716
6183
  invalStChars?: string;
5717
6184
  /** Characters that cannot end a line. */
5718
6185
  invalEndChars?: string;
6186
+ /** Original leaf retained for unknown attribute preservation. */
6187
+ rawXml?: XmlObject;
5719
6188
  }
5720
6189
  /**
5721
6190
  * Root data structure returned by {@link PptxHandlerCore.load}.
@@ -5766,6 +6235,8 @@ interface PptxData {
5766
6235
  isPasswordProtected?: boolean;
5767
6236
  /** Embedded font data (name + binary data URL) extracted from the presentation. */
5768
6237
  embeddedFonts?: PptxEmbeddedFont[];
6238
+ /** Typed `p:embeddedFontLst` package metadata, including unresolved variants. */
6239
+ embeddedFontList?: PptxEmbeddedFontList;
5769
6240
  /** Most-recently-used colour list from presentation properties. */
5770
6241
  mruColors?: string[];
5771
6242
  /** Parsed notes master data if present in the PPTX. */
@@ -6100,10 +6571,17 @@ interface ChartSeriesInput {
6100
6571
  name: string;
6101
6572
  values: number[];
6102
6573
  color?: string;
6574
+ boxWhiskerOptions?: PptxChartBoxWhiskerOptions;
6575
+ histogramOptions?: PptxChartHistogramOptions;
6576
+ waterfallOptions?: PptxChartWaterfallOptions;
6577
+ regionMapOptions?: PptxChartRegionMapOptions;
6578
+ treemapOptions?: PptxChartTreemapOptions;
6103
6579
  }
6104
6580
  interface ChartInput {
6105
6581
  series: ChartSeriesInput[];
6106
6582
  categories: string[];
6583
+ /** ChartEx hierarchy levels in leaf-to-root XML order. */
6584
+ categoryLevels?: string[][];
6107
6585
  title?: string;
6108
6586
  hasLegend?: boolean;
6109
6587
  legendPosition?: 't' | 'b' | 'l' | 'r' | 'tr';
@@ -6617,10 +7095,12 @@ interface PptxHandlerSaveOptions {
6617
7095
  slideLayouts?: PptxSlideLayout[];
6618
7096
  /** Updated tag collections to save back to ppt/tags/tag*.xml. */
6619
7097
  tags?: PptxTagCollection[];
7098
+ /** Presentation-level customer data references to author or update. */
7099
+ customerData?: PptxCustomerData[];
6620
7100
  /** Photo album metadata to save back to `p:photoAlbum`. */
6621
7101
  photoAlbum?: PptxPhotoAlbum;
6622
7102
  /** East Asian line-break settings to save back to `p:kinsoku`. */
6623
- kinsoku?: PptxKinsoku;
7103
+ kinsoku?: PptxKinsoku | null;
6624
7104
  /** Write-protection verifier. Set to `null` to remove, `undefined` to preserve existing. */
6625
7105
  modifyVerifier?: PptxModifyVerifier | null;
6626
7106
  /** View properties to save back to ppt/viewProps.xml. */
@@ -6652,6 +7132,8 @@ interface PptxHandlerSaveOptions {
6652
7132
  * preserved (i.e. the default is lossless round-trip).
6653
7133
  */
6654
7134
  embeddedFonts?: PptxEmbeddedFont[];
7135
+ /** Typed embedded-font list metadata. Set to null to remove fonts and relationships. */
7136
+ embeddedFontList?: PptxEmbeddedFontList | null;
6655
7137
  /**
6656
7138
  * OOXML conformance class for the saved output.
6657
7139
  * - `'preserve'` (default): use the same conformance as the loaded file.
@@ -7576,6 +8058,20 @@ interface ElementClipboardPayload {
7576
8058
  isTemplate: boolean;
7577
8059
  }
7578
8060
 
8061
+ /** Framework-neutral virtual-list range used by every thumbnail sidebar. */
8062
+ interface VirtualizedRange {
8063
+ startIndex: number;
8064
+ endIndex: number;
8065
+ totalHeight: number;
8066
+ offsetY: number;
8067
+ visibleRange: {
8068
+ start: number;
8069
+ end: number;
8070
+ };
8071
+ }
8072
+ /** Compute the rendered item window for fixed-height virtual lists. */
8073
+ declare function computeVirtualRange(totalItems: number, itemHeight: number, scrollTop: number, viewportHeight: number, overscan?: number): VirtualizedRange;
8074
+
7579
8075
  /**
7580
8076
  * Pure handout layout calculations, shared by every binding's print path.
7581
8077
  *
@@ -10118,34 +10614,12 @@ interface VirtualizedSlidesOptions {
10118
10614
  /** Number of extra items to render above/below the viewport. */
10119
10615
  overscan?: number;
10120
10616
  }
10121
- interface VirtualizedRange {
10122
- /** The first index to render (inclusive). */
10123
- startIndex: number;
10124
- /** The last index to render (inclusive). */
10125
- endIndex: number;
10126
- /** Total height of the virtual container (for scrollbar sizing). */
10127
- totalHeight: number;
10128
- /** Offset (top padding) to position the rendered window correctly. */
10129
- offsetY: number;
10130
- /** The visible range without overscan (for analytics/testing). */
10131
- visibleRange: {
10132
- start: number;
10133
- end: number;
10134
- };
10135
- }
10136
10617
  interface VirtualizedSlidesResult extends VirtualizedRange {
10137
10618
  /** Ref to attach to the scroll container element. */
10138
10619
  scrollContainerRef: React.RefObject<HTMLDivElement | null>;
10139
10620
  /** Call this to scroll a specific index into view. */
10140
10621
  scrollToIndex: (index: number, behavior?: ScrollBehavior) => void;
10141
10622
  }
10142
- /**
10143
- * Compute the rendered index range given scroll state and item dimensions.
10144
- *
10145
- * This is a pure function with no React or DOM dependencies so it can
10146
- * be unit-tested without `renderHook` or a DOM environment.
10147
- */
10148
- declare function computeVirtualRange(totalItems: number, itemHeight: number, scrollTop: number, viewportHeight: number, overscan?: number): VirtualizedRange;
10149
10623
  declare function useVirtualizedSlides({ totalItems, itemHeight, overscan }: VirtualizedSlidesOptions): VirtualizedSlidesResult;
10150
10624
  //#endregion
10151
10625
  //#region src/viewer/hooks/useIsMobile.d.ts