pptx-react-viewer 2.12.0 → 2.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/{AiChatPanel-CS4CONUO.mjs → AiChatPanel-4YS6DEIT.mjs} +4 -4
  3. package/dist/AiChatPanel-4YS6DEIT.mjs.br +0 -0
  4. package/dist/AiChatPanel-4YS6DEIT.mjs.gz +0 -0
  5. package/dist/{AiChatPanel-JIXSOZXN.js → AiChatPanel-DEI3EQFM.js} +23 -23
  6. package/dist/AiChatPanel-DEI3EQFM.js.br +0 -0
  7. package/dist/AiChatPanel-DEI3EQFM.js.gz +0 -0
  8. package/dist/{Model3DScene-RWFPSN6B.mjs → Model3DScene-JSNQCKCJ.mjs} +1 -1
  9. package/dist/Model3DScene-JSNQCKCJ.mjs.br +0 -0
  10. package/dist/Model3DScene-JSNQCKCJ.mjs.gz +0 -0
  11. package/dist/{Model3DScene-5KMJ4JL6.js → Model3DScene-X4W7GZVY.js} +2 -2
  12. package/dist/Model3DScene-X4W7GZVY.js.br +0 -0
  13. package/dist/Model3DScene-X4W7GZVY.js.gz +0 -0
  14. package/dist/{SurfaceChart3DScene-2GZQM3LN.mjs → SurfaceChart3DScene-3MSU74YH.mjs} +1 -1
  15. package/dist/{SurfaceChart3DScene-2GZQM3LN.mjs.br → SurfaceChart3DScene-3MSU74YH.mjs.br} +0 -0
  16. package/dist/SurfaceChart3DScene-3MSU74YH.mjs.gz +0 -0
  17. package/dist/{SurfaceChart3DScene-BIOKIETC.js → SurfaceChart3DScene-IZLUWT27.js} +2 -2
  18. package/dist/SurfaceChart3DScene-IZLUWT27.js.br +0 -0
  19. package/dist/SurfaceChart3DScene-IZLUWT27.js.gz +0 -0
  20. package/dist/{chunk-QGHC65C4.mjs → chunk-4TD7EINA.mjs} +1071 -375
  21. package/dist/chunk-4TD7EINA.mjs.br +0 -0
  22. package/dist/chunk-4TD7EINA.mjs.gz +0 -0
  23. package/dist/{chunk-AOED5MFM.mjs → chunk-6KRNQ2KF.mjs} +13 -12
  24. package/dist/chunk-6KRNQ2KF.mjs.br +0 -0
  25. package/dist/chunk-6KRNQ2KF.mjs.gz +0 -0
  26. package/dist/{chunk-3GNSGGY2.js → chunk-BXAK3JFM.js} +13 -0
  27. package/dist/chunk-BXAK3JFM.js.br +0 -0
  28. package/dist/chunk-BXAK3JFM.js.gz +0 -0
  29. package/dist/{chunk-PJUQQF3I.js → chunk-EFSQW6S5.js} +1091 -376
  30. package/dist/chunk-EFSQW6S5.js.br +0 -0
  31. package/dist/chunk-EFSQW6S5.js.gz +0 -0
  32. package/dist/{chunk-ZIXSSQAZ.js → chunk-G2LZT5SV.js} +3 -3
  33. package/dist/chunk-G2LZT5SV.js.br +0 -0
  34. package/dist/chunk-G2LZT5SV.js.gz +0 -0
  35. package/dist/{chunk-CEUHGUZ4.mjs → chunk-HRLF4REI.mjs} +54 -28
  36. package/dist/chunk-HRLF4REI.mjs.br +0 -0
  37. package/dist/chunk-HRLF4REI.mjs.gz +0 -0
  38. package/dist/{chunk-2VUHJNWM.js → chunk-IDW5UPXW.js} +292 -266
  39. package/dist/chunk-IDW5UPXW.js.br +0 -0
  40. package/dist/chunk-IDW5UPXW.js.gz +0 -0
  41. package/dist/{chunk-PTGTFXPU.js → chunk-RWIQHVZQ.js} +341 -340
  42. package/dist/chunk-RWIQHVZQ.js.br +0 -0
  43. package/dist/chunk-RWIQHVZQ.js.gz +0 -0
  44. package/dist/{chunk-SP7U34QM.js → chunk-SHZ3GWOD.js} +2004 -1943
  45. package/dist/chunk-SHZ3GWOD.js.br +0 -0
  46. package/dist/chunk-SHZ3GWOD.js.gz +0 -0
  47. package/dist/{chunk-ECDKYPQ2.mjs → chunk-TEXIGSA6.mjs} +13 -0
  48. package/dist/chunk-TEXIGSA6.mjs.br +0 -0
  49. package/dist/chunk-TEXIGSA6.mjs.gz +0 -0
  50. package/dist/{chunk-EJRHYYKE.mjs → chunk-WEU5EMKK.mjs} +1 -1
  51. package/dist/chunk-WEU5EMKK.mjs.br +0 -0
  52. package/dist/chunk-WEU5EMKK.mjs.gz +0 -0
  53. package/dist/{chunk-BJQSHVYH.mjs → chunk-YA7VFYTW.mjs} +271 -210
  54. package/dist/chunk-YA7VFYTW.mjs.br +0 -0
  55. package/dist/chunk-YA7VFYTW.mjs.gz +0 -0
  56. package/dist/i18n.js +4 -4
  57. package/dist/i18n.js.br +0 -0
  58. package/dist/i18n.js.gz +0 -0
  59. package/dist/i18n.mjs +1 -1
  60. package/dist/i18n.mjs.br +0 -0
  61. package/dist/i18n.mjs.gz +0 -0
  62. package/dist/index.d.ts +18 -0
  63. package/dist/index.js +36 -36
  64. package/dist/index.js.br +0 -0
  65. package/dist/index.js.gz +0 -0
  66. package/dist/index.mjs +6 -6
  67. package/dist/index.mjs.br +0 -0
  68. package/dist/index.mjs.gz +0 -0
  69. package/dist/internals.d.ts +18 -0
  70. package/dist/internals.d.ts.map +1 -1
  71. package/dist/internals.js +79 -79
  72. package/dist/internals.js.br +0 -0
  73. package/dist/internals.js.gz +0 -0
  74. package/dist/internals.mjs +4 -4
  75. package/dist/internals.mjs.br +0 -0
  76. package/dist/internals.mjs.gz +0 -0
  77. package/dist/pptx-viewer.css +1 -1
  78. package/dist/pptx-viewer.css.br +0 -0
  79. package/dist/pptx-viewer.css.gz +0 -0
  80. package/dist/viewer/index.d.ts +18 -0
  81. package/dist/viewer/index.js +22 -22
  82. package/dist/viewer/index.js.br +0 -0
  83. package/dist/viewer/index.js.gz +0 -0
  84. package/dist/viewer/index.mjs +6 -6
  85. package/dist/viewer/index.mjs.br +0 -0
  86. package/dist/viewer/index.mjs.gz +0 -0
  87. package/package.json +1 -1
  88. package/dist/AiChatPanel-CS4CONUO.mjs.br +0 -0
  89. package/dist/AiChatPanel-CS4CONUO.mjs.gz +0 -0
  90. package/dist/AiChatPanel-JIXSOZXN.js.br +0 -0
  91. package/dist/AiChatPanel-JIXSOZXN.js.gz +0 -0
  92. package/dist/Model3DScene-5KMJ4JL6.js.br +0 -0
  93. package/dist/Model3DScene-5KMJ4JL6.js.gz +0 -0
  94. package/dist/Model3DScene-RWFPSN6B.mjs.br +0 -0
  95. package/dist/Model3DScene-RWFPSN6B.mjs.gz +0 -0
  96. package/dist/SurfaceChart3DScene-2GZQM3LN.mjs.gz +0 -0
  97. package/dist/SurfaceChart3DScene-BIOKIETC.js.br +0 -0
  98. package/dist/SurfaceChart3DScene-BIOKIETC.js.gz +0 -0
  99. package/dist/chunk-2VUHJNWM.js.br +0 -0
  100. package/dist/chunk-2VUHJNWM.js.gz +0 -0
  101. package/dist/chunk-3GNSGGY2.js.br +0 -0
  102. package/dist/chunk-3GNSGGY2.js.gz +0 -0
  103. package/dist/chunk-AOED5MFM.mjs.br +0 -0
  104. package/dist/chunk-AOED5MFM.mjs.gz +0 -0
  105. package/dist/chunk-BJQSHVYH.mjs.br +0 -0
  106. package/dist/chunk-BJQSHVYH.mjs.gz +0 -0
  107. package/dist/chunk-CEUHGUZ4.mjs.br +0 -0
  108. package/dist/chunk-CEUHGUZ4.mjs.gz +0 -0
  109. package/dist/chunk-ECDKYPQ2.mjs.br +0 -0
  110. package/dist/chunk-ECDKYPQ2.mjs.gz +0 -0
  111. package/dist/chunk-EJRHYYKE.mjs.br +0 -0
  112. package/dist/chunk-EJRHYYKE.mjs.gz +0 -0
  113. package/dist/chunk-PJUQQF3I.js.br +0 -0
  114. package/dist/chunk-PJUQQF3I.js.gz +0 -0
  115. package/dist/chunk-PTGTFXPU.js.br +0 -0
  116. package/dist/chunk-PTGTFXPU.js.gz +0 -0
  117. package/dist/chunk-QGHC65C4.mjs.br +0 -0
  118. package/dist/chunk-QGHC65C4.mjs.gz +0 -0
  119. package/dist/chunk-SP7U34QM.js.br +0 -0
  120. package/dist/chunk-SP7U34QM.js.gz +0 -0
  121. package/dist/chunk-ZIXSSQAZ.js.br +0 -0
  122. package/dist/chunk-ZIXSSQAZ.js.gz +0 -0
Binary file
Binary file
@@ -1,6 +1,6 @@
1
- import { cloneHistorySnapshot, MIN_ELEMENT_SIZE, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, partitionTemplateElements, UNGROUPED_SECTION_ID, stopAllPersistentAudio, buildSaveSlides, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, executeMediaCommand, buildPdfFromImageData, buildNotesPdf, EMU_PER_PX, GRID_SIZE, DEFAULT_TEXT_FONT_SIZE } from './chunk-CEUHGUZ4.mjs';
2
- import { translationsEn } from './chunk-ECDKYPQ2.mjs';
3
- import { TOOLBAR_TABS, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, BROADCAST_THROTTLE_MS, createSyncGate, clearLocalAwareness, validateRoomId, createDepartureChannel, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, registerCollaborationTeardown, sanitizeColor, cloneTemplateElementsBySlideId, cloneSlide, clampZoomScale, zoomInScale, zoomOutScale, PresentationAnimationController, computeEntranceAnimationDelay, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, endAudienceDisplay, createPresentationKeyBuffer, acceptsPresentationInput, resolveAutoAdvanceDelayMs, hasShowSlideAfter, nextShowSlideIndex, previousShowSlideIndex, buildMorphTransitionPlan, morphOptionToMode, createCollaborationLivePatcher, publishLiveInlineText, PptxHandler, collectMediaElements, collectImagePaths, buildInitialGuides, EncryptedFileError, saveAutosaveSnapshot, isTemplateElementId, hasShapeProperties, hasTextProperties, getInlineEditorSelection, applyStyleToSelectedSegments, setPendingSelectionRestore, applyCaseTransformToSegments, transformTextCase, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, normalizeColorsForCapture, preprocessCssForCapture, downloadBlob, sanitizeDownloadFilename, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, recordProgressPercent, applyThemeToData, THEME_PRESETS, themeColorSchemesEqual, comparePresentation, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, detectTouchDevice, detectOrientation, isMobileViewport, MOBILE_BREAKPOINT, TABLET_BREAKPOINT, mayLeaveSlideShow, remapTextToSegments, guidePxToEmu, shouldLoopContinuously, applyRehearsalTimings, copyFormatFromElement, applyFormatToElement, mapEditorKey, isEditorTextInputTarget, createViewerOptionsStore, readSlidesFromYDoc, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, shouldAutoFollowBroadcaster, createTouchGestureRecognizer, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, isKeyboardOpen, openPptxFile, readBackstageRecentFile, isActionHidden, buildElementClipboardPayload, generatePackageReadme, groupElements, generateElementId, makeCloneId, alignElements, distributeElements, bringForward, sendBackward, bringToFront, sendToBack, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, mergeShapes, derivePresenceList, mapPresentationKey, lastShowSlideIndex, firstShowSlideIndex, buildPrintDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, buildThemeColorMap, reResolveSlideColors, createPresentationSessionId, resolveTransitionDurationMs, runPresentationAction, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, presenterElapsed, stepPresenterZoom, resetPresenterTimer, togglePresenterTimer, canvasToJpegData, downloadDataUrl, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, encodeGif, resolveShowSlideIndexes, groupSlidesBySection, hasCopyableFormat, createBackstagePresentation, buildFieldSubstitutionContext, cloneElementForPaste, computeScrollDelta, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, rerouteConnectorsForMovedElements, applyReroutedConnectors, SvgExporter, buildPrintHtmlDocument, deleteTableColumn, rebuildTableStructureInRawXml, insertTableColumn, deleteTableRow, insertTableRow, updateCellTextStyleInRawXml, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, isPpactionUrl, parsePpactionUrl, safeOpenUrl, ACTION_BUTTON_PRESETS, elementActionToPptxAction, buildSmartArtPresetData, computeSnapToShape, publishLiveGeometry, computeMarqueeHitIds, mergeAdditiveSelection, applyResize, snapBoxToGrid, applyMotionPathPreset } from './chunk-QGHC65C4.mjs';
1
+ import { cloneHistorySnapshot, MIN_ELEMENT_SIZE, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, partitionTemplateElements, UNGROUPED_SECTION_ID, stopAllPersistentAudio, buildSaveSlides, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, executeMediaCommand, buildPdfFromImageData, buildNotesPdf, EMU_PER_PX, GRID_SIZE, DEFAULT_TEXT_FONT_SIZE } from './chunk-HRLF4REI.mjs';
2
+ import { translationsEn } from './chunk-TEXIGSA6.mjs';
3
+ import { TOOLBAR_TABS, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, BROADCAST_THROTTLE_MS, createSyncGate, clearLocalAwareness, validateRoomId, createDepartureChannel, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, registerCollaborationTeardown, sanitizeColor, cloneTemplateElementsBySlideId, cloneSlide, clampZoomScale, zoomInScale, zoomOutScale, PresentationAnimationController, computeEntranceAnimationDelay, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, endAudienceDisplay, createPresentationKeyBuffer, acceptsPresentationInput, resolveAutoAdvanceDelayMs, hasShowSlideAfter, nextShowSlideIndex, previousShowSlideIndex, createPresenterShowGuard, buildMorphTransitionPlan, morphOptionToMode, createCollaborationLivePatcher, publishLiveInlineText, PptxHandler, collectMediaElements, collectImagePaths, buildInitialGuides, EncryptedFileError, saveAutosaveSnapshot, isTemplateElementId, hasShapeProperties, hasTextProperties, getInlineEditorSelection, applyStyleToSelectedSegments, setPendingSelectionRestore, applyCaseTransformToSegments, transformTextCase, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, normalizeColorsForCapture, preprocessCssForCapture, downloadBlob, sanitizeDownloadFilename, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, recordProgressPercent, applyThemeToData, THEME_PRESETS, themeColorSchemesEqual, comparePresentation, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, detectTouchDevice, detectOrientation, isMobileViewport, MOBILE_BREAKPOINT, TABLET_BREAKPOINT, mayLeaveSlideShow, remapTextToSegments, guidePxToEmu, shouldLoopContinuously, applyRehearsalTimings, copyFormatFromElement, applyFormatToElement, mapEditorKey, isEditorTextInputTarget, createViewerOptionsStore, readSlidesFromYDoc, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, shouldAutoFollowBroadcaster, createTouchGestureRecognizer, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, isKeyboardOpen, openPptxFile, readBackstageRecentFile, isActionHidden, buildElementClipboardPayload, generatePackageReadme, groupElements, generateElementId, makeCloneId, alignElements, distributeElements, bringForward, sendBackward, bringToFront, sendToBack, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, mergeShapes, derivePresenceList, mapPresentationKey, lastShowSlideIndex, firstShowSlideIndex, buildPrintDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, buildThemeColorMap, reResolveSlideColors, createPresentationSessionId, resolveTransitionDurationMs, runPresentationAction, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, presenterElapsed, stepPresenterZoom, resetPresenterTimer, togglePresenterTimer, canvasToJpegData, downloadDataUrl, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, encodeGif, resolveShowSlideIndexes, groupSlidesBySection, hasCopyableFormat, createBackstagePresentation, buildFieldSubstitutionContext, cloneElementForPaste, computeScrollDelta, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, rerouteConnectorsForMovedElements, applyReroutedConnectors, SvgExporter, buildPrintHtmlDocument, deleteTableColumn, rebuildTableStructureInRawXml, insertTableColumn, deleteTableRow, insertTableRow, updateCellTextStyleInRawXml, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, isPpactionUrl, parsePpactionUrl, safeOpenUrl, ACTION_BUTTON_PRESETS, elementActionToPptxAction, buildSmartArtPresetData, computeSnapToShape, publishLiveGeometry, computeMarqueeHitIds, mergeAdditiveSelection, applyResize, snapBoxToGrid, applyMotionPathPreset } from './chunk-4TD7EINA.mjs';
4
4
  import { useRef, useState, useEffect, useCallback, useMemo, useSyncExternalStore, useImperativeHandle } from 'react';
5
5
  import JSZip from 'jszip';
6
6
  import { useTranslation } from 'react-i18next';
@@ -496,7 +496,7 @@ function useEditorHistory(input) {
496
496
  const [canRedo, setCanRedo] = useState(false);
497
497
  const [undoLabel, setUndoLabel] = useState(void 0);
498
498
  const [redoLabel, setRedoLabel] = useState(void 0);
499
- const [_isDirty, setIsDirty] = useState(false);
499
+ const [editCommitNonce, setEditCommitNonce] = useState(0);
500
500
  const updateHistoryAvailability = useCallback(() => {
501
501
  setCanUndo(historyPastRef.current.length > 0);
502
502
  setCanRedo(historyFutureRef.current.length > 0);
@@ -551,7 +551,7 @@ function useEditorHistory(input) {
551
551
  }, 0);
552
552
  }, []);
553
553
  const markDirty = useCallback(() => {
554
- setIsDirty((previous) => previous ? previous : true);
554
+ setEditCommitNonce((previous) => previous + 1);
555
555
  }, []);
556
556
  const handleUndo = useCallback(() => {
557
557
  const previousSnapshot = historyPastRef.current.pop();
@@ -631,7 +631,7 @@ function useEditorHistory(input) {
631
631
  if (hasActivePointerInteraction()) {
632
632
  return;
633
633
  }
634
- const cheapHash = `${pointerCommitNonce}|${slides.length}|${activeSlideIndex}|${canvasSize.width}x${canvasSize.height}|${slides.map((s) => `${s.id}:${s.elements.length}`).join("/")}`;
634
+ const cheapHash = `${pointerCommitNonce}|${editCommitNonce}|${slides.length}|${activeSlideIndex}|${canvasSize.width}x${canvasSize.height}|${slides.map((s) => `${s.id}:${s.elements.length}`).join("/")}`;
635
635
  if (cheapHash === lastCheapHashRef.current) {
636
636
  return;
637
637
  }
@@ -663,6 +663,7 @@ function useEditorHistory(input) {
663
663
  buildHistorySnapshot,
664
664
  canvasSize.height,
665
665
  canvasSize.width,
666
+ editCommitNonce,
666
667
  error,
667
668
  hasActivePointerInteraction,
668
669
  loading,
@@ -2123,7 +2124,7 @@ function usePresentationMode(input) {
2123
2124
  const [allSlidesOpen, setAllSlidesOpen] = useState(false);
2124
2125
  const [endOfShowVisible, setEndOfShowVisible] = useState(false);
2125
2126
  const [presentationStartTime, setPresentationStartTime] = useState(null);
2126
- const switchingToPresenterRef = useRef(false);
2127
+ const showGuard = useMemo(() => createPresenterShowGuard(), []);
2127
2128
  const {
2128
2129
  presentationAnimations,
2129
2130
  presentationElementStates,
@@ -2275,7 +2276,7 @@ function usePresentationMode(input) {
2275
2276
  }, [onSetMode, setRehearsing]);
2276
2277
  const togglePresenterView = useCallback(() => {
2277
2278
  if (!presenterMode) {
2278
- switchingToPresenterRef.current = true;
2279
+ showGuard.expectAudienceBounce();
2279
2280
  try {
2280
2281
  if (document.fullscreenElement) {
2281
2282
  void document.exitFullscreen().catch(() => {
@@ -2298,7 +2299,7 @@ function usePresentationMode(input) {
2298
2299
  } catch {
2299
2300
  }
2300
2301
  }
2301
- }, [presenterMode, presentationStartTime, containerRef]);
2302
+ }, [presenterMode, presentationStartTime, containerRef, showGuard]);
2302
2303
  usePresentationKeyboard({
2303
2304
  mode,
2304
2305
  movePresentationSlide,
@@ -2362,8 +2363,7 @@ function usePresentationMode(input) {
2362
2363
  }
2363
2364
  let wasFullscreen = Boolean(document.fullscreenElement);
2364
2365
  const handleFullscreenChange = () => {
2365
- if (switchingToPresenterRef.current) {
2366
- switchingToPresenterRef.current = false;
2366
+ if (showGuard.classifyFullscreenExit() === "restore-show") {
2367
2367
  wasFullscreen = Boolean(document.fullscreenElement);
2368
2368
  return;
2369
2369
  }
@@ -2388,7 +2388,8 @@ function usePresentationMode(input) {
2388
2388
  rehearsing,
2389
2389
  recordCurrentSlideTime,
2390
2390
  presentationSlideIndex,
2391
- setShowRehearsalSummary
2391
+ setShowRehearsalSummary,
2392
+ showGuard
2392
2393
  ]);
2393
2394
  useEffect(() => {
2394
2395
  const timersRef = presentationTimersRef;
Binary file
Binary file
@@ -1406,6 +1406,18 @@ var translationsEn = {
1406
1406
  "pptx.presenter.eraseAllInk": "Erase All Ink on Slide",
1407
1407
  "pptx.presenter.slideLabel": "Slide {{current}} of {{total}}",
1408
1408
  "pptx.presenter.timerProgress": "Timer Progress",
1409
+ // Presenter console strip (see render/presenter-chrome.ts). React shipped
1410
+ // these as hard-coded English `title` attributes, which is why they arrive
1411
+ // as new keys rather than reused ones.
1412
+ "pptx.presenter.toggleTimer": "Pause or Resume Timer",
1413
+ "pptx.presenter.resetTimer": "Reset Timer",
1414
+ "pptx.presenter.zoomIn": "Zoom In",
1415
+ "pptx.presenter.zoomOut": "Zoom Out",
1416
+ "pptx.presenter.resetZoom": "Reset Zoom",
1417
+ "pptx.presenter.swapDisplays": "Swap Displays",
1418
+ "pptx.presenter.slideNavigator": "Slide Navigator",
1419
+ "pptx.presenter.closeNavigator": "Close",
1420
+ "pptx.presenter.timerTitle": "{{elapsed}} (segment {{segment}})",
1409
1421
  // Print dialog
1410
1422
  "pptx.print.allSlides": "All Slides",
1411
1423
  "pptx.print.blackAndWhite": "Black and White",
@@ -2319,6 +2331,7 @@ var translationsEn = {
2319
2331
  "pptx.editorToolbar.resetZoom": "Reset zoom",
2320
2332
  "pptx.editorToolbar.resetZoomTo100": "Reset zoom to 100%",
2321
2333
  "pptx.effects.innerShadow": "Inner Shadow",
2334
+ "pptx.element.hasAction": "Has action",
2322
2335
  "pptx.element.linkFallback": "Link",
2323
2336
  "pptx.export.export": "Export",
2324
2337
  "pptx.export.gifAnimated": "Animated GIF",
Binary file
Binary file