pptx-react-viewer 2.7.0 → 2.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/dist/{AiChatPanel-G6DKXSM3.js → AiChatPanel-SRKOMEW6.js} +22 -22
  3. package/dist/AiChatPanel-SRKOMEW6.js.br +0 -0
  4. package/dist/AiChatPanel-SRKOMEW6.js.gz +0 -0
  5. package/dist/{AiChatPanel-J5IGSCYA.mjs → AiChatPanel-YAYQ5KUT.mjs} +3 -3
  6. package/dist/AiChatPanel-YAYQ5KUT.mjs.br +0 -0
  7. package/dist/AiChatPanel-YAYQ5KUT.mjs.gz +0 -0
  8. package/dist/{Model3DScene-ID6CQKEJ.mjs → Model3DScene-HYMOPMAM.mjs} +1 -1
  9. package/dist/Model3DScene-HYMOPMAM.mjs.br +0 -0
  10. package/dist/Model3DScene-HYMOPMAM.mjs.gz +0 -0
  11. package/dist/{Model3DScene-S7LKZ6IA.js → Model3DScene-ONKC5Z6A.js} +2 -2
  12. package/dist/Model3DScene-ONKC5Z6A.js.br +0 -0
  13. package/dist/Model3DScene-ONKC5Z6A.js.gz +0 -0
  14. package/dist/{SurfaceChart3DScene-V5H6MXYW.mjs → SurfaceChart3DScene-B3FK4Q2U.mjs} +1 -1
  15. package/dist/SurfaceChart3DScene-B3FK4Q2U.mjs.br +0 -0
  16. package/dist/SurfaceChart3DScene-B3FK4Q2U.mjs.gz +0 -0
  17. package/dist/{SurfaceChart3DScene-XSJXJM6H.js → SurfaceChart3DScene-YJFWGG5L.js} +2 -2
  18. package/dist/SurfaceChart3DScene-YJFWGG5L.js.br +0 -0
  19. package/dist/SurfaceChart3DScene-YJFWGG5L.js.gz +0 -0
  20. package/dist/{chunk-Y4EB65WB.mjs → chunk-2UCJYJUS.mjs} +7 -7
  21. package/dist/chunk-2UCJYJUS.mjs.br +0 -0
  22. package/dist/chunk-2UCJYJUS.mjs.gz +0 -0
  23. package/dist/{chunk-GLQFRVAN.js → chunk-BVK7K74O.js} +843 -843
  24. package/dist/chunk-BVK7K74O.js.br +0 -0
  25. package/dist/chunk-BVK7K74O.js.gz +0 -0
  26. package/dist/{chunk-B4XJTZR4.js → chunk-GRW7HM6X.js} +236 -236
  27. package/dist/chunk-GRW7HM6X.js.br +0 -0
  28. package/dist/chunk-GRW7HM6X.js.gz +0 -0
  29. package/dist/{chunk-WH46JCNF.mjs → chunk-HEAJOHLJ.mjs} +125 -66
  30. package/dist/chunk-HEAJOHLJ.mjs.br +0 -0
  31. package/dist/chunk-HEAJOHLJ.mjs.gz +0 -0
  32. package/dist/{chunk-IGKLB7NQ.mjs → chunk-HQGLKAIY.mjs} +2 -2
  33. package/dist/chunk-HQGLKAIY.mjs.br +0 -0
  34. package/dist/chunk-HQGLKAIY.mjs.gz +0 -0
  35. package/dist/{chunk-YUHEJWUN.mjs → chunk-IDK6XECR.mjs} +2 -2
  36. package/dist/chunk-IDK6XECR.mjs.br +0 -0
  37. package/dist/{chunk-YUHEJWUN.mjs.gz → chunk-IDK6XECR.mjs.gz} +0 -0
  38. package/dist/{chunk-4KMTZLNS.js → chunk-JEIMWRKF.js} +315 -315
  39. package/dist/chunk-JEIMWRKF.js.br +0 -0
  40. package/dist/chunk-JEIMWRKF.js.gz +0 -0
  41. package/dist/{chunk-6C4UY7GX.js → chunk-JVE7BZ25.js} +3 -3
  42. package/dist/chunk-JVE7BZ25.js.br +0 -0
  43. package/dist/chunk-JVE7BZ25.js.gz +0 -0
  44. package/dist/{chunk-2LOBDOTK.js → chunk-LYS44KMG.js} +125 -66
  45. package/dist/chunk-LYS44KMG.js.br +0 -0
  46. package/dist/chunk-LYS44KMG.js.gz +0 -0
  47. package/dist/{chunk-SOLHDKNK.mjs → chunk-N7EZIKF4.mjs} +1 -1
  48. package/dist/chunk-N7EZIKF4.mjs.br +0 -0
  49. package/dist/chunk-N7EZIKF4.mjs.gz +0 -0
  50. package/dist/index.js +34 -34
  51. package/dist/index.js.br +0 -0
  52. package/dist/index.js.gz +0 -0
  53. package/dist/index.mjs +5 -5
  54. package/dist/index.mjs.br +0 -0
  55. package/dist/index.mjs.gz +0 -0
  56. package/dist/internals.js +78 -78
  57. package/dist/internals.js.br +0 -0
  58. package/dist/internals.js.gz +0 -0
  59. package/dist/internals.mjs +3 -3
  60. package/dist/internals.mjs.br +0 -0
  61. package/dist/internals.mjs.gz +0 -0
  62. package/dist/viewer/index.js +21 -21
  63. package/dist/viewer/index.js.br +0 -0
  64. package/dist/viewer/index.js.gz +0 -0
  65. package/dist/viewer/index.mjs +5 -5
  66. package/dist/viewer/index.mjs.br +0 -0
  67. package/dist/viewer/index.mjs.gz +0 -0
  68. package/package.json +1 -1
  69. package/dist/AiChatPanel-G6DKXSM3.js.br +0 -0
  70. package/dist/AiChatPanel-G6DKXSM3.js.gz +0 -0
  71. package/dist/AiChatPanel-J5IGSCYA.mjs.br +0 -0
  72. package/dist/AiChatPanel-J5IGSCYA.mjs.gz +0 -0
  73. package/dist/Model3DScene-ID6CQKEJ.mjs.br +0 -0
  74. package/dist/Model3DScene-ID6CQKEJ.mjs.gz +0 -0
  75. package/dist/Model3DScene-S7LKZ6IA.js.br +0 -0
  76. package/dist/Model3DScene-S7LKZ6IA.js.gz +0 -0
  77. package/dist/SurfaceChart3DScene-V5H6MXYW.mjs.br +0 -0
  78. package/dist/SurfaceChart3DScene-V5H6MXYW.mjs.gz +0 -0
  79. package/dist/SurfaceChart3DScene-XSJXJM6H.js.br +0 -0
  80. package/dist/SurfaceChart3DScene-XSJXJM6H.js.gz +0 -0
  81. package/dist/chunk-2LOBDOTK.js.br +0 -0
  82. package/dist/chunk-2LOBDOTK.js.gz +0 -0
  83. package/dist/chunk-4KMTZLNS.js.br +0 -0
  84. package/dist/chunk-4KMTZLNS.js.gz +0 -0
  85. package/dist/chunk-6C4UY7GX.js.br +0 -0
  86. package/dist/chunk-6C4UY7GX.js.gz +0 -0
  87. package/dist/chunk-B4XJTZR4.js.br +0 -0
  88. package/dist/chunk-B4XJTZR4.js.gz +0 -0
  89. package/dist/chunk-GLQFRVAN.js.br +0 -0
  90. package/dist/chunk-GLQFRVAN.js.gz +0 -0
  91. package/dist/chunk-IGKLB7NQ.mjs.br +0 -0
  92. package/dist/chunk-IGKLB7NQ.mjs.gz +0 -0
  93. package/dist/chunk-SOLHDKNK.mjs.br +0 -0
  94. package/dist/chunk-SOLHDKNK.mjs.gz +0 -0
  95. package/dist/chunk-WH46JCNF.mjs.br +0 -0
  96. package/dist/chunk-WH46JCNF.mjs.gz +0 -0
  97. package/dist/chunk-Y4EB65WB.mjs.br +0 -0
  98. package/dist/chunk-Y4EB65WB.mjs.gz +0 -0
  99. package/dist/chunk-YUHEJWUN.mjs.br +0 -0
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk2LOBDOTK_js = require('./chunk-2LOBDOTK.js');
3
+ var chunkLYS44KMG_js = require('./chunk-LYS44KMG.js');
4
4
  var chunk4VNS5WPM_js = require('./chunk-4VNS5WPM.js');
5
5
  var mcp = require('pptx-viewer-mcp');
6
6
  var mcpSchemas = require('pptx-viewer-mcp/schemas');
@@ -14879,7 +14879,7 @@ async function buildSlideMarkdown(slides, slideIndex2, meta3, options = {}) {
14879
14879
  };
14880
14880
  let markdown;
14881
14881
  try {
14882
- const converter = new chunk2LOBDOTK_js.PptxMarkdownConverter(
14882
+ const converter = new chunkLYS44KMG_js.PptxMarkdownConverter(
14883
14883
  "",
14884
14884
  {
14885
14885
  sourceName: meta3.title ?? "deck.pptx",
@@ -15470,7 +15470,7 @@ var getTheme = (ctx) => {
15470
15470
  name: theme?.name,
15471
15471
  colorScheme: theme?.colorScheme,
15472
15472
  fontScheme: theme?.fontScheme,
15473
- availablePresets: Object.keys(chunk2LOBDOTK_js.ThemePresets)
15473
+ availablePresets: Object.keys(chunkLYS44KMG_js.ThemePresets)
15474
15474
  };
15475
15475
  };
15476
15476
  var readExecutors = {
Binary file
Binary file
@@ -19829,6 +19829,13 @@ function extractChildBehaviourDurationMs(cTn, toArray2) {
19829
19829
  }
19830
19830
  return longest;
19831
19831
  }
19832
+ function isInteractiveSequence(seq) {
19833
+ const cTn = seq["p:cTn"];
19834
+ if (!cTn || String(cTn["@_nodeType"] || "") === "mainSeq") {
19835
+ return false;
19836
+ }
19837
+ return extractTriggerShapeId(cTn) !== void 0;
19838
+ }
19832
19839
  var PptxNativeAnimationService = class {
19833
19840
  /**
19834
19841
  * Parse native OOXML animations from a slide's timing tree.
@@ -20029,6 +20036,9 @@ var PptxNativeAnimationService = class {
20029
20036
  );
20030
20037
  }
20031
20038
  for (const sequence of sequences) {
20039
+ if (isInteractiveSequence(sequence)) {
20040
+ continue;
20041
+ }
20032
20042
  this.walkTimingTree(sequence, animations, trigger, group);
20033
20043
  }
20034
20044
  for (const excl of exclusives) {
@@ -20054,6 +20064,9 @@ var PptxNativeAnimationService = class {
20054
20064
  );
20055
20065
  }
20056
20066
  for (const sequence of directSequences) {
20067
+ if (isInteractiveSequence(sequence)) {
20068
+ continue;
20069
+ }
20057
20070
  this.walkTimingTree(sequence, animations, currentTrigger, group);
20058
20071
  }
20059
20072
  }
@@ -20157,6 +20170,36 @@ var PptxNativeAnimationService = class {
20157
20170
  }
20158
20171
  return void 0;
20159
20172
  }
20173
+ /**
20174
+ * Collect every interactive `p:seq` reachable from `node`.
20175
+ *
20176
+ * Interactive sequences are normally siblings of the main sequence under the
20177
+ * root `p:par`, but a deck may nest one deeper. The generic walk skips every
20178
+ * sequence {@link isInteractiveSequence} matches, so this collector has to
20179
+ * reach exactly the same set or those effects would be dropped entirely.
20180
+ * Collection stops at an interactive sequence: its own subtree is walked by
20181
+ * {@link parseInteractiveSequences} under that sequence's trigger shape.
20182
+ */
20183
+ collectInteractiveSequences(node, found) {
20184
+ const containers = [];
20185
+ const cTn = node["p:cTn"];
20186
+ const childTnList = cTn?.["p:childTnLst"];
20187
+ if (childTnList) {
20188
+ containers.push(
20189
+ ...ensureArray5(childTnList["p:par"]),
20190
+ ...ensureArray5(childTnList["p:seq"]),
20191
+ ...ensureArray5(childTnList["p:excl"])
20192
+ );
20193
+ }
20194
+ containers.push(...ensureArray5(node["p:par"]), ...ensureArray5(node["p:seq"]));
20195
+ for (const container of containers) {
20196
+ if (isInteractiveSequence(container)) {
20197
+ found.push(container);
20198
+ continue;
20199
+ }
20200
+ this.collectInteractiveSequences(container, found);
20201
+ }
20202
+ }
20160
20203
  /**
20161
20204
  * Parse interactive sequences from the root `p:par` node.
20162
20205
  *
@@ -20167,25 +20210,11 @@ var PptxNativeAnimationService = class {
20167
20210
  * See ISO/IEC 29500-1 S19.5.60 (CT_TLTimeNodeSequence).
20168
20211
  */
20169
20212
  parseInteractiveSequences(rootPar, animations) {
20170
- const rootCTn = rootPar["p:cTn"];
20171
- if (!rootCTn) {
20172
- return;
20173
- }
20174
- const childTnList = rootCTn["p:childTnLst"];
20175
- if (!childTnList) {
20176
- return;
20177
- }
20178
- const sequences = ensureArray5(childTnList["p:seq"]);
20213
+ const sequences = [];
20214
+ this.collectInteractiveSequences(rootPar, sequences);
20179
20215
  for (const seq of sequences) {
20180
20216
  const seqCTn = seq["p:cTn"];
20181
- if (!seqCTn) {
20182
- continue;
20183
- }
20184
- const nodeType = String(seqCTn["@_nodeType"] || "");
20185
- if (nodeType === "mainSeq") {
20186
- continue;
20187
- }
20188
- const triggerShapeId = extractTriggerShapeId(seqCTn);
20217
+ const triggerShapeId = seqCTn ? extractTriggerShapeId(seqCTn) : void 0;
20189
20218
  if (!triggerShapeId) {
20190
20219
  continue;
20191
20220
  }
@@ -98273,6 +98302,10 @@ function interpolateOutline(from, to, t) {
98273
98302
  return parts.join(" ");
98274
98303
  }
98275
98304
  var MORPH_EASING = "cubic-bezier(0.4, 0, 0.2, 1)";
98305
+ var MORPH_FADE_OUT_HOLD_PERCENT = 4;
98306
+ var MORPH_FADE_OUT_END_PERCENT = 23;
98307
+ var MORPH_FADE_IN_START_PERCENT = 42;
98308
+ var MORPH_FADE_IN_EASING = "cubic-bezier(0, 0, 0.35, 1)";
98276
98309
  var PROXIMITY_THRESHOLD = 300;
98277
98310
  var PROXIMITY_SIZE_RATIO_LIMIT = 2;
98278
98311
  var GEOMETRY_MORPH_STEPS = 8;
@@ -98334,6 +98367,21 @@ ${body}
98334
98367
  keyframes
98335
98368
  };
98336
98369
  }
98370
+ function getElementMorphName(element) {
98371
+ if (element.name) {
98372
+ const name = element.name.trim();
98373
+ if (name.startsWith("!!")) {
98374
+ return name;
98375
+ }
98376
+ }
98377
+ if (hasTextProperties(element) && element.text) {
98378
+ const text2 = element.text.trim();
98379
+ if (text2.startsWith("!!")) {
98380
+ return text2;
98381
+ }
98382
+ }
98383
+ return void 0;
98384
+ }
98337
98385
  function groupChildren(element) {
98338
98386
  if (element.type !== "group") {
98339
98387
  return void 0;
@@ -98359,34 +98407,42 @@ function toAbsolute(child22, offsetX, offsetY) {
98359
98407
  }
98360
98408
  return { ...child22, x: child22.x + offsetX, y: child22.y + offsetY };
98361
98409
  }
98362
- function flattenMorphElements(elements, offsetX = 0, offsetY = 0) {
98410
+ function sameBox(a, b) {
98411
+ return Math.abs(a.x - b.x) <= 0.5 && Math.abs(a.y - b.y) <= 0.5 && Math.abs(a.width - b.width) <= 0.5 && Math.abs(a.height - b.height) <= 0.5;
98412
+ }
98413
+ function correspondingGroup(group, candidates) {
98414
+ const morphName = getElementMorphName(group);
98415
+ return candidates.find((candidate) => {
98416
+ if (candidate.type !== "group") {
98417
+ return false;
98418
+ }
98419
+ if (morphName !== void 0 && getElementMorphName(candidate) === morphName) {
98420
+ return true;
98421
+ }
98422
+ if (group.name && candidate.name === group.name) {
98423
+ return true;
98424
+ }
98425
+ return sameBox(group, candidate);
98426
+ });
98427
+ }
98428
+ function flattenMorphElements(elements, counterpart, offsetX = 0, offsetY = 0) {
98363
98429
  const out = [];
98364
98430
  for (const element of elements) {
98365
98431
  const children8 = groupChildren(element);
98366
98432
  if (children8 && containsMorphNamedDescendant(element)) {
98367
- out.push(...flattenMorphElements(children8, offsetX + element.x, offsetY + element.y));
98368
- continue;
98433
+ const twin = correspondingGroup(element, counterpart);
98434
+ const twinChildren = twin ? groupChildren(twin) ?? [] : void 0;
98435
+ if (twinChildren) {
98436
+ out.push(
98437
+ ...flattenMorphElements(children8, twinChildren, offsetX + element.x, offsetY + element.y)
98438
+ );
98439
+ continue;
98440
+ }
98369
98441
  }
98370
98442
  out.push(toAbsolute(element, offsetX, offsetY));
98371
98443
  }
98372
98444
  return out;
98373
98445
  }
98374
- var SAME_BOX_TOLERANCE_PX = 0.5;
98375
- function getElementMorphName(element) {
98376
- if (element.name) {
98377
- const name = element.name.trim();
98378
- if (name.startsWith("!!")) {
98379
- return name;
98380
- }
98381
- }
98382
- if (hasTextProperties(element) && element.text) {
98383
- const text2 = element.text.trim();
98384
- if (text2.startsWith("!!")) {
98385
- return text2;
98386
- }
98387
- }
98388
- return void 0;
98389
- }
98390
98446
  var NV_PR_KEYS = [
98391
98447
  "p:nvSpPr",
98392
98448
  "p:nvPicPr",
@@ -98422,8 +98478,8 @@ function matchMorphElementsFull(fromSlide, toSlide) {
98422
98478
  const pairs2 = [];
98423
98479
  const usedFrom = /* @__PURE__ */ new Set();
98424
98480
  const usedTo = /* @__PURE__ */ new Set();
98425
- const fromElements = flattenMorphElements(fromSlide.elements);
98426
- const toElements = flattenMorphElements(toSlide.elements);
98481
+ const fromElements = flattenMorphElements(fromSlide.elements, toSlide.elements);
98482
+ const toElements = flattenMorphElements(toSlide.elements, fromSlide.elements);
98427
98483
  for (const fromEl of fromElements) {
98428
98484
  const fromName = getElementMorphName(fromEl);
98429
98485
  if (!fromName) {
@@ -98520,22 +98576,6 @@ function matchMorphElementsFull(fromSlide, toSlide) {
98520
98576
  usedTo.add(bestMatch.id);
98521
98577
  }
98522
98578
  }
98523
- for (const fromEl of fromElements) {
98524
- if (usedFrom.has(fromEl.id)) {
98525
- continue;
98526
- }
98527
- for (const toEl of toElements) {
98528
- if (usedTo.has(toEl.id)) {
98529
- continue;
98530
- }
98531
- if (Math.abs(fromEl.x - toEl.x) <= SAME_BOX_TOLERANCE_PX && Math.abs(fromEl.y - toEl.y) <= SAME_BOX_TOLERANCE_PX && Math.abs(fromEl.width - toEl.width) <= SAME_BOX_TOLERANCE_PX && Math.abs(fromEl.height - toEl.height) <= SAME_BOX_TOLERANCE_PX) {
98532
- pairs2.push({ fromElement: fromEl, toElement: toEl });
98533
- usedFrom.add(fromEl.id);
98534
- usedTo.add(toEl.id);
98535
- break;
98536
- }
98537
- }
98538
- }
98539
98579
  const unmatchedFrom = fromElements.filter((el) => !usedFrom.has(el.id));
98540
98580
  const unmatchedTo = toElements.filter((el) => !usedTo.has(el.id));
98541
98581
  return { pairs: pairs2, unmatchedFrom, unmatchedTo };
@@ -98860,9 +98900,13 @@ function shortestRotationTarget(fromDeg, toDeg) {
98860
98900
  let delta = (toDeg - fromDeg) % 360;
98861
98901
  if (delta > 180) {
98862
98902
  delta -= 360;
98863
- } else if (delta <= -180) {
98903
+ } else if (delta < -180) {
98864
98904
  delta += 360;
98865
98905
  }
98906
+ if (Math.abs(Math.abs(delta) - 180) < 1e-9) {
98907
+ const start = (fromDeg % 360 + 360) % 360;
98908
+ delta = start >= 90 && start < 270 ? 180 : -180;
98909
+ }
98866
98910
  return fromDeg + delta;
98867
98911
  }
98868
98912
  function staticTransformSuffix(el) {
@@ -98872,20 +98916,29 @@ function staticTransformSuffix(el) {
98872
98916
  function generateUnmatchedFadeOutAnimations(elements, durationMs, startIndex) {
98873
98917
  return elements.map((el, i) => {
98874
98918
  const safeName = `pptx-morph-fadeout-${startIndex + i}-${el.id.replace(/[^a-zA-Z0-9]/gu, "")}`;
98919
+ const transform = ` transform: scale(1)${staticTransformSuffix(el)};`;
98875
98920
  const keyframes = `
98876
98921
  @keyframes ${safeName} {
98877
- from {
98922
+ 0% {
98878
98923
  opacity: ${el.opacity ?? 1};
98879
- transform: scale(1)${staticTransformSuffix(el)};
98924
+ ${transform}
98880
98925
  }
98881
- to {
98926
+ ${MORPH_FADE_OUT_HOLD_PERCENT}% {
98927
+ opacity: ${el.opacity ?? 1};
98928
+ ${transform}
98929
+ }
98930
+ ${MORPH_FADE_OUT_END_PERCENT}% {
98931
+ opacity: 0;
98932
+ ${transform}
98933
+ }
98934
+ 100% {
98882
98935
  opacity: 0;
98883
- transform: scale(0.95)${staticTransformSuffix(el)};
98936
+ ${transform}
98884
98937
  }
98885
98938
  }`;
98886
98939
  return {
98887
98940
  elementId: el.id,
98888
- animation: `${safeName} ${durationMs}ms ${MORPH_EASING} forwards`,
98941
+ animation: `${safeName} ${durationMs}ms linear forwards`,
98889
98942
  keyframes
98890
98943
  };
98891
98944
  });
@@ -98893,20 +98946,26 @@ function generateUnmatchedFadeOutAnimations(elements, durationMs, startIndex) {
98893
98946
  function generateUnmatchedFadeInAnimations(elements, durationMs, startIndex) {
98894
98947
  return elements.map((el, i) => {
98895
98948
  const safeName = `pptx-morph-fadein-${startIndex + i}-${el.id.replace(/[^a-zA-Z0-9]/gu, "")}`;
98949
+ const transform = ` transform: scale(1)${staticTransformSuffix(el)};`;
98896
98950
  const keyframes = `
98897
98951
  @keyframes ${safeName} {
98898
- from {
98952
+ 0% {
98899
98953
  opacity: 0;
98900
- transform: scale(0.95)${staticTransformSuffix(el)};
98954
+ ${transform}
98901
98955
  }
98902
- to {
98956
+ ${MORPH_FADE_IN_START_PERCENT}% {
98957
+ opacity: 0;
98958
+ animation-timing-function: ${MORPH_FADE_IN_EASING};
98959
+ ${transform}
98960
+ }
98961
+ 100% {
98903
98962
  opacity: ${el.opacity ?? 1};
98904
- transform: scale(1)${staticTransformSuffix(el)};
98963
+ ${transform}
98905
98964
  }
98906
98965
  }`;
98907
98966
  return {
98908
98967
  elementId: el.id,
98909
- animation: `${safeName} ${durationMs}ms ${MORPH_EASING} forwards`,
98968
+ animation: `${safeName} ${durationMs}ms linear forwards`,
98910
98969
  keyframes
98911
98970
  };
98912
98971
  });
@@ -98980,7 +99039,7 @@ function buildMorphTransitionPlan(fromSlide, toSlide, durationMs, mode = "object
98980
99039
  return void 0;
98981
99040
  }
98982
99041
  const animations = generateFullMorphTransition(fromSlide, toSlide, durationMs, mode);
98983
- const outgoingElements = flattenMorphElements(fromSlide.elements);
99042
+ const outgoingElements = flattenMorphElements(fromSlide.elements, toSlide.elements);
98984
99043
  const outgoingIds = new Set(outgoingElements.map((element) => element.id));
98985
99044
  const incomingAnimations = /* @__PURE__ */ new Map();
98986
99045
  const outgoingAnimations = /* @__PURE__ */ new Map();
Binary file
Binary file
@@ -1,4 +1,4 @@
1
- import { ThemePresets, PptxMarkdownConverter } from './chunk-WH46JCNF.mjs';
1
+ import { ThemePresets, PptxMarkdownConverter } from './chunk-HEAJOHLJ.mjs';
2
2
  import { __export } from './chunk-XGB3TDIC.mjs';
3
3
  import * as mcp from 'pptx-viewer-mcp';
4
4
  import * as mcpSchemas from 'pptx-viewer-mcp/schemas';
Binary file
Binary file
package/dist/index.js CHANGED
@@ -1,46 +1,46 @@
1
1
  'use strict';
2
2
 
3
- var chunkGLQFRVAN_js = require('./chunk-GLQFRVAN.js');
4
- require('./chunk-6C4UY7GX.js');
5
- var chunk4KMTZLNS_js = require('./chunk-4KMTZLNS.js');
6
- var chunkB4XJTZR4_js = require('./chunk-B4XJTZR4.js');
3
+ var chunkBVK7K74O_js = require('./chunk-BVK7K74O.js');
4
+ require('./chunk-JVE7BZ25.js');
5
+ var chunkJEIMWRKF_js = require('./chunk-JEIMWRKF.js');
6
+ var chunkGRW7HM6X_js = require('./chunk-GRW7HM6X.js');
7
7
  var chunk25VSL2BB_js = require('./chunk-25VSL2BB.js');
8
- var chunk2LOBDOTK_js = require('./chunk-2LOBDOTK.js');
8
+ var chunkLYS44KMG_js = require('./chunk-LYS44KMG.js');
9
9
  require('./chunk-4VNS5WPM.js');
10
10
 
11
11
 
12
12
 
13
13
  Object.defineProperty(exports, "PowerPointViewer", {
14
14
  enumerable: true,
15
- get: function () { return chunkGLQFRVAN_js.PowerPointViewer; }
15
+ get: function () { return chunkBVK7K74O_js.PowerPointViewer; }
16
16
  });
17
17
  Object.defineProperty(exports, "SlideCanvas", {
18
18
  enumerable: true,
19
- get: function () { return chunkGLQFRVAN_js.SlideCanvas; }
19
+ get: function () { return chunkBVK7K74O_js.SlideCanvas; }
20
20
  });
21
21
  Object.defineProperty(exports, "Toolbar", {
22
22
  enumerable: true,
23
- get: function () { return chunkGLQFRVAN_js.Toolbar; }
23
+ get: function () { return chunkBVK7K74O_js.Toolbar; }
24
24
  });
25
25
  Object.defineProperty(exports, "ViewerThemeProvider", {
26
26
  enumerable: true,
27
- get: function () { return chunkGLQFRVAN_js.ViewerThemeProvider; }
27
+ get: function () { return chunkBVK7K74O_js.ViewerThemeProvider; }
28
28
  });
29
29
  Object.defineProperty(exports, "useViewerTheme", {
30
30
  enumerable: true,
31
- get: function () { return chunkGLQFRVAN_js.useViewerTheme; }
31
+ get: function () { return chunkBVK7K74O_js.useViewerTheme; }
32
32
  });
33
33
  Object.defineProperty(exports, "renderToCanvas", {
34
34
  enumerable: true,
35
- get: function () { return chunk4KMTZLNS_js.renderToCanvas; }
35
+ get: function () { return chunkJEIMWRKF_js.renderToCanvas; }
36
36
  });
37
37
  Object.defineProperty(exports, "useViewerBuildingBlocks", {
38
38
  enumerable: true,
39
- get: function () { return chunk4KMTZLNS_js.useViewerBuildingBlocks; }
39
+ get: function () { return chunkJEIMWRKF_js.useViewerBuildingBlocks; }
40
40
  });
41
41
  Object.defineProperty(exports, "getAnimationInitialStyle", {
42
42
  enumerable: true,
43
- get: function () { return chunkB4XJTZR4_js.getAnimationInitialStyle; }
43
+ get: function () { return chunkGRW7HM6X_js.getAnimationInitialStyle; }
44
44
  });
45
45
  Object.defineProperty(exports, "LOCALE_CATALOG", {
46
46
  enumerable: true,
@@ -48,85 +48,85 @@ Object.defineProperty(exports, "LOCALE_CATALOG", {
48
48
  });
49
49
  Object.defineProperty(exports, "AVATAR_COLOR_SWATCHES", {
50
50
  enumerable: true,
51
- get: function () { return chunk2LOBDOTK_js.AVATAR_COLOR_SWATCHES; }
51
+ get: function () { return chunkLYS44KMG_js.AVATAR_COLOR_SWATCHES; }
52
52
  });
53
53
  Object.defineProperty(exports, "DEFAULT_VIEWER_PROFILE", {
54
54
  enumerable: true,
55
- get: function () { return chunk2LOBDOTK_js.DEFAULT_VIEWER_PROFILE; }
55
+ get: function () { return chunkLYS44KMG_js.DEFAULT_VIEWER_PROFILE; }
56
56
  });
57
57
  Object.defineProperty(exports, "THEME_CATALOG", {
58
58
  enumerable: true,
59
- get: function () { return chunk2LOBDOTK_js.THEME_CATALOG; }
59
+ get: function () { return chunkLYS44KMG_js.THEME_CATALOG; }
60
60
  });
61
61
  Object.defineProperty(exports, "VIEWER_PREFS_STORAGE_KEY", {
62
62
  enumerable: true,
63
- get: function () { return chunk2LOBDOTK_js.VIEWER_PREFS_STORAGE_KEY; }
63
+ get: function () { return chunkLYS44KMG_js.VIEWER_PREFS_STORAGE_KEY; }
64
64
  });
65
65
  Object.defineProperty(exports, "clearAllLocalViewerData", {
66
66
  enumerable: true,
67
- get: function () { return chunk2LOBDOTK_js.clearAllLocalViewerData; }
67
+ get: function () { return chunkLYS44KMG_js.clearAllLocalViewerData; }
68
68
  });
69
69
  Object.defineProperty(exports, "clearStoredViewerPrefs", {
70
70
  enumerable: true,
71
- get: function () { return chunk2LOBDOTK_js.clearStoredViewerPrefs; }
71
+ get: function () { return chunkLYS44KMG_js.clearStoredViewerPrefs; }
72
72
  });
73
73
  Object.defineProperty(exports, "defaultCssVars", {
74
74
  enumerable: true,
75
- get: function () { return chunk2LOBDOTK_js.defaultCssVars; }
75
+ get: function () { return chunkLYS44KMG_js.defaultCssVars; }
76
76
  });
77
77
  Object.defineProperty(exports, "defaultRadius", {
78
78
  enumerable: true,
79
- get: function () { return chunk2LOBDOTK_js.defaultRadius; }
79
+ get: function () { return chunkLYS44KMG_js.defaultRadius; }
80
80
  });
81
81
  Object.defineProperty(exports, "defaultThemeColors", {
82
82
  enumerable: true,
83
- get: function () { return chunk2LOBDOTK_js.defaultThemeColors; }
83
+ get: function () { return chunkLYS44KMG_js.defaultThemeColors; }
84
84
  });
85
85
  Object.defineProperty(exports, "getLocalStorageUsageSummary", {
86
86
  enumerable: true,
87
- get: function () { return chunk2LOBDOTK_js.getLocalStorageUsageSummary; }
87
+ get: function () { return chunkLYS44KMG_js.getLocalStorageUsageSummary; }
88
88
  });
89
89
  Object.defineProperty(exports, "readStoredViewerPrefs", {
90
90
  enumerable: true,
91
- get: function () { return chunk2LOBDOTK_js.readStoredViewerPrefs; }
91
+ get: function () { return chunkLYS44KMG_js.readStoredViewerPrefs; }
92
92
  });
93
93
  Object.defineProperty(exports, "resolveProfileInitial", {
94
94
  enumerable: true,
95
- get: function () { return chunk2LOBDOTK_js.resolveProfileInitial; }
95
+ get: function () { return chunkLYS44KMG_js.resolveProfileInitial; }
96
96
  });
97
97
  Object.defineProperty(exports, "resolveThemeCatalogEntry", {
98
98
  enumerable: true,
99
- get: function () { return chunk2LOBDOTK_js.resolveThemeCatalogEntry; }
99
+ get: function () { return chunkLYS44KMG_js.resolveThemeCatalogEntry; }
100
100
  });
101
101
  Object.defineProperty(exports, "saveViewerProfile", {
102
102
  enumerable: true,
103
- get: function () { return chunk2LOBDOTK_js.saveViewerProfile; }
103
+ get: function () { return chunkLYS44KMG_js.saveViewerProfile; }
104
104
  });
105
105
  Object.defineProperty(exports, "themeToCssVars", {
106
106
  enumerable: true,
107
- get: function () { return chunk2LOBDOTK_js.themeToCssVars; }
107
+ get: function () { return chunkLYS44KMG_js.themeToCssVars; }
108
108
  });
109
109
  Object.defineProperty(exports, "vermilionDarkColors", {
110
110
  enumerable: true,
111
- get: function () { return chunk2LOBDOTK_js.vermilionDarkColors; }
111
+ get: function () { return chunkLYS44KMG_js.vermilionDarkColors; }
112
112
  });
113
113
  Object.defineProperty(exports, "vermilionDarkTheme", {
114
114
  enumerable: true,
115
- get: function () { return chunk2LOBDOTK_js.vermilionDarkTheme; }
115
+ get: function () { return chunkLYS44KMG_js.vermilionDarkTheme; }
116
116
  });
117
117
  Object.defineProperty(exports, "vermilionLightColors", {
118
118
  enumerable: true,
119
- get: function () { return chunk2LOBDOTK_js.vermilionLightColors; }
119
+ get: function () { return chunkLYS44KMG_js.vermilionLightColors; }
120
120
  });
121
121
  Object.defineProperty(exports, "vermilionLightTheme", {
122
122
  enumerable: true,
123
- get: function () { return chunk2LOBDOTK_js.vermilionLightTheme; }
123
+ get: function () { return chunkLYS44KMG_js.vermilionLightTheme; }
124
124
  });
125
125
  Object.defineProperty(exports, "vermilionRadius", {
126
126
  enumerable: true,
127
- get: function () { return chunk2LOBDOTK_js.vermilionRadius; }
127
+ get: function () { return chunkLYS44KMG_js.vermilionRadius; }
128
128
  });
129
129
  Object.defineProperty(exports, "writeStoredViewerPrefs", {
130
130
  enumerable: true,
131
- get: function () { return chunk2LOBDOTK_js.writeStoredViewerPrefs; }
131
+ get: function () { return chunkLYS44KMG_js.writeStoredViewerPrefs; }
132
132
  });
package/dist/index.js.br CHANGED
Binary file
package/dist/index.js.gz CHANGED
Binary file
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
- export { PowerPointViewer, SlideCanvas, Toolbar, ViewerThemeProvider, useViewerTheme } from './chunk-Y4EB65WB.mjs';
2
- import './chunk-SOLHDKNK.mjs';
3
- export { renderToCanvas, useViewerBuildingBlocks } from './chunk-YUHEJWUN.mjs';
4
- export { getAnimationInitialStyle } from './chunk-IGKLB7NQ.mjs';
1
+ export { PowerPointViewer, SlideCanvas, Toolbar, ViewerThemeProvider, useViewerTheme } from './chunk-2UCJYJUS.mjs';
2
+ import './chunk-N7EZIKF4.mjs';
3
+ export { renderToCanvas, useViewerBuildingBlocks } from './chunk-IDK6XECR.mjs';
4
+ export { getAnimationInitialStyle } from './chunk-HQGLKAIY.mjs';
5
5
  export { LOCALE_CATALOG } from './chunk-Z6HIZWIQ.mjs';
6
- export { AVATAR_COLOR_SWATCHES, DEFAULT_VIEWER_PROFILE, THEME_CATALOG, VIEWER_PREFS_STORAGE_KEY, clearAllLocalViewerData, clearStoredViewerPrefs, defaultCssVars, defaultRadius, defaultThemeColors, getLocalStorageUsageSummary, readStoredViewerPrefs, resolveProfileInitial, resolveThemeCatalogEntry, saveViewerProfile, themeToCssVars, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, writeStoredViewerPrefs } from './chunk-WH46JCNF.mjs';
6
+ export { AVATAR_COLOR_SWATCHES, DEFAULT_VIEWER_PROFILE, THEME_CATALOG, VIEWER_PREFS_STORAGE_KEY, clearAllLocalViewerData, clearStoredViewerPrefs, defaultCssVars, defaultRadius, defaultThemeColors, getLocalStorageUsageSummary, readStoredViewerPrefs, resolveProfileInitial, resolveThemeCatalogEntry, saveViewerProfile, themeToCssVars, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, writeStoredViewerPrefs } from './chunk-HEAJOHLJ.mjs';
7
7
  import './chunk-XGB3TDIC.mjs';
package/dist/index.mjs.br CHANGED
Binary file
package/dist/index.mjs.gz CHANGED
Binary file