pptx-react-viewer 1.1.3 → 1.1.5

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 (39) hide show
  1. package/dist/index.js +1099 -384
  2. package/dist/index.mjs +1099 -385
  3. package/dist/pptx-viewer.css +1 -1
  4. package/dist/viewer/index.js +1117 -390
  5. package/dist/viewer/index.mjs +1117 -391
  6. package/node_modules/emf-converter/dist/index.d.mts +2 -2
  7. package/node_modules/emf-converter/dist/index.d.ts +2 -2
  8. package/node_modules/emf-converter/dist/index.js +91 -33
  9. package/node_modules/emf-converter/dist/index.mjs +91 -33
  10. package/node_modules/emf-converter/package.json +2 -2
  11. package/node_modules/mtx-decompressor/dist/index.js +39 -9
  12. package/node_modules/mtx-decompressor/dist/index.mjs +39 -9
  13. package/node_modules/mtx-decompressor/package.json +2 -2
  14. package/node_modules/pptx-viewer-core/dist/{SvgExporter-BMjoxMDV.d.ts → SvgExporter-0TxiiorD.d.ts} +1 -1
  15. package/node_modules/pptx-viewer-core/dist/{SvgExporter-z6AbXRQg.d.mts → SvgExporter-BQ4KbRO9.d.mts} +1 -1
  16. package/node_modules/pptx-viewer-core/dist/cli/index.d.mts +2 -2
  17. package/node_modules/pptx-viewer-core/dist/cli/index.d.ts +2 -2
  18. package/node_modules/pptx-viewer-core/dist/cli/index.js +0 -0
  19. package/node_modules/pptx-viewer-core/dist/cli/index.mjs +0 -0
  20. package/node_modules/pptx-viewer-core/dist/converter/index.d.mts +3 -3
  21. package/node_modules/pptx-viewer-core/dist/converter/index.d.ts +3 -3
  22. package/node_modules/pptx-viewer-core/dist/converter/index.js +0 -0
  23. package/node_modules/pptx-viewer-core/dist/converter/index.mjs +0 -0
  24. package/node_modules/pptx-viewer-core/dist/index.d.mts +786 -54
  25. package/node_modules/pptx-viewer-core/dist/index.d.ts +786 -54
  26. package/node_modules/pptx-viewer-core/dist/index.js +3589 -630
  27. package/node_modules/pptx-viewer-core/dist/index.mjs +3575 -630
  28. package/node_modules/pptx-viewer-core/dist/{presentation-CchuDGfU.d.mts → presentation-ArhfImJ5.d.mts} +225 -8
  29. package/node_modules/pptx-viewer-core/dist/{presentation-CchuDGfU.d.ts → presentation-ArhfImJ5.d.ts} +225 -8
  30. package/node_modules/pptx-viewer-core/dist/{signature-inspection-status-BcJSdOvb.d.mts → signature-inspection-status-BCUpfCQh.d.mts} +13 -2
  31. package/node_modules/pptx-viewer-core/dist/{signature-inspection-status-BcJSdOvb.d.ts → signature-inspection-status-BCUpfCQh.d.ts} +13 -2
  32. package/node_modules/pptx-viewer-core/dist/signature-node/index.d.mts +2 -2
  33. package/node_modules/pptx-viewer-core/dist/signature-node/index.d.ts +2 -2
  34. package/node_modules/pptx-viewer-core/dist/signature-node/index.js +17 -3
  35. package/node_modules/pptx-viewer-core/dist/signature-node/index.mjs +16 -4
  36. package/node_modules/pptx-viewer-core/dist/{text-operations-CeukUztU.d.mts → text-operations-CLj-sJyk.d.mts} +1 -1
  37. package/node_modules/pptx-viewer-core/dist/{text-operations-e7JxgI5l.d.ts → text-operations-rhJV-A_W.d.ts} +1 -1
  38. package/node_modules/pptx-viewer-core/package.json +5 -5
  39. package/package.json +22 -20
@@ -1,12 +1,12 @@
1
- import { P as PptxElement, a as PptxElementWithShapeStyle, b as PptxElementWithText, C as ConnectorPptxElement, c as PptxImageLikeElement, I as InkPptxElement, S as ShapePptxElement, T as TextPptxElement, Z as ZoomPptxElement, d as PptxThemeColorScheme, e as PptxThemeFontScheme, f as PptxAnimationPreset, g as PptxAnimationTrigger, h as StrokeDashType, i as ConnectorArrowType, j as PptxTransitionType, k as PptxChartType, l as PptxSlide, m as PptxData, n as PptxCompatibilityWarning, o as PptxLayoutOption, X as XmlObject, p as PptxChartData, q as PptxSmartArtData, r as PptxHeaderFooter, s as PptxPresentationProperties, t as PptxCustomShow, u as PptxSection, v as PptxCoreProperties, w as PptxAppProperties, x as PptxCustomProperty, y as PptxNotesMaster, z as PptxHandoutMaster, A as PptxTagCollection, B as PptxPhotoAlbum, D as PptxKinsoku, E as PptxModifyVerifier, F as PptxViewProperties, G as PptxEmbeddedFont, H as PptxExportOptions, J as PptxThemeFormatScheme, K as TextSegment, L as PptxComment, M as PptxSlideTransition, N as PptxElementAnimation, O as PptxNativeAnimation, Q as PptxCustomerData, R as PptxActiveXControl, U as AnimationCondition, V as ShapeStyle, W as TextStyle, Y as ElementAction, _ as PptxAction, $ as OleObjectType, a0 as PptxSmartArtNode, a1 as SmartArtLayoutType, a2 as PptxSmartArtDrawingShape, a3 as PptxChartDataTable, a4 as PptxChartLineStyle, a5 as PptxChartErrBars, a6 as PptxChartTrendline, a7 as PptxChartMarker, a8 as PptxChartDataLabel, a9 as PptxChartDataPoint, aa as PptxChartShapeProps, ab as PptxChart3DSurface, ac as PptxChartAxisFormatting, ad as PptxEmbeddedWorkbookData, ae as PptxDrawingGuide, af as PptxTableCellStyle, ag as PptxCustomXmlPart, ah as PptxCommentAuthor, ai as MediaPptxElement, aj as PptxTableData, ak as PptxTheme, al as ParsedTableStyleMap, am as PptxSlideMaster, an as PptxThemeOption, ao as PlaceholderDefaults, ap as ParsedTableStyleFill, aq as ParsedTableStyleText, ar as PptxImageEffects, as as MediaBookmark, at as PptxChartStyle, au as TablePptxElement, av as GroupPptxElement, aw as PlaceholderTextLevelStyle, ax as PptxChartSeries, ay as SmartArtPptxElement, az as GeometryAdjustmentHandle, aA as BulletInfo, aB as PptxShapeLocks, aC as PptxThemeFillStyle, aD as PptxThemeLineStyle, aE as PptxThemeEffectStyle, aF as PptxSmartArtChrome, aG as PptxSmartArtColorTransform, aH as PptxSmartArtQuickStyle, aI as PptxExternalData, aJ as CustomGeometryPoint, aK as CustomGeometryPath, aL as ChartPptxElement, aM as ImagePptxElement } from './presentation-CchuDGfU.mjs';
2
- export { aN as ActionButtonPreset, aO as AnimationConditionEvent, aP as BevelPresetType, aQ as ConnectorConnectionPoint, aR as ContentPartInkStroke, aS as ContentPartPptxElement, aT as CustomGeometrySegment, aU as ElementActionType, aV as MasterViewTab, aW as MaterialPresetType, aX as MediaCaptionTrack, aY as MediaMetadata, aZ as Model3DPptxElement, a_ as OlePptxElement, a$ as ParsedTableStyleEntry, b0 as PicturePptxElement, b1 as Pptx3DScene, b2 as Pptx3DShape, b3 as PptxAfterAnimationAction, b4 as PptxAnimationDirection, b5 as PptxAnimationIterate, b6 as PptxAnimationRepeatMode, b7 as PptxAnimationSequence, b8 as PptxAnimationTimingCurve, b9 as PptxChartAxisNumFmt, ba as PptxChartErrBarDir, bb as PptxChartErrBarType, bc as PptxChartErrValType, bd as PptxChartMarkerSymbol, be as PptxChartTrendlineType, bf as PptxColorAnimation, bg as PptxCommonSlideViewProperties, bh as PptxCropShape, bi as PptxCustomPathProperties, bj as PptxElementBase, bk as PptxElementType, bl as PptxExportFormat, bm as PptxImageProperties, bn as PptxMasterTextStyles, bo as PptxMediaType, bp as PptxNormalViewProperties, bq as PptxRestoredRegion, br as PptxShapeProperties, bs as PptxSlideLayout, bt as PptxSmartArtConnection, bu as PptxSplitDirection, bv as PptxSplitOrientation, bw as PptxStripDirection, bx as PptxTableCell, by as PptxTableRow, bz as PptxTag, bA as PptxTextAnimationTarget, bB as PptxTextBuildType, bC as PptxTextProperties, bD as PptxTextStyleLevels, bE as PptxTextWarpPreset, bF as PptxThemeFontGroup, bG as PptxTransitionDirection4, bH as PptxTransitionDirection8, bI as PptxViewOrigin, bJ as PptxViewScale, bK as ShadowEffect, bL as SmartArtColorScheme, bM as SmartArtLayout, bN as SmartArtStyle, bO as THEME_COLOR_SCHEME_KEYS, bP as TRANSITION_VALID_DIRECTIONS, bQ as Text3DStyle, bR as UnderlineStyle, bS as UnknownPptxElement } from './presentation-CchuDGfU.mjs';
3
- import { F as FindResult, M as MergeOptions } from './text-operations-CeukUztU.mjs';
4
- export { f as findText, m as mergePresentation, r as replaceText, a as replaceTextInSlide } from './text-operations-CeukUztU.mjs';
1
+ import { P as PptxElement, a as PptxElementWithShapeStyle, b as PptxElementWithText, C as ConnectorPptxElement, c as PptxImageLikeElement, I as InkPptxElement, S as ShapePptxElement, T as TextPptxElement, Z as ZoomPptxElement, d as PptxThemeColorScheme, e as PptxThemeFontScheme, f as PptxAnimationPreset, g as PptxAnimationTrigger, h as StrokeDashType, i as ConnectorArrowType, j as PptxTransitionType, k as PptxChartType, l as PptxSlide, m as PptxData, n as PptxCompatibilityWarning, o as PptxLayoutOption, X as XmlObject, p as PptxChartData, q as PptxSmartArtData, r as PptxHeaderFooter, s as PptxPresentationProperties, t as PptxCustomShow, u as PptxSection, v as PptxCoreProperties, w as PptxAppProperties, x as PptxCustomProperty, y as PptxNotesMaster, z as PptxHandoutMaster, A as PptxTagCollection, B as PptxPhotoAlbum, D as PptxKinsoku, E as PptxModifyVerifier, F as PptxViewProperties, G as PptxEmbeddedFont, H as PptxExportOptions, J as PptxThemeFormatScheme, K as TextSegment, L as PptxComment, M as PptxSlideTransition, N as PptxElementAnimation, O as PptxNativeAnimation, Q as PptxCustomerData, R as PptxActiveXControl, U as AnimationCondition, V as ShapeStyle, W as TextStyle, Y as ElementAction, _ as PptxAction, $ as OleObjectType, a0 as PptxSmartArtNode, a1 as SmartArtLayoutType, a2 as PptxSmartArtDrawingShape, a3 as PptxChartDataTable, a4 as PptxChartLineStyle, a5 as PptxChartErrBars, a6 as PptxChartTrendline, a7 as PptxChartMarker, a8 as PptxChartDataLabel, a9 as PptxChartDataPoint, aa as PptxChartShapeProps, ab as PptxChart3DSurface, ac as PptxChartAxisFormatting, ad as PptxEmbeddedWorkbookData, ae as PptxDrawingGuide, af as PptxTableCellStyle, ag as PptxCustomXmlPart, ah as PptxCommentAuthor, ai as MediaPptxElement, aj as PptxTableData, ak as PptxTheme, al as ParsedTableStyleMap, am as PptxSlideMaster, an as PptxThemeOption, ao as PlaceholderDefaults, ap as PptxMasterTextStyles, aq as PptxThemeObjectDefaults, ar as ParsedTableStyleFill, as as ParsedTableStyleText, at as PptxImageEffects, au as MediaBookmark, av as PptxChartStyle, aw as TablePptxElement, ax as OlePptxElement, ay as GroupPptxElement, az as PlaceholderTextLevelStyle, aA as PptxChartSeries, aB as SmartArtPptxElement, aC as GeometryAdjustmentHandle, aD as CustomGeometryRawData, aE as CustomGeometryPath, aF as BulletInfo, aG as PptxShapeLocks, aH as PptxTextStyleLevels, aI as PptxThemeFillStyle, aJ as PptxThemeLineStyle, aK as PptxThemeEffectStyle, aL as PptxSmartArtChrome, aM as PptxSmartArtColorTransform, aN as PptxSmartArtQuickStyle, aO as PptxExternalData, aP as CustomGeometryPoint, aQ as ChartPptxElement, aR as ImagePptxElement } from './presentation-ArhfImJ5.mjs';
2
+ export { aS as ActionButtonPreset, aT as AnimationConditionEvent, aU as BevelPresetType, aV as ConnectorConnectionPoint, aW as ContentPartInkStroke, aX as ContentPartPptxElement, aY as CustomGeometrySegment, aZ as ElementActionType, a_ as MasterViewTab, a$ as MaterialPresetType, b0 as MediaCaptionTrack, b1 as MediaMetadata, b2 as Model3DPptxElement, b3 as ParsedTableStyleEntry, b4 as PicturePptxElement, b5 as Pptx3DScene, b6 as Pptx3DShape, b7 as PptxAfterAnimationAction, b8 as PptxAnimationDirection, b9 as PptxAnimationIterate, ba as PptxAnimationRepeatMode, bb as PptxAnimationSequence, bc as PptxAnimationTimingCurve, bd as PptxChartAxisNumFmt, be as PptxChartErrBarDir, bf as PptxChartErrBarType, bg as PptxChartErrValType, bh as PptxChartMarkerSymbol, bi as PptxChartTrendlineType, bj as PptxColorAnimation, bk as PptxCommonSlideViewProperties, bl as PptxCropShape, bm as PptxCustomPathProperties, bn as PptxElementBase, bo as PptxElementType, bp as PptxExportFormat, bq as PptxHeaderFooterFlags, br as PptxImageProperties, bs as PptxMediaType, bt as PptxNormalViewProperties, bu as PptxRestoredRegion, bv as PptxShapeProperties, bw as PptxSlideLayout, bx as PptxSmartArtConnection, by as PptxSplitDirection, bz as PptxSplitOrientation, bA as PptxStripDirection, bB as PptxTableCell, bC as PptxTableRow, bD as PptxTag, bE as PptxTextAnimationTarget, bF as PptxTextBuildType, bG as PptxTextProperties, bH as PptxTextWarpPreset, bI as PptxThemeFontGroup, bJ as PptxTransitionDirection4, bK as PptxTransitionDirection8, bL as PptxViewOrigin, bM as PptxViewScale, bN as ShadowEffect, bO as SmartArtColorScheme, bP as SmartArtLayout, bQ as SmartArtStyle, bR as THEME_COLOR_SCHEME_KEYS, bS as TRANSITION_VALID_DIRECTIONS, bT as Text3DStyle, bU as UnderlineStyle, bV as UnknownPptxElement } from './presentation-ArhfImJ5.mjs';
3
+ import { F as FindResult, M as MergeOptions } from './text-operations-CLj-sJyk.mjs';
4
+ export { f as findText, m as mergePresentation, r as replaceText, a as replaceTextInSlide } from './text-operations-CLj-sJyk.mjs';
5
5
  import { XMLParser, XMLBuilder } from 'fast-xml-parser';
6
6
  import JSZip from 'jszip';
7
- export { C as CertificateRevocationStatus, D as DIGEST_ALGORITHM_TO_HASH, a as DIGEST_ALGORITHM_TO_WEB_CRYPTO, b as DIGITAL_SIGNATURE_ORIGIN_REL_TYPE, c as DIGITAL_SIGNATURE_REL_TYPE, d as DigitalSignatureReport, e as DigitalSignatureVerificationStatus, E as ENTERPRISE_FAIL_ON_REVOCATION_UNKNOWN_ENV, f as ENTERPRISE_REQUIRE_REVOCATION_ENV, g as ENTERPRISE_REQUIRE_TIMESTAMP_ENV, h as ENTERPRISE_TRUST_ROOTS_FILE_ENV, i as ENTERPRISE_TRUST_ROOTS_PEM_ENV, L as LoadedSigningMaterial, O as OPC_RELATIONSHIP_TRANSFORM, j as OfficeSignatureReference, P as PPTX_VIEWER_MANIFEST_NS, k as ParsedReferenceTransform, R as ReferenceTransformResult, S as SUPPORTED_XML_CANON_TRANSFORMS, l as SignOptions, m as SignResult, n as SignatureDetail, o as SignatureDetailStatus, p as SignatureNodeCertificateInfo, q as SignatureReferenceCheck, r as SignatureValidationPolicy, T as TimestampAuthorityStatus, X as XMLDSIG_NS, s as XML_TRANSFORM_ENVELOPED_SIGNATURE, t as computeDetailStatus, u as computeDigestBase64WebCrypto, v as computeVerificationStatus, w as escapeXmlAttr, x as extractAllTagText, y as extractFirstTagText, z as extractTagAttribute, A as normalizePartPath, B as resolveReferenceUriToPart } from './signature-inspection-status-BcJSdOvb.mjs';
7
+ export { C as CertificateRevocationStatus, D as DIGEST_ALGORITHM_TO_HASH, a as DIGEST_ALGORITHM_TO_WEB_CRYPTO, b as DIGITAL_SIGNATURE_ORIGIN_REL_TYPE, c as DIGITAL_SIGNATURE_REL_TYPE, d as DigitalSignatureReport, e as DigitalSignatureVerificationStatus, E as ENTERPRISE_FAIL_ON_REVOCATION_UNKNOWN_ENV, f as ENTERPRISE_REQUIRE_REVOCATION_ENV, g as ENTERPRISE_REQUIRE_TIMESTAMP_ENV, h as ENTERPRISE_TRUST_ROOTS_FILE_ENV, i as ENTERPRISE_TRUST_ROOTS_PEM_ENV, L as LoadedSigningMaterial, O as OPC_RELATIONSHIP_TRANSFORM, j as OfficeSignatureReference, P as PPTX_VIEWER_MANIFEST_NS, k as ParsedReferenceTransform, R as ReferenceTransformResult, S as SUPPORTED_XML_CANON_TRANSFORMS, l as SignOptions, m as SignResult, n as SignatureDetail, o as SignatureDetailStatus, p as SignatureNodeCertificateInfo, q as SignatureReferenceCheck, r as SignatureValidationPolicy, T as TimestampAuthorityStatus, X as XMLDSIG_NS, s as XML_TRANSFORM_ENVELOPED_SIGNATURE, t as computeDetailStatus, u as computeDigestBase64WebCrypto, v as computeVerificationStatus, w as escapeXmlAttr, x as escapeXmlText, y as extractAllTagText, z as extractFirstTagText, A as extractTagAttribute, B as isValidBase64, F as normalizePartPath, G as resolveReferenceUriToPart } from './signature-inspection-status-BCUpfCQh.mjs';
8
8
  export { convertEmfToDataUrl, convertWmfToDataUrl } from 'emf-converter';
9
- export { C as ConversionOptions, a as ConversionResult, D as DocumentConverter, F as FileSystemAdapter, M as MediaContext, P as PptxConverterOptions, b as PptxMarkdownConverter, S as SlideProcessor, c as SlideProcessorOptions, d as SvgExportOptions, e as SvgExporter, f as dataUrlToMediaBytes, g as deriveOutputPath, h as generateMediaFilename, i as getDirectory, n as normalizePath } from './SvgExporter-z6AbXRQg.mjs';
9
+ export { C as ConversionOptions, a as ConversionResult, D as DocumentConverter, F as FileSystemAdapter, M as MediaContext, P as PptxConverterOptions, b as PptxMarkdownConverter, S as SlideProcessor, c as SlideProcessorOptions, d as SvgExportOptions, e as SvgExporter, f as dataUrlToMediaBytes, g as deriveOutputPath, h as generateMediaFilename, i as getDirectory, n as normalizePath } from './SvgExporter-BQ4KbRO9.mjs';
10
10
 
11
11
  /**
12
12
  * Runtime type guards for narrowing the {@link PptxElement} union.
@@ -839,6 +839,48 @@ declare class PptxSlideNotesBuilder {
839
839
  interface PptxHandlerLoadOptions {
840
840
  eagerDecodeImages?: boolean;
841
841
  password?: string;
842
+ /**
843
+ * Maximum total uncompressed bytes accepted from the input ZIP archive.
844
+ * Defaults to 500 MiB. When the sum of `_data.uncompressedSize` across
845
+ * all archive entries exceeds this cap, `load()` rejects with a
846
+ * {@link ZipBombError}. A hard cap of 65 536 archive entries also
847
+ * applies.
848
+ */
849
+ maxUncompressedBytes?: number;
850
+ /**
851
+ * When `false` (default), relationship targets that resolve to
852
+ * `http://` or `https://` URLs are dropped from rendered slides
853
+ * (image, picture, background). Set to `true` to allow external image
854
+ * URLs to flow through to `<img src>`.
855
+ *
856
+ * Disabled by default to mitigate SSRF / privacy-leak vectors in
857
+ * server-side rendering and headless export pipelines.
858
+ */
859
+ allowExternalImages?: boolean;
860
+ }
861
+ /**
862
+ * Default maximum uncompressed byte budget for {@link PptxHandlerLoadOptions.maxUncompressedBytes}.
863
+ * 500 MiB.
864
+ */
865
+ declare const DEFAULT_MAX_UNCOMPRESSED_BYTES: number;
866
+ /**
867
+ * Hard cap on archive entry count. Beyond this, the package is rejected.
868
+ */
869
+ declare const MAX_ZIP_ENTRY_COUNT = 65536;
870
+ /**
871
+ * Thrown by the load pipeline when a ZIP archive exceeds the configured
872
+ * uncompressed-size budget or the entry-count limit.
873
+ */
874
+ declare class ZipBombError extends Error {
875
+ readonly code = "ZIP_BOMB";
876
+ readonly uncompressedBytes: number | undefined;
877
+ readonly limit: number;
878
+ readonly entryCount: number | undefined;
879
+ constructor(message: string, details: {
880
+ uncompressedBytes?: number;
881
+ limit: number;
882
+ entryCount?: number;
883
+ });
842
884
  }
843
885
  /** Output format for the save pipeline. */
844
886
  type PptxSaveFormat = 'pptx' | 'ppsx' | 'pptm';
@@ -1040,6 +1082,19 @@ declare class PptxDocumentPropertiesUpdater {
1040
1082
  private applyCorePropertiesOverrides;
1041
1083
  private applyAppPropertiesOverrides;
1042
1084
  private updateCustomProperties;
1085
+ /**
1086
+ * Ensure `[Content_Types].xml` has an `Override` for `docProps/custom.xml`
1087
+ * and the root `_rels/.rels` references it (ECMA-376 §15.2.12.2 +
1088
+ * Part 2 §10.1.2.5). Without these, the package fails OPC validation
1089
+ * and Office strips the custom properties on next save.
1090
+ */
1091
+ private ensureCustomPropertiesPackagingArtifacts;
1092
+ /**
1093
+ * Remove the Override + root rel for `docProps/custom.xml` when the
1094
+ * caller has emptied custom properties so the package doesn't keep an
1095
+ * orphan content-type entry referencing a deleted part.
1096
+ */
1097
+ private removeCustomPropertiesPackagingArtifacts;
1043
1098
  private normalizeCustomPropertyType;
1044
1099
  private extractXmlNodeText;
1045
1100
  private toW3cDate;
@@ -1136,6 +1191,13 @@ interface PptxSlideLoaderParams {
1136
1191
  parseSlideClrMapOverride: (slideXml: XmlObject) => Record<string, string> | null;
1137
1192
  /** Set the active color map override for the current slide being parsed. */
1138
1193
  setCurrentSlideClrMapOverride: (override: Record<string, string> | null) => void;
1194
+ /**
1195
+ * Set the master-level state (clrMap + theme color/font/format scheme)
1196
+ * for the slide currently being parsed. Implementations resolve the
1197
+ * slide → layout → master chain and switch the active per-master
1198
+ * theme state. Called once per slide load. Phase 2 Stream B / C-H4.
1199
+ */
1200
+ setActiveMasterForSlide?: (slidePath: string) => void | Promise<void>;
1139
1201
  /** Resolve the layout file path associated with a given slide path. */
1140
1202
  findLayoutPathForSlide: (slidePath: string) => string | undefined;
1141
1203
  /** Load theme override data from a layout or slide part. */
@@ -1669,10 +1731,12 @@ declare function cloneSlide(slide: PptxSlide): PptxSlide;
1669
1731
  */
1670
1732
  declare function cloneTemplateElementsBySlideId(templateElementsBySlideId: Record<string, PptxElement[]>): Record<string, PptxElement[]>;
1671
1733
  /**
1672
- * Deep-clone an {@link XmlObject} tree using JSON round-trip serialisation.
1734
+ * Deep-clone an {@link XmlObject} tree.
1673
1735
  *
1674
- * This is a simple but reliable approach for pure-data XML objects.
1675
- * Returns `undefined` if cloning fails (e.g. circular references).
1736
+ * Prefers the structured clone algorithm (faster, preserves more types)
1737
+ * with a JSON round-trip fallback for legacy runtimes that lack
1738
+ * {@link structuredClone}. Returns `undefined` if cloning fails
1739
+ * (e.g. circular references on the JSON path).
1676
1740
  *
1677
1741
  * @param value - The XML object tree to clone.
1678
1742
  * @returns A deep copy, or `undefined` on failure.
@@ -1823,6 +1887,68 @@ declare function readFileAsDataUrl(file: File): Promise<string>;
1823
1887
  declare function createTemplateShapeRawXml(element: PptxElementWithText): XmlObject;
1824
1888
  declare function createTemplateConnectorRawXml(element: ConnectorPptxElement): XmlObject;
1825
1889
 
1890
+ /**
1891
+ * Color XML round-trip preservation helpers.
1892
+ *
1893
+ * Save layer historically flattens every solidFill colour to
1894
+ * `<a:srgbClr val="…"/>`, throwing away `<a:schemeClr>`, `<a:sysClr>`,
1895
+ * `<a:prstClr>`, and colour transforms (`lumMod`, `lumOff`, `tint`,
1896
+ * `shade`, `satMod`, `alpha`, …). This breaks PowerPoint's *Recolor* /
1897
+ * *Reset to Theme* / Quick Styles for any shape this library has touched.
1898
+ *
1899
+ * Mirroring what {@link PptxGradientStyleCodec} already does for gradient
1900
+ * stops, parsers stash the original colour-choice XML on the parsed style.
1901
+ * On save, when the original is present and the resolved hex still matches
1902
+ * the original, we re-emit the original verbatim. When the user edited the
1903
+ * colour in memory, we fall back to canonical srgb (the pre-existing
1904
+ * behaviour).
1905
+ *
1906
+ * @module color-xml-preservation
1907
+ */
1908
+
1909
+ /**
1910
+ * Extract the inner colour-choice node from a parent that wraps one (e.g.
1911
+ * `<a:solidFill>`, `<a:fgClr>`, `<a:bgClr>`, gradient stop). Returns the
1912
+ * single-key wrapper object suitable for re-emitting verbatim.
1913
+ */
1914
+ declare function extractColorChoiceXml(parent: XmlObject | undefined): XmlObject | undefined;
1915
+ /**
1916
+ * Compare two resolved colour values using normalised hex form.
1917
+ * Used to decide whether the original XML still represents the current
1918
+ * in-memory colour or whether the user edited it.
1919
+ */
1920
+ declare function colorsEqual(left: string | undefined, right: string | undefined): boolean;
1921
+ /**
1922
+ * Build a `<a:solidFill>`-shaped child object for a given hex colour, with
1923
+ * an optional `<a:alpha>` transform.
1924
+ */
1925
+ declare function buildSrgbColorChoice(hex: string, opacity?: number): XmlObject;
1926
+ interface SerializeColorOptions {
1927
+ /**
1928
+ * When true and an `originalColorXml` is being re-emitted, the optional
1929
+ * `opacity` override is *ignored* — we trust the original XML's transforms
1930
+ * (which may already contain `a:alpha`). When false, opacity is not
1931
+ * applied either way (only the canonical fallback path uses opacity).
1932
+ */
1933
+ readonly preserveAlphaFromOriginal?: boolean;
1934
+ }
1935
+ /**
1936
+ * Decide whether to re-emit the preserved original colour-choice XML or to
1937
+ * synthesise a fresh `<a:srgbClr>`.
1938
+ *
1939
+ * Behaviour:
1940
+ * - If `originalColorXml` is present *and* `currentResolvedHex` matches
1941
+ * `fallbackHex`, return the original (verbatim — preserves scheme/sys/prst
1942
+ * identity and all colour transforms).
1943
+ * - Otherwise return a fresh `<a:srgbClr val="…"/>` with optional `<a:alpha>`.
1944
+ *
1945
+ * Comparison uses a resolved-hex check (case-insensitive, `#` agnostic).
1946
+ * Callers are responsible for resolving `originalColorXml` through the
1947
+ * theme codec to produce `currentResolvedHex` — deep-object equality on
1948
+ * the XML would not survive theme switches.
1949
+ */
1950
+ declare function serializeColorChoice(originalColorXml: XmlObject | undefined, currentResolvedHex: string | undefined, fallbackHex: string, opacity?: number, options?: SerializeColorOptions): XmlObject;
1951
+
1826
1952
  /**
1827
1953
  * Action conversion helpers for element click/hover actions.
1828
1954
  *
@@ -1893,14 +2019,31 @@ declare function parseDataUrlToBytes(dataUrl: string): {
1893
2019
  bytes: Uint8Array;
1894
2020
  extension: string;
1895
2021
  } | null;
2022
+ /**
2023
+ * Options for {@link fetchUrlToBytes}.
2024
+ *
2025
+ * `allowExternalFetch` (default `false`) gates `http:`/`https:` URLs to
2026
+ * prevent SSRF during save: a deck whose mediaData was populated by an
2027
+ * untrusted source could otherwise force the host to issue arbitrary HTTP
2028
+ * requests (e.g. to cloud-metadata endpoints).
2029
+ *
2030
+ * `allowedSchemes` further constrains the accepted URL schemes. The default
2031
+ * permits only `pptx-resource:`, `blob:`, and `data:` — schemes that cannot
2032
+ * reach a remote network.
2033
+ */
2034
+ interface FetchUrlToBytesOptions {
2035
+ allowExternalFetch?: boolean;
2036
+ allowedSchemes?: ReadonlySet<string>;
2037
+ }
1896
2038
  /**
1897
2039
  * Resolve a media source URL (pptx-resource://, blob:, http(s)://) to raw
1898
- * bytes by fetching it. Returns null on failure.
2040
+ * bytes by fetching it. Returns null on failure or when the URL scheme is
2041
+ * not permitted by {@link FetchUrlToBytesOptions}.
1899
2042
  *
1900
2043
  * This is used during PPTX save to embed media that was streamed from disk
1901
2044
  * (via pptx-resource:// URLs) rather than stored as base64 data URLs.
1902
2045
  */
1903
- declare function fetchUrlToBytes(url: string): Promise<{
2046
+ declare function fetchUrlToBytes(url: string, options?: FetchUrlToBytesOptions): Promise<{
1904
2047
  bytes: Uint8Array;
1905
2048
  extension: string;
1906
2049
  } | null>;
@@ -3205,6 +3348,30 @@ declare function selectAlternateContentBranch(ac: XmlObject): XmlObject | undefi
3205
3348
  * Element tag names that represent renderable shapes/objects in a shape tree.
3206
3349
  */
3207
3350
  declare const SHAPE_TREE_ELEMENT_TAGS: Set<string>;
3351
+ /**
3352
+ * Record of a single `mc:AlternateContent` block resolved during parse.
3353
+ *
3354
+ * Captured by {@link unwrapAlternateContent} so the runtime can reproduce
3355
+ * the original `<mc:Choice>` / `<mc:Fallback>` envelope on dirty save.
3356
+ *
3357
+ * `rawAc` is the parsed AC envelope object exactly as fast-xml-parser
3358
+ * produced it (containing one or more `mc:Choice` children plus an
3359
+ * optional `mc:Fallback`). `selectedBranch` indicates which branch was
3360
+ * merged into the spTree at parse time. `choiceIndex` (when branch is
3361
+ * `choice`) identifies which `mc:Choice` was selected — needed for
3362
+ * AC blocks containing multiple Choices. `childRefs` holds the actual
3363
+ * XmlObject references that were appended to the parent container —
3364
+ * used by the save layer to associate parsed elements with this block.
3365
+ */
3366
+ interface AlternateContentBlock {
3367
+ rawAc: XmlObject;
3368
+ selectedBranch: 'choice' | 'fallback';
3369
+ choiceIndex?: number;
3370
+ childRefs: Array<{
3371
+ tag: string;
3372
+ node: XmlObject;
3373
+ }>;
3374
+ }
3208
3375
  /**
3209
3376
  * Unwrap mc:AlternateContent elements within a shape tree (or group)
3210
3377
  * container, merging the selected branch's children into the parent
@@ -3213,8 +3380,14 @@ declare const SHAPE_TREE_ELEMENT_TAGS: Set<string>;
3213
3380
  * This mutates the container in-place: mc:AlternateContent entries are
3214
3381
  * consumed, and their resolved element children (p:sp, p:pic, etc.) are
3215
3382
  * appended to the corresponding arrays on the container.
3383
+ *
3384
+ * Returns a list of `AlternateContentBlock` records — one per consumed AC
3385
+ * envelope — so callers can preserve the original Choice/Fallback shape
3386
+ * on save (CC-4). The returned `childRefs` reference the same XmlObject
3387
+ * instances that were merged into the container, so callers can identify
3388
+ * them later via reference equality.
3216
3389
  */
3217
- declare function unwrapAlternateContent(container: Record<string, unknown>): void;
3390
+ declare function unwrapAlternateContent(container: Record<string, unknown>): AlternateContentBlock[];
3218
3391
  /**
3219
3392
  * Check whether a namespace prefix is in the supported set.
3220
3393
  */
@@ -4116,6 +4289,34 @@ declare function getPresetsByCategory(category: AnimationCategory): AnimationPre
4116
4289
  */
4117
4290
  declare function relayoutSmartArt(smartArtData: PptxSmartArtData, containerWidth: number, containerHeight: number): PptxSmartArtDrawingShape[];
4118
4291
 
4292
+ /**
4293
+ * Schema-order utilities for OpenXML serialization.
4294
+ *
4295
+ * fast-xml-parser preserves *insertion* order of object keys, so the save
4296
+ * layer must produce keys in the order required by the relevant ECMA-376
4297
+ * content-type definition. `reorderObjectKeys` returns a new object whose
4298
+ * keys appear first in `schemaOrder` (in that order), then any remaining
4299
+ * keys in their original insertion order. Keys whose values are
4300
+ * `undefined` are skipped.
4301
+ */
4302
+ declare function reorderObjectKeys(obj: Record<string, unknown>, schemaOrder: readonly string[]): Record<string, unknown>;
4303
+ /** Child order for `a:effectLst` (CT_EffectList §20.1.8.20) — alphabetical. */
4304
+ declare const EFFECT_LST_ORDER: readonly string[];
4305
+ /**
4306
+ * Child order for `a:spPr` (CT_ShapeProperties §20.1.2.2.35).
4307
+ * Geometry choice (custGeom XOR prstGeom) and fill choice
4308
+ * (noFill XOR solidFill XOR gradFill XOR blipFill XOR pattFill XOR grpFill)
4309
+ * are flattened — at most one of each appears in any valid document.
4310
+ */
4311
+ declare const SP_PR_ORDER: readonly string[];
4312
+ /**
4313
+ * Child order for `a:tcPr` (CT_TableCellProperties §21.1.4.2).
4314
+ * Fill choice is flattened.
4315
+ */
4316
+ declare const TC_PR_BORDERS_ORDER: readonly string[];
4317
+ /** Child order for `a:blipFill` (CT_BlipFillProperties). */
4318
+ declare const BLIP_FILL_ORDER: readonly string[];
4319
+
4119
4320
  interface IFactory<TResult, TInit = void> {
4120
4321
  create(init: TInit): TResult;
4121
4322
  }
@@ -4543,6 +4744,7 @@ interface IPptxColorStyleCodec {
4543
4744
  extractEffectDagStyle(shapeProps: XmlObject): Partial<ShapeStyle>;
4544
4745
  buildGradientFillXml(shapeStyle: ShapeStyle): XmlObject | undefined;
4545
4746
  buildOuterShadowXml(shapeStyle: ShapeStyle): XmlObject | undefined;
4747
+ buildPresetShadowXml(shapeStyle: ShapeStyle): XmlObject | undefined;
4546
4748
  buildInnerShadowXml(shapeStyle: ShapeStyle): XmlObject | undefined;
4547
4749
  buildGlowXml(shapeStyle: ShapeStyle): XmlObject | undefined;
4548
4750
  buildSoftEdgeXml(shapeStyle: ShapeStyle): XmlObject | undefined;
@@ -4553,6 +4755,9 @@ interface IPptxColorStyleCodec {
4553
4755
  extractGradientPathType(gradFill: XmlObject): ShapeStyle['fillGradientPathType'];
4554
4756
  extractGradientFocalPoint(gradFill: XmlObject): ShapeStyle['fillGradientFocalPoint'];
4555
4757
  extractGradientFillToRect(gradFill: XmlObject): ShapeStyle['fillGradientFillToRect'];
4758
+ extractGradientFlip(gradFill: XmlObject): ShapeStyle['fillGradientFlip'];
4759
+ extractGradientRotWithShape(gradFill: XmlObject): boolean | undefined;
4760
+ extractGradientScaled(gradFill: XmlObject): boolean | undefined;
4556
4761
  }
4557
4762
  declare class PptxColorStyleCodec implements IPptxColorStyleCodec {
4558
4763
  private readonly colorTransformCodec;
@@ -4588,6 +4793,7 @@ declare class PptxColorStyleCodec implements IPptxColorStyleCodec {
4588
4793
  extractEffectDagStyle(shapeProps: XmlObject): Partial<ShapeStyle>;
4589
4794
  buildGradientFillXml(shapeStyle: ShapeStyle): XmlObject | undefined;
4590
4795
  buildOuterShadowXml(shapeStyle: ShapeStyle): XmlObject | undefined;
4796
+ buildPresetShadowXml(shapeStyle: ShapeStyle): XmlObject | undefined;
4591
4797
  buildInnerShadowXml(shapeStyle: ShapeStyle): XmlObject | undefined;
4592
4798
  buildGlowXml(shapeStyle: ShapeStyle): XmlObject | undefined;
4593
4799
  buildSoftEdgeXml(shapeStyle: ShapeStyle): XmlObject | undefined;
@@ -4595,6 +4801,9 @@ declare class PptxColorStyleCodec implements IPptxColorStyleCodec {
4595
4801
  buildBlurXml(shapeStyle: ShapeStyle): XmlObject | undefined;
4596
4802
  buildLineEffectListXml(shapeStyle: ShapeStyle): XmlObject | undefined;
4597
4803
  extractGradientFillColor(gradFill: XmlObject): string | undefined;
4804
+ extractGradientFlip(gradFill: XmlObject): ShapeStyle['fillGradientFlip'];
4805
+ extractGradientRotWithShape(gradFill: XmlObject): boolean | undefined;
4806
+ extractGradientScaled(gradFill: XmlObject): boolean | undefined;
4598
4807
  extractGradientPathType(gradFill: XmlObject): ShapeStyle['fillGradientPathType'];
4599
4808
  extractGradientFocalPoint(gradFill: XmlObject): ShapeStyle['fillGradientFocalPoint'];
4600
4809
  extractGradientFillToRect(gradFill: XmlObject): ShapeStyle['fillGradientFillToRect'];
@@ -4613,6 +4822,9 @@ interface PptxShapeStyleExtractorContext {
4613
4822
  extractGradientPathType: (gradFill: XmlObject) => ShapeStyle['fillGradientPathType'];
4614
4823
  extractGradientFocalPoint: (gradFill: XmlObject) => ShapeStyle['fillGradientFocalPoint'];
4615
4824
  extractGradientFillToRect: (gradFill: XmlObject) => ShapeStyle['fillGradientFillToRect'];
4825
+ extractGradientFlip: (gradFill: XmlObject) => ShapeStyle['fillGradientFlip'];
4826
+ extractGradientRotWithShape: (gradFill: XmlObject) => boolean | undefined;
4827
+ extractGradientScaled: (gradFill: XmlObject) => boolean | undefined;
4616
4828
  normalizeStrokeDashType: (value: unknown) => StrokeDashType | undefined;
4617
4829
  normalizeConnectorArrowType: (value: unknown) => ConnectorArrowType | undefined;
4618
4830
  ensureArray: (value: unknown) => unknown[];
@@ -4634,6 +4846,11 @@ declare class PptxShapeStyleExtractor implements IPptxShapeStyleExtractor {
4634
4846
  private readonly context;
4635
4847
  constructor(context: PptxShapeStyleExtractorContext);
4636
4848
  extractShapeStyle(spPr: XmlObject | undefined, styleNode?: XmlObject): ShapeStyle;
4849
+ /**
4850
+ * Pull the verbatim colour-choice child out of an `a:fontRef` element,
4851
+ * preserving any contained colour transforms for round-trip.
4852
+ */
4853
+ private extractFontRefColorXml;
4637
4854
  /**
4638
4855
  * Extract p14:hiddenFill from the shape properties extension list.
4639
4856
  * URI: {AF507438-7753-43E0-B8FC-AC1667EBCBE1}
@@ -4683,6 +4900,16 @@ declare class PptxTableDataParser implements IPptxTableDataParser {
4683
4900
  private readonly context;
4684
4901
  constructor(context: PptxTableDataParserContext);
4685
4902
  parseTableData(graphicData: XmlObject): PptxTableData | undefined;
4903
+ /**
4904
+ * Read the table style ID from `a:tblPr`.
4905
+ *
4906
+ * ECMA-376 §21.1.3.13 defines `<a:tableStyleId>{GUID}</a:tableStyleId>` as
4907
+ * a child element of `a:tblPr` carrying the GUID as element text. Older
4908
+ * inputs (and earlier versions of this library) used the legacy
4909
+ * `<a:tblStyle val="{GUID}"/>` child element or a `@_tblStyle` attribute.
4910
+ * Accept all three; the spec form takes precedence.
4911
+ */
4912
+ private extractTableStyleId;
4686
4913
  private extractTableCellText;
4687
4914
  private extractTableCellStyleFromXml;
4688
4915
  }
@@ -4969,7 +5196,7 @@ declare class PptxElementXmlBuilder {
4969
5196
  * the constructor of the final concrete class
4970
5197
  * ({@link PptxHandlerRuntimeImplementation}).
4971
5198
  */
4972
- declare class PptxHandlerRuntime$1a {
5199
+ declare class PptxHandlerRuntime$1b {
4973
5200
  /** The in-memory ZIP archive representing the OPC (.pptx) package. */
4974
5201
  protected zip: JSZip;
4975
5202
  /** fast-xml-parser instance used to parse XML strings into JS objects. */
@@ -5011,6 +5238,12 @@ declare class PptxHandlerRuntime$1a {
5011
5238
  * images are decoded lazily on first access via {@link getImageData}.
5012
5239
  */
5013
5240
  protected eagerDecodeImages: boolean;
5241
+ /**
5242
+ * When true, relationship targets pointing at `http://` / `https://`
5243
+ * URLs are passed through to `<img src>`. Default `false`. Mirrors the
5244
+ * `allowExternalImages` load option.
5245
+ */
5246
+ protected allowExternalImages: boolean;
5014
5247
  /** Ordered slide file paths (populated during load for action target resolution). */
5015
5248
  protected orderedSlidePaths: string[];
5016
5249
  /** Theme colour scheme map: scheme key (e.g. "dk1", "accent1") -> hex colour value. */
@@ -5030,6 +5263,140 @@ declare class PptxHandlerRuntime$1a {
5030
5263
  * `p:clrMapOvr / a:overrideClrMapping`.
5031
5264
  */
5032
5265
  protected currentSlideClrMapOverride: Record<string, string> | null;
5266
+ /**
5267
+ * Per-master colour map alias dictionaries parsed from each master's
5268
+ * `<p:clrMap>` element (e.g. `bg1 → lt1`, `tx1 → dk1`, `accent1 → accent1`).
5269
+ *
5270
+ * `clrMap` is the *aliasing* layer between logical colour names used in
5271
+ * DrawingML and the raw theme scheme slots. Per ECMA-376 §19.3.1.7 it
5272
+ * lives on each `p:sldMaster`, and slide layouts/slides may further
5273
+ * override it via `p:clrMapOvr`. Resolution must happen at colour-lookup
5274
+ * time, *not* by baking it into {@link themeColorMap}.
5275
+ *
5276
+ * Phase 2 Stream B / C-H4.
5277
+ */
5278
+ protected masterClrMaps: Map<string, Record<string, string>>;
5279
+ /**
5280
+ * Per-master theme color maps. Each master may reference its own theme
5281
+ * file via `_rels/slideMasterN.xml.rels`. For multi-master decks, slides
5282
+ * must resolve scheme colours against their *own* master's theme.
5283
+ *
5284
+ * Falls back to {@link themeColorMap} when a master entry is missing.
5285
+ *
5286
+ * Phase 2 Stream B / C-H4.
5287
+ */
5288
+ protected masterThemeColorMaps: Map<string, Record<string, string>>;
5289
+ /**
5290
+ * Per-master theme font maps. Same rationale as
5291
+ * {@link masterThemeColorMaps}: multi-master decks may have one font
5292
+ * scheme per theme.
5293
+ */
5294
+ protected masterThemeFontMaps: Map<string, Record<string, string>>;
5295
+ /**
5296
+ * Per-master format schemes (fmtScheme). For multi-master decks each
5297
+ * master's slides should resolve fill/line/effect refs against the
5298
+ * matrix from that master's theme.
5299
+ */
5300
+ protected masterThemeFormatSchemes: Map<string, PptxThemeFormatScheme>;
5301
+ /**
5302
+ * Per-master mapping from slide-master path to the theme path it
5303
+ * references via `_rels/slideMasterN.xml.rels`. Populated by
5304
+ * {@link loadPerMasterThemes} during load. Used by the save-side
5305
+ * theme writer to know which themeN.xml to (re)emit for each master.
5306
+ *
5307
+ * Phase 4 Stream A / C-H3.
5308
+ */
5309
+ protected masterThemePaths: Map<string, string>;
5310
+ /**
5311
+ * Per-script font tables for major and minor fonts. Captured per master
5312
+ * theme. Keys are master paths; values map `mj`/`mn` -> script tag (e.g.
5313
+ * `Hans`, `Hant`, `Arab`, `Hebr`, `Thai`, `Beng`, …) -> typeface name.
5314
+ *
5315
+ * Phase 4 Stream A / M4.
5316
+ */
5317
+ protected masterThemeMajorFontScripts: Map<string, Record<string, string>>;
5318
+ protected masterThemeMinorFontScripts: Map<string, Record<string, string>>;
5319
+ /**
5320
+ * Theme name attribute (`<a:theme @name>`) per master theme path.
5321
+ * Captured for byte-stable round-trip.
5322
+ */
5323
+ protected masterThemeNames: Map<string, string>;
5324
+ /**
5325
+ * `<a:fontScheme @name>` per master theme path.
5326
+ */
5327
+ protected masterThemeFontSchemeNames: Map<string, string>;
5328
+ /**
5329
+ * `<a:clrScheme @name>` per master theme path.
5330
+ */
5331
+ protected masterThemeColorSchemeNames: Map<string, string>;
5332
+ /**
5333
+ * Raw original theme XML keyed by theme path. Captured at load-time.
5334
+ * Used by the save pipeline to passthrough the full theme XML when no
5335
+ * in-memory mutation has occurred — preserving fillStyleLst /
5336
+ * lnStyleLst / effectStyleLst / bgFillStyleLst /
5337
+ * extraClrSchemeLst / objectDefaults / extLst exactly as written.
5338
+ *
5339
+ * Phase 4 Stream A / C-H3.
5340
+ */
5341
+ protected originalThemeXmlByPath: Map<string, string>;
5342
+ /**
5343
+ * Set of theme paths whose in-memory state has been mutated since
5344
+ * load. Saving a theme path that's NOT dirty is a no-op (the original
5345
+ * file already exists in the ZIP). Saving a dirty theme path
5346
+ * regenerates the part from in-memory state.
5347
+ *
5348
+ * Phase 4 Stream A / C-H3.
5349
+ */
5350
+ protected dirtyThemePaths: Set<string>;
5351
+ /**
5352
+ * Per-master parsed `<p:txStyles>` (titleStyle/bodyStyle/otherStyle).
5353
+ * Populated by {@link enrichSlideMastersWithTxStyles} during load so the
5354
+ * inheritance chain can find the master text-style cascade without
5355
+ * re-parsing master XML on every lookup. Phase 4 Stream B / P-H1.
5356
+ */
5357
+ protected masterTxStylesCache: Map<string, PptxMasterTextStyles>;
5358
+ /**
5359
+ * Captured `<a:objectDefaults>` snapshot per master theme path. The
5360
+ * full ECMA-376 inheritance chain (master / layout / placeholder /
5361
+ * objectDefaults) is non-trivial; we store the raw spDef/lnDef/txDef
5362
+ * subtrees and re-emit them verbatim for round-trip.
5363
+ *
5364
+ * Phase 4 Stream A / M5.
5365
+ */
5366
+ protected masterThemeObjectDefaults: Map<string, PptxThemeObjectDefaults>;
5367
+ /**
5368
+ * Captured `<a:extraClrSchemeLst>` raw subtree per master theme path
5369
+ * for verbatim round-trip.
5370
+ *
5371
+ * Phase 4 Stream A.
5372
+ */
5373
+ protected masterThemeExtraClrSchemeLst: Map<string, unknown>;
5374
+ /**
5375
+ * Captured `<a:custClrLst>` raw subtree per master theme path
5376
+ * for verbatim round-trip.
5377
+ *
5378
+ * Phase 4 Stream A.
5379
+ */
5380
+ protected masterThemeCustClrLst: Map<string, unknown>;
5381
+ /**
5382
+ * Captured theme-level `<a:extLst>` raw subtree per master theme path.
5383
+ */
5384
+ protected masterThemeExtLst: Map<string, unknown>;
5385
+ /**
5386
+ * Active master's clrMap for the slide currently being parsed. Walked
5387
+ * after `currentSlideClrMapOverride` (slide and layout overrides take
5388
+ * precedence). `null` means "fall through to themeColorMap directly".
5389
+ */
5390
+ protected currentMasterClrMap: Record<string, string> | null;
5391
+ /**
5392
+ * Snapshot of the global theme state taken right after
5393
+ * {@link loadThemeData} completes. Used as the fallback when a slide's
5394
+ * master has no per-master theme entry, so per-slide multi-master
5395
+ * switching does not leak the previous slide's master state.
5396
+ */
5397
+ protected globalThemeColorMapSnapshot: Record<string, string>;
5398
+ protected globalThemeFontMapSnapshot: Record<string, string>;
5399
+ protected globalThemeFormatSchemeSnapshot: PptxThemeFormatScheme | undefined;
5033
5400
  /** Thumbnail image data from `docProps/thumbnail.jpeg` preserved for round-trip. */
5034
5401
  protected thumbnailData: Uint8Array | null;
5035
5402
  /** Raw VBA project binary preserved for macro-enabled (.pptm) round-trip. */
@@ -5040,6 +5407,19 @@ declare class PptxHandlerRuntime$1a {
5040
5407
  protected signatureDetection: SignatureDetectionResult | null;
5041
5408
  /** Custom XML data parts parsed from `customXml/` in the OPC package. */
5042
5409
  protected customXmlParts: PptxCustomXmlPart[];
5410
+ /**
5411
+ * Maps an element's `rawXml` reference to the `mc:AlternateContent`
5412
+ * envelope that originally wrapped it (CC-4). Populated during slide
5413
+ * (and `p:grpSp`) parsing; consulted at save time to re-emit the
5414
+ * original `<mc:Choice>` / `<mc:Fallback>` shape so legacy renderers
5415
+ * keep their fallback content.
5416
+ *
5417
+ * Multiple sibling elements may share the same `AlternateContentBlock`
5418
+ * value (a single AC envelope often wraps several child shapes — e.g.
5419
+ * `p14:media` + its `p:pic` fallback nest one each). WeakMap so AC
5420
+ * envelopes are GC'd if the parsed XmlObject is dropped.
5421
+ */
5422
+ protected alternateContentBlockByRawXml: WeakMap<XmlObject, AlternateContentBlock>;
5043
5423
  /** Embedded fonts extracted during load, preserved for automatic re-embedding on save. */
5044
5424
  protected loadedEmbeddedFonts: PptxEmbeddedFont[];
5045
5425
  /** Map of comment author IDs to display names (from `ppt/commentAuthors.xml`). */
@@ -5140,7 +5520,7 @@ declare class PptxHandlerRuntime$1a {
5140
5520
  protected restoreOriginalParser(): void;
5141
5521
  }
5142
5522
 
5143
- declare class PptxHandlerRuntime$19 extends PptxHandlerRuntime$1a {
5523
+ declare class PptxHandlerRuntime$1a extends PptxHandlerRuntime$1b {
5144
5524
  /**
5145
5525
  * Export slides to a raster/vector format.
5146
5526
  *
@@ -5178,7 +5558,7 @@ declare class PptxHandlerRuntime$19 extends PptxHandlerRuntime$1a {
5178
5558
  protected parseTableStyles(): Promise<ParsedTableStyleMap | undefined>;
5179
5559
  }
5180
5560
 
5181
- declare class PptxHandlerRuntime$18 extends PptxHandlerRuntime$19 {
5561
+ declare class PptxHandlerRuntime$19 extends PptxHandlerRuntime$1a {
5182
5562
  /**
5183
5563
  * Write or remove a single `a:hlinkClick` / `a:hlinkHover` node on
5184
5564
  * a `p:cNvPr` parent.
@@ -5201,7 +5581,7 @@ declare class PptxHandlerRuntime$18 extends PptxHandlerRuntime$19 {
5201
5581
  protected serializeShapeLocks(shape: XmlObject, el: PptxElement): void;
5202
5582
  }
5203
5583
 
5204
- declare class PptxHandlerRuntime$17 extends PptxHandlerRuntime$18 {
5584
+ declare class PptxHandlerRuntime$18 extends PptxHandlerRuntime$19 {
5205
5585
  /**
5206
5586
  * Parse a single `a:hlinkClick` or `a:hlinkHover` node into a `PptxAction`.
5207
5587
  */
@@ -5240,7 +5620,7 @@ interface MediaTimingData {
5240
5620
  /** Playback speed multiplier (1 = normal). From p14:media/@spd (percentage * 1000). */
5241
5621
  playbackSpeed?: number;
5242
5622
  }
5243
- declare class PptxHandlerRuntime$16 extends PptxHandlerRuntime$17 {
5623
+ declare class PptxHandlerRuntime$17 extends PptxHandlerRuntime$18 {
5244
5624
  /**
5245
5625
  * Extract image recolour/brightness/contrast/artistic effects from blip extensions.
5246
5626
  */
@@ -5261,7 +5641,7 @@ declare class PptxHandlerRuntime$16 extends PptxHandlerRuntime$17 {
5261
5641
  protected resolveRelationshipTarget(sourcePath: string, rId: string): string | undefined;
5262
5642
  }
5263
5643
 
5264
- declare class PptxHandlerRuntime$15 extends PptxHandlerRuntime$16 {
5644
+ declare class PptxHandlerRuntime$16 extends PptxHandlerRuntime$17 {
5265
5645
  /**
5266
5646
  * Recursively walk the timing tree looking for `p:video` and `p:audio`
5267
5647
  * nodes that contain `p:cMediaNode`.
@@ -5289,7 +5669,7 @@ declare class PptxHandlerRuntime$15 extends PptxHandlerRuntime$16 {
5289
5669
  getMediaArrayBuffer(mediaPath: string): Promise<ArrayBuffer | undefined>;
5290
5670
  }
5291
5671
 
5292
- declare class PptxHandlerRuntime$14 extends PptxHandlerRuntime$15 {
5672
+ declare class PptxHandlerRuntime$15 extends PptxHandlerRuntime$16 {
5293
5673
  /**
5294
5674
  * Convert raw image bytes to a URL suitable for <img src>.
5295
5675
  * Uses Blob URLs in browsers (avoids 33% base64 overhead),
@@ -5301,7 +5681,7 @@ declare class PptxHandlerRuntime$14 extends PptxHandlerRuntime$15 {
5301
5681
  * Enrich parsed media elements with timing data from the slide's
5302
5682
  * `p:timing` tree (trim, loop, poster frame, fullScreen).
5303
5683
  */
5304
- protected enrichMediaElementsWithTiming(elements: PptxElement[], timingMap: Map<string, MediaTimingData>): Promise<void>;
5684
+ protected enrichMediaElementsWithTiming(elements: PptxElement[], timingMap: Map<string, MediaTimingData>, depth?: number): Promise<void>;
5305
5685
  /**
5306
5686
  * Parse native OOXML animations from `p:sld/p:timing`.
5307
5687
  * Extracts trigger types, preset classes, durations, and target IDs.
@@ -5309,7 +5689,7 @@ declare class PptxHandlerRuntime$14 extends PptxHandlerRuntime$15 {
5309
5689
  protected parseNativeAnimations(slideXml: XmlObject): PptxNativeAnimation[] | undefined;
5310
5690
  }
5311
5691
 
5312
- declare class PptxHandlerRuntime$13 extends PptxHandlerRuntime$14 {
5692
+ declare class PptxHandlerRuntime$14 extends PptxHandlerRuntime$15 {
5313
5693
  protected buildRelativeTargetPath(fromPartPath: string, toPartPath: string): string;
5314
5694
  protected setMasterThemeRelationship(masterPath: string, themePath: string): Promise<void>;
5315
5695
  setPresentationTheme(themePath: string, applyToAllMasters?: boolean): Promise<void>;
@@ -5365,7 +5745,7 @@ declare class PptxHandlerRuntime$13 extends PptxHandlerRuntime$14 {
5365
5745
  protected parseTags(): Promise<PptxTagCollection[]>;
5366
5746
  }
5367
5747
 
5368
- declare class PptxHandlerRuntime$12 extends PptxHandlerRuntime$13 {
5748
+ declare class PptxHandlerRuntime$13 extends PptxHandlerRuntime$14 {
5369
5749
  /**
5370
5750
  * Parse background colour from a `p:bg` node.
5371
5751
  */
@@ -5377,6 +5757,13 @@ declare class PptxHandlerRuntime$12 extends PptxHandlerRuntime$13 {
5377
5757
  type: string;
5378
5758
  idx?: string;
5379
5759
  }>;
5760
+ /**
5761
+ * Allowed top-level OPC archive directories (Load M1).
5762
+ * After path resolution, the first segment must be one of these or the
5763
+ * path is rejected as a traversal attempt. PPTX archives only ever
5764
+ * legitimately reference parts under these roots.
5765
+ */
5766
+ private static readonly ALLOWED_PATH_ROOTS;
5380
5767
  protected resolvePath(base: string, relative: string): string;
5381
5768
  protected resolveImagePath(slidePath: string, target: string): string;
5382
5769
  /**
@@ -5401,7 +5788,7 @@ declare class PptxHandlerRuntime$12 extends PptxHandlerRuntime$13 {
5401
5788
  protected parseCustomShows(): PptxCustomShow[] | undefined;
5402
5789
  }
5403
5790
 
5404
- declare class PptxHandlerRuntime$11 extends PptxHandlerRuntime$12 {
5791
+ declare class PptxHandlerRuntime$12 extends PptxHandlerRuntime$13 {
5405
5792
  /**
5406
5793
  * Parse presentation properties from `presentationPr.xml`.
5407
5794
  * Extracts show type, loop, narration, animation, and print settings.
@@ -5420,7 +5807,7 @@ declare class PptxHandlerRuntime$11 extends PptxHandlerRuntime$12 {
5420
5807
  protected toSlideRelsPath(slidePath: string): string;
5421
5808
  }
5422
5809
 
5423
- declare class PptxHandlerRuntime$10 extends PptxHandlerRuntime$11 {
5810
+ declare class PptxHandlerRuntime$11 extends PptxHandlerRuntime$12 {
5424
5811
  protected createEmptySlideXml(): XmlObject;
5425
5812
  protected deepCloneXml(value: XmlObject | undefined): XmlObject | undefined;
5426
5813
  protected findSourceSlidePath(requestedSourcePath: string | undefined): string | undefined;
@@ -5454,16 +5841,16 @@ declare class PptxHandlerRuntime$10 extends PptxHandlerRuntime$11 {
5454
5841
  protected createLineSpacingXmlFromMultiplier(lineSpacing: number | undefined): XmlObject | undefined;
5455
5842
  }
5456
5843
 
5457
- declare class PptxHandlerRuntime$$ extends PptxHandlerRuntime$10 {
5844
+ declare class PptxHandlerRuntime$10 extends PptxHandlerRuntime$11 {
5458
5845
  protected createRunPropertiesFromTextStyle(style: TextStyle | undefined, resolveHyperlinkRelationshipId?: (target: string) => string | undefined): XmlObject;
5459
5846
  private applyHyperlinkExtraAttrs;
5460
5847
  }
5461
5848
 
5462
- declare class PptxHandlerRuntime$_ extends PptxHandlerRuntime$$ {
5849
+ declare class PptxHandlerRuntime$$ extends PptxHandlerRuntime$10 {
5463
5850
  protected createParagraphsFromTextContent(text: string | undefined, textStyle: TextStyle | undefined, textSegments: TextSegment[] | undefined, resolveHyperlinkRelationshipId?: (target: string) => string | undefined): XmlObject[];
5464
5851
  }
5465
5852
 
5466
- declare class PptxHandlerRuntime$Z extends PptxHandlerRuntime$_ {
5853
+ declare class PptxHandlerRuntime$_ extends PptxHandlerRuntime$$ {
5467
5854
  protected updateNotesXmlText(notesXmlObj: XmlObject, notesText: string | undefined, notesSegments?: TextSegment[]): boolean;
5468
5855
  protected createPictureXml(el: PptxImageLikeElement, relationshipId: string): XmlObject;
5469
5856
  protected createMediaGraphicFrameXml(el: MediaPptxElement, relationshipId: string): XmlObject;
@@ -5475,7 +5862,7 @@ declare class PptxHandlerRuntime$Z extends PptxHandlerRuntime$_ {
5475
5862
  protected createConnectorXml(el: ConnectorPptxElement): XmlObject;
5476
5863
  }
5477
5864
 
5478
- declare class PptxHandlerRuntime$Y extends PptxHandlerRuntime$Z {
5865
+ declare class PptxHandlerRuntime$Z extends PptxHandlerRuntime$_ {
5479
5866
  /**
5480
5867
  * Build a `p:graphicFrame` XML skeleton for an SDK-created table.
5481
5868
  *
@@ -5490,6 +5877,38 @@ declare class PptxHandlerRuntime$Y extends PptxHandlerRuntime$Z {
5490
5877
  * `rebuildTableXmlFromData` and fills in `a:tblGrid` / `a:tr` children.
5491
5878
  */
5492
5879
  protected createTableGraphicFrameXml(el: TablePptxElement): XmlObject;
5880
+ /**
5881
+ * Build a `p:graphicFrame` XML skeleton for an OLE object element.
5882
+ *
5883
+ * Used both for SDK-created OLE elements (no `rawXml`) and to refresh
5884
+ * a few key attributes on a loaded element when the typed fields have
5885
+ * been mutated. The output is the canonical
5886
+ * `p:graphicFrame > a:graphic > a:graphicData uri="…/ole" > p:oleObj`
5887
+ * shape per ECMA-376 §19.3.1.34 / §13.3.4.
5888
+ *
5889
+ * The caller (`processSlideElement`) is responsible for ensuring the
5890
+ * embed / preview-image relationships referenced from `r:id` / `r:embed`
5891
+ * exist in the slide's rels file. This method does not register them
5892
+ * itself because the typed model does not currently carry the binary
5893
+ * payload — the binary part must already be in the package (loaded from
5894
+ * the original file). A fully-fabricated SDK OLE element therefore
5895
+ * still requires the consumer to attach the binary out-of-band; this
5896
+ * method simply emits a schema-valid envelope referencing the
5897
+ * specified relationship ID.
5898
+ */
5899
+ protected createOleGraphicFrameXml(el: OlePptxElement, embedRelationshipId: string): XmlObject;
5900
+ /**
5901
+ * Refresh editable typed-field attributes on a loaded OLE graphicFrame's
5902
+ * raw XML. Only attributes that round-trip through the typed model
5903
+ * (`progId`, `name`, `classid`) are touched so unknown extension data
5904
+ * passes through verbatim.
5905
+ */
5906
+ protected applyOleTypedFieldUpdates(shape: XmlObject, el: OlePptxElement): void;
5907
+ /** Look up the existing OLE binary relationship ID for this slide, if any. */
5908
+ protected resolveOleEmbedRelationshipId(slideRelationships: XmlObject[], oleTarget: string | undefined): string | undefined;
5909
+ /** Constants are exposed so the element-writer mixin can reuse them. */
5910
+ protected static readonly OLE_OBJECT_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject";
5911
+ protected static readonly OLE_IMAGE_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image";
5493
5912
  /**
5494
5913
  * Build a p:sp XML object for an ink annotation element.
5495
5914
  * Each ink path becomes a separate a:path within a:pathLst,
@@ -5503,7 +5922,7 @@ declare class PptxHandlerRuntime$Y extends PptxHandlerRuntime$Z {
5503
5922
  protected buildGroupShapeXml(group: GroupPptxElement): XmlObject | null;
5504
5923
  }
5505
5924
 
5506
- declare class PptxHandlerRuntime$X extends PptxHandlerRuntime$Y {
5925
+ declare class PptxHandlerRuntime$Y extends PptxHandlerRuntime$Z {
5507
5926
  protected clampCropForSave(value: unknown): number;
5508
5927
  protected applyImageCropToBlipFill(blipFill: XmlObject | undefined, element: PptxImageLikeElement): void;
5509
5928
  protected applyImageEffectsToBlip(blipFill: XmlObject | undefined, effects: PptxImageEffects | undefined): void;
@@ -5511,6 +5930,7 @@ declare class PptxHandlerRuntime$X extends PptxHandlerRuntime$Y {
5511
5930
  protected buildGradientFillXml(shapeStyle: ShapeStyle): XmlObject | undefined;
5512
5931
  protected clampUnitInterval(value: number): number;
5513
5932
  protected buildOuterShadowXml(shapeStyle: ShapeStyle): XmlObject | undefined;
5933
+ protected buildPresetShadowXml(shapeStyle: ShapeStyle): XmlObject | undefined;
5514
5934
  protected buildInnerShadowXml(shapeStyle: ShapeStyle): XmlObject | undefined;
5515
5935
  protected buildGlowXml(shapeStyle: ShapeStyle): XmlObject | undefined;
5516
5936
  protected buildSoftEdgeXml(shapeStyle: ShapeStyle): XmlObject | undefined;
@@ -5524,7 +5944,7 @@ declare class PptxHandlerRuntime$X extends PptxHandlerRuntime$Y {
5524
5944
  protected getTextValueForSave(text: string | undefined, textSegments: TextSegment[] | undefined): string;
5525
5945
  }
5526
5946
 
5527
- declare class PptxHandlerRuntime$W extends PptxHandlerRuntime$X {
5947
+ declare class PptxHandlerRuntime$X extends PptxHandlerRuntime$Y {
5528
5948
  protected textStylesEqual(left: TextStyle | undefined, right: TextStyle | undefined): boolean;
5529
5949
  protected hasMixedTextStyles(textSegments: TextSegment[]): boolean;
5530
5950
  protected areTextSegmentsUniform(textSegments: TextSegment[] | undefined): boolean;
@@ -5536,7 +5956,7 @@ declare class PptxHandlerRuntime$W extends PptxHandlerRuntime$X {
5536
5956
  protected compactTextSegments(textSegments: TextSegment[], fallbackStyle: TextStyle | undefined): TextSegment[];
5537
5957
  }
5538
5958
 
5539
- declare class PptxHandlerRuntime$V extends PptxHandlerRuntime$W {
5959
+ declare class PptxHandlerRuntime$W extends PptxHandlerRuntime$X {
5540
5960
  /**
5541
5961
  * Parse hyperlink-related properties (a:hlinkClick, a:hlinkMouseOver) from
5542
5962
  * run-level XML and apply them to the given TextStyle.
@@ -5549,11 +5969,17 @@ declare class PptxHandlerRuntime$V extends PptxHandlerRuntime$W {
5549
5969
  protected applyTextRunEffects(style: TextStyle, runEffectList: XmlObject): void;
5550
5970
  }
5551
5971
 
5552
- declare class PptxHandlerRuntime$U extends PptxHandlerRuntime$V {
5972
+ declare class PptxHandlerRuntime$V extends PptxHandlerRuntime$W {
5553
5973
  protected extractTextRunStyle(runProperties: XmlObject | undefined, align: TextStyle['align'], relationshipMap?: Map<string, string>): TextStyle;
5974
+ /**
5975
+ * Copy `@panose` / `@pitchFamily` / `@charset` from a font child node
5976
+ * (`a:latin`, `a:ea`, `a:cs`, `a:sym`) onto the matching `*Font*`
5977
+ * fields of `style`.
5978
+ */
5979
+ private applyTextFontMetadata;
5554
5980
  }
5555
5981
 
5556
- declare class PptxHandlerRuntime$T extends PptxHandlerRuntime$U {
5982
+ declare class PptxHandlerRuntime$U extends PptxHandlerRuntime$V {
5557
5983
  protected extractTextSegmentsFromTxBodyForRewrite(txBody: XmlObject | undefined, baseStyle: TextStyle | undefined, relationshipMap?: Map<string, string>): TextSegment[];
5558
5984
  protected remapEditedTextToExistingStyles(existingSegments: TextSegment[], nextText: string, fallbackStyle: TextStyle | undefined): TextSegment[];
5559
5985
  }
@@ -5670,7 +6096,7 @@ interface BodyPropertiesResult {
5670
6096
  * by type, reposition matched placeholders, remove unmatched ones, and
5671
6097
  * inject empty placeholders that exist only in the target layout.
5672
6098
  */
5673
- declare class PptxHandlerRuntime$S extends PptxHandlerRuntime$T {
6099
+ declare class PptxHandlerRuntime$T extends PptxHandlerRuntime$U {
5674
6100
  /**
5675
6101
  * Read placeholder info from a `p:nvPr` XML node.
5676
6102
  *
@@ -5730,7 +6156,7 @@ declare class PptxHandlerRuntime$S extends PptxHandlerRuntime$T {
5730
6156
  protected createEmptyPlaceholderElement(phInfo: PlaceholderInfo, xEmu: number, yEmu: number, cxEmu: number, cyEmu: number, _layoutPath: string): PptxElement | null;
5731
6157
  }
5732
6158
 
5733
- declare class PptxHandlerRuntime$R extends PptxHandlerRuntime$S {
6159
+ declare class PptxHandlerRuntime$S extends PptxHandlerRuntime$T {
5734
6160
  /**
5735
6161
  * Write plain text into a table cell's txBody, preserving
5736
6162
  * existing run properties where possible.
@@ -5742,7 +6168,7 @@ declare class PptxHandlerRuntime$R extends PptxHandlerRuntime$S {
5742
6168
  protected writeTableCellStyle(xmlCell: XmlObject, style: PptxTableCellStyle): void;
5743
6169
  }
5744
6170
 
5745
- declare class PptxHandlerRuntime$Q extends PptxHandlerRuntime$R {
6171
+ declare class PptxHandlerRuntime$R extends PptxHandlerRuntime$S {
5746
6172
  /**
5747
6173
  * Serialise modified `PptxTableData` back into the graphic frame's
5748
6174
  * raw XML so that the round-tripped file preserves edits.
@@ -5766,6 +6192,11 @@ declare class PptxHandlerRuntime$Q extends PptxHandlerRuntime$R {
5766
6192
  * Process all pending chart data updates (called from the async save method).
5767
6193
  */
5768
6194
  protected processPendingChartUpdates(): Promise<void>;
6195
+ /**
6196
+ * Upsert a `c:<localName>` child with `@_val` on an axis or scaling node.
6197
+ * When `value` is undefined, removes any existing child of that local name.
6198
+ */
6199
+ protected upsertChartAxisChild(parent: XmlObject, localName: string, value: string | undefined): void;
5769
6200
  /**
5770
6201
  * Update the cached point values in a chart reference node
5771
6202
  * (numRef/strRef or numLit/strLit).
@@ -5791,7 +6222,7 @@ declare class PptxHandlerRuntime$Q extends PptxHandlerRuntime$R {
5791
6222
  protected buildNewSeriesXml(seriesIndex: number, seriesData: PptxChartSeries, categories: string[], templateSeries?: XmlObject): XmlObject;
5792
6223
  }
5793
6224
 
5794
- declare class PptxHandlerRuntime$P extends PptxHandlerRuntime$Q {
6225
+ declare class PptxHandlerRuntime$Q extends PptxHandlerRuntime$R {
5795
6226
  /** Pending SmartArt data updates to process during save. */
5796
6227
  protected pendingSmartArtUpdates?: Array<{
5797
6228
  element: SmartArtPptxElement;
@@ -5883,7 +6314,7 @@ declare class PptxHandlerRuntime$P extends PptxHandlerRuntime$Q {
5883
6314
  protected convertZipToStrictConformance(): Promise<void>;
5884
6315
  }
5885
6316
 
5886
- declare class PptxHandlerRuntime$O extends PptxHandlerRuntime$P {
6317
+ declare class PptxHandlerRuntime$P extends PptxHandlerRuntime$Q {
5887
6318
  protected applyPresentationPropertiesPart(properties: PptxPresentationProperties | undefined): Promise<void>;
5888
6319
  /**
5889
6320
  * Strip digital signature parts from the ZIP if the document was signed.
@@ -5892,14 +6323,14 @@ declare class PptxHandlerRuntime$O extends PptxHandlerRuntime$P {
5892
6323
  protected stripDigitalSignatures(): Promise<void>;
5893
6324
  }
5894
6325
 
5895
- declare class PptxHandlerRuntime$N extends PptxHandlerRuntime$O {
6326
+ declare class PptxHandlerRuntime$O extends PptxHandlerRuntime$P {
5896
6327
  protected collectMediaElements(elements: PptxElement[], output: MediaPptxElement[]): void;
5897
6328
  protected getShapeIdFromRawXml(rawXml: XmlObject | undefined): string | undefined;
5898
6329
  protected applyMediaTimingToTimingTree(node: XmlObject, mediaByShapeId: Map<string, MediaPptxElement>): void;
5899
6330
  protected applyMediaTimingToRawTiming(rawTiming: XmlObject, elements: PptxElement[]): void;
5900
6331
  }
5901
6332
 
5902
- declare class PptxHandlerRuntime$M extends PptxHandlerRuntime$N {
6333
+ declare class PptxHandlerRuntime$N extends PptxHandlerRuntime$O {
5903
6334
  /**
5904
6335
  * Recursively walk an XML object tree and deduplicate extension list entries
5905
6336
  * by `@_uri`. When multiple `a:ext` or `p:ext` entries share the same URI,
@@ -5921,15 +6352,35 @@ declare class PptxHandlerRuntime$M extends PptxHandlerRuntime$N {
5921
6352
  protected ensureTemplateShapeAttached(spTree: XmlObject, elementType: PptxElement['type'], shape: XmlObject): XmlObject;
5922
6353
  }
5923
6354
 
5924
- declare class PptxHandlerRuntime$L extends PptxHandlerRuntime$M {
6355
+ declare class PptxHandlerRuntime$M extends PptxHandlerRuntime$N {
5925
6356
  /**
5926
6357
  * Serialize shape fill, stroke, dash, arrows, line join/cap/compound,
5927
6358
  * and line-level effects to the given spPr XML object.
5928
6359
  */
5929
6360
  protected applyFillAndStroke(spPr: XmlObject, shapeStyle: ShapeStyle): void;
6361
+ /**
6362
+ * Serialize the shape's `<p:style>` block (CT_ShapeStyle §20.1.2.2.36)
6363
+ * from the persisted ref indices/colour XML. Emits children in spec
6364
+ * order: `lnRef → fillRef → effectRef → fontRef`.
6365
+ *
6366
+ * When the original shape XML already contained a `<p:style>` we mutate
6367
+ * that node in place so any unmodelled attributes/children are preserved.
6368
+ * When it didn't, we create one. When the shape no longer has any ref
6369
+ * data we leave the existing `<p:style>` (if any) untouched — silently
6370
+ * dropping it would break round-tripping.
6371
+ *
6372
+ * Phase 2 Stream B / C-H2.
6373
+ */
6374
+ protected applyShapeStyleRefs(shape: XmlObject, shapeStyle: ShapeStyle): void;
6375
+ /**
6376
+ * Replace any existing colour-choice child on a style-matrix-reference
6377
+ * element with the given preserved XML, or strip all colour children
6378
+ * when the override is undefined.
6379
+ */
6380
+ private replaceRefColorChoice;
5930
6381
  }
5931
6382
 
5932
- declare class PptxHandlerRuntime$K extends PptxHandlerRuntime$L {
6383
+ declare class PptxHandlerRuntime$L extends PptxHandlerRuntime$M {
5933
6384
  /**
5934
6385
  * Serialize visual effects (shadow, glow, reflection, blur, soft edge),
5935
6386
  * effectDag, 3D scene, and 3D shape properties to the given spPr XML object.
@@ -5937,7 +6388,7 @@ declare class PptxHandlerRuntime$K extends PptxHandlerRuntime$L {
5937
6388
  protected applyEffectsAndThreeD(spPr: XmlObject, shapeStyle: ShapeStyle): void;
5938
6389
  }
5939
6390
 
5940
- declare class PptxHandlerRuntime$J extends PptxHandlerRuntime$K {
6391
+ declare class PptxHandlerRuntime$K extends PptxHandlerRuntime$L {
5941
6392
  /**
5942
6393
  * Build and write the text body (`p:txBody`) for shapes, text boxes,
5943
6394
  * and connectors that carry text content.
@@ -5973,7 +6424,7 @@ interface SaveSlideContext {
5973
6424
  readonly slideVideoRelationshipType: string;
5974
6425
  readonly slideAudioRelationshipType: string;
5975
6426
  }
5976
- declare class PptxHandlerRuntime$I extends PptxHandlerRuntime$J {
6427
+ declare class PptxHandlerRuntime$J extends PptxHandlerRuntime$K {
5977
6428
  /** Serialize table, chart, and SmartArt data when applicable. */
5978
6429
  protected applyDataSerialization(shape: XmlObject, el: PptxElement, slideId: string): void;
5979
6430
  /** Apply image crop, effects, and alt text for picture/image elements. */
@@ -5994,10 +6445,24 @@ interface SlideShapeCollectors {
5994
6445
  readonly graphicFrames: XmlObject[];
5995
6446
  readonly groups: XmlObject[];
5996
6447
  readonly model3ds: XmlObject[];
6448
+ readonly contentParts: XmlObject[];
5997
6449
  }
5998
- declare class PptxHandlerRuntime$H extends PptxHandlerRuntime$I {
6450
+ declare class PptxHandlerRuntime$I extends PptxHandlerRuntime$J {
5999
6451
  /** Whether a shape XML represents a graphic frame. */
6000
6452
  protected isGraphicFrameShape(shape: XmlObject): boolean;
6453
+ /**
6454
+ * Reorder children of `p:spPr` to match CT_ShapeProperties (§20.1.2.2.35).
6455
+ * Also reorders any nested `a:blipFill` per CT_BlipFillProperties.
6456
+ * fast-xml-parser preserves insertion order; PowerPoint validates against
6457
+ * the schema's required order, so save-side mutations must be re-sorted.
6458
+ */
6459
+ protected finalizeSpPrSchemaOrder(shape: XmlObject): void;
6460
+ /**
6461
+ * Reorder children of the picture-level `p:blipFill` (CT_BlipFillProperties).
6462
+ * Picture elements carry their blip data on the `p:pic` root, not under spPr.
6463
+ */
6464
+ protected finalizePictureBlipFillOrder(shape: XmlObject): void;
6465
+ private reorderInPlace;
6001
6466
  /** Whether an element ID indicates a template (layout/master) element. */
6002
6467
  protected isTemplateElementId(elementId: string): boolean;
6003
6468
  /**
@@ -6007,12 +6472,136 @@ declare class PptxHandlerRuntime$H extends PptxHandlerRuntime$I {
6007
6472
  protected processSlideElement(el: PptxElement, collectors: SlideShapeCollectors, ctx: SaveSlideContext): void;
6008
6473
  }
6009
6474
 
6010
- declare class PptxHandlerRuntime$G extends PptxHandlerRuntime$H {
6475
+ declare class PptxHandlerRuntime$H extends PptxHandlerRuntime$I {
6011
6476
  /**
6012
6477
  * Process a single slide during save: update slide XML, process elements,
6013
6478
  * rebuild shape tree, and persist relationships.
6014
6479
  */
6015
6480
  protected processSlideForSave(slide: PptxSlide, saveSession: PptxSaveState, constants: PptxSaveConstants): Promise<void>;
6481
+ /**
6482
+ * Re-wrap selected children with their original `<mc:AlternateContent>`
6483
+ * envelope (CC-4).
6484
+ *
6485
+ * Parsing merged the selected branch (Choice when supported, otherwise
6486
+ * Fallback) into the spTree's tag arrays. Without re-wrapping, dirty
6487
+ * save would emit flat `<p:sp>`/`<p:pic>` etc. and drop the
6488
+ * `<mc:Fallback>` branch — losing legacy rendering for files originally
6489
+ * authored with newer-namespace features.
6490
+ *
6491
+ * Strategy: for each XmlObject in `collectors.*` that traces back to a
6492
+ * known AC block, group by block and:
6493
+ * 1. Remove the node from its flat collector / spTree array.
6494
+ * 2. Clone the original AC envelope.
6495
+ * 3. Replace the selected branch's `<{tag}>` children with the
6496
+ * live (possibly edited) nodes from the collectors.
6497
+ * 4. Leave the unselected branch verbatim.
6498
+ *
6499
+ * Final envelopes are appended to `spTree['mc:AlternateContent']`.
6500
+ */
6501
+ protected reapplyAlternateContentEnvelopes(spTree: XmlObject, collectors: SlideShapeCollectors): void;
6502
+ }
6503
+
6504
+ /**
6505
+ * @fileoverview Save-side theme.xml writer.
6506
+ *
6507
+ * Phase 4 Stream A / C-H3.
6508
+ *
6509
+ * Round-trip strategy:
6510
+ *
6511
+ * 1. On parse, the original `theme*.xml` body is captured into
6512
+ * {@link PptxHandlerRuntime#originalThemeXmlByPath}. The full set of
6513
+ * fields a PPTX theme can carry — `bgFillStyleLst`, `fillStyleLst`,
6514
+ * `lnStyleLst`, `effectStyleLst`, `objectDefaults`, `extLst`,
6515
+ * `extraClrSchemeLst`, `custClrLst`, … — is large; the in-memory
6516
+ * model (`themeColorMap`, `themeFontMap`, `themeFormatScheme`) only
6517
+ * captures a subset.
6518
+ *
6519
+ * 2. On save, if the theme has been marked dirty
6520
+ * ({@link PptxHandlerRuntime#dirtyThemePaths}) — the codec will
6521
+ * regenerate the theme from in-memory state, preserving the
6522
+ * captured raw subtrees for the parts the model doesn't own
6523
+ * (objectDefaults, extraClrSchemeLst, fmtScheme details, …).
6524
+ * Otherwise the original XML is re-emitted verbatim, which guarantees
6525
+ * byte-stable round-trip in the common (no-mutation) case.
6526
+ *
6527
+ * The writer hooks into `PptxHandlerRuntimeSavePipeline.save` between
6528
+ * the master / layout persistence and the presentation persistence.
6529
+ */
6530
+
6531
+ /**
6532
+ * Public mutation API for theme state. Marking a theme dirty causes the
6533
+ * save pipeline to regenerate the theme part instead of re-emitting the
6534
+ * original XML.
6535
+ */
6536
+ declare class PptxHandlerRuntime$G extends PptxHandlerRuntime$H {
6537
+ /**
6538
+ * Mark a theme path as dirty so the save pipeline will regenerate
6539
+ * the theme XML from in-memory state. Optional — without this the
6540
+ * original XML is preserved verbatim on save (C-H3).
6541
+ */
6542
+ markThemeDirty(themePath: string): void;
6543
+ /**
6544
+ * Mark all known theme paths dirty in one call.
6545
+ */
6546
+ markAllThemesDirty(): void;
6547
+ /**
6548
+ * Persist all theme parts during save. Called from the save pipeline
6549
+ * after master / layout XML have been flushed and before
6550
+ * presentation.xml is serialized.
6551
+ *
6552
+ * Order of operations per theme path:
6553
+ *
6554
+ * 1. If the path is *not* in {@link dirtyThemePaths}, the existing
6555
+ * ZIP entry is already correct — no-op. (Original XML was placed
6556
+ * into the ZIP at load time.)
6557
+ * 2. If the path is dirty, build a fresh `<a:theme>` document from
6558
+ * in-memory state and the captured raw subtrees, then overwrite
6559
+ * the ZIP entry.
6560
+ */
6561
+ protected persistThemeParts(): Promise<void>;
6562
+ /**
6563
+ * Build a complete `<a:theme>` XML document from in-memory state.
6564
+ * Returns the serialized XML string (with XML prolog), or `undefined`
6565
+ * if there is no source data to emit.
6566
+ *
6567
+ * - Color scheme: built from per-master color map (or global fallback).
6568
+ * - Font scheme: built from per-master font map + per-script entries.
6569
+ * - Format scheme: re-emit the original XML subtree if available; else
6570
+ * build a minimal scheme from {@link themeFormatScheme}.
6571
+ * - objectDefaults / extraClrSchemeLst / custClrLst / extLst: re-emit
6572
+ * captured raw subtrees.
6573
+ */
6574
+ protected buildThemeXml(themePath: string, masterPath: string | undefined): string | undefined;
6575
+ /**
6576
+ * Build the `a:clrScheme` XmlObject from a colour map. Each slot
6577
+ * value is interpreted as either a `#RRGGBB` srgb hex or a known
6578
+ * sysClr token (currently always emitted as srgbClr — the in-memory
6579
+ * map is hex-typed; sysClr round-trip belongs to the broader C-H3
6580
+ * fix to preserve original color XML and is out of scope here).
6581
+ */
6582
+ protected buildClrSchemeObject(schemeName: string, colorMap: Record<string, string>): XmlObject;
6583
+ /**
6584
+ * Build the `a:fontScheme` XmlObject from a font map plus per-script
6585
+ * font tables.
6586
+ *
6587
+ * Phase 4 Stream A / M4.
6588
+ */
6589
+ protected buildFontSchemeObject(schemeName: string, fontMap: Record<string, string>, majorScripts: Record<string, string>, minorScripts: Record<string, string>): XmlObject;
6590
+ /**
6591
+ * Re-parse the original theme XML and pluck out a subtree by path,
6592
+ * returning the raw parser object. Returns `undefined` when the
6593
+ * original is missing or the path doesn't exist.
6594
+ *
6595
+ * Used to preserve `a:fmtScheme` byte-for-byte through a regenerate
6596
+ * round-trip, since the in-memory PptxThemeFormatScheme is lossy.
6597
+ */
6598
+ protected extractRawSubtreeFromOriginal(themePath: string, path: string[]): unknown | undefined;
6599
+ /**
6600
+ * Last-resort minimal `<a:fmtScheme>` body. Mirrors the SDK new-deck
6601
+ * builder's output for new presentations, scaled down to the smallest
6602
+ * schema-valid form.
6603
+ */
6604
+ protected buildMinimalFmtScheme(name: string): XmlObject;
6016
6605
  }
6017
6606
 
6018
6607
  declare class PptxHandlerRuntime$F extends PptxHandlerRuntime$G {
@@ -6061,7 +6650,7 @@ declare class PptxHandlerRuntime$E extends PptxHandlerRuntime$F {
6061
6650
  declare class PptxHandlerRuntime$D extends PptxHandlerRuntime$E {
6062
6651
  protected findPlaceholderInShapeTree(spTree: XmlObject | undefined, expected: PlaceholderInfo | null): PlaceholderLookupContext | undefined;
6063
6652
  protected findPlaceholderContext(slidePath: string, expected: PlaceholderInfo | null): PlaceholderLookupContext | undefined;
6064
- protected mergeXmlObjects(base: XmlObject | undefined, override: XmlObject | undefined): XmlObject | undefined;
6653
+ protected mergeXmlObjects(base: XmlObject | undefined, override: XmlObject | undefined, depth?: number): XmlObject | undefined;
6065
6654
  protected readFlipState(xfrm: XmlObject | undefined): {
6066
6655
  flipHorizontal: boolean;
6067
6656
  flipVertical: boolean;
@@ -6086,6 +6675,21 @@ declare class PptxHandlerRuntime$C extends PptxHandlerRuntime$D {
6086
6675
  * Supports both `a:ahXY` (XY position handles) and `a:ahPolar` (polar handles).
6087
6676
  */
6088
6677
  protected parseAdjustmentHandles(geomNode: XmlObject | undefined, shapeWidth: number, shapeHeight: number, adjustments?: Record<string, number>): GeometryAdjustmentHandle[] | undefined;
6678
+ /**
6679
+ * Extract `a:gdLst`/`a:ahLst`/`a:cxnLst`/`a:rect` raw XML from a `a:custGeom`
6680
+ * node so they can be re-emitted on save when the geometry is edited.
6681
+ * Returns `undefined` when none of these auxiliary children carry data.
6682
+ */
6683
+ protected extractCustomGeometryRawData(custGeom: XmlObject | undefined): CustomGeometryRawData | undefined;
6684
+ /**
6685
+ * Build structured `CustomGeometryPath[]` from a parsed `a:custGeom` node,
6686
+ * including per-path `@fill`/`@stroke`/`@extrusionOk` attributes so they
6687
+ * survive a round-trip when the path list is later regenerated.
6688
+ *
6689
+ * Falls back to SVG → structured-path conversion when no structured path
6690
+ * info is otherwise available.
6691
+ */
6692
+ protected buildStructuredCustomGeometryPaths(custGeom: XmlObject | undefined, pathData: string, pathWidth: number, pathHeight: number): CustomGeometryPath[] | undefined;
6089
6693
  protected parseCustomGeometry(custGeom: XmlObject | undefined, shapeWidth?: number, shapeHeight?: number): {
6090
6694
  pathData: string;
6091
6695
  pathWidth: number;
@@ -6262,6 +6866,10 @@ declare class PptxHandlerRuntime$t extends PptxHandlerRuntime$u {
6262
6866
  * Unwrap mc:AlternateContent elements within a shape tree (or group),
6263
6867
  * merging selected branch children into the parent element arrays.
6264
6868
  * Delegates to the standalone alternate-content utility.
6869
+ *
6870
+ * Records each consumed AC envelope in {@link alternateContentBlockByRawXml}
6871
+ * so the save layer can re-emit the original `<mc:Choice>` /
6872
+ * `<mc:Fallback>` shape on dirty save (CC-4).
6265
6873
  */
6266
6874
  protected unwrapAlternateContent(container: Record<string, unknown>): void;
6267
6875
  /**
@@ -6271,7 +6879,7 @@ declare class PptxHandlerRuntime$t extends PptxHandlerRuntime$u {
6271
6879
  }
6272
6880
 
6273
6881
  declare class PptxHandlerRuntime$s extends PptxHandlerRuntime$t {
6274
- protected parseGroupShape(group: any, baseId: string, slidePath: string, rawXmlStr?: string): Promise<PptxElement[]>;
6882
+ protected parseGroupShape(group: any, baseId: string, slidePath: string, rawXmlStr?: string, depth?: number): Promise<PptxElement[]>;
6275
6883
  /**
6276
6884
  * Parse a p:grpSp element into a GroupPptxElement with children.
6277
6885
  * Children have coordinates relative to the group's position.
@@ -6354,6 +6962,21 @@ declare class PptxHandlerRuntime$o extends PptxHandlerRuntime$p {
6354
6962
  * Find the layout file path referenced by a slide via its relationships.
6355
6963
  */
6356
6964
  protected findLayoutPathForSlide(slidePath: string): string | undefined;
6965
+ /**
6966
+ * Find the master file path referenced by a layout via its relationships.
6967
+ */
6968
+ protected findMasterPathForLayoutBase(layoutPath: string): string | undefined;
6969
+ /**
6970
+ * Switch the active master state (clrMap + theme color/font/format
6971
+ * scheme) so that scheme-colour resolution for the slide currently
6972
+ * being parsed walks through the correct master.
6973
+ *
6974
+ * Multi-master decks must resolve scheme colours against each slide's
6975
+ * own master rather than always against `masterFiles[0]`.
6976
+ *
6977
+ * Phase 2 Stream B / C-H4.
6978
+ */
6979
+ protected setActiveMasterForSlide(slidePath: string): Promise<void>;
6357
6980
  /**
6358
6981
  * Extract the `p:bg/@showAnimation` flag from a slide's XML.
6359
6982
  * Returns `true` when the background should animate, `false` when
@@ -6393,6 +7016,29 @@ declare class PptxHandlerRuntime$m extends PptxHandlerRuntime$n {
6393
7016
  }
6394
7017
 
6395
7018
  declare class PptxHandlerRuntime$l extends PptxHandlerRuntime$m {
7019
+ /**
7020
+ * Parse a `CT_TextListStyle` node (`a:defPPr` + `a:lvl1pPr` … `a:lvl9pPr`)
7021
+ * into a level-keyed style map. Used for `<p:txStyles>` children
7022
+ * (`p:titleStyle`, `p:bodyStyle`, `p:otherStyle`) — see ECMA-376 §19.3.1.52.
7023
+ */
7024
+ protected parseTextListStyle(node: XmlObject | undefined): PptxTextStyleLevels | undefined;
7025
+ /**
7026
+ * Parse `<p:txStyles>` from a slide-master XML object into a structured
7027
+ * {@link PptxMasterTextStyles}. Used to populate `PptxSlideMaster.txStyles`
7028
+ * so the title/body/other text-style cascade (P-H1) is visible on the
7029
+ * typed model.
7030
+ */
7031
+ protected parseMasterTxStyles(masterXml: XmlObject | undefined): PptxMasterTextStyles | undefined;
7032
+ /**
7033
+ * Enrich an array of {@link PptxSlideMaster} entries (already produced by
7034
+ * `parseSlideMasters`) with parsed `<p:txStyles>`. Loads each master's XML
7035
+ * once, parses, and caches it in `masterXmlMap` for downstream consumers.
7036
+ *
7037
+ * Also stores the parsed result on the per-master cache so that the
7038
+ * inheritance chain in `applyMasterTextStyleCascade` can find it without
7039
+ * re-parsing.
7040
+ */
7041
+ protected enrichSlideMastersWithTxStyles(slideMasters: PptxSlideMaster[]): Promise<void>;
6396
7042
  protected parsePresentationDefaultTextStyle(): void;
6397
7043
  protected getMasterElements(layoutPath: string): Promise<PptxElement[]>;
6398
7044
  }
@@ -6480,6 +7126,13 @@ declare class PptxHandlerRuntime$i extends PptxHandlerRuntime$j {
6480
7126
  }
6481
7127
 
6482
7128
  declare class PptxHandlerRuntime$h extends PptxHandlerRuntime$i {
7129
+ /**
7130
+ * Pull the verbatim colour-choice child out of a style-matrix-reference
7131
+ * element (`a:lnRef`/`a:fillRef`/`a:effectRef`/`a:fontRef`). Returns the
7132
+ * full child object so it can be round-tripped at save time, preserving
7133
+ * any contained colour transforms (`a:lumMod`, `a:tint`, etc.).
7134
+ */
7135
+ protected extractRefColorXml(refNode: XmlObject | undefined): XmlObject | undefined;
6483
7136
  /**
6484
7137
  * Resolve a `a:effectRef` element into concrete effect properties
6485
7138
  * by looking up `@_idx` in the theme format scheme's effect style list.
@@ -6529,7 +7182,55 @@ declare class PptxHandlerRuntime$g extends PptxHandlerRuntime$h {
6529
7182
  * themeColorMap and themeFontMap for consumption by renderers / UI.
6530
7183
  */
6531
7184
  protected buildThemeObject(): PptxTheme | undefined;
6532
- protected applySlideMasterColorMap(defaultMap: Record<string, string>): Promise<void>;
7185
+ /**
7186
+ * Parse every slide master's `<p:clrMap>` element and store the alias
7187
+ * dictionaries on {@link masterClrMaps}. Do *not* mutate
7188
+ * {@link themeColorMap} — alias resolution happens at colour-lookup
7189
+ * time so that:
7190
+ *
7191
+ * 1. The raw theme scheme stays the source of truth (clrMap is a
7192
+ * routing layer, not a colour table).
7193
+ * 2. Multi-master decks resolve each slide against its own master's
7194
+ * clrMap rather than always against `masterFiles[0]`.
7195
+ * 3. Layout `clrMapOvr` semantics work correctly when a slide's master
7196
+ * differs from the deck's first master.
7197
+ *
7198
+ * Phase 2 Stream B / C-H4.
7199
+ */
7200
+ protected applySlideMasterColorMap(_defaultMap: Record<string, string>): Promise<void>;
7201
+ /**
7202
+ * Parse a single theme part into structured colour, font, and format
7203
+ * scheme dictionaries. Used both for the global default theme and for
7204
+ * each master's per-master theme (multi-master support).
7205
+ *
7206
+ * Phase 2 Stream B / C-H4.
7207
+ */
7208
+ protected parseThemePart(themePath: string): Promise<{
7209
+ colorMap: Record<string, string>;
7210
+ fontMap: Record<string, string>;
7211
+ formatScheme: PptxThemeFormatScheme | undefined;
7212
+ } | null>;
7213
+ /**
7214
+ * Parse `<a:font script="…" typeface="…"/>` children of a major or
7215
+ * minor font node into a `script -> typeface` dictionary.
7216
+ *
7217
+ * fast-xml-parser collapses repeated tags into arrays, so iterate
7218
+ * over the array form regardless of how many siblings are present.
7219
+ *
7220
+ * Phase 4 Stream A / M4.
7221
+ */
7222
+ protected collectFontScriptOverrides(fontNode: XmlObject | undefined): Record<string, string>;
7223
+ /**
7224
+ * Resolve the theme file path referenced by a given master's `.rels`.
7225
+ * Returns `undefined` when the master has no theme relationship.
7226
+ */
7227
+ protected resolveThemePathForMaster(masterPath: string): Promise<string | undefined>;
7228
+ /**
7229
+ * Populate {@link masterThemeColorMaps}, {@link masterThemeFontMaps},
7230
+ * and {@link masterThemeFormatSchemes} for every slide master in the
7231
+ * deck. Multi-master support — Phase 2 Stream B / C-H4.
7232
+ */
7233
+ protected loadPerMasterThemes(): Promise<void>;
6533
7234
  protected loadThemeData(): Promise<void>;
6534
7235
  }
6535
7236
 
@@ -6613,12 +7314,33 @@ declare class PptxHandlerRuntime$c extends PptxHandlerRuntime$d {
6613
7314
  * Parse pre-computed shapes from `ppt/diagrams/drawing*.xml`.
6614
7315
  */
6615
7316
  protected parseSmartArtDrawingShapes(slidePath: string, drawingRelId: string): Promise<PptxSmartArtDrawingShape[]>;
6616
- private parseDrawingShape;
7317
+ protected parseDrawingShape(sp: XmlObject, index: number, emuPerPx: number): PptxSmartArtDrawingShape | null;
6617
7318
  private extractDrawingShapeTextStyle;
6618
7319
  }
6619
7320
 
6620
7321
  declare class PptxHandlerRuntime$b extends PptxHandlerRuntime$c {
6621
7322
  getSmartArtDataForGraphicFrame(slidePath: string, graphicFrame: XmlObject | undefined): Promise<PptxSmartArtData | undefined>;
7323
+ /**
7324
+ * Resolve the SmartArt drawing-shapes part path + relationship id.
7325
+ *
7326
+ * Strategy:
7327
+ * 1. Locate the data-model part's rels file
7328
+ * (`ppt/diagrams/_rels/data*.xml.rels`) via `slideRelsMap`.
7329
+ * 2. Find a relationship whose `Type` matches the `…/diagramDrawing`
7330
+ * URI. PowerPoint emits this for any deck that has had its
7331
+ * SmartArt rendered to drawing shapes.
7332
+ * 3. Return the matched part path (so the caller can load it
7333
+ * directly) and the relationship id (for round-trip preservation).
7334
+ */
7335
+ private resolveSmartArtDrawingPart;
7336
+ /**
7337
+ * Parse SmartArt drawing shapes given an absolute part path.
7338
+ *
7339
+ * Wraps `parseSmartArtDrawingShapes` (which expects a slide-relative
7340
+ * relationship id) with a path-based lookup so the resolution layer
7341
+ * can pull the part from anywhere in the package.
7342
+ */
7343
+ private parseSmartArtDrawingShapesFromPath;
6622
7344
  private parseSmartArtConnections;
6623
7345
  }
6624
7346
 
@@ -6898,6 +7620,11 @@ declare class PptxHandlerRuntime$2 extends PptxHandlerRuntime$3 {
6898
7620
  * attribute on `p:cNvPr` / `p:cNvCxnSpPr` / `p:cNvPicPr` nodes.
6899
7621
  * This is used to seed the element builder's ID counter so that
6900
7622
  * new elements never collide with existing ones.
7623
+ *
7624
+ * Implementation note (Load H1): uses an explicit-stack iterative walk
7625
+ * instead of recursion to bound stack usage on attacker-supplied XML
7626
+ * with deeply nested nodes. Also caps total visited nodes at
7627
+ * MAX_NODES to bound CPU on pathological trees.
6901
7628
  */
6902
7629
  protected findMaxElementId(slides: PptxSlide[]): number;
6903
7630
  protected resetElementIdCounter(slides: PptxSlide[]): void;
@@ -6939,11 +7666,11 @@ declare class PptxHandlerRuntime$2 extends PptxHandlerRuntime$3 {
6939
7666
  * Find the master path that a given layout belongs to by scanning
6940
7667
  * the layout's own `.rels` file for a `slideMaster` relationship.
6941
7668
  */
6942
- private findMasterPathForLayout;
7669
+ protected findMasterPathForLayout(layoutPath: string): string | undefined;
6943
7670
  /**
6944
7671
  * Find the master path for a slide by walking: slide -> layout -> master.
6945
7672
  */
6946
- private findMasterPathForSlide;
7673
+ protected findMasterPathForSlide(slidePath: string): string | undefined;
6947
7674
  /**
6948
7675
  * Get layouts available for a specific slide, scoped to that slide's
6949
7676
  * master. If the slide's master cannot be determined, returns all
@@ -8285,10 +9012,15 @@ declare function subtractSvgPaths(path1: string, path2: string): string;
8285
9012
  /**
8286
9013
  * Douglas-Peucker polyline simplification.
8287
9014
  *
8288
- * Recursively removes points that lie within `tolerance` of the line
9015
+ * Iteratively removes points that lie within `tolerance` of the line
8289
9016
  * segment connecting their neighbours, preserving overall shape while
8290
9017
  * dramatically reducing point count for freeform drawing input.
8291
9018
  *
9019
+ * Implemented with an explicit stack of `[lo, hi]` index ranges (rather
9020
+ * than recursion) so deep inputs cannot blow the JS call stack. Inputs
9021
+ * larger than {@link MAX_DOUGLAS_PEUCKER_POINTS} are short-circuited to
9022
+ * just the two endpoints.
9023
+ *
8292
9024
  * @param points - Input polyline points (at least 2).
8293
9025
  * @param tolerance - Maximum perpendicular distance for a point to be
8294
9026
  * removed. Larger values produce fewer points. Default: `2`.
@@ -11102,4 +11834,4 @@ type ThemePresetName = keyof typeof ThemePresets;
11102
11834
  /** Get a theme preset by name string. */
11103
11835
  declare function getThemePreset(name: ThemePresetName): ThemePreset;
11104
11836
 
11105
- export { ALL_ANIMATION_PRESETS, type AccessibilityCheckOptions, type AccessibilityIssue, type AccessibilityIssueSeverity, type AccessibilityIssueType, type AnimationCategory, AnimationCondition, type AnimationInput, type AnimationPresetInfo, type BackgroundInput, BulletInfo, COLOR_MAP_ALIAS_KEYS, CONNECTOR_ARROW_OPTIONS, CONNECTOR_GEOMETRY_OPTIONS, type CalloutLeaderLineGeometry, type CalloutPoint, ChartBuilder, type ChartInput, type ChartOptions, ChartPptxElement, type ChartSeriesInput, type ColorMapAliasKey, type CompatibilityWarningInput, ConnectorArrowType, ConnectorBuilder, type ConnectorGeometryType, type ConnectorOptions, type ConnectorPathGeometry, ConnectorPptxElement, ConnectorXmlFactory, type ConnectorXmlFactoryInit, type ContainerBounds, CustomGeometryPath, CustomGeometryPoint, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, DEFAULT_COLOR_MAP, DEFAULT_FILL_COLOR, DEFAULT_FONT_FAMILY, DEFAULT_SCHEME_COLOR_MAP, DEFAULT_STROKE_COLOR, DEFAULT_TEXT_COLOR, DEFAULT_TEXT_FONT_SIZE, DataIntegrityError, EMPHASIS_PRESETS, EMU_PER_INCH, EMU_PER_PIXEL, EMU_PER_POINT, EMU_PER_PX, ENTRANCE_PRESETS, EXIT_PRESETS, ElementAction, type ElementDiff, type ElementPosition, EncryptedFileError, type EncryptionAlgorithm, type EncryptionInfo, type EncryptionOptions, FONT_SUBSTITUTION_MAP, type FileFormatDetection, type FillInput, FindResult, FreeformPathBuilder, GeometryAdjustmentHandle, type GeometryContext, type GeometryGuide, GroupBuilder, type GroupOptions, GroupPptxElement, type HslColor, type IConnectorXmlFactory, type ICoreXmlElementFactory, type IFactory, type IMediaGraphicFrameXmlFactory, type IPictureXmlFactory, type IPptxAnimationWriteService, type IPptxColorStyleCodec, type IPptxCommentAuthorsXmlFactory, type IPptxCommentXmlFactoryProvider, type IPptxCompatibilityService, type IPptxConnectorParser, type IPptxContentTypesBuilder, type IPptxEditorAnimationService, type IPptxElementTransformUpdater, type IPptxGraphicFrameParser, type IPptxHandlerRuntime, type IPptxHandlerRuntimeFactory, type IPptxMediaDataParser, type IPptxNativeAnimationService, type IPptxPresentationSaveBuilder, type IPptxPresentationSlidesReconciler, type IPptxRuntimeDependencyFactory, type IPptxShapeIdValidator, type IPptxShapeStyleExtractor, type IPptxSlideBackgroundBuilder, type IPptxSlideCommentPartWriter, type IPptxSlideCommentsXmlFactory, type IPptxSlideLoaderService, type IPptxSlideMediaRelationshipBuilder, type IPptxSlideNotesPartUpdater, type IPptxSlideRelationshipRegistry, type IPptxSlideTransitionService, type IPptxTableDataParser, type IPptxTemplateBackgroundService, type IPptxXmlBuilder, type IPptxXmlFactoryProvider, type IPptxXmlLookupService, type ITextShapeXmlFactory, type IXmlElementFactory, ImageBuilder, type ImageMaskStyle, type ImageOptions, ImagePptxElement, IncorrectPasswordError, InkPptxElement, type LayoutAlgorithmType, type LayoutConstraints, type LayoutCreationResult, type LayoutDefinition, type LayoutEngineShape, type LayoutRule, type LinkedTextBoxChain, type LinkedTextBoxChainMember, type LinkedTextBoxSegmentMap, MIN_ELEMENT_SIZE, MOTION_PATH_PRESETS, MediaBookmark, MediaBuilder, MediaGraphicFrameXmlFactory, type MediaGraphicFrameXmlFactoryInit, type MediaOptions, MediaPptxElement, MergeOptions, type MergeShapeOperation, type Model3DTransform, type Ole2DirectoryEntry, type Ole2File, Ole2ParseError, OleObjectType, type OoxmlConformanceClass, P14_GUIDE_URI, P15_GUIDE_URI, PANOSE_FAMILY_MAP, PANOSE_MONOSPACE_PROPORTION, PANOSE_SANS_SERIF_STYLES, PANOSE_WEIGHT_MAP, POWERPOINT_PRESENCE_KEY, PRESET_COLOR_MAP, PRESET_SHAPE_CATEGORY_LABELS, PRESET_SHAPE_CLIP_PATHS, PRESET_SHAPE_DEFINITIONS, PRESET_TO_OOXML, type ParsedLayoutDef, type ParsedSignature, type ParsedTableStyle, ParsedTableStyleFill, ParsedTableStyleMap, type ParsedTableStylePart, ParsedTableStyleText, PictureXmlFactory, type PictureXmlFactoryInit, PlaceholderDefaults, type PlaceholderDefinition, PlaceholderTextLevelStyle, PptxAction, PptxActiveXControl, PptxAnimationPreset, PptxAnimationTrigger, PptxAnimationWriteService, PptxAppProperties, type PptxBuilderFactoryContext, PptxChart3DSurface, PptxChartAxisFormatting, PptxChartData, PptxChartDataLabel, PptxChartDataPoint, PptxChartDataTable, PptxChartErrBars, PptxChartLineStyle, PptxChartMarker, PptxChartSeries, PptxChartShapeProps, PptxChartStyle, PptxChartTrendline, PptxChartType, PptxColorStyleCodec, type PptxColorStyleCodecContext, PptxComment, PptxCommentAuthor, type PptxCommentAuthorDescriptor, PptxCommentAuthorsXmlFactory, type PptxCommentAuthorsXmlFactoryInit, PptxCommentXmlFactoryProvider, PptxCompatibilityService, PptxCompatibilityWarning, PptxConnectorParser, type PptxConnectorParserContext, PptxContentTypesBuilder, type PptxContentTypesCommentBuildInput, type PptxContentTypesSlideMediaBuildInput, PptxCoreProperties, PptxCustomProperty, PptxCustomShow, PptxCustomXmlPart, PptxCustomerData, PptxData, PptxDocumentPropertiesUpdater, PptxDrawingGuide, PptxEditorAnimationService, type PptxEditorAnimationServiceOptions, PptxElement, PptxElementAnimation, PptxElementTransformUpdater, PptxElementWithShapeStyle, PptxElementWithText, PptxElementXmlBuilder, type PptxElementXmlBuilderOptions, PptxEmbeddedFont, PptxEmbeddedWorkbookData, PptxExportOptions, PptxExternalData, PptxGraphicFrameParser, type PptxGraphicFrameParserContext, PptxHandler, type PptxHandlerLoadOptions, PptxHandlerRuntime, PptxHandlerRuntimeFactory, type PptxHandlerSaveOptions, PptxHandoutMaster, PptxHeaderFooter, PptxImageEffects, PptxImageLikeElement, PptxKinsoku, PptxLayoutOption, PptxLoadDataBuilder, PptxMediaDataParser, type PptxMediaDataParserContext, type PptxMediaTimingEntry, type PptxMediaTimingMap, PptxModifyVerifier, PptxNativeAnimation, PptxNativeAnimationService, PptxNotesMaster, PptxPhotoAlbum, PptxPresentationProperties, type PptxPresentationSaveBuildInput, PptxPresentationSaveBuilder, type PptxPresentationSaveBuilderOptions, PptxPresentationSlidesReconciler, type PptxPresentationSlidesReconcilerInput, type PptxRuntimeDependencyBundle, PptxRuntimeDependencyFactory, type PptxRuntimeDependencyFactoryInput, type PptxSaveConstants, PptxSaveConstantsFactory, type PptxSaveFormat, type PptxSaveMediaKind, PptxSaveState as PptxSaveSession, PptxSaveStateBuilder as PptxSaveSessionBuilder, PptxSaveState, PptxSaveStateBuilder, PptxSection, PptxShapeIdValidator, PptxShapeLocks, PptxShapeStyleExtractor, type PptxShapeStyleExtractorContext, PptxSlide, PptxSlideBackgroundBuilder, type PptxSlideBackgroundBuilderInput, PptxSlideBuilder, PptxSlideCommentPartWriter, type PptxSlideCommentPartWriterInput, type PptxSlideCommentRelationshipInfo, PptxSlideCommentsXmlFactory, type PptxSlideCommentsXmlFactoryInit, PptxSlideElementsBuilder, type PptxSlideLoaderParams, PptxSlideLoaderService, type PptxSlideLoaderThemeOverride, PptxSlideMaster, PptxSlideMediaRelationshipBuilder, PptxSlideNotesBuilder, PptxSlideNotesPartUpdater, type PptxSlideNotesPartUpdaterInput, type PptxSlideNotesResult, PptxSlideRelationshipRegistry, type PptxSlideRelationshipRegistryOptions, PptxSlideTransition, PptxSlideTransitionService, type PptxSlideTransitionServiceOptions, PptxSmartArtChrome, PptxSmartArtColorTransform, PptxSmartArtData, PptxSmartArtDrawingShape, PptxSmartArtNode, PptxSmartArtQuickStyle, PptxTableCellStyle, PptxTableData, PptxTableDataParser, type PptxTableDataParserContext, PptxTagCollection, PptxTemplateBackgroundService, type PptxTemplateBackgroundState, PptxTheme, PptxThemeColorScheme, PptxThemeEffectStyle, PptxThemeFillStyle, PptxThemeFontScheme, PptxThemeFormatScheme, PptxThemeLineStyle, PptxThemeOption, type PptxThemePreset, PptxTransitionType, PptxViewProperties, PptxXmlBuilder, PptxXmlFactoryProvider, PptxXmlLookupService, Presentation, PresentationBuilder, type PresentationBuilderResult, type PresentationDiff, type PresentationOptions, type PresentationThemeInput, type PresetShapeCategory, type PresetShapeDefinition, type PropertyChange, type ReflowedNodePosition, type RepairResult, SHAPE_TREE_ELEMENT_TAGS, STROKE_DASH_OPTIONS, SWITCHABLE_LAYOUT_TYPES, SYSTEM_COLOR_MAP, type ShadowInput, ShapeBuilder, type ShapeOptions, ShapePptxElement, ShapeStyle, type SignatureCertificateInfo, type SignatureDetectionResult, type SignatureReference, type SignatureStatus, SlideBuilder, type SlideDiff, SlideSizes, SmartArtLayoutType, SmartArtPptxElement, type StandardEncryptionInfo, StrokeDashType, type StrokeInput, type SupportedShapeType, THEME_PRESETS, TableBuilder, type TableCellInput, type TableInput, type TableOptions, TablePptxElement, type TableRowInput, type TableStyleFlags, type TableStylePartBorder, type TableStylePartBorders, type TableStylePartFill, type TableStylePartText, type TemplateData, TextBuilder, type TextOptions, TextPptxElement, TextSegment, type TextSegmentInput, TextShapeXmlFactory, type TextShapeXmlFactoryInit, TextStyle, type TextStyleInput, type ThemePreset, type ThemePresetName, ThemePresets, type TransitionInput, VML_SHAPE_TAGS, type ValidationIssue, type ValidationResult, type Vec2, XmlObject, ZoomPptxElement, addChartCategory, addChartSeries, addSection, addSmartArtNode, addSmartArtNodeAsChild, applyDrawingColorTransforms, applyKinsokuToXml, applyTemplate, applyThemeToData, areNamespacesSupported, buildCalloutLeaderLineSvgPath, buildClrMapOverrideXml, buildFontFamilyString, buildGuideListExtension, buildLinkedTextBoxChains, buildOle2, buildSingleEffectNode, buildThemeColorMap, catmullRomToBezier, chartDataAddCategory, chartDataAddSeries, chartDataChangeType, chartDataRemoveCategory, chartDataRemoveSeries, chartDataUpdatePoint, checkBlankSlide, checkComplexTables, checkDuplicateTitles, checkLowContrast, checkMissingAltText, checkMissingSlideTitle, checkPresentation, clampUnitInterval, classifyPanose, cloneElement, cloneShapeStyle, cloneSlide, cloneTemplateElementsBySlideId, cloneTextStyle, cloneXmlObject, cm, cmToEmu, colorWithOpacity, combineShapes, computeContrastRatio, computeCycleLayout, computeHierarchyLayout, computeLinearLayout, computeMatrixLayout, computePyramidLayout, computeSmartArtLayout, computeSnakeLayout, convertXmlToStrict, createArrayBufferCopy, createBuiltinVariables, createChartElement, createConnectorElement, createDefaultPptxHandlerRuntime, createEditorId, createFreeformElement, createGroupElement, createImageElement, createLayout, createLayouts, createMediaElement, createModifyVerifier, createPptxSaveConstants, createShapeElement, createTableElement, createTemplateConnectorRawXml, createTemplateShapeRawXml, createTextElement, createUniformTextSegments, decomposeSmartArt, decryptPptx, demoteSmartArtNode, deobfuscateFont, detectDigitalSignatures, detectFileFormat, detectFontFormat, detectOleObjectType, detectStrictConformance, diffPresentations, diffSlides, distributeSegmentsAcrossChain, douglasPeucker, duplicateElement, duplicateSlide, elementActionToPptxAction, elementHasAction, emuToPixels, encryptPptx, ensureArrayValue, estimateTextBoxCapacity, evaluateGeometryPaths, evaluateGuides, extractGuidFromPartName, extractModel3DTransform, fetchUrlToBytes, findCustomShow, findLayoutByName, findLayoutByType, findPlaceholders, formatCommentTimestamp, fragmentShapes, generateFontGuid, generateLayoutXml, getAnimationPresetInfo, getCalloutLeaderLineGeometry, getCalloutTier, getCalloutViewBoxBounds, getCommentMarkerPosition, getConnectorAdjustment, getConnectorPathGeometry, getCssBorderDashStyle, getCustomShowNames, getCustomShowPositionLabel, getElementLabel, getElementTextContent, getElementTransform, getImageMaskStyle, getLinkedTextBoxSegments, getOleObjectTypeLabel, getPanoseWeight, getPresetShapeClipPath, getPresetsByCategory, getRoundRectRadiusPx, getSectionForSlide, getSectionSlideRange, getShapeClipPath, getShapeType, getSignaturePathsToStrip, getSubstituteFontFamily, getSubstituteFonts, getSupportedNamespaces, getSvgStrokeDasharray, getTextCompensationTransform, getThemePreset, getZoomElements, getZoomTargetSlideIndexes, guidToKey, guideEmuToPx, guidePxToEmu, hasDirectSubstitution, hasNonTrivialOverride, hasShapeProperties, hasTextProperties, hexToRgbChannels, hslToRgb, inches, inchesToEmu, inferOleExtensionFromTarget, interpolateShapeGeometry, intersectPolygons, intersectShapes, intersectSvgPaths, isCalloutShape, isConnectorElement, isEditableTextElement, isImageLikeElement, isInkElement, isNamespaceSupported, isShapeElement, isStrictNamespaceUri, isSummaryZoomSlide, isSwitchableLayoutType, isTemplateElement, isTextElement, isTransitionalNamespaceUri, isZoomElement$1 as isZoomElement, isZoomElement as isZoomElementUtil, layoutEngineShapesToDrawingShapes, mailMerge, mergeShapes, mergeStyleParts, mergeThemeColorOverride, mm, moveSlidesToSection, navigateCustomShow, normalizeHexColor, normalizeNamespaceUri, normalizeStrictXml, normalizeStrokeDashType, obfuscateFont, ooxmlArcToSvg, parseActiveXControlsFromSlide, parseAdjustmentValues, parseBodyPrBooleanAttrs, parseChart3DSurfaces, parseChartAxes, parseCondition, parseConditionList, parseCxChartSeries, parseDataTable, parseDataUrlToBytes, parseDrawingColor, parseDrawingColorChoice, parseDrawingColorOpacity, parseDrawingFraction, parseDrawingHueDegrees, parseDrawingPercent, parseEmbeddedXlsx, parseGuideDefinitions, parseHexColor, parseKinsoku, parseLayoutDefinition, parseLineStyle, parseMarker, parseOle2, parsePanoseBytes, parsePanoseString, parsePresentationDrawingGuides, parseSeriesDataLabels, parseSeriesDataPoints, parseSeriesErrBars, parseSeriesExplosion, parseSeriesTrendlines, parseShapeProps, parseSignatureXml, parseSlideDrawingGuides, parseSvgPath, parseVmlElement, parseVmlElements, pixelsToEmu, polygonsToSvgPath, pptxActionToElementAction, promoteSmartArtNode, pt, reResolveSlideColors, readFileAsDataUrl, reflowSmartArtLayout, relativeLuminance, relayoutSmartArt, removeChartCategory, removeChartSeries, removeSection, removeSmartArtNode, reorderSections, reorderSmartArtNode, reorderSmartArtNodeToIndex, repairPptx, replaceShapeGeometry, replaceWithCustomGeometry, resetCloneIdCounter, resetDecomposeCounter, resetIdCounter, resetSectionIdCounter, resetSmartArtEditCounter, resolveCoordinate, resolveCustomShowSlideIndices, resolveModel3DMimeType, resolveTableCellStyle, rgbToHsl, selectAlternateContentBranch, serializeCondition, serializeConditionList, serializeSvgPath, setChartCategories, setChartGrouping, setChartTitle, setChartType, shouldRenderFallbackLabel, shouldReturnToZoomSlide, subtractPolygons, subtractShapes, subtractSvgPaths, svgPathToPolygons, switchSmartArtLayout, toHex, toStrictNamespaceUri, unionPolygons, unionShapes, unionSvgPaths, unwrapAlternateContent, updateChartDataPoint, updateChartSeriesValues, updateSmartArtNodeText, validatePptx, verifyModifyPassword, verifyPassword, verifySignatureDigests, writeBodyPrBooleanAttrs };
11837
+ export { ALL_ANIMATION_PRESETS, type AccessibilityCheckOptions, type AccessibilityIssue, type AccessibilityIssueSeverity, type AccessibilityIssueType, type AlternateContentBlock, type AnimationCategory, AnimationCondition, type AnimationInput, type AnimationPresetInfo, BLIP_FILL_ORDER, type BackgroundInput, BulletInfo, COLOR_MAP_ALIAS_KEYS, CONNECTOR_ARROW_OPTIONS, CONNECTOR_GEOMETRY_OPTIONS, type CalloutLeaderLineGeometry, type CalloutPoint, ChartBuilder, type ChartInput, type ChartOptions, ChartPptxElement, type ChartSeriesInput, type ColorMapAliasKey, type CompatibilityWarningInput, ConnectorArrowType, ConnectorBuilder, type ConnectorGeometryType, type ConnectorOptions, type ConnectorPathGeometry, ConnectorPptxElement, ConnectorXmlFactory, type ConnectorXmlFactoryInit, type ContainerBounds, CustomGeometryPath, CustomGeometryPoint, CustomGeometryRawData, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, DEFAULT_COLOR_MAP, DEFAULT_FILL_COLOR, DEFAULT_FONT_FAMILY, DEFAULT_MAX_UNCOMPRESSED_BYTES, DEFAULT_SCHEME_COLOR_MAP, DEFAULT_STROKE_COLOR, DEFAULT_TEXT_COLOR, DEFAULT_TEXT_FONT_SIZE, DataIntegrityError, EFFECT_LST_ORDER, EMPHASIS_PRESETS, EMU_PER_INCH, EMU_PER_PIXEL, EMU_PER_POINT, EMU_PER_PX, ENTRANCE_PRESETS, EXIT_PRESETS, ElementAction, type ElementDiff, type ElementPosition, EncryptedFileError, type EncryptionAlgorithm, type EncryptionInfo, type EncryptionOptions, FONT_SUBSTITUTION_MAP, type FileFormatDetection, type FillInput, FindResult, FreeformPathBuilder, GeometryAdjustmentHandle, type GeometryContext, type GeometryGuide, GroupBuilder, type GroupOptions, GroupPptxElement, type HslColor, type IConnectorXmlFactory, type ICoreXmlElementFactory, type IFactory, type IMediaGraphicFrameXmlFactory, type IPictureXmlFactory, type IPptxAnimationWriteService, type IPptxColorStyleCodec, type IPptxCommentAuthorsXmlFactory, type IPptxCommentXmlFactoryProvider, type IPptxCompatibilityService, type IPptxConnectorParser, type IPptxContentTypesBuilder, type IPptxEditorAnimationService, type IPptxElementTransformUpdater, type IPptxGraphicFrameParser, type IPptxHandlerRuntime, type IPptxHandlerRuntimeFactory, type IPptxMediaDataParser, type IPptxNativeAnimationService, type IPptxPresentationSaveBuilder, type IPptxPresentationSlidesReconciler, type IPptxRuntimeDependencyFactory, type IPptxShapeIdValidator, type IPptxShapeStyleExtractor, type IPptxSlideBackgroundBuilder, type IPptxSlideCommentPartWriter, type IPptxSlideCommentsXmlFactory, type IPptxSlideLoaderService, type IPptxSlideMediaRelationshipBuilder, type IPptxSlideNotesPartUpdater, type IPptxSlideRelationshipRegistry, type IPptxSlideTransitionService, type IPptxTableDataParser, type IPptxTemplateBackgroundService, type IPptxXmlBuilder, type IPptxXmlFactoryProvider, type IPptxXmlLookupService, type ITextShapeXmlFactory, type IXmlElementFactory, ImageBuilder, type ImageMaskStyle, type ImageOptions, ImagePptxElement, IncorrectPasswordError, InkPptxElement, type LayoutAlgorithmType, type LayoutConstraints, type LayoutCreationResult, type LayoutDefinition, type LayoutEngineShape, type LayoutRule, type LinkedTextBoxChain, type LinkedTextBoxChainMember, type LinkedTextBoxSegmentMap, MAX_ZIP_ENTRY_COUNT, MIN_ELEMENT_SIZE, MOTION_PATH_PRESETS, MediaBookmark, MediaBuilder, MediaGraphicFrameXmlFactory, type MediaGraphicFrameXmlFactoryInit, type MediaOptions, MediaPptxElement, MergeOptions, type MergeShapeOperation, type Model3DTransform, type Ole2DirectoryEntry, type Ole2File, Ole2ParseError, OleObjectType, OlePptxElement, type OoxmlConformanceClass, P14_GUIDE_URI, P15_GUIDE_URI, PANOSE_FAMILY_MAP, PANOSE_MONOSPACE_PROPORTION, PANOSE_SANS_SERIF_STYLES, PANOSE_WEIGHT_MAP, POWERPOINT_PRESENCE_KEY, PRESET_COLOR_MAP, PRESET_SHAPE_CATEGORY_LABELS, PRESET_SHAPE_CLIP_PATHS, PRESET_SHAPE_DEFINITIONS, PRESET_TO_OOXML, type ParsedLayoutDef, type ParsedSignature, type ParsedTableStyle, ParsedTableStyleFill, ParsedTableStyleMap, type ParsedTableStylePart, ParsedTableStyleText, PictureXmlFactory, type PictureXmlFactoryInit, PlaceholderDefaults, type PlaceholderDefinition, PlaceholderTextLevelStyle, PptxAction, PptxActiveXControl, PptxAnimationPreset, PptxAnimationTrigger, PptxAnimationWriteService, PptxAppProperties, type PptxBuilderFactoryContext, PptxChart3DSurface, PptxChartAxisFormatting, PptxChartData, PptxChartDataLabel, PptxChartDataPoint, PptxChartDataTable, PptxChartErrBars, PptxChartLineStyle, PptxChartMarker, PptxChartSeries, PptxChartShapeProps, PptxChartStyle, PptxChartTrendline, PptxChartType, PptxColorStyleCodec, type PptxColorStyleCodecContext, PptxComment, PptxCommentAuthor, type PptxCommentAuthorDescriptor, PptxCommentAuthorsXmlFactory, type PptxCommentAuthorsXmlFactoryInit, PptxCommentXmlFactoryProvider, PptxCompatibilityService, PptxCompatibilityWarning, PptxConnectorParser, type PptxConnectorParserContext, PptxContentTypesBuilder, type PptxContentTypesCommentBuildInput, type PptxContentTypesSlideMediaBuildInput, PptxCoreProperties, PptxCustomProperty, PptxCustomShow, PptxCustomXmlPart, PptxCustomerData, PptxData, PptxDocumentPropertiesUpdater, PptxDrawingGuide, PptxEditorAnimationService, type PptxEditorAnimationServiceOptions, PptxElement, PptxElementAnimation, PptxElementTransformUpdater, PptxElementWithShapeStyle, PptxElementWithText, PptxElementXmlBuilder, type PptxElementXmlBuilderOptions, PptxEmbeddedFont, PptxEmbeddedWorkbookData, PptxExportOptions, PptxExternalData, PptxGraphicFrameParser, type PptxGraphicFrameParserContext, PptxHandler, type PptxHandlerLoadOptions, PptxHandlerRuntime, PptxHandlerRuntimeFactory, type PptxHandlerSaveOptions, PptxHandoutMaster, PptxHeaderFooter, PptxImageEffects, PptxImageLikeElement, PptxKinsoku, PptxLayoutOption, PptxLoadDataBuilder, PptxMasterTextStyles, PptxMediaDataParser, type PptxMediaDataParserContext, type PptxMediaTimingEntry, type PptxMediaTimingMap, PptxModifyVerifier, PptxNativeAnimation, PptxNativeAnimationService, PptxNotesMaster, PptxPhotoAlbum, PptxPresentationProperties, type PptxPresentationSaveBuildInput, PptxPresentationSaveBuilder, type PptxPresentationSaveBuilderOptions, PptxPresentationSlidesReconciler, type PptxPresentationSlidesReconcilerInput, type PptxRuntimeDependencyBundle, PptxRuntimeDependencyFactory, type PptxRuntimeDependencyFactoryInput, type PptxSaveConstants, PptxSaveConstantsFactory, type PptxSaveFormat, type PptxSaveMediaKind, PptxSaveState as PptxSaveSession, PptxSaveStateBuilder as PptxSaveSessionBuilder, PptxSaveState, PptxSaveStateBuilder, PptxSection, PptxShapeIdValidator, PptxShapeLocks, PptxShapeStyleExtractor, type PptxShapeStyleExtractorContext, PptxSlide, PptxSlideBackgroundBuilder, type PptxSlideBackgroundBuilderInput, PptxSlideBuilder, PptxSlideCommentPartWriter, type PptxSlideCommentPartWriterInput, type PptxSlideCommentRelationshipInfo, PptxSlideCommentsXmlFactory, type PptxSlideCommentsXmlFactoryInit, PptxSlideElementsBuilder, type PptxSlideLoaderParams, PptxSlideLoaderService, type PptxSlideLoaderThemeOverride, PptxSlideMaster, PptxSlideMediaRelationshipBuilder, PptxSlideNotesBuilder, PptxSlideNotesPartUpdater, type PptxSlideNotesPartUpdaterInput, type PptxSlideNotesResult, PptxSlideRelationshipRegistry, type PptxSlideRelationshipRegistryOptions, PptxSlideTransition, PptxSlideTransitionService, type PptxSlideTransitionServiceOptions, PptxSmartArtChrome, PptxSmartArtColorTransform, PptxSmartArtData, PptxSmartArtDrawingShape, PptxSmartArtNode, PptxSmartArtQuickStyle, PptxTableCellStyle, PptxTableData, PptxTableDataParser, type PptxTableDataParserContext, PptxTagCollection, PptxTemplateBackgroundService, type PptxTemplateBackgroundState, PptxTextStyleLevels, PptxTheme, PptxThemeColorScheme, PptxThemeEffectStyle, PptxThemeFillStyle, PptxThemeFontScheme, PptxThemeFormatScheme, PptxThemeLineStyle, PptxThemeObjectDefaults, PptxThemeOption, type PptxThemePreset, PptxTransitionType, PptxViewProperties, PptxXmlBuilder, PptxXmlFactoryProvider, PptxXmlLookupService, Presentation, PresentationBuilder, type PresentationBuilderResult, type PresentationDiff, type PresentationOptions, type PresentationThemeInput, type PresetShapeCategory, type PresetShapeDefinition, type PropertyChange, type ReflowedNodePosition, type RepairResult, SHAPE_TREE_ELEMENT_TAGS, SP_PR_ORDER, STROKE_DASH_OPTIONS, SWITCHABLE_LAYOUT_TYPES, SYSTEM_COLOR_MAP, type ShadowInput, ShapeBuilder, type ShapeOptions, ShapePptxElement, ShapeStyle, type SignatureCertificateInfo, type SignatureDetectionResult, type SignatureReference, type SignatureStatus, SlideBuilder, type SlideDiff, SlideSizes, SmartArtLayoutType, SmartArtPptxElement, type StandardEncryptionInfo, StrokeDashType, type StrokeInput, type SupportedShapeType, TC_PR_BORDERS_ORDER, THEME_PRESETS, TableBuilder, type TableCellInput, type TableInput, type TableOptions, TablePptxElement, type TableRowInput, type TableStyleFlags, type TableStylePartBorder, type TableStylePartBorders, type TableStylePartFill, type TableStylePartText, type TemplateData, TextBuilder, type TextOptions, TextPptxElement, TextSegment, type TextSegmentInput, TextShapeXmlFactory, type TextShapeXmlFactoryInit, TextStyle, type TextStyleInput, type ThemePreset, type ThemePresetName, ThemePresets, type TransitionInput, VML_SHAPE_TAGS, type ValidationIssue, type ValidationResult, type Vec2, XmlObject, ZipBombError, ZoomPptxElement, addChartCategory, addChartSeries, addSection, addSmartArtNode, addSmartArtNodeAsChild, applyDrawingColorTransforms, applyKinsokuToXml, applyTemplate, applyThemeToData, areNamespacesSupported, buildCalloutLeaderLineSvgPath, buildClrMapOverrideXml, buildFontFamilyString, buildGuideListExtension, buildLinkedTextBoxChains, buildOle2, buildSingleEffectNode, buildSrgbColorChoice, buildThemeColorMap, catmullRomToBezier, chartDataAddCategory, chartDataAddSeries, chartDataChangeType, chartDataRemoveCategory, chartDataRemoveSeries, chartDataUpdatePoint, checkBlankSlide, checkComplexTables, checkDuplicateTitles, checkLowContrast, checkMissingAltText, checkMissingSlideTitle, checkPresentation, clampUnitInterval, classifyPanose, cloneElement, cloneShapeStyle, cloneSlide, cloneTemplateElementsBySlideId, cloneTextStyle, cloneXmlObject, cm, cmToEmu, colorWithOpacity, colorsEqual, combineShapes, computeContrastRatio, computeCycleLayout, computeHierarchyLayout, computeLinearLayout, computeMatrixLayout, computePyramidLayout, computeSmartArtLayout, computeSnakeLayout, convertXmlToStrict, createArrayBufferCopy, createBuiltinVariables, createChartElement, createConnectorElement, createDefaultPptxHandlerRuntime, createEditorId, createFreeformElement, createGroupElement, createImageElement, createLayout, createLayouts, createMediaElement, createModifyVerifier, createPptxSaveConstants, createShapeElement, createTableElement, createTemplateConnectorRawXml, createTemplateShapeRawXml, createTextElement, createUniformTextSegments, decomposeSmartArt, decryptPptx, demoteSmartArtNode, deobfuscateFont, detectDigitalSignatures, detectFileFormat, detectFontFormat, detectOleObjectType, detectStrictConformance, diffPresentations, diffSlides, distributeSegmentsAcrossChain, douglasPeucker, duplicateElement, duplicateSlide, elementActionToPptxAction, elementHasAction, emuToPixels, encryptPptx, ensureArrayValue, estimateTextBoxCapacity, evaluateGeometryPaths, evaluateGuides, extractColorChoiceXml, extractGuidFromPartName, extractModel3DTransform, fetchUrlToBytes, findCustomShow, findLayoutByName, findLayoutByType, findPlaceholders, formatCommentTimestamp, fragmentShapes, generateFontGuid, generateLayoutXml, getAnimationPresetInfo, getCalloutLeaderLineGeometry, getCalloutTier, getCalloutViewBoxBounds, getCommentMarkerPosition, getConnectorAdjustment, getConnectorPathGeometry, getCssBorderDashStyle, getCustomShowNames, getCustomShowPositionLabel, getElementLabel, getElementTextContent, getElementTransform, getImageMaskStyle, getLinkedTextBoxSegments, getOleObjectTypeLabel, getPanoseWeight, getPresetShapeClipPath, getPresetsByCategory, getRoundRectRadiusPx, getSectionForSlide, getSectionSlideRange, getShapeClipPath, getShapeType, getSignaturePathsToStrip, getSubstituteFontFamily, getSubstituteFonts, getSupportedNamespaces, getSvgStrokeDasharray, getTextCompensationTransform, getThemePreset, getZoomElements, getZoomTargetSlideIndexes, guidToKey, guideEmuToPx, guidePxToEmu, hasDirectSubstitution, hasNonTrivialOverride, hasShapeProperties, hasTextProperties, hexToRgbChannels, hslToRgb, inches, inchesToEmu, inferOleExtensionFromTarget, interpolateShapeGeometry, intersectPolygons, intersectShapes, intersectSvgPaths, isCalloutShape, isConnectorElement, isEditableTextElement, isImageLikeElement, isInkElement, isNamespaceSupported, isShapeElement, isStrictNamespaceUri, isSummaryZoomSlide, isSwitchableLayoutType, isTemplateElement, isTextElement, isTransitionalNamespaceUri, isZoomElement$1 as isZoomElement, isZoomElement as isZoomElementUtil, layoutEngineShapesToDrawingShapes, mailMerge, mergeShapes, mergeStyleParts, mergeThemeColorOverride, mm, moveSlidesToSection, navigateCustomShow, normalizeHexColor, normalizeNamespaceUri, normalizeStrictXml, normalizeStrokeDashType, obfuscateFont, ooxmlArcToSvg, parseActiveXControlsFromSlide, parseAdjustmentValues, parseBodyPrBooleanAttrs, parseChart3DSurfaces, parseChartAxes, parseCondition, parseConditionList, parseCxChartSeries, parseDataTable, parseDataUrlToBytes, parseDrawingColor, parseDrawingColorChoice, parseDrawingColorOpacity, parseDrawingFraction, parseDrawingHueDegrees, parseDrawingPercent, parseEmbeddedXlsx, parseGuideDefinitions, parseHexColor, parseKinsoku, parseLayoutDefinition, parseLineStyle, parseMarker, parseOle2, parsePanoseBytes, parsePanoseString, parsePresentationDrawingGuides, parseSeriesDataLabels, parseSeriesDataPoints, parseSeriesErrBars, parseSeriesExplosion, parseSeriesTrendlines, parseShapeProps, parseSignatureXml, parseSlideDrawingGuides, parseSvgPath, parseVmlElement, parseVmlElements, pixelsToEmu, polygonsToSvgPath, pptxActionToElementAction, promoteSmartArtNode, pt, reResolveSlideColors, readFileAsDataUrl, reflowSmartArtLayout, relativeLuminance, relayoutSmartArt, removeChartCategory, removeChartSeries, removeSection, removeSmartArtNode, reorderObjectKeys, reorderSections, reorderSmartArtNode, reorderSmartArtNodeToIndex, repairPptx, replaceShapeGeometry, replaceWithCustomGeometry, resetCloneIdCounter, resetDecomposeCounter, resetIdCounter, resetSectionIdCounter, resetSmartArtEditCounter, resolveCoordinate, resolveCustomShowSlideIndices, resolveModel3DMimeType, resolveTableCellStyle, rgbToHsl, selectAlternateContentBranch, serializeColorChoice, serializeCondition, serializeConditionList, serializeSvgPath, setChartCategories, setChartGrouping, setChartTitle, setChartType, shouldRenderFallbackLabel, shouldReturnToZoomSlide, subtractPolygons, subtractShapes, subtractSvgPaths, svgPathToPolygons, switchSmartArtLayout, toHex, toStrictNamespaceUri, unionPolygons, unionShapes, unionSvgPaths, unwrapAlternateContent, updateChartDataPoint, updateChartSeriesValues, updateSmartArtNodeText, validatePptx, verifyModifyPassword, verifyPassword, verifySignatureDigests, writeBodyPrBooleanAttrs };