pptx-react-viewer 3.6.0 → 3.8.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 (164) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/{AiChatPanel-WRQGJJVD.mjs → AiChatPanel-A5DCEHTO.mjs} +4 -4
  3. package/dist/AiChatPanel-A5DCEHTO.mjs.br +0 -0
  4. package/dist/AiChatPanel-A5DCEHTO.mjs.gz +0 -0
  5. package/dist/{AiChatPanel-LEOEDIW2.js → AiChatPanel-XLQM4BQJ.js} +25 -25
  6. package/dist/AiChatPanel-XLQM4BQJ.js.br +0 -0
  7. package/dist/AiChatPanel-XLQM4BQJ.js.gz +0 -0
  8. package/dist/{Area3DChartScene-SJC2ZB6R.mjs → Area3DChartScene-5CMEMIBI.mjs} +1 -1
  9. package/dist/Area3DChartScene-5CMEMIBI.mjs.br +0 -0
  10. package/dist/Area3DChartScene-5CMEMIBI.mjs.gz +0 -0
  11. package/dist/{Area3DChartScene-3TJ2GTGI.js → Area3DChartScene-RZ3V3WOR.js} +2 -2
  12. package/dist/Area3DChartScene-RZ3V3WOR.js.br +0 -0
  13. package/dist/Area3DChartScene-RZ3V3WOR.js.gz +0 -0
  14. package/dist/{Bar3DChartScene-SPER4LQA.mjs → Bar3DChartScene-H3MYUJKV.mjs} +1 -1
  15. package/dist/Bar3DChartScene-H3MYUJKV.mjs.br +0 -0
  16. package/dist/Bar3DChartScene-H3MYUJKV.mjs.gz +0 -0
  17. package/dist/{Bar3DChartScene-2ZGOMOZO.js → Bar3DChartScene-KHCQ6TEC.js} +2 -2
  18. package/dist/Bar3DChartScene-KHCQ6TEC.js.br +0 -0
  19. package/dist/Bar3DChartScene-KHCQ6TEC.js.gz +0 -0
  20. package/dist/{Line3DChartScene-42FYFGLU.js → Line3DChartScene-QEACF3U3.js} +2 -2
  21. package/dist/Line3DChartScene-QEACF3U3.js.br +0 -0
  22. package/dist/Line3DChartScene-QEACF3U3.js.gz +0 -0
  23. package/dist/{Line3DChartScene-FH3YHPXE.mjs → Line3DChartScene-YFRPJHDX.mjs} +1 -1
  24. package/dist/Line3DChartScene-YFRPJHDX.mjs.br +0 -0
  25. package/dist/Line3DChartScene-YFRPJHDX.mjs.gz +0 -0
  26. package/dist/{Model3DScene-2BCR2YYD.mjs → Model3DScene-O24KP723.mjs} +1 -1
  27. package/dist/Model3DScene-O24KP723.mjs.br +0 -0
  28. package/dist/Model3DScene-O24KP723.mjs.gz +0 -0
  29. package/dist/{Model3DScene-EIU2GVUZ.js → Model3DScene-QQWKGJ3T.js} +2 -2
  30. package/dist/Model3DScene-QQWKGJ3T.js.br +0 -0
  31. package/dist/Model3DScene-QQWKGJ3T.js.gz +0 -0
  32. package/dist/{PieChart3DScene-QFQUJFDP.mjs → PieChart3DScene-CI6CW22C.mjs} +1 -1
  33. package/dist/PieChart3DScene-CI6CW22C.mjs.br +0 -0
  34. package/dist/PieChart3DScene-CI6CW22C.mjs.gz +0 -0
  35. package/dist/{PieChart3DScene-VQOHZPHI.js → PieChart3DScene-L3MHKQHW.js} +2 -2
  36. package/dist/PieChart3DScene-L3MHKQHW.js.br +0 -0
  37. package/dist/PieChart3DScene-L3MHKQHW.js.gz +0 -0
  38. package/dist/PowerPointViewer-Cl6jBPNw.d.ts.map +1 -1
  39. package/dist/{SurfaceChart3DScene-FTVXZN6O.js → SurfaceChart3DScene-5IER6VFW.js} +2 -2
  40. package/dist/SurfaceChart3DScene-5IER6VFW.js.br +0 -0
  41. package/dist/SurfaceChart3DScene-5IER6VFW.js.gz +0 -0
  42. package/dist/{SurfaceChart3DScene-CGXMRBCL.mjs → SurfaceChart3DScene-JUXRC3K2.mjs} +1 -1
  43. package/dist/SurfaceChart3DScene-JUXRC3K2.mjs.br +0 -0
  44. package/dist/SurfaceChart3DScene-JUXRC3K2.mjs.gz +0 -0
  45. package/dist/{audience-content-store-bR7Gs_1S.d.ts → audience-content-store-CB2WVM1K.d.ts} +12 -3
  46. package/dist/{audience-content-store-bR7Gs_1S.d.ts.map → audience-content-store-CB2WVM1K.d.ts.map} +1 -1
  47. package/dist/{chunk-NFOOONND.js → chunk-4222CHFH.js} +1944 -1299
  48. package/dist/chunk-4222CHFH.js.br +0 -0
  49. package/dist/chunk-4222CHFH.js.gz +0 -0
  50. package/dist/{chunk-ZUSYUWOV.mjs → chunk-6IMB5DNJ.mjs} +8927 -4870
  51. package/dist/chunk-6IMB5DNJ.mjs.br +0 -0
  52. package/dist/chunk-6IMB5DNJ.mjs.gz +0 -0
  53. package/dist/{chunk-ZHSBMG37.js → chunk-DE3S3UHX.js} +557 -682
  54. package/dist/chunk-DE3S3UHX.js.br +0 -0
  55. package/dist/chunk-DE3S3UHX.js.gz +0 -0
  56. package/dist/{chunk-ZWPHUPL4.js → chunk-F5NPGNMA.js} +9 -5
  57. package/dist/chunk-F5NPGNMA.js.br +0 -0
  58. package/dist/chunk-F5NPGNMA.js.gz +0 -0
  59. package/dist/{chunk-TGCSZXOG.mjs → chunk-FRZIBZTE.mjs} +57 -27
  60. package/dist/chunk-FRZIBZTE.mjs.br +0 -0
  61. package/dist/chunk-FRZIBZTE.mjs.gz +0 -0
  62. package/dist/{chunk-MZI4DG3S.js → chunk-L3ZIBQEB.js} +57 -27
  63. package/dist/chunk-L3ZIBQEB.js.br +0 -0
  64. package/dist/chunk-L3ZIBQEB.js.gz +0 -0
  65. package/dist/{chunk-FG5VQFWP.mjs → chunk-PFPKBNNZ.mjs} +761 -116
  66. package/dist/chunk-PFPKBNNZ.mjs.br +0 -0
  67. package/dist/chunk-PFPKBNNZ.mjs.gz +0 -0
  68. package/dist/{chunk-7VPDHSWF.js → chunk-QWA5YEIZ.js} +234 -241
  69. package/dist/chunk-QWA5YEIZ.js.br +0 -0
  70. package/dist/chunk-QWA5YEIZ.js.gz +0 -0
  71. package/dist/{chunk-WX7AFFBZ.mjs → chunk-RHWQKZLB.mjs} +63 -69
  72. package/dist/chunk-RHWQKZLB.mjs.br +0 -0
  73. package/dist/chunk-RHWQKZLB.mjs.gz +0 -0
  74. package/dist/{chunk-T3V5FBXJ.mjs → chunk-RNP5HP4L.mjs} +5 -2
  75. package/dist/chunk-RNP5HP4L.mjs.br +0 -0
  76. package/dist/chunk-RNP5HP4L.mjs.gz +0 -0
  77. package/dist/{chunk-AL2KLPOJ.js → chunk-SN5EUDIT.js} +8959 -4873
  78. package/dist/chunk-SN5EUDIT.js.br +0 -0
  79. package/dist/chunk-SN5EUDIT.js.gz +0 -0
  80. package/dist/{chunk-VYNICQ4O.mjs → chunk-UPJW34YG.mjs} +133 -258
  81. package/dist/chunk-UPJW34YG.mjs.br +0 -0
  82. package/dist/chunk-UPJW34YG.mjs.gz +0 -0
  83. package/dist/i18n.js +4 -4
  84. package/dist/i18n.js.br +0 -0
  85. package/dist/i18n.js.gz +0 -0
  86. package/dist/i18n.mjs +1 -1
  87. package/dist/i18n.mjs.br +0 -0
  88. package/dist/i18n.mjs.gz +0 -0
  89. package/dist/index.d.ts +595 -38
  90. package/dist/index.js +47 -47
  91. package/dist/index.js.br +0 -0
  92. package/dist/index.js.gz +0 -0
  93. package/dist/index.mjs +6 -6
  94. package/dist/index.mjs.br +0 -0
  95. package/dist/index.mjs.gz +0 -0
  96. package/dist/internals.d.ts +768 -186
  97. package/dist/internals.d.ts.map +1 -1
  98. package/dist/internals.js +79 -79
  99. package/dist/internals.js.br +0 -0
  100. package/dist/internals.js.gz +0 -0
  101. package/dist/internals.mjs +4 -4
  102. package/dist/internals.mjs.br +0 -0
  103. package/dist/internals.mjs.gz +0 -0
  104. package/dist/types-Bzdkiakq.d.ts.map +1 -1
  105. package/dist/viewer/index.d.ts +534 -38
  106. package/dist/viewer/index.js +27 -27
  107. package/dist/viewer/index.js.br +0 -0
  108. package/dist/viewer/index.js.gz +0 -0
  109. package/dist/viewer/index.mjs +6 -6
  110. package/dist/viewer/index.mjs.br +0 -0
  111. package/dist/viewer/index.mjs.gz +0 -0
  112. package/package.json +2 -2
  113. package/dist/AiChatPanel-LEOEDIW2.js.br +0 -0
  114. package/dist/AiChatPanel-LEOEDIW2.js.gz +0 -0
  115. package/dist/AiChatPanel-WRQGJJVD.mjs.br +0 -0
  116. package/dist/AiChatPanel-WRQGJJVD.mjs.gz +0 -0
  117. package/dist/Area3DChartScene-3TJ2GTGI.js.br +0 -0
  118. package/dist/Area3DChartScene-3TJ2GTGI.js.gz +0 -0
  119. package/dist/Area3DChartScene-SJC2ZB6R.mjs.br +0 -2
  120. package/dist/Area3DChartScene-SJC2ZB6R.mjs.gz +0 -0
  121. package/dist/Bar3DChartScene-2ZGOMOZO.js.br +0 -0
  122. package/dist/Bar3DChartScene-2ZGOMOZO.js.gz +0 -0
  123. package/dist/Bar3DChartScene-SPER4LQA.mjs.br +0 -0
  124. package/dist/Bar3DChartScene-SPER4LQA.mjs.gz +0 -0
  125. package/dist/Line3DChartScene-42FYFGLU.js.br +0 -0
  126. package/dist/Line3DChartScene-42FYFGLU.js.gz +0 -0
  127. package/dist/Line3DChartScene-FH3YHPXE.mjs.br +0 -2
  128. package/dist/Line3DChartScene-FH3YHPXE.mjs.gz +0 -0
  129. package/dist/Model3DScene-2BCR2YYD.mjs.br +0 -0
  130. package/dist/Model3DScene-2BCR2YYD.mjs.gz +0 -0
  131. package/dist/Model3DScene-EIU2GVUZ.js.br +0 -0
  132. package/dist/Model3DScene-EIU2GVUZ.js.gz +0 -0
  133. package/dist/PieChart3DScene-QFQUJFDP.mjs.br +0 -0
  134. package/dist/PieChart3DScene-QFQUJFDP.mjs.gz +0 -0
  135. package/dist/PieChart3DScene-VQOHZPHI.js.br +0 -0
  136. package/dist/PieChart3DScene-VQOHZPHI.js.gz +0 -0
  137. package/dist/SurfaceChart3DScene-CGXMRBCL.mjs.br +0 -0
  138. package/dist/SurfaceChart3DScene-CGXMRBCL.mjs.gz +0 -0
  139. package/dist/SurfaceChart3DScene-FTVXZN6O.js.br +0 -0
  140. package/dist/SurfaceChart3DScene-FTVXZN6O.js.gz +0 -0
  141. package/dist/chunk-7VPDHSWF.js.br +0 -0
  142. package/dist/chunk-7VPDHSWF.js.gz +0 -0
  143. package/dist/chunk-AL2KLPOJ.js.br +0 -0
  144. package/dist/chunk-AL2KLPOJ.js.gz +0 -0
  145. package/dist/chunk-FG5VQFWP.mjs.br +0 -0
  146. package/dist/chunk-FG5VQFWP.mjs.gz +0 -0
  147. package/dist/chunk-MZI4DG3S.js.br +0 -0
  148. package/dist/chunk-MZI4DG3S.js.gz +0 -0
  149. package/dist/chunk-NFOOONND.js.br +0 -0
  150. package/dist/chunk-NFOOONND.js.gz +0 -0
  151. package/dist/chunk-T3V5FBXJ.mjs.br +0 -0
  152. package/dist/chunk-T3V5FBXJ.mjs.gz +0 -0
  153. package/dist/chunk-TGCSZXOG.mjs.br +0 -0
  154. package/dist/chunk-TGCSZXOG.mjs.gz +0 -0
  155. package/dist/chunk-VYNICQ4O.mjs.br +0 -0
  156. package/dist/chunk-VYNICQ4O.mjs.gz +0 -0
  157. package/dist/chunk-WX7AFFBZ.mjs.br +0 -0
  158. package/dist/chunk-WX7AFFBZ.mjs.gz +0 -0
  159. package/dist/chunk-ZHSBMG37.js.br +0 -0
  160. package/dist/chunk-ZHSBMG37.js.gz +0 -0
  161. package/dist/chunk-ZUSYUWOV.mjs.br +0 -0
  162. package/dist/chunk-ZUSYUWOV.mjs.gz +0 -0
  163. package/dist/chunk-ZWPHUPL4.js.br +0 -0
  164. package/dist/chunk-ZWPHUPL4.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, UNGROUPED_SECTION_ID, DEFAULT_SECTION_GROUP_ID, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, buildPdfFromImageData, buildNotesPdf, GRID_SIZE, DEFAULT_TEXT_FONT_SIZE } from './chunk-WX7AFFBZ.mjs';
2
- import { DEFAULT_VIEWER_OPTIONS, TOOLBAR_TABS, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, createPresenceProjector, BROADCAST_THROTTLE_MS, createSyncGate, clearLocalAwareness, validateRoomId, createDepartureChannel, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, registerCollaborationTeardown, sanitizeColor, cloneTemplateElementsBySlideId, cloneSlide, createWheelStepBuffer, createViewerZoomStore, clampZoomScale, mapEditingWheel, cancelBuildReveal, PresentationAnimationController, resolveMediaTimeNodeElementIds, scheduleAutoAdvanceChain, playGroup, 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, firstShowSlideIndex, attachPresentationVisibilityPause, presentationEntrySlideIndex, buildMorphTransitionPlan, morphOptionToMode, buildMorphAnimationRules, findInSlides, applyFindReplacements, visibleTemplateElements, createCollaborationLivePatcher, publishLiveInlineText, PptxHandler, collectMediaElements, resolveMediaElementSource, collectImagePaths, applyImagePathPatches, resolveTableCellImageUrls, resolveTableStyleImageUrls, partitionTemplateElements, seedRecentColors, resolveAuthoredCustomShowId, buildInitialGuides, readOnlyRecommendation, compatibilityWarningToasts, EncryptedFileError, resolveAutosaveIntervalMs, shouldWriteAutosaveSnapshot, saveAutosaveSnapshot, autosaveSnapshotMark, hasTextProperties, remapTextToSegments, updateMasterViewElement, isTemplateElementId, updateElement, hasShapeProperties, getInlineEditorSelection, applyStyleToSelectedSegments, setPendingSelectionRestore, applyCaseTransformToSegments, transformTextCase, masterViewElements, replaceMasterViewElements, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, canInteractWithElement, normalizeColorsForCapture, preprocessCssForCapture, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, recordProgressPercent, downloadBlob, resolveImageResolutionScale, applyThemeToData, THEME_PRESETS, themeColorSchemesEqual, comparePresentation, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, describeFontEmbedding, isMobileViewport, resolveAuthoredSlideRange, mayLeaveSlideShow, stopAllPersistentAudio, guidePxToEmu, buildSaveSlides, embeddedFontSaveOptions, resolveSlideSizeSelection, saveDeckWithPassword, shouldProbeAutosaveRecovery, probeAutosaveRecovery, acceptAutosaveRecovery, discardAutosaveRecovery, shouldLoopContinuously, applyRehearsalTimings, copyFormatFromElement, applyFormatToElement, collectReferencedFontFamilies, resolveGoogleWebfontHref, mapSlideShowStartKey, mapEditorKey, isEditorTextInputTarget, createViewerOptionsStore, readSlidesFromYDoc, shouldRoomSlidesReplaceLoad, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, shouldAutoFollowBroadcaster, detectTouchDevice, detectOrientation, deriveViewportBreakpoints, createTouchGestureRecognizer, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, isKeyboardOpen, scopeLayoutOptionsToSlide, viewerPreferencesFromViewProperties, DEFAULT_VIEWER_PREFERENCES, viewPropertiesPatchFromPreferences, openPptxFile, readBackstageRecentFile, isActionHidden, resolveInlineEditAutoFitHeight, resolveInlineEditNormAutofitShrink, filterInteractableIds, beginShapeAdjustment, buildElementClipboardPayload, savedPresentationFileName, exportDeckJson, groupElements, generateElementId, makeCloneId, ungroupElements, alignElements, distributeElements, bringForward, sendBackward, bringToFront, sendToBack, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, mergeShapes, mapPresentationKey, lastShowSlideIndex, mapPresentationWheel, openPendingPrintWindow, computeColorFilter, filterHiddenSlideIndices, computeSlideIndices, buildPrintDocument, finishPrintWindow, buildPrintHtmlDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, buildSlideTemplateSlide, templateSchemeFromTheme, buildThemeColorMap, reResolveSlideColors, reResolveElementColors, computeEntranceAnimationDelay, createPresentationSessionId, resolveTransitionDurationMs, resolveTransitionSoundAction, runPresentationAction, safeOpenUrl, toggleStageElementMedia, resolveOleVerbTarget, openUrlInNewTab, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, resetPresenterTimer, presenterElapsed, stepPresenterZoom, togglePresenterTimer, addCommentToList, removeCommentFromList, editCommentInList, toggleCommentResolvedInList, canvasToJpegData, downloadDataUrl, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, encodeGif, computeGridSpacingPx, resolveShowSlideIndexes, groupSlidesBySection, masterViewPseudoSlide, resolveHistoryDepth, hasCopyableFormat, createBackstagePresentation, buildFieldSubstitutionContext, cloneElementForPaste, computeScrollDelta, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, rerouteConnectorsForMovedElements, applyReroutedConnectors, SvgExporter, replyToCommentInList, deleteTableColumn, rebuildTableStructureInRawXml, insertTableColumn, deleteTableRow, insertTableRow, updateCellTextStyleInRawXml, setCellText, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, isPpactionUrl, parsePpactionUrl, resolvePresentationAction, ACTION_BUTTON_PRESETS, elementActionToPptxAction, isUrlSafe, buildSmartArtPresetData, classifyMediaType, computeSnapToShape, publishLiveGeometry, getDraggedShapeAdjustments, computeMarqueeHitIds, mergeAdditiveSelection, shouldConfirmExternalHyperlink, applyResize, lockResizeAspect, snapBoxToGrid, applyMotionPathPreset } from './chunk-ZUSYUWOV.mjs';
3
- import { translationsEn } from './chunk-TGCSZXOG.mjs';
1
+ import { cloneHistorySnapshot, MIN_ELEMENT_SIZE, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, UNGROUPED_SECTION_ID, DEFAULT_SECTION_GROUP_ID, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, buildPdfFromImageData, buildNotesPdf, GRID_SIZE, DEFAULT_TEXT_FONT_SIZE } from './chunk-RHWQKZLB.mjs';
2
+ import { DEFAULT_VIEWER_OPTIONS, TOOLBAR_TABS, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, createPresenceProjector, BROADCAST_THROTTLE_MS, createSyncGate, clearLocalAwareness, validateRoomId, createDepartureChannel, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, registerCollaborationTeardown, sanitizeColor, cloneTemplateElementsBySlideId, cloneSlide, createWheelStepBuffer, createViewerZoomStore, clampZoomScale, mapEditingWheel, createActiveAnimationGroup, cancelBuildReveal, clearPlaybackTimers, PresentationAnimationController, resolveMediaTimeNodeElementIds, advanceMainSequence, playGroup, 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, firstShowSlideIndex, attachPresentationVisibilityPause, presentationEntrySlideIndex, buildMorphTransitionPlan, morphOptionToMode, buildMorphAnimationRules, findInSlides, applyFindReplacements, visibleTemplateElements, createCollaborationLivePatcher, publishLiveInlineText, PptxHandler, collectMediaElements, resolveMediaElementSource, collectImagePaths, applyImagePathPatches, resolveTableCellImageUrls, resolveTableStyleImageUrls, partitionTemplateElements, seedRecentColors, resolveAuthoredCustomShowId, buildInitialGuides, readOnlyRecommendation, compatibilityWarningToasts, EncryptedFileError, resolveAutosaveIntervalMs, shouldWriteAutosaveSnapshot, saveAutosaveSnapshot, autosaveSnapshotMark, hasTextProperties, remapTextToSegments, updateMasterViewElement, isTemplateElementId, updateElement, hasShapeProperties, getInlineEditorSelection, applyStyleToSelectedSegments, setPendingSelectionRestore, applyCaseTransformToSegments, transformTextCase, masterViewElements, replaceMasterViewElements, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, canInteractWithElement, normalizeColorsForCapture, preprocessCssForCapture, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, recordProgressPercent, downloadBlob, resolveImageResolutionScale, applyThemeToData, THEME_PRESETS, themeColorSchemesEqual, comparePresentation, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, describeFontEmbedding, isMobileViewport, resolveAuthoredSlideRange, mayLeaveSlideShow, stopAllPersistentAudio, guidePxToEmu, buildSaveSlides, buildDeckSaveOptions, resolveSlideSizeSelection, saveDeckWithPassword, shouldProbeAutosaveRecovery, probeAutosaveRecovery, acceptAutosaveRecovery, discardAutosaveRecovery, shouldLoopContinuously, applyRehearsalTimings, copyFormatFromElement, applyFormatToElement, collectReferencedFontFamilies, resolveGoogleWebfontHref, mapSlideShowStartKey, mapEditorKey, isEditorTextInputTarget, createViewerOptionsStore, readSlidesFromYDoc, shouldRoomSlidesReplaceLoad, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, shouldAutoFollowBroadcaster, detectTouchDevice, detectOrientation, deriveViewportBreakpoints, createTouchGestureRecognizer, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, isKeyboardOpen, scopeLayoutOptionsToSlide, viewerPreferencesFromViewProperties, DEFAULT_VIEWER_PREFERENCES, viewPropertiesPatchFromPreferences, openPptxFile, readBackstageRecentFile, isActionHidden, resolveInlineEditAutoFitHeight, resolveInlineEditNormAutofitShrink, filterInteractableIds, beginShapeAdjustment, buildElementClipboardPayload, savedPresentationFileName, exportDeckJson, groupElements, generateElementId, makeCloneId, ungroupElements, alignElements, distributeElements, bringForward, sendBackward, bringToFront, sendToBack, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, mergeShapes, mapPresentationKey, lastShowSlideIndex, mapPresentationWheel, openPendingPrintWindow, computeColorFilter, filterHiddenSlideIndices, computeSlideIndices, buildPrintDocument, finishPrintWindow, buildPrintHtmlDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, buildSlideTemplateSlide, templateSchemeFromTheme, buildThemeColorMap, reResolveSlideColors, reResolveElementColors, scheduleAutoAdvanceChain, computeEntranceAnimationDelay, createPresentationSessionId, resolveTransitionDurationMs, resolveTransitionSoundAction, runPresentationAction, safeOpenUrl, toggleStageElementMedia, resolveOleVerbTarget, openUrlInNewTab, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, resetPresenterTimer, presenterElapsed, stepPresenterZoom, togglePresenterTimer, addCommentToList, removeCommentFromList, editCommentInList, toggleCommentResolvedInList, canvasToJpegData, downloadDataUrl, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, encodeGif, computeGridSpacingPx, resolveShowSlideIndexes, groupSlidesBySection, masterViewPseudoSlide, resolveHistoryDepth, hasCopyableFormat, createBackstagePresentation, buildFieldSubstitutionContext, cloneElementForPaste, computeScrollDelta, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, rerouteConnectorsForMovedElements, applyReroutedConnectors, SvgExporter, replyToCommentInList, deleteTableColumn, rebuildTableStructureInRawXml, insertTableColumn, deleteTableRow, insertTableRow, updateCellTextStyleInRawXml, setCellText, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, isPpactionUrl, parsePpactionUrl, resolvePresentationAction, ACTION_BUTTON_PRESETS, elementActionToPptxAction, isUrlSafe, buildSmartArtPresetData, classifyMediaType, computeSnapToShape, publishLiveGeometry, getDraggedShapeAdjustments, computeMarqueeHitIds, mergeAdditiveSelection, shouldConfirmExternalHyperlink, applyResize, lockResizeAspect, snapBoxToGrid, applyMotionPathPreset } from './chunk-6IMB5DNJ.mjs';
3
+ import { translationsEn } from './chunk-FRZIBZTE.mjs';
4
4
  import { createContext, useRef, useState, useEffect, useCallback, useMemo, useLayoutEffect, useContext, useImperativeHandle, useSyncExternalStore } from 'react';
5
5
  import { useTranslation } from 'react-i18next';
6
6
 
@@ -968,79 +968,6 @@ function stopAnimationSound() {
968
968
  }
969
969
  }
970
970
 
971
- // src/viewer/hooks/presentation-mode/animation-helpers.ts
972
- function shouldSeekAnimationGroup(group, endAtMs, nowMs) {
973
- return group?.seqNextAction === "seek" && nowMs < endAtMs;
974
- }
975
- function finishDomAnimationsForGroup(group, root = document) {
976
- const targetIds = new Set(
977
- group.steps.filter((step) => !step.command).map((step) => step.elementId)
978
- );
979
- if (targetIds.size === 0) {
980
- return 0;
981
- }
982
- const activeAnimations = /* @__PURE__ */ new Set();
983
- const candidates = root.querySelectorAll(
984
- '[data-element-id], [data-anim-id], [data-pptx-animation-layer="background"]'
985
- );
986
- for (const element of candidates) {
987
- let animationElementId = element.dataset.animId ?? element.dataset.elementId;
988
- if (element.dataset.pptxAnimationLayer === "background") {
989
- const hostId = element.closest("[data-element-id]")?.dataset.elementId;
990
- animationElementId = hostId ? `${hostId}::pptx-bg` : void 0;
991
- }
992
- if (!animationElementId || !targetIds.has(animationElementId)) {
993
- continue;
994
- }
995
- if (typeof element.getAnimations !== "function") {
996
- continue;
997
- }
998
- for (const animation of element.getAnimations()) {
999
- activeAnimations.add(animation);
1000
- }
1001
- }
1002
- let finishedCount = 0;
1003
- for (const animation of activeAnimations) {
1004
- const iterations = animation.effect?.getTiming().iterations;
1005
- if (animation.playState === "finished" || animation.playState === "idle") {
1006
- continue;
1007
- }
1008
- if (iterations === Infinity) {
1009
- continue;
1010
- }
1011
- try {
1012
- animation.finish();
1013
- finishedCount += 1;
1014
- } catch {
1015
- }
1016
- }
1017
- return finishedCount;
1018
- }
1019
- function finishAnimationGroupSteps(group, setPresentationElementStates, completedStates) {
1020
- setPresentationElementStates((previousStates) => {
1021
- const nextStates = new Map(previousStates);
1022
- for (const step of group.steps) {
1023
- if (step.command) {
1024
- continue;
1025
- }
1026
- const currentState = nextStates.get(step.elementId) ?? {
1027
- visible: true,
1028
- cssAnimation: void 0
1029
- };
1030
- const holdsAnimatedPaint = step.holdEndState && step.colorTargets !== void 0 && step.colorTargets.length > 0;
1031
- nextStates.set(step.elementId, {
1032
- ...currentState,
1033
- visible: step.presetClass !== "exit" && !step.hideAfterEffect,
1034
- cssAnimation: step.holdEndState ? step.cssAnimation : void 0,
1035
- build: completedStates?.get(step.elementId)?.build ?? currentState.build,
1036
- animatesFill: holdsAnimatedPaint && step.colorTargets?.includes("fill") ? true : void 0,
1037
- animatesStroke: holdsAnimatedPaint && step.colorTargets?.includes("stroke") ? true : void 0
1038
- });
1039
- }
1040
- return nextStates;
1041
- });
1042
- }
1043
-
1044
971
  // src/viewer/hooks/presentation-mode/entrance-animation-timers.ts
1045
972
  function scheduleOpeningAutoPlayGroup(controller, ctx) {
1046
973
  if (!controller.hasMoreSteps()) {
@@ -1101,8 +1028,7 @@ function useAnimationPlayback(input) {
1101
1028
  const presentationTimersRef = useRef([]);
1102
1029
  const controllerRef = useRef(null);
1103
1030
  const buildRafRef = useRef(null);
1104
- const activeAnimationGroupRef = useRef(null);
1105
- const activeAnimationEndAtRef = useRef(0);
1031
+ const activeAnimationGroupRef = useRef(createActiveAnimationGroup());
1106
1032
  const seededCompletedRef = useRef(false);
1107
1033
  const mediaTimeNodeElementIdsRef = useRef(/* @__PURE__ */ new Map());
1108
1034
  const lastSeedCompletedRef = useRef(false);
@@ -1123,18 +1049,8 @@ function useAnimationPlayback(input) {
1123
1049
  };
1124
1050
  }, []);
1125
1051
  const clearPresentationTimers = useCallback(() => {
1126
- presentationTimersRef.current.forEach((timer) => {
1127
- window.clearTimeout(timer);
1128
- });
1129
- presentationTimersRef.current = [];
1130
- cancelBuildReveal(buildRafRef);
1131
- activeAnimationGroupRef.current = null;
1132
- activeAnimationEndAtRef.current = 0;
1133
- }, []);
1134
- const markAnimationGroupActive = useCallback((group) => {
1135
- activeAnimationGroupRef.current = group;
1136
- activeAnimationEndAtRef.current = performance.now() + Math.max(0, group.totalDurationMs);
1137
- }, []);
1052
+ clearPlaybackTimers(buildPlaybackContext(), activeAnimationGroupRef.current);
1053
+ }, [buildPlaybackContext]);
1138
1054
  const resetSlideTimeline = useCallback(
1139
1055
  (slideIndex) => {
1140
1056
  cancelBuildReveal(buildRafRef);
@@ -1164,30 +1080,12 @@ function useAnimationPlayback(input) {
1164
1080
  if (!animationsEnabled) {
1165
1081
  return false;
1166
1082
  }
1167
- const controller = controllerRef.current;
1168
- const activeGroup = activeAnimationGroupRef.current;
1169
- if (controller && controller.hasMoreSteps() && shouldSeekAnimationGroup(activeGroup, activeAnimationEndAtRef.current, performance.now())) {
1170
- finishDomAnimationsForGroup(activeGroup);
1171
- const buildIds = PresentationAnimationController.collectBuildStepIds(activeGroup);
1172
- const completedStates = controller.computeStatesFor(buildIds);
1173
- clearPresentationTimers();
1174
- finishAnimationGroupSteps(activeGroup, setPresentationElementStates, completedStates);
1175
- scheduleAutoAdvanceChain(controller, buildPlaybackContext());
1176
- return true;
1177
- }
1178
- if (!controller || !controller.hasMoreSteps()) {
1179
- return false;
1180
- }
1181
- const group = controller.advance();
1182
- if (!group) {
1183
- return false;
1184
- }
1185
- const ctx = buildPlaybackContext();
1186
- playGroup(controller, group, ctx);
1187
- markAnimationGroupActive(group);
1188
- scheduleAutoAdvanceChain(controller, ctx);
1189
- return true;
1190
- }, [animationsEnabled, buildPlaybackContext, clearPresentationTimers, markAnimationGroupActive]);
1083
+ return advanceMainSequence(
1084
+ controllerRef.current,
1085
+ buildPlaybackContext(),
1086
+ activeAnimationGroupRef.current
1087
+ );
1088
+ }, [animationsEnabled, buildPlaybackContext]);
1191
1089
  const handleInteractiveShapeClick = useCallback(
1192
1090
  (shapeId) => {
1193
1091
  const controller = controllerRef.current;
@@ -3747,6 +3645,8 @@ function useViewerCoreState(_input) {
3747
3645
  const [recentColors, setRecentColors] = useState([]);
3748
3646
  const [theme, setTheme] = useState();
3749
3647
  const [tableStyleMap, setTableStyleMap] = useState();
3648
+ const [tableStylesDefaultId, setTableStylesDefaultId] = useState();
3649
+ const [tableStylesToDelete, setTableStylesToDelete] = useState([]);
3750
3650
  const [themeOptions, setThemeOptions] = useState([]);
3751
3651
  const [customShows, setCustomShows] = useState([]);
3752
3652
  const [activeCustomShowId, setActiveCustomShowId] = useState(null);
@@ -3846,6 +3746,10 @@ function useViewerCoreState(_input) {
3846
3746
  setTheme,
3847
3747
  tableStyleMap,
3848
3748
  setTableStyleMap,
3749
+ tableStylesDefaultId,
3750
+ setTableStylesDefaultId,
3751
+ tableStylesToDelete,
3752
+ setTableStylesToDelete,
3849
3753
  themeOptions,
3850
3754
  setThemeOptions,
3851
3755
  customShows,
@@ -4030,6 +3934,8 @@ function useLoadContent({
4030
3934
  setRecentColors,
4031
3935
  setTheme,
4032
3936
  setTableStyleMap,
3937
+ setTableStylesDefaultId,
3938
+ setTableStylesToDelete,
4033
3939
  setThemeOptions,
4034
3940
  setCustomShows,
4035
3941
  setActiveCustomShowId,
@@ -4164,6 +4070,8 @@ function useLoadContent({
4164
4070
  setRecentColors(seedRecentColors({ mruColors: parsed.mruColors }));
4165
4071
  setTheme(parsed.theme);
4166
4072
  setTableStyleMap(nextTableStyleMap);
4073
+ setTableStylesDefaultId(parsed.tableStylesDefaultId);
4074
+ setTableStylesToDelete([]);
4167
4075
  setThemeOptions(parsed.themeOptions ?? []);
4168
4076
  setCustomShows(parsed.customShows ?? []);
4169
4077
  setActiveCustomShowId(
@@ -7008,7 +6916,7 @@ function useExportSaveAs(input) {
7008
6916
  slides,
7009
6917
  templateElementsBySlideId,
7010
6918
  filePath,
7011
- handlerRef,
6919
+ serializeSlides,
7012
6920
  headerFooter,
7013
6921
  presentationProperties,
7014
6922
  customShows,
@@ -7017,24 +6925,19 @@ function useExportSaveAs(input) {
7017
6925
  appProperties,
7018
6926
  customProperties,
7019
6927
  tagCollections,
7020
- slideMasters,
7021
6928
  notesMaster,
7022
6929
  handoutMaster,
7023
- guides,
7024
- activeSlideIndexForGuides,
7025
6930
  theme,
7026
6931
  canvasSize,
7027
- slideSizeEmu,
7028
- password
6932
+ slideSizeEmu
7029
6933
  } = input;
7030
6934
  const handleSaveAsFormat = async (format) => {
7031
- const handler = handlerRef.current;
7032
- if (!handler) {
7033
- return;
7034
- }
7035
6935
  const downloadName = savedPresentationFileName(filePath, format);
7036
6936
  try {
7037
- const data = await buildSaveAsData(handler, format);
6937
+ const data = await serializeSlides(format);
6938
+ if (!data) {
6939
+ return;
6940
+ }
7038
6941
  const blob = new Blob([data], {
7039
6942
  type: "application/vnd.openxmlformats-officedocument.presentationml.presentation"
7040
6943
  });
@@ -7043,41 +6946,6 @@ function useExportSaveAs(input) {
7043
6946
  console.error(`[PowerPointViewer] Save as .${format} failed:`, err);
7044
6947
  }
7045
6948
  };
7046
- const buildSaveAsData = async (handler, format) => {
7047
- const slidesWithGuides = slides.map((slide, idx) => {
7048
- if (idx !== activeSlideIndexForGuides) {
7049
- return slide;
7050
- }
7051
- const pptxGuides = guides.map((g) => ({
7052
- id: g.id,
7053
- orientation: g.axis === "h" ? "horz" : "vert",
7054
- positionEmu: guidePxToEmu(g.position)
7055
- }));
7056
- return {
7057
- ...slide,
7058
- guides: pptxGuides.length > 0 ? pptxGuides : void 0
7059
- };
7060
- });
7061
- const slidesToSave = buildSaveSlides(slidesWithGuides, templateElementsBySlideId);
7062
- const saveOptions = {
7063
- // Save As shares Save's slide-size decision; leaving it out here is how
7064
- // a preset picked in the inspector reached one save path and not the other.
7065
- slideSize: resolveSlideSizeSelection({ current: slideSizeEmu, canvas: canvasSize }).size,
7066
- headerFooter,
7067
- presentationProperties,
7068
- customShows: customShows.length > 0 ? customShows : void 0,
7069
- sections: sections.length > 0 ? sections : void 0,
7070
- coreProperties: coreProperties ?? void 0,
7071
- appProperties: appProperties ?? void 0,
7072
- customProperties: customProperties.length > 0 ? customProperties : void 0,
7073
- tags: tagCollections.length > 0 ? tagCollections : void 0,
7074
- slideMasters,
7075
- notesMaster,
7076
- handoutMaster,
7077
- outputFormat: format
7078
- };
7079
- return saveDeckWithPassword(handler, slidesToSave, saveOptions, password);
7080
- };
7081
6949
  const handleExportJson = () => {
7082
6950
  const sourceName = filePath ? filePath.replace(/\\/gu, "/").split("/").pop() : void 0;
7083
6951
  const slideSize = resolveSlideSizeSelection({ current: slideSizeEmu, canvas: canvasSize }).size;
@@ -7093,8 +6961,8 @@ function useExportSaveAs(input) {
7093
6961
  presentationProperties,
7094
6962
  customShows: customShows.length > 0 ? customShows : void 0,
7095
6963
  sections: sections.length > 0 ? sections : void 0,
7096
- coreProperties: coreProperties ?? void 0,
7097
- appProperties: appProperties ?? void 0,
6964
+ coreProperties,
6965
+ appProperties,
7098
6966
  customProperties: customProperties.length > 0 ? customProperties : void 0,
7099
6967
  tags: tagCollections.length > 0 ? tagCollections : void 0,
7100
6968
  notesMaster,
@@ -7459,7 +7327,7 @@ function useExportHandlers(input) {
7459
7327
  filePath,
7460
7328
  canvasStageRef,
7461
7329
  setActiveSlideIndex,
7462
- handlerRef,
7330
+ serializeSlides,
7463
7331
  headerFooter,
7464
7332
  presentationProperties,
7465
7333
  customShows,
@@ -7468,15 +7336,11 @@ function useExportHandlers(input) {
7468
7336
  appProperties,
7469
7337
  customProperties,
7470
7338
  tagCollections,
7471
- slideMasters,
7472
7339
  notesMaster,
7473
7340
  handoutMaster,
7474
- guides,
7475
- activeSlideIndexForGuides,
7476
7341
  theme,
7477
7342
  canvasSize,
7478
7343
  slideSizeEmu,
7479
- password,
7480
7344
  imageExportScale
7481
7345
  } = input;
7482
7346
  const [exportModalOpen, setExportModalOpen] = useState(false);
@@ -7494,7 +7358,7 @@ function useExportHandlers(input) {
7494
7358
  slides,
7495
7359
  templateElementsBySlideId,
7496
7360
  filePath,
7497
- handlerRef,
7361
+ serializeSlides,
7498
7362
  headerFooter,
7499
7363
  presentationProperties,
7500
7364
  customShows,
@@ -7503,15 +7367,11 @@ function useExportHandlers(input) {
7503
7367
  appProperties,
7504
7368
  customProperties,
7505
7369
  tagCollections,
7506
- slideMasters,
7507
7370
  notesMaster,
7508
7371
  handoutMaster,
7509
- guides,
7510
- activeSlideIndexForGuides,
7511
7372
  theme,
7512
7373
  canvasSize,
7513
- slideSizeEmu,
7514
- password
7374
+ slideSizeEmu
7515
7375
  });
7516
7376
  const handleExportPng = useCallback(async () => {
7517
7377
  const stageEl = canvasStageRef.current;
@@ -8750,6 +8610,9 @@ function useSerialize(input) {
8750
8610
  headerFooter,
8751
8611
  presentationProperties,
8752
8612
  viewProperties,
8613
+ tableStyleMap,
8614
+ tableStylesDefaultId,
8615
+ tableStylesToDelete = [],
8753
8616
  customShows,
8754
8617
  sections,
8755
8618
  coreProperties,
@@ -8766,90 +8629,100 @@ function useSerialize(input) {
8766
8629
  embedFonts = true,
8767
8630
  purpose
8768
8631
  } = input;
8769
- return useCallback(async () => {
8770
- const handler = handlerRef.current;
8771
- if (!handler) {
8772
- return null;
8773
- }
8774
- const pendingEditId = inlineEditingElementIdRef.current;
8775
- const pendingEditText = inlineEditingTextRef.current;
8776
- const slidesWithGuides = slides.map((slide, idx) => {
8777
- let processedSlide = slide;
8778
- if (pendingEditId) {
8779
- const updatedElements = slide.elements.map((el) => {
8780
- if (el.id !== pendingEditId || !hasTextProperties(el)) {
8781
- return el;
8632
+ return useCallback(
8633
+ async (format) => {
8634
+ const handler = handlerRef.current;
8635
+ if (!handler) {
8636
+ return null;
8637
+ }
8638
+ const pendingEditId = inlineEditingElementIdRef.current;
8639
+ const pendingEditText = inlineEditingTextRef.current;
8640
+ const slidesWithGuides = slides.map((slide, idx) => {
8641
+ let processedSlide = slide;
8642
+ if (pendingEditId) {
8643
+ const updatedElements = slide.elements.map((el) => {
8644
+ if (el.id !== pendingEditId || !hasTextProperties(el)) {
8645
+ return el;
8646
+ }
8647
+ return {
8648
+ ...el,
8649
+ text: pendingEditText,
8650
+ textSegments: remapTextToSegments(pendingEditText, el.textSegments, el.textStyle)
8651
+ };
8652
+ });
8653
+ if (updatedElements.some((el, i) => el !== slide.elements[i])) {
8654
+ processedSlide = { ...slide, elements: updatedElements };
8782
8655
  }
8783
- return {
8784
- ...el,
8785
- text: pendingEditText,
8786
- textSegments: remapTextToSegments(pendingEditText, el.textSegments, el.textStyle)
8787
- };
8788
- });
8789
- if (updatedElements.some((el, i) => el !== slide.elements[i])) {
8790
- processedSlide = { ...slide, elements: updatedElements };
8791
8656
  }
8792
- }
8793
- if (idx !== activeSlideIndex) {
8794
- return processedSlide;
8795
- }
8796
- const pptxGuides = guides.map((g) => ({
8797
- id: g.id,
8798
- orientation: g.axis === "h" ? "horz" : "vert",
8799
- positionEmu: guidePxToEmu(g.position)
8800
- }));
8801
- return {
8802
- ...processedSlide,
8803
- guides: pptxGuides.length > 0 ? pptxGuides : void 0
8804
- };
8805
- });
8806
- const slidesToSave = buildSaveSlides(slidesWithGuides, templateElementsBySlideId);
8807
- const saveOptions = {
8808
- // Without this the Slide Size card edited a viewer-only pixel value and
8809
- // the saved `p:sldSz` never moved: passing `slideSize` is the only way a
8810
- // slide-size edit reaches the file.
8811
- slideSize: resolveSlideSizeSelection({ current: slideSizeEmu, canvas: canvasSize }).size,
8657
+ if (idx !== activeSlideIndex) {
8658
+ return processedSlide;
8659
+ }
8660
+ const pptxGuides = guides.map((g) => ({
8661
+ id: g.id,
8662
+ orientation: g.axis === "h" ? "horz" : "vert",
8663
+ positionEmu: guidePxToEmu(g.position)
8664
+ }));
8665
+ return {
8666
+ ...processedSlide,
8667
+ guides: pptxGuides.length > 0 ? pptxGuides : void 0
8668
+ };
8669
+ });
8670
+ const slidesToSave = buildSaveSlides(slidesWithGuides, templateElementsBySlideId);
8671
+ const saveOptions = buildDeckSaveOptions({
8672
+ // Without this the Slide Size card edited a viewer-only pixel value and
8673
+ // the saved `p:sldSz` never moved: passing `slideSize` is the only way a
8674
+ // slide-size edit reaches the file.
8675
+ slideSize: resolveSlideSizeSelection({ current: slideSizeEmu, canvas: canvasSize }).size,
8676
+ headerFooter,
8677
+ presentationProperties,
8678
+ viewProperties,
8679
+ customShows,
8680
+ sections,
8681
+ coreProperties,
8682
+ appProperties,
8683
+ customProperties,
8684
+ tagCollections,
8685
+ slideMasters,
8686
+ notesMaster,
8687
+ handoutMaster,
8688
+ tableStyleMap,
8689
+ tableStylesDefaultId,
8690
+ tableStylesToDelete,
8691
+ embedFonts,
8692
+ outputFormat: format
8693
+ });
8694
+ return saveDeckWithPassword(handler, slidesToSave, saveOptions, { password, purpose });
8695
+ },
8696
+ [
8697
+ slides,
8698
+ templateElementsBySlideId,
8699
+ canvasSize,
8700
+ slideSizeEmu,
8812
8701
  headerFooter,
8813
8702
  presentationProperties,
8814
8703
  viewProperties,
8815
- customShows: customShows.length > 0 ? customShows : void 0,
8816
- sections: sections.length > 0 ? sections : void 0,
8704
+ tableStyleMap,
8705
+ tableStylesDefaultId,
8706
+ tableStylesToDelete,
8707
+ customShows,
8708
+ sections,
8817
8709
  coreProperties,
8818
8710
  appProperties,
8819
- customProperties: customProperties.length > 0 ? customProperties : void 0,
8820
- tags: tagCollections.length > 0 ? tagCollections : void 0,
8711
+ customProperties,
8712
+ tagCollections,
8821
8713
  slideMasters,
8822
8714
  notesMaster,
8823
8715
  handoutMaster,
8824
- ...embeddedFontSaveOptions(embedFonts)
8825
- };
8826
- return saveDeckWithPassword(handler, slidesToSave, saveOptions, { password, purpose });
8827
- }, [
8828
- slides,
8829
- templateElementsBySlideId,
8830
- canvasSize,
8831
- slideSizeEmu,
8832
- headerFooter,
8833
- presentationProperties,
8834
- viewProperties,
8835
- customShows,
8836
- sections,
8837
- coreProperties,
8838
- appProperties,
8839
- customProperties,
8840
- tagCollections,
8841
- slideMasters,
8842
- notesMaster,
8843
- handoutMaster,
8844
- guides,
8845
- activeSlideIndex,
8846
- handlerRef,
8847
- inlineEditingElementIdRef,
8848
- inlineEditingTextRef,
8849
- password,
8850
- embedFonts,
8851
- purpose
8852
- ]);
8716
+ guides,
8717
+ activeSlideIndex,
8718
+ handlerRef,
8719
+ inlineEditingElementIdRef,
8720
+ inlineEditingTextRef,
8721
+ password,
8722
+ embedFonts,
8723
+ purpose
8724
+ ]
8725
+ );
8853
8726
  }
8854
8727
  function useRecoveryDetection(input) {
8855
8728
  const { filePath, loading, error, slideCount, autosaveAllowed = true } = input;
@@ -9296,10 +9169,10 @@ function useIOHandlers(input) {
9296
9169
  ops,
9297
9170
  zoom,
9298
9171
  handlerRef,
9172
+ serializeSlides,
9299
9173
  serializeForRecovery,
9300
9174
  setContent,
9301
9175
  onContentChange,
9302
- password,
9303
9176
  imageExportScale
9304
9177
  } = input;
9305
9178
  const exportHandlers = useExportHandlers({
@@ -9310,24 +9183,20 @@ function useIOHandlers(input) {
9310
9183
  filePath,
9311
9184
  canvasStageRef: zoom.canvasStageRef,
9312
9185
  setActiveSlideIndex: state.setActiveSlideIndex,
9313
- handlerRef,
9186
+ serializeSlides,
9314
9187
  headerFooter: state.headerFooter,
9315
9188
  presentationProperties: state.presentationProperties,
9316
9189
  customShows: state.customShows,
9317
9190
  sections: state.sections,
9318
- coreProperties: state.coreProperties ?? null,
9319
- appProperties: state.appProperties ?? null,
9191
+ coreProperties: state.coreProperties,
9192
+ appProperties: state.appProperties,
9320
9193
  customProperties: state.customProperties,
9321
9194
  tagCollections: state.tagCollections,
9322
- slideMasters: state.slideMasters,
9323
9195
  notesMaster: state.notesMaster,
9324
9196
  handoutMaster: state.handoutMaster,
9325
- guides: state.guides,
9326
- activeSlideIndexForGuides: state.activeSlideIndex,
9327
9197
  theme: state.theme,
9328
9198
  canvasSize,
9329
9199
  slideSizeEmu: state.slideSizeEmu,
9330
- password,
9331
9200
  imageExportScale
9332
9201
  });
9333
9202
  const printHandlers = usePrintHandlers({
@@ -9526,6 +9395,8 @@ function useContentLifecycle(input) {
9526
9395
  setRecentColors: state.setRecentColors,
9527
9396
  setTheme: state.setTheme,
9528
9397
  setTableStyleMap: state.setTableStyleMap,
9398
+ setTableStylesDefaultId: state.setTableStylesDefaultId,
9399
+ setTableStylesToDelete: state.setTableStylesToDelete,
9529
9400
  setThemeOptions: state.setThemeOptions,
9530
9401
  setCustomShows: state.setCustomShows,
9531
9402
  setActiveCustomShowId: state.setActiveCustomShowId,
@@ -9568,6 +9439,9 @@ function useContentLifecycle(input) {
9568
9439
  headerFooter: state.headerFooter,
9569
9440
  presentationProperties: state.presentationProperties,
9570
9441
  viewProperties: state.viewProperties,
9442
+ tableStyleMap: state.tableStyleMap,
9443
+ tableStylesDefaultId: state.tableStylesDefaultId,
9444
+ tableStylesToDelete: state.tableStylesToDelete,
9571
9445
  customShows: state.customShows,
9572
9446
  sections: state.sections,
9573
9447
  coreProperties: state.coreProperties,
@@ -9901,10 +9775,10 @@ function useViewerIntegration(input) {
9901
9775
  ops: editorOps.ops,
9902
9776
  zoom,
9903
9777
  handlerRef,
9778
+ serializeSlides,
9904
9779
  serializeForRecovery,
9905
9780
  setContent,
9906
9781
  onContentChange,
9907
- password: dialogs.presentationPassword ?? void 0,
9908
9782
  imageExportScale
9909
9783
  });
9910
9784
  const {
@@ -10255,6 +10129,7 @@ function useYjsDocumentSync({
10255
10129
  isSynced = true,
10256
10130
  config,
10257
10131
  getSourceBytes,
10132
+ getSaveOptions,
10258
10133
  loadVersion = 0,
10259
10134
  loadOrigin = "user"
10260
10135
  }) {
@@ -10301,12 +10176,12 @@ function useYjsDocumentSync({
10301
10176
  doc
10302
10177
  );
10303
10178
  const slidesToSave = buildSaveSlides(currentSlides, templateElementsBySlideId);
10304
- const bytes = await handler.save(slidesToSave);
10179
+ const bytes = await handler.save(slidesToSave, getSaveOptions?.());
10305
10180
  config.onWriteBack(bytes);
10306
10181
  } catch {
10307
10182
  }
10308
10183
  }, debounceMs);
10309
- }, [doc, config, getSourceBytes, templateElementsBySlideId]);
10184
+ }, [doc, config, getSourceBytes, getSaveOptions, templateElementsBySlideId]);
10310
10185
  useEffect(() => {
10311
10186
  if (loadVersion === lastLoadVersionRef.current) {
10312
10187
  return;
Binary file
Binary file
package/dist/i18n.js CHANGED
@@ -1,19 +1,19 @@
1
1
  'use strict';
2
2
 
3
- var chunkMZI4DG3S_js = require('./chunk-MZI4DG3S.js');
3
+ var chunkL3ZIBQEB_js = require('./chunk-L3ZIBQEB.js');
4
4
  require('./chunk-4VNS5WPM.js');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "LOCALE_CATALOG", {
9
9
  enumerable: true,
10
- get: function () { return chunkMZI4DG3S_js.LOCALE_CATALOG; }
10
+ get: function () { return chunkL3ZIBQEB_js.LOCALE_CATALOG; }
11
11
  });
12
12
  Object.defineProperty(exports, "keyToLabel", {
13
13
  enumerable: true,
14
- get: function () { return chunkMZI4DG3S_js.keyToLabel; }
14
+ get: function () { return chunkL3ZIBQEB_js.keyToLabel; }
15
15
  });
16
16
  Object.defineProperty(exports, "translationsEn", {
17
17
  enumerable: true,
18
- get: function () { return chunkMZI4DG3S_js.translationsEn; }
18
+ get: function () { return chunkL3ZIBQEB_js.translationsEn; }
19
19
  });
package/dist/i18n.js.br CHANGED
Binary file
package/dist/i18n.js.gz CHANGED
Binary file
package/dist/i18n.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export { LOCALE_CATALOG, keyToLabel, translationsEn } from './chunk-TGCSZXOG.mjs';
1
+ export { LOCALE_CATALOG, keyToLabel, translationsEn } from './chunk-FRZIBZTE.mjs';
2
2
  import './chunk-XGB3TDIC.mjs';