pptx-react-viewer 4.64.0 → 4.64.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 (81) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/{AiChatPanel-DRY6JUQE.js → AiChatPanel-7AFFNYEN.js} +19 -19
  3. package/dist/AiChatPanel-7AFFNYEN.js.br +0 -0
  4. package/dist/AiChatPanel-7AFFNYEN.js.gz +0 -0
  5. package/dist/{AiChatPanel-KBSDSD5Y.mjs → AiChatPanel-7U7IJRNY.mjs} +1 -1
  6. package/dist/AiChatPanel-7U7IJRNY.mjs.br +0 -0
  7. package/dist/AiChatPanel-7U7IJRNY.mjs.gz +0 -0
  8. package/dist/ai.js +2 -2
  9. package/dist/ai.js.br +0 -0
  10. package/dist/ai.js.gz +0 -0
  11. package/dist/ai.mjs +1 -1
  12. package/dist/ai.mjs.br +0 -0
  13. package/dist/ai.mjs.gz +0 -0
  14. package/dist/{chunk-JKSUB7DR.js → chunk-5DBKW7F3.js} +3 -3
  15. package/dist/chunk-5DBKW7F3.js.br +0 -0
  16. package/dist/{chunk-JKSUB7DR.js.gz → chunk-5DBKW7F3.js.gz} +0 -0
  17. package/dist/{chunk-46VMP4EH.mjs → chunk-5ZW3GP6C.mjs} +4 -4
  18. package/dist/chunk-5ZW3GP6C.mjs.br +0 -0
  19. package/dist/chunk-5ZW3GP6C.mjs.gz +0 -0
  20. package/dist/{chunk-FYYQ4OGF.mjs → chunk-G5JGUSBL.mjs} +12 -5
  21. package/dist/chunk-G5JGUSBL.mjs.br +0 -0
  22. package/dist/chunk-G5JGUSBL.mjs.gz +0 -0
  23. package/dist/{chunk-PX46BOMQ.js → chunk-GXL2XMST.js} +560 -560
  24. package/dist/chunk-GXL2XMST.js.br +0 -0
  25. package/dist/chunk-GXL2XMST.js.gz +0 -0
  26. package/dist/{chunk-SHI3PQ5F.mjs → chunk-HZBEKG5R.mjs} +4 -4
  27. package/dist/chunk-HZBEKG5R.mjs.br +0 -0
  28. package/dist/chunk-HZBEKG5R.mjs.gz +0 -0
  29. package/dist/{chunk-7UFO4OZQ.js → chunk-PNDORR6S.js} +1 -1
  30. package/dist/chunk-PNDORR6S.js.br +0 -0
  31. package/dist/chunk-PNDORR6S.js.gz +0 -0
  32. package/dist/{chunk-73SDWM6K.js → chunk-VGU5S37T.js} +212 -205
  33. package/dist/chunk-VGU5S37T.js.br +0 -0
  34. package/dist/chunk-VGU5S37T.js.gz +0 -0
  35. package/dist/{chunk-SGWF6GUX.mjs → chunk-WAIX4VJ2.mjs} +1 -1
  36. package/dist/chunk-WAIX4VJ2.mjs.br +0 -0
  37. package/dist/chunk-WAIX4VJ2.mjs.gz +0 -0
  38. package/dist/index.js +27 -27
  39. package/dist/index.js.br +0 -0
  40. package/dist/index.js.gz +0 -0
  41. package/dist/index.mjs +4 -4
  42. package/dist/index.mjs.br +0 -0
  43. package/dist/index.mjs.gz +0 -0
  44. package/dist/internals.js +81 -81
  45. package/dist/internals.js.br +0 -0
  46. package/dist/internals.js.gz +0 -0
  47. package/dist/internals.mjs +2 -2
  48. package/dist/internals.mjs.br +0 -0
  49. package/dist/internals.mjs.gz +0 -0
  50. package/dist/pptx-viewer-canvas.css +1 -1
  51. package/dist/pptx-viewer-canvas.css.br +0 -0
  52. package/dist/pptx-viewer-canvas.css.gz +0 -0
  53. package/dist/pptx-viewer.css +1 -1
  54. package/dist/pptx-viewer.css.br +0 -0
  55. package/dist/pptx-viewer.css.gz +0 -0
  56. package/dist/viewer/index.js +21 -21
  57. package/dist/viewer/index.js.br +0 -0
  58. package/dist/viewer/index.js.gz +0 -0
  59. package/dist/viewer/index.mjs +4 -4
  60. package/dist/viewer/index.mjs.br +0 -0
  61. package/dist/viewer/index.mjs.gz +0 -0
  62. package/package.json +3 -3
  63. package/dist/AiChatPanel-DRY6JUQE.js.br +0 -0
  64. package/dist/AiChatPanel-DRY6JUQE.js.gz +0 -0
  65. package/dist/AiChatPanel-KBSDSD5Y.mjs.br +0 -0
  66. package/dist/AiChatPanel-KBSDSD5Y.mjs.gz +0 -0
  67. package/dist/chunk-46VMP4EH.mjs.br +0 -0
  68. package/dist/chunk-46VMP4EH.mjs.gz +0 -0
  69. package/dist/chunk-73SDWM6K.js.br +0 -0
  70. package/dist/chunk-73SDWM6K.js.gz +0 -0
  71. package/dist/chunk-7UFO4OZQ.js.br +0 -0
  72. package/dist/chunk-7UFO4OZQ.js.gz +0 -0
  73. package/dist/chunk-FYYQ4OGF.mjs.br +0 -0
  74. package/dist/chunk-FYYQ4OGF.mjs.gz +0 -0
  75. package/dist/chunk-JKSUB7DR.js.br +0 -0
  76. package/dist/chunk-PX46BOMQ.js.br +0 -0
  77. package/dist/chunk-PX46BOMQ.js.gz +0 -0
  78. package/dist/chunk-SGWF6GUX.mjs.br +0 -0
  79. package/dist/chunk-SGWF6GUX.mjs.gz +0 -0
  80. package/dist/chunk-SHI3PQ5F.mjs.br +0 -0
  81. package/dist/chunk-SHI3PQ5F.mjs.gz +0 -0
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkJKSUB7DR_js = require('./chunk-JKSUB7DR.js');
3
+ var chunk5DBKW7F3_js = require('./chunk-5DBKW7F3.js');
4
4
  var pptx = require('ooxml-ui/pptx');
5
5
  var React17 = require('react');
6
6
  var jsxRuntime = require('react/jsx-runtime');
@@ -604,9 +604,9 @@ function differsOnlyInMasterSet(previous, next) {
604
604
  }
605
605
  function recordExplicitSlideUpdate(history, previous, before, label) {
606
606
  if (previous && serializeHistoryDocument(previous) !== serializeHistoryDocument(before)) {
607
- history.record(chunkJKSUB7DR_js.cloneHistorySnapshot(previous), previous.actionLabel);
607
+ history.record(chunk5DBKW7F3_js.cloneHistorySnapshot(previous), previous.actionLabel);
608
608
  }
609
- history.record({ ...chunkJKSUB7DR_js.cloneHistorySnapshot(before), actionLabel: label }, label);
609
+ history.record({ ...chunk5DBKW7F3_js.cloneHistorySnapshot(before), actionLabel: label }, label);
610
610
  }
611
611
  var POLL_INTERVAL_MS = 16;
612
612
  function usePointerReleaseWakeup(hasActivePointerInteraction) {
@@ -688,8 +688,8 @@ function useEditorHistory(input) {
688
688
  width: canvasSize.width,
689
689
  height: canvasSize.height,
690
690
  activeSlideIndex,
691
- slides: slides.map(chunkJKSUB7DR_js.cloneSlide),
692
- templateElementsBySlideId: chunkJKSUB7DR_js.cloneTemplateElementsBySlideId(templateElementsBySlideId),
691
+ slides: slides.map(chunk5DBKW7F3_js.cloneSlide),
692
+ templateElementsBySlideId: chunk5DBKW7F3_js.cloneTemplateElementsBySlideId(templateElementsBySlideId),
693
693
  ...recordedTheme ? { theme: recordedTheme } : {},
694
694
  ...actionLabel ? { actionLabel } : {}
695
695
  };
@@ -703,9 +703,9 @@ function useEditorHistory(input) {
703
703
  width: snapshot.width,
704
704
  height: snapshot.height
705
705
  });
706
- setSlides(snapshot.slides.map(chunkJKSUB7DR_js.cloneSlide));
706
+ setSlides(snapshot.slides.map(chunk5DBKW7F3_js.cloneSlide));
707
707
  setTemplateElementsBySlideId(
708
- chunkJKSUB7DR_js.cloneTemplateElementsBySlideId(snapshot.templateElementsBySlideId)
708
+ chunk5DBKW7F3_js.cloneTemplateElementsBySlideId(snapshot.templateElementsBySlideId)
709
709
  );
710
710
  setActiveSlideIndex(Math.min(snapshot.activeSlideIndex, maxSlideIndex));
711
711
  setSelectedElementIds([]);
@@ -771,8 +771,8 @@ function useEditorHistory(input) {
771
771
  return;
772
772
  }
773
773
  isApplyingHistoryRef.current = true;
774
- const nextSnapshot = chunkJKSUB7DR_js.cloneHistorySnapshot(result.snapshot);
775
- lastHistorySnapshotRef.current = chunkJKSUB7DR_js.cloneHistorySnapshot(nextSnapshot);
774
+ const nextSnapshot = chunk5DBKW7F3_js.cloneHistorySnapshot(result.snapshot);
775
+ lastHistorySnapshotRef.current = chunk5DBKW7F3_js.cloneHistorySnapshot(nextSnapshot);
776
776
  lastHistorySerializedRef.current = serializeHistoryDocument(nextSnapshot);
777
777
  applyHistorySnapshot(nextSnapshot);
778
778
  restoreTheme(currentSnapshot, nextSnapshot);
@@ -796,8 +796,8 @@ function useEditorHistory(input) {
796
796
  return;
797
797
  }
798
798
  isApplyingHistoryRef.current = true;
799
- const targetSnapshot = chunkJKSUB7DR_js.cloneHistorySnapshot(result.snapshot);
800
- lastHistorySnapshotRef.current = chunkJKSUB7DR_js.cloneHistorySnapshot(targetSnapshot);
799
+ const targetSnapshot = chunk5DBKW7F3_js.cloneHistorySnapshot(result.snapshot);
800
+ lastHistorySnapshotRef.current = chunk5DBKW7F3_js.cloneHistorySnapshot(targetSnapshot);
801
801
  lastHistorySerializedRef.current = serializeHistoryDocument(targetSnapshot);
802
802
  applyHistorySnapshot(targetSnapshot);
803
803
  restoreTheme(currentSnapshot, targetSnapshot);
@@ -815,7 +815,7 @@ function useEditorHistory(input) {
815
815
  (initialSnapshot) => {
816
816
  history.clear();
817
817
  if (initialSnapshot) {
818
- const clonedInitial = chunkJKSUB7DR_js.cloneHistorySnapshot(initialSnapshot);
818
+ const clonedInitial = chunk5DBKW7F3_js.cloneHistorySnapshot(initialSnapshot);
819
819
  lastHistorySnapshotRef.current = clonedInitial;
820
820
  lastHistorySerializedRef.current = serializeHistoryDocument(clonedInitial);
821
821
  } else {
@@ -889,16 +889,16 @@ function useEditorHistory(input) {
889
889
  slides
890
890
  ]);
891
891
  const commitSlides = (nextSlides, label, beforeSlides = slides, nextSlideMasters) => {
892
- const before = { ...buildHistorySnapshot(), slides: beforeSlides.map(chunkJKSUB7DR_js.cloneSlide) };
892
+ const before = { ...buildHistorySnapshot(), slides: beforeSlides.map(chunk5DBKW7F3_js.cloneSlide) };
893
893
  const { theme: beforeTheme, ...unthemed } = before;
894
894
  const afterTheme = nextSlideMasters ? pptx.historyTheme(theme, nextSlideMasters) : beforeTheme;
895
895
  const after = {
896
896
  ...unthemed,
897
- slides: nextSlides.map(chunkJKSUB7DR_js.cloneSlide),
897
+ slides: nextSlides.map(chunk5DBKW7F3_js.cloneSlide),
898
898
  ...afterTheme ? { theme: afterTheme } : {}
899
899
  };
900
900
  recordExplicitSlideUpdate(history, lastHistorySnapshotRef.current, before, label);
901
- lastHistorySnapshotRef.current = chunkJKSUB7DR_js.cloneHistorySnapshot(after);
901
+ lastHistorySnapshotRef.current = chunk5DBKW7F3_js.cloneHistorySnapshot(after);
902
902
  lastHistorySerializedRef.current = serializeHistoryDocument(after);
903
903
  isApplyingHistoryRef.current = false;
904
904
  setSlides(nextSlides);
@@ -1092,22 +1092,22 @@ function useZoomViewport({
1092
1092
  selectedElements.forEach((element) => {
1093
1093
  minX = Math.min(minX, element.x);
1094
1094
  minY = Math.min(minY, element.y);
1095
- maxX = Math.max(maxX, element.x + Math.max(element.width, chunkJKSUB7DR_js.MIN_ELEMENT_SIZE));
1096
- maxY = Math.max(maxY, element.y + Math.max(element.height, chunkJKSUB7DR_js.MIN_ELEMENT_SIZE));
1095
+ maxX = Math.max(maxX, element.x + Math.max(element.width, chunk5DBKW7F3_js.MIN_ELEMENT_SIZE));
1096
+ maxY = Math.max(maxY, element.y + Math.max(element.height, chunk5DBKW7F3_js.MIN_ELEMENT_SIZE));
1097
1097
  });
1098
1098
  if (!Number.isFinite(minX) || !Number.isFinite(minY) || !Number.isFinite(maxX) || !Number.isFinite(maxY)) {
1099
1099
  return;
1100
1100
  }
1101
1101
  const selectionBounds = { minX, minY, maxX, maxY };
1102
- const boundsWidth = Math.max(selectionBounds.maxX - selectionBounds.minX, chunkJKSUB7DR_js.MIN_ELEMENT_SIZE);
1103
- const boundsHeight = Math.max(selectionBounds.maxY - selectionBounds.minY, chunkJKSUB7DR_js.MIN_ELEMENT_SIZE);
1102
+ const boundsWidth = Math.max(selectionBounds.maxX - selectionBounds.minX, chunk5DBKW7F3_js.MIN_ELEMENT_SIZE);
1103
+ const boundsHeight = Math.max(selectionBounds.maxY - selectionBounds.minY, chunk5DBKW7F3_js.MIN_ELEMENT_SIZE);
1104
1104
  const availableWidth = Math.max(
1105
- effectiveEditorDimensions.width - chunkJKSUB7DR_js.ZOOM_TO_SELECTION_PADDING,
1106
- chunkJKSUB7DR_js.MIN_ELEMENT_SIZE
1105
+ effectiveEditorDimensions.width - chunk5DBKW7F3_js.ZOOM_TO_SELECTION_PADDING,
1106
+ chunk5DBKW7F3_js.MIN_ELEMENT_SIZE
1107
1107
  );
1108
1108
  const availableHeight = Math.max(
1109
- effectiveEditorDimensions.height - chunkJKSUB7DR_js.ZOOM_TO_SELECTION_PADDING,
1110
- chunkJKSUB7DR_js.MIN_ELEMENT_SIZE
1109
+ effectiveEditorDimensions.height - chunk5DBKW7F3_js.ZOOM_TO_SELECTION_PADDING,
1110
+ chunk5DBKW7F3_js.MIN_ELEMENT_SIZE
1111
1111
  );
1112
1112
  const targetEditorScale = Math.min(
1113
1113
  availableWidth / boundsWidth,
@@ -4026,8 +4026,8 @@ function useViewerCoreState(_input) {
4026
4026
  const { slides, setSlides, slidesRef } = useSlideState();
4027
4027
  const [templateElementsBySlideId, setTemplateElementsBySlideId] = React17.useState({});
4028
4028
  const [canvasSize, setCanvasSize] = React17.useState({
4029
- width: chunkJKSUB7DR_js.DEFAULT_CANVAS_WIDTH,
4030
- height: chunkJKSUB7DR_js.DEFAULT_CANVAS_HEIGHT
4029
+ width: chunk5DBKW7F3_js.DEFAULT_CANVAS_WIDTH,
4030
+ height: chunk5DBKW7F3_js.DEFAULT_CANVAS_HEIGHT
4031
4031
  });
4032
4032
  const [slideSizeEmu, setSlideSizeEmu] = React17.useState();
4033
4033
  const [activeSlideIndex, setActiveSlideIndex] = React17.useState(0);
@@ -4419,7 +4419,7 @@ function useLoadContent({
4419
4419
  initialSlideRef.current = initialSlide;
4420
4420
  const limitsRef = React17.useRef(limits);
4421
4421
  limitsRef.current = limits;
4422
- const { t } = chunkJKSUB7DR_js.useTranslation();
4422
+ const { t } = chunk5DBKW7F3_js.useTranslation();
4423
4423
  const translateRef = React17.useRef(t);
4424
4424
  translateRef.current = t;
4425
4425
  const originalBufferRef = React17.useRef(null);
@@ -4519,12 +4519,12 @@ function useLoadContent({
4519
4519
  }
4520
4520
  resources.commit();
4521
4521
  handlerRef.current = handler;
4522
- const partition = chunkJKSUB7DR_js.partitionTemplateElements(nextSlides);
4522
+ const partition = chunk5DBKW7F3_js.partitionTemplateElements(nextSlides);
4523
4523
  setSlides(partition.slides);
4524
4524
  setTemplateElementsBySlideId(partition.templateElementsBySlideId);
4525
4525
  setCanvasSize({
4526
- width: parsed.width ?? chunkJKSUB7DR_js.DEFAULT_CANVAS_WIDTH,
4527
- height: parsed.height ?? chunkJKSUB7DR_js.DEFAULT_CANVAS_HEIGHT
4526
+ width: parsed.width ?? chunk5DBKW7F3_js.DEFAULT_CANVAS_WIDTH,
4527
+ height: parsed.height ?? chunk5DBKW7F3_js.DEFAULT_CANVAS_HEIGHT
4528
4528
  });
4529
4529
  setSlideSizeEmu(
4530
4530
  typeof parsed.widthEmu === "number" && typeof parsed.heightEmu === "number" && parsed.widthEmu > 0 && parsed.heightEmu > 0 ? {
@@ -4940,7 +4940,7 @@ function useElementOperations(input) {
4940
4940
  );
4941
4941
  return;
4942
4942
  }
4943
- if (chunkJKSUB7DR_js.isTemplateElementId(elementId)) {
4943
+ if (chunk5DBKW7F3_js.isTemplateElementId(elementId)) {
4944
4944
  const slideId = activeSlide?.id;
4945
4945
  if (slideId) {
4946
4946
  setTemplateElementsBySlideId((prev) => ({
@@ -5227,8 +5227,8 @@ function createCanvasGestures(getInput, frames = animationFrames) {
5227
5227
  }
5228
5228
  function paintResize(resize, transform) {
5229
5229
  const { x, y } = transform;
5230
- const width = Math.max(transform.width, chunkJKSUB7DR_js.MIN_ELEMENT_SIZE);
5231
- const height = Math.max(transform.height, chunkJKSUB7DR_js.MIN_ELEMENT_SIZE);
5230
+ const width = Math.max(transform.width, chunk5DBKW7F3_js.MIN_ELEMENT_SIZE);
5231
+ const height = Math.max(transform.height, chunk5DBKW7F3_js.MIN_ELEMENT_SIZE);
5232
5232
  resize.lastX = x;
5233
5233
  resize.lastY = y;
5234
5234
  resize.lastWidth = transform.width;
@@ -5285,7 +5285,7 @@ function createCanvasGestures(getInput, frames = animationFrames) {
5285
5285
  getGridSize: () => getInput().gridSpacingPx,
5286
5286
  getSnapToShape: () => getInput().snapToShape,
5287
5287
  getGuides: () => getInput().guides.map(({ axis, position }) => ({ axis, position })),
5288
- getMinSize: () => chunkJKSUB7DR_js.MIN_ELEMENT_SIZE,
5288
+ getMinSize: () => chunk5DBKW7F3_js.MIN_ELEMENT_SIZE,
5289
5289
  getSnapExcludeIds: () => armed?.kind === "move" ? Object.keys(armed.drag.startPositionsById) : [],
5290
5290
  getStageOrigin: () => {
5291
5291
  const rect = getInput().canvasStageRef.current?.getBoundingClientRect();
@@ -5366,7 +5366,7 @@ function commitMove(input, drag) {
5366
5366
  const start = drag.startPositionsById[el.id];
5367
5367
  return start ? { ...el, x: start.x + dx, y: start.y + dy } : el;
5368
5368
  });
5369
- return chunkJKSUB7DR_js.applyReroutedConnectors(moved, chunkJKSUB7DR_js.rerouteConnectorsForMovedElements(moved, movedIds));
5369
+ return chunk5DBKW7F3_js.applyReroutedConnectors(moved, chunk5DBKW7F3_js.rerouteConnectorsForMovedElements(moved, movedIds));
5370
5370
  };
5371
5371
  if (input.editTemplateMode) {
5372
5372
  const slideId = input.activeSlide?.id;
@@ -5397,8 +5397,8 @@ function commitResize(input, resize) {
5397
5397
  if (i !== input.activeSlideIndex) {
5398
5398
  return s;
5399
5399
  }
5400
- const rerouted = chunkJKSUB7DR_js.rerouteConnectorsForMovedElements(s.elements, movedIds);
5401
- return rerouted.length === 0 ? s : { ...s, elements: chunkJKSUB7DR_js.applyReroutedConnectors(s.elements, rerouted) };
5400
+ const rerouted = chunk5DBKW7F3_js.rerouteConnectorsForMovedElements(s.elements, movedIds);
5401
+ return rerouted.length === 0 ? s : { ...s, elements: chunk5DBKW7F3_js.applyReroutedConnectors(s.elements, rerouted) };
5402
5402
  })
5403
5403
  );
5404
5404
  }
@@ -6233,7 +6233,7 @@ function createStructuredElementHandlers(deps) {
6233
6233
  return;
6234
6234
  }
6235
6235
  const resolved = resolveHyperlinkEditResult(data);
6236
- if (resolved.url && !chunkJKSUB7DR_js.isUrlSafe(resolved.url)) {
6236
+ if (resolved.url && !chunk5DBKW7F3_js.isUrlSafe(resolved.url)) {
6237
6237
  return;
6238
6238
  }
6239
6239
  const actionClick = {
@@ -6279,7 +6279,7 @@ function createStructuredElementHandlers(deps) {
6279
6279
  if (!activeSlide) {
6280
6280
  return;
6281
6281
  }
6282
- const preset = chunkJKSUB7DR_js.ACTION_BUTTON_PRESETS.find((p) => p.shapeType === shapeType);
6282
+ const preset = chunk5DBKW7F3_js.ACTION_BUTTON_PRESETS.find((p) => p.shapeType === shapeType);
6283
6283
  if (!preset) {
6284
6284
  return;
6285
6285
  }
@@ -6366,7 +6366,7 @@ function useInsertElements(input) {
6366
6366
  width: 300,
6367
6367
  height: 60,
6368
6368
  text: "",
6369
- textStyle: { fontSize: chunkJKSUB7DR_js.DEFAULT_TEXT_FONT_SIZE }
6369
+ textStyle: { fontSize: chunk5DBKW7F3_js.DEFAULT_TEXT_FONT_SIZE }
6370
6370
  });
6371
6371
  };
6372
6372
  const handleAddShape = () => {
@@ -6388,7 +6388,7 @@ function useInsertElements(input) {
6388
6388
  }
6389
6389
  });
6390
6390
  };
6391
- const handleAddTable = (rows = chunkJKSUB7DR_js.DEFAULT_TABLE_ROWS, columns = chunkJKSUB7DR_js.DEFAULT_TABLE_COLUMNS) => {
6391
+ const handleAddTable = (rows = chunk5DBKW7F3_js.DEFAULT_TABLE_ROWS, columns = chunk5DBKW7F3_js.DEFAULT_TABLE_COLUMNS) => {
6392
6392
  if (!activeSlide) {
6393
6393
  return;
6394
6394
  }
@@ -6562,7 +6562,7 @@ function useGroupAlignLayerHandlers(input) {
6562
6562
  history
6563
6563
  } = input;
6564
6564
  const updateElementsOwning = (elementId, updater) => {
6565
- if (editTemplateMode && !chunkJKSUB7DR_js.isTemplateElementId(elementId)) {
6565
+ if (editTemplateMode && !chunk5DBKW7F3_js.isTemplateElementId(elementId)) {
6566
6566
  ops.updateSlides(
6567
6567
  (prev) => prev.map(
6568
6568
  (slide, index) => index === activeSlideIndex ? { ...slide, elements: updater(slide.elements) } : slide
@@ -6596,9 +6596,9 @@ function useGroupAlignLayerHandlers(input) {
6596
6596
  return;
6597
6597
  }
6598
6598
  const group = selectedElement;
6599
- const intoTemplate = chunkJKSUB7DR_js.isTemplateElementId(group.id);
6599
+ const intoTemplate = chunk5DBKW7F3_js.isTemplateElementId(group.id);
6600
6600
  const childIds = group.children.map(
6601
- (child) => intoTemplate ? chunkJKSUB7DR_js.makeCloneId(true, child.id || group.id) : child.id || pptx.generateElementId()
6601
+ (child) => intoTemplate ? chunk5DBKW7F3_js.makeCloneId(true, child.id || group.id) : child.id || pptx.generateElementId()
6602
6602
  );
6603
6603
  const { elements, childIds: usedIds } = pptx.ungroupElements(
6604
6604
  ops.activeElements,
@@ -7034,7 +7034,7 @@ function createTableMergeHandlers(input) {
7034
7034
  if (!nextCell || nextCell.hMerge || nextCell.vMerge) {
7035
7035
  return;
7036
7036
  }
7037
- const newTableData = chunkJKSUB7DR_js.mergeCells(
7037
+ const newTableData = chunk5DBKW7F3_js.mergeCells(
7038
7038
  [
7039
7039
  { row: rowIndex, col: columnIndex },
7040
7040
  { row: rowIndex, col: nextColIdx }
@@ -7042,7 +7042,7 @@ function createTableMergeHandlers(input) {
7042
7042
  td
7043
7043
  );
7044
7044
  const updates = { tableData: newTableData };
7045
- const newRawXml = chunkJKSUB7DR_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
7045
+ const newRawXml = chunk5DBKW7F3_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
7046
7046
  if (newRawXml) {
7047
7047
  updates.rawXml = newRawXml;
7048
7048
  }
@@ -7068,7 +7068,7 @@ function createTableMergeHandlers(input) {
7068
7068
  if (!targetNextCell || targetNextCell.hMerge || targetNextCell.vMerge) {
7069
7069
  return;
7070
7070
  }
7071
- const newTableData = chunkJKSUB7DR_js.mergeCells(
7071
+ const newTableData = chunk5DBKW7F3_js.mergeCells(
7072
7072
  [
7073
7073
  { row: rowIndex, col: columnIndex },
7074
7074
  { row: targetNextRowIdx, col: columnIndex }
@@ -7076,7 +7076,7 @@ function createTableMergeHandlers(input) {
7076
7076
  td
7077
7077
  );
7078
7078
  const updates = { tableData: newTableData };
7079
- const newRawXml = chunkJKSUB7DR_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
7079
+ const newRawXml = chunk5DBKW7F3_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
7080
7080
  if (newRawXml) {
7081
7081
  updates.rawXml = newRawXml;
7082
7082
  }
@@ -7091,9 +7091,9 @@ function createTableMergeHandlers(input) {
7091
7091
  return;
7092
7092
  }
7093
7093
  const td = selectedElement.tableData;
7094
- const newTableData = chunkJKSUB7DR_js.mergeCells(ts.selectedCells, td);
7094
+ const newTableData = chunk5DBKW7F3_js.mergeCells(ts.selectedCells, td);
7095
7095
  const updates = { tableData: newTableData };
7096
- const newRawXml = chunkJKSUB7DR_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
7096
+ const newRawXml = chunk5DBKW7F3_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
7097
7097
  if (newRawXml) {
7098
7098
  updates.rawXml = newRawXml;
7099
7099
  }
@@ -7110,9 +7110,9 @@ function createTableMergeHandlers(input) {
7110
7110
  }
7111
7111
  const { rowIndex, columnIndex } = ts;
7112
7112
  const td = selectedElement.tableData;
7113
- const newTableData = chunkJKSUB7DR_js.splitCell(rowIndex, columnIndex, td);
7113
+ const newTableData = chunk5DBKW7F3_js.splitCell(rowIndex, columnIndex, td);
7114
7114
  const updates = { tableData: newTableData };
7115
- const newRawXml = chunkJKSUB7DR_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
7115
+ const newRawXml = chunk5DBKW7F3_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
7116
7116
  if (newRawXml) {
7117
7117
  updates.rawXml = newRawXml;
7118
7118
  }
@@ -7147,7 +7147,7 @@ function createTableStructHandlers(input) {
7147
7147
  updates.tableData = pptx.setCellText(el, rowIndex, colIndex, text).tableData;
7148
7148
  }
7149
7149
  if (el.rawXml) {
7150
- const newRawXml = chunkJKSUB7DR_js.updateCellTextInRawXml(el, rowIndex, colIndex, text);
7150
+ const newRawXml = chunk5DBKW7F3_js.updateCellTextInRawXml(el, rowIndex, colIndex, text);
7151
7151
  if (newRawXml) {
7152
7152
  updates.rawXml = newRawXml;
7153
7153
  }
@@ -7171,7 +7171,7 @@ function createTableStructHandlers(input) {
7171
7171
  const { rowIndex, columnIndex: colIndex } = ts;
7172
7172
  const updates = {};
7173
7173
  if (selectedElement.rawXml) {
7174
- const newRawXml = chunkJKSUB7DR_js.updateCellTextStyleInRawXml(
7174
+ const newRawXml = chunk5DBKW7F3_js.updateCellTextStyleInRawXml(
7175
7175
  selectedElement,
7176
7176
  rowIndex,
7177
7177
  colIndex,
@@ -7349,7 +7349,7 @@ function useExportSaveAs(input) {
7349
7349
  const sourceName = filePath ? filePath.replace(/\\/gu, "/").split("/").pop() : void 0;
7350
7350
  const slideSize = pptx.resolveSlideSizeSelection({ current: slideSizeEmu, canvas: canvasSize }).size;
7351
7351
  const data = {
7352
- slides: chunkJKSUB7DR_js.buildSaveSlides(slides, templateElementsBySlideId),
7352
+ slides: chunk5DBKW7F3_js.buildSaveSlides(slides, templateElementsBySlideId),
7353
7353
  width: canvasSize.width,
7354
7354
  height: canvasSize.height,
7355
7355
  widthEmu: slideSize.widthEmu,
@@ -7512,7 +7512,7 @@ async function captureSlidesAsPngDataUrls(slideStageRef, slideIndices, setActive
7512
7512
  }
7513
7513
  function tilesToPdfPage(tilesResult) {
7514
7514
  return tilesResult.tiles.map((tile) => ({
7515
- image: chunkJKSUB7DR_js.canvasToJpegData(tile.canvas),
7515
+ image: chunk5DBKW7F3_js.canvasToJpegData(tile.canvas),
7516
7516
  placement: pptx.placeTileOnPage(
7517
7517
  tile,
7518
7518
  tilesResult.fullWidth,
@@ -7545,7 +7545,7 @@ async function exportAllSlidesAsPdf(slideStageRef, totalSlides, setActiveSlide,
7545
7545
  if (pages.length === 0) {
7546
7546
  throw new Error(i18n.translationsEn["pptx.export.errorNoSlidesPdf"]);
7547
7547
  }
7548
- const pdfBlobUrl = chunkJKSUB7DR_js.buildPdfFromTiledImageData(pages);
7548
+ const pdfBlobUrl = chunk5DBKW7F3_js.buildPdfFromTiledImageData(pages);
7549
7549
  pptx.downloadDataUrl(pdfBlobUrl, filename);
7550
7550
  }
7551
7551
  async function exportAllSlidesAsNotesPdf(slideStageRef, totalSlides, setActiveSlide, currentSlideIndex, slideNotes, filename = "presentation-notes.pdf", options = {}) {
@@ -7575,7 +7575,7 @@ async function exportAllSlidesAsNotesPdf(slideStageRef, totalSlides, setActiveSl
7575
7575
  if (pages.length === 0) {
7576
7576
  throw new Error(i18n.translationsEn["pptx.export.errorNoSlidesNotesPdf"]);
7577
7577
  }
7578
- const pdfDataUrl = chunkJKSUB7DR_js.buildNotesPdf(pages);
7578
+ const pdfDataUrl = chunk5DBKW7F3_js.buildNotesPdf(pages);
7579
7579
  pptx.downloadDataUrl(pdfDataUrl, filename);
7580
7580
  }
7581
7581
  async function exportAllSlidesAsVideo(slideStageRef, totalSlides, setActiveSlide, currentSlideIndex, options = {}) {
@@ -8153,13 +8153,13 @@ function usePrintHandlers(input) {
8153
8153
  const { slides, activeSlideIndex, canvasStageRef, setActiveSlideIndex, canvasSize } = input;
8154
8154
  const handoutMaster = input.handoutMaster ?? input.pptxData?.handoutMaster;
8155
8155
  const [isPrintDialogOpen, setIsPrintDialogOpen] = React17.useState(false);
8156
- const { t } = chunkJKSUB7DR_js.useTranslation();
8156
+ const { t } = chunk5DBKW7F3_js.useTranslation();
8157
8157
  const viewerOptions = useViewerOptionsContext();
8158
8158
  const printRasterScale = (viewerOptions.advanced.printHighQuality ? 4 : 3) * pptx.resolveImageResolutionScale(viewerOptions);
8159
8159
  const handlePrint = () => {
8160
8160
  setIsPrintDialogOpen(true);
8161
8161
  };
8162
- const deckSlides = () => input.templateElementsBySlideId ? chunkJKSUB7DR_js.buildSaveSlides(slides, input.templateElementsBySlideId) : slides;
8162
+ const deckSlides = () => input.templateElementsBySlideId ? chunk5DBKW7F3_js.buildSaveSlides(slides, input.templateElementsBySlideId) : slides;
8163
8163
  const plan = (settings, deck) => pptx.planPrintJob(settings, {
8164
8164
  slides: deck,
8165
8165
  activeSlideIndex,
@@ -8574,7 +8574,7 @@ function usePropertyHandlers(input) {
8574
8574
  width: canvasSize.width,
8575
8575
  height: canvasSize.height
8576
8576
  };
8577
- setCompareResult(chunkJKSUB7DR_js.comparePresentation(cur, other));
8577
+ setCompareResult(chunk5DBKW7F3_js.comparePresentation(cur, other));
8578
8578
  setIsComparePanelOpen(true);
8579
8579
  } catch (err) {
8580
8580
  console.warn("Compare failed:", err);
@@ -8627,7 +8627,7 @@ function usePropertyHandlers(input) {
8627
8627
  };
8628
8628
  }
8629
8629
  function useDialogCustomShows(input) {
8630
- const { t } = chunkJKSUB7DR_js.useTranslation();
8630
+ const { t } = chunk5DBKW7F3_js.useTranslation();
8631
8631
  const {
8632
8632
  activeSlide,
8633
8633
  customShows,
@@ -8952,7 +8952,7 @@ function useViewerDialogs(input) {
8952
8952
  };
8953
8953
  }
8954
8954
  function computeGridSpacingPx(documentGridSpacing) {
8955
- return pptx.computeGridSpacingPx(documentGridSpacing, chunkJKSUB7DR_js.GRID_SIZE);
8955
+ return pptx.computeGridSpacingPx(documentGridSpacing, chunk5DBKW7F3_js.GRID_SIZE);
8956
8956
  }
8957
8957
  function computeVisibleSlideIndexes(slides, activeCustomShowId, customShows, presentationProperties) {
8958
8958
  const activeShow = activeCustomShowId ? customShows.find((show) => show.id === activeCustomShowId) : void 0;
@@ -8961,7 +8961,7 @@ function computeVisibleSlideIndexes(slides, activeCustomShowId, customShows, pre
8961
8961
  }
8962
8962
  function computeSlideSectionGroups(slides, sections) {
8963
8963
  return pptx.groupSlidesBySection(sections, slides).map((group) => ({
8964
- id: group.section?.id ?? (sections.length > 0 ? chunkJKSUB7DR_js.UNGROUPED_SECTION_ID : chunkJKSUB7DR_js.DEFAULT_SECTION_GROUP_ID),
8964
+ id: group.section?.id ?? (sections.length > 0 ? chunk5DBKW7F3_js.UNGROUPED_SECTION_ID : chunk5DBKW7F3_js.DEFAULT_SECTION_GROUP_ID),
8965
8965
  label: group.section?.name ?? (sections.length > 0 ? "Ungrouped Slides" : "Slides"),
8966
8966
  slideIndexes: group.slideIndexes,
8967
8967
  ...group.section?.color !== void 0 ? { color: group.section.color } : {},
@@ -8980,7 +8980,7 @@ function computeMasterPseudoSlide(mode, activeLayout, activeMaster) {
8980
8980
  });
8981
8981
  }
8982
8982
  function useDerivedSlideState(input) {
8983
- const { t } = chunkJKSUB7DR_js.useTranslation();
8983
+ const { t } = chunk5DBKW7F3_js.useTranslation();
8984
8984
  const {
8985
8985
  slides,
8986
8986
  sections,
@@ -9006,10 +9006,10 @@ function useDerivedSlideState(input) {
9006
9006
  );
9007
9007
  const slideSectionGroups = React17.useMemo(
9008
9008
  () => computeSlideSectionGroups(slides, sections).map((group) => {
9009
- if (group.id === chunkJKSUB7DR_js.UNGROUPED_SECTION_ID && group.label === "Ungrouped Slides") {
9009
+ if (group.id === chunk5DBKW7F3_js.UNGROUPED_SECTION_ID && group.label === "Ungrouped Slides") {
9010
9010
  return { ...group, label: t("pptx.slides.ungroupedSlides") };
9011
9011
  }
9012
- if (group.id === chunkJKSUB7DR_js.DEFAULT_SECTION_GROUP_ID && group.label === "Slides") {
9012
+ if (group.id === chunk5DBKW7F3_js.DEFAULT_SECTION_GROUP_ID && group.label === "Slides") {
9013
9013
  return { ...group, label: t("pptx.sections.slides") };
9014
9014
  }
9015
9015
  return group;
@@ -9116,7 +9116,7 @@ function useAnnotationHandlers(input) {
9116
9116
  if (nextMode === "present") {
9117
9117
  presentation.enterPresentMode();
9118
9118
  } else if (mode === "present" && annotations.hasAnyAnnotations) {
9119
- chunkJKSUB7DR_js.stopAllPersistentAudio();
9119
+ chunk5DBKW7F3_js.stopAllPersistentAudio();
9120
9120
  if (promptKeepInkAnnotations) {
9121
9121
  pendingModeAfterAnnotationsRef.current = nextMode;
9122
9122
  setShowKeepAnnotationsDialog(true);
@@ -9126,7 +9126,7 @@ function useAnnotationHandlers(input) {
9126
9126
  }
9127
9127
  } else {
9128
9128
  if (mode === "present") {
9129
- chunkJKSUB7DR_js.stopAllPersistentAudio();
9129
+ chunk5DBKW7F3_js.stopAllPersistentAudio();
9130
9130
  }
9131
9131
  setMode(nextMode);
9132
9132
  }
@@ -9294,7 +9294,7 @@ function useSerialize(input) {
9294
9294
  guides: pptxGuides.length > 0 ? pptxGuides : void 0
9295
9295
  };
9296
9296
  });
9297
- const slidesToSave = chunkJKSUB7DR_js.buildSaveSlides(slidesWithGuides, pending.templateElementsBySlideId);
9297
+ const slidesToSave = chunk5DBKW7F3_js.buildSaveSlides(slidesWithGuides, pending.templateElementsBySlideId);
9298
9298
  const saveOptions = pptx.buildDeckSaveOptions({
9299
9299
  // Without this the Slide Size card edited a viewer-only pixel value and
9300
9300
  // the saved `p:sldSz` never moved: passing `slideSize` is the only way a
@@ -9439,7 +9439,7 @@ function usePresentationSetup(input) {
9439
9439
  return;
9440
9440
  }
9441
9441
  if (mode === "present" && nextMode !== "present") {
9442
- chunkJKSUB7DR_js.stopAllPersistentAudio();
9442
+ chunk5DBKW7F3_js.stopAllPersistentAudio();
9443
9443
  stopAnimationSound();
9444
9444
  const exitHandler = exitModeHandlerRef.current;
9445
9445
  if (exitHandler) {
@@ -9560,7 +9560,7 @@ function useCanvasImagePaste(input) {
9560
9560
  );
9561
9561
  }
9562
9562
  function formatPatchFor(element, format) {
9563
- const updated = chunkJKSUB7DR_js.applyFormatToElement(element, format);
9563
+ const updated = chunk5DBKW7F3_js.applyFormatToElement(element, format);
9564
9564
  const updates = {};
9565
9565
  if (pptx$1.hasShapeProperties(updated)) {
9566
9566
  updates.shapeStyle = updated.shapeStyle;
@@ -9583,7 +9583,7 @@ function useFormatPainterEditing(input) {
9583
9583
  const prevFormatPainterRef = React17.useRef(false);
9584
9584
  React17.useEffect(() => {
9585
9585
  if (formatPainterActive && !prevFormatPainterRef.current && selectedElement) {
9586
- copiedFormatRef.current = chunkJKSUB7DR_js.copyFormatFromElement(selectedElement);
9586
+ copiedFormatRef.current = chunk5DBKW7F3_js.copyFormatFromElement(selectedElement);
9587
9587
  } else if (!formatPainterActive) {
9588
9588
  copiedFormatRef.current = null;
9589
9589
  }
@@ -11220,7 +11220,7 @@ function useCollaborationWriteBack(input) {
11220
11220
  getSourceBytes: () => latest.current.getSourceBytes?.() ?? null,
11221
11221
  getSaveOptions: () => latest.current.getSaveOptions?.(),
11222
11222
  getTemplateElements: () => latest.current.templateElementsBySlideId,
11223
- mergeTemplateElements: chunkJKSUB7DR_js.buildSaveSlides,
11223
+ mergeTemplateElements: chunk5DBKW7F3_js.buildSaveSlides,
11224
11224
  onWriteBackStatus: () => latest.current.onWriteBackStatus?.(
11225
11225
  pptx.writeBackReport(latest.current.config, created.getState())
11226
11226
  )
@@ -11777,8 +11777,8 @@ function useTouchGestures(input) {
11777
11777
  }
11778
11778
  const recognizer = pptx.createTouchGestureRecognizer({
11779
11779
  getScale: () => scaleRef.current,
11780
- minScale: chunkJKSUB7DR_js.MIN_ZOOM_SCALE,
11781
- maxScale: chunkJKSUB7DR_js.MAX_ZOOM_SCALE,
11780
+ minScale: chunk5DBKW7F3_js.MIN_ZOOM_SCALE,
11781
+ maxScale: chunk5DBKW7F3_js.MAX_ZOOM_SCALE,
11782
11782
  callbacks: {
11783
11783
  onPinchZoom: (newScale) => callbacksRef.current.onPinchZoom?.(newScale),
11784
11784
  onSwipe: (direction) => callbacksRef.current.onSwipe?.(direction),
@@ -11914,9 +11914,9 @@ function buildCanvasProps(input) {
11914
11914
  }
11915
11915
  };
11916
11916
  const handleHyperlinkClick = (url, target) => {
11917
- if (chunkJKSUB7DR_js.isPpactionUrl(url)) {
11917
+ if (chunk5DBKW7F3_js.isPpactionUrl(url)) {
11918
11918
  if (mode === "present") {
11919
- const parsed = chunkJKSUB7DR_js.parsePpactionUrl(url);
11919
+ const parsed = chunk5DBKW7F3_js.parsePpactionUrl(url);
11920
11920
  if (parsed) {
11921
11921
  presentation.handlePresentationAction({
11922
11922
  action: parsed.action,
@@ -12408,7 +12408,7 @@ function buildToolbarProps(input) {
12408
12408
  markDirty: history.markDirty
12409
12409
  }),
12410
12410
  formatPainterActive: s.formatPainterActive,
12411
- canActivateFormatPainter: chunkJKSUB7DR_js.hasCopyableFormat(selectedElement),
12411
+ canActivateFormatPainter: chunk5DBKW7F3_js.hasCopyableFormat(selectedElement),
12412
12412
  onToggleFormatPainter: () => s.setFormatPainterActive((p) => !p),
12413
12413
  isSelectionPaneOpen: s.isSelectionPaneOpen,
12414
12414
  onToggleSelectionPane: () => s.setIsSelectionPaneOpen((p) => !p),
@@ -13133,7 +13133,7 @@ function useViewerBuildingBlocks(input) {
13133
13133
  } = input;
13134
13134
  const collaborationConfig = pptx.resolveCollaborationConfig(input.collaboration);
13135
13135
  const [collaborationReadOnly, setCollaborationReadOnly] = React17.useState(Boolean(collaborationConfig));
13136
- const { t } = chunkJKSUB7DR_js.useTranslation();
13136
+ const { t } = chunk5DBKW7F3_js.useTranslation();
13137
13137
  const [content, setContent] = React17.useState(incomingContent ?? null);
13138
13138
  const [loadOrigin, setLoadOrigin] = React17.useState("bootstrap");
13139
13139
  React17.useEffect(() => {
@@ -13335,23 +13335,23 @@ function ColorChangedImage({
13335
13335
  className,
13336
13336
  alt
13337
13337
  }) {
13338
- const tolerance = tolerancePct ?? chunkJKSUB7DR_js.DEFAULT_COLOR_CHANGE_TOLERANCE;
13339
- const cacheKey = chunkJKSUB7DR_js.buildCacheKey(
13338
+ const tolerance = tolerancePct ?? chunk5DBKW7F3_js.DEFAULT_COLOR_CHANGE_TOLERANCE;
13339
+ const cacheKey = chunk5DBKW7F3_js.buildCacheKey(
13340
13340
  src,
13341
13341
  clrChange.clrFrom,
13342
13342
  clrChange.clrTo,
13343
13343
  tolerance,
13344
13344
  Boolean(clrChange.clrToTransparent)
13345
13345
  );
13346
- const cached = chunkJKSUB7DR_js.getCachedResult(cacheKey);
13346
+ const cached = chunk5DBKW7F3_js.getCachedResult(cacheKey);
13347
13347
  const [processedSrc, setProcessedSrc] = React17.useState(cached ?? null);
13348
13348
  React17.useEffect(() => {
13349
- if (chunkJKSUB7DR_js.getCachedResult(cacheKey)) {
13350
- setProcessedSrc(chunkJKSUB7DR_js.getCachedResult(cacheKey) ?? null);
13349
+ if (chunk5DBKW7F3_js.getCachedResult(cacheKey)) {
13350
+ setProcessedSrc(chunk5DBKW7F3_js.getCachedResult(cacheKey) ?? null);
13351
13351
  return;
13352
13352
  }
13353
13353
  let cancelled = false;
13354
- chunkJKSUB7DR_js.applyColorChange(
13354
+ chunk5DBKW7F3_js.applyColorChange(
13355
13355
  src,
13356
13356
  clrChange.clrFrom,
13357
13357
  clrChange.clrTo,
@@ -13359,7 +13359,7 @@ function ColorChangedImage({
13359
13359
  Boolean(clrChange.clrToTransparent)
13360
13360
  ).then((result) => {
13361
13361
  if (!cancelled) {
13362
- chunkJKSUB7DR_js.setCachedResult(cacheKey, result.dataUrl);
13362
+ chunk5DBKW7F3_js.setCachedResult(cacheKey, result.dataUrl);
13363
13363
  setProcessedSrc(result.dataUrl);
13364
13364
  }
13365
13365
  return void 0;
@@ -13451,7 +13451,7 @@ function TiledImageLayer({
13451
13451
  cancelled = true;
13452
13452
  };
13453
13453
  }, [src]);
13454
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className, style: { ...chunkJKSUB7DR_js.getImageTilingStyle(element, nativeSize), ...style } });
13454
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className, style: { ...chunk5DBKW7F3_js.getImageTilingStyle(element, nativeSize), ...style } });
13455
13455
  }
13456
13456
  function renderImageEffectDefinitions(element, excludeDuotone = false) {
13457
13457
  return pptx.getImageSvgFilters(element).filter((definition) => !excludeDuotone || definition.id !== `duotone-${element.id}`).map((definition) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -13520,7 +13520,7 @@ function renderImg(el, style, filter, alt, opacity) {
13520
13520
  ...filter ? { filter } : {},
13521
13521
  ...opacity !== void 0 ? { opacity } : {}
13522
13522
  };
13523
- if (chunkJKSUB7DR_js.isImageTiled(el)) {
13523
+ if (chunk5DBKW7F3_js.isImageTiled(el)) {
13524
13524
  const tileSrc = imgSrc(el);
13525
13525
  if (!tileSrc) {
13526
13526
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-gray-500 bg-gray-100", children: "Image" });
@@ -13542,9 +13542,9 @@ function renderImg(el, style, filter, alt, opacity) {
13542
13542
  pptx$1.isImageLikeElement(el) ? el.imageEffects?.colorWash : void 0
13543
13543
  );
13544
13544
  const clrChange = "imageEffects" in el ? el.imageEffects?.clrChange : void 0;
13545
- const duotoneColors = chunkJKSUB7DR_js.getDuotoneColors(el);
13545
+ const duotoneColors = chunk5DBKW7F3_js.getDuotoneColors(el);
13546
13546
  const useDuotoneCanvas = Boolean(duotoneColors && !clrChange);
13547
- const filterForImg = useDuotoneCanvas ? chunkJKSUB7DR_js.getImageEffectsFilter(el, { excludeDuotone: true }) : filter;
13547
+ const filterForImg = useDuotoneCanvas ? chunk5DBKW7F3_js.getImageEffectsFilter(el, { excludeDuotone: true }) : filter;
13548
13548
  const canvasEffectStyles = {
13549
13549
  ...filterForImg ? { filter: filterForImg } : {},
13550
13550
  ...opacity !== void 0 ? { opacity } : {}
@@ -13620,10 +13620,10 @@ function SlideBackgroundImageLayer({
13620
13620
  style: { zIndex: 0 },
13621
13621
  children: renderImg(
13622
13622
  backgroundElement,
13623
- chunkJKSUB7DR_js.getImageRenderStyle(backgroundElement),
13624
- chunkJKSUB7DR_js.getImageEffectsFilter(backgroundElement),
13623
+ chunk5DBKW7F3_js.getImageRenderStyle(backgroundElement),
13624
+ chunk5DBKW7F3_js.getImageEffectsFilter(backgroundElement),
13625
13625
  "",
13626
- chunkJKSUB7DR_js.getImageEffectsOpacity(backgroundElement)
13626
+ chunk5DBKW7F3_js.getImageEffectsOpacity(backgroundElement)
13627
13627
  )
13628
13628
  }
13629
13629
  );
@@ -13894,7 +13894,7 @@ function ChartElementView({
13894
13894
  onUpdateElement,
13895
13895
  animationState
13896
13896
  }) {
13897
- const { t } = chunkJKSUB7DR_js.useTranslation();
13897
+ const { t } = chunk5DBKW7F3_js.useTranslation();
13898
13898
  const wrapperRef = React17.useRef(null);
13899
13899
  const { selection, setSelection } = useChartPartSelection();
13900
13900
  const [titleDraft, setTitleDraft] = React17.useState(null);
@@ -13909,7 +13909,7 @@ function ChartElementView({
13909
13909
  pptx.getBarFacePicturePixelSampleVersion
13910
13910
  );
13911
13911
  const viewModel = React17.useMemo(() => {
13912
- return canEdit ? chunkJKSUB7DR_js.buildReactChartViewModel(element) : null;
13912
+ return canEdit ? chunk5DBKW7F3_js.buildReactChartViewModel(element) : null;
13913
13913
  }, [canEdit, element, barFacePictureSampleVersion]);
13914
13914
  React17.useEffect(pptx.ensureChartInteractionStyles, []);
13915
13915
  React17.useEffect(() => {
@@ -14014,9 +14014,9 @@ function ChartElementView({
14014
14014
  textStyle: animationState?.textStyle,
14015
14015
  onSelect: chart3D.onSelect,
14016
14016
  onDrag: chart3D.onDrag,
14017
- children: chunkJKSUB7DR_js.renderChartElement(renderedElement, (key) => t(key))
14017
+ children: chunk5DBKW7F3_js.renderChartElement(renderedElement, (key) => t(key))
14018
14018
  }
14019
- ) : chunkJKSUB7DR_js.renderChartElement(renderedElement, (key) => t(key)),
14019
+ ) : chunk5DBKW7F3_js.renderChartElement(renderedElement, (key) => t(key)),
14020
14020
  dragValue !== null && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-1 right-1 z-10 rounded bg-primary/90 px-1.5 py-0.5 text-[10px] font-medium text-white pointer-events-none", children: pptx.formatAxisValue(dragValue) }),
14021
14021
  titleDraft !== null && /* @__PURE__ */ jsxRuntime.jsx(
14022
14022
  "input",
@@ -14044,7 +14044,7 @@ function ChartElementView({
14044
14044
  );
14045
14045
  }
14046
14046
  function useActionAffordance(element, canInteract) {
14047
- const { t } = chunkJKSUB7DR_js.useTranslation();
14047
+ const { t } = chunk5DBKW7F3_js.useTranslation();
14048
14048
  pptx.ensureActionAffordanceStyles();
14049
14049
  return React17.useMemo(
14050
14050
  () => pptx.resolveElementActionAffordance(element, {
@@ -14322,7 +14322,7 @@ function ResizeHandles({
14322
14322
  nonRotationTransform,
14323
14323
  onRotate
14324
14324
  }) {
14325
- const { t } = chunkJKSUB7DR_js.useTranslation();
14325
+ const { t } = chunk5DBKW7F3_js.useTranslation();
14326
14326
  const rotateRef = useRotateHandlePlacement(elementId, Boolean(onRotate));
14327
14327
  const peStyle = forcePointerEvents ? { ...HANDLE_TOUCH_ACTION, pointerEvents: "auto" } : HANDLE_TOUCH_ACTION;
14328
14328
  const resizeStyle = { ...HANDLE_TOUCH_ACTION, pointerEvents: "none" };
@@ -14355,7 +14355,7 @@ function ResizeHandles({
14355
14355
  "aria-label": t("pptx.selectionOverlay.resize", { handle }),
14356
14356
  "data-pptx-handle-kind": "resize",
14357
14357
  "data-pptx-compact": true,
14358
- className: chunkJKSUB7DR_js.cn(
14358
+ className: chunk5DBKW7F3_js.cn(
14359
14359
  "absolute z-10 group border-0 bg-transparent p-0",
14360
14360
  RESIZE_DEFAULT_CLASSES,
14361
14361
  posClass,
@@ -14381,7 +14381,7 @@ function ResizeHandles({
14381
14381
  "div",
14382
14382
  {
14383
14383
  "data-pptx-handle-hit": true,
14384
- className: chunkJKSUB7DR_js.cn(
14384
+ className: chunk5DBKW7F3_js.cn(
14385
14385
  "absolute -inset-px pointer-events-auto [--pptx-handle-hit-inset:-1px]",
14386
14386
  corner ? "max-md:-inset-1.5 max-md:[--pptx-handle-hit-inset:-6px]" : "max-md:-inset-2 max-md:[--pptx-handle-hit-inset:-8px]"
14387
14387
  ),
@@ -14402,7 +14402,7 @@ function ResizeHandles({
14402
14402
  "aria-label": t("pptx.selectionOverlay.rotate"),
14403
14403
  "data-pptx-handle-kind": "rotate",
14404
14404
  "data-pptx-compact": true,
14405
- className: chunkJKSUB7DR_js.cn(
14405
+ className: chunk5DBKW7F3_js.cn(
14406
14406
  "absolute left-1/2 top-0 -translate-x-1/2 -translate-y-1/2 z-20 border-0 bg-transparent p-0 cursor-grab active:cursor-grabbing",
14407
14407
  ROTATE_DEFAULT_CLASSES
14408
14408
  ),
@@ -14479,10 +14479,10 @@ var ConnectorElementRendererMemo = /* @__PURE__ */ React17__default.default.memo
14479
14479
  const svgHeight = Math.max(el.height, 1);
14480
14480
  const ss = shapeEl?.shapeStyle;
14481
14481
  const strokeWidth = Math.max(0, ss?.strokeWidth ?? 2);
14482
- const strokeColor = chunkJKSUB7DR_js.normalizeHexColor(ss?.strokeColor, chunkJKSUB7DR_js.DEFAULT_STROKE_COLOR);
14483
- const strokePaint = chunkJKSUB7DR_js.colorWithOpacity(strokeColor, ss?.strokeOpacity);
14484
- const dashType = chunkJKSUB7DR_js.normalizeStrokeDashType(ss?.strokeDash);
14485
- const dashArray = chunkJKSUB7DR_js.getSvgStrokeDasharray(
14482
+ const strokeColor = chunk5DBKW7F3_js.normalizeHexColor(ss?.strokeColor, chunk5DBKW7F3_js.DEFAULT_STROKE_COLOR);
14483
+ const strokePaint = chunk5DBKW7F3_js.colorWithOpacity(strokeColor, ss?.strokeOpacity);
14484
+ const dashType = chunk5DBKW7F3_js.normalizeStrokeDashType(ss?.strokeDash);
14485
+ const dashArray = chunk5DBKW7F3_js.getSvgStrokeDasharray(
14486
14486
  dashType,
14487
14487
  Math.max(strokeWidth, 1),
14488
14488
  ss?.customDashSegments
@@ -14493,14 +14493,14 @@ var ConnectorElementRendererMemo = /* @__PURE__ */ React17__default.default.memo
14493
14493
  const markerSeed = el.id.replace(/[^a-zA-Z0-9_-]/gu, "_");
14494
14494
  const startMarkerId = `${markerSeed}-sel-start`;
14495
14495
  const endMarkerId = `${markerSeed}-sel-end`;
14496
- const compoundOffsets = chunkJKSUB7DR_js.getCompoundLineOffsets(compoundLine, strokeWidth);
14497
- const compoundWidths = chunkJKSUB7DR_js.getCompoundLineWidths(compoundLine, strokeWidth);
14496
+ const compoundOffsets = chunk5DBKW7F3_js.getCompoundLineOffsets(compoundLine, strokeWidth);
14497
+ const compoundWidths = chunk5DBKW7F3_js.getCompoundLineWidths(compoundLine, strokeWidth);
14498
14498
  const strokeCap = pptx.svgLineCap(ss?.lineCap);
14499
14499
  const textEl = pptx$1.hasTextProperties(el) ? el : void 0;
14500
14500
  const connectorText = textEl?.text?.trim() ?? "";
14501
14501
  const connectorTextSegments = textEl?.textSegments;
14502
14502
  const connectorTextStyle = textEl?.textStyle;
14503
- const pathGeometry = shapeEl ? chunkJKSUB7DR_js.getConnectorPathGeometry(shapeEl) : {
14503
+ const pathGeometry = shapeEl ? chunk5DBKW7F3_js.getConnectorPathGeometry(shapeEl) : {
14504
14504
  pathData: `M 0 0 L ${viewWidth} ${viewHeight}`,
14505
14505
  startX: 0,
14506
14506
  startY: 0,
@@ -14508,17 +14508,23 @@ var ConnectorElementRendererMemo = /* @__PURE__ */ React17__default.default.memo
14508
14508
  endY: viewHeight
14509
14509
  };
14510
14510
  const hitTargetWidth = Math.max(strokeWidth * 3, 14);
14511
+ const snapTransform = pptx.connectorSnapTransform(
14512
+ el,
14513
+ !pptx.connectorNeedsPath(shapeEl?.shapeType),
14514
+ compoundOffsets.length,
14515
+ strokeWidth
14516
+ );
14511
14517
  const selColor = selClr === "blue-400" ? "#60a5fa" : "#3b82f6";
14512
- const lineShadow = chunkJKSUB7DR_js.buildLineShadowCss(el);
14513
- const lineGlow = chunkJKSUB7DR_js.buildLineGlowFilter(el);
14518
+ const lineShadow = chunk5DBKW7F3_js.buildLineShadowCss(el);
14519
+ const lineGlow = chunk5DBKW7F3_js.buildLineGlowFilter(el);
14514
14520
  return /* @__PURE__ */ jsxRuntime.jsxs(
14515
14521
  "div",
14516
14522
  {
14517
14523
  "data-pptx-element": "true",
14518
14524
  "data-element-id": el.id,
14519
- role: chunkJKSUB7DR_js.getAriaRole(el, { actionable: false }),
14520
- "aria-label": chunkJKSUB7DR_js.getAriaLabel(el),
14521
- "aria-roledescription": chunkJKSUB7DR_js.getAriaRoleDescription(el),
14525
+ role: chunk5DBKW7F3_js.getAriaRole(el, { actionable: false }),
14526
+ "aria-label": chunk5DBKW7F3_js.getAriaLabel(el),
14527
+ "aria-roledescription": chunk5DBKW7F3_js.getAriaRoleDescription(el),
14522
14528
  "aria-selected": isSelected ? true : void 0,
14523
14529
  className: "absolute",
14524
14530
  style: {
@@ -14551,14 +14557,14 @@ var ConnectorElementRendererMemo = /* @__PURE__ */ React17__default.default.memo
14551
14557
  style: { overflow: "visible", pointerEvents: "none" },
14552
14558
  children: [
14553
14559
  /* @__PURE__ */ jsxRuntime.jsxs("defs", { children: [
14554
- chunkJKSUB7DR_js.renderConnectorMarker(
14560
+ chunk5DBKW7F3_js.renderConnectorMarker(
14555
14561
  startMarkerId,
14556
14562
  startArrow,
14557
14563
  strokePaint,
14558
14564
  ss?.connectorStartArrowWidth,
14559
14565
  ss?.connectorStartArrowLength
14560
14566
  ),
14561
- chunkJKSUB7DR_js.renderConnectorMarker(
14567
+ chunk5DBKW7F3_js.renderConnectorMarker(
14562
14568
  endMarkerId,
14563
14569
  endArrow,
14564
14570
  strokePaint,
@@ -14625,6 +14631,7 @@ var ConnectorElementRendererMemo = /* @__PURE__ */ React17__default.default.memo
14625
14631
  compoundOffsets.map((offset, idx) => /* @__PURE__ */ jsxRuntime.jsx(
14626
14632
  "path",
14627
14633
  {
14634
+ "data-pptx-line": "",
14628
14635
  d: pathGeometry.pathData,
14629
14636
  fill: "none",
14630
14637
  stroke: strokePaint,
@@ -14639,10 +14646,10 @@ var ConnectorElementRendererMemo = /* @__PURE__ */ React17__default.default.memo
14639
14646
  style: {
14640
14647
  pointerEvents: "none",
14641
14648
  // Never under one device pixel on screen (shared `device-pixel-stroke`).
14642
- strokeWidth: pptx.screenStrokeWidth(Math.max(compoundWidths[idx] ?? strokeWidth, 1)),
14649
+ strokeWidth: pptx.connectorStrandScreenWidth(compoundWidths, strokeWidth, idx),
14643
14650
  ...offset !== 0 ? {
14644
14651
  transform: `translate(0, ${offset}px)`
14645
- } : {}
14652
+ } : snapTransform ? { transform: snapTransform } : {}
14646
14653
  }
14647
14654
  },
14648
14655
  idx
@@ -14767,14 +14774,14 @@ function getElementInteractionProps({
14767
14774
  };
14768
14775
  }
14769
14776
  function renderDagDuotoneFilterForElement(el) {
14770
- if (!chunkJKSUB7DR_js.hasDagDuotoneEffect(el)) {
14777
+ if (!chunk5DBKW7F3_js.hasDagDuotoneEffect(el)) {
14771
14778
  return null;
14772
14779
  }
14773
14780
  const duotone = el.shapeStyle?.dagDuotone;
14774
14781
  if (!duotone) {
14775
14782
  return null;
14776
14783
  }
14777
- return chunkJKSUB7DR_js.renderDagDuotoneSvgFilter(el.id, duotone.color1, duotone.color2);
14784
+ return chunk5DBKW7F3_js.renderDagDuotoneSvgFilter(el.id, duotone.color1, duotone.color2);
14778
14785
  }
14779
14786
  function getContainerStyle({
14780
14787
  el,
@@ -14802,10 +14809,10 @@ function getContainerStyle({
14802
14809
  top: isFullscreenMedia ? fs.top : el.y,
14803
14810
  width: isFullscreenMedia ? fs.width : painted.width,
14804
14811
  ...heightStyle,
14805
- transform: isFullscreenMedia ? fs.transform : chunkJKSUB7DR_js.getElementTransform(el),
14812
+ transform: isFullscreenMedia ? fs.transform : chunk5DBKW7F3_js.getElementTransform(el),
14806
14813
  transformOrigin: "center",
14807
14814
  overflow: overflowValue,
14808
- clipPath: isPicture ? void 0 : isImg && !has3DExtrusion ? chunkJKSUB7DR_js.getCropShapeClipPath(el) : void 0,
14815
+ clipPath: isPicture ? void 0 : isImg && !has3DExtrusion ? chunk5DBKW7F3_js.getCropShapeClipPath(el) : void 0,
14809
14816
  zIndex: isFullscreenMedia ? fs.zIndex : zIndex,
14810
14817
  visibility: animationState?.visible === false ? "hidden" : "visible",
14811
14818
  animation: animationState?.cssAnimation,
@@ -14850,9 +14857,9 @@ function getContainerStyle({
14850
14857
  function shapeParams(element) {
14851
14858
  const style = pptx$1.hasShapeProperties(element) ? element.shapeStyle : void 0;
14852
14859
  const strokeWidth = pptx.paintedStrokeWidth(style);
14853
- const strokeColor = chunkJKSUB7DR_js.normalizeHexColor(style?.strokeColor, chunkJKSUB7DR_js.DEFAULT_STROKE_COLOR);
14854
- const fillColor = chunkJKSUB7DR_js.normalizeHexColor(style?.fillColor, chunkJKSUB7DR_js.DEFAULT_FILL_COLOR);
14855
- const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(chunkJKSUB7DR_js.buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
14860
+ const strokeColor = chunk5DBKW7F3_js.normalizeHexColor(style?.strokeColor, chunk5DBKW7F3_js.DEFAULT_STROKE_COLOR);
14861
+ const fillColor = chunk5DBKW7F3_js.normalizeHexColor(style?.fillColor, chunk5DBKW7F3_js.DEFAULT_FILL_COLOR);
14862
+ const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(chunk5DBKW7F3_js.buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
14856
14863
  return { hf: hasFill, fc: fillColor, sw: strokeWidth, sc: strokeColor };
14857
14864
  }
14858
14865
  var Extrusion3DOverlayMemo = /* @__PURE__ */ React17__default.default.memo(
@@ -14960,7 +14967,7 @@ function ShapeEffectOverlay({
14960
14967
  const fillOverlayStyle = overlay ? {
14961
14968
  position: "absolute",
14962
14969
  inset: 0,
14963
- ...pptx$1.isImageLikeElement(element) ? chunkJKSUB7DR_js.getImageSurfaceMaskStyle(element) : {},
14970
+ ...pptx$1.isImageLikeElement(element) ? chunk5DBKW7F3_js.getImageSurfaceMaskStyle(element) : {},
14964
14971
  background: overlay.color,
14965
14972
  mixBlendMode: overlay.blendMode,
14966
14973
  pointerEvents: "none"
@@ -15057,7 +15064,7 @@ function ShapeEffectOverlay({
15057
15064
  style: {
15058
15065
  // Never under one device pixel on screen (shared `device-pixel-stroke`).
15059
15066
  strokeWidth: strand.cssStrokeWidth,
15060
- transform: strand.offset !== 0 ? `translate(0, ${strand.offset}px)` : void 0
15067
+ transform: strand.cssTransform ?? (strand.offset !== 0 ? `translate(0, ${strand.offset}px)` : void 0)
15061
15068
  }
15062
15069
  },
15063
15070
  idx
@@ -15169,10 +15176,10 @@ var ElementRenderer = /* @__PURE__ */ React17__default.default.memo(
15169
15176
  const backgroundAnimationState = pptx.getBackgroundAnimationState(el, presentationElementStates);
15170
15177
  const effectPlacement = pptx.getShapeEffectLayerPlacement(el);
15171
15178
  const visualAnimationState = backgroundAnimationState ?? animationState;
15172
- const isTxt = chunkJKSUB7DR_js.isEditableTextElement(el) && allow.textEditable;
15179
+ const isTxt = chunk5DBKW7F3_js.isEditableTextElement(el) && allow.textEditable;
15173
15180
  const txtSE = pptx$1.hasTextProperties(el) ? el.textStyle : void 0;
15174
15181
  const textStyleOverrideCss = pptx.buildTextStyleOverrideCss(el.id, visualAnimationState?.textStyle);
15175
- const ss = chunkJKSUB7DR_js.getShapeVisualStyle(
15182
+ const ss = chunk5DBKW7F3_js.getShapeVisualStyle(
15176
15183
  el,
15177
15184
  hf,
15178
15185
  fc,
@@ -15181,9 +15188,9 @@ var ElementRenderer = /* @__PURE__ */ React17__default.default.memo(
15181
15188
  visualAnimationState?.animatesFill,
15182
15189
  visualAnimationState?.animatesStroke
15183
15190
  );
15184
- const ts = chunkJKSUB7DR_js.getTextStyleForElement(el, chunkJKSUB7DR_js.DEFAULT_TEXT_COLOR);
15191
+ const ts = chunk5DBKW7F3_js.getTextStyleForElement(el, chunk5DBKW7F3_js.DEFAULT_TEXT_COLOR);
15185
15192
  const isImg = el.type === "picture" || el.type === "image";
15186
- const vs = chunkJKSUB7DR_js.renderVectorShape(
15193
+ const vs = chunk5DBKW7F3_js.renderVectorShape(
15187
15194
  el,
15188
15195
  isImg ? false : hf,
15189
15196
  fc,
@@ -15193,10 +15200,10 @@ var ElementRenderer = /* @__PURE__ */ React17__default.default.memo(
15193
15200
  visualAnimationState?.animatesStroke
15194
15201
  );
15195
15202
  const isModel3D = el.type === "model3d";
15196
- const isConn = chunkJKSUB7DR_js.isConnectorOrLineElement(el);
15203
+ const isConn = chunk5DBKW7F3_js.isConnectorOrLineElement(el);
15197
15204
  const shapeStyle3d = pptx$1.hasShapeProperties(el) ? el.shapeStyle : void 0;
15198
15205
  const extrusionData = React17.useMemo(
15199
- () => chunkJKSUB7DR_js.build3DExtrusionData(shapeStyle3d?.shape3d, shapeStyle3d?.scene3d, fc, el.width, el.height),
15206
+ () => chunk5DBKW7F3_js.build3DExtrusionData(shapeStyle3d?.shape3d, shapeStyle3d?.scene3d, fc, el.width, el.height),
15200
15207
  [shapeStyle3d?.shape3d, shapeStyle3d?.scene3d, fc, el.width, el.height]
15201
15208
  );
15202
15209
  const actionAffordance = useActionAffordance(el, canInteract);
@@ -15287,7 +15294,7 @@ var ElementRenderer = /* @__PURE__ */ React17__default.default.memo(
15287
15294
  "aria-hidden": aria.hidden ? true : void 0,
15288
15295
  "aria-selected": isSelected ? true : void 0,
15289
15296
  tabIndex: isFocusable ? 0 : -1,
15290
- className: chunkJKSUB7DR_js.cn(
15297
+ className: chunk5DBKW7F3_js.cn(
15291
15298
  "absolute",
15292
15299
  "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",
15293
15300
  cur,
@@ -15360,9 +15367,9 @@ var ElementRenderer = /* @__PURE__ */ React17__default.default.memo(
15360
15367
  txtSE,
15361
15368
  txtS: ts,
15362
15369
  vecShape: backgroundAnimationState && !isImg ? null : vs,
15363
- imgStyle: chunkJKSUB7DR_js.getImageRenderStyle(el),
15364
- imgFilter: chunkJKSUB7DR_js.getImageEffectsFilter(el),
15365
- imgOpacity: chunkJKSUB7DR_js.getImageEffectsOpacity(el),
15370
+ imgStyle: chunk5DBKW7F3_js.getImageRenderStyle(el),
15371
+ imgFilter: chunk5DBKW7F3_js.getImageEffectsFilter(el),
15372
+ imgOpacity: chunk5DBKW7F3_js.getImageEffectsOpacity(el),
15366
15373
  imgAlt: imageAltText,
15367
15374
  isTxtEl: isTxt,
15368
15375
  media: mediaDataUrls,
@@ -15499,10 +15506,10 @@ function renderStrokeView(view, pressureSensitive, replayStyle, key) {
15499
15506
  }
15500
15507
  function renderInk(el, options) {
15501
15508
  const replay = options?.replay ?? false;
15502
- const strokes = chunkJKSUB7DR_js.buildInkGroupStrokes(el, { color: "#000", width: 3 });
15509
+ const strokes = chunk5DBKW7F3_js.buildInkGroupStrokes(el, { color: "#000", width: 3 });
15503
15510
  strokes.some((s) => s.circles || s.nibMarks);
15504
15511
  const pressureSensitive = options?.pressureSensitive;
15505
- const replayStyles = replay ? chunkJKSUB7DR_js.getInkReplayStyles(el, options?.replayConfig) : null;
15512
+ const replayStyles = replay ? chunk5DBKW7F3_js.getInkReplayStyles(el, options?.replayConfig) : null;
15506
15513
  return /* @__PURE__ */ jsxRuntime.jsxs(
15507
15514
  "svg",
15508
15515
  {
@@ -15510,7 +15517,7 @@ function renderInk(el, options) {
15510
15517
  viewBox: `0 0 ${Math.max(el.width, 1)} ${Math.max(el.height, 1)}`,
15511
15518
  preserveAspectRatio: "none",
15512
15519
  children: [
15513
- replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children: chunkJKSUB7DR_js.INK_REPLAY_KEYFRAMES }),
15520
+ replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children: chunk5DBKW7F3_js.INK_REPLAY_KEYFRAMES }),
15514
15521
  strokes.map(
15515
15522
  (s, i) => renderStrokeView(s, pressureSensitive, replayStyles?.[i], `${el.id}-ink-${i}`)
15516
15523
  )
@@ -15521,7 +15528,7 @@ function renderInk(el, options) {
15521
15528
  function renderGroup(children, parentGroupFill) {
15522
15529
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative w-full h-full pointer-events-none", children: pptx.filterRenderedElements(children).map((c, childIndex) => {
15523
15530
  const { hf, fc, sw, sc } = shapeParams(c);
15524
- const baseSs = chunkJKSUB7DR_js.getShapeVisualStyle(c, hf, fc, sw, sc);
15531
+ const baseSs = chunk5DBKW7F3_js.getShapeVisualStyle(c, hf, fc, sw, sc);
15525
15532
  const inheritedFill = pptx.resolveGroupChildFill(c, parentGroupFill);
15526
15533
  const ss = inheritedFill ? {
15527
15534
  ...baseSs,
@@ -15532,9 +15539,9 @@ function renderGroup(children, parentGroupFill) {
15532
15539
  backgroundPosition: inheritedFill.backgroundPosition
15533
15540
  } : baseSs;
15534
15541
  const isI = c.type === "picture" || c.type === "image";
15535
- const vs = chunkJKSUB7DR_js.renderVectorShape(c, isI ? false : hf, fc, sw, sc);
15536
- const ts = chunkJKSUB7DR_js.getTextStyleForElement(c, chunkJKSUB7DR_js.DEFAULT_TEXT_COLOR);
15537
- const isTxt = chunkJKSUB7DR_js.isEditableTextElement(c);
15542
+ const vs = chunk5DBKW7F3_js.renderVectorShape(c, isI ? false : hf, fc, sw, sc);
15543
+ const ts = chunk5DBKW7F3_js.getTextStyleForElement(c, chunk5DBKW7F3_js.DEFAULT_TEXT_COLOR);
15544
+ const isTxt = chunk5DBKW7F3_js.isEditableTextElement(c);
15538
15545
  return /* @__PURE__ */ jsxRuntime.jsxs(
15539
15546
  "div",
15540
15547
  {
@@ -15543,9 +15550,9 @@ function renderGroup(children, parentGroupFill) {
15543
15550
  style: {
15544
15551
  left: c.x,
15545
15552
  top: c.y,
15546
- width: Math.max(c.width, chunkJKSUB7DR_js.MIN_ELEMENT_SIZE),
15547
- height: Math.max(c.height, chunkJKSUB7DR_js.MIN_ELEMENT_SIZE),
15548
- transform: chunkJKSUB7DR_js.getElementTransform(c),
15553
+ width: Math.max(c.width, chunk5DBKW7F3_js.MIN_ELEMENT_SIZE),
15554
+ height: Math.max(c.height, chunk5DBKW7F3_js.MIN_ELEMENT_SIZE),
15555
+ transform: chunk5DBKW7F3_js.getElementTransform(c),
15549
15556
  transformOrigin: "center",
15550
15557
  ...ss,
15551
15558
  ...isI ? {
@@ -15570,8 +15577,8 @@ function renderGroup(children, parentGroupFill) {
15570
15577
  // A nested group: recurse, chaining the inherited fill so a
15571
15578
  // `grpFill` shape under a fill-less sub-group still paints.
15572
15579
  renderGroup(c.children, pptx.getGroupChildParentFill(c, parentGroupFill))
15573
- ) : isI && ("svgData" in c && c.svgData || "imageData" in c && c.imageData) ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style: chunkJKSUB7DR_js.getImageSurfaceStyle(c), children: [
15574
- chunkJKSUB7DR_js.isImageTiled(c) ? /* @__PURE__ */ jsxRuntime.jsx(
15580
+ ) : isI && ("svgData" in c && c.svgData || "imageData" in c && c.imageData) ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style: chunk5DBKW7F3_js.getImageSurfaceStyle(c), children: [
15581
+ chunk5DBKW7F3_js.isImageTiled(c) ? /* @__PURE__ */ jsxRuntime.jsx(
15575
15582
  TiledImageLayer,
15576
15583
  {
15577
15584
  element: c,
@@ -15584,7 +15591,7 @@ function renderGroup(children, parentGroupFill) {
15584
15591
  src: "svgData" in c && c.svgData ? c.svgData : c.imageData,
15585
15592
  alt: i18n.translationsEn["pptx.ink.groupChildAlt"],
15586
15593
  className: "pointer-events-none select-none",
15587
- style: chunkJKSUB7DR_js.getImageRenderStyle(c),
15594
+ style: chunk5DBKW7F3_js.getImageRenderStyle(c),
15588
15595
  draggable: false
15589
15596
  }
15590
15597
  ),
@@ -15596,7 +15603,7 @@ function renderGroup(children, parentGroupFill) {
15596
15603
  {
15597
15604
  className: "relative z-10 w-full h-full pointer-events-none whitespace-pre-wrap break-words leading-[1.3]",
15598
15605
  style: ts,
15599
- children: chunkJKSUB7DR_js.renderTextSegments(c, chunkJKSUB7DR_js.DEFAULT_TEXT_COLOR)
15606
+ children: chunk5DBKW7F3_js.renderTextSegments(c, chunk5DBKW7F3_js.DEFAULT_TEXT_COLOR)
15600
15607
  }
15601
15608
  ) : null
15602
15609
  ] })
@@ -15610,8 +15617,8 @@ function renderContentPart(el, options) {
15610
15617
  if (el.inkStrokes && el.inkStrokes.length > 0) {
15611
15618
  const replay = options?.replay ?? false;
15612
15619
  const pressureSensitive = options?.pressureSensitive ?? true;
15613
- const strokes = chunkJKSUB7DR_js.buildContentPartStrokes(el);
15614
- const replayStyles = replay ? chunkJKSUB7DR_js.getContentPartReplayStyles(el.inkStrokes, options?.replayConfig) : null;
15620
+ const strokes = chunk5DBKW7F3_js.buildContentPartStrokes(el);
15621
+ const replayStyles = replay ? chunk5DBKW7F3_js.getContentPartReplayStyles(el.inkStrokes, options?.replayConfig) : null;
15615
15622
  return /* @__PURE__ */ jsxRuntime.jsxs(
15616
15623
  "svg",
15617
15624
  {
@@ -15619,7 +15626,7 @@ function renderContentPart(el, options) {
15619
15626
  viewBox: `0 0 ${Math.max(el.width, 1)} ${Math.max(el.height, 1)}`,
15620
15627
  preserveAspectRatio: "none",
15621
15628
  children: [
15622
- replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children: chunkJKSUB7DR_js.INK_REPLAY_KEYFRAMES }),
15629
+ replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children: chunk5DBKW7F3_js.INK_REPLAY_KEYFRAMES }),
15623
15630
  strokes.map(
15624
15631
  (s, i) => renderStrokeView(s, pressureSensitive, replayStyles?.[i], `${el.id}-cp-ink-${i}`)
15625
15632
  )
@@ -15846,9 +15853,9 @@ function useInlineListEditor(element, rootRef, onChange, onModelReplacement) {
15846
15853
  collaboration: connected,
15847
15854
  model: pptx.createInlineListModelObserver(element),
15848
15855
  activationSelection,
15849
- children: seed && !connected ? chunkJKSUB7DR_js.renderTextSegments(
15856
+ children: seed && !connected ? chunk5DBKW7F3_js.renderTextSegments(
15850
15857
  element,
15851
- chunkJKSUB7DR_js.DEFAULT_TEXT_COLOR,
15858
+ chunk5DBKW7F3_js.DEFAULT_TEXT_COLOR,
15852
15859
  void 0,
15853
15860
  void 0,
15854
15861
  void 0,
@@ -16084,8 +16091,8 @@ function InlineTextEditor({
16084
16091
  pending.endOffset
16085
16092
  );
16086
16093
  });
16087
- const warpStyle = chunkJKSUB7DR_js.getTextWarpStyle(textStyleRaw);
16088
- const compensationTransform = chunkJKSUB7DR_js.getTextCompensationTransform(element);
16094
+ const warpStyle = chunk5DBKW7F3_js.getTextWarpStyle(textStyleRaw);
16095
+ const compensationTransform = chunk5DBKW7F3_js.getTextCompensationTransform(element);
16089
16096
  const warpTransform = warpStyle?.transform;
16090
16097
  const mergedTransform = [compensationTransform, warpTransform].filter(Boolean).join(" ") || void 0;
16091
16098
  const wrapperStyle = {
@@ -16093,7 +16100,7 @@ function InlineTextEditor({
16093
16100
  ...textStyle,
16094
16101
  ...warpStyle,
16095
16102
  transform: mergedTransform,
16096
- transformOrigin: warpStyle?.transformOrigin || (compensationTransform ? chunkJKSUB7DR_js.getTextCompensationOrigin(element) : "center")
16103
+ transformOrigin: warpStyle?.transformOrigin || (compensationTransform ? chunk5DBKW7F3_js.getTextCompensationOrigin(element) : "center")
16097
16104
  };
16098
16105
  const nextInlineStyleValue = (property) => {
16099
16106
  if (!pptx$1.hasTextProperties(element)) {
@@ -16168,7 +16175,7 @@ function InlineTextEditor({
16168
16175
  const text = e.clipboardData.getData("text/plain");
16169
16176
  document.execCommand("insertText", false, text);
16170
16177
  },
16171
- children: list.seed ? list.children : seed.hasRichSegments ? chunkJKSUB7DR_js.renderTextSegments(element, chunkJKSUB7DR_js.DEFAULT_TEXT_COLOR) : seed.initialText
16178
+ children: list.seed ? list.children : seed.hasRichSegments ? chunk5DBKW7F3_js.renderTextSegments(element, chunk5DBKW7F3_js.DEFAULT_TEXT_COLOR) : seed.initialText
16172
16179
  },
16173
16180
  list.seed?.paragraphs[0].token ?? "plain"
16174
16181
  );
@@ -16333,7 +16340,7 @@ function OleActionFooter({
16333
16340
  info,
16334
16341
  showActions
16335
16342
  }) {
16336
- const { t } = chunkJKSUB7DR_js.useTranslation();
16343
+ const { t } = chunk5DBKW7F3_js.useTranslation();
16337
16344
  if (!showActions || !info.canDownload || !el.oleEmbeddedData) {
16338
16345
  return null;
16339
16346
  }
@@ -16442,7 +16449,7 @@ function SmartArtInlineNodeEditor({
16442
16449
  onCommit,
16443
16450
  onCancel
16444
16451
  }) {
16445
- const { t } = chunkJKSUB7DR_js.useTranslation();
16452
+ const { t } = chunk5DBKW7F3_js.useTranslation();
16446
16453
  const ref = React17__default.default.useRef(null);
16447
16454
  const [value, setValue] = React17__default.default.useState(initialText);
16448
16455
  const settled = React17__default.default.useRef(false);
@@ -17070,7 +17077,7 @@ function SmartArtRendererImpl({
17070
17077
  onUpdateElement,
17071
17078
  animationState
17072
17079
  }) {
17073
- const { t } = chunkJKSUB7DR_js.useTranslation();
17080
+ const { t } = chunk5DBKW7F3_js.useTranslation();
17074
17081
  if (element.type !== "smartArt" || !element.smartArtData) {
17075
17082
  return /* @__PURE__ */ jsxRuntime.jsx(
17076
17083
  "div",
@@ -17316,7 +17323,7 @@ function groupIntoParagraphs(element, fieldContext) {
17316
17323
  element,
17317
17324
  fieldContext ? (seg) => {
17318
17325
  if (seg.fieldType) {
17319
- const substituted = chunkJKSUB7DR_js.substituteFieldText(
17326
+ const substituted = chunk5DBKW7F3_js.substituteFieldText(
17320
17327
  seg.text,
17321
17328
  seg.fieldType,
17322
17329
  fieldContext,
@@ -17351,13 +17358,13 @@ function getSegmentTspanProps(segment, element, fallbackColor) {
17351
17358
  if (s.strikethrough) {
17352
17359
  decos.push("line-through");
17353
17360
  }
17354
- const fill = s.hyperlink ? chunkJKSUB7DR_js.normalizeHexColor(s.color || element.textStyle?.color, chunkJKSUB7DR_js.HYPERLINK_COLOR) : chunkJKSUB7DR_js.normalizeHexColor(s.color || element.textStyle?.color, fallbackColor);
17361
+ const fill = s.hyperlink ? chunk5DBKW7F3_js.normalizeHexColor(s.color || element.textStyle?.color, chunk5DBKW7F3_js.HYPERLINK_COLOR) : chunk5DBKW7F3_js.normalizeHexColor(s.color || element.textStyle?.color, fallbackColor);
17355
17362
  return {
17356
17363
  fill,
17357
- fontSize: s.fontSize ?? element.textStyle?.fontSize ?? chunkJKSUB7DR_js.DEFAULT_TEXT_FONT_SIZE,
17364
+ fontSize: s.fontSize ?? element.textStyle?.fontSize ?? chunk5DBKW7F3_js.DEFAULT_TEXT_FONT_SIZE,
17358
17365
  fontWeight: pptx.resolveFontWeight(s.fontFamily || element.textStyle?.fontFamily, s.bold),
17359
17366
  fontStyle: pptx.resolveFontItalic(s.fontFamily || element.textStyle?.fontFamily, s.italic) ? "italic" : void 0,
17360
- fontFamily: s.fontFamily || element.textStyle?.fontFamily ? pptx$1.getSubstituteFontFamily(s.fontFamily || element.textStyle?.fontFamily || "") : chunkJKSUB7DR_js.DEFAULT_FONT_FAMILY,
17367
+ fontFamily: s.fontFamily || element.textStyle?.fontFamily ? pptx$1.getSubstituteFontFamily(s.fontFamily || element.textStyle?.fontFamily || "") : chunk5DBKW7F3_js.DEFAULT_FONT_FAMILY,
17361
17368
  textDecoration: decos.length > 0 ? decos.join(" ") : void 0
17362
17369
  };
17363
17370
  }
@@ -17365,8 +17372,8 @@ function resolveSegmentFont(segment, element) {
17365
17372
  const s = segment.style || {};
17366
17373
  const family = s.fontFamily || element.textStyle?.fontFamily;
17367
17374
  return {
17368
- fontFamily: family ? pptx$1.getSubstituteFontFamily(family) : chunkJKSUB7DR_js.DEFAULT_FONT_FAMILY,
17369
- fontSizePx: s.fontSize ?? element.textStyle?.fontSize ?? chunkJKSUB7DR_js.DEFAULT_TEXT_FONT_SIZE,
17375
+ fontFamily: family ? pptx$1.getSubstituteFontFamily(family) : chunk5DBKW7F3_js.DEFAULT_FONT_FAMILY,
17376
+ fontSizePx: s.fontSize ?? element.textStyle?.fontSize ?? chunk5DBKW7F3_js.DEFAULT_TEXT_FONT_SIZE,
17370
17377
  bold: s.bold ?? element.textStyle?.bold,
17371
17378
  italic: s.italic ?? element.textStyle?.italic
17372
17379
  };
@@ -17455,9 +17462,9 @@ function WarpedText({
17455
17462
  const warpAdj2 = textEl.textStyle?.textWarpAdj2;
17456
17463
  const align = textEl.textStyle?.align ?? "center";
17457
17464
  const { startOffset, textAnchor } = getAlignmentProps(align);
17458
- const baseFontSize = textEl.textStyle?.fontSize ?? chunkJKSUB7DR_js.DEFAULT_TEXT_FONT_SIZE;
17459
- const baseFontFamily = textEl.textStyle?.fontFamily ? pptx$1.getSubstituteFontFamily(textEl.textStyle.fontFamily) : chunkJKSUB7DR_js.DEFAULT_FONT_FAMILY;
17460
- const baseFill = chunkJKSUB7DR_js.normalizeHexColor(textEl.textStyle?.color, fallbackColor);
17465
+ const baseFontSize = textEl.textStyle?.fontSize ?? chunk5DBKW7F3_js.DEFAULT_TEXT_FONT_SIZE;
17466
+ const baseFontFamily = textEl.textStyle?.fontFamily ? pptx$1.getSubstituteFontFamily(textEl.textStyle.fontFamily) : chunk5DBKW7F3_js.DEFAULT_FONT_FAMILY;
17467
+ const baseFill = chunk5DBKW7F3_js.normalizeHexColor(textEl.textStyle?.color, fallbackColor);
17461
17468
  if (pptx.hasGlyphEnvelope(preset)) {
17462
17469
  const perLine = pptx.buildGlyphEnvelopeBlock(
17463
17470
  preset,
@@ -17560,7 +17567,7 @@ function WarpedText({
17560
17567
  var GLYPH_BY_SHAPE = /* @__PURE__ */ buildGlyphByShape();
17561
17568
  function buildGlyphByShape() {
17562
17569
  const glyphs = Object.fromEntries(
17563
- chunkJKSUB7DR_js.ACTION_BUTTON_PRESETS.map((p) => [p.shapeType, p.iconPath])
17570
+ chunk5DBKW7F3_js.ACTION_BUTTON_PRESETS.map((p) => [p.shapeType, p.iconPath])
17564
17571
  );
17565
17572
  glyphs["actionButtonForwardOrNext"] = glyphs["actionButtonForwardNext"];
17566
17573
  glyphs["actionButtonBackOrPrevious"] = glyphs["actionButtonBackPrevious"];
@@ -17634,7 +17641,7 @@ function renderTextElementBody(options) {
17634
17641
  const useSvgWarp = pptx.shouldUseSvgWarp(
17635
17642
  pptx$1.hasTextProperties(el) ? el.textStyle?.textWarpPreset : void 0
17636
17643
  );
17637
- const scene3dStyle = pptx$1.hasTextProperties(el) ? chunkJKSUB7DR_js.buildTextBody3DSceneStyle(el.textStyle, { width: el.width, height: el.height }) : void 0;
17644
+ const scene3dStyle = pptx$1.hasTextProperties(el) ? chunk5DBKW7F3_js.buildTextBody3DSceneStyle(el.textStyle, { width: el.width, height: el.height }) : void 0;
17638
17645
  const rotationTransform = pptx.getTextBodyRotationTransform(el);
17639
17646
  const compensation = pptx.getTextCompensationStyle(el);
17640
17647
  const composedTransform = [rotationTransform, compensation?.transform, scene3dStyle?.transform].filter(Boolean).join(" ") || void 0;
@@ -17667,18 +17674,18 @@ function renderTextElementBody(options) {
17667
17674
  shouldRenderText && (useSvgWarp ? /* @__PURE__ */ jsxRuntime.jsx(
17668
17675
  "div",
17669
17676
  {
17670
- className: chunkJKSUB7DR_js.cn(
17677
+ className: chunk5DBKW7F3_js.cn(
17671
17678
  "relative z-10 w-full h-full",
17672
17679
  onHyperlinkClick ? "" : "pointer-events-none"
17673
17680
  ),
17674
- style: { ...chunkJKSUB7DR_js.getTextLayoutStyle(el), ...transformStyle },
17681
+ style: { ...chunk5DBKW7F3_js.getTextLayoutStyle(el), ...transformStyle },
17675
17682
  children: /* @__PURE__ */ jsxRuntime.jsx(
17676
17683
  WarpedText,
17677
17684
  {
17678
17685
  element: el,
17679
17686
  width: el.width,
17680
17687
  height: el.height,
17681
- fallbackColor: chunkJKSUB7DR_js.DEFAULT_TEXT_COLOR,
17688
+ fallbackColor: chunk5DBKW7F3_js.DEFAULT_TEXT_COLOR,
17682
17689
  findHighlights: findHl,
17683
17690
  fieldContext
17684
17691
  }
@@ -17687,19 +17694,19 @@ function renderTextElementBody(options) {
17687
17694
  ) : /* @__PURE__ */ jsxRuntime.jsx(
17688
17695
  "div",
17689
17696
  {
17690
- className: chunkJKSUB7DR_js.cn(
17697
+ className: chunk5DBKW7F3_js.cn(
17691
17698
  "relative z-10 w-full h-full whitespace-pre-wrap break-words leading-[1.3]",
17692
17699
  onHyperlinkClick ? "" : "pointer-events-none"
17693
17700
  ),
17694
17701
  style: {
17695
- ...chunkJKSUB7DR_js.getTextLayoutStyle(el),
17702
+ ...chunk5DBKW7F3_js.getTextLayoutStyle(el),
17696
17703
  ...txtS,
17697
- ...chunkJKSUB7DR_js.getTextWarpStyle(txtSE),
17704
+ ...chunk5DBKW7F3_js.getTextWarpStyle(txtSE),
17698
17705
  ...transformStyle
17699
17706
  },
17700
- children: chunkJKSUB7DR_js.renderTextSegments(
17707
+ children: chunk5DBKW7F3_js.renderTextSegments(
17701
17708
  el,
17702
- chunkJKSUB7DR_js.DEFAULT_TEXT_COLOR,
17709
+ chunk5DBKW7F3_js.DEFAULT_TEXT_COLOR,
17703
17710
  void 0,
17704
17711
  findHl,
17705
17712
  onHyperlinkClick,
@@ -17720,7 +17727,7 @@ function ZoomElementRenderer({
17720
17727
  onZoomClick,
17721
17728
  sourceSlideIndex
17722
17729
  }) {
17723
- const { t } = chunkJKSUB7DR_js.useTranslation();
17730
+ const { t } = chunk5DBKW7F3_js.useTranslation();
17724
17731
  const summaryView = pptx.buildSummaryZoomView(
17725
17732
  element,
17726
17733
  (index) => {
@@ -18018,7 +18025,7 @@ function renderBody(options) {
18018
18025
  );
18019
18026
  }
18020
18027
  if (isImg) {
18021
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style: chunkJKSUB7DR_js.getImageSurfaceStyle(el), children: [
18028
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style: chunk5DBKW7F3_js.getImageSurfaceStyle(el), children: [
18022
18029
  renderImg(el, imgStyle, imgFilter, imgAlt, imgOpacity),
18023
18030
  vecShape ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute inset-0", children: vecShape }) : null
18024
18031
  ] });
@@ -18035,7 +18042,7 @@ function renderBody(options) {
18035
18042
  textDirection: txtSE?.textDirection,
18036
18043
  textStyle: txtS,
18037
18044
  textStyleRaw: txtSE,
18038
- layoutStyle: chunkJKSUB7DR_js.getTextLayoutStyle(el),
18045
+ layoutStyle: chunk5DBKW7F3_js.getTextLayoutStyle(el),
18039
18046
  element: el,
18040
18047
  onCommit,
18041
18048
  onCancel,
@@ -18046,7 +18053,7 @@ function renderBody(options) {
18046
18053
  ] });
18047
18054
  }
18048
18055
  if (el.type === "table") {
18049
- return chunkJKSUB7DR_js.renderTableElement(el, txtS, {
18056
+ return chunk5DBKW7F3_js.renderTableElement(el, txtS, {
18050
18057
  editable: isSel,
18051
18058
  selectedCell: isSel ? tableSt : null,
18052
18059
  onSelectCell: onCellSel,
@@ -18079,7 +18086,7 @@ function renderBody(options) {
18079
18086
  );
18080
18087
  }
18081
18088
  if (el.type === "media") {
18082
- return chunkJKSUB7DR_js.renderMediaElement(el, media, {
18089
+ return chunk5DBKW7F3_js.renderMediaElement(el, media, {
18083
18090
  // Present mode autoplays every media element on the active slide,
18084
18091
  // not only ones persisted with their own `autoPlay` flag (matching
18085
18092
  // the other four bindings' unconditional `presenting`-gated
@@ -18131,27 +18138,27 @@ function renderBody(options) {
18131
18138
  }
18132
18139
  return renderGroup(el.children, pptx.getGroupChildParentFill(el));
18133
18140
  }
18134
- if (chunkJKSUB7DR_js.shouldRenderFallbackLabel(el, isTxtEl)) {
18135
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkJKSUB7DR_js.getElementLabel(el) });
18141
+ if (chunk5DBKW7F3_js.shouldRenderFallbackLabel(el, isTxtEl)) {
18142
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunk5DBKW7F3_js.getElementLabel(el) });
18136
18143
  }
18137
18144
  return renderTextElementBody(options);
18138
18145
  }
18139
18146
  function defaultTextColorForFill(fillColor) {
18140
18147
  const hex = String(fillColor ?? "").replace(/^#/u, "");
18141
18148
  if (!/^[0-9a-f]{6}$/iu.test(hex)) {
18142
- return chunkJKSUB7DR_js.DEFAULT_TEXT_COLOR;
18149
+ return chunk5DBKW7F3_js.DEFAULT_TEXT_COLOR;
18143
18150
  }
18144
18151
  const channels = [0, 2, 4].map((offset) => Number.parseInt(hex.slice(offset, offset + 2), 16) / 255).map((channel) => channel <= 0.04045 ? channel / 12.92 : ((channel + 0.055) / 1.055) ** 2.4);
18145
18152
  const luminance = channels[0] * 0.2126 + channels[1] * 0.7152 + channels[2] * 0.0722;
18146
- return luminance > 0.179 ? chunkJKSUB7DR_js.DEFAULT_TEXT_COLOR : "#ffffff";
18153
+ return luminance > 0.179 ? chunk5DBKW7F3_js.DEFAULT_TEXT_COLOR : "#ffffff";
18147
18154
  }
18148
18155
  function getStaticElementVisualState(element, parentGroupFill) {
18149
18156
  const style = pptx$1.hasShapeProperties(element) ? element.shapeStyle : void 0;
18150
- const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(chunkJKSUB7DR_js.buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
18151
- const fill = chunkJKSUB7DR_js.normalizeHexColor(style?.fillColor, chunkJKSUB7DR_js.DEFAULT_FILL_COLOR);
18157
+ const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(chunk5DBKW7F3_js.buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
18158
+ const fill = chunk5DBKW7F3_js.normalizeHexColor(style?.fillColor, chunk5DBKW7F3_js.DEFAULT_FILL_COLOR);
18152
18159
  const strokeWidth = pptx.paintedStrokeWidth(style);
18153
- const stroke = chunkJKSUB7DR_js.normalizeHexColor(style?.strokeColor, chunkJKSUB7DR_js.DEFAULT_STROKE_COLOR);
18154
- const baseVisualStyle = chunkJKSUB7DR_js.getShapeVisualStyle(element, hasFill, fill, strokeWidth, stroke);
18160
+ const stroke = chunk5DBKW7F3_js.normalizeHexColor(style?.strokeColor, chunk5DBKW7F3_js.DEFAULT_STROKE_COLOR);
18161
+ const baseVisualStyle = chunk5DBKW7F3_js.getShapeVisualStyle(element, hasFill, fill, strokeWidth, stroke);
18155
18162
  const inheritedFill = pptx.resolveGroupChildFill(element, parentGroupFill);
18156
18163
  const visualStyle = inheritedFill ? {
18157
18164
  ...baseVisualStyle,
@@ -18161,9 +18168,9 @@ function getStaticElementVisualState(element, parentGroupFill) {
18161
18168
  backgroundSize: inheritedFill.backgroundSize,
18162
18169
  backgroundPosition: inheritedFill.backgroundPosition
18163
18170
  } : baseVisualStyle;
18164
- const textStyle = chunkJKSUB7DR_js.getTextStyleForElement(
18171
+ const textStyle = chunk5DBKW7F3_js.getTextStyleForElement(
18165
18172
  element,
18166
- element.type === "shape" && hasFill ? defaultTextColorForFill(fill) : chunkJKSUB7DR_js.DEFAULT_TEXT_COLOR
18173
+ element.type === "shape" && hasFill ? defaultTextColorForFill(fill) : chunk5DBKW7F3_js.DEFAULT_TEXT_COLOR
18167
18174
  );
18168
18175
  const isImage = element.type === "picture" || element.type === "image";
18169
18176
  const letsTextOverflow = pptx$1.hasTextProperties(element) && Boolean(element.text?.trim());
@@ -18188,7 +18195,7 @@ function getStaticElementInteractionState(element, hasActionHandler, exposeEleme
18188
18195
  return { action, isActionable, contractRole };
18189
18196
  }
18190
18197
  function getStaticElementWrapperClassName(element, visual, positioned, isActionable) {
18191
- const overflowClass = visual.isImage || visual.strokeWidth > 0 || element.type === "group" || chunkJKSUB7DR_js.isConnectorOrLineElement(element) || visual.isCallout || visual.letsTextOverflow ? "" : "overflow-hidden";
18198
+ const overflowClass = visual.isImage || visual.strokeWidth > 0 || element.type === "group" || chunk5DBKW7F3_js.isConnectorOrLineElement(element) || visual.isCallout || visual.letsTextOverflow ? "" : "overflow-hidden";
18192
18199
  const pointerClass = isActionable ? "pointer-events-auto cursor-pointer" : "pointer-events-none";
18193
18200
  return `${positioned ? "absolute" : "relative"} ${overflowClass} ${pointerClass}`;
18194
18201
  }
@@ -18271,7 +18278,7 @@ function StaticElementRendererImpl({
18271
18278
  top: positioned ? element.y : void 0,
18272
18279
  width: positioned ? Math.max(element.width, 1) : "100%",
18273
18280
  height: positioned ? Math.max(element.height, 1) : "100%",
18274
- transform: positioned ? chunkJKSUB7DR_js.getElementTransform(element) : void 0,
18281
+ transform: positioned ? chunk5DBKW7F3_js.getElementTransform(element) : void 0,
18275
18282
  transformOrigin: "center",
18276
18283
  zIndex,
18277
18284
  ...visualStyle,
@@ -18314,18 +18321,18 @@ function StaticElementRendererImpl({
18314
18321
  spellCheck: false,
18315
18322
  txtSE: pptx$1.hasTextProperties(element) ? element.textStyle : void 0,
18316
18323
  txtS: textStyle,
18317
- vecShape: chunkJKSUB7DR_js.renderVectorShape(
18324
+ vecShape: chunk5DBKW7F3_js.renderVectorShape(
18318
18325
  element,
18319
18326
  isImage ? false : hasFill,
18320
18327
  fill,
18321
18328
  strokeWidth,
18322
18329
  stroke
18323
18330
  ),
18324
- imgStyle: imageAnimation ? { ...chunkJKSUB7DR_js.getImageRenderStyle(element), animation: imageAnimation } : chunkJKSUB7DR_js.getImageRenderStyle(element),
18325
- imgFilter: chunkJKSUB7DR_js.getImageEffectsFilter(element),
18326
- imgOpacity: chunkJKSUB7DR_js.getImageEffectsOpacity(element),
18331
+ imgStyle: imageAnimation ? { ...chunk5DBKW7F3_js.getImageRenderStyle(element), animation: imageAnimation } : chunk5DBKW7F3_js.getImageRenderStyle(element),
18332
+ imgFilter: chunk5DBKW7F3_js.getImageEffectsFilter(element),
18333
+ imgOpacity: chunk5DBKW7F3_js.getImageEffectsOpacity(element),
18327
18334
  imgAlt: "",
18328
- isTxtEl: chunkJKSUB7DR_js.isEditableTextElement(element),
18335
+ isTxtEl: chunk5DBKW7F3_js.isEditableTextElement(element),
18329
18336
  media: mediaDataUrls,
18330
18337
  tableSt: null,
18331
18338
  isSel: false,
@@ -18373,7 +18380,7 @@ function SlideLayer({
18373
18380
  style: {
18374
18381
  width: safeWidth,
18375
18382
  height: safeHeight,
18376
- backgroundColor: slide.backgroundColor ? chunkJKSUB7DR_js.normalizeHexColor(slide.backgroundColor, "#ffffff") : "#ffffff",
18383
+ backgroundColor: slide.backgroundColor ? chunk5DBKW7F3_js.normalizeHexColor(slide.backgroundColor, "#ffffff") : "#ffffff",
18377
18384
  backgroundImage: slide.backgroundImage ? `url(${slide.backgroundImage})` : slide.backgroundGradient ? slide.backgroundGradient : void 0,
18378
18385
  backgroundSize: slide.backgroundImage ? "cover" : void 0,
18379
18386
  backgroundPosition: slide.backgroundImage ? "center" : void 0