pptx-react-viewer 2.19.1 → 2.19.3

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 (92) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/{AiChatPanel-GRAIPSG3.mjs → AiChatPanel-6GZJUAZO.mjs} +3 -3
  3. package/dist/AiChatPanel-6GZJUAZO.mjs.br +0 -0
  4. package/dist/AiChatPanel-6GZJUAZO.mjs.gz +0 -0
  5. package/dist/{AiChatPanel-JSTZ6W7R.js → AiChatPanel-ITONW4RG.js} +23 -23
  6. package/dist/AiChatPanel-ITONW4RG.js.br +0 -0
  7. package/dist/AiChatPanel-ITONW4RG.js.gz +0 -0
  8. package/dist/{Model3DScene-WLRZXJHN.js → Model3DScene-37TFKKMR.js} +2 -2
  9. package/dist/Model3DScene-37TFKKMR.js.br +0 -0
  10. package/dist/Model3DScene-37TFKKMR.js.gz +0 -0
  11. package/dist/{Model3DScene-FXDA7OII.mjs → Model3DScene-FHEYYYMP.mjs} +1 -1
  12. package/dist/Model3DScene-FHEYYYMP.mjs.br +0 -0
  13. package/dist/Model3DScene-FHEYYYMP.mjs.gz +0 -0
  14. package/dist/{chunk-B55E3KXL.mjs → chunk-6Q5ZJ5CE.mjs} +55 -7
  15. package/dist/chunk-6Q5ZJ5CE.mjs.br +0 -0
  16. package/dist/chunk-6Q5ZJ5CE.mjs.gz +0 -0
  17. package/dist/{chunk-PNR3J26S.mjs → chunk-E3ABZJ3V.mjs} +129 -3
  18. package/dist/chunk-E3ABZJ3V.mjs.br +0 -0
  19. package/dist/{chunk-PNR3J26S.mjs.gz → chunk-E3ABZJ3V.mjs.gz} +0 -0
  20. package/dist/{chunk-PIJAFM4B.js → chunk-GB7DRDDJ.js} +146 -146
  21. package/dist/chunk-GB7DRDDJ.js.br +0 -0
  22. package/dist/chunk-GB7DRDDJ.js.gz +0 -0
  23. package/dist/{chunk-KQGS6A5J.mjs → chunk-JFZ3ZA6J.mjs} +1 -1
  24. package/dist/chunk-JFZ3ZA6J.mjs.br +0 -0
  25. package/dist/chunk-JFZ3ZA6J.mjs.gz +0 -0
  26. package/dist/{chunk-TPC65IB2.js → chunk-LL2GSA3M.js} +1066 -1018
  27. package/dist/chunk-LL2GSA3M.js.br +0 -0
  28. package/dist/chunk-LL2GSA3M.js.gz +0 -0
  29. package/dist/{chunk-T7BIRNE4.js → chunk-MZ6E7TUV.js} +130 -2
  30. package/dist/chunk-MZ6E7TUV.js.br +0 -0
  31. package/dist/{chunk-T7BIRNE4.js.gz → chunk-MZ6E7TUV.js.gz} +0 -0
  32. package/dist/{chunk-LMTUC7U7.js → chunk-N6EY3PJP.js} +372 -372
  33. package/dist/chunk-N6EY3PJP.js.br +0 -0
  34. package/dist/chunk-N6EY3PJP.js.gz +0 -0
  35. package/dist/{chunk-WGXQXHCS.mjs → chunk-QVTFZH7K.mjs} +1 -1
  36. package/dist/chunk-QVTFZH7K.mjs.br +0 -0
  37. package/dist/chunk-QVTFZH7K.mjs.gz +0 -0
  38. package/dist/{chunk-5ZQ3ZQ3M.mjs → chunk-SL32VQDZ.mjs} +2 -2
  39. package/dist/chunk-SL32VQDZ.mjs.br +0 -0
  40. package/dist/chunk-SL32VQDZ.mjs.gz +0 -0
  41. package/dist/{chunk-SCGIXXN5.js → chunk-T7KTLC6L.js} +3 -3
  42. package/dist/chunk-T7KTLC6L.js.br +0 -0
  43. package/dist/chunk-T7KTLC6L.js.gz +0 -0
  44. package/dist/index.js +45 -45
  45. package/dist/index.js.br +0 -0
  46. package/dist/index.js.gz +0 -0
  47. package/dist/index.mjs +5 -5
  48. package/dist/index.mjs.br +0 -0
  49. package/dist/index.mjs.gz +0 -0
  50. package/dist/internals.d.ts +53 -0
  51. package/dist/internals.js +78 -78
  52. package/dist/internals.js.br +0 -0
  53. package/dist/internals.js.gz +0 -0
  54. package/dist/internals.mjs +3 -3
  55. package/dist/internals.mjs.br +0 -0
  56. package/dist/internals.mjs.gz +0 -0
  57. package/dist/pptx-viewer.css +1 -1
  58. package/dist/pptx-viewer.css.br +0 -0
  59. package/dist/pptx-viewer.css.gz +0 -0
  60. package/dist/viewer/index.js +26 -26
  61. package/dist/viewer/index.js.br +0 -0
  62. package/dist/viewer/index.js.gz +0 -0
  63. package/dist/viewer/index.mjs +5 -5
  64. package/dist/viewer/index.mjs.br +0 -0
  65. package/dist/viewer/index.mjs.gz +0 -0
  66. package/package.json +1 -1
  67. package/dist/AiChatPanel-GRAIPSG3.mjs.br +0 -0
  68. package/dist/AiChatPanel-GRAIPSG3.mjs.gz +0 -0
  69. package/dist/AiChatPanel-JSTZ6W7R.js.br +0 -0
  70. package/dist/AiChatPanel-JSTZ6W7R.js.gz +0 -0
  71. package/dist/Model3DScene-FXDA7OII.mjs.br +0 -0
  72. package/dist/Model3DScene-FXDA7OII.mjs.gz +0 -0
  73. package/dist/Model3DScene-WLRZXJHN.js.br +0 -0
  74. package/dist/Model3DScene-WLRZXJHN.js.gz +0 -0
  75. package/dist/chunk-5ZQ3ZQ3M.mjs.br +0 -0
  76. package/dist/chunk-5ZQ3ZQ3M.mjs.gz +0 -0
  77. package/dist/chunk-B55E3KXL.mjs.br +0 -0
  78. package/dist/chunk-B55E3KXL.mjs.gz +0 -0
  79. package/dist/chunk-KQGS6A5J.mjs.br +0 -0
  80. package/dist/chunk-KQGS6A5J.mjs.gz +0 -0
  81. package/dist/chunk-LMTUC7U7.js.br +0 -0
  82. package/dist/chunk-LMTUC7U7.js.gz +0 -0
  83. package/dist/chunk-PIJAFM4B.js.br +0 -0
  84. package/dist/chunk-PIJAFM4B.js.gz +0 -0
  85. package/dist/chunk-PNR3J26S.mjs.br +0 -0
  86. package/dist/chunk-SCGIXXN5.js.br +0 -0
  87. package/dist/chunk-SCGIXXN5.js.gz +0 -0
  88. package/dist/chunk-T7BIRNE4.js.br +0 -0
  89. package/dist/chunk-TPC65IB2.js.br +0 -0
  90. package/dist/chunk-TPC65IB2.js.gz +0 -0
  91. package/dist/chunk-WGXQXHCS.mjs.br +0 -0
  92. package/dist/chunk-WGXQXHCS.mjs.gz +0 -0
Binary file
Binary file
@@ -117592,6 +117592,33 @@ function generateFullMorphTransition(fromSlide, toSlide, durationMs, mode = "obj
117592
117592
  allAnimations.push(...fadeIns);
117593
117593
  return allAnimations;
117594
117594
  }
117595
+ var MORPH_CROSSFADE_GROUP_STYLE = {
117596
+ position: "absolute",
117597
+ inset: "0",
117598
+ isolation: "isolate"
117599
+ };
117600
+ var MORPH_CROSSFADE_HALF_BLEND_MODE = "plus-lighter";
117601
+ var MORPH_CROSSFADE_HALF_STYLE = {
117602
+ position: "absolute",
117603
+ inset: "0",
117604
+ mixBlendMode: MORPH_CROSSFADE_HALF_BLEND_MODE
117605
+ };
117606
+ function resolveMorphCrossfadeGroups(pairs2, ghostIds, liftedIds, incomingOrder) {
117607
+ const byIncomingId = /* @__PURE__ */ new Map();
117608
+ for (const pair of pairs2) {
117609
+ if (ghostIds.has(pair.fromElement.id) && liftedIds.has(pair.toElement.id)) {
117610
+ byIncomingId.set(pair.toElement.id, pair);
117611
+ }
117612
+ }
117613
+ const groups = [];
117614
+ for (const element of incomingOrder) {
117615
+ const pair = byIncomingId.get(element.id);
117616
+ if (pair) {
117617
+ groups.push({ outgoing: pair.fromElement, incoming: pair.toElement });
117618
+ }
117619
+ }
117620
+ return groups;
117621
+ }
117595
117622
  var LIFTED_HIDDEN_NAME = "pptx-morph-lifted-hidden";
117596
117623
  var LIFTED_HIDDEN_KEYFRAMES = `
117597
117624
  @keyframes ${LIFTED_HIDDEN_NAME} {
@@ -117638,7 +117665,7 @@ function buildMorphTransitionPlan(fromSlide, toSlide, durationMs, mode = "object
117638
117665
  existing === void 0 ? animation.animation : `${existing}, ${animation.animation}`
117639
117666
  );
117640
117667
  }
117641
- const outgoingElements = flattenedOutgoing.filter((element) => ghostIds.has(element.id));
117668
+ const ghostElements = flattenedOutgoing.filter((element) => ghostIds.has(element.id));
117642
117669
  const flattenedIncoming = flattenMorphElements(toSlide.elements, fromSlide.elements);
117643
117670
  const holdingGhostIds = new Set(
117644
117671
  match.pairs.filter(
@@ -117673,8 +117700,19 @@ function buildMorphTransitionPlan(fromSlide, toSlide, durationMs, mode = "object
117673
117700
  if (overlayIncomingAnimations.size > 0) {
117674
117701
  keyframes.push(LIFTED_HIDDEN_KEYFRAMES);
117675
117702
  }
117703
+ const crossfadeGroups = resolveMorphCrossfadeGroups(
117704
+ match.pairs,
117705
+ ghostIds,
117706
+ new Set(overlayIncomingAnimations.keys()),
117707
+ flattenedIncoming
117708
+ ).map(
117709
+ (group2) => liftCrossfadeToWrapper(group2, animations, outgoingAnimations, overlayIncomingAnimations)
117710
+ );
117711
+ const groupedOutgoingIds = new Set(crossfadeGroups.map((group2) => group2.outgoing.id));
117712
+ const groupedIncomingIds = new Set(crossfadeGroups.map((group2) => group2.incoming.id));
117713
+ const outgoingElements = ghostElements.filter((element) => !groupedOutgoingIds.has(element.id));
117676
117714
  const overlayIncomingElements = flattenedIncoming.filter(
117677
- (element) => overlayIncomingAnimations.has(element.id)
117715
+ (element) => overlayIncomingAnimations.has(element.id) && !groupedIncomingIds.has(element.id)
117678
117716
  );
117679
117717
  return {
117680
117718
  keyframesCss: keyframes.join("\n"),
@@ -117685,9 +117723,97 @@ function buildMorphTransitionPlan(fromSlide, toSlide, durationMs, mode = "object
117685
117723
  overlayIncomingAnimations,
117686
117724
  outgoingElements,
117687
117725
  overlayIncomingElements,
117726
+ crossfadeGroups,
117688
117727
  durationMs
117689
117728
  };
117690
117729
  }
117730
+ function liftCrossfadeToWrapper(group2, animations, outgoingAnimations, overlayIncomingAnimations) {
117731
+ const tracksOf = (elementId) => {
117732
+ const fade = [];
117733
+ let travels = false;
117734
+ let other = 0;
117735
+ for (const animation of animations) {
117736
+ if (animation.elementId !== elementId) {
117737
+ continue;
117738
+ }
117739
+ if (animation.target !== void 0) {
117740
+ other += 1;
117741
+ continue;
117742
+ }
117743
+ for (const track of splitAnimationTracks(animation.animation)) {
117744
+ const block = keyframesBlockOf(track.split(/\s+/u)[0], animation.keyframes);
117745
+ if (block === void 0) {
117746
+ other += 1;
117747
+ } else if (block.includes("transform")) {
117748
+ travels ||= !isStationaryKeyframes(block);
117749
+ } else if (block.includes("opacity")) {
117750
+ fade.push(track);
117751
+ } else {
117752
+ other += 1;
117753
+ }
117754
+ }
117755
+ }
117756
+ return { fade, travels, other };
117757
+ };
117758
+ const outgoing = tracksOf(group2.outgoing.id);
117759
+ const incoming = tracksOf(group2.incoming.id);
117760
+ if (outgoing.fade.length === 0 || incoming.fade.length === 0 || outgoing.travels || incoming.travels || outgoing.other + incoming.other > 0) {
117761
+ return group2;
117762
+ }
117763
+ outgoingAnimations.set(group2.outgoing.id, "none");
117764
+ overlayIncomingAnimations.set(group2.incoming.id, "none");
117765
+ return {
117766
+ ...group2,
117767
+ outgoingAnimation: outgoing.fade.join(", "),
117768
+ incomingAnimation: incoming.fade.join(", ")
117769
+ };
117770
+ }
117771
+ function splitAnimationTracks(shorthand) {
117772
+ const tracks = [];
117773
+ let depth = 0;
117774
+ let start = 0;
117775
+ for (let index = 0; index < shorthand.length; index += 1) {
117776
+ const character = shorthand[index];
117777
+ if (character === "(") {
117778
+ depth += 1;
117779
+ } else if (character === ")") {
117780
+ depth -= 1;
117781
+ } else if (character === "," && depth === 0) {
117782
+ tracks.push(shorthand.slice(start, index).trim());
117783
+ start = index + 1;
117784
+ }
117785
+ }
117786
+ tracks.push(shorthand.slice(start).trim());
117787
+ return tracks.filter((track) => track.length > 0);
117788
+ }
117789
+ function isStationaryKeyframes(block) {
117790
+ const normalise = (value) => value.replace(/\s+/gu, "").replace(
117791
+ /(-?\d*\.?\d+)(px|deg|%)?/gu,
117792
+ (_match, number, unit = "") => Number(number) === 0 ? "0" : `${Number(number)}${unit}`
117793
+ );
117794
+ const values = new Set(
117795
+ [...block.matchAll(/(?<![\w-])transform:\s*([^;}]+)/gu)].map((match) => normalise(match[1]))
117796
+ );
117797
+ return values.size <= 1;
117798
+ }
117799
+ function keyframesBlockOf(name, keyframes) {
117800
+ const start = keyframes.indexOf(`@keyframes ${name}`);
117801
+ if (start < 0) {
117802
+ return void 0;
117803
+ }
117804
+ let depth = 0;
117805
+ for (let index = keyframes.indexOf("{", start); index < keyframes.length; index += 1) {
117806
+ if (keyframes[index] === "{") {
117807
+ depth += 1;
117808
+ } else if (keyframes[index] === "}") {
117809
+ depth -= 1;
117810
+ if (depth === 0) {
117811
+ return keyframes.slice(start, index + 1);
117812
+ }
117813
+ }
117814
+ }
117815
+ return void 0;
117816
+ }
117691
117817
  function cssAttributeValue(value) {
117692
117818
  return value.replace(/\\/gu, "\\\\").replace(/"/gu, '\\"');
117693
117819
  }
@@ -134151,6 +134277,8 @@ exports.MAX_ZOOM_SCALE = MAX_ZOOM_SCALE;
134151
134277
  exports.MEDIA_CHROME_ATTRIBUTE = MEDIA_CHROME_ATTRIBUTE;
134152
134278
  exports.MIN_ZOOM_SCALE = MIN_ZOOM_SCALE;
134153
134279
  exports.MOBILE_BREAKPOINT = MOBILE_BREAKPOINT;
134280
+ exports.MORPH_CROSSFADE_GROUP_STYLE = MORPH_CROSSFADE_GROUP_STYLE;
134281
+ exports.MORPH_CROSSFADE_HALF_STYLE = MORPH_CROSSFADE_HALF_STYLE;
134154
134282
  exports.MOTION_PATH_FAMILIES = MOTION_PATH_FAMILIES;
134155
134283
  exports.NOTES_FONT_SIZE_DEFAULT = NOTES_FONT_SIZE_DEFAULT;
134156
134284
  exports.NOTES_FONT_SIZE_MAX = NOTES_FONT_SIZE_MAX;
Binary file