pptx-react-viewer 4.54.0 → 4.55.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/dist/{AiChatPanel-7GJQ66GR.js → AiChatPanel-7DESUEAZ.js} +19 -19
  3. package/dist/AiChatPanel-7DESUEAZ.js.br +0 -0
  4. package/dist/AiChatPanel-7DESUEAZ.js.gz +0 -0
  5. package/dist/{AiChatPanel-AI75AT6C.mjs → AiChatPanel-GQ64SIYP.mjs} +1 -1
  6. package/dist/AiChatPanel-GQ64SIYP.mjs.br +0 -0
  7. package/dist/AiChatPanel-GQ64SIYP.mjs.gz +0 -0
  8. package/dist/{chunk-3TN5SUQR.js → chunk-5KFSMXI4.js} +6 -3
  9. package/dist/chunk-5KFSMXI4.js.br +0 -0
  10. package/dist/chunk-5KFSMXI4.js.gz +0 -0
  11. package/dist/{chunk-GJB3TWLP.mjs → chunk-64BFLDBT.mjs} +2 -7
  12. package/dist/chunk-64BFLDBT.mjs.br +0 -0
  13. package/dist/{chunk-GJB3TWLP.mjs.gz → chunk-64BFLDBT.mjs.gz} +0 -0
  14. package/dist/{chunk-6MMJBI4I.mjs → chunk-EXSGJHOH.mjs} +4 -4
  15. package/dist/chunk-EXSGJHOH.mjs.br +0 -0
  16. package/dist/{chunk-6MMJBI4I.mjs.gz → chunk-EXSGJHOH.mjs.gz} +0 -0
  17. package/dist/{chunk-ID37Y3HG.mjs → chunk-MR3ZSEHS.mjs} +7 -4
  18. package/dist/chunk-MR3ZSEHS.mjs.br +0 -0
  19. package/dist/chunk-MR3ZSEHS.mjs.gz +0 -0
  20. package/dist/{chunk-ISNT4VQN.js → chunk-OIQAJR57.js} +203 -208
  21. package/dist/chunk-OIQAJR57.js.br +0 -0
  22. package/dist/chunk-OIQAJR57.js.gz +0 -0
  23. package/dist/{chunk-RB6MRBJI.js → chunk-V7JICDSL.js} +557 -557
  24. package/dist/chunk-V7JICDSL.js.br +0 -0
  25. package/dist/chunk-V7JICDSL.js.gz +0 -0
  26. package/dist/i18n/de.cjs +421 -1
  27. package/dist/i18n/de.cjs.br +0 -0
  28. package/dist/i18n/de.cjs.gz +0 -0
  29. package/dist/i18n/de.mjs +421 -1
  30. package/dist/i18n/de.mjs.br +0 -0
  31. package/dist/i18n/de.mjs.gz +0 -0
  32. package/dist/i18n/es.cjs +421 -1
  33. package/dist/i18n/es.cjs.br +0 -0
  34. package/dist/i18n/es.cjs.gz +0 -0
  35. package/dist/i18n/es.mjs +421 -1
  36. package/dist/i18n/es.mjs.br +0 -0
  37. package/dist/i18n/es.mjs.gz +0 -0
  38. package/dist/i18n/fr.cjs +421 -1
  39. package/dist/i18n/fr.cjs.br +0 -0
  40. package/dist/i18n/fr.cjs.gz +0 -0
  41. package/dist/i18n/fr.mjs +421 -1
  42. package/dist/i18n/fr.mjs.br +0 -0
  43. package/dist/i18n/fr.mjs.gz +0 -0
  44. package/dist/i18n/zh-CN.cjs +421 -1
  45. package/dist/i18n/zh-CN.cjs.br +0 -0
  46. package/dist/i18n/zh-CN.cjs.gz +0 -0
  47. package/dist/i18n/zh-CN.mjs +421 -1
  48. package/dist/i18n/zh-CN.mjs.br +0 -0
  49. package/dist/i18n/zh-CN.mjs.gz +0 -0
  50. package/dist/index.js +25 -25
  51. package/dist/index.js.br +0 -0
  52. package/dist/index.js.gz +0 -0
  53. package/dist/index.mjs +3 -3
  54. package/dist/index.mjs.br +0 -0
  55. package/dist/index.mjs.gz +0 -0
  56. package/dist/internals.js +81 -81
  57. package/dist/internals.js.br +0 -0
  58. package/dist/internals.js.gz +0 -0
  59. package/dist/internals.mjs +2 -2
  60. package/dist/internals.mjs.br +0 -0
  61. package/dist/internals.mjs.gz +0 -0
  62. package/dist/viewer/index.js +20 -20
  63. package/dist/viewer/index.js.br +0 -0
  64. package/dist/viewer/index.js.gz +0 -0
  65. package/dist/viewer/index.mjs +3 -3
  66. package/dist/viewer/index.mjs.br +0 -0
  67. package/dist/viewer/index.mjs.gz +0 -0
  68. package/package.json +3 -3
  69. package/dist/AiChatPanel-7GJQ66GR.js.br +0 -0
  70. package/dist/AiChatPanel-7GJQ66GR.js.gz +0 -0
  71. package/dist/AiChatPanel-AI75AT6C.mjs.br +0 -0
  72. package/dist/AiChatPanel-AI75AT6C.mjs.gz +0 -0
  73. package/dist/chunk-3TN5SUQR.js.br +0 -0
  74. package/dist/chunk-3TN5SUQR.js.gz +0 -0
  75. package/dist/chunk-6MMJBI4I.mjs.br +0 -0
  76. package/dist/chunk-GJB3TWLP.mjs.br +0 -0
  77. package/dist/chunk-ID37Y3HG.mjs.br +0 -0
  78. package/dist/chunk-ID37Y3HG.mjs.gz +0 -0
  79. package/dist/chunk-ISNT4VQN.js.br +0 -0
  80. package/dist/chunk-ISNT4VQN.js.gz +0 -0
  81. package/dist/chunk-RB6MRBJI.js.br +0 -0
  82. package/dist/chunk-RB6MRBJI.js.gz +0 -0
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk3TN5SUQR_js = require('./chunk-3TN5SUQR.js');
3
+ var chunk5KFSMXI4_js = require('./chunk-5KFSMXI4.js');
4
4
  var pptx = require('ooxml-ui/pptx');
5
5
  var React17 = require('react');
6
6
  var jsxRuntime = require('react/jsx-runtime');
@@ -603,9 +603,9 @@ function differsOnlyInMasterSet(previous, next) {
603
603
  }
604
604
  function recordExplicitSlideUpdate(history, previous, before, label) {
605
605
  if (previous && serializeHistoryDocument(previous) !== serializeHistoryDocument(before)) {
606
- history.record(chunk3TN5SUQR_js.cloneHistorySnapshot(previous), previous.actionLabel);
606
+ history.record(chunk5KFSMXI4_js.cloneHistorySnapshot(previous), previous.actionLabel);
607
607
  }
608
- history.record({ ...chunk3TN5SUQR_js.cloneHistorySnapshot(before), actionLabel: label }, label);
608
+ history.record({ ...chunk5KFSMXI4_js.cloneHistorySnapshot(before), actionLabel: label }, label);
609
609
  }
610
610
  var POLL_INTERVAL_MS = 16;
611
611
  function usePointerReleaseWakeup(hasActivePointerInteraction) {
@@ -687,8 +687,8 @@ function useEditorHistory(input) {
687
687
  width: canvasSize.width,
688
688
  height: canvasSize.height,
689
689
  activeSlideIndex,
690
- slides: slides.map(chunk3TN5SUQR_js.cloneSlide),
691
- templateElementsBySlideId: chunk3TN5SUQR_js.cloneTemplateElementsBySlideId(templateElementsBySlideId),
690
+ slides: slides.map(chunk5KFSMXI4_js.cloneSlide),
691
+ templateElementsBySlideId: chunk5KFSMXI4_js.cloneTemplateElementsBySlideId(templateElementsBySlideId),
692
692
  ...recordedTheme ? { theme: recordedTheme } : {},
693
693
  ...actionLabel ? { actionLabel } : {}
694
694
  };
@@ -702,9 +702,9 @@ function useEditorHistory(input) {
702
702
  width: snapshot.width,
703
703
  height: snapshot.height
704
704
  });
705
- setSlides(snapshot.slides.map(chunk3TN5SUQR_js.cloneSlide));
705
+ setSlides(snapshot.slides.map(chunk5KFSMXI4_js.cloneSlide));
706
706
  setTemplateElementsBySlideId(
707
- chunk3TN5SUQR_js.cloneTemplateElementsBySlideId(snapshot.templateElementsBySlideId)
707
+ chunk5KFSMXI4_js.cloneTemplateElementsBySlideId(snapshot.templateElementsBySlideId)
708
708
  );
709
709
  setActiveSlideIndex(Math.min(snapshot.activeSlideIndex, maxSlideIndex));
710
710
  setSelectedElementIds([]);
@@ -770,8 +770,8 @@ function useEditorHistory(input) {
770
770
  return;
771
771
  }
772
772
  isApplyingHistoryRef.current = true;
773
- const nextSnapshot = chunk3TN5SUQR_js.cloneHistorySnapshot(result.snapshot);
774
- lastHistorySnapshotRef.current = chunk3TN5SUQR_js.cloneHistorySnapshot(nextSnapshot);
773
+ const nextSnapshot = chunk5KFSMXI4_js.cloneHistorySnapshot(result.snapshot);
774
+ lastHistorySnapshotRef.current = chunk5KFSMXI4_js.cloneHistorySnapshot(nextSnapshot);
775
775
  lastHistorySerializedRef.current = serializeHistoryDocument(nextSnapshot);
776
776
  applyHistorySnapshot(nextSnapshot);
777
777
  restoreTheme(currentSnapshot, nextSnapshot);
@@ -795,8 +795,8 @@ function useEditorHistory(input) {
795
795
  return;
796
796
  }
797
797
  isApplyingHistoryRef.current = true;
798
- const targetSnapshot = chunk3TN5SUQR_js.cloneHistorySnapshot(result.snapshot);
799
- lastHistorySnapshotRef.current = chunk3TN5SUQR_js.cloneHistorySnapshot(targetSnapshot);
798
+ const targetSnapshot = chunk5KFSMXI4_js.cloneHistorySnapshot(result.snapshot);
799
+ lastHistorySnapshotRef.current = chunk5KFSMXI4_js.cloneHistorySnapshot(targetSnapshot);
800
800
  lastHistorySerializedRef.current = serializeHistoryDocument(targetSnapshot);
801
801
  applyHistorySnapshot(targetSnapshot);
802
802
  restoreTheme(currentSnapshot, targetSnapshot);
@@ -814,7 +814,7 @@ function useEditorHistory(input) {
814
814
  (initialSnapshot) => {
815
815
  history.clear();
816
816
  if (initialSnapshot) {
817
- const clonedInitial = chunk3TN5SUQR_js.cloneHistorySnapshot(initialSnapshot);
817
+ const clonedInitial = chunk5KFSMXI4_js.cloneHistorySnapshot(initialSnapshot);
818
818
  lastHistorySnapshotRef.current = clonedInitial;
819
819
  lastHistorySerializedRef.current = serializeHistoryDocument(clonedInitial);
820
820
  } else {
@@ -888,16 +888,16 @@ function useEditorHistory(input) {
888
888
  slides
889
889
  ]);
890
890
  const commitSlides = (nextSlides, label, beforeSlides = slides, nextSlideMasters) => {
891
- const before = { ...buildHistorySnapshot(), slides: beforeSlides.map(chunk3TN5SUQR_js.cloneSlide) };
891
+ const before = { ...buildHistorySnapshot(), slides: beforeSlides.map(chunk5KFSMXI4_js.cloneSlide) };
892
892
  const { theme: beforeTheme, ...unthemed } = before;
893
893
  const afterTheme = nextSlideMasters ? pptx.historyTheme(theme, nextSlideMasters) : beforeTheme;
894
894
  const after = {
895
895
  ...unthemed,
896
- slides: nextSlides.map(chunk3TN5SUQR_js.cloneSlide),
896
+ slides: nextSlides.map(chunk5KFSMXI4_js.cloneSlide),
897
897
  ...afterTheme ? { theme: afterTheme } : {}
898
898
  };
899
899
  recordExplicitSlideUpdate(history, lastHistorySnapshotRef.current, before, label);
900
- lastHistorySnapshotRef.current = chunk3TN5SUQR_js.cloneHistorySnapshot(after);
900
+ lastHistorySnapshotRef.current = chunk5KFSMXI4_js.cloneHistorySnapshot(after);
901
901
  lastHistorySerializedRef.current = serializeHistoryDocument(after);
902
902
  isApplyingHistoryRef.current = false;
903
903
  setSlides(nextSlides);
@@ -1084,22 +1084,22 @@ function useZoomViewport({
1084
1084
  selectedElements.forEach((element) => {
1085
1085
  minX = Math.min(minX, element.x);
1086
1086
  minY = Math.min(minY, element.y);
1087
- maxX = Math.max(maxX, element.x + Math.max(element.width, chunk3TN5SUQR_js.MIN_ELEMENT_SIZE));
1088
- maxY = Math.max(maxY, element.y + Math.max(element.height, chunk3TN5SUQR_js.MIN_ELEMENT_SIZE));
1087
+ maxX = Math.max(maxX, element.x + Math.max(element.width, chunk5KFSMXI4_js.MIN_ELEMENT_SIZE));
1088
+ maxY = Math.max(maxY, element.y + Math.max(element.height, chunk5KFSMXI4_js.MIN_ELEMENT_SIZE));
1089
1089
  });
1090
1090
  if (!Number.isFinite(minX) || !Number.isFinite(minY) || !Number.isFinite(maxX) || !Number.isFinite(maxY)) {
1091
1091
  return;
1092
1092
  }
1093
1093
  const selectionBounds = { minX, minY, maxX, maxY };
1094
- const boundsWidth = Math.max(selectionBounds.maxX - selectionBounds.minX, chunk3TN5SUQR_js.MIN_ELEMENT_SIZE);
1095
- const boundsHeight = Math.max(selectionBounds.maxY - selectionBounds.minY, chunk3TN5SUQR_js.MIN_ELEMENT_SIZE);
1094
+ const boundsWidth = Math.max(selectionBounds.maxX - selectionBounds.minX, chunk5KFSMXI4_js.MIN_ELEMENT_SIZE);
1095
+ const boundsHeight = Math.max(selectionBounds.maxY - selectionBounds.minY, chunk5KFSMXI4_js.MIN_ELEMENT_SIZE);
1096
1096
  const availableWidth = Math.max(
1097
- effectiveEditorDimensions.width - chunk3TN5SUQR_js.ZOOM_TO_SELECTION_PADDING,
1098
- chunk3TN5SUQR_js.MIN_ELEMENT_SIZE
1097
+ effectiveEditorDimensions.width - chunk5KFSMXI4_js.ZOOM_TO_SELECTION_PADDING,
1098
+ chunk5KFSMXI4_js.MIN_ELEMENT_SIZE
1099
1099
  );
1100
1100
  const availableHeight = Math.max(
1101
- effectiveEditorDimensions.height - chunk3TN5SUQR_js.ZOOM_TO_SELECTION_PADDING,
1102
- chunk3TN5SUQR_js.MIN_ELEMENT_SIZE
1101
+ effectiveEditorDimensions.height - chunk5KFSMXI4_js.ZOOM_TO_SELECTION_PADDING,
1102
+ chunk5KFSMXI4_js.MIN_ELEMENT_SIZE
1103
1103
  );
1104
1104
  const targetEditorScale = Math.min(
1105
1105
  availableWidth / boundsWidth,
@@ -4014,8 +4014,8 @@ function useViewerCoreState(_input) {
4014
4014
  const { slides, setSlides, slidesRef } = useSlideState();
4015
4015
  const [templateElementsBySlideId, setTemplateElementsBySlideId] = React17.useState({});
4016
4016
  const [canvasSize, setCanvasSize] = React17.useState({
4017
- width: chunk3TN5SUQR_js.DEFAULT_CANVAS_WIDTH,
4018
- height: chunk3TN5SUQR_js.DEFAULT_CANVAS_HEIGHT
4017
+ width: chunk5KFSMXI4_js.DEFAULT_CANVAS_WIDTH,
4018
+ height: chunk5KFSMXI4_js.DEFAULT_CANVAS_HEIGHT
4019
4019
  });
4020
4020
  const [slideSizeEmu, setSlideSizeEmu] = React17.useState();
4021
4021
  const [activeSlideIndex, setActiveSlideIndex] = React17.useState(0);
@@ -4407,7 +4407,7 @@ function useLoadContent({
4407
4407
  initialSlideRef.current = initialSlide;
4408
4408
  const limitsRef = React17.useRef(limits);
4409
4409
  limitsRef.current = limits;
4410
- const { t } = chunk3TN5SUQR_js.useTranslation();
4410
+ const { t } = chunk5KFSMXI4_js.useTranslation();
4411
4411
  const translateRef = React17.useRef(t);
4412
4412
  translateRef.current = t;
4413
4413
  const originalBufferRef = React17.useRef(null);
@@ -4507,12 +4507,12 @@ function useLoadContent({
4507
4507
  }
4508
4508
  resources.commit();
4509
4509
  handlerRef.current = handler;
4510
- const partition = chunk3TN5SUQR_js.partitionTemplateElements(nextSlides);
4510
+ const partition = chunk5KFSMXI4_js.partitionTemplateElements(nextSlides);
4511
4511
  setSlides(partition.slides);
4512
4512
  setTemplateElementsBySlideId(partition.templateElementsBySlideId);
4513
4513
  setCanvasSize({
4514
- width: parsed.width ?? chunk3TN5SUQR_js.DEFAULT_CANVAS_WIDTH,
4515
- height: parsed.height ?? chunk3TN5SUQR_js.DEFAULT_CANVAS_HEIGHT
4514
+ width: parsed.width ?? chunk5KFSMXI4_js.DEFAULT_CANVAS_WIDTH,
4515
+ height: parsed.height ?? chunk5KFSMXI4_js.DEFAULT_CANVAS_HEIGHT
4516
4516
  });
4517
4517
  setSlideSizeEmu(
4518
4518
  typeof parsed.widthEmu === "number" && typeof parsed.heightEmu === "number" && parsed.widthEmu > 0 && parsed.heightEmu > 0 ? {
@@ -4921,7 +4921,7 @@ function useElementOperations(input) {
4921
4921
  );
4922
4922
  return;
4923
4923
  }
4924
- if (chunk3TN5SUQR_js.isTemplateElementId(elementId)) {
4924
+ if (chunk5KFSMXI4_js.isTemplateElementId(elementId)) {
4925
4925
  const slideId = activeSlide?.id;
4926
4926
  if (slideId) {
4927
4927
  setTemplateElementsBySlideId((prev) => ({
@@ -5207,8 +5207,8 @@ function createCanvasGestures(getInput, frames = animationFrames) {
5207
5207
  }
5208
5208
  function paintResize(resize, transform) {
5209
5209
  const { x, y } = transform;
5210
- const width = Math.max(transform.width, chunk3TN5SUQR_js.MIN_ELEMENT_SIZE);
5211
- const height = Math.max(transform.height, chunk3TN5SUQR_js.MIN_ELEMENT_SIZE);
5210
+ const width = Math.max(transform.width, chunk5KFSMXI4_js.MIN_ELEMENT_SIZE);
5211
+ const height = Math.max(transform.height, chunk5KFSMXI4_js.MIN_ELEMENT_SIZE);
5212
5212
  resize.lastX = x;
5213
5213
  resize.lastY = y;
5214
5214
  resize.lastWidth = transform.width;
@@ -5265,7 +5265,7 @@ function createCanvasGestures(getInput, frames = animationFrames) {
5265
5265
  getGridSize: () => getInput().gridSpacingPx,
5266
5266
  getSnapToShape: () => getInput().snapToShape,
5267
5267
  getGuides: () => getInput().guides.map(({ axis, position }) => ({ axis, position })),
5268
- getMinSize: () => chunk3TN5SUQR_js.MIN_ELEMENT_SIZE,
5268
+ getMinSize: () => chunk5KFSMXI4_js.MIN_ELEMENT_SIZE,
5269
5269
  getSnapExcludeIds: () => armed?.kind === "move" ? Object.keys(armed.drag.startPositionsById) : [],
5270
5270
  getStageOrigin: () => {
5271
5271
  const rect = getInput().canvasStageRef.current?.getBoundingClientRect();
@@ -5346,7 +5346,7 @@ function commitMove(input, drag) {
5346
5346
  const start = drag.startPositionsById[el.id];
5347
5347
  return start ? { ...el, x: start.x + dx, y: start.y + dy } : el;
5348
5348
  });
5349
- return chunk3TN5SUQR_js.applyReroutedConnectors(moved, chunk3TN5SUQR_js.rerouteConnectorsForMovedElements(moved, movedIds));
5349
+ return chunk5KFSMXI4_js.applyReroutedConnectors(moved, chunk5KFSMXI4_js.rerouteConnectorsForMovedElements(moved, movedIds));
5350
5350
  };
5351
5351
  if (input.editTemplateMode) {
5352
5352
  const slideId = input.activeSlide?.id;
@@ -5377,8 +5377,8 @@ function commitResize(input, resize) {
5377
5377
  if (i !== input.activeSlideIndex) {
5378
5378
  return s;
5379
5379
  }
5380
- const rerouted = chunk3TN5SUQR_js.rerouteConnectorsForMovedElements(s.elements, movedIds);
5381
- return rerouted.length === 0 ? s : { ...s, elements: chunk3TN5SUQR_js.applyReroutedConnectors(s.elements, rerouted) };
5380
+ const rerouted = chunk5KFSMXI4_js.rerouteConnectorsForMovedElements(s.elements, movedIds);
5381
+ return rerouted.length === 0 ? s : { ...s, elements: chunk5KFSMXI4_js.applyReroutedConnectors(s.elements, rerouted) };
5382
5382
  })
5383
5383
  );
5384
5384
  }
@@ -6213,7 +6213,7 @@ function createStructuredElementHandlers(deps) {
6213
6213
  return;
6214
6214
  }
6215
6215
  const resolved = resolveHyperlinkEditResult(data);
6216
- if (resolved.url && !chunk3TN5SUQR_js.isUrlSafe(resolved.url)) {
6216
+ if (resolved.url && !chunk5KFSMXI4_js.isUrlSafe(resolved.url)) {
6217
6217
  return;
6218
6218
  }
6219
6219
  const actionClick = {
@@ -6259,7 +6259,7 @@ function createStructuredElementHandlers(deps) {
6259
6259
  if (!activeSlide) {
6260
6260
  return;
6261
6261
  }
6262
- const preset = chunk3TN5SUQR_js.ACTION_BUTTON_PRESETS.find((p) => p.shapeType === shapeType);
6262
+ const preset = chunk5KFSMXI4_js.ACTION_BUTTON_PRESETS.find((p) => p.shapeType === shapeType);
6263
6263
  if (!preset) {
6264
6264
  return;
6265
6265
  }
@@ -6346,7 +6346,7 @@ function useInsertElements(input) {
6346
6346
  width: 300,
6347
6347
  height: 60,
6348
6348
  text: "",
6349
- textStyle: { fontSize: chunk3TN5SUQR_js.DEFAULT_TEXT_FONT_SIZE }
6349
+ textStyle: { fontSize: chunk5KFSMXI4_js.DEFAULT_TEXT_FONT_SIZE }
6350
6350
  });
6351
6351
  };
6352
6352
  const handleAddShape = () => {
@@ -6368,7 +6368,7 @@ function useInsertElements(input) {
6368
6368
  }
6369
6369
  });
6370
6370
  };
6371
- const handleAddTable = (rows = chunk3TN5SUQR_js.DEFAULT_TABLE_ROWS, columns = chunk3TN5SUQR_js.DEFAULT_TABLE_COLUMNS) => {
6371
+ const handleAddTable = (rows = chunk5KFSMXI4_js.DEFAULT_TABLE_ROWS, columns = chunk5KFSMXI4_js.DEFAULT_TABLE_COLUMNS) => {
6372
6372
  if (!activeSlide) {
6373
6373
  return;
6374
6374
  }
@@ -6542,7 +6542,7 @@ function useGroupAlignLayerHandlers(input) {
6542
6542
  history
6543
6543
  } = input;
6544
6544
  const updateElementsOwning = (elementId, updater) => {
6545
- if (editTemplateMode && !chunk3TN5SUQR_js.isTemplateElementId(elementId)) {
6545
+ if (editTemplateMode && !chunk5KFSMXI4_js.isTemplateElementId(elementId)) {
6546
6546
  ops.updateSlides(
6547
6547
  (prev) => prev.map(
6548
6548
  (slide, index) => index === activeSlideIndex ? { ...slide, elements: updater(slide.elements) } : slide
@@ -6576,9 +6576,9 @@ function useGroupAlignLayerHandlers(input) {
6576
6576
  return;
6577
6577
  }
6578
6578
  const group = selectedElement;
6579
- const intoTemplate = chunk3TN5SUQR_js.isTemplateElementId(group.id);
6579
+ const intoTemplate = chunk5KFSMXI4_js.isTemplateElementId(group.id);
6580
6580
  const childIds = group.children.map(
6581
- (child) => intoTemplate ? chunk3TN5SUQR_js.makeCloneId(true, child.id || group.id) : child.id || pptx.generateElementId()
6581
+ (child) => intoTemplate ? chunk5KFSMXI4_js.makeCloneId(true, child.id || group.id) : child.id || pptx.generateElementId()
6582
6582
  );
6583
6583
  const { elements, childIds: usedIds } = pptx.ungroupElements(
6584
6584
  ops.activeElements,
@@ -7014,7 +7014,7 @@ function createTableMergeHandlers(input) {
7014
7014
  if (!nextCell || nextCell.hMerge || nextCell.vMerge) {
7015
7015
  return;
7016
7016
  }
7017
- const newTableData = chunk3TN5SUQR_js.mergeCells(
7017
+ const newTableData = chunk5KFSMXI4_js.mergeCells(
7018
7018
  [
7019
7019
  { row: rowIndex, col: columnIndex },
7020
7020
  { row: rowIndex, col: nextColIdx }
@@ -7022,7 +7022,7 @@ function createTableMergeHandlers(input) {
7022
7022
  td
7023
7023
  );
7024
7024
  const updates = { tableData: newTableData };
7025
- const newRawXml = chunk3TN5SUQR_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
7025
+ const newRawXml = chunk5KFSMXI4_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
7026
7026
  if (newRawXml) {
7027
7027
  updates.rawXml = newRawXml;
7028
7028
  }
@@ -7048,7 +7048,7 @@ function createTableMergeHandlers(input) {
7048
7048
  if (!targetNextCell || targetNextCell.hMerge || targetNextCell.vMerge) {
7049
7049
  return;
7050
7050
  }
7051
- const newTableData = chunk3TN5SUQR_js.mergeCells(
7051
+ const newTableData = chunk5KFSMXI4_js.mergeCells(
7052
7052
  [
7053
7053
  { row: rowIndex, col: columnIndex },
7054
7054
  { row: targetNextRowIdx, col: columnIndex }
@@ -7056,7 +7056,7 @@ function createTableMergeHandlers(input) {
7056
7056
  td
7057
7057
  );
7058
7058
  const updates = { tableData: newTableData };
7059
- const newRawXml = chunk3TN5SUQR_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
7059
+ const newRawXml = chunk5KFSMXI4_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
7060
7060
  if (newRawXml) {
7061
7061
  updates.rawXml = newRawXml;
7062
7062
  }
@@ -7071,9 +7071,9 @@ function createTableMergeHandlers(input) {
7071
7071
  return;
7072
7072
  }
7073
7073
  const td = selectedElement.tableData;
7074
- const newTableData = chunk3TN5SUQR_js.mergeCells(ts.selectedCells, td);
7074
+ const newTableData = chunk5KFSMXI4_js.mergeCells(ts.selectedCells, td);
7075
7075
  const updates = { tableData: newTableData };
7076
- const newRawXml = chunk3TN5SUQR_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
7076
+ const newRawXml = chunk5KFSMXI4_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
7077
7077
  if (newRawXml) {
7078
7078
  updates.rawXml = newRawXml;
7079
7079
  }
@@ -7090,9 +7090,9 @@ function createTableMergeHandlers(input) {
7090
7090
  }
7091
7091
  const { rowIndex, columnIndex } = ts;
7092
7092
  const td = selectedElement.tableData;
7093
- const newTableData = chunk3TN5SUQR_js.splitCell(rowIndex, columnIndex, td);
7093
+ const newTableData = chunk5KFSMXI4_js.splitCell(rowIndex, columnIndex, td);
7094
7094
  const updates = { tableData: newTableData };
7095
- const newRawXml = chunk3TN5SUQR_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
7095
+ const newRawXml = chunk5KFSMXI4_js.updateMergeAttrsInRawXml(selectedElement, newTableData);
7096
7096
  if (newRawXml) {
7097
7097
  updates.rawXml = newRawXml;
7098
7098
  }
@@ -7127,7 +7127,7 @@ function createTableStructHandlers(input) {
7127
7127
  updates.tableData = pptx.setCellText(el, rowIndex, colIndex, text).tableData;
7128
7128
  }
7129
7129
  if (el.rawXml) {
7130
- const newRawXml = chunk3TN5SUQR_js.updateCellTextInRawXml(el, rowIndex, colIndex, text);
7130
+ const newRawXml = chunk5KFSMXI4_js.updateCellTextInRawXml(el, rowIndex, colIndex, text);
7131
7131
  if (newRawXml) {
7132
7132
  updates.rawXml = newRawXml;
7133
7133
  }
@@ -7151,7 +7151,7 @@ function createTableStructHandlers(input) {
7151
7151
  const { rowIndex, columnIndex: colIndex } = ts;
7152
7152
  const updates = {};
7153
7153
  if (selectedElement.rawXml) {
7154
- const newRawXml = chunk3TN5SUQR_js.updateCellTextStyleInRawXml(
7154
+ const newRawXml = chunk5KFSMXI4_js.updateCellTextStyleInRawXml(
7155
7155
  selectedElement,
7156
7156
  rowIndex,
7157
7157
  colIndex,
@@ -7329,7 +7329,7 @@ function useExportSaveAs(input) {
7329
7329
  const sourceName = filePath ? filePath.replace(/\\/gu, "/").split("/").pop() : void 0;
7330
7330
  const slideSize = pptx.resolveSlideSizeSelection({ current: slideSizeEmu, canvas: canvasSize }).size;
7331
7331
  const data = {
7332
- slides: chunk3TN5SUQR_js.buildSaveSlides(slides, templateElementsBySlideId),
7332
+ slides: chunk5KFSMXI4_js.buildSaveSlides(slides, templateElementsBySlideId),
7333
7333
  width: canvasSize.width,
7334
7334
  height: canvasSize.height,
7335
7335
  widthEmu: slideSize.widthEmu,
@@ -7492,7 +7492,7 @@ async function captureSlidesAsPngDataUrls(slideStageRef, slideIndices, setActive
7492
7492
  }
7493
7493
  function tilesToPdfPage(tilesResult) {
7494
7494
  return tilesResult.tiles.map((tile) => ({
7495
- image: chunk3TN5SUQR_js.canvasToJpegData(tile.canvas),
7495
+ image: chunk5KFSMXI4_js.canvasToJpegData(tile.canvas),
7496
7496
  placement: pptx.placeTileOnPage(
7497
7497
  tile,
7498
7498
  tilesResult.fullWidth,
@@ -7525,7 +7525,7 @@ async function exportAllSlidesAsPdf(slideStageRef, totalSlides, setActiveSlide,
7525
7525
  if (pages.length === 0) {
7526
7526
  throw new Error(i18n.translationsEn["pptx.export.errorNoSlidesPdf"]);
7527
7527
  }
7528
- const pdfBlobUrl = chunk3TN5SUQR_js.buildPdfFromTiledImageData(pages);
7528
+ const pdfBlobUrl = chunk5KFSMXI4_js.buildPdfFromTiledImageData(pages);
7529
7529
  pptx.downloadDataUrl(pdfBlobUrl, filename);
7530
7530
  }
7531
7531
  async function exportAllSlidesAsNotesPdf(slideStageRef, totalSlides, setActiveSlide, currentSlideIndex, slideNotes, filename = "presentation-notes.pdf", options = {}) {
@@ -7555,7 +7555,7 @@ async function exportAllSlidesAsNotesPdf(slideStageRef, totalSlides, setActiveSl
7555
7555
  if (pages.length === 0) {
7556
7556
  throw new Error(i18n.translationsEn["pptx.export.errorNoSlidesNotesPdf"]);
7557
7557
  }
7558
- const pdfDataUrl = chunk3TN5SUQR_js.buildNotesPdf(pages);
7558
+ const pdfDataUrl = chunk5KFSMXI4_js.buildNotesPdf(pages);
7559
7559
  pptx.downloadDataUrl(pdfDataUrl, filename);
7560
7560
  }
7561
7561
  async function exportAllSlidesAsVideo(slideStageRef, totalSlides, setActiveSlide, currentSlideIndex, options = {}) {
@@ -8147,13 +8147,13 @@ function usePrintHandlers(input) {
8147
8147
  const { slides, activeSlideIndex, canvasStageRef, setActiveSlideIndex, canvasSize } = input;
8148
8148
  const handoutMaster = input.handoutMaster ?? input.pptxData?.handoutMaster;
8149
8149
  const [isPrintDialogOpen, setIsPrintDialogOpen] = React17.useState(false);
8150
- const { t } = chunk3TN5SUQR_js.useTranslation();
8150
+ const { t } = chunk5KFSMXI4_js.useTranslation();
8151
8151
  const viewerOptions = useViewerOptionsContext();
8152
8152
  const printRasterScale = (viewerOptions.advanced.printHighQuality ? 4 : 3) * pptx.resolveImageResolutionScale(viewerOptions);
8153
8153
  const handlePrint = () => {
8154
8154
  setIsPrintDialogOpen(true);
8155
8155
  };
8156
- const deckSlides = () => input.templateElementsBySlideId ? chunk3TN5SUQR_js.buildSaveSlides(slides, input.templateElementsBySlideId) : slides;
8156
+ const deckSlides = () => input.templateElementsBySlideId ? chunk5KFSMXI4_js.buildSaveSlides(slides, input.templateElementsBySlideId) : slides;
8157
8157
  const plan = (settings, deck) => pptx.planPrintJob(settings, {
8158
8158
  slides: deck,
8159
8159
  activeSlideIndex,
@@ -8568,7 +8568,7 @@ function usePropertyHandlers(input) {
8568
8568
  width: canvasSize.width,
8569
8569
  height: canvasSize.height
8570
8570
  };
8571
- setCompareResult(chunk3TN5SUQR_js.comparePresentation(cur, other));
8571
+ setCompareResult(chunk5KFSMXI4_js.comparePresentation(cur, other));
8572
8572
  setIsComparePanelOpen(true);
8573
8573
  } catch (err) {
8574
8574
  console.warn("Compare failed:", err);
@@ -8924,7 +8924,7 @@ function useViewerDialogs(input) {
8924
8924
  };
8925
8925
  }
8926
8926
  function computeGridSpacingPx(documentGridSpacing) {
8927
- return pptx.computeGridSpacingPx(documentGridSpacing, chunk3TN5SUQR_js.GRID_SIZE);
8927
+ return pptx.computeGridSpacingPx(documentGridSpacing, chunk5KFSMXI4_js.GRID_SIZE);
8928
8928
  }
8929
8929
  function computeVisibleSlideIndexes(slides, activeCustomShowId, customShows, presentationProperties) {
8930
8930
  const activeShow = activeCustomShowId ? customShows.find((show) => show.id === activeCustomShowId) : void 0;
@@ -8933,7 +8933,7 @@ function computeVisibleSlideIndexes(slides, activeCustomShowId, customShows, pre
8933
8933
  }
8934
8934
  function computeSlideSectionGroups(slides, sections) {
8935
8935
  return pptx.groupSlidesBySection(sections, slides).map((group) => ({
8936
- id: group.section?.id ?? (sections.length > 0 ? chunk3TN5SUQR_js.UNGROUPED_SECTION_ID : chunk3TN5SUQR_js.DEFAULT_SECTION_GROUP_ID),
8936
+ id: group.section?.id ?? (sections.length > 0 ? chunk5KFSMXI4_js.UNGROUPED_SECTION_ID : chunk5KFSMXI4_js.DEFAULT_SECTION_GROUP_ID),
8937
8937
  label: group.section?.name ?? (sections.length > 0 ? "Ungrouped Slides" : "Slides"),
8938
8938
  slideIndexes: group.slideIndexes,
8939
8939
  ...group.section?.color !== void 0 ? { color: group.section.color } : {},
@@ -8952,7 +8952,7 @@ function computeMasterPseudoSlide(mode, activeLayout, activeMaster) {
8952
8952
  });
8953
8953
  }
8954
8954
  function useDerivedSlideState(input) {
8955
- const { t } = chunk3TN5SUQR_js.useTranslation();
8955
+ const { t } = chunk5KFSMXI4_js.useTranslation();
8956
8956
  const {
8957
8957
  slides,
8958
8958
  sections,
@@ -8978,10 +8978,10 @@ function useDerivedSlideState(input) {
8978
8978
  );
8979
8979
  const slideSectionGroups = React17.useMemo(
8980
8980
  () => computeSlideSectionGroups(slides, sections).map((group) => {
8981
- if (group.id === chunk3TN5SUQR_js.UNGROUPED_SECTION_ID && group.label === "Ungrouped Slides") {
8981
+ if (group.id === chunk5KFSMXI4_js.UNGROUPED_SECTION_ID && group.label === "Ungrouped Slides") {
8982
8982
  return { ...group, label: t("pptx.slides.ungroupedSlides") };
8983
8983
  }
8984
- if (group.id === chunk3TN5SUQR_js.DEFAULT_SECTION_GROUP_ID && group.label === "Slides") {
8984
+ if (group.id === chunk5KFSMXI4_js.DEFAULT_SECTION_GROUP_ID && group.label === "Slides") {
8985
8985
  return { ...group, label: t("pptx.sections.slides") };
8986
8986
  }
8987
8987
  return group;
@@ -9088,7 +9088,7 @@ function useAnnotationHandlers(input) {
9088
9088
  if (nextMode === "present") {
9089
9089
  presentation.enterPresentMode();
9090
9090
  } else if (mode === "present" && annotations.hasAnyAnnotations) {
9091
- chunk3TN5SUQR_js.stopAllPersistentAudio();
9091
+ chunk5KFSMXI4_js.stopAllPersistentAudio();
9092
9092
  if (promptKeepInkAnnotations) {
9093
9093
  pendingModeAfterAnnotationsRef.current = nextMode;
9094
9094
  setShowKeepAnnotationsDialog(true);
@@ -9098,7 +9098,7 @@ function useAnnotationHandlers(input) {
9098
9098
  }
9099
9099
  } else {
9100
9100
  if (mode === "present") {
9101
- chunk3TN5SUQR_js.stopAllPersistentAudio();
9101
+ chunk5KFSMXI4_js.stopAllPersistentAudio();
9102
9102
  }
9103
9103
  setMode(nextMode);
9104
9104
  }
@@ -9265,7 +9265,7 @@ function useSerialize(input) {
9265
9265
  guides: pptxGuides.length > 0 ? pptxGuides : void 0
9266
9266
  };
9267
9267
  });
9268
- const slidesToSave = chunk3TN5SUQR_js.buildSaveSlides(slidesWithGuides, pending.templateElementsBySlideId);
9268
+ const slidesToSave = chunk5KFSMXI4_js.buildSaveSlides(slidesWithGuides, pending.templateElementsBySlideId);
9269
9269
  const saveOptions = pptx.buildDeckSaveOptions({
9270
9270
  // Without this the Slide Size card edited a viewer-only pixel value and
9271
9271
  // the saved `p:sldSz` never moved: passing `slideSize` is the only way a
@@ -9409,7 +9409,7 @@ function usePresentationSetup(input) {
9409
9409
  return;
9410
9410
  }
9411
9411
  if (mode === "present" && nextMode !== "present") {
9412
- chunk3TN5SUQR_js.stopAllPersistentAudio();
9412
+ chunk5KFSMXI4_js.stopAllPersistentAudio();
9413
9413
  stopAnimationSound();
9414
9414
  const exitHandler = exitModeHandlerRef.current;
9415
9415
  if (exitHandler) {
@@ -9530,7 +9530,7 @@ function useCanvasImagePaste(input) {
9530
9530
  );
9531
9531
  }
9532
9532
  function formatPatchFor(element, format) {
9533
- const updated = chunk3TN5SUQR_js.applyFormatToElement(element, format);
9533
+ const updated = chunk5KFSMXI4_js.applyFormatToElement(element, format);
9534
9534
  const updates = {};
9535
9535
  if (pptx$1.hasShapeProperties(updated)) {
9536
9536
  updates.shapeStyle = updated.shapeStyle;
@@ -9553,7 +9553,7 @@ function useFormatPainterEditing(input) {
9553
9553
  const prevFormatPainterRef = React17.useRef(false);
9554
9554
  React17.useEffect(() => {
9555
9555
  if (formatPainterActive && !prevFormatPainterRef.current && selectedElement) {
9556
- copiedFormatRef.current = chunk3TN5SUQR_js.copyFormatFromElement(selectedElement);
9556
+ copiedFormatRef.current = chunk5KFSMXI4_js.copyFormatFromElement(selectedElement);
9557
9557
  } else if (!formatPainterActive) {
9558
9558
  copiedFormatRef.current = null;
9559
9559
  }
@@ -11187,7 +11187,7 @@ function useCollaborationWriteBack(input) {
11187
11187
  getSourceBytes: () => latest.current.getSourceBytes?.() ?? null,
11188
11188
  getSaveOptions: () => latest.current.getSaveOptions?.(),
11189
11189
  getTemplateElements: () => latest.current.templateElementsBySlideId,
11190
- mergeTemplateElements: chunk3TN5SUQR_js.buildSaveSlides,
11190
+ mergeTemplateElements: chunk5KFSMXI4_js.buildSaveSlides,
11191
11191
  onWriteBackStatus: () => latest.current.onWriteBackStatus?.(
11192
11192
  pptx.writeBackReport(latest.current.config, created.getState())
11193
11193
  )
@@ -11744,8 +11744,8 @@ function useTouchGestures(input) {
11744
11744
  }
11745
11745
  const recognizer = pptx.createTouchGestureRecognizer({
11746
11746
  getScale: () => scaleRef.current,
11747
- minScale: chunk3TN5SUQR_js.MIN_ZOOM_SCALE,
11748
- maxScale: chunk3TN5SUQR_js.MAX_ZOOM_SCALE,
11747
+ minScale: chunk5KFSMXI4_js.MIN_ZOOM_SCALE,
11748
+ maxScale: chunk5KFSMXI4_js.MAX_ZOOM_SCALE,
11749
11749
  callbacks: {
11750
11750
  onPinchZoom: (newScale) => callbacksRef.current.onPinchZoom?.(newScale),
11751
11751
  onSwipe: (direction) => callbacksRef.current.onSwipe?.(direction),
@@ -11869,7 +11869,7 @@ function buildCanvasProps(input) {
11869
11869
  if (pptx.shouldConfirmExternalHyperlink(viewerOptions, url) && !window.confirm(buildHyperlinkConfirmMessage(url))) {
11870
11870
  return;
11871
11871
  }
11872
- chunk3TN5SUQR_js.safeOpenUrl(url, target);
11872
+ chunk5KFSMXI4_js.safeOpenUrl(url, target);
11873
11873
  };
11874
11874
  const handleActionClick = (elementId, action) => {
11875
11875
  if (mode === "present") {
@@ -11884,9 +11884,9 @@ function buildCanvasProps(input) {
11884
11884
  }
11885
11885
  };
11886
11886
  const handleHyperlinkClick = (url, target) => {
11887
- if (chunk3TN5SUQR_js.isPpactionUrl(url)) {
11887
+ if (chunk5KFSMXI4_js.isPpactionUrl(url)) {
11888
11888
  if (mode === "present") {
11889
- const parsed = chunk3TN5SUQR_js.parsePpactionUrl(url);
11889
+ const parsed = chunk5KFSMXI4_js.parsePpactionUrl(url);
11890
11890
  if (parsed) {
11891
11891
  presentation.handlePresentationAction({
11892
11892
  action: parsed.action,
@@ -12314,7 +12314,7 @@ function buildToolbarProps(input) {
12314
12314
  markDirty: history.markDirty
12315
12315
  }),
12316
12316
  formatPainterActive: s.formatPainterActive,
12317
- canActivateFormatPainter: chunk3TN5SUQR_js.hasCopyableFormat(selectedElement),
12317
+ canActivateFormatPainter: chunk5KFSMXI4_js.hasCopyableFormat(selectedElement),
12318
12318
  onToggleFormatPainter: () => s.setFormatPainterActive((p) => !p),
12319
12319
  isSelectionPaneOpen: s.isSelectionPaneOpen,
12320
12320
  onToggleSelectionPane: () => s.setIsSelectionPaneOpen((p) => !p),
@@ -13018,7 +13018,7 @@ function useViewerBuildingBlocks(input) {
13018
13018
  } = input;
13019
13019
  const collaborationConfig = pptx.resolveCollaborationConfig(input.collaboration);
13020
13020
  const [collaborationReadOnly, setCollaborationReadOnly] = React17.useState(Boolean(collaborationConfig));
13021
- const { t } = chunk3TN5SUQR_js.useTranslation();
13021
+ const { t } = chunk5KFSMXI4_js.useTranslation();
13022
13022
  const [content, setContent] = React17.useState(incomingContent ?? null);
13023
13023
  const [loadOrigin, setLoadOrigin] = React17.useState("bootstrap");
13024
13024
  React17.useEffect(() => {
@@ -13208,23 +13208,23 @@ function ColorChangedImage({
13208
13208
  className,
13209
13209
  alt
13210
13210
  }) {
13211
- const tolerance = tolerancePct ?? chunk3TN5SUQR_js.DEFAULT_COLOR_CHANGE_TOLERANCE;
13212
- const cacheKey = chunk3TN5SUQR_js.buildCacheKey(
13211
+ const tolerance = tolerancePct ?? chunk5KFSMXI4_js.DEFAULT_COLOR_CHANGE_TOLERANCE;
13212
+ const cacheKey = chunk5KFSMXI4_js.buildCacheKey(
13213
13213
  src,
13214
13214
  clrChange.clrFrom,
13215
13215
  clrChange.clrTo,
13216
13216
  tolerance,
13217
13217
  Boolean(clrChange.clrToTransparent)
13218
13218
  );
13219
- const cached = chunk3TN5SUQR_js.getCachedResult(cacheKey);
13219
+ const cached = chunk5KFSMXI4_js.getCachedResult(cacheKey);
13220
13220
  const [processedSrc, setProcessedSrc] = React17.useState(cached ?? null);
13221
13221
  React17.useEffect(() => {
13222
- if (chunk3TN5SUQR_js.getCachedResult(cacheKey)) {
13223
- setProcessedSrc(chunk3TN5SUQR_js.getCachedResult(cacheKey) ?? null);
13222
+ if (chunk5KFSMXI4_js.getCachedResult(cacheKey)) {
13223
+ setProcessedSrc(chunk5KFSMXI4_js.getCachedResult(cacheKey) ?? null);
13224
13224
  return;
13225
13225
  }
13226
13226
  let cancelled = false;
13227
- chunk3TN5SUQR_js.applyColorChange(
13227
+ chunk5KFSMXI4_js.applyColorChange(
13228
13228
  src,
13229
13229
  clrChange.clrFrom,
13230
13230
  clrChange.clrTo,
@@ -13232,7 +13232,7 @@ function ColorChangedImage({
13232
13232
  Boolean(clrChange.clrToTransparent)
13233
13233
  ).then((result) => {
13234
13234
  if (!cancelled) {
13235
- chunk3TN5SUQR_js.setCachedResult(cacheKey, result.dataUrl);
13235
+ chunk5KFSMXI4_js.setCachedResult(cacheKey, result.dataUrl);
13236
13236
  setProcessedSrc(result.dataUrl);
13237
13237
  }
13238
13238
  return void 0;
@@ -13324,7 +13324,7 @@ function TiledImageLayer({
13324
13324
  cancelled = true;
13325
13325
  };
13326
13326
  }, [src]);
13327
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className, style: { ...chunk3TN5SUQR_js.getImageTilingStyle(element, nativeSize), ...style } });
13327
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className, style: { ...chunk5KFSMXI4_js.getImageTilingStyle(element, nativeSize), ...style } });
13328
13328
  }
13329
13329
  function renderImageEffectDefinitions(element, excludeDuotone = false) {
13330
13330
  return pptx.getImageSvgFilters(element).filter((definition) => !excludeDuotone || definition.id !== `duotone-${element.id}`).map((definition) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -13393,7 +13393,7 @@ function renderImg(el, style, filter, alt, opacity) {
13393
13393
  ...filter ? { filter } : {},
13394
13394
  ...opacity !== void 0 ? { opacity } : {}
13395
13395
  };
13396
- if (chunk3TN5SUQR_js.isImageTiled(el)) {
13396
+ if (chunk5KFSMXI4_js.isImageTiled(el)) {
13397
13397
  const tileSrc = imgSrc(el);
13398
13398
  if (!tileSrc) {
13399
13399
  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" });
@@ -13415,9 +13415,9 @@ function renderImg(el, style, filter, alt, opacity) {
13415
13415
  pptx$1.isImageLikeElement(el) ? el.imageEffects?.colorWash : void 0
13416
13416
  );
13417
13417
  const clrChange = "imageEffects" in el ? el.imageEffects?.clrChange : void 0;
13418
- const duotoneColors = chunk3TN5SUQR_js.getDuotoneColors(el);
13418
+ const duotoneColors = chunk5KFSMXI4_js.getDuotoneColors(el);
13419
13419
  const useDuotoneCanvas = Boolean(duotoneColors && !clrChange);
13420
- const filterForImg = useDuotoneCanvas ? chunk3TN5SUQR_js.getImageEffectsFilter(el, { excludeDuotone: true }) : filter;
13420
+ const filterForImg = useDuotoneCanvas ? chunk5KFSMXI4_js.getImageEffectsFilter(el, { excludeDuotone: true }) : filter;
13421
13421
  const canvasEffectStyles = {
13422
13422
  ...filterForImg ? { filter: filterForImg } : {},
13423
13423
  ...opacity !== void 0 ? { opacity } : {}
@@ -13493,10 +13493,10 @@ function SlideBackgroundImageLayer({
13493
13493
  style: { zIndex: 0 },
13494
13494
  children: renderImg(
13495
13495
  backgroundElement,
13496
- chunk3TN5SUQR_js.getImageRenderStyle(backgroundElement),
13497
- chunk3TN5SUQR_js.getImageEffectsFilter(backgroundElement),
13496
+ chunk5KFSMXI4_js.getImageRenderStyle(backgroundElement),
13497
+ chunk5KFSMXI4_js.getImageEffectsFilter(backgroundElement),
13498
13498
  "",
13499
- chunk3TN5SUQR_js.getImageEffectsOpacity(backgroundElement)
13499
+ chunk5KFSMXI4_js.getImageEffectsOpacity(backgroundElement)
13500
13500
  )
13501
13501
  }
13502
13502
  );
@@ -13767,7 +13767,7 @@ function ChartElementView({
13767
13767
  onUpdateElement,
13768
13768
  animationState
13769
13769
  }) {
13770
- const { t } = chunk3TN5SUQR_js.useTranslation();
13770
+ const { t } = chunk5KFSMXI4_js.useTranslation();
13771
13771
  const wrapperRef = React17.useRef(null);
13772
13772
  const { selection, setSelection } = useChartPartSelection();
13773
13773
  const [titleDraft, setTitleDraft] = React17.useState(null);
@@ -13782,7 +13782,7 @@ function ChartElementView({
13782
13782
  pptx.getBarFacePicturePixelSampleVersion
13783
13783
  );
13784
13784
  const viewModel = React17.useMemo(() => {
13785
- return canEdit ? chunk3TN5SUQR_js.buildReactChartViewModel(element) : null;
13785
+ return canEdit ? chunk5KFSMXI4_js.buildReactChartViewModel(element) : null;
13786
13786
  }, [canEdit, element, barFacePictureSampleVersion]);
13787
13787
  React17.useEffect(pptx.ensureChartInteractionStyles, []);
13788
13788
  React17.useEffect(() => {
@@ -13887,9 +13887,9 @@ function ChartElementView({
13887
13887
  textStyle: animationState?.textStyle,
13888
13888
  onSelect: chart3D.onSelect,
13889
13889
  onDrag: chart3D.onDrag,
13890
- children: chunk3TN5SUQR_js.renderChartElement(renderedElement, (key) => t(key))
13890
+ children: chunk5KFSMXI4_js.renderChartElement(renderedElement, (key) => t(key))
13891
13891
  }
13892
- ) : chunk3TN5SUQR_js.renderChartElement(renderedElement, (key) => t(key)),
13892
+ ) : chunk5KFSMXI4_js.renderChartElement(renderedElement, (key) => t(key)),
13893
13893
  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) }),
13894
13894
  titleDraft !== null && /* @__PURE__ */ jsxRuntime.jsx(
13895
13895
  "input",
@@ -13917,7 +13917,7 @@ function ChartElementView({
13917
13917
  );
13918
13918
  }
13919
13919
  function useActionAffordance(element, canInteract) {
13920
- const { t } = chunk3TN5SUQR_js.useTranslation();
13920
+ const { t } = chunk5KFSMXI4_js.useTranslation();
13921
13921
  pptx.ensureActionAffordanceStyles();
13922
13922
  return React17.useMemo(
13923
13923
  () => pptx.resolveElementActionAffordance(element, {
@@ -14195,7 +14195,7 @@ function ResizeHandles({
14195
14195
  nonRotationTransform,
14196
14196
  onRotate
14197
14197
  }) {
14198
- const { t } = chunk3TN5SUQR_js.useTranslation();
14198
+ const { t } = chunk5KFSMXI4_js.useTranslation();
14199
14199
  const rotateRef = useRotateHandlePlacement(elementId, Boolean(onRotate));
14200
14200
  const peStyle = forcePointerEvents ? { ...HANDLE_TOUCH_ACTION, pointerEvents: "auto" } : HANDLE_TOUCH_ACTION;
14201
14201
  const resizeStyle = { ...HANDLE_TOUCH_ACTION, pointerEvents: "none" };
@@ -14228,7 +14228,7 @@ function ResizeHandles({
14228
14228
  "aria-label": t("pptx.selectionOverlay.resize", { handle }),
14229
14229
  "data-pptx-handle-kind": "resize",
14230
14230
  "data-pptx-compact": true,
14231
- className: chunk3TN5SUQR_js.cn(
14231
+ className: chunk5KFSMXI4_js.cn(
14232
14232
  "absolute z-10 group border-0 bg-transparent p-0",
14233
14233
  RESIZE_DEFAULT_CLASSES,
14234
14234
  posClass,
@@ -14254,7 +14254,7 @@ function ResizeHandles({
14254
14254
  "div",
14255
14255
  {
14256
14256
  "data-pptx-handle-hit": true,
14257
- className: chunk3TN5SUQR_js.cn(
14257
+ className: chunk5KFSMXI4_js.cn(
14258
14258
  "absolute -inset-px pointer-events-auto [--pptx-handle-hit-inset:-1px]",
14259
14259
  corner ? "max-md:-inset-1.5 max-md:[--pptx-handle-hit-inset:-6px]" : "max-md:-inset-2 max-md:[--pptx-handle-hit-inset:-8px]"
14260
14260
  ),
@@ -14275,7 +14275,7 @@ function ResizeHandles({
14275
14275
  "aria-label": t("pptx.selectionOverlay.rotate"),
14276
14276
  "data-pptx-handle-kind": "rotate",
14277
14277
  "data-pptx-compact": true,
14278
- className: chunk3TN5SUQR_js.cn(
14278
+ className: chunk5KFSMXI4_js.cn(
14279
14279
  "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",
14280
14280
  ROTATE_DEFAULT_CLASSES
14281
14281
  ),
@@ -14352,10 +14352,10 @@ var ConnectorElementRendererMemo = /* @__PURE__ */ React17__default.default.memo
14352
14352
  const svgHeight = Math.max(el.height, 1);
14353
14353
  const ss = shapeEl?.shapeStyle;
14354
14354
  const strokeWidth = Math.max(0, ss?.strokeWidth ?? 2);
14355
- const strokeColor = chunk3TN5SUQR_js.normalizeHexColor(ss?.strokeColor, chunk3TN5SUQR_js.DEFAULT_STROKE_COLOR);
14356
- const strokePaint = chunk3TN5SUQR_js.colorWithOpacity(strokeColor, ss?.strokeOpacity);
14357
- const dashType = chunk3TN5SUQR_js.normalizeStrokeDashType(ss?.strokeDash);
14358
- const dashArray = chunk3TN5SUQR_js.getSvgStrokeDasharray(
14355
+ const strokeColor = chunk5KFSMXI4_js.normalizeHexColor(ss?.strokeColor, chunk5KFSMXI4_js.DEFAULT_STROKE_COLOR);
14356
+ const strokePaint = chunk5KFSMXI4_js.colorWithOpacity(strokeColor, ss?.strokeOpacity);
14357
+ const dashType = chunk5KFSMXI4_js.normalizeStrokeDashType(ss?.strokeDash);
14358
+ const dashArray = chunk5KFSMXI4_js.getSvgStrokeDasharray(
14359
14359
  dashType,
14360
14360
  Math.max(strokeWidth, 1),
14361
14361
  ss?.customDashSegments
@@ -14366,14 +14366,14 @@ var ConnectorElementRendererMemo = /* @__PURE__ */ React17__default.default.memo
14366
14366
  const markerSeed = el.id.replace(/[^a-zA-Z0-9_-]/gu, "_");
14367
14367
  const startMarkerId = `${markerSeed}-sel-start`;
14368
14368
  const endMarkerId = `${markerSeed}-sel-end`;
14369
- const compoundOffsets = chunk3TN5SUQR_js.getCompoundLineOffsets(compoundLine, strokeWidth);
14370
- const compoundWidths = chunk3TN5SUQR_js.getCompoundLineWidths(compoundLine, strokeWidth);
14369
+ const compoundOffsets = chunk5KFSMXI4_js.getCompoundLineOffsets(compoundLine, strokeWidth);
14370
+ const compoundWidths = chunk5KFSMXI4_js.getCompoundLineWidths(compoundLine, strokeWidth);
14371
14371
  const strokeCap = pptx.svgLineCap(ss?.lineCap);
14372
14372
  const textEl = pptx$1.hasTextProperties(el) ? el : void 0;
14373
14373
  const connectorText = textEl?.text?.trim() ?? "";
14374
14374
  const connectorTextSegments = textEl?.textSegments;
14375
14375
  const connectorTextStyle = textEl?.textStyle;
14376
- const pathGeometry = shapeEl ? chunk3TN5SUQR_js.getConnectorPathGeometry(shapeEl) : {
14376
+ const pathGeometry = shapeEl ? chunk5KFSMXI4_js.getConnectorPathGeometry(shapeEl) : {
14377
14377
  pathData: `M 0 0 L ${viewWidth} ${viewHeight}`,
14378
14378
  startX: 0,
14379
14379
  startY: 0,
@@ -14382,16 +14382,16 @@ var ConnectorElementRendererMemo = /* @__PURE__ */ React17__default.default.memo
14382
14382
  };
14383
14383
  const hitTargetWidth = Math.max(strokeWidth * 3, 14);
14384
14384
  const selColor = selClr === "blue-400" ? "#60a5fa" : "#3b82f6";
14385
- const lineShadow = chunk3TN5SUQR_js.buildLineShadowCss(el);
14386
- const lineGlow = chunk3TN5SUQR_js.buildLineGlowFilter(el);
14385
+ const lineShadow = chunk5KFSMXI4_js.buildLineShadowCss(el);
14386
+ const lineGlow = chunk5KFSMXI4_js.buildLineGlowFilter(el);
14387
14387
  return /* @__PURE__ */ jsxRuntime.jsxs(
14388
14388
  "div",
14389
14389
  {
14390
14390
  "data-pptx-element": "true",
14391
14391
  "data-element-id": el.id,
14392
- role: chunk3TN5SUQR_js.getAriaRole(el, { actionable: false }),
14393
- "aria-label": chunk3TN5SUQR_js.getAriaLabel(el),
14394
- "aria-roledescription": chunk3TN5SUQR_js.getAriaRoleDescription(el),
14392
+ role: chunk5KFSMXI4_js.getAriaRole(el, { actionable: false }),
14393
+ "aria-label": chunk5KFSMXI4_js.getAriaLabel(el),
14394
+ "aria-roledescription": chunk5KFSMXI4_js.getAriaRoleDescription(el),
14395
14395
  "aria-selected": isSelected ? true : void 0,
14396
14396
  className: "absolute",
14397
14397
  style: {
@@ -14424,14 +14424,14 @@ var ConnectorElementRendererMemo = /* @__PURE__ */ React17__default.default.memo
14424
14424
  style: { overflow: "visible", pointerEvents: "none" },
14425
14425
  children: [
14426
14426
  /* @__PURE__ */ jsxRuntime.jsxs("defs", { children: [
14427
- chunk3TN5SUQR_js.renderConnectorMarker(
14427
+ chunk5KFSMXI4_js.renderConnectorMarker(
14428
14428
  startMarkerId,
14429
14429
  startArrow,
14430
14430
  strokePaint,
14431
14431
  ss?.connectorStartArrowWidth,
14432
14432
  ss?.connectorStartArrowLength
14433
14433
  ),
14434
- chunk3TN5SUQR_js.renderConnectorMarker(
14434
+ chunk5KFSMXI4_js.renderConnectorMarker(
14435
14435
  endMarkerId,
14436
14436
  endArrow,
14437
14437
  strokePaint,
@@ -14640,14 +14640,14 @@ function getElementInteractionProps({
14640
14640
  };
14641
14641
  }
14642
14642
  function renderDagDuotoneFilterForElement(el) {
14643
- if (!chunk3TN5SUQR_js.hasDagDuotoneEffect(el)) {
14643
+ if (!chunk5KFSMXI4_js.hasDagDuotoneEffect(el)) {
14644
14644
  return null;
14645
14645
  }
14646
14646
  const duotone = el.shapeStyle?.dagDuotone;
14647
14647
  if (!duotone) {
14648
14648
  return null;
14649
14649
  }
14650
- return chunk3TN5SUQR_js.renderDagDuotoneSvgFilter(el.id, duotone.color1, duotone.color2);
14650
+ return chunk5KFSMXI4_js.renderDagDuotoneSvgFilter(el.id, duotone.color1, duotone.color2);
14651
14651
  }
14652
14652
  function getContainerStyle({
14653
14653
  el,
@@ -14674,10 +14674,10 @@ function getContainerStyle({
14674
14674
  top: isFullscreenMedia ? fs.top : el.y,
14675
14675
  width: isFullscreenMedia ? fs.width : painted.width,
14676
14676
  ...heightStyle,
14677
- transform: isFullscreenMedia ? fs.transform : chunk3TN5SUQR_js.getElementTransform(el),
14677
+ transform: isFullscreenMedia ? fs.transform : chunk5KFSMXI4_js.getElementTransform(el),
14678
14678
  transformOrigin: "center",
14679
14679
  overflow: overflowValue,
14680
- clipPath: isPicture ? void 0 : isImg && !has3DExtrusion ? chunk3TN5SUQR_js.getCropShapeClipPath(el) : void 0,
14680
+ clipPath: isPicture ? void 0 : isImg && !has3DExtrusion ? chunk5KFSMXI4_js.getCropShapeClipPath(el) : void 0,
14681
14681
  zIndex: isFullscreenMedia ? fs.zIndex : zIndex,
14682
14682
  visibility: animationState?.visible === false ? "hidden" : "visible",
14683
14683
  animation: animationState?.cssAnimation,
@@ -14714,9 +14714,9 @@ function getContainerStyle({
14714
14714
  function shapeParams(element) {
14715
14715
  const style = pptx$1.hasShapeProperties(element) ? element.shapeStyle : void 0;
14716
14716
  const strokeWidth = pptx.paintedStrokeWidth(style);
14717
- const strokeColor = chunk3TN5SUQR_js.normalizeHexColor(style?.strokeColor, chunk3TN5SUQR_js.DEFAULT_STROKE_COLOR);
14718
- const fillColor = chunk3TN5SUQR_js.normalizeHexColor(style?.fillColor, chunk3TN5SUQR_js.DEFAULT_FILL_COLOR);
14719
- const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(chunk3TN5SUQR_js.buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
14717
+ const strokeColor = chunk5KFSMXI4_js.normalizeHexColor(style?.strokeColor, chunk5KFSMXI4_js.DEFAULT_STROKE_COLOR);
14718
+ const fillColor = chunk5KFSMXI4_js.normalizeHexColor(style?.fillColor, chunk5KFSMXI4_js.DEFAULT_FILL_COLOR);
14719
+ const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(chunk5KFSMXI4_js.buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
14720
14720
  return { hf: hasFill, fc: fillColor, sw: strokeWidth, sc: strokeColor };
14721
14721
  }
14722
14722
  var Extrusion3DOverlayMemo = /* @__PURE__ */ React17__default.default.memo(
@@ -14824,7 +14824,7 @@ function ShapeEffectOverlay({
14824
14824
  const fillOverlayStyle = overlay ? {
14825
14825
  position: "absolute",
14826
14826
  inset: 0,
14827
- ...pptx$1.isImageLikeElement(element) ? chunk3TN5SUQR_js.getImageSurfaceMaskStyle(element) : {},
14827
+ ...pptx$1.isImageLikeElement(element) ? chunk5KFSMXI4_js.getImageSurfaceMaskStyle(element) : {},
14828
14828
  background: overlay.color,
14829
14829
  mixBlendMode: overlay.blendMode,
14830
14830
  pointerEvents: "none"
@@ -15031,10 +15031,10 @@ var ElementRenderer = /* @__PURE__ */ React17__default.default.memo(
15031
15031
  const backgroundAnimationState = pptx.getBackgroundAnimationState(el, presentationElementStates);
15032
15032
  const effectPlacement = pptx.getShapeEffectLayerPlacement(el);
15033
15033
  const visualAnimationState = backgroundAnimationState ?? animationState;
15034
- const isTxt = chunk3TN5SUQR_js.isEditableTextElement(el) && allow.textEditable;
15034
+ const isTxt = chunk5KFSMXI4_js.isEditableTextElement(el) && allow.textEditable;
15035
15035
  const txtSE = pptx$1.hasTextProperties(el) ? el.textStyle : void 0;
15036
15036
  const textStyleOverrideCss = pptx.buildTextStyleOverrideCss(el.id, visualAnimationState?.textStyle);
15037
- const ss = chunk3TN5SUQR_js.getShapeVisualStyle(
15037
+ const ss = chunk5KFSMXI4_js.getShapeVisualStyle(
15038
15038
  el,
15039
15039
  hf,
15040
15040
  fc,
@@ -15043,9 +15043,9 @@ var ElementRenderer = /* @__PURE__ */ React17__default.default.memo(
15043
15043
  visualAnimationState?.animatesFill,
15044
15044
  visualAnimationState?.animatesStroke
15045
15045
  );
15046
- const ts = chunk3TN5SUQR_js.getTextStyleForElement(el, chunk3TN5SUQR_js.DEFAULT_TEXT_COLOR);
15046
+ const ts = chunk5KFSMXI4_js.getTextStyleForElement(el, chunk5KFSMXI4_js.DEFAULT_TEXT_COLOR);
15047
15047
  const isImg = el.type === "picture" || el.type === "image";
15048
- const vs = chunk3TN5SUQR_js.renderVectorShape(
15048
+ const vs = chunk5KFSMXI4_js.renderVectorShape(
15049
15049
  el,
15050
15050
  isImg ? false : hf,
15051
15051
  fc,
@@ -15055,10 +15055,10 @@ var ElementRenderer = /* @__PURE__ */ React17__default.default.memo(
15055
15055
  visualAnimationState?.animatesStroke
15056
15056
  );
15057
15057
  const isModel3D = el.type === "model3d";
15058
- const isConn = chunk3TN5SUQR_js.isConnectorOrLineElement(el);
15058
+ const isConn = chunk5KFSMXI4_js.isConnectorOrLineElement(el);
15059
15059
  const shapeStyle3d = pptx$1.hasShapeProperties(el) ? el.shapeStyle : void 0;
15060
15060
  const extrusionData = React17.useMemo(
15061
- () => chunk3TN5SUQR_js.build3DExtrusionData(shapeStyle3d?.shape3d, shapeStyle3d?.scene3d, fc, el.width, el.height),
15061
+ () => chunk5KFSMXI4_js.build3DExtrusionData(shapeStyle3d?.shape3d, shapeStyle3d?.scene3d, fc, el.width, el.height),
15062
15062
  [shapeStyle3d?.shape3d, shapeStyle3d?.scene3d, fc, el.width, el.height]
15063
15063
  );
15064
15064
  const actionAffordance = useActionAffordance(el, canInteract);
@@ -15148,7 +15148,7 @@ var ElementRenderer = /* @__PURE__ */ React17__default.default.memo(
15148
15148
  "aria-hidden": aria.hidden ? true : void 0,
15149
15149
  "aria-selected": isSelected ? true : void 0,
15150
15150
  tabIndex: isFocusable ? 0 : -1,
15151
- className: chunk3TN5SUQR_js.cn(
15151
+ className: chunk5KFSMXI4_js.cn(
15152
15152
  "absolute",
15153
15153
  "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",
15154
15154
  cur,
@@ -15221,9 +15221,9 @@ var ElementRenderer = /* @__PURE__ */ React17__default.default.memo(
15221
15221
  txtSE,
15222
15222
  txtS: ts,
15223
15223
  vecShape: backgroundAnimationState && !isImg ? null : vs,
15224
- imgStyle: chunk3TN5SUQR_js.getImageRenderStyle(el),
15225
- imgFilter: chunk3TN5SUQR_js.getImageEffectsFilter(el),
15226
- imgOpacity: chunk3TN5SUQR_js.getImageEffectsOpacity(el),
15224
+ imgStyle: chunk5KFSMXI4_js.getImageRenderStyle(el),
15225
+ imgFilter: chunk5KFSMXI4_js.getImageEffectsFilter(el),
15226
+ imgOpacity: chunk5KFSMXI4_js.getImageEffectsOpacity(el),
15227
15227
  imgAlt: imageAltText,
15228
15228
  isTxtEl: isTxt,
15229
15229
  media: mediaDataUrls,
@@ -15360,10 +15360,10 @@ function renderStrokeView(view, pressureSensitive, replayStyle, key) {
15360
15360
  }
15361
15361
  function renderInk(el, options) {
15362
15362
  const replay = options?.replay ?? false;
15363
- const strokes = chunk3TN5SUQR_js.buildInkGroupStrokes(el, { color: "#000", width: 3 });
15363
+ const strokes = chunk5KFSMXI4_js.buildInkGroupStrokes(el, { color: "#000", width: 3 });
15364
15364
  strokes.some((s) => s.circles || s.nibMarks);
15365
15365
  const pressureSensitive = options?.pressureSensitive;
15366
- const replayStyles = replay ? chunk3TN5SUQR_js.getInkReplayStyles(el, options?.replayConfig) : null;
15366
+ const replayStyles = replay ? chunk5KFSMXI4_js.getInkReplayStyles(el, options?.replayConfig) : null;
15367
15367
  return /* @__PURE__ */ jsxRuntime.jsxs(
15368
15368
  "svg",
15369
15369
  {
@@ -15371,7 +15371,7 @@ function renderInk(el, options) {
15371
15371
  viewBox: `0 0 ${Math.max(el.width, 1)} ${Math.max(el.height, 1)}`,
15372
15372
  preserveAspectRatio: "none",
15373
15373
  children: [
15374
- replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children: chunk3TN5SUQR_js.INK_REPLAY_KEYFRAMES }),
15374
+ replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children: chunk5KFSMXI4_js.INK_REPLAY_KEYFRAMES }),
15375
15375
  strokes.map(
15376
15376
  (s, i) => renderStrokeView(s, pressureSensitive, replayStyles?.[i], `${el.id}-ink-${i}`)
15377
15377
  )
@@ -15382,7 +15382,7 @@ function renderInk(el, options) {
15382
15382
  function renderGroup(children, parentGroupFill) {
15383
15383
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative w-full h-full pointer-events-none", children: pptx.filterRenderedElements(children).map((c, childIndex) => {
15384
15384
  const { hf, fc, sw, sc } = shapeParams(c);
15385
- const baseSs = chunk3TN5SUQR_js.getShapeVisualStyle(c, hf, fc, sw, sc);
15385
+ const baseSs = chunk5KFSMXI4_js.getShapeVisualStyle(c, hf, fc, sw, sc);
15386
15386
  const inheritedFill = pptx.resolveGroupChildFill(c, parentGroupFill);
15387
15387
  const ss = inheritedFill ? {
15388
15388
  ...baseSs,
@@ -15393,9 +15393,9 @@ function renderGroup(children, parentGroupFill) {
15393
15393
  backgroundPosition: inheritedFill.backgroundPosition
15394
15394
  } : baseSs;
15395
15395
  const isI = c.type === "picture" || c.type === "image";
15396
- const vs = chunk3TN5SUQR_js.renderVectorShape(c, isI ? false : hf, fc, sw, sc);
15397
- const ts = chunk3TN5SUQR_js.getTextStyleForElement(c, chunk3TN5SUQR_js.DEFAULT_TEXT_COLOR);
15398
- const isTxt = chunk3TN5SUQR_js.isEditableTextElement(c);
15396
+ const vs = chunk5KFSMXI4_js.renderVectorShape(c, isI ? false : hf, fc, sw, sc);
15397
+ const ts = chunk5KFSMXI4_js.getTextStyleForElement(c, chunk5KFSMXI4_js.DEFAULT_TEXT_COLOR);
15398
+ const isTxt = chunk5KFSMXI4_js.isEditableTextElement(c);
15399
15399
  return /* @__PURE__ */ jsxRuntime.jsxs(
15400
15400
  "div",
15401
15401
  {
@@ -15404,9 +15404,9 @@ function renderGroup(children, parentGroupFill) {
15404
15404
  style: {
15405
15405
  left: c.x,
15406
15406
  top: c.y,
15407
- width: Math.max(c.width, chunk3TN5SUQR_js.MIN_ELEMENT_SIZE),
15408
- height: Math.max(c.height, chunk3TN5SUQR_js.MIN_ELEMENT_SIZE),
15409
- transform: chunk3TN5SUQR_js.getElementTransform(c),
15407
+ width: Math.max(c.width, chunk5KFSMXI4_js.MIN_ELEMENT_SIZE),
15408
+ height: Math.max(c.height, chunk5KFSMXI4_js.MIN_ELEMENT_SIZE),
15409
+ transform: chunk5KFSMXI4_js.getElementTransform(c),
15410
15410
  transformOrigin: "center",
15411
15411
  ...ss,
15412
15412
  ...isI ? {
@@ -15431,8 +15431,8 @@ function renderGroup(children, parentGroupFill) {
15431
15431
  // A nested group: recurse, chaining the inherited fill so a
15432
15432
  // `grpFill` shape under a fill-less sub-group still paints.
15433
15433
  renderGroup(c.children, pptx.getGroupChildParentFill(c, parentGroupFill))
15434
- ) : isI && ("svgData" in c && c.svgData || "imageData" in c && c.imageData) ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style: chunk3TN5SUQR_js.getImageSurfaceStyle(c), children: [
15435
- chunk3TN5SUQR_js.isImageTiled(c) ? /* @__PURE__ */ jsxRuntime.jsx(
15434
+ ) : isI && ("svgData" in c && c.svgData || "imageData" in c && c.imageData) ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style: chunk5KFSMXI4_js.getImageSurfaceStyle(c), children: [
15435
+ chunk5KFSMXI4_js.isImageTiled(c) ? /* @__PURE__ */ jsxRuntime.jsx(
15436
15436
  TiledImageLayer,
15437
15437
  {
15438
15438
  element: c,
@@ -15445,7 +15445,7 @@ function renderGroup(children, parentGroupFill) {
15445
15445
  src: "svgData" in c && c.svgData ? c.svgData : c.imageData,
15446
15446
  alt: i18n.translationsEn["pptx.ink.groupChildAlt"],
15447
15447
  className: "pointer-events-none select-none",
15448
- style: chunk3TN5SUQR_js.getImageRenderStyle(c),
15448
+ style: chunk5KFSMXI4_js.getImageRenderStyle(c),
15449
15449
  draggable: false
15450
15450
  }
15451
15451
  ),
@@ -15457,7 +15457,7 @@ function renderGroup(children, parentGroupFill) {
15457
15457
  {
15458
15458
  className: "relative z-10 w-full h-full pointer-events-none whitespace-pre-wrap break-words leading-[1.3]",
15459
15459
  style: ts,
15460
- children: chunk3TN5SUQR_js.renderTextSegments(c, chunk3TN5SUQR_js.DEFAULT_TEXT_COLOR)
15460
+ children: chunk5KFSMXI4_js.renderTextSegments(c, chunk5KFSMXI4_js.DEFAULT_TEXT_COLOR)
15461
15461
  }
15462
15462
  ) : null
15463
15463
  ] })
@@ -15471,8 +15471,8 @@ function renderContentPart(el, options) {
15471
15471
  if (el.inkStrokes && el.inkStrokes.length > 0) {
15472
15472
  const replay = options?.replay ?? false;
15473
15473
  const pressureSensitive = options?.pressureSensitive ?? true;
15474
- const strokes = chunk3TN5SUQR_js.buildContentPartStrokes(el);
15475
- const replayStyles = replay ? chunk3TN5SUQR_js.getContentPartReplayStyles(el.inkStrokes, options?.replayConfig) : null;
15474
+ const strokes = chunk5KFSMXI4_js.buildContentPartStrokes(el);
15475
+ const replayStyles = replay ? chunk5KFSMXI4_js.getContentPartReplayStyles(el.inkStrokes, options?.replayConfig) : null;
15476
15476
  return /* @__PURE__ */ jsxRuntime.jsxs(
15477
15477
  "svg",
15478
15478
  {
@@ -15480,7 +15480,7 @@ function renderContentPart(el, options) {
15480
15480
  viewBox: `0 0 ${Math.max(el.width, 1)} ${Math.max(el.height, 1)}`,
15481
15481
  preserveAspectRatio: "none",
15482
15482
  children: [
15483
- replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children: chunk3TN5SUQR_js.INK_REPLAY_KEYFRAMES }),
15483
+ replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children: chunk5KFSMXI4_js.INK_REPLAY_KEYFRAMES }),
15484
15484
  strokes.map(
15485
15485
  (s, i) => renderStrokeView(s, pressureSensitive, replayStyles?.[i], `${el.id}-cp-ink-${i}`)
15486
15486
  )
@@ -15707,9 +15707,9 @@ function useInlineListEditor(element, rootRef, onChange, onModelReplacement) {
15707
15707
  collaboration: connected,
15708
15708
  model: pptx.createInlineListModelObserver(element),
15709
15709
  activationSelection,
15710
- children: seed && !connected ? chunk3TN5SUQR_js.renderTextSegments(
15710
+ children: seed && !connected ? chunk5KFSMXI4_js.renderTextSegments(
15711
15711
  element,
15712
- chunk3TN5SUQR_js.DEFAULT_TEXT_COLOR,
15712
+ chunk5KFSMXI4_js.DEFAULT_TEXT_COLOR,
15713
15713
  void 0,
15714
15714
  void 0,
15715
15715
  void 0,
@@ -15945,8 +15945,8 @@ function InlineTextEditor({
15945
15945
  pending.endOffset
15946
15946
  );
15947
15947
  });
15948
- const warpStyle = chunk3TN5SUQR_js.getTextWarpStyle(textStyleRaw);
15949
- const compensationTransform = chunk3TN5SUQR_js.getTextCompensationTransform(element);
15948
+ const warpStyle = chunk5KFSMXI4_js.getTextWarpStyle(textStyleRaw);
15949
+ const compensationTransform = chunk5KFSMXI4_js.getTextCompensationTransform(element);
15950
15950
  const warpTransform = warpStyle?.transform;
15951
15951
  const mergedTransform = [compensationTransform, warpTransform].filter(Boolean).join(" ") || void 0;
15952
15952
  const wrapperStyle = {
@@ -16009,15 +16009,10 @@ function InlineTextEditor({
16009
16009
  }
16010
16010
  return;
16011
16011
  }
16012
- if (e.key === "Escape") {
16013
- e.preventDefault();
16014
- list.retire();
16015
- onCancel();
16016
- return;
16017
- }
16018
16012
  const chord = pptx.mapInlineEditorChord(e.nativeEvent);
16019
16013
  if (chord) {
16020
16014
  e.preventDefault();
16015
+ e.stopPropagation();
16021
16016
  if (chord === "suppress" || !list.canCommit()) {
16022
16017
  return;
16023
16018
  }
@@ -16034,7 +16029,7 @@ function InlineTextEditor({
16034
16029
  const text = e.clipboardData.getData("text/plain");
16035
16030
  document.execCommand("insertText", false, text);
16036
16031
  },
16037
- children: list.seed ? list.children : seed.hasRichSegments ? chunk3TN5SUQR_js.renderTextSegments(element, chunk3TN5SUQR_js.DEFAULT_TEXT_COLOR) : seed.initialText
16032
+ children: list.seed ? list.children : seed.hasRichSegments ? chunk5KFSMXI4_js.renderTextSegments(element, chunk5KFSMXI4_js.DEFAULT_TEXT_COLOR) : seed.initialText
16038
16033
  },
16039
16034
  list.seed?.paragraphs[0].token ?? "plain"
16040
16035
  );
@@ -16199,7 +16194,7 @@ function OleActionFooter({
16199
16194
  info,
16200
16195
  showActions
16201
16196
  }) {
16202
- const { t } = chunk3TN5SUQR_js.useTranslation();
16197
+ const { t } = chunk5KFSMXI4_js.useTranslation();
16203
16198
  if (!showActions || !info.canDownload || !el.oleEmbeddedData) {
16204
16199
  return null;
16205
16200
  }
@@ -16308,7 +16303,7 @@ function SmartArtInlineNodeEditor({
16308
16303
  onCommit,
16309
16304
  onCancel
16310
16305
  }) {
16311
- const { t } = chunk3TN5SUQR_js.useTranslation();
16306
+ const { t } = chunk5KFSMXI4_js.useTranslation();
16312
16307
  const ref = React17__default.default.useRef(null);
16313
16308
  const [value, setValue] = React17__default.default.useState(initialText);
16314
16309
  const settled = React17__default.default.useRef(false);
@@ -16935,7 +16930,7 @@ function SmartArtRendererImpl({
16935
16930
  onUpdateElement,
16936
16931
  animationState
16937
16932
  }) {
16938
- const { t } = chunk3TN5SUQR_js.useTranslation();
16933
+ const { t } = chunk5KFSMXI4_js.useTranslation();
16939
16934
  if (element.type !== "smartArt" || !element.smartArtData) {
16940
16935
  return /* @__PURE__ */ jsxRuntime.jsx(
16941
16936
  "div",
@@ -17181,7 +17176,7 @@ function groupIntoParagraphs(element, fieldContext) {
17181
17176
  element,
17182
17177
  fieldContext ? (seg) => {
17183
17178
  if (seg.fieldType) {
17184
- const substituted = chunk3TN5SUQR_js.substituteFieldText(
17179
+ const substituted = chunk5KFSMXI4_js.substituteFieldText(
17185
17180
  seg.text,
17186
17181
  seg.fieldType,
17187
17182
  fieldContext,
@@ -17216,13 +17211,13 @@ function getSegmentTspanProps(segment, element, fallbackColor) {
17216
17211
  if (s.strikethrough) {
17217
17212
  decos.push("line-through");
17218
17213
  }
17219
- const fill = s.hyperlink ? chunk3TN5SUQR_js.normalizeHexColor(s.color || element.textStyle?.color, chunk3TN5SUQR_js.HYPERLINK_COLOR) : chunk3TN5SUQR_js.normalizeHexColor(s.color || element.textStyle?.color, fallbackColor);
17214
+ const fill = s.hyperlink ? chunk5KFSMXI4_js.normalizeHexColor(s.color || element.textStyle?.color, chunk5KFSMXI4_js.HYPERLINK_COLOR) : chunk5KFSMXI4_js.normalizeHexColor(s.color || element.textStyle?.color, fallbackColor);
17220
17215
  return {
17221
17216
  fill,
17222
- fontSize: s.fontSize ?? element.textStyle?.fontSize ?? chunk3TN5SUQR_js.DEFAULT_TEXT_FONT_SIZE,
17217
+ fontSize: s.fontSize ?? element.textStyle?.fontSize ?? chunk5KFSMXI4_js.DEFAULT_TEXT_FONT_SIZE,
17223
17218
  fontWeight: pptx.resolveFontWeight(s.fontFamily || element.textStyle?.fontFamily, s.bold),
17224
17219
  fontStyle: pptx.resolveFontItalic(s.fontFamily || element.textStyle?.fontFamily, s.italic) ? "italic" : void 0,
17225
- fontFamily: s.fontFamily || element.textStyle?.fontFamily ? pptx$1.getSubstituteFontFamily(s.fontFamily || element.textStyle?.fontFamily || "") : chunk3TN5SUQR_js.DEFAULT_FONT_FAMILY,
17220
+ fontFamily: s.fontFamily || element.textStyle?.fontFamily ? pptx$1.getSubstituteFontFamily(s.fontFamily || element.textStyle?.fontFamily || "") : chunk5KFSMXI4_js.DEFAULT_FONT_FAMILY,
17226
17221
  textDecoration: decos.length > 0 ? decos.join(" ") : void 0
17227
17222
  };
17228
17223
  }
@@ -17230,8 +17225,8 @@ function resolveSegmentFont(segment, element) {
17230
17225
  const s = segment.style || {};
17231
17226
  const family = s.fontFamily || element.textStyle?.fontFamily;
17232
17227
  return {
17233
- fontFamily: family ? pptx$1.getSubstituteFontFamily(family) : chunk3TN5SUQR_js.DEFAULT_FONT_FAMILY,
17234
- fontSizePx: s.fontSize ?? element.textStyle?.fontSize ?? chunk3TN5SUQR_js.DEFAULT_TEXT_FONT_SIZE,
17228
+ fontFamily: family ? pptx$1.getSubstituteFontFamily(family) : chunk5KFSMXI4_js.DEFAULT_FONT_FAMILY,
17229
+ fontSizePx: s.fontSize ?? element.textStyle?.fontSize ?? chunk5KFSMXI4_js.DEFAULT_TEXT_FONT_SIZE,
17235
17230
  bold: s.bold ?? element.textStyle?.bold,
17236
17231
  italic: s.italic ?? element.textStyle?.italic
17237
17232
  };
@@ -17320,9 +17315,9 @@ function WarpedText({
17320
17315
  const warpAdj2 = textEl.textStyle?.textWarpAdj2;
17321
17316
  const align = textEl.textStyle?.align ?? "center";
17322
17317
  const { startOffset, textAnchor } = getAlignmentProps(align);
17323
- const baseFontSize = textEl.textStyle?.fontSize ?? chunk3TN5SUQR_js.DEFAULT_TEXT_FONT_SIZE;
17324
- const baseFontFamily = textEl.textStyle?.fontFamily ? pptx$1.getSubstituteFontFamily(textEl.textStyle.fontFamily) : chunk3TN5SUQR_js.DEFAULT_FONT_FAMILY;
17325
- const baseFill = chunk3TN5SUQR_js.normalizeHexColor(textEl.textStyle?.color, fallbackColor);
17318
+ const baseFontSize = textEl.textStyle?.fontSize ?? chunk5KFSMXI4_js.DEFAULT_TEXT_FONT_SIZE;
17319
+ const baseFontFamily = textEl.textStyle?.fontFamily ? pptx$1.getSubstituteFontFamily(textEl.textStyle.fontFamily) : chunk5KFSMXI4_js.DEFAULT_FONT_FAMILY;
17320
+ const baseFill = chunk5KFSMXI4_js.normalizeHexColor(textEl.textStyle?.color, fallbackColor);
17326
17321
  if (pptx.hasGlyphEnvelope(preset)) {
17327
17322
  const perLine = pptx.buildGlyphEnvelopeBlock(
17328
17323
  preset,
@@ -17424,7 +17419,7 @@ function WarpedText({
17424
17419
  var GLYPH_BY_SHAPE = /* @__PURE__ */ buildGlyphByShape();
17425
17420
  function buildGlyphByShape() {
17426
17421
  const glyphs = Object.fromEntries(
17427
- chunk3TN5SUQR_js.ACTION_BUTTON_PRESETS.map((p) => [p.shapeType, p.iconPath])
17422
+ chunk5KFSMXI4_js.ACTION_BUTTON_PRESETS.map((p) => [p.shapeType, p.iconPath])
17428
17423
  );
17429
17424
  glyphs["actionButtonForwardOrNext"] = glyphs["actionButtonForwardNext"];
17430
17425
  glyphs["actionButtonBackOrPrevious"] = glyphs["actionButtonBackPrevious"];
@@ -17498,9 +17493,9 @@ function renderTextElementBody(options) {
17498
17493
  const useSvgWarp = pptx.shouldUseSvgWarp(
17499
17494
  pptx$1.hasTextProperties(el) ? el.textStyle?.textWarpPreset : void 0
17500
17495
  );
17501
- const scene3dStyle = pptx$1.hasTextProperties(el) ? chunk3TN5SUQR_js.buildTextBody3DSceneStyle(el.textStyle, { width: el.width, height: el.height }) : void 0;
17496
+ const scene3dStyle = pptx$1.hasTextProperties(el) ? chunk5KFSMXI4_js.buildTextBody3DSceneStyle(el.textStyle, { width: el.width, height: el.height }) : void 0;
17502
17497
  const rotationTransform = pptx.getTextBodyRotationTransform(el);
17503
- const composedTransform = [rotationTransform, chunk3TN5SUQR_js.getTextCompensationTransform(el), scene3dStyle?.transform].filter(Boolean).join(" ") || void 0;
17498
+ const composedTransform = [rotationTransform, chunk5KFSMXI4_js.getTextCompensationTransform(el), scene3dStyle?.transform].filter(Boolean).join(" ") || void 0;
17504
17499
  const transformStyle = {
17505
17500
  transform: composedTransform,
17506
17501
  // A COM-measured homography (`scene3dStyle.transformOrigin === '0 0'`)
@@ -17530,18 +17525,18 @@ function renderTextElementBody(options) {
17530
17525
  shouldRenderText && (useSvgWarp ? /* @__PURE__ */ jsxRuntime.jsx(
17531
17526
  "div",
17532
17527
  {
17533
- className: chunk3TN5SUQR_js.cn(
17528
+ className: chunk5KFSMXI4_js.cn(
17534
17529
  "relative z-10 w-full h-full",
17535
17530
  onHyperlinkClick ? "" : "pointer-events-none"
17536
17531
  ),
17537
- style: { ...chunk3TN5SUQR_js.getTextLayoutStyle(el), ...transformStyle },
17532
+ style: { ...chunk5KFSMXI4_js.getTextLayoutStyle(el), ...transformStyle },
17538
17533
  children: /* @__PURE__ */ jsxRuntime.jsx(
17539
17534
  WarpedText,
17540
17535
  {
17541
17536
  element: el,
17542
17537
  width: el.width,
17543
17538
  height: el.height,
17544
- fallbackColor: chunk3TN5SUQR_js.DEFAULT_TEXT_COLOR,
17539
+ fallbackColor: chunk5KFSMXI4_js.DEFAULT_TEXT_COLOR,
17545
17540
  findHighlights: findHl,
17546
17541
  fieldContext
17547
17542
  }
@@ -17550,19 +17545,19 @@ function renderTextElementBody(options) {
17550
17545
  ) : /* @__PURE__ */ jsxRuntime.jsx(
17551
17546
  "div",
17552
17547
  {
17553
- className: chunk3TN5SUQR_js.cn(
17548
+ className: chunk5KFSMXI4_js.cn(
17554
17549
  "relative z-10 w-full h-full whitespace-pre-wrap break-words leading-[1.3]",
17555
17550
  onHyperlinkClick ? "" : "pointer-events-none"
17556
17551
  ),
17557
17552
  style: {
17558
- ...chunk3TN5SUQR_js.getTextLayoutStyle(el),
17553
+ ...chunk5KFSMXI4_js.getTextLayoutStyle(el),
17559
17554
  ...txtS,
17560
- ...chunk3TN5SUQR_js.getTextWarpStyle(txtSE),
17555
+ ...chunk5KFSMXI4_js.getTextWarpStyle(txtSE),
17561
17556
  ...transformStyle
17562
17557
  },
17563
- children: chunk3TN5SUQR_js.renderTextSegments(
17558
+ children: chunk5KFSMXI4_js.renderTextSegments(
17564
17559
  el,
17565
- chunk3TN5SUQR_js.DEFAULT_TEXT_COLOR,
17560
+ chunk5KFSMXI4_js.DEFAULT_TEXT_COLOR,
17566
17561
  void 0,
17567
17562
  findHl,
17568
17563
  onHyperlinkClick,
@@ -17583,7 +17578,7 @@ function ZoomElementRenderer({
17583
17578
  onZoomClick,
17584
17579
  sourceSlideIndex
17585
17580
  }) {
17586
- const { t } = chunk3TN5SUQR_js.useTranslation();
17581
+ const { t } = chunk5KFSMXI4_js.useTranslation();
17587
17582
  const summaryView = pptx.buildSummaryZoomView(
17588
17583
  element,
17589
17584
  (index) => {
@@ -17881,7 +17876,7 @@ function renderBody(options) {
17881
17876
  );
17882
17877
  }
17883
17878
  if (isImg) {
17884
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style: chunk3TN5SUQR_js.getImageSurfaceStyle(el), children: [
17879
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style: chunk5KFSMXI4_js.getImageSurfaceStyle(el), children: [
17885
17880
  renderImg(el, imgStyle, imgFilter, imgAlt, imgOpacity),
17886
17881
  vecShape ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute inset-0", children: vecShape }) : null
17887
17882
  ] });
@@ -17898,7 +17893,7 @@ function renderBody(options) {
17898
17893
  textDirection: txtSE?.textDirection,
17899
17894
  textStyle: txtS,
17900
17895
  textStyleRaw: txtSE,
17901
- layoutStyle: chunk3TN5SUQR_js.getTextLayoutStyle(el),
17896
+ layoutStyle: chunk5KFSMXI4_js.getTextLayoutStyle(el),
17902
17897
  element: el,
17903
17898
  onCommit,
17904
17899
  onCancel,
@@ -17909,7 +17904,7 @@ function renderBody(options) {
17909
17904
  ] });
17910
17905
  }
17911
17906
  if (el.type === "table") {
17912
- return chunk3TN5SUQR_js.renderTableElement(el, txtS, {
17907
+ return chunk5KFSMXI4_js.renderTableElement(el, txtS, {
17913
17908
  editable: isSel,
17914
17909
  selectedCell: isSel ? tableSt : null,
17915
17910
  onSelectCell: onCellSel,
@@ -17942,7 +17937,7 @@ function renderBody(options) {
17942
17937
  );
17943
17938
  }
17944
17939
  if (el.type === "media") {
17945
- return chunk3TN5SUQR_js.renderMediaElement(el, media, {
17940
+ return chunk5KFSMXI4_js.renderMediaElement(el, media, {
17946
17941
  // Present mode autoplays every media element on the active slide,
17947
17942
  // not only ones persisted with their own `autoPlay` flag (matching
17948
17943
  // the other four bindings' unconditional `presenting`-gated
@@ -17994,27 +17989,27 @@ function renderBody(options) {
17994
17989
  }
17995
17990
  return renderGroup(el.children, pptx.getGroupChildParentFill(el));
17996
17991
  }
17997
- if (chunk3TN5SUQR_js.shouldRenderFallbackLabel(el, isTxtEl)) {
17998
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunk3TN5SUQR_js.getElementLabel(el) });
17992
+ if (chunk5KFSMXI4_js.shouldRenderFallbackLabel(el, isTxtEl)) {
17993
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunk5KFSMXI4_js.getElementLabel(el) });
17999
17994
  }
18000
17995
  return renderTextElementBody(options);
18001
17996
  }
18002
17997
  function defaultTextColorForFill(fillColor) {
18003
17998
  const hex = String(fillColor ?? "").replace(/^#/u, "");
18004
17999
  if (!/^[0-9a-f]{6}$/iu.test(hex)) {
18005
- return chunk3TN5SUQR_js.DEFAULT_TEXT_COLOR;
18000
+ return chunk5KFSMXI4_js.DEFAULT_TEXT_COLOR;
18006
18001
  }
18007
18002
  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);
18008
18003
  const luminance = channels[0] * 0.2126 + channels[1] * 0.7152 + channels[2] * 0.0722;
18009
- return luminance > 0.179 ? chunk3TN5SUQR_js.DEFAULT_TEXT_COLOR : "#ffffff";
18004
+ return luminance > 0.179 ? chunk5KFSMXI4_js.DEFAULT_TEXT_COLOR : "#ffffff";
18010
18005
  }
18011
18006
  function getStaticElementVisualState(element, parentGroupFill) {
18012
18007
  const style = pptx$1.hasShapeProperties(element) ? element.shapeStyle : void 0;
18013
- const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(chunk3TN5SUQR_js.buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
18014
- const fill = chunk3TN5SUQR_js.normalizeHexColor(style?.fillColor, chunk3TN5SUQR_js.DEFAULT_FILL_COLOR);
18008
+ const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(chunk5KFSMXI4_js.buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
18009
+ const fill = chunk5KFSMXI4_js.normalizeHexColor(style?.fillColor, chunk5KFSMXI4_js.DEFAULT_FILL_COLOR);
18015
18010
  const strokeWidth = pptx.paintedStrokeWidth(style);
18016
- const stroke = chunk3TN5SUQR_js.normalizeHexColor(style?.strokeColor, chunk3TN5SUQR_js.DEFAULT_STROKE_COLOR);
18017
- const baseVisualStyle = chunk3TN5SUQR_js.getShapeVisualStyle(element, hasFill, fill, strokeWidth, stroke);
18011
+ const stroke = chunk5KFSMXI4_js.normalizeHexColor(style?.strokeColor, chunk5KFSMXI4_js.DEFAULT_STROKE_COLOR);
18012
+ const baseVisualStyle = chunk5KFSMXI4_js.getShapeVisualStyle(element, hasFill, fill, strokeWidth, stroke);
18018
18013
  const inheritedFill = pptx.resolveGroupChildFill(element, parentGroupFill);
18019
18014
  const visualStyle = inheritedFill ? {
18020
18015
  ...baseVisualStyle,
@@ -18024,9 +18019,9 @@ function getStaticElementVisualState(element, parentGroupFill) {
18024
18019
  backgroundSize: inheritedFill.backgroundSize,
18025
18020
  backgroundPosition: inheritedFill.backgroundPosition
18026
18021
  } : baseVisualStyle;
18027
- const textStyle = chunk3TN5SUQR_js.getTextStyleForElement(
18022
+ const textStyle = chunk5KFSMXI4_js.getTextStyleForElement(
18028
18023
  element,
18029
- element.type === "shape" && hasFill ? defaultTextColorForFill(fill) : chunk3TN5SUQR_js.DEFAULT_TEXT_COLOR
18024
+ element.type === "shape" && hasFill ? defaultTextColorForFill(fill) : chunk5KFSMXI4_js.DEFAULT_TEXT_COLOR
18030
18025
  );
18031
18026
  const isImage = element.type === "picture" || element.type === "image";
18032
18027
  const letsTextOverflow = pptx$1.hasTextProperties(element) && element.textStyle?.autoFitMode === "shrink" && (element.type === "text" || element.locks?.txBox === true);
@@ -18051,7 +18046,7 @@ function getStaticElementInteractionState(element, hasActionHandler, exposeEleme
18051
18046
  return { action, isActionable, contractRole };
18052
18047
  }
18053
18048
  function getStaticElementWrapperClassName(element, visual, positioned, isActionable) {
18054
- const overflowClass = visual.isImage || visual.strokeWidth > 0 || element.type === "group" || chunk3TN5SUQR_js.isConnectorOrLineElement(element) || visual.isCallout || visual.letsTextOverflow ? "" : "overflow-hidden";
18049
+ const overflowClass = visual.isImage || visual.strokeWidth > 0 || element.type === "group" || chunk5KFSMXI4_js.isConnectorOrLineElement(element) || visual.isCallout || visual.letsTextOverflow ? "" : "overflow-hidden";
18055
18050
  const pointerClass = isActionable ? "pointer-events-auto cursor-pointer" : "pointer-events-none";
18056
18051
  return `${positioned ? "absolute" : "relative"} ${overflowClass} ${pointerClass}`;
18057
18052
  }
@@ -18134,7 +18129,7 @@ function StaticElementRendererImpl({
18134
18129
  top: positioned ? element.y : void 0,
18135
18130
  width: positioned ? Math.max(element.width, 1) : "100%",
18136
18131
  height: positioned ? Math.max(element.height, 1) : "100%",
18137
- transform: positioned ? chunk3TN5SUQR_js.getElementTransform(element) : void 0,
18132
+ transform: positioned ? chunk5KFSMXI4_js.getElementTransform(element) : void 0,
18138
18133
  transformOrigin: "center",
18139
18134
  zIndex,
18140
18135
  ...visualStyle,
@@ -18177,18 +18172,18 @@ function StaticElementRendererImpl({
18177
18172
  spellCheck: false,
18178
18173
  txtSE: pptx$1.hasTextProperties(element) ? element.textStyle : void 0,
18179
18174
  txtS: textStyle,
18180
- vecShape: chunk3TN5SUQR_js.renderVectorShape(
18175
+ vecShape: chunk5KFSMXI4_js.renderVectorShape(
18181
18176
  element,
18182
18177
  isImage ? false : hasFill,
18183
18178
  fill,
18184
18179
  strokeWidth,
18185
18180
  stroke
18186
18181
  ),
18187
- imgStyle: imageAnimation ? { ...chunk3TN5SUQR_js.getImageRenderStyle(element), animation: imageAnimation } : chunk3TN5SUQR_js.getImageRenderStyle(element),
18188
- imgFilter: chunk3TN5SUQR_js.getImageEffectsFilter(element),
18189
- imgOpacity: chunk3TN5SUQR_js.getImageEffectsOpacity(element),
18182
+ imgStyle: imageAnimation ? { ...chunk5KFSMXI4_js.getImageRenderStyle(element), animation: imageAnimation } : chunk5KFSMXI4_js.getImageRenderStyle(element),
18183
+ imgFilter: chunk5KFSMXI4_js.getImageEffectsFilter(element),
18184
+ imgOpacity: chunk5KFSMXI4_js.getImageEffectsOpacity(element),
18190
18185
  imgAlt: "",
18191
- isTxtEl: chunk3TN5SUQR_js.isEditableTextElement(element),
18186
+ isTxtEl: chunk5KFSMXI4_js.isEditableTextElement(element),
18192
18187
  media: mediaDataUrls,
18193
18188
  tableSt: null,
18194
18189
  isSel: false,
@@ -18236,7 +18231,7 @@ function SlideLayer({
18236
18231
  style: {
18237
18232
  width: safeWidth,
18238
18233
  height: safeHeight,
18239
- backgroundColor: slide.backgroundColor ? chunk3TN5SUQR_js.normalizeHexColor(slide.backgroundColor, "#ffffff") : "#ffffff",
18234
+ backgroundColor: slide.backgroundColor ? chunk5KFSMXI4_js.normalizeHexColor(slide.backgroundColor, "#ffffff") : "#ffffff",
18240
18235
  backgroundImage: slide.backgroundImage ? `url(${slide.backgroundImage})` : slide.backgroundGradient ? slide.backgroundGradient : void 0,
18241
18236
  backgroundSize: slide.backgroundImage ? "cover" : void 0,
18242
18237
  backgroundPosition: slide.backgroundImage ? "center" : void 0