pptx-react-viewer 2.11.0 → 2.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/{AiChatPanel-EX2TBRJM.mjs → AiChatPanel-CS4CONUO.mjs} +4 -4
  3. package/dist/AiChatPanel-CS4CONUO.mjs.br +0 -0
  4. package/dist/AiChatPanel-CS4CONUO.mjs.gz +0 -0
  5. package/dist/{AiChatPanel-PJPSDMN4.js → AiChatPanel-JIXSOZXN.js} +23 -23
  6. package/dist/AiChatPanel-JIXSOZXN.js.br +0 -0
  7. package/dist/AiChatPanel-JIXSOZXN.js.gz +0 -0
  8. package/dist/{Model3DScene-UCBPTEAY.js → Model3DScene-5KMJ4JL6.js} +2 -2
  9. package/dist/Model3DScene-5KMJ4JL6.js.br +0 -0
  10. package/dist/Model3DScene-5KMJ4JL6.js.gz +0 -0
  11. package/dist/{Model3DScene-TTQFV7OS.mjs → Model3DScene-RWFPSN6B.mjs} +1 -1
  12. package/dist/Model3DScene-RWFPSN6B.mjs.br +0 -0
  13. package/dist/Model3DScene-RWFPSN6B.mjs.gz +0 -0
  14. package/dist/{SurfaceChart3DScene-5SZCRHZI.mjs → SurfaceChart3DScene-2GZQM3LN.mjs} +1 -1
  15. package/dist/{SurfaceChart3DScene-5SZCRHZI.mjs.br → SurfaceChart3DScene-2GZQM3LN.mjs.br} +0 -0
  16. package/dist/SurfaceChart3DScene-2GZQM3LN.mjs.gz +0 -0
  17. package/dist/{SurfaceChart3DScene-ADKCYYOQ.js → SurfaceChart3DScene-BIOKIETC.js} +2 -2
  18. package/dist/SurfaceChart3DScene-BIOKIETC.js.br +0 -0
  19. package/dist/SurfaceChart3DScene-BIOKIETC.js.gz +0 -0
  20. package/dist/{chunk-MM5RMRSP.js → chunk-2VUHJNWM.js} +243 -284
  21. package/dist/chunk-2VUHJNWM.js.br +0 -0
  22. package/dist/chunk-2VUHJNWM.js.gz +0 -0
  23. package/dist/{chunk-N6IHR6PS.js → chunk-3GNSGGY2.js} +377 -2
  24. package/dist/chunk-3GNSGGY2.js.br +0 -0
  25. package/dist/chunk-3GNSGGY2.js.gz +0 -0
  26. package/dist/{chunk-HK2UERUX.mjs → chunk-AOED5MFM.mjs} +45 -64
  27. package/dist/chunk-AOED5MFM.mjs.br +0 -0
  28. package/dist/chunk-AOED5MFM.mjs.gz +0 -0
  29. package/dist/{chunk-L2CM5EUD.mjs → chunk-BJQSHVYH.mjs} +220 -156
  30. package/dist/chunk-BJQSHVYH.mjs.br +0 -0
  31. package/dist/chunk-BJQSHVYH.mjs.gz +0 -0
  32. package/dist/{chunk-RJEY2KZH.mjs → chunk-CEUHGUZ4.mjs} +5 -46
  33. package/dist/chunk-CEUHGUZ4.mjs.br +0 -0
  34. package/dist/chunk-CEUHGUZ4.mjs.gz +0 -0
  35. package/dist/{chunk-53NXKDMZ.mjs → chunk-ECDKYPQ2.mjs} +377 -2
  36. package/dist/chunk-ECDKYPQ2.mjs.br +0 -0
  37. package/dist/chunk-ECDKYPQ2.mjs.gz +0 -0
  38. package/dist/{chunk-UZVRM6LD.mjs → chunk-EJRHYYKE.mjs} +1 -1
  39. package/dist/chunk-EJRHYYKE.mjs.br +0 -0
  40. package/dist/chunk-EJRHYYKE.mjs.gz +0 -0
  41. package/dist/{chunk-HMQVOPQH.js → chunk-PJUQQF3I.js} +538 -42
  42. package/dist/chunk-PJUQQF3I.js.br +0 -0
  43. package/dist/chunk-PJUQQF3I.js.gz +0 -0
  44. package/dist/{chunk-4J7SPY64.js → chunk-PTGTFXPU.js} +366 -385
  45. package/dist/chunk-PTGTFXPU.js.br +0 -0
  46. package/dist/chunk-PTGTFXPU.js.gz +0 -0
  47. package/dist/{chunk-C2UWTH42.mjs → chunk-QGHC65C4.mjs} +518 -43
  48. package/dist/chunk-QGHC65C4.mjs.br +0 -0
  49. package/dist/chunk-QGHC65C4.mjs.gz +0 -0
  50. package/dist/{chunk-E367QIKR.js → chunk-SP7U34QM.js} +1186 -1122
  51. package/dist/chunk-SP7U34QM.js.br +0 -0
  52. package/dist/chunk-SP7U34QM.js.gz +0 -0
  53. package/dist/{chunk-VNP627O5.js → chunk-ZIXSSQAZ.js} +3 -3
  54. package/dist/chunk-ZIXSSQAZ.js.br +0 -0
  55. package/dist/chunk-ZIXSSQAZ.js.gz +0 -0
  56. package/dist/i18n.js +4 -4
  57. package/dist/i18n.js.br +0 -0
  58. package/dist/i18n.js.gz +0 -0
  59. package/dist/i18n.mjs +1 -1
  60. package/dist/i18n.mjs.br +0 -0
  61. package/dist/i18n.mjs.gz +0 -0
  62. package/dist/index.d.ts +4 -0
  63. package/dist/index.js +36 -36
  64. package/dist/index.js.br +0 -0
  65. package/dist/index.js.gz +0 -0
  66. package/dist/index.mjs +6 -6
  67. package/dist/index.mjs.br +0 -0
  68. package/dist/index.mjs.gz +0 -0
  69. package/dist/internals.d.ts +12 -1
  70. package/dist/internals.d.ts.map +1 -1
  71. package/dist/internals.js +79 -79
  72. package/dist/internals.js.br +0 -0
  73. package/dist/internals.js.gz +0 -0
  74. package/dist/internals.mjs +4 -4
  75. package/dist/internals.mjs.br +0 -0
  76. package/dist/internals.mjs.gz +0 -0
  77. package/dist/pptx-viewer.css +1 -1
  78. package/dist/pptx-viewer.css.br +0 -0
  79. package/dist/pptx-viewer.css.gz +0 -0
  80. package/dist/{useViewerBuildingBlocks-Rqxm0pRS.d.ts → useViewerBuildingBlocks-YvCYsxa3.d.ts} +5 -1
  81. package/dist/useViewerBuildingBlocks-YvCYsxa3.d.ts.map +1 -0
  82. package/dist/viewer/index.js +22 -22
  83. package/dist/viewer/index.js.br +0 -0
  84. package/dist/viewer/index.js.gz +0 -0
  85. package/dist/viewer/index.mjs +6 -6
  86. package/dist/viewer/index.mjs.br +0 -0
  87. package/dist/viewer/index.mjs.gz +0 -0
  88. package/package.json +1 -1
  89. package/dist/AiChatPanel-EX2TBRJM.mjs.br +0 -0
  90. package/dist/AiChatPanel-EX2TBRJM.mjs.gz +0 -0
  91. package/dist/AiChatPanel-PJPSDMN4.js.br +0 -0
  92. package/dist/AiChatPanel-PJPSDMN4.js.gz +0 -0
  93. package/dist/Model3DScene-TTQFV7OS.mjs.br +0 -0
  94. package/dist/Model3DScene-TTQFV7OS.mjs.gz +0 -0
  95. package/dist/Model3DScene-UCBPTEAY.js.br +0 -0
  96. package/dist/Model3DScene-UCBPTEAY.js.gz +0 -0
  97. package/dist/SurfaceChart3DScene-5SZCRHZI.mjs.gz +0 -0
  98. package/dist/SurfaceChart3DScene-ADKCYYOQ.js.br +0 -0
  99. package/dist/SurfaceChart3DScene-ADKCYYOQ.js.gz +0 -0
  100. package/dist/chunk-4J7SPY64.js.br +0 -0
  101. package/dist/chunk-4J7SPY64.js.gz +0 -0
  102. package/dist/chunk-53NXKDMZ.mjs.br +0 -0
  103. package/dist/chunk-53NXKDMZ.mjs.gz +0 -0
  104. package/dist/chunk-C2UWTH42.mjs.br +0 -0
  105. package/dist/chunk-C2UWTH42.mjs.gz +0 -0
  106. package/dist/chunk-E367QIKR.js.br +0 -0
  107. package/dist/chunk-E367QIKR.js.gz +0 -0
  108. package/dist/chunk-HK2UERUX.mjs.br +0 -0
  109. package/dist/chunk-HK2UERUX.mjs.gz +0 -0
  110. package/dist/chunk-HMQVOPQH.js.br +0 -0
  111. package/dist/chunk-HMQVOPQH.js.gz +0 -0
  112. package/dist/chunk-L2CM5EUD.mjs.br +0 -0
  113. package/dist/chunk-L2CM5EUD.mjs.gz +0 -0
  114. package/dist/chunk-MM5RMRSP.js.br +0 -0
  115. package/dist/chunk-MM5RMRSP.js.gz +0 -0
  116. package/dist/chunk-N6IHR6PS.js.br +0 -0
  117. package/dist/chunk-N6IHR6PS.js.gz +0 -0
  118. package/dist/chunk-RJEY2KZH.mjs.br +0 -0
  119. package/dist/chunk-RJEY2KZH.mjs.gz +0 -0
  120. package/dist/chunk-UZVRM6LD.mjs.br +0 -0
  121. package/dist/chunk-UZVRM6LD.mjs.gz +0 -0
  122. package/dist/chunk-VNP627O5.js.br +0 -0
  123. package/dist/chunk-VNP627O5.js.gz +0 -0
  124. package/dist/useViewerBuildingBlocks-Rqxm0pRS.d.ts.map +0 -1
@@ -15931,6 +15931,15 @@ var MC_NAMESPACE_CAPABILITIES = {
15931
15931
  "hiddenFill",
15932
15932
  "hiddenLine"
15933
15933
  ]),
15934
+ // PowerPoint 2016+ writes the Morph transition as `<p159:morph @option>`,
15935
+ // either inside an `mc:Choice Requires="p159"` or in a `p:transition/p:extLst`
15936
+ // extension. Both forms are parsed (see `PptxSlideTransitionService`), so the
15937
+ // choice IS supported: without this entry every morph slide reported
15938
+ // `UNSUPPORTED_ALTERNATE_CONTENT_CHOICE`, which reads as "the transition was
15939
+ // dropped and the fallback fade was used" when in fact the morph plays.
15940
+ // `morph` alone is listed on purpose: any OTHER `p159:*` element still makes
15941
+ // the choice unsupported and falls back, which is the honest answer.
15942
+ p159: /* @__PURE__ */ new Set(["morph"]),
15934
15943
  a14: /* @__PURE__ */ new Set(["m", "hiddenFill", "hiddenLine", "imgEffect", "imgLayer"]),
15935
15944
  a16: /* @__PURE__ */ new Set(["svgBlip", "colId"]),
15936
15945
  asvg: /* @__PURE__ */ new Set(["svgBlip"]),
@@ -87161,6 +87170,97 @@ function resolveDataPointMarker(series, pointIndex) {
87161
87170
  fill: point?.spPr?.fillColor ?? series.marker?.spPr?.fillColor
87162
87171
  };
87163
87172
  }
87173
+ function schemaLabel(keys, token2, translate) {
87174
+ if (token2 === void 0) {
87175
+ return "";
87176
+ }
87177
+ const key = keys[token2];
87178
+ return key === void 0 ? token2 : translate(key);
87179
+ }
87180
+ var THEME_COLOR_SLOT_LABEL_KEYS = {
87181
+ dk1: "pptx.themeColor.dark1",
87182
+ lt1: "pptx.themeColor.light1",
87183
+ dk2: "pptx.themeColor.dark2",
87184
+ lt2: "pptx.themeColor.light2",
87185
+ accent1: "pptx.themeColor.accent1",
87186
+ accent2: "pptx.themeColor.accent2",
87187
+ accent3: "pptx.themeColor.accent3",
87188
+ accent4: "pptx.themeColor.accent4",
87189
+ accent5: "pptx.themeColor.accent5",
87190
+ accent6: "pptx.themeColor.accent6",
87191
+ hlink: "pptx.themeColor.hyperlink",
87192
+ folHlink: "pptx.themeColor.followedHyperlink"
87193
+ };
87194
+ var SMARTART_COLOR_SCHEME_LABEL_KEYS = {
87195
+ colorful1: "pptx.smartart.schemeColorful1",
87196
+ colorful2: "pptx.smartart.schemeColorful2",
87197
+ colorful3: "pptx.smartart.schemeColorful3",
87198
+ monochromatic1: "pptx.smartart.schemeMonochromatic1",
87199
+ monochromatic2: "pptx.smartart.schemeMonochromatic2"
87200
+ };
87201
+ var SMARTART_STYLE_LABEL_KEYS = {
87202
+ flat: "pptx.smartart.styleFlat",
87203
+ moderate: "pptx.smartart.styleModerate",
87204
+ intense: "pptx.smartart.styleIntense"
87205
+ };
87206
+ var FILL_PATTERN_LABEL_KEYS = {
87207
+ pct5: "pptx.fillPatterns.pct5",
87208
+ pct10: "pptx.fillPatterns.pct10",
87209
+ pct20: "pptx.fillPatterns.pct20",
87210
+ pct25: "pptx.fillPatterns.pct25",
87211
+ pct30: "pptx.fillPatterns.pct30",
87212
+ pct40: "pptx.fillPatterns.pct40",
87213
+ pct50: "pptx.fillPatterns.pct50",
87214
+ pct60: "pptx.fillPatterns.pct60",
87215
+ pct70: "pptx.fillPatterns.pct70",
87216
+ pct75: "pptx.fillPatterns.pct75",
87217
+ pct80: "pptx.fillPatterns.pct80",
87218
+ pct90: "pptx.fillPatterns.pct90",
87219
+ horz: "pptx.fillPatterns.horizontal",
87220
+ vert: "pptx.fillPatterns.vertical",
87221
+ ltHorz: "pptx.fillPatterns.lightHorizontal",
87222
+ ltVert: "pptx.fillPatterns.lightVertical",
87223
+ dkHorz: "pptx.fillPatterns.darkHorizontal",
87224
+ dkVert: "pptx.fillPatterns.darkVertical",
87225
+ narHorz: "pptx.fillPatterns.narrowHorizontal",
87226
+ narVert: "pptx.fillPatterns.narrowVertical",
87227
+ wdHorz: "pptx.fillPatterns.wideHorizontal",
87228
+ wdVert: "pptx.fillPatterns.wideVertical",
87229
+ dashHorz: "pptx.fillPatterns.dashedHorizontal",
87230
+ dashVert: "pptx.fillPatterns.dashedVertical",
87231
+ cross: "pptx.fillPatterns.cross",
87232
+ dnDiag: "pptx.fillPatterns.downDiagonal",
87233
+ upDiag: "pptx.fillPatterns.upDiagonal",
87234
+ ltDnDiag: "pptx.fillPatterns.lightDownDiagonal",
87235
+ ltUpDiag: "pptx.fillPatterns.lightUpDiagonal",
87236
+ dkDnDiag: "pptx.fillPatterns.darkDownDiagonal",
87237
+ dkUpDiag: "pptx.fillPatterns.darkUpDiagonal",
87238
+ wdDnDiag: "pptx.fillPatterns.wideDownDiagonal",
87239
+ wdUpDiag: "pptx.fillPatterns.wideUpDiagonal",
87240
+ dashDnDiag: "pptx.fillPatterns.dashedDownDiagonal",
87241
+ dashUpDiag: "pptx.fillPatterns.dashedUpDiagonal",
87242
+ diagCross: "pptx.fillPatterns.diagonalCross",
87243
+ smCheck: "pptx.fillPatterns.smallCheck",
87244
+ lgCheck: "pptx.fillPatterns.largeCheck",
87245
+ smGrid: "pptx.fillPatterns.smallGrid",
87246
+ lgGrid: "pptx.fillPatterns.largeGrid",
87247
+ dotGrid: "pptx.fillPatterns.dotGrid",
87248
+ smConfetti: "pptx.fillPatterns.smallConfetti",
87249
+ lgConfetti: "pptx.fillPatterns.largeConfetti",
87250
+ horzBrick: "pptx.fillPatterns.horizontalBrick",
87251
+ diagBrick: "pptx.fillPatterns.diagonalBrick",
87252
+ solidDmnd: "pptx.fillPatterns.solidDiamond",
87253
+ openDmnd: "pptx.fillPatterns.openDiamond",
87254
+ dotDmnd: "pptx.fillPatterns.dottedDiamond",
87255
+ plaid: "pptx.fillPatterns.plaid",
87256
+ sphere: "pptx.fillPatterns.sphere",
87257
+ weave: "pptx.fillPatterns.weave",
87258
+ divot: "pptx.fillPatterns.divot",
87259
+ shingle: "pptx.fillPatterns.shingle",
87260
+ wave: "pptx.fillPatterns.wave",
87261
+ trellis: "pptx.fillPatterns.trellis",
87262
+ zigZag: "pptx.fillPatterns.zigZag"
87263
+ };
87164
87264
  function addChartSeries(data) {
87165
87265
  return chartDataAddSeries(data, {
87166
87266
  name: `Series ${data.series.length + 1}`,
@@ -92981,6 +93081,28 @@ var DIRECTIONAL_PRESETS = /* @__PURE__ */ new Set([
92981
93081
  "floatIn",
92982
93082
  "peekIn"
92983
93083
  ]);
93084
+ function animationPresetLabelKey(preset) {
93085
+ return `pptx.animation.preset.${preset}`;
93086
+ }
93087
+ function animationCatalogPresetSlug(presetId) {
93088
+ return presetId.split(".").map((part, index) => index === 0 ? part : part.charAt(0).toUpperCase() + part.slice(1)).join("");
93089
+ }
93090
+ function animationCatalogPresetLabelKey(presetId) {
93091
+ return `pptx.animation.catalogPreset.${animationCatalogPresetSlug(presetId)}`;
93092
+ }
93093
+ function isAnimationCatalogPresetId(token2) {
93094
+ return token2.includes(".");
93095
+ }
93096
+ function animationEffectLabelKey(anim) {
93097
+ const token2 = anim.entrance ?? anim.emphasis ?? anim.exit;
93098
+ if (!token2 || token2 === "none") {
93099
+ return anim.motionPath ? "pptx.animation.motionPath.label" : "pptx.animation.animation";
93100
+ }
93101
+ return isAnimationCatalogPresetId(token2) ? animationCatalogPresetLabelKey(token2) : animationPresetLabelKey(token2);
93102
+ }
93103
+ function animationEffectLabel(anim, translate) {
93104
+ return translate(animationEffectLabelKey(anim));
93105
+ }
92984
93106
  var PRESET_ID_TO_EFFECT = {
92985
93107
  entr: {
92986
93108
  1: "appear",
@@ -97709,6 +97831,45 @@ function computeMarqueeHitIds(marquee, elements, minSize = MIN_ELEMENT_SIZE) {
97709
97831
  function mergeAdditiveSelection(baseSelectionIds, hitIds) {
97710
97832
  return Array.from(/* @__PURE__ */ new Set([...baseSelectionIds ?? [], ...hitIds]));
97711
97833
  }
97834
+ function getImageFitStyle(el) {
97835
+ const uncropped = {
97836
+ width: "100%",
97837
+ height: "100%",
97838
+ objectFit: "cover"
97839
+ };
97840
+ if (!isImageLikeElement(el)) {
97841
+ return uncropped;
97842
+ }
97843
+ const cropLeft = clampCropValue(el.cropLeft);
97844
+ const cropTop = clampCropValue(el.cropTop);
97845
+ const cropRight = clampCropValue(el.cropRight);
97846
+ const cropBottom = clampCropValue(el.cropBottom);
97847
+ if (cropLeft + cropRight <= 1e-4 && cropTop + cropBottom <= 1e-4) {
97848
+ return uncropped;
97849
+ }
97850
+ const horizontalScale = cropLeft + cropRight >= 0.99 ? 0.99 / (cropLeft + cropRight) : 1;
97851
+ const verticalScale = cropTop + cropBottom >= 0.99 ? 0.99 / (cropTop + cropBottom) : 1;
97852
+ const left = clampCropValue(cropLeft * horizontalScale);
97853
+ const right = clampCropValue(cropRight * horizontalScale);
97854
+ const top = clampCropValue(cropTop * verticalScale);
97855
+ const bottom = clampCropValue(cropBottom * verticalScale);
97856
+ const remainingWidth = Math.max(0.01, 1 - left - right);
97857
+ const remainingHeight = Math.max(0.01, 1 - top - bottom);
97858
+ const tx = Math.round(-left / remainingWidth * 1e4) / 100;
97859
+ const ty = Math.round(-top / remainingHeight * 1e4) / 100;
97860
+ const sx = Math.round(1 / remainingWidth * 1e6) / 1e6;
97861
+ const sy = Math.round(1 / remainingHeight * 1e6) / 1e6;
97862
+ return {
97863
+ position: "absolute",
97864
+ width: "100%",
97865
+ height: "100%",
97866
+ maxWidth: "none",
97867
+ maxHeight: "none",
97868
+ objectFit: "fill",
97869
+ transformOrigin: "top left",
97870
+ transform: `translate(${tx}%, ${ty}%) scale(${sx}, ${sy})`
97871
+ };
97872
+ }
97712
97873
  function groupElements(elements, ids, groupId) {
97713
97874
  const idSet = new Set(ids);
97714
97875
  const gathered = [];
@@ -99779,6 +99940,12 @@ function flattenMorphElements(elements, counterpart, offsetX = 0, offsetY = 0) {
99779
99940
  }
99780
99941
  return out;
99781
99942
  }
99943
+ function differentText(a, b) {
99944
+ const textOf2 = (element) => (element.text ?? "").replace(/\s+/gu, " ").trim();
99945
+ const fromText = textOf2(a);
99946
+ const toText = textOf2(b);
99947
+ return fromText !== "" && toText !== "" && fromText !== toText;
99948
+ }
99782
99949
  var NV_PR_KEYS = [
99783
99950
  "p:nvSpPr",
99784
99951
  "p:nvPicPr",
@@ -99893,6 +100060,9 @@ function matchMorphElementsFull(fromSlide, toSlide) {
99893
100060
  if (fromEl.type !== toEl.type) {
99894
100061
  continue;
99895
100062
  }
100063
+ if (differentText(fromEl, toEl)) {
100064
+ continue;
100065
+ }
99896
100066
  const widthRatio = Math.max(fromEl.width, toEl.width, 1) / Math.max(Math.min(fromEl.width, toEl.width), 1);
99897
100067
  const heightRatio = Math.max(fromEl.height, toEl.height, 1) / Math.max(Math.min(fromEl.height, toEl.height), 1);
99898
100068
  if (widthRatio > PROXIMITY_SIZE_RATIO_LIMIT || heightRatio > PROXIMITY_SIZE_RATIO_LIMIT) {
@@ -100149,6 +100319,27 @@ function appearanceSignature(element, depth = 0) {
100149
100319
  function morphPairNeedsCrossfade(fromElement, toElement) {
100150
100320
  return appearanceSignature(fromElement) !== appearanceSignature(toElement);
100151
100321
  }
100322
+ var GEOMETRY_EPSILON = 0.5;
100323
+ function isInertMorphPair(fromElement, toElement) {
100324
+ return Math.abs(fromElement.x - toElement.x) <= GEOMETRY_EPSILON && Math.abs(fromElement.y - toElement.y) <= GEOMETRY_EPSILON && Math.abs(fromElement.width - toElement.width) <= GEOMETRY_EPSILON && Math.abs(fromElement.height - toElement.height) <= GEOMETRY_EPSILON && (fromElement.rotation ?? 0) === (toElement.rotation ?? 0) && Boolean(fromElement.flipHorizontal) === Boolean(toElement.flipHorizontal) && Boolean(fromElement.flipVertical) === Boolean(toElement.flipVertical) && (fromElement.opacity ?? 1) === (toElement.opacity ?? 1) && !morphPairNeedsCrossfade(fromElement, toElement);
100325
+ }
100326
+ function crossfadeIncomingMayFadeIn(element) {
100327
+ const image = element;
100328
+ if (image.imagePath || image.svgPath) {
100329
+ return false;
100330
+ }
100331
+ if (!hasShapeProperties(element)) {
100332
+ return true;
100333
+ }
100334
+ const style = element.shapeStyle;
100335
+ if (!style) {
100336
+ return true;
100337
+ }
100338
+ if (style.fillMode === "none" || (style.fillOpacity ?? 1) === 0) {
100339
+ return true;
100340
+ }
100341
+ return !(style.fillColor || style.fillGradient || style.fillGradientStops?.length || style.fillPatternPreset || style.fillImageUrl);
100342
+ }
100152
100343
  function generateMorphAnimations(pairs2, durationMs, _mode = "object") {
100153
100344
  const animations = [];
100154
100345
  for (let index = 0; index < pairs2.length; index++) {
@@ -100163,13 +100354,15 @@ function generateMorphAnimations(pairs2, durationMs, _mode = "object") {
100163
100354
  const toRot = toElement.rotation ?? 0;
100164
100355
  const fromRot = shortestRotationTarget(toRot, fromElement.rotation ?? 0);
100165
100356
  const flips = `${toElement.flipHorizontal ? " scaleX(-1)" : ""}${toElement.flipVertical ? " scaleY(-1)" : ""}`;
100357
+ const inert = isInertMorphPair(fromElement, toElement);
100358
+ const crossfadesIn = !inert && morphPairNeedsCrossfade(fromElement, toElement) && crossfadeIncomingMayFadeIn(toElement);
100166
100359
  const fromProps = [
100167
100360
  ` transform: translate(${dx}px, ${dy}px) scale(${sx}, ${sy}) rotate(${fromRot}deg)${flips};`,
100168
- ` opacity: ${fromOpacity};`
100361
+ ` opacity: ${inert ? 0 : crossfadesIn ? 0 : fromOpacity};`
100169
100362
  ];
100170
100363
  const toProps = [
100171
100364
  ` transform: translate(0, 0) scale(1, 1) rotate(${toRot}deg)${flips};`,
100172
- ` opacity: ${toOpacity};`
100365
+ ` opacity: ${inert ? 0 : toOpacity};`
100173
100366
  ];
100174
100367
  const colorInterp = buildColorInterpolationProps(fromElement, toElement);
100175
100368
  if (colorInterp) {
@@ -107395,9 +107588,117 @@ async function openNativeEyeDropper() {
107395
107588
  return null;
107396
107589
  }
107397
107590
  }
107591
+ var PEN_COLORS = [
107592
+ "#ff0000",
107593
+ "#0000ff",
107594
+ "#00aa00",
107595
+ "#ff8800",
107596
+ "#ffffff",
107597
+ "#000000",
107598
+ "#ff00ff",
107599
+ "#00cccc"
107600
+ ];
107601
+ var HIGHLIGHTER_COLORS = [
107602
+ "#ffff00",
107603
+ "#00ff00",
107604
+ "#ff69b4",
107605
+ "#00bfff",
107606
+ "#ff8c00",
107607
+ "#adff2f",
107608
+ "#ff6347",
107609
+ "#87ceeb"
107610
+ ];
107398
107611
  function formatSlideCounter(currentSlide, totalSlides) {
107399
107612
  return `${currentSlide + 1} / ${totalSlides}`;
107400
107613
  }
107614
+ var PRESENT_TOOLBAR_CONTROLS = [
107615
+ {
107616
+ id: "previous",
107617
+ kind: "button",
107618
+ labelKey: "pptx.presenter.previousSlide",
107619
+ icon: "chevron-left"
107620
+ },
107621
+ { id: "counter", kind: "counter" },
107622
+ { id: "next", kind: "button", labelKey: "pptx.presenter.nextSlide", icon: "chevron-right" },
107623
+ { id: "divider-navigation", kind: "divider" },
107624
+ { id: "timer", kind: "timer", labelKey: "pptx.presenter.elapsed", icon: "timer" },
107625
+ { id: "divider-timer", kind: "divider" },
107626
+ {
107627
+ id: "laser",
107628
+ kind: "toggle",
107629
+ labelKey: "pptx.presentation.laserPointer",
107630
+ icon: "mouse-pointer-2"
107631
+ },
107632
+ { id: "pen", kind: "toggle", labelKey: "pptx.presentation.pen", icon: "pen-tool" },
107633
+ {
107634
+ id: "pen-color",
107635
+ kind: "caret",
107636
+ labelKey: "pptx.presentationToolbar.penColor",
107637
+ icon: "chevron-down"
107638
+ },
107639
+ {
107640
+ id: "highlighter",
107641
+ kind: "toggle",
107642
+ labelKey: "pptx.presentation.highlighter",
107643
+ icon: "highlighter"
107644
+ },
107645
+ {
107646
+ id: "highlighter-color",
107647
+ kind: "caret",
107648
+ labelKey: "pptx.presentationToolbar.highlighterColor",
107649
+ icon: "chevron-down"
107650
+ },
107651
+ { id: "eraser", kind: "toggle", labelKey: "pptx.presentation.eraser", icon: "eraser" },
107652
+ { id: "clear", kind: "button", labelKey: "pptx.presentation.clearAnnotations", icon: "trash-2" },
107653
+ { id: "divider-tools", kind: "divider" },
107654
+ {
107655
+ id: "presenter-view",
107656
+ kind: "toggle",
107657
+ labelKey: "pptx.presenter.presenterView",
107658
+ icon: "panel-right"
107659
+ },
107660
+ { id: "end", kind: "button", labelKey: "pptx.presenter.endPresentation", icon: "x" }
107661
+ ];
107662
+ PRESENT_TOOLBAR_CONTROLS.map(
107663
+ (control) => control.id
107664
+ );
107665
+ PRESENT_TOOLBAR_CONTROLS.flatMap(
107666
+ (control) => control.labelKey === void 0 ? [] : [control.labelKey]
107667
+ );
107668
+ var PRESENT_TOOLBAR_CLASSES = {
107669
+ /** The floating bar itself. */
107670
+ container: "flex items-center gap-1 px-3 py-2 rounded-xl bg-neutral-900/90 backdrop-blur-md border border-white/15 shadow-2xl",
107671
+ /** The auto-hiding positioner the bar sits in. */
107672
+ wrapper: "absolute bottom-6 left-1/2 -translate-x-1/2 z-[80] transition-opacity duration-300",
107673
+ /** Navigation / action button. */
107674
+ button: "flex items-center justify-center w-9 h-9 rounded-md transition-colors text-white/70 hover:text-white hover:bg-white/10 disabled:text-white/20 disabled:cursor-not-allowed",
107675
+ /** Annotation-tool toggle, inactive. */
107676
+ toggle: "relative flex items-center justify-center w-9 h-9 rounded-md transition-colors text-white/70 hover:text-white hover:bg-white/10",
107677
+ /** Annotation-tool toggle, active. */
107678
+ toggleActive: "relative flex items-center justify-center w-9 h-9 rounded-md transition-colors bg-white/25 text-white",
107679
+ /** Colour caret beside a tool toggle. */
107680
+ caret: "flex items-center justify-center w-7 h-9 -ml-1 rounded-r-md transition-colors text-white/50 hover:text-white hover:bg-white/10",
107681
+ /** Vertical hairline between groups. */
107682
+ divider: "w-px h-6 bg-white/20 mx-1",
107683
+ /** Slide counter. */
107684
+ counter: "text-xs font-mono tabular-nums text-white/80 px-1.5 select-none min-w-[48px] text-center",
107685
+ /** Elapsed-time readout. */
107686
+ timer: "flex items-center gap-1.5 text-xs font-mono tabular-nums text-white/60 px-1 select-none",
107687
+ /**
107688
+ * Colour palette popover.
107689
+ *
107690
+ * `w-max` is load-bearing. An absolutely positioned grid shrink-to-fits its
107691
+ * positioned ancestor, which here is the 64px tool+caret pair, so without it
107692
+ * the four 36px swatch columns are squeezed into 50px and overlap each other
107693
+ * to the point that a swatch cannot be clicked. React shipped it that way,
107694
+ * and the ports faithfully reproduced the defect.
107695
+ */
107696
+ palette: "absolute bottom-full left-1/2 -translate-x-1/2 mb-2 p-3 w-max bg-neutral-800 rounded-lg border border-white/20 shadow-xl grid grid-cols-4 gap-2",
107697
+ /** One colour swatch inside the palette. */
107698
+ swatch: "w-9 h-9 rounded-full border-2 transition-transform hover:scale-110",
107699
+ /** Underline showing a tool's current colour. */
107700
+ swatchBar: "absolute bottom-0.5 left-1/2 -translate-x-1/2 w-3 h-0.5 rounded-full"
107701
+ };
107401
107702
  function createPresentationKeyBuffer() {
107402
107703
  return { digits: "" };
107403
107704
  }
@@ -108899,6 +109200,134 @@ function getAriaRoleDescription(element) {
108899
109200
  return void 0;
108900
109201
  }
108901
109202
  }
109203
+ function shouldLoopContinuously(input) {
109204
+ return Boolean(input.loopContinuously) || input.showType === "kiosk";
109205
+ }
109206
+ function resolveAutoAdvanceDelayMs(slide, options) {
109207
+ if (options?.useTimings === false) {
109208
+ return void 0;
109209
+ }
109210
+ const advanceAfterMs = slide?.transition?.advanceAfterMs;
109211
+ if (typeof advanceAfterMs !== "number" || !Number.isFinite(advanceAfterMs) || advanceAfterMs < 0) {
109212
+ return void 0;
109213
+ }
109214
+ return advanceAfterMs;
109215
+ }
109216
+ var PRESENTATION_INERT_CLICK_SELECTOR = 'a, button, input, select, textarea, video, audio, [data-pptx-action], [role="dialog"]';
109217
+ function isInertMedia(node) {
109218
+ return (node.tagName === "VIDEO" || node.tagName === "AUDIO") && !node.controls;
109219
+ }
109220
+ function isPresentationAdvanceClick(target) {
109221
+ if (typeof Element === "undefined" || !(target instanceof Element)) {
109222
+ return false;
109223
+ }
109224
+ for (let node = target; node !== null; node = node.parentElement) {
109225
+ if (isInertMedia(node)) {
109226
+ continue;
109227
+ }
109228
+ if (node.matches(PRESENTATION_INERT_CLICK_SELECTOR)) {
109229
+ return false;
109230
+ }
109231
+ }
109232
+ return true;
109233
+ }
109234
+ function applyRehearsalTimings(slides, timings) {
109235
+ return slides.map((slide, index) => {
109236
+ const advanceAfterMs = timings[index];
109237
+ if (typeof advanceAfterMs !== "number") {
109238
+ return slide;
109239
+ }
109240
+ return {
109241
+ ...slide,
109242
+ transition: {
109243
+ ...slide.transition,
109244
+ type: slide.transition?.type ?? "none",
109245
+ advanceAfterMs
109246
+ }
109247
+ };
109248
+ });
109249
+ }
109250
+ function computeEntranceAnimationDelay(delayMs, animationIndex) {
109251
+ return Math.max(0, delayMs || 0) + animationIndex * 60;
109252
+ }
109253
+ var NO_OP_ACTION = "ppaction://noaction";
109254
+ function isNoOpPresentationAction(action) {
109255
+ if (!action) {
109256
+ return true;
109257
+ }
109258
+ const verb = (action.action ?? "").trim().toLowerCase();
109259
+ if (verb === NO_OP_ACTION) {
109260
+ return true;
109261
+ }
109262
+ return verb.length === 0 && typeof action.targetSlideIndex !== "number" && !(action.url ?? "").trim();
109263
+ }
109264
+ function resolvePresentationAction(action, options) {
109265
+ const soundPath = action?.soundPath;
109266
+ if (!action || isNoOpPresentationAction(action)) {
109267
+ return { intent: { kind: "none" }, soundPath };
109268
+ }
109269
+ const verb = (action.action ?? "").toLowerCase();
109270
+ if (typeof action.targetSlideIndex === "number" && Number.isFinite(action.targetSlideIndex)) {
109271
+ if (options.slideCount <= 0) {
109272
+ return { intent: { kind: "none" }, soundPath };
109273
+ }
109274
+ const slideIndex = Math.max(
109275
+ 0,
109276
+ Math.min(options.slideCount - 1, Math.floor(action.targetSlideIndex))
109277
+ );
109278
+ return { intent: { kind: "goToSlide", slideIndex }, soundPath };
109279
+ }
109280
+ if (verb.includes("hlinkshowjump")) {
109281
+ if (verb.includes("nextslide")) {
109282
+ return { intent: { kind: "move", direction: 1 }, soundPath };
109283
+ }
109284
+ if (verb.includes("previousslide")) {
109285
+ return { intent: { kind: "move", direction: -1 }, soundPath };
109286
+ }
109287
+ if (verb.includes("firstslide")) {
109288
+ return { intent: { kind: "goToSlide", slideIndex: 0 }, soundPath };
109289
+ }
109290
+ if (verb.includes("lastslide")) {
109291
+ return {
109292
+ intent: options.slideCount > 0 ? { kind: "goToSlide", slideIndex: options.slideCount - 1 } : { kind: "none" },
109293
+ soundPath
109294
+ };
109295
+ }
109296
+ if (verb.includes("endshow")) {
109297
+ return { intent: { kind: "endShow" }, soundPath };
109298
+ }
109299
+ return { intent: { kind: "none" }, soundPath };
109300
+ }
109301
+ if (verb.includes("hlinksldjump")) {
109302
+ return { intent: { kind: "none" }, soundPath };
109303
+ }
109304
+ const url = (action.url ?? "").trim();
109305
+ if (url && isUrlSafe(url)) {
109306
+ return { intent: { kind: "openUrl", url }, soundPath };
109307
+ }
109308
+ return { intent: { kind: "none" }, soundPath };
109309
+ }
109310
+ function runPresentationAction(action, options, runner) {
109311
+ const { intent, soundPath } = resolvePresentationAction(action, options);
109312
+ if (soundPath && runner.playSound) {
109313
+ runner.playSound(soundPath);
109314
+ }
109315
+ switch (intent.kind) {
109316
+ case "goToSlide":
109317
+ runner.goToSlide(intent.slideIndex);
109318
+ return true;
109319
+ case "move":
109320
+ runner.move(intent.direction);
109321
+ return true;
109322
+ case "endShow":
109323
+ runner.endShow();
109324
+ return true;
109325
+ case "openUrl":
109326
+ return safeOpenUrl(intent.url);
109327
+ default:
109328
+ return false;
109329
+ }
109330
+ }
108902
109331
  function elementHasTextHyperlink(element) {
108903
109332
  if (!hasTextProperties(element)) {
108904
109333
  return false;
@@ -108907,10 +109336,10 @@ function elementHasTextHyperlink(element) {
108907
109336
  }
108908
109337
  function isElementActionable(element, options = {}) {
108909
109338
  const { hasActionHandler = true, hasHyperlinkHandler = true, hasZoomHandler = true } = options;
108910
- if (element.actionClick && hasActionHandler) {
109339
+ if (element.actionClick && hasActionHandler && !isNoOpPresentationAction(element.actionClick)) {
108911
109340
  return true;
108912
109341
  }
108913
- if (element.actionHover) {
109342
+ if (element.actionHover && !isNoOpPresentationAction(element.actionHover)) {
108914
109343
  return true;
108915
109344
  }
108916
109345
  if (hasHyperlinkHandler && elementHasTextHyperlink(element)) {
@@ -110975,55 +111404,101 @@ var VIEWER_SHORTCUT_REFERENCE = [
110975
111404
  { actionKey: "pptx.shortcuts.title", shortcut: "?" }
110976
111405
  ];
110977
111406
  var SHORTCUT_REFERENCE_ITEMS = VIEWER_SHORTCUT_REFERENCE;
110978
- function shouldLoopContinuously(input) {
110979
- return Boolean(input.loopContinuously) || input.showType === "kiosk";
110980
- }
110981
- function resolveAutoAdvanceDelayMs(slide, options) {
110982
- if (options?.useTimings === false) {
110983
- return void 0;
111407
+ function resolveCustomShowIndexes(slides, customShow) {
111408
+ const keys = customShow.slideRIds ?? customShow.slideIds;
111409
+ if (!keys || keys.length === 0) {
111410
+ return [];
110984
111411
  }
110985
- const advanceAfterMs = slide?.transition?.advanceAfterMs;
110986
- if (typeof advanceAfterMs !== "number" || !Number.isFinite(advanceAfterMs) || advanceAfterMs < 0) {
110987
- return void 0;
111412
+ const byKey = /* @__PURE__ */ new Map();
111413
+ slides.forEach((slide, index) => {
111414
+ if (slide.id !== void 0 && !byKey.has(slide.id)) {
111415
+ byKey.set(slide.id, index);
111416
+ }
111417
+ });
111418
+ slides.forEach((slide, index) => {
111419
+ if (slide.rId !== void 0) {
111420
+ byKey.set(slide.rId, index);
111421
+ }
111422
+ });
111423
+ const resolved = [];
111424
+ for (const key of keys) {
111425
+ const index = byKey.get(key);
111426
+ if (index !== void 0) {
111427
+ resolved.push(index);
111428
+ }
110988
111429
  }
110989
- return advanceAfterMs;
111430
+ return resolved;
110990
111431
  }
110991
- var PRESENTATION_INERT_CLICK_SELECTOR = 'a, button, input, select, textarea, video, audio, [data-pptx-action], [role="dialog"]';
110992
- function isInertMedia(node) {
110993
- return (node.tagName === "VIDEO" || node.tagName === "AUDIO") && !node.controls;
111432
+ function resolveShowSlideIndexes(slides, activeCustomShow) {
111433
+ const all = [];
111434
+ for (let index = 0; index < slides.length; index++) {
111435
+ all.push(index);
111436
+ }
111437
+ const base = activeCustomShow ? resolveCustomShowIndexes(slides, activeCustomShow) : all;
111438
+ const effectiveBase = base.length > 0 ? base : all;
111439
+ const visible = effectiveBase.filter((index) => !slides[index]?.hidden);
111440
+ return visible.length > 0 ? visible : effectiveBase;
110994
111441
  }
110995
- function isPresentationAdvanceClick(target) {
110996
- if (typeof Element === "undefined" || !(target instanceof Element)) {
110997
- return false;
111442
+ function showPosition(deckIndex, showIndexes) {
111443
+ return showIndexes.indexOf(deckIndex);
111444
+ }
111445
+ function nextShowSlideIndex(deckIndex, showIndexes, options) {
111446
+ if (showIndexes.length === 0) {
111447
+ return void 0;
110998
111448
  }
110999
- for (let node = target; node !== null; node = node.parentElement) {
111000
- if (isInertMedia(node)) {
111001
- continue;
111449
+ const position2 = showPosition(deckIndex, showIndexes);
111450
+ if (position2 >= 0) {
111451
+ if (position2 + 1 < showIndexes.length) {
111452
+ return showIndexes[position2 + 1];
111002
111453
  }
111003
- if (node.matches(PRESENTATION_INERT_CLICK_SELECTOR)) {
111004
- return false;
111454
+ return options?.loop ? showIndexes[0] : void 0;
111455
+ }
111456
+ for (const candidate of showIndexes) {
111457
+ if (candidate > deckIndex) {
111458
+ return candidate;
111005
111459
  }
111006
111460
  }
111007
- return true;
111461
+ return options?.loop ? showIndexes[0] : void 0;
111008
111462
  }
111009
- function applyRehearsalTimings(slides, timings) {
111010
- return slides.map((slide, index) => {
111011
- const advanceAfterMs = timings[index];
111012
- if (typeof advanceAfterMs !== "number") {
111013
- return slide;
111463
+ function previousShowSlideIndex(deckIndex, showIndexes) {
111464
+ if (showIndexes.length === 0) {
111465
+ return void 0;
111466
+ }
111467
+ const position2 = showPosition(deckIndex, showIndexes);
111468
+ if (position2 >= 0) {
111469
+ return position2 > 0 ? showIndexes[position2 - 1] : void 0;
111470
+ }
111471
+ let previous;
111472
+ for (const candidate of showIndexes) {
111473
+ if (candidate < deckIndex) {
111474
+ previous = candidate;
111014
111475
  }
111015
- return {
111016
- ...slide,
111017
- transition: {
111018
- ...slide.transition,
111019
- type: slide.transition?.type ?? "none",
111020
- advanceAfterMs
111021
- }
111022
- };
111023
- });
111476
+ }
111477
+ return previous;
111024
111478
  }
111025
- function computeEntranceAnimationDelay(delayMs, animationIndex) {
111026
- return Math.max(0, delayMs || 0) + animationIndex * 60;
111479
+ function hasShowSlideAfter(deckIndex, showIndexes) {
111480
+ return nextShowSlideIndex(deckIndex, showIndexes) !== void 0;
111481
+ }
111482
+ function nextPresentedSlide(slides, deckIndex) {
111483
+ const next = nextShowSlideIndex(deckIndex, resolveShowSlideIndexes(slides));
111484
+ return next === void 0 ? void 0 : slides[next];
111485
+ }
111486
+ function firstShowSlideIndex(showIndexes) {
111487
+ return showIndexes.length > 0 ? showIndexes[0] : void 0;
111488
+ }
111489
+ function lastShowSlideIndex(showIndexes) {
111490
+ return showIndexes.length > 0 ? showIndexes[showIndexes.length - 1] : void 0;
111491
+ }
111492
+ var HIDDEN_SLIDE_LABEL_KEY = "pptx.slideSorter.hidden";
111493
+ var HIDDEN_SLIDE_SLASH_GRADIENT = "linear-gradient(to top right, transparent 47%, color-mix(in srgb, currentColor 60%, transparent) 47%, color-mix(in srgb, currentColor 60%, transparent) 53%, transparent 53%)";
111494
+ function hiddenSlideLabelId(surface, slideIndex) {
111495
+ return `pptx-hidden-slide-${surface}-${slideIndex}`;
111496
+ }
111497
+ function hiddenSlideCue(hidden, surface, slideIndex) {
111498
+ if (!hidden) {
111499
+ return { hidden: false, labelId: void 0, marker: void 0 };
111500
+ }
111501
+ return { hidden: true, labelId: hiddenSlideLabelId(surface, slideIndex), marker: "true" };
111027
111502
  }
111028
111503
  var VIEWER_PREFS_STORAGE_KEY = "pptx-viewer-prefs";
111029
111504
  function hasLocalStorage() {
@@ -113662,8 +114137,12 @@ exports.EXPORT_ASSEMBLING_PERCENT = EXPORT_ASSEMBLING_PERCENT;
113662
114137
  exports.EXPORT_DONE_PERCENT = EXPORT_DONE_PERCENT;
113663
114138
  exports.EncryptedFileError = EncryptedFileError;
113664
114139
  exports.FILL_MODE_OPTIONS = FILL_MODE_OPTIONS;
114140
+ exports.FILL_PATTERN_LABEL_KEYS = FILL_PATTERN_LABEL_KEYS;
113665
114141
  exports.GRADIENT_TYPE_OPTIONS = GRADIENT_TYPE_OPTIONS;
113666
114142
  exports.HANDOUT_OPTIONS = HANDOUT_OPTIONS;
114143
+ exports.HIDDEN_SLIDE_LABEL_KEY = HIDDEN_SLIDE_LABEL_KEY;
114144
+ exports.HIDDEN_SLIDE_SLASH_GRADIENT = HIDDEN_SLIDE_SLASH_GRADIENT;
114145
+ exports.HIGHLIGHTER_COLORS = HIGHLIGHTER_COLORS;
113667
114146
  exports.INK_REPLAY_KEYFRAMES = INK_REPLAY_KEYFRAMES;
113668
114147
  exports.INSERT_CHART_TYPES = INSERT_CHART_TYPES;
113669
114148
  exports.LBL = LBL;
@@ -113683,10 +114162,12 @@ exports.OUTLINE_ROW_ATTR = OUTLINE_ROW_ATTR;
113683
114162
  exports.OUTLINE_SLIDE_ATTR = OUTLINE_SLIDE_ATTR;
113684
114163
  exports.OUTLINE_VIEW_ATTR = OUTLINE_VIEW_ATTR;
113685
114164
  exports.PATTERN_OPTIONS = PATTERN_OPTIONS;
114165
+ exports.PEN_COLORS = PEN_COLORS;
113686
114166
  exports.PRESENTATION_CHANNEL_NAME = PRESENTATION_CHANNEL_NAME;
113687
114167
  exports.PRESENTATION_HASH = PRESENTATION_HASH;
113688
114168
  exports.PRESENTATION_MESSAGE_ORIGIN = PRESENTATION_MESSAGE_ORIGIN;
113689
114169
  exports.PRESENTATION_NONCE_KEY = PRESENTATION_NONCE_KEY;
114170
+ exports.PRESENT_TOOLBAR_CLASSES = PRESENT_TOOLBAR_CLASSES;
113690
114171
  exports.PRESETS = PRESETS;
113691
114172
  exports.PRESET_THEMES = PRESET_THEMES;
113692
114173
  exports.PptxHandler = PptxHandler;
@@ -113706,6 +114187,8 @@ exports.SHORTCUT_REFERENCE_ITEMS = SHORTCUT_REFERENCE_ITEMS;
113706
114187
  exports.SLIDE_TRANSITION_KEYFRAMES = SLIDE_TRANSITION_KEYFRAMES;
113707
114188
  exports.SLIDE_TRANSITION_OPTIONS = SLIDE_TRANSITION_OPTIONS;
113708
114189
  exports.SLIDE_VIRTUALIZATION_THRESHOLD = SLIDE_VIRTUALIZATION_THRESHOLD;
114190
+ exports.SMARTART_COLOR_SCHEME_LABEL_KEYS = SMARTART_COLOR_SCHEME_LABEL_KEYS;
114191
+ exports.SMARTART_STYLE_LABEL_KEYS = SMARTART_STYLE_LABEL_KEYS;
113709
114192
  exports.STATUS_BAR_CLASSES = STATUS_BAR_CLASSES;
113710
114193
  exports.SWITCHABLE_LAYOUT_TYPES = SWITCHABLE_LAYOUT_TYPES;
113711
114194
  exports.SvgExporter = SvgExporter;
@@ -113717,6 +114200,7 @@ exports.TEXT_WARP_PRESETS = TEXT_WARP_PRESETS;
113717
114200
  exports.THEME_CATALOG = THEME_CATALOG;
113718
114201
  exports.THEME_COLOR_LABELS = THEME_COLOR_LABELS;
113719
114202
  exports.THEME_COLOR_SCHEME_KEYS = THEME_COLOR_SCHEME_KEYS;
114203
+ exports.THEME_COLOR_SLOT_LABEL_KEYS = THEME_COLOR_SLOT_LABEL_KEYS;
113720
114204
  exports.THEME_PRESETS = THEME_PRESETS;
113721
114205
  exports.TITLE_BAR_CLASSES = TITLE_BAR_CLASSES;
113722
114206
  exports.TITLE_BAR_DEFAULT_FILE_KEY = TITLE_BAR_DEFAULT_FILE_KEY;
@@ -113739,6 +114223,7 @@ exports.addSmartArtNode = addSmartArtNode;
113739
114223
  exports.addSmartArtNodeAsChild = addSmartArtNodeAsChild;
113740
114224
  exports.addTagToCollections = addTagToCollections;
113741
114225
  exports.alignElements = alignElements;
114226
+ exports.animationEffectLabel = animationEffectLabel;
113742
114227
  exports.appendPresentationInkPoint = appendPresentationInkPoint;
113743
114228
  exports.appendTableElementColumn = appendTableElementColumn;
113744
114229
  exports.appendTableElementRow = appendTableElementRow;
@@ -113913,6 +114398,7 @@ exports.filterRenderedElements = filterRenderedElements;
113913
114398
  exports.findChartPartTarget = findChartPartTarget;
113914
114399
  exports.findMediaElementByElementId = findMediaElementByElementId;
113915
114400
  exports.findSmartArtNodeText = findSmartArtNodeText;
114401
+ exports.firstShowSlideIndex = firstShowSlideIndex;
113916
114402
  exports.flattenTagCollections = flattenTagCollections;
113917
114403
  exports.formatAxisValue = formatAxisValue;
113918
114404
  exports.formatAxisValueWithUnits = formatAxisValueWithUnits;
@@ -113964,6 +114450,7 @@ exports.getGroupChildParentFill = getGroupChildParentFill;
113964
114450
  exports.getImageColorWashStyle = getImageColorWashStyle;
113965
114451
  exports.getImageEffectsFilter = getImageEffectsFilter;
113966
114452
  exports.getImageEffectsOpacity = getImageEffectsOpacity;
114453
+ exports.getImageFitStyle = getImageFitStyle;
113967
114454
  exports.getImageSvgFilters = getImageSvgFilters;
113968
114455
  exports.getInkReplayStyles = getInkReplayStyles;
113969
114456
  exports.getInlineEditorSelection = getInlineEditorSelection;
@@ -114001,8 +114488,10 @@ exports.hasCopyableFormat = hasCopyableFormat;
114001
114488
  exports.hasDistinctScriptFonts = hasDistinctScriptFonts;
114002
114489
  exports.hasPressureVariation = hasPressureVariation;
114003
114490
  exports.hasShapeProperties = hasShapeProperties;
114491
+ exports.hasShowSlideAfter = hasShowSlideAfter;
114004
114492
  exports.hasTextProperties = hasTextProperties;
114005
114493
  exports.hexToRgbChannels = hexToRgbChannels2;
114494
+ exports.hiddenSlideCue = hiddenSlideCue;
114006
114495
  exports.insertTableColumn = insertTableColumn;
114007
114496
  exports.insertTableRow = insertTableRow;
114008
114497
  exports.isActionHidden = isActionHidden;
@@ -114029,6 +114518,7 @@ exports.isPresentationSessionMessage = isPresentationSessionMessage;
114029
114518
  exports.isTemplateElement = isTemplateElement;
114030
114519
  exports.isTemplateElementId = isTemplateElementId2;
114031
114520
  exports.isUrlSafe = isUrlSafe;
114521
+ exports.lastShowSlideIndex = lastShowSlideIndex;
114032
114522
  exports.listAutosaveSnapshots = listAutosaveSnapshots;
114033
114523
  exports.listBackstageRecentFiles = listBackstageRecentFiles;
114034
114524
  exports.loadAudienceContent = loadAudienceContent;
@@ -114061,6 +114551,8 @@ exports.moveSectionDown = moveSectionDown;
114061
114551
  exports.moveSectionUp = moveSectionUp;
114062
114552
  exports.moveSlidesToSection = moveSlidesToSection;
114063
114553
  exports.newTableElement = newTableElement;
114554
+ exports.nextPresentedSlide = nextPresentedSlide;
114555
+ exports.nextShowSlideIndex = nextShowSlideIndex;
114064
114556
  exports.normalizeColorsForCapture = normalizeColorsForCapture;
114065
114557
  exports.normalizeHexColor = normalizeHexColor;
114066
114558
  exports.normalizeStrokeDashType = normalizeStrokeDashType;
@@ -114086,6 +114578,7 @@ exports.presentationInkPath = presentationInkPath;
114086
114578
  exports.presenterElapsed = presenterElapsed;
114087
114579
  exports.presenterPaneAdvancesOnClick = presenterPaneAdvancesOnClick;
114088
114580
  exports.pressuresToWidths = pressuresToWidths;
114581
+ exports.previousShowSlideIndex = previousShowSlideIndex;
114089
114582
  exports.printPropertiesFrameSlides = printPropertiesFrameSlides;
114090
114583
  exports.printPropertiesSlidesPerPage = printPropertiesSlidesPerPage;
114091
114584
  exports.promoteSmartArtNode = promoteSmartArtNode;
@@ -114136,6 +114629,7 @@ exports.resolveParagraphStrutFontSize = resolveParagraphStrutFontSize;
114136
114629
  exports.resolvePictureBullet = resolvePictureBullet;
114137
114630
  exports.resolveProfileInitial = resolveProfileInitial;
114138
114631
  exports.resolveRegionCode = resolveRegionCode;
114632
+ exports.resolveShowSlideIndexes = resolveShowSlideIndexes;
114139
114633
  exports.resolveThemeCatalogEntry = resolveThemeCatalogEntry;
114140
114634
  exports.resolveTitleBarStatusKey = resolveTitleBarStatusKey;
114141
114635
  exports.resolveTransitionDurationMs = resolveTransitionDurationMs;
@@ -114146,6 +114640,7 @@ exports.restoreSegmentSelection = restoreSegmentSelection;
114146
114640
  exports.revealedSmartArtNodeCount = revealedSmartArtNodeCount;
114147
114641
  exports.rulerDragToGuidePosition = rulerDragToGuidePosition;
114148
114642
  exports.runMediaCommand = runMediaCommand;
114643
+ exports.runPresentationAction = runPresentationAction;
114149
114644
  exports.safeOpenUrl = safeOpenUrl;
114150
114645
  exports.sanitizeColor = sanitizeColor;
114151
114646
  exports.sanitizeDownloadFilename = sanitizeDownloadFilename;
@@ -114154,6 +114649,7 @@ exports.sanitizeMathMl = sanitizeMathMl;
114154
114649
  exports.saveAutosaveSnapshot = saveAutosaveSnapshot;
114155
114650
  exports.saveViewerProfile = saveViewerProfile;
114156
114651
  exports.scanAvailableFontFamilies = scanAvailableFontFamilies;
114652
+ exports.schemaLabel = schemaLabel;
114157
114653
  exports.segmentByScript = segmentByScript;
114158
114654
  exports.segmentFrameCount = segmentFrameCount;
114159
114655
  exports.sendBackward = sendBackward;