pptx-react-viewer 4.41.0 → 4.42.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 (60) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/dist/{AiChatPanel-IDP326YW.mjs → AiChatPanel-R5UTSMXU.mjs} +1 -1
  3. package/dist/AiChatPanel-R5UTSMXU.mjs.br +0 -0
  4. package/dist/AiChatPanel-R5UTSMXU.mjs.gz +0 -0
  5. package/dist/{AiChatPanel-KEVVVR7C.js → AiChatPanel-VI2IQ7XU.js} +9 -9
  6. package/dist/AiChatPanel-VI2IQ7XU.js.br +0 -0
  7. package/dist/AiChatPanel-VI2IQ7XU.js.gz +0 -0
  8. package/dist/{chunk-VU2WQN3P.js → chunk-2XVYVT25.js} +383 -383
  9. package/dist/chunk-2XVYVT25.js.br +0 -0
  10. package/dist/chunk-2XVYVT25.js.gz +0 -0
  11. package/dist/{chunk-MNT2CXDI.mjs → chunk-3LIHPZKS.mjs} +22 -22
  12. package/dist/chunk-3LIHPZKS.mjs.br +0 -0
  13. package/dist/chunk-3LIHPZKS.mjs.gz +0 -0
  14. package/dist/{chunk-3PKYNJJG.js → chunk-FKY33ZKL.js} +21 -21
  15. package/dist/chunk-FKY33ZKL.js.br +0 -0
  16. package/dist/chunk-FKY33ZKL.js.gz +0 -0
  17. package/dist/{chunk-QJ4X7Y7S.js → chunk-GLWV52C6.js} +248 -245
  18. package/dist/chunk-GLWV52C6.js.br +0 -0
  19. package/dist/chunk-GLWV52C6.js.gz +0 -0
  20. package/dist/{chunk-QP67UMRL.mjs → chunk-PZUBHPGJ.mjs} +4 -4
  21. package/dist/chunk-PZUBHPGJ.mjs.br +0 -0
  22. package/dist/chunk-PZUBHPGJ.mjs.gz +0 -0
  23. package/dist/{chunk-EQTNWM5Y.mjs → chunk-UACDKMXF.mjs} +4 -1
  24. package/dist/chunk-UACDKMXF.mjs.br +0 -0
  25. package/dist/chunk-UACDKMXF.mjs.gz +0 -0
  26. package/dist/index.js +24 -24
  27. package/dist/index.js.br +0 -0
  28. package/dist/index.js.gz +0 -0
  29. package/dist/index.mjs +3 -3
  30. package/dist/index.mjs.br +0 -0
  31. package/dist/index.mjs.gz +0 -0
  32. package/dist/internals.js +81 -81
  33. package/dist/internals.js.br +0 -0
  34. package/dist/internals.js.gz +0 -0
  35. package/dist/internals.mjs +2 -2
  36. package/dist/internals.mjs.br +0 -0
  37. package/dist/internals.mjs.gz +0 -0
  38. package/dist/viewer/index.js +19 -19
  39. package/dist/viewer/index.js.br +0 -0
  40. package/dist/viewer/index.js.gz +0 -0
  41. package/dist/viewer/index.mjs +3 -3
  42. package/dist/viewer/index.mjs.br +0 -0
  43. package/dist/viewer/index.mjs.gz +0 -0
  44. package/package.json +8 -8
  45. package/dist/AiChatPanel-IDP326YW.mjs.br +0 -0
  46. package/dist/AiChatPanel-IDP326YW.mjs.gz +0 -0
  47. package/dist/AiChatPanel-KEVVVR7C.js.br +0 -0
  48. package/dist/AiChatPanel-KEVVVR7C.js.gz +0 -0
  49. package/dist/chunk-3PKYNJJG.js.br +0 -0
  50. package/dist/chunk-3PKYNJJG.js.gz +0 -0
  51. package/dist/chunk-EQTNWM5Y.mjs.br +0 -0
  52. package/dist/chunk-EQTNWM5Y.mjs.gz +0 -0
  53. package/dist/chunk-MNT2CXDI.mjs.br +0 -0
  54. package/dist/chunk-MNT2CXDI.mjs.gz +0 -0
  55. package/dist/chunk-QJ4X7Y7S.js.br +0 -0
  56. package/dist/chunk-QJ4X7Y7S.js.gz +0 -0
  57. package/dist/chunk-QP67UMRL.mjs.br +0 -0
  58. package/dist/chunk-QP67UMRL.mjs.gz +0 -0
  59. package/dist/chunk-VU2WQN3P.js.br +0 -0
  60. package/dist/chunk-VU2WQN3P.js.gz +0 -0
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk3PKYNJJG_js = require('./chunk-3PKYNJJG.js');
3
+ var chunkFKY33ZKL_js = require('./chunk-FKY33ZKL.js');
4
4
  var pptx = require('ooxml-ui/pptx');
5
5
  var React17 = require('react');
6
6
  var jsxRuntime = require('react/jsx-runtime');
@@ -684,9 +684,9 @@ function serializeHistoryDocument(snapshot) {
684
684
  }
685
685
  function recordExplicitSlideUpdate(past, future, previous, before, label, maxDepth) {
686
686
  if (previous && serializeHistoryDocument(previous) !== serializeHistoryDocument(before)) {
687
- past.push(chunk3PKYNJJG_js.cloneHistorySnapshot(previous));
687
+ past.push(chunkFKY33ZKL_js.cloneHistorySnapshot(previous));
688
688
  }
689
- past.push({ ...chunk3PKYNJJG_js.cloneHistorySnapshot(before), actionLabel: label });
689
+ past.push({ ...chunkFKY33ZKL_js.cloneHistorySnapshot(before), actionLabel: label });
690
690
  while (past.length > Math.max(1, maxDepth)) {
691
691
  past.shift();
692
692
  }
@@ -776,8 +776,8 @@ function useEditorHistory(input) {
776
776
  width: canvasSize.width,
777
777
  height: canvasSize.height,
778
778
  activeSlideIndex,
779
- slides: slides.map(chunk3PKYNJJG_js.cloneSlide),
780
- templateElementsBySlideId: chunk3PKYNJJG_js.cloneTemplateElementsBySlideId(templateElementsBySlideId),
779
+ slides: slides.map(chunkFKY33ZKL_js.cloneSlide),
780
+ templateElementsBySlideId: chunkFKY33ZKL_js.cloneTemplateElementsBySlideId(templateElementsBySlideId),
781
781
  ...actionLabel ? { actionLabel } : {}
782
782
  };
783
783
  },
@@ -790,9 +790,9 @@ function useEditorHistory(input) {
790
790
  width: snapshot.width,
791
791
  height: snapshot.height
792
792
  });
793
- setSlides(snapshot.slides.map(chunk3PKYNJJG_js.cloneSlide));
793
+ setSlides(snapshot.slides.map(chunkFKY33ZKL_js.cloneSlide));
794
794
  setTemplateElementsBySlideId(
795
- chunk3PKYNJJG_js.cloneTemplateElementsBySlideId(snapshot.templateElementsBySlideId)
795
+ chunkFKY33ZKL_js.cloneTemplateElementsBySlideId(snapshot.templateElementsBySlideId)
796
796
  );
797
797
  setActiveSlideIndex(Math.min(snapshot.activeSlideIndex, maxSlideIndex));
798
798
  setSelectedElementIds([]);
@@ -831,8 +831,8 @@ function useEditorHistory(input) {
831
831
  const currentSnapshot = buildHistorySnapshot(previousSnapshot.actionLabel);
832
832
  historyFutureRef.current.push(currentSnapshot);
833
833
  isApplyingHistoryRef.current = true;
834
- const nextSnapshot = chunk3PKYNJJG_js.cloneHistorySnapshot(previousSnapshot);
835
- lastHistorySnapshotRef.current = chunk3PKYNJJG_js.cloneHistorySnapshot(nextSnapshot);
834
+ const nextSnapshot = chunkFKY33ZKL_js.cloneHistorySnapshot(previousSnapshot);
835
+ lastHistorySnapshotRef.current = chunkFKY33ZKL_js.cloneHistorySnapshot(nextSnapshot);
836
836
  lastHistorySerializedRef.current = serializeHistoryDocument(nextSnapshot);
837
837
  applyHistorySnapshot(nextSnapshot);
838
838
  updateHistoryAvailability();
@@ -853,8 +853,8 @@ function useEditorHistory(input) {
853
853
  const currentSnapshot = buildHistorySnapshot(nextSnapshot.actionLabel);
854
854
  historyPastRef.current.push(currentSnapshot);
855
855
  isApplyingHistoryRef.current = true;
856
- const targetSnapshot = chunk3PKYNJJG_js.cloneHistorySnapshot(nextSnapshot);
857
- lastHistorySnapshotRef.current = chunk3PKYNJJG_js.cloneHistorySnapshot(targetSnapshot);
856
+ const targetSnapshot = chunkFKY33ZKL_js.cloneHistorySnapshot(nextSnapshot);
857
+ lastHistorySnapshotRef.current = chunkFKY33ZKL_js.cloneHistorySnapshot(targetSnapshot);
858
858
  lastHistorySerializedRef.current = serializeHistoryDocument(targetSnapshot);
859
859
  applyHistorySnapshot(targetSnapshot);
860
860
  updateHistoryAvailability();
@@ -872,7 +872,7 @@ function useEditorHistory(input) {
872
872
  historyPastRef.current = [];
873
873
  historyFutureRef.current = [];
874
874
  if (initialSnapshot) {
875
- const clonedInitial = chunk3PKYNJJG_js.cloneHistorySnapshot(initialSnapshot);
875
+ const clonedInitial = chunkFKY33ZKL_js.cloneHistorySnapshot(initialSnapshot);
876
876
  lastHistorySnapshotRef.current = clonedInitial;
877
877
  lastHistorySerializedRef.current = serializeHistoryDocument(clonedInitial);
878
878
  } else {
@@ -954,8 +954,8 @@ function useEditorHistory(input) {
954
954
  updateHistoryAvailability
955
955
  ]);
956
956
  const commitSlides = (nextSlides, label, beforeSlides = slides) => {
957
- const before = { ...buildHistorySnapshot(), slides: beforeSlides.map(chunk3PKYNJJG_js.cloneSlide) };
958
- const after = { ...before, slides: nextSlides.map(chunk3PKYNJJG_js.cloneSlide) };
957
+ const before = { ...buildHistorySnapshot(), slides: beforeSlides.map(chunkFKY33ZKL_js.cloneSlide) };
958
+ const after = { ...before, slides: nextSlides.map(chunkFKY33ZKL_js.cloneSlide) };
959
959
  recordExplicitSlideUpdate(
960
960
  historyPastRef.current,
961
961
  historyFutureRef.current,
@@ -964,7 +964,7 @@ function useEditorHistory(input) {
964
964
  label,
965
965
  maxHistoryEntries
966
966
  );
967
- lastHistorySnapshotRef.current = chunk3PKYNJJG_js.cloneHistorySnapshot(after);
967
+ lastHistorySnapshotRef.current = chunkFKY33ZKL_js.cloneHistorySnapshot(after);
968
968
  lastHistorySerializedRef.current = serializeHistoryDocument(after);
969
969
  isApplyingHistoryRef.current = false;
970
970
  setSlides(nextSlides);
@@ -1151,22 +1151,22 @@ function useZoomViewport({
1151
1151
  selectedElements.forEach((element) => {
1152
1152
  minX = Math.min(minX, element.x);
1153
1153
  minY = Math.min(minY, element.y);
1154
- maxX = Math.max(maxX, element.x + Math.max(element.width, chunk3PKYNJJG_js.MIN_ELEMENT_SIZE));
1155
- maxY = Math.max(maxY, element.y + Math.max(element.height, chunk3PKYNJJG_js.MIN_ELEMENT_SIZE));
1154
+ maxX = Math.max(maxX, element.x + Math.max(element.width, chunkFKY33ZKL_js.MIN_ELEMENT_SIZE));
1155
+ maxY = Math.max(maxY, element.y + Math.max(element.height, chunkFKY33ZKL_js.MIN_ELEMENT_SIZE));
1156
1156
  });
1157
1157
  if (!Number.isFinite(minX) || !Number.isFinite(minY) || !Number.isFinite(maxX) || !Number.isFinite(maxY)) {
1158
1158
  return;
1159
1159
  }
1160
1160
  const selectionBounds = { minX, minY, maxX, maxY };
1161
- const boundsWidth = Math.max(selectionBounds.maxX - selectionBounds.minX, chunk3PKYNJJG_js.MIN_ELEMENT_SIZE);
1162
- const boundsHeight = Math.max(selectionBounds.maxY - selectionBounds.minY, chunk3PKYNJJG_js.MIN_ELEMENT_SIZE);
1161
+ const boundsWidth = Math.max(selectionBounds.maxX - selectionBounds.minX, chunkFKY33ZKL_js.MIN_ELEMENT_SIZE);
1162
+ const boundsHeight = Math.max(selectionBounds.maxY - selectionBounds.minY, chunkFKY33ZKL_js.MIN_ELEMENT_SIZE);
1163
1163
  const availableWidth = Math.max(
1164
- effectiveEditorDimensions.width - chunk3PKYNJJG_js.ZOOM_TO_SELECTION_PADDING,
1165
- chunk3PKYNJJG_js.MIN_ELEMENT_SIZE
1164
+ effectiveEditorDimensions.width - chunkFKY33ZKL_js.ZOOM_TO_SELECTION_PADDING,
1165
+ chunkFKY33ZKL_js.MIN_ELEMENT_SIZE
1166
1166
  );
1167
1167
  const availableHeight = Math.max(
1168
- effectiveEditorDimensions.height - chunk3PKYNJJG_js.ZOOM_TO_SELECTION_PADDING,
1169
- chunk3PKYNJJG_js.MIN_ELEMENT_SIZE
1168
+ effectiveEditorDimensions.height - chunkFKY33ZKL_js.ZOOM_TO_SELECTION_PADDING,
1169
+ chunkFKY33ZKL_js.MIN_ELEMENT_SIZE
1170
1170
  );
1171
1171
  const targetEditorScale = Math.min(
1172
1172
  availableWidth / boundsWidth,
@@ -4133,8 +4133,8 @@ function useViewerCoreState(_input) {
4133
4133
  const { slides, setSlides, slidesRef } = useSlideState();
4134
4134
  const [templateElementsBySlideId, setTemplateElementsBySlideId] = React17.useState({});
4135
4135
  const [canvasSize, setCanvasSize] = React17.useState({
4136
- width: chunk3PKYNJJG_js.DEFAULT_CANVAS_WIDTH,
4137
- height: chunk3PKYNJJG_js.DEFAULT_CANVAS_HEIGHT
4136
+ width: chunkFKY33ZKL_js.DEFAULT_CANVAS_WIDTH,
4137
+ height: chunkFKY33ZKL_js.DEFAULT_CANVAS_HEIGHT
4138
4138
  });
4139
4139
  const [slideSizeEmu, setSlideSizeEmu] = React17.useState();
4140
4140
  const [activeSlideIndex, setActiveSlideIndex] = React17.useState(0);
@@ -4522,7 +4522,7 @@ function useLoadContent({
4522
4522
  }
4523
4523
  let cancelled = false;
4524
4524
  const token = ++renderTokenRef.current;
4525
- const handler = new chunk3PKYNJJG_js.dist_exports.PptxHandler();
4525
+ const handler = new chunkFKY33ZKL_js.dist_exports.PptxHandler();
4526
4526
  const resources = pptx.createPresentationLoadResources(handler);
4527
4527
  const loadBlobUrls = resources.blobUrls;
4528
4528
  (async () => {
@@ -4607,12 +4607,12 @@ function useLoadContent({
4607
4607
  }
4608
4608
  resources.commit();
4609
4609
  handlerRef.current = handler;
4610
- const partition = chunk3PKYNJJG_js.partitionTemplateElements(nextSlides);
4610
+ const partition = chunkFKY33ZKL_js.partitionTemplateElements(nextSlides);
4611
4611
  setSlides(partition.slides);
4612
4612
  setTemplateElementsBySlideId(partition.templateElementsBySlideId);
4613
4613
  setCanvasSize({
4614
- width: parsed.width ?? chunk3PKYNJJG_js.DEFAULT_CANVAS_WIDTH,
4615
- height: parsed.height ?? chunk3PKYNJJG_js.DEFAULT_CANVAS_HEIGHT
4614
+ width: parsed.width ?? chunkFKY33ZKL_js.DEFAULT_CANVAS_WIDTH,
4615
+ height: parsed.height ?? chunkFKY33ZKL_js.DEFAULT_CANVAS_HEIGHT
4616
4616
  });
4617
4617
  setSlideSizeEmu(
4618
4618
  typeof parsed.widthEmu === "number" && typeof parsed.heightEmu === "number" && parsed.widthEmu > 0 && parsed.heightEmu > 0 ? {
@@ -4676,7 +4676,7 @@ function useLoadContent({
4676
4676
  onContentApplied?.();
4677
4677
  } catch (err) {
4678
4678
  if (!cancelled && token === renderTokenRef.current) {
4679
- if (err instanceof chunk3PKYNJJG_js.dist_exports.EncryptedFileError) {
4679
+ if (err instanceof chunkFKY33ZKL_js.dist_exports.EncryptedFileError) {
4680
4680
  setIsEncrypted(true);
4681
4681
  } else {
4682
4682
  console.error("[pptx] Failed to load presentation content:", err);
@@ -4801,7 +4801,7 @@ function useTextElementOperations(input) {
4801
4801
  updateSelectedElement
4802
4802
  } = input;
4803
4803
  const liveTextSegments = React17.useCallback(() => {
4804
- if (!selectedElement || !(0, chunk3PKYNJJG_js.dist_exports.hasTextProperties)(selectedElement)) {
4804
+ if (!selectedElement || !(0, chunkFKY33ZKL_js.dist_exports.hasTextProperties)(selectedElement)) {
4805
4805
  return void 0;
4806
4806
  }
4807
4807
  if (selectedElement.id !== inlineEditingElementId) {
@@ -4819,7 +4819,7 @@ function useTextElementOperations(input) {
4819
4819
  }, [selectedElement, inlineEditingElementId, inlineEditingText, inlineEditingSnapshotRef]);
4820
4820
  const updateSelectedTextStyle = React17.useCallback(
4821
4821
  (updates) => {
4822
- if (!selectedElement || !(0, chunk3PKYNJJG_js.dist_exports.hasTextProperties)(selectedElement)) {
4822
+ if (!selectedElement || !(0, chunkFKY33ZKL_js.dist_exports.hasTextProperties)(selectedElement)) {
4823
4823
  return;
4824
4824
  }
4825
4825
  const isLiveEditing = selectedElement.id === inlineEditingElementId;
@@ -4897,7 +4897,7 @@ function useTextElementOperations(input) {
4897
4897
  );
4898
4898
  const toggleSelectedBullets = React17.useCallback(
4899
4899
  (kind) => {
4900
- if (!selectedElement || !(0, chunk3PKYNJJG_js.dist_exports.hasTextProperties)(selectedElement)) {
4900
+ if (!selectedElement || !(0, chunkFKY33ZKL_js.dist_exports.hasTextProperties)(selectedElement)) {
4901
4901
  return;
4902
4902
  }
4903
4903
  const currentSegments = liveTextSegments();
@@ -4948,7 +4948,7 @@ function useTextElementOperations(input) {
4948
4948
  );
4949
4949
  const updateSelectedTextCase = React17.useCallback(
4950
4950
  (mode) => {
4951
- if (!selectedElement || !(0, chunk3PKYNJJG_js.dist_exports.hasTextProperties)(selectedElement)) {
4951
+ if (!selectedElement || !(0, chunkFKY33ZKL_js.dist_exports.hasTextProperties)(selectedElement)) {
4952
4952
  return;
4953
4953
  }
4954
4954
  const isLiveEditing = selectedElement.id === inlineEditingElementId;
@@ -5064,7 +5064,7 @@ function useElementOperations(input) {
5064
5064
  );
5065
5065
  return;
5066
5066
  }
5067
- if (chunk3PKYNJJG_js.isTemplateElementId(elementId)) {
5067
+ if (chunkFKY33ZKL_js.isTemplateElementId(elementId)) {
5068
5068
  const slideId = activeSlide?.id;
5069
5069
  if (slideId) {
5070
5070
  setTemplateElementsBySlideId((prev) => ({
@@ -5100,7 +5100,7 @@ function useElementOperations(input) {
5100
5100
  );
5101
5101
  const updateSelectedShapeStyle = React17.useCallback(
5102
5102
  (updates) => {
5103
- if (!selectedElement || !(0, chunk3PKYNJJG_js.dist_exports.hasShapeProperties)(selectedElement)) {
5103
+ if (!selectedElement || !(0, chunkFKY33ZKL_js.dist_exports.hasShapeProperties)(selectedElement)) {
5104
5104
  return;
5105
5105
  }
5106
5106
  updateSelectedElement({
@@ -5304,15 +5304,15 @@ function syncSelectionHandleOverlay(elementNode, elementId, geometry) {
5304
5304
  // src/viewer/hooks/pointer-move-handlers.ts
5305
5305
  function computeResizeGeometry(handle, startX, startY, startWidth, startHeight, dx, dy, snapToGrid, gridSpacingPx, lockAspect = false) {
5306
5306
  const startBox = { x: startX, y: startY, width: startWidth, height: startHeight };
5307
- let resized = pptx.applyResize(startBox, handle, dx, dy, 1, { minSize: chunk3PKYNJJG_js.MIN_ELEMENT_SIZE });
5307
+ let resized = pptx.applyResize(startBox, handle, dx, dy, 1, { minSize: chunkFKY33ZKL_js.MIN_ELEMENT_SIZE });
5308
5308
  if (lockAspect) {
5309
- resized = pptx.lockResizeAspect(resized, startBox, handle, chunk3PKYNJJG_js.MIN_ELEMENT_SIZE);
5309
+ resized = pptx.lockResizeAspect(resized, startBox, handle, chunkFKY33ZKL_js.MIN_ELEMENT_SIZE);
5310
5310
  }
5311
5311
  const box = { x: resized.x, y: resized.y, width: resized.width, height: resized.height };
5312
5312
  if (!snapToGrid) {
5313
5313
  return box;
5314
5314
  }
5315
- return pptx.snapBoxToGrid(box, handle, gridSpacingPx, chunk3PKYNJJG_js.MIN_ELEMENT_SIZE);
5315
+ return pptx.snapBoxToGrid(box, handle, gridSpacingPx, chunkFKY33ZKL_js.MIN_ELEMENT_SIZE);
5316
5316
  }
5317
5317
  function resolveLiveTarget(input) {
5318
5318
  const { livePatcher, editTemplateMode, activeSlide } = input;
@@ -5425,7 +5425,7 @@ function processDragMove(e, drag, editorScale, snapToGrid, snapToShape, gridSpac
5425
5425
  width: el.width,
5426
5426
  height: el.height
5427
5427
  }));
5428
- const snapResult = chunk3PKYNJJG_js.computeSnapToShape(
5428
+ const snapResult = chunkFKY33ZKL_js.computeSnapToShape(
5429
5429
  targetX,
5430
5430
  targetY,
5431
5431
  primaryEl.width,
@@ -5499,8 +5499,8 @@ function processResizeMove(e, rs, editorScale, snapToGrid, gridSpacingPx, live)
5499
5499
  rs.lastY = geo.y;
5500
5500
  rs.lastWidth = geo.width;
5501
5501
  rs.lastHeight = geo.height;
5502
- const width = Math.max(geo.width, chunk3PKYNJJG_js.MIN_ELEMENT_SIZE);
5503
- const height = Math.max(geo.height, chunk3PKYNJJG_js.MIN_ELEMENT_SIZE);
5502
+ const width = Math.max(geo.width, chunkFKY33ZKL_js.MIN_ELEMENT_SIZE);
5503
+ const height = Math.max(geo.height, chunkFKY33ZKL_js.MIN_ELEMENT_SIZE);
5504
5504
  if (rs.domEl) {
5505
5505
  rs.domEl.style.left = `${geo.x}px`;
5506
5506
  rs.domEl.style.top = `${geo.y}px`;
@@ -5593,13 +5593,13 @@ function processPointerUp(input) {
5593
5593
  if (i !== activeSlideIndex) {
5594
5594
  return s;
5595
5595
  }
5596
- const rerouted = chunk3PKYNJJG_js.rerouteConnectorsForMovedElements(s.elements, movedIds);
5596
+ const rerouted = chunkFKY33ZKL_js.rerouteConnectorsForMovedElements(s.elements, movedIds);
5597
5597
  if (rerouted.length === 0) {
5598
5598
  return s;
5599
5599
  }
5600
5600
  return {
5601
5601
  ...s,
5602
- elements: chunk3PKYNJJG_js.applyReroutedConnectors(s.elements, rerouted)
5602
+ elements: chunkFKY33ZKL_js.applyReroutedConnectors(s.elements, rerouted)
5603
5603
  };
5604
5604
  })
5605
5605
  );
@@ -5651,8 +5651,8 @@ function commitDrag(drag, editTemplateMode, activeSlide, activeSlideIndex, setTe
5651
5651
  }
5652
5652
  return { ...el, x: start.x + dx, y: start.y + dy };
5653
5653
  });
5654
- const rerouted = chunk3PKYNJJG_js.rerouteConnectorsForMovedElements(movedElements, movedIds);
5655
- return chunk3PKYNJJG_js.applyReroutedConnectors(movedElements, rerouted);
5654
+ const rerouted = chunkFKY33ZKL_js.rerouteConnectorsForMovedElements(movedElements, movedIds);
5655
+ return chunkFKY33ZKL_js.applyReroutedConnectors(movedElements, rerouted);
5656
5656
  };
5657
5657
  if (editTemplateMode) {
5658
5658
  const slideId = activeSlide?.id;
@@ -5840,7 +5840,7 @@ function useCanvasInteractions(input) {
5840
5840
  return;
5841
5841
  }
5842
5842
  const el = elementLookup.get(editId);
5843
- if (el && (0, chunk3PKYNJJG_js.dist_exports.hasTextProperties)(el)) {
5843
+ if (el && (0, chunkFKY33ZKL_js.dist_exports.hasTextProperties)(el)) {
5844
5844
  const reader = inlineEditingReaderRef?.current;
5845
5845
  const read = reader?.elementId === editId ? reader.read() : void 0;
5846
5846
  if (read?.kind === "unsupported") {
@@ -5887,7 +5887,7 @@ function useCanvasInteractions(input) {
5887
5887
  wasEditable.current = canEdit;
5888
5888
  }, [canEdit]);
5889
5889
  const openEquationEditorForElement = (el) => {
5890
- if (!(0, chunk3PKYNJJG_js.dist_exports.hasTextProperties)(el)) {
5890
+ if (!(0, chunkFKY33ZKL_js.dist_exports.hasTextProperties)(el)) {
5891
5891
  return false;
5892
5892
  }
5893
5893
  const eqSeg = el.textSegments?.find((seg) => seg.equationXml);
@@ -5920,7 +5920,7 @@ function useCanvasInteractions(input) {
5920
5920
  justInteractedRef.current = false;
5921
5921
  } else {
5922
5922
  const el = elementLookup.get(elementId);
5923
- if (el && (0, chunk3PKYNJJG_js.dist_exports.hasTextProperties)(el) && pptx.canInteractWithElement(el, "textEdit")) {
5923
+ if (el && (0, chunkFKY33ZKL_js.dist_exports.hasTextProperties)(el) && pptx.canInteractWithElement(el, "textEdit")) {
5924
5924
  if (!openEquationEditorForElement(el)) {
5925
5925
  pptx.setPendingCaretPoint(e);
5926
5926
  setInlineEditingElementId(elementId);
@@ -5946,7 +5946,7 @@ function useCanvasInteractions(input) {
5946
5946
  if (openEquationEditorForElement(el)) {
5947
5947
  return;
5948
5948
  }
5949
- if ((0, chunk3PKYNJJG_js.dist_exports.hasTextProperties)(el) && pptx.canInteractWithElement(el, "textEdit")) {
5949
+ if ((0, chunkFKY33ZKL_js.dist_exports.hasTextProperties)(el) && pptx.canInteractWithElement(el, "textEdit")) {
5950
5950
  setInlineEditingElementId(elementId);
5951
5951
  setInlineEditingText(el.text ?? "");
5952
5952
  }
@@ -6411,7 +6411,7 @@ function createStructuredElementHandlers(deps) {
6411
6411
  return;
6412
6412
  }
6413
6413
  const resolved = resolveHyperlinkEditResult(data);
6414
- if (resolved.url && !chunk3PKYNJJG_js.isUrlSafe(resolved.url)) {
6414
+ if (resolved.url && !chunkFKY33ZKL_js.isUrlSafe(resolved.url)) {
6415
6415
  return;
6416
6416
  }
6417
6417
  const actionClick = {
@@ -6457,11 +6457,11 @@ function createStructuredElementHandlers(deps) {
6457
6457
  if (!activeSlide) {
6458
6458
  return;
6459
6459
  }
6460
- const preset = chunk3PKYNJJG_js.ACTION_BUTTON_PRESETS.find((p) => p.shapeType === shapeType);
6460
+ const preset = chunkFKY33ZKL_js.ACTION_BUTTON_PRESETS.find((p) => p.shapeType === shapeType);
6461
6461
  if (!preset) {
6462
6462
  return;
6463
6463
  }
6464
- const defaultPptxAction = (0, chunk3PKYNJJG_js.dist_exports.elementActionToPptxAction)({
6464
+ const defaultPptxAction = (0, chunkFKY33ZKL_js.dist_exports.elementActionToPptxAction)({
6465
6465
  trigger: "click",
6466
6466
  type: preset.defaultAction
6467
6467
  });
@@ -6544,7 +6544,7 @@ function useInsertElements(input) {
6544
6544
  width: 300,
6545
6545
  height: 60,
6546
6546
  text: "",
6547
- textStyle: { fontSize: chunk3PKYNJJG_js.DEFAULT_TEXT_FONT_SIZE }
6547
+ textStyle: { fontSize: chunkFKY33ZKL_js.DEFAULT_TEXT_FONT_SIZE }
6548
6548
  });
6549
6549
  };
6550
6550
  const handleAddShape = () => {
@@ -6566,7 +6566,7 @@ function useInsertElements(input) {
6566
6566
  }
6567
6567
  });
6568
6568
  };
6569
- const handleAddTable = (rows = chunk3PKYNJJG_js.DEFAULT_TABLE_ROWS, columns = chunk3PKYNJJG_js.DEFAULT_TABLE_COLUMNS) => {
6569
+ const handleAddTable = (rows = chunkFKY33ZKL_js.DEFAULT_TABLE_ROWS, columns = chunkFKY33ZKL_js.DEFAULT_TABLE_COLUMNS) => {
6570
6570
  if (!activeSlide) {
6571
6571
  return;
6572
6572
  }
@@ -6740,7 +6740,7 @@ function useGroupAlignLayerHandlers(input) {
6740
6740
  history
6741
6741
  } = input;
6742
6742
  const updateElementsOwning = (elementId, updater) => {
6743
- if (editTemplateMode && !chunk3PKYNJJG_js.isTemplateElementId(elementId)) {
6743
+ if (editTemplateMode && !chunkFKY33ZKL_js.isTemplateElementId(elementId)) {
6744
6744
  ops.updateSlides(
6745
6745
  (prev) => prev.map(
6746
6746
  (slide, index) => index === activeSlideIndex ? { ...slide, elements: updater(slide.elements) } : slide
@@ -6774,9 +6774,9 @@ function useGroupAlignLayerHandlers(input) {
6774
6774
  return;
6775
6775
  }
6776
6776
  const group = selectedElement;
6777
- const intoTemplate = chunk3PKYNJJG_js.isTemplateElementId(group.id);
6777
+ const intoTemplate = chunkFKY33ZKL_js.isTemplateElementId(group.id);
6778
6778
  const childIds = group.children.map(
6779
- (child) => intoTemplate ? chunk3PKYNJJG_js.makeCloneId(true, child.id || group.id) : child.id || pptx.generateElementId()
6779
+ (child) => intoTemplate ? chunkFKY33ZKL_js.makeCloneId(true, child.id || group.id) : child.id || pptx.generateElementId()
6780
6780
  );
6781
6781
  const { elements, childIds: usedIds } = pptx.ungroupElements(
6782
6782
  ops.activeElements,
@@ -7108,7 +7108,7 @@ function useSlideManagement(input) {
7108
7108
  if (!src) {
7109
7109
  continue;
7110
7110
  }
7111
- const clone = { ...(0, chunk3PKYNJJG_js.dist_exports.duplicateSlide)(src, next.length + 1), id: pptx.makeSlideId() };
7111
+ const clone = { ...(0, chunkFKY33ZKL_js.dist_exports.duplicateSlide)(src, next.length + 1), id: pptx.makeSlideId() };
7112
7112
  next.splice(i + offset + 1, 0, clone);
7113
7113
  offset++;
7114
7114
  }
@@ -7212,7 +7212,7 @@ function createTableMergeHandlers(input) {
7212
7212
  if (!nextCell || nextCell.hMerge || nextCell.vMerge) {
7213
7213
  return;
7214
7214
  }
7215
- const newTableData = chunk3PKYNJJG_js.mergeCells(
7215
+ const newTableData = chunkFKY33ZKL_js.mergeCells(
7216
7216
  [
7217
7217
  { row: rowIndex, col: columnIndex },
7218
7218
  { row: rowIndex, col: nextColIdx }
@@ -7220,7 +7220,7 @@ function createTableMergeHandlers(input) {
7220
7220
  td
7221
7221
  );
7222
7222
  const updates = { tableData: newTableData };
7223
- const newRawXml = (0, chunk3PKYNJJG_js.dist_exports.updateMergeAttrsInRawXml)(selectedElement, newTableData);
7223
+ const newRawXml = (0, chunkFKY33ZKL_js.dist_exports.updateMergeAttrsInRawXml)(selectedElement, newTableData);
7224
7224
  if (newRawXml) {
7225
7225
  updates.rawXml = newRawXml;
7226
7226
  }
@@ -7246,7 +7246,7 @@ function createTableMergeHandlers(input) {
7246
7246
  if (!targetNextCell || targetNextCell.hMerge || targetNextCell.vMerge) {
7247
7247
  return;
7248
7248
  }
7249
- const newTableData = chunk3PKYNJJG_js.mergeCells(
7249
+ const newTableData = chunkFKY33ZKL_js.mergeCells(
7250
7250
  [
7251
7251
  { row: rowIndex, col: columnIndex },
7252
7252
  { row: targetNextRowIdx, col: columnIndex }
@@ -7254,7 +7254,7 @@ function createTableMergeHandlers(input) {
7254
7254
  td
7255
7255
  );
7256
7256
  const updates = { tableData: newTableData };
7257
- const newRawXml = (0, chunk3PKYNJJG_js.dist_exports.updateMergeAttrsInRawXml)(selectedElement, newTableData);
7257
+ const newRawXml = (0, chunkFKY33ZKL_js.dist_exports.updateMergeAttrsInRawXml)(selectedElement, newTableData);
7258
7258
  if (newRawXml) {
7259
7259
  updates.rawXml = newRawXml;
7260
7260
  }
@@ -7269,9 +7269,9 @@ function createTableMergeHandlers(input) {
7269
7269
  return;
7270
7270
  }
7271
7271
  const td = selectedElement.tableData;
7272
- const newTableData = chunk3PKYNJJG_js.mergeCells(ts.selectedCells, td);
7272
+ const newTableData = chunkFKY33ZKL_js.mergeCells(ts.selectedCells, td);
7273
7273
  const updates = { tableData: newTableData };
7274
- const newRawXml = (0, chunk3PKYNJJG_js.dist_exports.updateMergeAttrsInRawXml)(selectedElement, newTableData);
7274
+ const newRawXml = (0, chunkFKY33ZKL_js.dist_exports.updateMergeAttrsInRawXml)(selectedElement, newTableData);
7275
7275
  if (newRawXml) {
7276
7276
  updates.rawXml = newRawXml;
7277
7277
  }
@@ -7288,9 +7288,9 @@ function createTableMergeHandlers(input) {
7288
7288
  }
7289
7289
  const { rowIndex, columnIndex } = ts;
7290
7290
  const td = selectedElement.tableData;
7291
- const newTableData = chunk3PKYNJJG_js.splitCell(rowIndex, columnIndex, td);
7291
+ const newTableData = chunkFKY33ZKL_js.splitCell(rowIndex, columnIndex, td);
7292
7292
  const updates = { tableData: newTableData };
7293
- const newRawXml = (0, chunk3PKYNJJG_js.dist_exports.updateMergeAttrsInRawXml)(selectedElement, newTableData);
7293
+ const newRawXml = (0, chunkFKY33ZKL_js.dist_exports.updateMergeAttrsInRawXml)(selectedElement, newTableData);
7294
7294
  if (newRawXml) {
7295
7295
  updates.rawXml = newRawXml;
7296
7296
  }
@@ -7325,7 +7325,7 @@ function createTableStructHandlers(input) {
7325
7325
  updates.tableData = pptx.setCellText(el, rowIndex, colIndex, text).tableData;
7326
7326
  }
7327
7327
  if (el.rawXml) {
7328
- const newRawXml = (0, chunk3PKYNJJG_js.dist_exports.updateCellTextInRawXml)(el, rowIndex, colIndex, text);
7328
+ const newRawXml = (0, chunkFKY33ZKL_js.dist_exports.updateCellTextInRawXml)(el, rowIndex, colIndex, text);
7329
7329
  if (newRawXml) {
7330
7330
  updates.rawXml = newRawXml;
7331
7331
  }
@@ -7349,7 +7349,7 @@ function createTableStructHandlers(input) {
7349
7349
  const { rowIndex, columnIndex: colIndex } = ts;
7350
7350
  const updates = {};
7351
7351
  if (selectedElement.rawXml) {
7352
- const newRawXml = (0, chunk3PKYNJJG_js.dist_exports.updateCellTextStyleInRawXml)(
7352
+ const newRawXml = (0, chunkFKY33ZKL_js.dist_exports.updateCellTextStyleInRawXml)(
7353
7353
  selectedElement,
7354
7354
  rowIndex,
7355
7355
  colIndex,
@@ -7516,7 +7516,7 @@ function useExportSaveAs(input) {
7516
7516
  const sourceName = filePath ? filePath.replace(/\\/gu, "/").split("/").pop() : void 0;
7517
7517
  const slideSize = pptx.resolveSlideSizeSelection({ current: slideSizeEmu, canvas: canvasSize }).size;
7518
7518
  const data = {
7519
- slides: chunk3PKYNJJG_js.buildSaveSlides(slides, templateElementsBySlideId),
7519
+ slides: chunkFKY33ZKL_js.buildSaveSlides(slides, templateElementsBySlideId),
7520
7520
  width: canvasSize.width,
7521
7521
  height: canvasSize.height,
7522
7522
  widthEmu: slideSize.widthEmu,
@@ -7674,7 +7674,7 @@ async function captureAllSlidesAsPngDataUrls(slideStageRef, totalSlides, setActi
7674
7674
  }
7675
7675
  function tilesToPdfPage(tilesResult) {
7676
7676
  return tilesResult.tiles.map((tile) => ({
7677
- image: chunk3PKYNJJG_js.canvasToJpegData(tile.canvas),
7677
+ image: chunkFKY33ZKL_js.canvasToJpegData(tile.canvas),
7678
7678
  placement: pptx.placeTileOnPage(
7679
7679
  tile,
7680
7680
  tilesResult.fullWidth,
@@ -7707,7 +7707,7 @@ async function exportAllSlidesAsPdf(slideStageRef, totalSlides, setActiveSlide,
7707
7707
  if (pages.length === 0) {
7708
7708
  throw new Error(i18n.translationsEn["pptx.export.errorNoSlidesPdf"]);
7709
7709
  }
7710
- const pdfBlobUrl = chunk3PKYNJJG_js.buildPdfFromTiledImageData(pages);
7710
+ const pdfBlobUrl = chunkFKY33ZKL_js.buildPdfFromTiledImageData(pages);
7711
7711
  pptx.downloadDataUrl(pdfBlobUrl, filename);
7712
7712
  }
7713
7713
  async function exportAllSlidesAsNotesPdf(slideStageRef, totalSlides, setActiveSlide, currentSlideIndex, slideNotes, filename = "presentation-notes.pdf", options = {}) {
@@ -7737,7 +7737,7 @@ async function exportAllSlidesAsNotesPdf(slideStageRef, totalSlides, setActiveSl
7737
7737
  if (pages.length === 0) {
7738
7738
  throw new Error(i18n.translationsEn["pptx.export.errorNoSlidesNotesPdf"]);
7739
7739
  }
7740
- const pdfDataUrl = chunk3PKYNJJG_js.buildNotesPdf(pages);
7740
+ const pdfDataUrl = chunkFKY33ZKL_js.buildNotesPdf(pages);
7741
7741
  pptx.downloadDataUrl(pdfDataUrl, filename);
7742
7742
  }
7743
7743
  async function exportAllSlidesAsVideo(slideStageRef, totalSlides, setActiveSlide, currentSlideIndex, options = {}) {
@@ -7932,7 +7932,7 @@ function exportAllSlidesToSvg(data, options = {}) {
7932
7932
  continue;
7933
7933
  }
7934
7934
  onProgress?.(processedCount, data.slides.length);
7935
- let svg = chunk3PKYNJJG_js.dist_exports.SvgExporter.exportSlide(slide, data.width, data.height, svgOptions);
7935
+ let svg = chunkFKY33ZKL_js.dist_exports.SvgExporter.exportSlide(slide, data.width, data.height, svgOptions);
7936
7936
  if (embedFonts && fontFaces?.length) {
7937
7937
  svg = injectFontFaces(svg, fontFaces);
7938
7938
  }
@@ -8521,10 +8521,10 @@ async function applyThemeEditorEdit(input, { colorScheme, fontScheme, name }) {
8521
8521
  return;
8522
8522
  }
8523
8523
  await handler.applyTheme(colorScheme, fontScheme, name);
8524
- const previousMap = theme?.colorScheme ? (0, chunk3PKYNJJG_js.dist_exports.buildThemeColorMap)(theme.colorScheme) : {};
8524
+ const previousMap = theme?.colorScheme ? (0, chunkFKY33ZKL_js.dist_exports.buildThemeColorMap)(theme.colorScheme) : {};
8525
8525
  bumpHistory();
8526
8526
  setSlides(
8527
- (slides) => (0, chunk3PKYNJJG_js.dist_exports.applyThemeToData)(
8527
+ (slides) => (0, chunkFKY33ZKL_js.dist_exports.applyThemeToData)(
8528
8528
  { slides, theme, themeColorMap: previousMap },
8529
8529
  colorScheme,
8530
8530
  fontScheme,
@@ -8535,8 +8535,8 @@ async function applyThemeEditorEdit(input, { colorScheme, fontScheme, name }) {
8535
8535
  (prev) => Object.fromEntries(
8536
8536
  Object.entries(prev).map(([id, elements]) => [
8537
8537
  id,
8538
- (0, chunk3PKYNJJG_js.dist_exports.reResolveElementFonts)(
8539
- (0, chunk3PKYNJJG_js.dist_exports.reResolveElementColors)(elements, previousMap, colorScheme),
8538
+ (0, chunkFKY33ZKL_js.dist_exports.reResolveElementFonts)(
8539
+ (0, chunkFKY33ZKL_js.dist_exports.reResolveElementColors)(elements, previousMap, colorScheme),
8540
8540
  theme?.fontScheme,
8541
8541
  fontScheme
8542
8542
  )
@@ -8594,13 +8594,13 @@ function useThemeHandlers(input) {
8594
8594
  return;
8595
8595
  }
8596
8596
  await handler.updateThemeColorScheme(colorScheme);
8597
- const previousMap = theme?.colorScheme ? (0, chunk3PKYNJJG_js.dist_exports.buildThemeColorMap)(theme.colorScheme) : {};
8598
- setSlides((prev) => (0, chunk3PKYNJJG_js.dist_exports.reResolveSlideColors)(prev, previousMap, colorScheme));
8597
+ const previousMap = theme?.colorScheme ? (0, chunkFKY33ZKL_js.dist_exports.buildThemeColorMap)(theme.colorScheme) : {};
8598
+ setSlides((prev) => (0, chunkFKY33ZKL_js.dist_exports.reResolveSlideColors)(prev, previousMap, colorScheme));
8599
8599
  if (Object.keys(templateElementsBySlideId).length > 0) {
8600
8600
  setTemplateElementsBySlideId((prev) => {
8601
8601
  const next = {};
8602
8602
  for (const [slideId, elements] of Object.entries(prev)) {
8603
- next[slideId] = (0, chunk3PKYNJJG_js.dist_exports.reResolveElementColors)(elements, previousMap, colorScheme);
8603
+ next[slideId] = (0, chunkFKY33ZKL_js.dist_exports.reResolveElementColors)(elements, previousMap, colorScheme);
8604
8604
  }
8605
8605
  return next;
8606
8606
  });
@@ -8711,7 +8711,7 @@ function useThemeSwitching(input) {
8711
8711
  }
8712
8712
  try {
8713
8713
  await handler.applyTheme(preset.colorScheme, preset.fontScheme, preset.name);
8714
- const newData = (0, chunk3PKYNJJG_js.dist_exports.applyThemeToData)(data, preset.colorScheme, preset.fontScheme, preset.name);
8714
+ const newData = (0, chunkFKY33ZKL_js.dist_exports.applyThemeToData)(data, preset.colorScheme, preset.fontScheme, preset.name);
8715
8715
  onDataChange(newData);
8716
8716
  onThemeChanged?.(preset);
8717
8717
  } catch (error) {
@@ -8728,7 +8728,7 @@ function useThemeSwitching(input) {
8728
8728
  }
8729
8729
  try {
8730
8730
  await handler.applyTheme(colorScheme, fontScheme ?? {}, themeName);
8731
- const newData = (0, chunk3PKYNJJG_js.dist_exports.applyThemeToData)(data, colorScheme, fontScheme, themeName);
8731
+ const newData = (0, chunkFKY33ZKL_js.dist_exports.applyThemeToData)(data, colorScheme, fontScheme, themeName);
8732
8732
  onDataChange(newData);
8733
8733
  } catch (error) {
8734
8734
  console.error("Failed to switch to custom theme:", error);
@@ -8740,12 +8740,12 @@ function useThemeSwitching(input) {
8740
8740
  if (!data?.theme?.colorScheme) {
8741
8741
  return void 0;
8742
8742
  }
8743
- return chunk3PKYNJJG_js.dist_exports.THEME_PRESETS.find(
8744
- (p) => (0, chunk3PKYNJJG_js.dist_exports.themeColorSchemesEqual)(data.theme?.colorScheme, p.colorScheme)
8743
+ return chunkFKY33ZKL_js.dist_exports.THEME_PRESETS.find(
8744
+ (p) => (0, chunkFKY33ZKL_js.dist_exports.themeColorSchemesEqual)(data.theme?.colorScheme, p.colorScheme)
8745
8745
  );
8746
8746
  }, [data?.theme?.colorScheme]);
8747
8747
  return {
8748
- presets: chunk3PKYNJJG_js.dist_exports.THEME_PRESETS,
8748
+ presets: chunkFKY33ZKL_js.dist_exports.THEME_PRESETS,
8749
8749
  switchToPreset,
8750
8750
  switchToCustom,
8751
8751
  currentPreset
@@ -8822,7 +8822,7 @@ function usePropertyHandlers(input) {
8822
8822
  }
8823
8823
  try {
8824
8824
  const ab = await file.arrayBuffer();
8825
- const h = new chunk3PKYNJJG_js.dist_exports.PptxHandler();
8825
+ const h = new chunkFKY33ZKL_js.dist_exports.PptxHandler();
8826
8826
  const other = await h.load(ab);
8827
8827
  if (!other) {
8828
8828
  return;
@@ -8832,7 +8832,7 @@ function usePropertyHandlers(input) {
8832
8832
  width: canvasSize.width,
8833
8833
  height: canvasSize.height
8834
8834
  };
8835
- setCompareResult(chunk3PKYNJJG_js.comparePresentation(cur, other));
8835
+ setCompareResult(chunkFKY33ZKL_js.comparePresentation(cur, other));
8836
8836
  setIsComparePanelOpen(true);
8837
8837
  } catch (err) {
8838
8838
  console.warn("Compare failed:", err);
@@ -9185,7 +9185,7 @@ function useViewerDialogs(input) {
9185
9185
  };
9186
9186
  }
9187
9187
  function computeGridSpacingPx(documentGridSpacing) {
9188
- return pptx.computeGridSpacingPx(documentGridSpacing, chunk3PKYNJJG_js.GRID_SIZE);
9188
+ return pptx.computeGridSpacingPx(documentGridSpacing, chunkFKY33ZKL_js.GRID_SIZE);
9189
9189
  }
9190
9190
  function computeVisibleSlideIndexes(slides, activeCustomShowId, customShows, presentationProperties) {
9191
9191
  const activeShow = activeCustomShowId ? customShows.find((show) => show.id === activeCustomShowId) : void 0;
@@ -9194,7 +9194,7 @@ function computeVisibleSlideIndexes(slides, activeCustomShowId, customShows, pre
9194
9194
  }
9195
9195
  function computeSlideSectionGroups(slides, sections) {
9196
9196
  return pptx.groupSlidesBySection(sections, slides).map((group) => ({
9197
- id: group.section?.id ?? (sections.length > 0 ? chunk3PKYNJJG_js.UNGROUPED_SECTION_ID : chunk3PKYNJJG_js.DEFAULT_SECTION_GROUP_ID),
9197
+ id: group.section?.id ?? (sections.length > 0 ? chunkFKY33ZKL_js.UNGROUPED_SECTION_ID : chunkFKY33ZKL_js.DEFAULT_SECTION_GROUP_ID),
9198
9198
  label: group.section?.name ?? (sections.length > 0 ? "Ungrouped Slides" : "Slides"),
9199
9199
  slideIndexes: group.slideIndexes,
9200
9200
  ...group.section?.color !== void 0 ? { color: group.section.color } : {},
@@ -9239,10 +9239,10 @@ function useDerivedSlideState(input) {
9239
9239
  );
9240
9240
  const slideSectionGroups = React17.useMemo(
9241
9241
  () => computeSlideSectionGroups(slides, sections).map((group) => {
9242
- if (group.id === chunk3PKYNJJG_js.UNGROUPED_SECTION_ID && group.label === "Ungrouped Slides") {
9242
+ if (group.id === chunkFKY33ZKL_js.UNGROUPED_SECTION_ID && group.label === "Ungrouped Slides") {
9243
9243
  return { ...group, label: t("pptx.slides.ungroupedSlides") };
9244
9244
  }
9245
- if (group.id === chunk3PKYNJJG_js.DEFAULT_SECTION_GROUP_ID && group.label === "Slides") {
9245
+ if (group.id === chunkFKY33ZKL_js.DEFAULT_SECTION_GROUP_ID && group.label === "Slides") {
9246
9246
  return { ...group, label: t("pptx.sections.slides") };
9247
9247
  }
9248
9248
  return group;
@@ -9349,7 +9349,7 @@ function useAnnotationHandlers(input) {
9349
9349
  if (nextMode === "present") {
9350
9350
  presentation.enterPresentMode();
9351
9351
  } else if (mode === "present" && annotations.hasAnyAnnotations) {
9352
- chunk3PKYNJJG_js.stopAllPersistentAudio();
9352
+ chunkFKY33ZKL_js.stopAllPersistentAudio();
9353
9353
  if (promptKeepInkAnnotations) {
9354
9354
  pendingModeAfterAnnotationsRef.current = nextMode;
9355
9355
  setShowKeepAnnotationsDialog(true);
@@ -9359,7 +9359,7 @@ function useAnnotationHandlers(input) {
9359
9359
  }
9360
9360
  } else {
9361
9361
  if (mode === "present") {
9362
- chunk3PKYNJJG_js.stopAllPersistentAudio();
9362
+ chunkFKY33ZKL_js.stopAllPersistentAudio();
9363
9363
  }
9364
9364
  setMode(nextMode);
9365
9365
  }
@@ -9430,7 +9430,7 @@ function overlayPendingInlineEdit(document2, elementId, text, snapshot, transfor
9430
9430
  (slide) => !elementId ? slide : {
9431
9431
  ...slide,
9432
9432
  elements: slide.elements.map(
9433
- (element) => element.id === elementId && (0, chunk3PKYNJJG_js.dist_exports.hasTextProperties)(element) ? {
9433
+ (element) => element.id === elementId && (0, chunkFKY33ZKL_js.dist_exports.hasTextProperties)(element) ? {
9434
9434
  ...element,
9435
9435
  text,
9436
9436
  textSegments: pptx.remapTextToSegments(
@@ -9519,14 +9519,14 @@ function useSerialize(input) {
9519
9519
  const pptxGuides = guides.map((g) => ({
9520
9520
  id: g.id,
9521
9521
  orientation: g.axis === "h" ? "horz" : "vert",
9522
- positionEmu: (0, chunk3PKYNJJG_js.dist_exports.guidePxToEmu)(g.position)
9522
+ positionEmu: (0, chunkFKY33ZKL_js.dist_exports.guidePxToEmu)(g.position)
9523
9523
  }));
9524
9524
  return {
9525
9525
  ...slide,
9526
9526
  guides: pptxGuides.length > 0 ? pptxGuides : void 0
9527
9527
  };
9528
9528
  });
9529
- const slidesToSave = chunk3PKYNJJG_js.buildSaveSlides(slidesWithGuides, pending.templateElementsBySlideId);
9529
+ const slidesToSave = chunkFKY33ZKL_js.buildSaveSlides(slidesWithGuides, pending.templateElementsBySlideId);
9530
9530
  const saveOptions = pptx.buildDeckSaveOptions({
9531
9531
  // Without this the Slide Size card edited a viewer-only pixel value and
9532
9532
  // the saved `p:sldSz` never moved: passing `slideSize` is the only way a
@@ -9707,7 +9707,7 @@ function usePresentationSetup(input) {
9707
9707
  return;
9708
9708
  }
9709
9709
  if (mode === "present" && nextMode !== "present") {
9710
- chunk3PKYNJJG_js.stopAllPersistentAudio();
9710
+ chunkFKY33ZKL_js.stopAllPersistentAudio();
9711
9711
  stopAnimationSound();
9712
9712
  const exitHandler = exitModeHandlerRef.current;
9713
9713
  if (exitHandler) {
@@ -9828,12 +9828,12 @@ function useCanvasImagePaste(input) {
9828
9828
  );
9829
9829
  }
9830
9830
  function formatPatchFor(element, format) {
9831
- const updated = chunk3PKYNJJG_js.applyFormatToElement(element, format);
9831
+ const updated = chunkFKY33ZKL_js.applyFormatToElement(element, format);
9832
9832
  const updates = {};
9833
- if ((0, chunk3PKYNJJG_js.dist_exports.hasShapeProperties)(updated)) {
9833
+ if ((0, chunkFKY33ZKL_js.dist_exports.hasShapeProperties)(updated)) {
9834
9834
  updates.shapeStyle = updated.shapeStyle;
9835
9835
  }
9836
- if ((0, chunk3PKYNJJG_js.dist_exports.hasTextProperties)(updated)) {
9836
+ if ((0, chunkFKY33ZKL_js.dist_exports.hasTextProperties)(updated)) {
9837
9837
  updates.textStyle = updated.textStyle;
9838
9838
  }
9839
9839
  return updates;
@@ -9851,7 +9851,7 @@ function useFormatPainterEditing(input) {
9851
9851
  const prevFormatPainterRef = React17.useRef(false);
9852
9852
  React17.useEffect(() => {
9853
9853
  if (formatPainterActive && !prevFormatPainterRef.current && selectedElement) {
9854
- copiedFormatRef.current = chunk3PKYNJJG_js.copyFormatFromElement(selectedElement);
9854
+ copiedFormatRef.current = chunkFKY33ZKL_js.copyFormatFromElement(selectedElement);
9855
9855
  } else if (!formatPainterActive) {
9856
9856
  copiedFormatRef.current = null;
9857
9857
  }
@@ -10942,7 +10942,7 @@ function useKeyboardShortcutWiring(input) {
10942
10942
  }
10943
10943
  function stepSelectedFontSize(state, ops, direction) {
10944
10944
  const selected = state.selectedElement;
10945
- const currentPx = (selected && (0, chunk3PKYNJJG_js.dist_exports.hasTextProperties)(selected) ? selected.textStyle?.fontSize : void 0) ?? pptx.textFontSizePtToPx(18);
10945
+ const currentPx = (selected && (0, chunkFKY33ZKL_js.dist_exports.hasTextProperties)(selected) ? selected.textStyle?.fontSize : void 0) ?? pptx.textFontSizePtToPx(18);
10946
10946
  const nextPt = pptx.stepFontSizePt(pptx.textFontSizePxToPt(currentPx), direction);
10947
10947
  ops.updateSelectedTextStyle({ fontSize: pptx.textFontSizePtToPx(nextPt) });
10948
10948
  }
@@ -11499,7 +11499,7 @@ function useCollaborationWriteBack(input) {
11499
11499
  getSourceBytes: () => latest.current.getSourceBytes?.() ?? null,
11500
11500
  getSaveOptions: () => latest.current.getSaveOptions?.(),
11501
11501
  getTemplateElements: () => latest.current.templateElementsBySlideId,
11502
- mergeTemplateElements: chunk3PKYNJJG_js.buildSaveSlides
11502
+ mergeTemplateElements: chunkFKY33ZKL_js.buildSaveSlides
11503
11503
  }),
11504
11504
  [latest]
11505
11505
  );
@@ -12052,8 +12052,8 @@ function useTouchGestures(input) {
12052
12052
  }
12053
12053
  const recognizer = pptx.createTouchGestureRecognizer({
12054
12054
  getScale: () => scaleRef.current,
12055
- minScale: chunk3PKYNJJG_js.MIN_ZOOM_SCALE,
12056
- maxScale: chunk3PKYNJJG_js.MAX_ZOOM_SCALE,
12055
+ minScale: chunkFKY33ZKL_js.MIN_ZOOM_SCALE,
12056
+ maxScale: chunkFKY33ZKL_js.MAX_ZOOM_SCALE,
12057
12057
  callbacks: {
12058
12058
  onPinchZoom: (newScale) => callbacksRef.current.onPinchZoom?.(newScale),
12059
12059
  onSwipe: (direction) => callbacksRef.current.onSwipe?.(direction),
@@ -12177,7 +12177,7 @@ function buildCanvasProps(input) {
12177
12177
  if (pptx.shouldConfirmExternalHyperlink(viewerOptions, url) && !window.confirm(buildHyperlinkConfirmMessage(url))) {
12178
12178
  return;
12179
12179
  }
12180
- chunk3PKYNJJG_js.safeOpenUrl(url, target);
12180
+ chunkFKY33ZKL_js.safeOpenUrl(url, target);
12181
12181
  };
12182
12182
  const handleActionClick = (elementId, action) => {
12183
12183
  if (mode === "present") {
@@ -12192,9 +12192,9 @@ function buildCanvasProps(input) {
12192
12192
  }
12193
12193
  };
12194
12194
  const handleHyperlinkClick = (url, target) => {
12195
- if (chunk3PKYNJJG_js.isPpactionUrl(url)) {
12195
+ if (chunkFKY33ZKL_js.isPpactionUrl(url)) {
12196
12196
  if (mode === "present") {
12197
- const parsed = chunk3PKYNJJG_js.parsePpactionUrl(url);
12197
+ const parsed = chunkFKY33ZKL_js.parsePpactionUrl(url);
12198
12198
  if (parsed) {
12199
12199
  presentation.handlePresentationAction({
12200
12200
  action: parsed.action,
@@ -12620,7 +12620,7 @@ function buildToolbarProps(input) {
12620
12620
  markDirty: history.markDirty
12621
12621
  }),
12622
12622
  formatPainterActive: s.formatPainterActive,
12623
- canActivateFormatPainter: chunk3PKYNJJG_js.hasCopyableFormat(selectedElement),
12623
+ canActivateFormatPainter: chunkFKY33ZKL_js.hasCopyableFormat(selectedElement),
12624
12624
  onToggleFormatPainter: () => s.setFormatPainterActive((p) => !p),
12625
12625
  isSelectionPaneOpen: s.isSelectionPaneOpen,
12626
12626
  onToggleSelectionPane: () => s.setIsSelectionPaneOpen((p) => !p),
@@ -12943,7 +12943,7 @@ function useViewerBuildingBlocksCore(input) {
12943
12943
  documentGridSpacing: state.viewProperties?.gridSpacing
12944
12944
  });
12945
12945
  const themeColorMap = React17.useMemo(
12946
- () => state.theme?.colorScheme ? (0, chunk3PKYNJJG_js.dist_exports.buildThemeColorMap)(state.theme.colorScheme) : void 0,
12946
+ () => state.theme?.colorScheme ? (0, chunkFKY33ZKL_js.dist_exports.buildThemeColorMap)(state.theme.colorScheme) : void 0,
12947
12947
  [state.theme?.colorScheme]
12948
12948
  );
12949
12949
  const { presentation, annotations, actionSoundHandlerRef, setExitModeHandler } = usePresentationSetup({
@@ -13518,23 +13518,23 @@ function ColorChangedImage({
13518
13518
  className,
13519
13519
  alt
13520
13520
  }) {
13521
- const tolerance = tolerancePct ?? chunk3PKYNJJG_js.DEFAULT_COLOR_CHANGE_TOLERANCE;
13522
- const cacheKey = chunk3PKYNJJG_js.buildCacheKey(
13521
+ const tolerance = tolerancePct ?? chunkFKY33ZKL_js.DEFAULT_COLOR_CHANGE_TOLERANCE;
13522
+ const cacheKey = chunkFKY33ZKL_js.buildCacheKey(
13523
13523
  src,
13524
13524
  clrChange.clrFrom,
13525
13525
  clrChange.clrTo,
13526
13526
  tolerance,
13527
13527
  Boolean(clrChange.clrToTransparent)
13528
13528
  );
13529
- const cached = chunk3PKYNJJG_js.getCachedResult(cacheKey);
13529
+ const cached = chunkFKY33ZKL_js.getCachedResult(cacheKey);
13530
13530
  const [processedSrc, setProcessedSrc] = React17.useState(cached ?? null);
13531
13531
  React17.useEffect(() => {
13532
- if (chunk3PKYNJJG_js.getCachedResult(cacheKey)) {
13533
- setProcessedSrc(chunk3PKYNJJG_js.getCachedResult(cacheKey) ?? null);
13532
+ if (chunkFKY33ZKL_js.getCachedResult(cacheKey)) {
13533
+ setProcessedSrc(chunkFKY33ZKL_js.getCachedResult(cacheKey) ?? null);
13534
13534
  return;
13535
13535
  }
13536
13536
  let cancelled = false;
13537
- chunk3PKYNJJG_js.applyColorChange(
13537
+ chunkFKY33ZKL_js.applyColorChange(
13538
13538
  src,
13539
13539
  clrChange.clrFrom,
13540
13540
  clrChange.clrTo,
@@ -13542,7 +13542,7 @@ function ColorChangedImage({
13542
13542
  Boolean(clrChange.clrToTransparent)
13543
13543
  ).then((result) => {
13544
13544
  if (!cancelled) {
13545
- chunk3PKYNJJG_js.setCachedResult(cacheKey, result.dataUrl);
13545
+ chunkFKY33ZKL_js.setCachedResult(cacheKey, result.dataUrl);
13546
13546
  setProcessedSrc(result.dataUrl);
13547
13547
  }
13548
13548
  return void 0;
@@ -13634,7 +13634,7 @@ function TiledImageLayer({
13634
13634
  cancelled = true;
13635
13635
  };
13636
13636
  }, [src]);
13637
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className, style: { ...chunk3PKYNJJG_js.getImageTilingStyle(element, nativeSize), ...style } });
13637
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className, style: { ...chunkFKY33ZKL_js.getImageTilingStyle(element, nativeSize), ...style } });
13638
13638
  }
13639
13639
  function renderImageEffectDefinitions(element, excludeDuotone = false) {
13640
13640
  return pptx.getImageSvgFilters(element).filter((definition) => !excludeDuotone || definition.id !== `duotone-${element.id}`).map((definition) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -13703,7 +13703,7 @@ function renderImg(el, style, filter, alt, opacity) {
13703
13703
  ...filter ? { filter } : {},
13704
13704
  ...opacity !== void 0 ? { opacity } : {}
13705
13705
  };
13706
- if (chunk3PKYNJJG_js.isImageTiled(el)) {
13706
+ if (chunkFKY33ZKL_js.isImageTiled(el)) {
13707
13707
  const tileSrc = imgSrc(el);
13708
13708
  if (!tileSrc) {
13709
13709
  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" });
@@ -13722,12 +13722,12 @@ function renderImg(el, style, filter, alt, opacity) {
13722
13722
  ] });
13723
13723
  }
13724
13724
  const colorWash = pptx.getImageColorWashStyle(
13725
- (0, chunk3PKYNJJG_js.dist_exports.isImageLikeElement)(el) ? el.imageEffects?.colorWash : void 0
13725
+ (0, chunkFKY33ZKL_js.dist_exports.isImageLikeElement)(el) ? el.imageEffects?.colorWash : void 0
13726
13726
  );
13727
13727
  const clrChange = "imageEffects" in el ? el.imageEffects?.clrChange : void 0;
13728
- const duotoneColors = chunk3PKYNJJG_js.getDuotoneColors(el);
13728
+ const duotoneColors = chunkFKY33ZKL_js.getDuotoneColors(el);
13729
13729
  const useDuotoneCanvas = Boolean(duotoneColors && !clrChange);
13730
- const filterForImg = useDuotoneCanvas ? chunk3PKYNJJG_js.getImageEffectsFilter(el, { excludeDuotone: true }) : filter;
13730
+ const filterForImg = useDuotoneCanvas ? chunkFKY33ZKL_js.getImageEffectsFilter(el, { excludeDuotone: true }) : filter;
13731
13731
  const canvasEffectStyles = {
13732
13732
  ...filterForImg ? { filter: filterForImg } : {},
13733
13733
  ...opacity !== void 0 ? { opacity } : {}
@@ -13803,10 +13803,10 @@ function SlideBackgroundImageLayer({
13803
13803
  style: { zIndex: 0 },
13804
13804
  children: renderImg(
13805
13805
  backgroundElement,
13806
- chunk3PKYNJJG_js.getImageRenderStyle(backgroundElement),
13807
- chunk3PKYNJJG_js.getImageEffectsFilter(backgroundElement),
13806
+ chunkFKY33ZKL_js.getImageRenderStyle(backgroundElement),
13807
+ chunkFKY33ZKL_js.getImageEffectsFilter(backgroundElement),
13808
13808
  "",
13809
- chunk3PKYNJJG_js.getImageEffectsOpacity(backgroundElement)
13809
+ chunkFKY33ZKL_js.getImageEffectsOpacity(backgroundElement)
13810
13810
  )
13811
13811
  }
13812
13812
  );
@@ -14084,7 +14084,7 @@ function ChartElementView({
14084
14084
  pptx.getBarFacePicturePixelSampleVersion
14085
14085
  );
14086
14086
  const viewModel = React17.useMemo(() => {
14087
- return canEdit ? chunk3PKYNJJG_js.buildReactChartViewModel(element) : null;
14087
+ return canEdit ? chunkFKY33ZKL_js.buildReactChartViewModel(element) : null;
14088
14088
  }, [canEdit, element, barFacePictureSampleVersion]);
14089
14089
  React17.useEffect(pptx.ensureChartInteractionStyles, []);
14090
14090
  React17.useEffect(() => {
@@ -14189,9 +14189,9 @@ function ChartElementView({
14189
14189
  textStyle: animationState?.textStyle,
14190
14190
  onSelect: chart3D.onSelect,
14191
14191
  onDrag: chart3D.onDrag,
14192
- children: chunk3PKYNJJG_js.renderChartElement(renderedElement, (key) => t(key))
14192
+ children: chunkFKY33ZKL_js.renderChartElement(renderedElement, (key) => t(key))
14193
14193
  }
14194
- ) : chunk3PKYNJJG_js.renderChartElement(renderedElement, (key) => t(key)),
14194
+ ) : chunkFKY33ZKL_js.renderChartElement(renderedElement, (key) => t(key)),
14195
14195
  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) }),
14196
14196
  titleDraft !== null && /* @__PURE__ */ jsxRuntime.jsx(
14197
14197
  "input",
@@ -14521,7 +14521,7 @@ function ResizeHandles({
14521
14521
  "aria-label": t("pptx.selectionOverlay.resize", { handle }),
14522
14522
  "data-pptx-handle-kind": "resize",
14523
14523
  "data-pptx-compact": true,
14524
- className: chunk3PKYNJJG_js.cn(
14524
+ className: chunkFKY33ZKL_js.cn(
14525
14525
  "absolute z-10 group border-0 bg-transparent p-0",
14526
14526
  RESIZE_DEFAULT_CLASSES,
14527
14527
  posClass,
@@ -14547,7 +14547,7 @@ function ResizeHandles({
14547
14547
  "div",
14548
14548
  {
14549
14549
  "data-pptx-handle-hit": true,
14550
- className: chunk3PKYNJJG_js.cn(
14550
+ className: chunkFKY33ZKL_js.cn(
14551
14551
  "absolute -inset-px pointer-events-auto [--pptx-handle-hit-inset:-1px]",
14552
14552
  corner ? "max-md:-inset-1.5 max-md:[--pptx-handle-hit-inset:-6px]" : "max-md:-inset-2 max-md:[--pptx-handle-hit-inset:-8px]"
14553
14553
  ),
@@ -14568,7 +14568,7 @@ function ResizeHandles({
14568
14568
  "aria-label": t("pptx.selectionOverlay.rotate"),
14569
14569
  "data-pptx-handle-kind": "rotate",
14570
14570
  "data-pptx-compact": true,
14571
- className: chunk3PKYNJJG_js.cn(
14571
+ className: chunkFKY33ZKL_js.cn(
14572
14572
  "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",
14573
14573
  ROTATE_DEFAULT_CLASSES
14574
14574
  ),
@@ -14638,17 +14638,17 @@ var ConnectorElementRenderer = React17__default.default.memo(
14638
14638
  animationState,
14639
14639
  textStyleOverrideCss
14640
14640
  }) {
14641
- const shapeEl = (0, chunk3PKYNJJG_js.dist_exports.hasShapeProperties)(el) ? el : void 0;
14641
+ const shapeEl = (0, chunkFKY33ZKL_js.dist_exports.hasShapeProperties)(el) ? el : void 0;
14642
14642
  const viewWidth = Math.max(el.width, 0);
14643
14643
  const viewHeight = Math.max(el.height, 0);
14644
14644
  const svgWidth = Math.max(el.width, 1);
14645
14645
  const svgHeight = Math.max(el.height, 1);
14646
14646
  const ss = shapeEl?.shapeStyle;
14647
14647
  const strokeWidth = Math.max(0, ss?.strokeWidth ?? 2);
14648
- const strokeColor = chunk3PKYNJJG_js.normalizeHexColor(ss?.strokeColor, chunk3PKYNJJG_js.DEFAULT_STROKE_COLOR);
14649
- const strokePaint = chunk3PKYNJJG_js.colorWithOpacity(strokeColor, ss?.strokeOpacity);
14650
- const dashType = chunk3PKYNJJG_js.normalizeStrokeDashType(ss?.strokeDash);
14651
- const dashArray = chunk3PKYNJJG_js.getSvgStrokeDasharray(
14648
+ const strokeColor = chunkFKY33ZKL_js.normalizeHexColor(ss?.strokeColor, chunkFKY33ZKL_js.DEFAULT_STROKE_COLOR);
14649
+ const strokePaint = chunkFKY33ZKL_js.colorWithOpacity(strokeColor, ss?.strokeOpacity);
14650
+ const dashType = chunkFKY33ZKL_js.normalizeStrokeDashType(ss?.strokeDash);
14651
+ const dashArray = chunkFKY33ZKL_js.getSvgStrokeDasharray(
14652
14652
  dashType,
14653
14653
  Math.max(strokeWidth, 1),
14654
14654
  ss?.customDashSegments
@@ -14659,14 +14659,14 @@ var ConnectorElementRenderer = React17__default.default.memo(
14659
14659
  const markerSeed = el.id.replace(/[^a-zA-Z0-9_-]/gu, "_");
14660
14660
  const startMarkerId = `${markerSeed}-sel-start`;
14661
14661
  const endMarkerId = `${markerSeed}-sel-end`;
14662
- const compoundOffsets = chunk3PKYNJJG_js.getCompoundLineOffsets(compoundLine, strokeWidth);
14663
- const compoundWidths = chunk3PKYNJJG_js.getCompoundLineWidths(compoundLine, strokeWidth);
14662
+ const compoundOffsets = chunkFKY33ZKL_js.getCompoundLineOffsets(compoundLine, strokeWidth);
14663
+ const compoundWidths = chunkFKY33ZKL_js.getCompoundLineWidths(compoundLine, strokeWidth);
14664
14664
  const strokeCap = pptx.svgLineCap(ss?.lineCap);
14665
- const textEl = (0, chunk3PKYNJJG_js.dist_exports.hasTextProperties)(el) ? el : void 0;
14665
+ const textEl = (0, chunkFKY33ZKL_js.dist_exports.hasTextProperties)(el) ? el : void 0;
14666
14666
  const connectorText = textEl?.text?.trim() ?? "";
14667
14667
  const connectorTextSegments = textEl?.textSegments;
14668
14668
  const connectorTextStyle = textEl?.textStyle;
14669
- const pathGeometry = shapeEl ? chunk3PKYNJJG_js.getConnectorPathGeometry(shapeEl) : {
14669
+ const pathGeometry = shapeEl ? chunkFKY33ZKL_js.getConnectorPathGeometry(shapeEl) : {
14670
14670
  pathData: `M 0 0 L ${viewWidth} ${viewHeight}`,
14671
14671
  startX: 0,
14672
14672
  startY: 0,
@@ -14675,16 +14675,16 @@ var ConnectorElementRenderer = React17__default.default.memo(
14675
14675
  };
14676
14676
  const hitTargetWidth = Math.max(strokeWidth * 3, 14);
14677
14677
  const selColor = selClr === "blue-400" ? "#60a5fa" : "#3b82f6";
14678
- const lineShadow = chunk3PKYNJJG_js.buildLineShadowCss(el);
14679
- const lineGlow = chunk3PKYNJJG_js.buildLineGlowFilter(el);
14678
+ const lineShadow = chunkFKY33ZKL_js.buildLineShadowCss(el);
14679
+ const lineGlow = chunkFKY33ZKL_js.buildLineGlowFilter(el);
14680
14680
  return /* @__PURE__ */ jsxRuntime.jsxs(
14681
14681
  "div",
14682
14682
  {
14683
14683
  "data-pptx-element": "true",
14684
14684
  "data-element-id": el.id,
14685
- role: chunk3PKYNJJG_js.getAriaRole(el, { actionable: false }),
14686
- "aria-label": chunk3PKYNJJG_js.getAriaLabel(el),
14687
- "aria-roledescription": chunk3PKYNJJG_js.getAriaRoleDescription(el),
14685
+ role: chunkFKY33ZKL_js.getAriaRole(el, { actionable: false }),
14686
+ "aria-label": chunkFKY33ZKL_js.getAriaLabel(el),
14687
+ "aria-roledescription": chunkFKY33ZKL_js.getAriaRoleDescription(el),
14688
14688
  "aria-selected": isSelected ? true : void 0,
14689
14689
  className: "absolute",
14690
14690
  style: {
@@ -14717,14 +14717,14 @@ var ConnectorElementRenderer = React17__default.default.memo(
14717
14717
  style: { overflow: "visible", pointerEvents: "none" },
14718
14718
  children: [
14719
14719
  /* @__PURE__ */ jsxRuntime.jsxs("defs", { children: [
14720
- chunk3PKYNJJG_js.renderConnectorMarker(
14720
+ chunkFKY33ZKL_js.renderConnectorMarker(
14721
14721
  startMarkerId,
14722
14722
  startArrow,
14723
14723
  strokePaint,
14724
14724
  ss?.connectorStartArrowWidth,
14725
14725
  ss?.connectorStartArrowLength
14726
14726
  ),
14727
- chunk3PKYNJJG_js.renderConnectorMarker(
14727
+ chunkFKY33ZKL_js.renderConnectorMarker(
14728
14728
  endMarkerId,
14729
14729
  endArrow,
14730
14730
  strokePaint,
@@ -14930,14 +14930,14 @@ function getElementInteractionProps({
14930
14930
  };
14931
14931
  }
14932
14932
  function renderDagDuotoneFilterForElement(el) {
14933
- if (!chunk3PKYNJJG_js.hasDagDuotoneEffect(el)) {
14933
+ if (!chunkFKY33ZKL_js.hasDagDuotoneEffect(el)) {
14934
14934
  return null;
14935
14935
  }
14936
14936
  const duotone = el.shapeStyle?.dagDuotone;
14937
14937
  if (!duotone) {
14938
14938
  return null;
14939
14939
  }
14940
- return chunk3PKYNJJG_js.renderDagDuotoneSvgFilter(el.id, duotone.color1, duotone.color2);
14940
+ return chunkFKY33ZKL_js.renderDagDuotoneSvgFilter(el.id, duotone.color1, duotone.color2);
14941
14941
  }
14942
14942
  function getContainerStyle({
14943
14943
  el,
@@ -14950,7 +14950,7 @@ function getContainerStyle({
14950
14950
  has3DExtrusion,
14951
14951
  templateEditing
14952
14952
  }) {
14953
- const ss = (0, chunk3PKYNJJG_js.dist_exports.hasShapeProperties)(el) ? el.shapeStyle : void 0;
14953
+ const ss = (0, chunkFKY33ZKL_js.dist_exports.hasShapeProperties)(el) ? el.shapeStyle : void 0;
14954
14954
  const isPicture = el.type === "picture" || el.type === "image";
14955
14955
  const blurGrowVisible = Boolean(
14956
14956
  ss?.blurGrow && typeof ss.blurRadius === "number" && ss.blurRadius > 0
@@ -14964,10 +14964,10 @@ function getContainerStyle({
14964
14964
  top: isFullscreenMedia ? fs.top : el.y,
14965
14965
  width: isFullscreenMedia ? fs.width : painted.width,
14966
14966
  ...heightStyle,
14967
- transform: isFullscreenMedia ? fs.transform : chunk3PKYNJJG_js.getElementTransform(el),
14967
+ transform: isFullscreenMedia ? fs.transform : chunkFKY33ZKL_js.getElementTransform(el),
14968
14968
  transformOrigin: "center",
14969
14969
  overflow: overflowValue,
14970
- clipPath: isPicture ? void 0 : isImg && !has3DExtrusion ? chunk3PKYNJJG_js.getCropShapeClipPath(el) : void 0,
14970
+ clipPath: isPicture ? void 0 : isImg && !has3DExtrusion ? chunkFKY33ZKL_js.getCropShapeClipPath(el) : void 0,
14971
14971
  zIndex: isFullscreenMedia ? fs.zIndex : zIndex,
14972
14972
  visibility: animationState?.visible === false ? "hidden" : "visible",
14973
14973
  animation: animationState?.cssAnimation,
@@ -15002,11 +15002,11 @@ function getContainerStyle({
15002
15002
  };
15003
15003
  }
15004
15004
  function shapeParams(element) {
15005
- const style = (0, chunk3PKYNJJG_js.dist_exports.hasShapeProperties)(element) ? element.shapeStyle : void 0;
15005
+ const style = (0, chunkFKY33ZKL_js.dist_exports.hasShapeProperties)(element) ? element.shapeStyle : void 0;
15006
15006
  const strokeWidth = pptx.paintedStrokeWidth(style);
15007
- const strokeColor = chunk3PKYNJJG_js.normalizeHexColor(style?.strokeColor, chunk3PKYNJJG_js.DEFAULT_STROKE_COLOR);
15008
- const fillColor = chunk3PKYNJJG_js.normalizeHexColor(style?.fillColor, chunk3PKYNJJG_js.DEFAULT_FILL_COLOR);
15009
- const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(chunk3PKYNJJG_js.buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
15007
+ const strokeColor = chunkFKY33ZKL_js.normalizeHexColor(style?.strokeColor, chunkFKY33ZKL_js.DEFAULT_STROKE_COLOR);
15008
+ const fillColor = chunkFKY33ZKL_js.normalizeHexColor(style?.fillColor, chunkFKY33ZKL_js.DEFAULT_FILL_COLOR);
15009
+ const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(chunkFKY33ZKL_js.buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
15010
15010
  return { hf: hasFill, fc: fillColor, sw: strokeWidth, sc: strokeColor };
15011
15011
  }
15012
15012
  var Extrusion3DOverlay = React17__default.default.memo(
@@ -15111,7 +15111,7 @@ function ShapeEffectOverlay({
15111
15111
  const fillOverlayStyle = overlay ? {
15112
15112
  position: "absolute",
15113
15113
  inset: 0,
15114
- ...(0, chunk3PKYNJJG_js.dist_exports.isImageLikeElement)(element) ? chunk3PKYNJJG_js.getImageSurfaceMaskStyle(element) : {},
15114
+ ...(0, chunkFKY33ZKL_js.dist_exports.isImageLikeElement)(element) ? chunkFKY33ZKL_js.getImageSurfaceMaskStyle(element) : {},
15115
15115
  background: overlay.color,
15116
15116
  mixBlendMode: overlay.blendMode,
15117
15117
  pointerEvents: "none"
@@ -15191,10 +15191,13 @@ function ShapeEffectOverlay({
15191
15191
  },
15192
15192
  children: [
15193
15193
  strokeOutline.paint ? /* @__PURE__ */ jsxRuntime.jsx("defs", { children: renderOutlinePaint(strokeOutline.paint) }) : null,
15194
+ strokeOutline.markers && /* @__PURE__ */ jsxRuntime.jsx("defs", { dangerouslySetInnerHTML: { __html: strokeOutline.markers.markup } }),
15194
15195
  strokeOutline.strands.map((strand, idx) => /* @__PURE__ */ jsxRuntime.jsx(
15195
15196
  "path",
15196
15197
  {
15197
15198
  d: strokeOutline.d,
15199
+ markerStart: idx === 0 ? strokeOutline.markers?.start : void 0,
15200
+ markerEnd: idx === 0 ? strokeOutline.markers?.end : void 0,
15198
15201
  fill: "none",
15199
15202
  stroke: animatesStroke ? "inherit" : strokeOutline.stroke,
15200
15203
  strokeWidth: strand.strokeWidth,
@@ -15315,10 +15318,10 @@ var ElementRenderer = React17__default.default.memo(
15315
15318
  const backgroundAnimationState = pptx.getBackgroundAnimationState(el, presentationElementStates);
15316
15319
  const effectPlacement = pptx.getShapeEffectLayerPlacement(el);
15317
15320
  const visualAnimationState = backgroundAnimationState ?? animationState;
15318
- const isTxt = chunk3PKYNJJG_js.isEditableTextElement(el) && allow.textEditable;
15319
- const txtSE = (0, chunk3PKYNJJG_js.dist_exports.hasTextProperties)(el) ? el.textStyle : void 0;
15321
+ const isTxt = chunkFKY33ZKL_js.isEditableTextElement(el) && allow.textEditable;
15322
+ const txtSE = (0, chunkFKY33ZKL_js.dist_exports.hasTextProperties)(el) ? el.textStyle : void 0;
15320
15323
  const textStyleOverrideCss = pptx.buildTextStyleOverrideCss(el.id, visualAnimationState?.textStyle);
15321
- const ss = chunk3PKYNJJG_js.getShapeVisualStyle(
15324
+ const ss = chunkFKY33ZKL_js.getShapeVisualStyle(
15322
15325
  el,
15323
15326
  hf,
15324
15327
  fc,
@@ -15327,9 +15330,9 @@ var ElementRenderer = React17__default.default.memo(
15327
15330
  visualAnimationState?.animatesFill,
15328
15331
  visualAnimationState?.animatesStroke
15329
15332
  );
15330
- const ts = chunk3PKYNJJG_js.getTextStyleForElement(el, chunk3PKYNJJG_js.DEFAULT_TEXT_COLOR);
15333
+ const ts = chunkFKY33ZKL_js.getTextStyleForElement(el, chunkFKY33ZKL_js.DEFAULT_TEXT_COLOR);
15331
15334
  const isImg = el.type === "picture" || el.type === "image";
15332
- const vs = chunk3PKYNJJG_js.renderVectorShape(
15335
+ const vs = chunkFKY33ZKL_js.renderVectorShape(
15333
15336
  el,
15334
15337
  isImg ? false : hf,
15335
15338
  fc,
@@ -15339,10 +15342,10 @@ var ElementRenderer = React17__default.default.memo(
15339
15342
  visualAnimationState?.animatesStroke
15340
15343
  );
15341
15344
  const isModel3D = el.type === "model3d";
15342
- const isConn = chunk3PKYNJJG_js.isConnectorOrLineElement(el);
15343
- const shapeStyle3d = (0, chunk3PKYNJJG_js.dist_exports.hasShapeProperties)(el) ? el.shapeStyle : void 0;
15345
+ const isConn = chunkFKY33ZKL_js.isConnectorOrLineElement(el);
15346
+ const shapeStyle3d = (0, chunkFKY33ZKL_js.dist_exports.hasShapeProperties)(el) ? el.shapeStyle : void 0;
15344
15347
  const extrusionData = React17.useMemo(
15345
- () => chunk3PKYNJJG_js.build3DExtrusionData(shapeStyle3d?.shape3d, shapeStyle3d?.scene3d, fc, el.width, el.height),
15348
+ () => chunkFKY33ZKL_js.build3DExtrusionData(shapeStyle3d?.shape3d, shapeStyle3d?.scene3d, fc, el.width, el.height),
15346
15349
  [shapeStyle3d?.shape3d, shapeStyle3d?.scene3d, fc, el.width, el.height]
15347
15350
  );
15348
15351
  const actionAffordance = useActionAffordance(el, canInteract);
@@ -15432,7 +15435,7 @@ var ElementRenderer = React17__default.default.memo(
15432
15435
  "aria-hidden": aria.hidden ? true : void 0,
15433
15436
  "aria-selected": isSelected ? true : void 0,
15434
15437
  tabIndex: isFocusable ? 0 : -1,
15435
- className: chunk3PKYNJJG_js.cn(
15438
+ className: chunkFKY33ZKL_js.cn(
15436
15439
  "absolute",
15437
15440
  "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",
15438
15441
  cur,
@@ -15505,9 +15508,9 @@ var ElementRenderer = React17__default.default.memo(
15505
15508
  txtSE,
15506
15509
  txtS: ts,
15507
15510
  vecShape: backgroundAnimationState && !isImg ? null : vs,
15508
- imgStyle: chunk3PKYNJJG_js.getImageRenderStyle(el),
15509
- imgFilter: chunk3PKYNJJG_js.getImageEffectsFilter(el),
15510
- imgOpacity: chunk3PKYNJJG_js.getImageEffectsOpacity(el),
15511
+ imgStyle: chunkFKY33ZKL_js.getImageRenderStyle(el),
15512
+ imgFilter: chunkFKY33ZKL_js.getImageEffectsFilter(el),
15513
+ imgOpacity: chunkFKY33ZKL_js.getImageEffectsOpacity(el),
15511
15514
  imgAlt: imageAltText,
15512
15515
  isTxtEl: isTxt,
15513
15516
  media: mediaDataUrls,
@@ -15644,10 +15647,10 @@ function renderStrokeView(view, pressureSensitive, replayStyle, key) {
15644
15647
  }
15645
15648
  function renderInk(el, options) {
15646
15649
  const replay = options?.replay ?? false;
15647
- const strokes = chunk3PKYNJJG_js.buildInkGroupStrokes(el, { color: "#000", width: 3 });
15650
+ const strokes = chunkFKY33ZKL_js.buildInkGroupStrokes(el, { color: "#000", width: 3 });
15648
15651
  strokes.some((s) => s.circles || s.nibMarks);
15649
15652
  const pressureSensitive = options?.pressureSensitive;
15650
- const replayStyles = replay ? chunk3PKYNJJG_js.getInkReplayStyles(el, options?.replayConfig) : null;
15653
+ const replayStyles = replay ? chunkFKY33ZKL_js.getInkReplayStyles(el, options?.replayConfig) : null;
15651
15654
  return /* @__PURE__ */ jsxRuntime.jsxs(
15652
15655
  "svg",
15653
15656
  {
@@ -15655,7 +15658,7 @@ function renderInk(el, options) {
15655
15658
  viewBox: `0 0 ${Math.max(el.width, 1)} ${Math.max(el.height, 1)}`,
15656
15659
  preserveAspectRatio: "none",
15657
15660
  children: [
15658
- replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children: chunk3PKYNJJG_js.INK_REPLAY_KEYFRAMES }),
15661
+ replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children: chunkFKY33ZKL_js.INK_REPLAY_KEYFRAMES }),
15659
15662
  strokes.map(
15660
15663
  (s, i) => renderStrokeView(s, pressureSensitive, replayStyles?.[i], `${el.id}-ink-${i}`)
15661
15664
  )
@@ -15666,7 +15669,7 @@ function renderInk(el, options) {
15666
15669
  function renderGroup(children, parentGroupFill) {
15667
15670
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative w-full h-full pointer-events-none", children: pptx.filterRenderedElements(children).map((c, childIndex) => {
15668
15671
  const { hf, fc, sw, sc } = shapeParams(c);
15669
- const baseSs = chunk3PKYNJJG_js.getShapeVisualStyle(c, hf, fc, sw, sc);
15672
+ const baseSs = chunkFKY33ZKL_js.getShapeVisualStyle(c, hf, fc, sw, sc);
15670
15673
  const inheritedFill = pptx.resolveGroupChildFill(c, parentGroupFill);
15671
15674
  const ss = inheritedFill ? {
15672
15675
  ...baseSs,
@@ -15677,9 +15680,9 @@ function renderGroup(children, parentGroupFill) {
15677
15680
  backgroundPosition: inheritedFill.backgroundPosition
15678
15681
  } : baseSs;
15679
15682
  const isI = c.type === "picture" || c.type === "image";
15680
- const vs = chunk3PKYNJJG_js.renderVectorShape(c, isI ? false : hf, fc, sw, sc);
15681
- const ts = chunk3PKYNJJG_js.getTextStyleForElement(c, chunk3PKYNJJG_js.DEFAULT_TEXT_COLOR);
15682
- const isTxt = chunk3PKYNJJG_js.isEditableTextElement(c);
15683
+ const vs = chunkFKY33ZKL_js.renderVectorShape(c, isI ? false : hf, fc, sw, sc);
15684
+ const ts = chunkFKY33ZKL_js.getTextStyleForElement(c, chunkFKY33ZKL_js.DEFAULT_TEXT_COLOR);
15685
+ const isTxt = chunkFKY33ZKL_js.isEditableTextElement(c);
15683
15686
  return /* @__PURE__ */ jsxRuntime.jsxs(
15684
15687
  "div",
15685
15688
  {
@@ -15688,9 +15691,9 @@ function renderGroup(children, parentGroupFill) {
15688
15691
  style: {
15689
15692
  left: c.x,
15690
15693
  top: c.y,
15691
- width: Math.max(c.width, chunk3PKYNJJG_js.MIN_ELEMENT_SIZE),
15692
- height: Math.max(c.height, chunk3PKYNJJG_js.MIN_ELEMENT_SIZE),
15693
- transform: chunk3PKYNJJG_js.getElementTransform(c),
15694
+ width: Math.max(c.width, chunkFKY33ZKL_js.MIN_ELEMENT_SIZE),
15695
+ height: Math.max(c.height, chunkFKY33ZKL_js.MIN_ELEMENT_SIZE),
15696
+ transform: chunkFKY33ZKL_js.getElementTransform(c),
15694
15697
  transformOrigin: "center",
15695
15698
  ...ss,
15696
15699
  ...isI ? {
@@ -15715,8 +15718,8 @@ function renderGroup(children, parentGroupFill) {
15715
15718
  // A nested group: recurse, chaining the inherited fill so a
15716
15719
  // `grpFill` shape under a fill-less sub-group still paints.
15717
15720
  renderGroup(c.children, pptx.getGroupChildParentFill(c, parentGroupFill))
15718
- ) : isI && ("svgData" in c && c.svgData || "imageData" in c && c.imageData) ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style: chunk3PKYNJJG_js.getImageSurfaceStyle(c), children: [
15719
- chunk3PKYNJJG_js.isImageTiled(c) ? /* @__PURE__ */ jsxRuntime.jsx(
15721
+ ) : isI && ("svgData" in c && c.svgData || "imageData" in c && c.imageData) ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style: chunkFKY33ZKL_js.getImageSurfaceStyle(c), children: [
15722
+ chunkFKY33ZKL_js.isImageTiled(c) ? /* @__PURE__ */ jsxRuntime.jsx(
15720
15723
  TiledImageLayer,
15721
15724
  {
15722
15725
  element: c,
@@ -15729,7 +15732,7 @@ function renderGroup(children, parentGroupFill) {
15729
15732
  src: "svgData" in c && c.svgData ? c.svgData : c.imageData,
15730
15733
  alt: i18n.translationsEn["pptx.ink.groupChildAlt"],
15731
15734
  className: "pointer-events-none select-none",
15732
- style: chunk3PKYNJJG_js.getImageRenderStyle(c),
15735
+ style: chunkFKY33ZKL_js.getImageRenderStyle(c),
15733
15736
  draggable: false
15734
15737
  }
15735
15738
  ),
@@ -15741,7 +15744,7 @@ function renderGroup(children, parentGroupFill) {
15741
15744
  {
15742
15745
  className: "relative z-10 w-full h-full pointer-events-none whitespace-pre-wrap break-words leading-[1.3]",
15743
15746
  style: ts,
15744
- children: chunk3PKYNJJG_js.renderTextSegments(c, chunk3PKYNJJG_js.DEFAULT_TEXT_COLOR)
15747
+ children: chunkFKY33ZKL_js.renderTextSegments(c, chunkFKY33ZKL_js.DEFAULT_TEXT_COLOR)
15745
15748
  }
15746
15749
  ) : null
15747
15750
  ] })
@@ -15755,8 +15758,8 @@ function renderContentPart(el, options) {
15755
15758
  if (el.inkStrokes && el.inkStrokes.length > 0) {
15756
15759
  const replay = options?.replay ?? false;
15757
15760
  const pressureSensitive = options?.pressureSensitive ?? true;
15758
- const strokes = chunk3PKYNJJG_js.buildContentPartStrokes(el);
15759
- const replayStyles = replay ? chunk3PKYNJJG_js.getContentPartReplayStyles(el.inkStrokes, options?.replayConfig) : null;
15761
+ const strokes = chunkFKY33ZKL_js.buildContentPartStrokes(el);
15762
+ const replayStyles = replay ? chunkFKY33ZKL_js.getContentPartReplayStyles(el.inkStrokes, options?.replayConfig) : null;
15760
15763
  return /* @__PURE__ */ jsxRuntime.jsxs(
15761
15764
  "svg",
15762
15765
  {
@@ -15764,7 +15767,7 @@ function renderContentPart(el, options) {
15764
15767
  viewBox: `0 0 ${Math.max(el.width, 1)} ${Math.max(el.height, 1)}`,
15765
15768
  preserveAspectRatio: "none",
15766
15769
  children: [
15767
- replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children: chunk3PKYNJJG_js.INK_REPLAY_KEYFRAMES }),
15770
+ replay && /* @__PURE__ */ jsxRuntime.jsx("style", { children: chunkFKY33ZKL_js.INK_REPLAY_KEYFRAMES }),
15768
15771
  strokes.map(
15769
15772
  (s, i) => renderStrokeView(s, pressureSensitive, replayStyles?.[i], `${el.id}-cp-ink-${i}`)
15770
15773
  )
@@ -15991,9 +15994,9 @@ function useInlineListEditor(element, rootRef, onChange, onModelReplacement) {
15991
15994
  collaboration: connected,
15992
15995
  model: pptx.createInlineListModelObserver(element),
15993
15996
  activationSelection,
15994
- children: seed && !connected ? chunk3PKYNJJG_js.renderTextSegments(
15997
+ children: seed && !connected ? chunkFKY33ZKL_js.renderTextSegments(
15995
15998
  element,
15996
- chunk3PKYNJJG_js.DEFAULT_TEXT_COLOR,
15999
+ chunkFKY33ZKL_js.DEFAULT_TEXT_COLOR,
15997
16000
  void 0,
15998
16001
  void 0,
15999
16002
  void 0,
@@ -16163,7 +16166,7 @@ function InlineTextEditor({
16163
16166
  seedRef.current = {
16164
16167
  initialText,
16165
16168
  hasRichSegments: Boolean(
16166
- (0, chunk3PKYNJJG_js.dist_exports.hasTextProperties)(element) && element.textSegments && element.textSegments.length > 0
16169
+ (0, chunkFKY33ZKL_js.dist_exports.hasTextProperties)(element) && element.textSegments && element.textSegments.length > 0
16167
16170
  )
16168
16171
  };
16169
16172
  }
@@ -16229,8 +16232,8 @@ function InlineTextEditor({
16229
16232
  pending.endOffset
16230
16233
  );
16231
16234
  });
16232
- const warpStyle = chunk3PKYNJJG_js.getTextWarpStyle(textStyleRaw);
16233
- const compensationTransform = chunk3PKYNJJG_js.getTextCompensationTransform(element);
16235
+ const warpStyle = chunkFKY33ZKL_js.getTextWarpStyle(textStyleRaw);
16236
+ const compensationTransform = chunkFKY33ZKL_js.getTextCompensationTransform(element);
16234
16237
  const warpTransform = warpStyle?.transform;
16235
16238
  const mergedTransform = [compensationTransform, warpTransform].filter(Boolean).join(" ") || void 0;
16236
16239
  const wrapperStyle = {
@@ -16241,7 +16244,7 @@ function InlineTextEditor({
16241
16244
  transformOrigin: warpStyle?.transformOrigin || "center"
16242
16245
  };
16243
16246
  const nextInlineStyleValue = (property) => {
16244
- if (!(0, chunk3PKYNJJG_js.dist_exports.hasTextProperties)(element)) {
16247
+ if (!(0, chunkFKY33ZKL_js.dist_exports.hasTextProperties)(element)) {
16245
16248
  return true;
16246
16249
  }
16247
16250
  const result = pptx.getInlineEditorSelectionResult(element.textSegments);
@@ -16318,7 +16321,7 @@ function InlineTextEditor({
16318
16321
  const text = e.clipboardData.getData("text/plain");
16319
16322
  document.execCommand("insertText", false, text);
16320
16323
  },
16321
- children: list.seed ? list.children : seed.hasRichSegments ? chunk3PKYNJJG_js.renderTextSegments(element, chunk3PKYNJJG_js.DEFAULT_TEXT_COLOR) : seed.initialText
16324
+ children: list.seed ? list.children : seed.hasRichSegments ? chunkFKY33ZKL_js.renderTextSegments(element, chunkFKY33ZKL_js.DEFAULT_TEXT_COLOR) : seed.initialText
16322
16325
  },
16323
16326
  list.seed?.paragraphs[0].token ?? "plain"
16324
16327
  );
@@ -17255,7 +17258,7 @@ function SmartArtRendererImpl({
17255
17258
  if (!onUpdateElement || !pptx.shouldCommitSmartArtNodeText(smartArtData, nodeId, text)) {
17256
17259
  return;
17257
17260
  }
17258
- const updated = (0, chunk3PKYNJJG_js.dist_exports.updateSmartArtNodeText)(smartArtData, nodeId, text);
17261
+ const updated = (0, chunkFKY33ZKL_js.dist_exports.updateSmartArtNodeText)(smartArtData, nodeId, text);
17259
17262
  const box = { width: element.width, height: element.height };
17260
17263
  const reflowed = pptx.rebuildDrawingShapesIfCleared(
17261
17264
  updated,
@@ -17271,7 +17274,7 @@ function SmartArtRendererImpl({
17271
17274
  if (!onUpdateElement) {
17272
17275
  return;
17273
17276
  }
17274
- const next = (0, chunk3PKYNJJG_js.dist_exports.setSmartArtNodeStyle)(smartArtData, nodeId, { fillColor: fill });
17277
+ const next = (0, chunkFKY33ZKL_js.dist_exports.setSmartArtNodeStyle)(smartArtData, nodeId, { fillColor: fill });
17275
17278
  if (next !== smartArtData) {
17276
17279
  const box = { width: element.width, height: element.height };
17277
17280
  const reflowed = pptx.rebuildDrawingShapesIfCleared(
@@ -17465,7 +17468,7 @@ function groupIntoParagraphs(element, fieldContext) {
17465
17468
  element,
17466
17469
  fieldContext ? (seg) => {
17467
17470
  if (seg.fieldType) {
17468
- const substituted = chunk3PKYNJJG_js.substituteFieldText(
17471
+ const substituted = chunkFKY33ZKL_js.substituteFieldText(
17469
17472
  seg.text,
17470
17473
  seg.fieldType,
17471
17474
  fieldContext,
@@ -17500,13 +17503,13 @@ function getSegmentTspanProps(segment, element, fallbackColor) {
17500
17503
  if (s.strikethrough) {
17501
17504
  decos.push("line-through");
17502
17505
  }
17503
- const fill = s.hyperlink ? chunk3PKYNJJG_js.normalizeHexColor(s.color || element.textStyle?.color, chunk3PKYNJJG_js.HYPERLINK_COLOR) : chunk3PKYNJJG_js.normalizeHexColor(s.color || element.textStyle?.color, fallbackColor);
17506
+ const fill = s.hyperlink ? chunkFKY33ZKL_js.normalizeHexColor(s.color || element.textStyle?.color, chunkFKY33ZKL_js.HYPERLINK_COLOR) : chunkFKY33ZKL_js.normalizeHexColor(s.color || element.textStyle?.color, fallbackColor);
17504
17507
  return {
17505
17508
  fill,
17506
- fontSize: s.fontSize ?? element.textStyle?.fontSize ?? chunk3PKYNJJG_js.DEFAULT_TEXT_FONT_SIZE,
17509
+ fontSize: s.fontSize ?? element.textStyle?.fontSize ?? chunkFKY33ZKL_js.DEFAULT_TEXT_FONT_SIZE,
17507
17510
  fontWeight: s.bold ? 700 : 400,
17508
17511
  fontStyle: s.italic ? "italic" : void 0,
17509
- fontFamily: s.fontFamily || element.textStyle?.fontFamily ? (0, chunk3PKYNJJG_js.dist_exports.getSubstituteFontFamily)(s.fontFamily || element.textStyle?.fontFamily || "") : chunk3PKYNJJG_js.DEFAULT_FONT_FAMILY,
17512
+ fontFamily: s.fontFamily || element.textStyle?.fontFamily ? (0, chunkFKY33ZKL_js.dist_exports.getSubstituteFontFamily)(s.fontFamily || element.textStyle?.fontFamily || "") : chunkFKY33ZKL_js.DEFAULT_FONT_FAMILY,
17510
17513
  textDecoration: decos.length > 0 ? decos.join(" ") : void 0
17511
17514
  };
17512
17515
  }
@@ -17514,8 +17517,8 @@ function resolveSegmentFont(segment, element) {
17514
17517
  const s = segment.style || {};
17515
17518
  const family = s.fontFamily || element.textStyle?.fontFamily;
17516
17519
  return {
17517
- fontFamily: family ? (0, chunk3PKYNJJG_js.dist_exports.getSubstituteFontFamily)(family) : chunk3PKYNJJG_js.DEFAULT_FONT_FAMILY,
17518
- fontSizePx: s.fontSize ?? element.textStyle?.fontSize ?? chunk3PKYNJJG_js.DEFAULT_TEXT_FONT_SIZE,
17520
+ fontFamily: family ? (0, chunkFKY33ZKL_js.dist_exports.getSubstituteFontFamily)(family) : chunkFKY33ZKL_js.DEFAULT_FONT_FAMILY,
17521
+ fontSizePx: s.fontSize ?? element.textStyle?.fontSize ?? chunkFKY33ZKL_js.DEFAULT_TEXT_FONT_SIZE,
17519
17522
  bold: s.bold ?? element.textStyle?.bold,
17520
17523
  italic: s.italic ?? element.textStyle?.italic
17521
17524
  };
@@ -17581,7 +17584,7 @@ function WarpedText({
17581
17584
  fallbackColor,
17582
17585
  fieldContext
17583
17586
  }) {
17584
- if (!(0, chunk3PKYNJJG_js.dist_exports.hasTextProperties)(element)) {
17587
+ if (!(0, chunkFKY33ZKL_js.dist_exports.hasTextProperties)(element)) {
17585
17588
  return null;
17586
17589
  }
17587
17590
  const textEl = element;
@@ -17599,9 +17602,9 @@ function WarpedText({
17599
17602
  const warpAdj2 = textEl.textStyle?.textWarpAdj2;
17600
17603
  const align = textEl.textStyle?.align ?? "center";
17601
17604
  const { startOffset, textAnchor } = getAlignmentProps(align);
17602
- const baseFontSize = textEl.textStyle?.fontSize ?? chunk3PKYNJJG_js.DEFAULT_TEXT_FONT_SIZE;
17603
- const baseFontFamily = textEl.textStyle?.fontFamily ? (0, chunk3PKYNJJG_js.dist_exports.getSubstituteFontFamily)(textEl.textStyle.fontFamily) : chunk3PKYNJJG_js.DEFAULT_FONT_FAMILY;
17604
- const baseFill = chunk3PKYNJJG_js.normalizeHexColor(textEl.textStyle?.color, fallbackColor);
17605
+ const baseFontSize = textEl.textStyle?.fontSize ?? chunkFKY33ZKL_js.DEFAULT_TEXT_FONT_SIZE;
17606
+ const baseFontFamily = textEl.textStyle?.fontFamily ? (0, chunkFKY33ZKL_js.dist_exports.getSubstituteFontFamily)(textEl.textStyle.fontFamily) : chunkFKY33ZKL_js.DEFAULT_FONT_FAMILY;
17607
+ const baseFill = chunkFKY33ZKL_js.normalizeHexColor(textEl.textStyle?.color, fallbackColor);
17605
17608
  if (pptx.hasGlyphEnvelope(preset)) {
17606
17609
  const perLine = pptx.buildGlyphEnvelopeBlock(
17607
17610
  preset,
@@ -17701,7 +17704,7 @@ function WarpedText({
17701
17704
  );
17702
17705
  }
17703
17706
  var GLYPH_BY_SHAPE = Object.fromEntries(
17704
- chunk3PKYNJJG_js.ACTION_BUTTON_PRESETS.map((p) => [p.shapeType, p.iconPath])
17707
+ chunkFKY33ZKL_js.ACTION_BUTTON_PRESETS.map((p) => [p.shapeType, p.iconPath])
17705
17708
  );
17706
17709
  GLYPH_BY_SHAPE["actionButtonForwardOrNext"] = GLYPH_BY_SHAPE["actionButtonForwardNext"];
17707
17710
  GLYPH_BY_SHAPE["actionButtonBackOrPrevious"] = GLYPH_BY_SHAPE["actionButtonBackPrevious"];
@@ -17771,11 +17774,11 @@ function renderTextElementBody(options) {
17771
17774
  const isLinkedTextBox = pptx.isLinkedTextBox(el);
17772
17775
  const linkedSegments = pptx.getOverflowSegments(el, slideElements);
17773
17776
  const useSvgWarp = pptx.shouldUseSvgWarp(
17774
- (0, chunk3PKYNJJG_js.dist_exports.hasTextProperties)(el) ? el.textStyle?.textWarpPreset : void 0
17777
+ (0, chunkFKY33ZKL_js.dist_exports.hasTextProperties)(el) ? el.textStyle?.textWarpPreset : void 0
17775
17778
  );
17776
- const scene3dStyle = (0, chunk3PKYNJJG_js.dist_exports.hasTextProperties)(el) ? chunk3PKYNJJG_js.buildTextBody3DSceneStyle(el.textStyle, { width: el.width, height: el.height }) : void 0;
17779
+ const scene3dStyle = (0, chunkFKY33ZKL_js.dist_exports.hasTextProperties)(el) ? chunkFKY33ZKL_js.buildTextBody3DSceneStyle(el.textStyle, { width: el.width, height: el.height }) : void 0;
17777
17780
  const rotationTransform = pptx.getTextBodyRotationTransform(el);
17778
- const composedTransform = [rotationTransform, chunk3PKYNJJG_js.getTextCompensationTransform(el), scene3dStyle?.transform].filter(Boolean).join(" ") || void 0;
17781
+ const composedTransform = [rotationTransform, chunkFKY33ZKL_js.getTextCompensationTransform(el), scene3dStyle?.transform].filter(Boolean).join(" ") || void 0;
17779
17782
  const transformStyle = {
17780
17783
  transform: composedTransform,
17781
17784
  // A COM-measured homography (`scene3dStyle.transformOrigin === '0 0'`)
@@ -17805,18 +17808,18 @@ function renderTextElementBody(options) {
17805
17808
  shouldRenderText && (useSvgWarp ? /* @__PURE__ */ jsxRuntime.jsx(
17806
17809
  "div",
17807
17810
  {
17808
- className: chunk3PKYNJJG_js.cn(
17811
+ className: chunkFKY33ZKL_js.cn(
17809
17812
  "relative z-10 w-full h-full",
17810
17813
  onHyperlinkClick ? "" : "pointer-events-none"
17811
17814
  ),
17812
- style: { ...chunk3PKYNJJG_js.getTextLayoutStyle(el), ...transformStyle },
17815
+ style: { ...chunkFKY33ZKL_js.getTextLayoutStyle(el), ...transformStyle },
17813
17816
  children: /* @__PURE__ */ jsxRuntime.jsx(
17814
17817
  WarpedText,
17815
17818
  {
17816
17819
  element: el,
17817
17820
  width: el.width,
17818
17821
  height: el.height,
17819
- fallbackColor: chunk3PKYNJJG_js.DEFAULT_TEXT_COLOR,
17822
+ fallbackColor: chunkFKY33ZKL_js.DEFAULT_TEXT_COLOR,
17820
17823
  findHighlights: findHl,
17821
17824
  fieldContext
17822
17825
  }
@@ -17825,19 +17828,19 @@ function renderTextElementBody(options) {
17825
17828
  ) : /* @__PURE__ */ jsxRuntime.jsx(
17826
17829
  "div",
17827
17830
  {
17828
- className: chunk3PKYNJJG_js.cn(
17831
+ className: chunkFKY33ZKL_js.cn(
17829
17832
  "relative z-10 w-full h-full whitespace-pre-wrap break-words leading-[1.3]",
17830
17833
  onHyperlinkClick ? "" : "pointer-events-none"
17831
17834
  ),
17832
17835
  style: {
17833
- ...chunk3PKYNJJG_js.getTextLayoutStyle(el),
17836
+ ...chunkFKY33ZKL_js.getTextLayoutStyle(el),
17834
17837
  ...txtS,
17835
- ...chunk3PKYNJJG_js.getTextWarpStyle(txtSE),
17838
+ ...chunkFKY33ZKL_js.getTextWarpStyle(txtSE),
17836
17839
  ...transformStyle
17837
17840
  },
17838
- children: chunk3PKYNJJG_js.renderTextSegments(
17841
+ children: chunkFKY33ZKL_js.renderTextSegments(
17839
17842
  el,
17840
- chunk3PKYNJJG_js.DEFAULT_TEXT_COLOR,
17843
+ chunkFKY33ZKL_js.DEFAULT_TEXT_COLOR,
17841
17844
  void 0,
17842
17845
  findHl,
17843
17846
  onHyperlinkClick,
@@ -18156,7 +18159,7 @@ function renderBody(options) {
18156
18159
  );
18157
18160
  }
18158
18161
  if (isImg) {
18159
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style: chunk3PKYNJJG_js.getImageSurfaceStyle(el), children: [
18162
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 pointer-events-none", style: chunkFKY33ZKL_js.getImageSurfaceStyle(el), children: [
18160
18163
  renderImg(el, imgStyle, imgFilter, imgAlt, imgOpacity),
18161
18164
  vecShape ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute inset-0", children: vecShape }) : null
18162
18165
  ] });
@@ -18173,7 +18176,7 @@ function renderBody(options) {
18173
18176
  textDirection: txtSE?.textDirection,
18174
18177
  textStyle: txtS,
18175
18178
  textStyleRaw: txtSE,
18176
- layoutStyle: chunk3PKYNJJG_js.getTextLayoutStyle(el),
18179
+ layoutStyle: chunkFKY33ZKL_js.getTextLayoutStyle(el),
18177
18180
  element: el,
18178
18181
  onCommit,
18179
18182
  onCancel,
@@ -18184,7 +18187,7 @@ function renderBody(options) {
18184
18187
  ] });
18185
18188
  }
18186
18189
  if (el.type === "table") {
18187
- return chunk3PKYNJJG_js.renderTableElement(el, txtS, {
18190
+ return chunkFKY33ZKL_js.renderTableElement(el, txtS, {
18188
18191
  editable: isSel,
18189
18192
  selectedCell: isSel ? tableSt : null,
18190
18193
  onSelectCell: onCellSel,
@@ -18217,7 +18220,7 @@ function renderBody(options) {
18217
18220
  );
18218
18221
  }
18219
18222
  if (el.type === "media") {
18220
- return chunk3PKYNJJG_js.renderMediaElement(el, media, {
18223
+ return chunkFKY33ZKL_js.renderMediaElement(el, media, {
18221
18224
  // Present mode autoplays every media element on the active slide,
18222
18225
  // not only ones persisted with their own `autoPlay` flag (matching
18223
18226
  // the other four bindings' unconditional `presenting`-gated
@@ -18240,7 +18243,7 @@ function renderBody(options) {
18240
18243
  onPlayStateChange: handleMediaPlayStateChange
18241
18244
  });
18242
18245
  }
18243
- if (doInk && (0, chunk3PKYNJJG_js.dist_exports.isInkElement)(el)) {
18246
+ if (doInk && (0, chunkFKY33ZKL_js.dist_exports.isInkElement)(el)) {
18244
18247
  return renderInk(el, {
18245
18248
  replay: isPresentationPassive,
18246
18249
  pressureSensitive: true
@@ -18269,27 +18272,27 @@ function renderBody(options) {
18269
18272
  }
18270
18273
  return renderGroup(el.children, pptx.getGroupChildParentFill(el));
18271
18274
  }
18272
- if (chunk3PKYNJJG_js.shouldRenderFallbackLabel(el, isTxtEl)) {
18273
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunk3PKYNJJG_js.getElementLabel(el) });
18275
+ if (chunkFKY33ZKL_js.shouldRenderFallbackLabel(el, isTxtEl)) {
18276
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkFKY33ZKL_js.getElementLabel(el) });
18274
18277
  }
18275
18278
  return renderTextElementBody(options);
18276
18279
  }
18277
18280
  function defaultTextColorForFill(fillColor) {
18278
18281
  const hex = String(fillColor ?? "").replace(/^#/u, "");
18279
18282
  if (!/^[0-9a-f]{6}$/iu.test(hex)) {
18280
- return chunk3PKYNJJG_js.DEFAULT_TEXT_COLOR;
18283
+ return chunkFKY33ZKL_js.DEFAULT_TEXT_COLOR;
18281
18284
  }
18282
18285
  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);
18283
18286
  const luminance = channels[0] * 0.2126 + channels[1] * 0.7152 + channels[2] * 0.0722;
18284
- return luminance > 0.179 ? chunk3PKYNJJG_js.DEFAULT_TEXT_COLOR : "#ffffff";
18287
+ return luminance > 0.179 ? chunkFKY33ZKL_js.DEFAULT_TEXT_COLOR : "#ffffff";
18285
18288
  }
18286
18289
  function getStaticElementVisualState(element, parentGroupFill) {
18287
- const style = (0, chunk3PKYNJJG_js.dist_exports.hasShapeProperties)(element) ? element.shapeStyle : void 0;
18288
- const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(chunk3PKYNJJG_js.buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
18289
- const fill = chunk3PKYNJJG_js.normalizeHexColor(style?.fillColor, chunk3PKYNJJG_js.DEFAULT_FILL_COLOR);
18290
+ const style = (0, chunkFKY33ZKL_js.dist_exports.hasShapeProperties)(element) ? element.shapeStyle : void 0;
18291
+ const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(chunkFKY33ZKL_js.buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
18292
+ const fill = chunkFKY33ZKL_js.normalizeHexColor(style?.fillColor, chunkFKY33ZKL_js.DEFAULT_FILL_COLOR);
18290
18293
  const strokeWidth = pptx.paintedStrokeWidth(style);
18291
- const stroke = chunk3PKYNJJG_js.normalizeHexColor(style?.strokeColor, chunk3PKYNJJG_js.DEFAULT_STROKE_COLOR);
18292
- const baseVisualStyle = chunk3PKYNJJG_js.getShapeVisualStyle(element, hasFill, fill, strokeWidth, stroke);
18294
+ const stroke = chunkFKY33ZKL_js.normalizeHexColor(style?.strokeColor, chunkFKY33ZKL_js.DEFAULT_STROKE_COLOR);
18295
+ const baseVisualStyle = chunkFKY33ZKL_js.getShapeVisualStyle(element, hasFill, fill, strokeWidth, stroke);
18293
18296
  const inheritedFill = pptx.resolveGroupChildFill(element, parentGroupFill);
18294
18297
  const visualStyle = inheritedFill ? {
18295
18298
  ...baseVisualStyle,
@@ -18299,13 +18302,13 @@ function getStaticElementVisualState(element, parentGroupFill) {
18299
18302
  backgroundSize: inheritedFill.backgroundSize,
18300
18303
  backgroundPosition: inheritedFill.backgroundPosition
18301
18304
  } : baseVisualStyle;
18302
- const textStyle = chunk3PKYNJJG_js.getTextStyleForElement(
18305
+ const textStyle = chunkFKY33ZKL_js.getTextStyleForElement(
18303
18306
  element,
18304
- element.type === "shape" && hasFill ? defaultTextColorForFill(fill) : chunk3PKYNJJG_js.DEFAULT_TEXT_COLOR
18307
+ element.type === "shape" && hasFill ? defaultTextColorForFill(fill) : chunkFKY33ZKL_js.DEFAULT_TEXT_COLOR
18305
18308
  );
18306
18309
  const isImage = element.type === "picture" || element.type === "image";
18307
- const letsTextOverflow = (0, chunk3PKYNJJG_js.dist_exports.hasTextProperties)(element) && element.textStyle?.autoFitMode === "shrink" && (element.type === "text" || element.locks?.txBox === true);
18308
- const shapeType = (0, chunk3PKYNJJG_js.dist_exports.hasShapeProperties)(element) ? element.shapeType : void 0;
18310
+ const letsTextOverflow = (0, chunkFKY33ZKL_js.dist_exports.hasTextProperties)(element) && element.textStyle?.autoFitMode === "shrink" && (element.type === "text" || element.locks?.txBox === true);
18311
+ const shapeType = (0, chunkFKY33ZKL_js.dist_exports.hasShapeProperties)(element) ? element.shapeType : void 0;
18309
18312
  const isCallout = pptx.isWedgeCalloutPresetShape(shapeType) || String(shapeType ?? "").toLowerCase().includes("callout");
18310
18313
  return {
18311
18314
  hasFill,
@@ -18326,7 +18329,7 @@ function getStaticElementInteractionState(element, hasActionHandler, exposeEleme
18326
18329
  return { action, isActionable, contractRole };
18327
18330
  }
18328
18331
  function getStaticElementWrapperClassName(element, visual, positioned, isActionable) {
18329
- const overflowClass = visual.isImage || element.type === "group" || chunk3PKYNJJG_js.isConnectorOrLineElement(element) || visual.isCallout || visual.letsTextOverflow ? "" : "overflow-hidden";
18332
+ const overflowClass = visual.isImage || element.type === "group" || chunkFKY33ZKL_js.isConnectorOrLineElement(element) || visual.isCallout || visual.letsTextOverflow ? "" : "overflow-hidden";
18330
18333
  const pointerClass = isActionable ? "pointer-events-auto cursor-pointer" : "pointer-events-none";
18331
18334
  return `${positioned ? "absolute" : "relative"} ${overflowClass} ${pointerClass}`;
18332
18335
  }
@@ -18409,7 +18412,7 @@ function StaticElementRendererImpl({
18409
18412
  top: positioned ? element.y : void 0,
18410
18413
  width: positioned ? Math.max(element.width, 1) : "100%",
18411
18414
  height: positioned ? Math.max(element.height, 1) : "100%",
18412
- transform: positioned ? chunk3PKYNJJG_js.getElementTransform(element) : void 0,
18415
+ transform: positioned ? chunkFKY33ZKL_js.getElementTransform(element) : void 0,
18413
18416
  transformOrigin: "center",
18414
18417
  zIndex,
18415
18418
  ...visualStyle,
@@ -18450,20 +18453,20 @@ function StaticElementRendererImpl({
18450
18453
  isEditing: false,
18451
18454
  editText: "",
18452
18455
  spellCheck: false,
18453
- txtSE: (0, chunk3PKYNJJG_js.dist_exports.hasTextProperties)(element) ? element.textStyle : void 0,
18456
+ txtSE: (0, chunkFKY33ZKL_js.dist_exports.hasTextProperties)(element) ? element.textStyle : void 0,
18454
18457
  txtS: textStyle,
18455
- vecShape: chunk3PKYNJJG_js.renderVectorShape(
18458
+ vecShape: chunkFKY33ZKL_js.renderVectorShape(
18456
18459
  element,
18457
18460
  isImage ? false : hasFill,
18458
18461
  fill,
18459
18462
  strokeWidth,
18460
18463
  stroke
18461
18464
  ),
18462
- imgStyle: imageAnimation ? { ...chunk3PKYNJJG_js.getImageRenderStyle(element), animation: imageAnimation } : chunk3PKYNJJG_js.getImageRenderStyle(element),
18463
- imgFilter: chunk3PKYNJJG_js.getImageEffectsFilter(element),
18464
- imgOpacity: chunk3PKYNJJG_js.getImageEffectsOpacity(element),
18465
+ imgStyle: imageAnimation ? { ...chunkFKY33ZKL_js.getImageRenderStyle(element), animation: imageAnimation } : chunkFKY33ZKL_js.getImageRenderStyle(element),
18466
+ imgFilter: chunkFKY33ZKL_js.getImageEffectsFilter(element),
18467
+ imgOpacity: chunkFKY33ZKL_js.getImageEffectsOpacity(element),
18465
18468
  imgAlt: "",
18466
- isTxtEl: chunk3PKYNJJG_js.isEditableTextElement(element),
18469
+ isTxtEl: chunkFKY33ZKL_js.isEditableTextElement(element),
18467
18470
  media: mediaDataUrls,
18468
18471
  tableSt: null,
18469
18472
  isSel: false,
@@ -18509,7 +18512,7 @@ function SlideLayer({
18509
18512
  style: {
18510
18513
  width: safeWidth,
18511
18514
  height: safeHeight,
18512
- backgroundColor: slide.backgroundColor ? chunk3PKYNJJG_js.normalizeHexColor(slide.backgroundColor, "#ffffff") : "#ffffff",
18515
+ backgroundColor: slide.backgroundColor ? chunkFKY33ZKL_js.normalizeHexColor(slide.backgroundColor, "#ffffff") : "#ffffff",
18513
18516
  backgroundImage: slide.backgroundImage ? `url(${slide.backgroundImage})` : slide.backgroundGradient ? slide.backgroundGradient : void 0,
18514
18517
  backgroundSize: slide.backgroundImage ? "cover" : void 0,
18515
18518
  backgroundPosition: slide.backgroundImage ? "center" : void 0