pptx-react-viewer 3.16.7 → 3.17.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 (169) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/README.md +25 -3
  3. package/dist/{AiChatPanel-N25STHYW.js → AiChatPanel-GYH43XWW.js} +25 -25
  4. package/dist/AiChatPanel-GYH43XWW.js.br +0 -0
  5. package/dist/AiChatPanel-GYH43XWW.js.gz +0 -0
  6. package/dist/{AiChatPanel-GLDW5OK4.mjs → AiChatPanel-SINEEZBW.mjs} +4 -4
  7. package/dist/AiChatPanel-SINEEZBW.mjs.br +0 -0
  8. package/dist/AiChatPanel-SINEEZBW.mjs.gz +0 -0
  9. package/dist/{Area3DChartScene-5POI5LF7.js → Area3DChartScene-D7GSJGPQ.js} +2 -2
  10. package/dist/Area3DChartScene-D7GSJGPQ.js.br +0 -0
  11. package/dist/Area3DChartScene-D7GSJGPQ.js.gz +0 -0
  12. package/dist/{Area3DChartScene-FCHO4SK6.mjs → Area3DChartScene-X5SM67PZ.mjs} +1 -1
  13. package/dist/Area3DChartScene-X5SM67PZ.mjs.br +0 -0
  14. package/dist/Area3DChartScene-X5SM67PZ.mjs.gz +0 -0
  15. package/dist/{Bar3DChartScene-M3LLHXAL.mjs → Bar3DChartScene-HWIFFGI3.mjs} +1 -1
  16. package/dist/Bar3DChartScene-HWIFFGI3.mjs.br +0 -0
  17. package/dist/Bar3DChartScene-HWIFFGI3.mjs.gz +0 -0
  18. package/dist/{Bar3DChartScene-5CY5GRV5.js → Bar3DChartScene-M72WQW5Y.js} +2 -2
  19. package/dist/Bar3DChartScene-M72WQW5Y.js.br +0 -0
  20. package/dist/Bar3DChartScene-M72WQW5Y.js.gz +0 -0
  21. package/dist/{Line3DChartScene-77TZRLJY.mjs → Line3DChartScene-7MPZWVF3.mjs} +1 -1
  22. package/dist/Line3DChartScene-7MPZWVF3.mjs.br +0 -0
  23. package/dist/Line3DChartScene-7MPZWVF3.mjs.gz +0 -0
  24. package/dist/{Line3DChartScene-3TP7OUIP.js → Line3DChartScene-YOZEEQZ3.js} +2 -2
  25. package/dist/Line3DChartScene-YOZEEQZ3.js.br +0 -0
  26. package/dist/Line3DChartScene-YOZEEQZ3.js.gz +0 -0
  27. package/dist/{Model3DScene-QINKUHM2.mjs → Model3DScene-57LVY5QW.mjs} +1 -1
  28. package/dist/Model3DScene-57LVY5QW.mjs.br +0 -0
  29. package/dist/Model3DScene-57LVY5QW.mjs.gz +0 -0
  30. package/dist/{Model3DScene-CBETCFMI.js → Model3DScene-5IJSNGDZ.js} +2 -2
  31. package/dist/Model3DScene-5IJSNGDZ.js.br +0 -0
  32. package/dist/Model3DScene-5IJSNGDZ.js.gz +0 -0
  33. package/dist/{PieChart3DScene-NFXFVG7R.js → PieChart3DScene-UBI6X66Q.js} +2 -2
  34. package/dist/PieChart3DScene-UBI6X66Q.js.br +0 -0
  35. package/dist/PieChart3DScene-UBI6X66Q.js.gz +0 -0
  36. package/dist/{PieChart3DScene-H2DJSHW7.mjs → PieChart3DScene-WD5B6NP3.mjs} +1 -1
  37. package/dist/PieChart3DScene-WD5B6NP3.mjs.br +0 -0
  38. package/dist/PieChart3DScene-WD5B6NP3.mjs.gz +0 -0
  39. package/dist/{PowerPointViewer-Cl6jBPNw.d.ts → PowerPointViewer-Cde_wzd0.d.ts} +2 -2
  40. package/dist/{PowerPointViewer-Cl6jBPNw.d.ts.map → PowerPointViewer-Cde_wzd0.d.ts.map} +1 -1
  41. package/dist/{SurfaceChart3DScene-2IN5YKKE.js → SurfaceChart3DScene-JGNPYQ32.js} +2 -2
  42. package/dist/SurfaceChart3DScene-JGNPYQ32.js.br +0 -0
  43. package/dist/SurfaceChart3DScene-JGNPYQ32.js.gz +0 -0
  44. package/dist/{SurfaceChart3DScene-4AGI4O3L.mjs → SurfaceChart3DScene-JZGU6BBD.mjs} +1 -1
  45. package/dist/SurfaceChart3DScene-JZGU6BBD.mjs.br +0 -0
  46. package/dist/SurfaceChart3DScene-JZGU6BBD.mjs.gz +0 -0
  47. package/dist/{audience-content-store-CB2WVM1K.d.ts → audience-content-store-A8Km8rBo.d.ts} +2 -2
  48. package/dist/{audience-content-store-CB2WVM1K.d.ts.map → audience-content-store-A8Km8rBo.d.ts.map} +1 -1
  49. package/dist/{chunk-3FVOKV4E.js → chunk-4SPZ5IZN.js} +1110 -470
  50. package/dist/chunk-4SPZ5IZN.js.br +0 -0
  51. package/dist/chunk-4SPZ5IZN.js.gz +0 -0
  52. package/dist/{chunk-3AJ54EAB.js → chunk-64FUV37N.js} +9 -0
  53. package/dist/chunk-64FUV37N.js.br +0 -0
  54. package/dist/{chunk-3AJ54EAB.js.gz → chunk-64FUV37N.js.gz} +0 -0
  55. package/dist/{chunk-4NSDMKFE.js → chunk-7FBKS7OS.js} +178 -178
  56. package/dist/chunk-7FBKS7OS.js.br +0 -0
  57. package/dist/chunk-7FBKS7OS.js.gz +0 -0
  58. package/dist/{chunk-7ELFYC6K.mjs → chunk-7YJBRPCT.mjs} +9 -5
  59. package/dist/chunk-7YJBRPCT.mjs.br +0 -0
  60. package/dist/chunk-7YJBRPCT.mjs.gz +0 -0
  61. package/dist/{chunk-4Q6VIX6M.js → chunk-E55VEC37.js} +557 -504
  62. package/dist/chunk-E55VEC37.js.br +0 -0
  63. package/dist/chunk-E55VEC37.js.gz +0 -0
  64. package/dist/{chunk-SQNEE6AM.js → chunk-IRG7SIUX.js} +1347 -1337
  65. package/dist/chunk-IRG7SIUX.js.br +0 -0
  66. package/dist/chunk-IRG7SIUX.js.gz +0 -0
  67. package/dist/{chunk-I5YSAIL5.mjs → chunk-IXKAIIA2.mjs} +63 -53
  68. package/dist/chunk-IXKAIIA2.mjs.br +0 -0
  69. package/dist/chunk-IXKAIIA2.mjs.gz +0 -0
  70. package/dist/{chunk-TYVSLRC7.js → chunk-KVXB22D3.js} +13 -9
  71. package/dist/chunk-KVXB22D3.js.br +0 -0
  72. package/dist/{chunk-TYVSLRC7.js.gz → chunk-KVXB22D3.js.gz} +0 -0
  73. package/dist/{chunk-HMX3MQR7.mjs → chunk-LAU34UMB.mjs} +9 -1
  74. package/dist/chunk-LAU34UMB.mjs.br +0 -0
  75. package/dist/{chunk-HMX3MQR7.mjs.gz → chunk-LAU34UMB.mjs.gz} +0 -0
  76. package/dist/{chunk-3PUFHKXW.mjs → chunk-OAKDJYYT.mjs} +103 -50
  77. package/dist/chunk-OAKDJYYT.mjs.br +0 -0
  78. package/dist/chunk-OAKDJYYT.mjs.gz +0 -0
  79. package/dist/{chunk-XMD6ZWUO.mjs → chunk-QTGCOL5H.mjs} +1104 -471
  80. package/dist/chunk-QTGCOL5H.mjs.br +0 -0
  81. package/dist/chunk-QTGCOL5H.mjs.gz +0 -0
  82. package/dist/{chunk-B3YVURJB.mjs → chunk-VYSMTC5C.mjs} +2 -2
  83. package/dist/chunk-VYSMTC5C.mjs.br +0 -0
  84. package/dist/chunk-VYSMTC5C.mjs.gz +0 -0
  85. package/dist/i18n.js +4 -4
  86. package/dist/i18n.js.br +0 -0
  87. package/dist/i18n.js.gz +0 -0
  88. package/dist/i18n.mjs +1 -1
  89. package/dist/i18n.mjs.br +0 -0
  90. package/dist/i18n.mjs.gz +0 -0
  91. package/dist/index.d.ts +33 -3
  92. package/dist/index.js +47 -47
  93. package/dist/index.js.br +0 -0
  94. package/dist/index.js.gz +0 -0
  95. package/dist/index.mjs +6 -6
  96. package/dist/index.mjs.br +0 -0
  97. package/dist/index.mjs.gz +0 -0
  98. package/dist/internals.d.ts +38 -3
  99. package/dist/internals.d.ts.map +1 -1
  100. package/dist/internals.js +79 -79
  101. package/dist/internals.js.br +0 -0
  102. package/dist/internals.js.gz +0 -0
  103. package/dist/internals.mjs +4 -4
  104. package/dist/internals.mjs.br +0 -0
  105. package/dist/internals.mjs.gz +0 -0
  106. package/dist/pptx-viewer.css +1 -1
  107. package/dist/pptx-viewer.css.br +0 -0
  108. package/dist/pptx-viewer.css.gz +0 -0
  109. package/dist/{types-Bzdkiakq.d.ts → types-BqB2ZCwS.d.ts} +3 -3
  110. package/dist/{types-Bzdkiakq.d.ts.map → types-BqB2ZCwS.d.ts.map} +1 -1
  111. package/dist/{useViewerBuildingBlocks-FbK-4ORi.d.ts → useViewerBuildingBlocks-DkUGmlkP.d.ts} +4 -4
  112. package/dist/{useViewerBuildingBlocks-FbK-4ORi.d.ts.map → useViewerBuildingBlocks-DkUGmlkP.d.ts.map} +1 -1
  113. package/dist/viewer/index.d.ts +31 -1
  114. package/dist/viewer/index.js +27 -27
  115. package/dist/viewer/index.js.br +0 -0
  116. package/dist/viewer/index.js.gz +0 -0
  117. package/dist/viewer/index.mjs +6 -6
  118. package/dist/viewer/index.mjs.br +0 -0
  119. package/dist/viewer/index.mjs.gz +0 -0
  120. package/package.json +1 -1
  121. package/dist/AiChatPanel-GLDW5OK4.mjs.br +0 -0
  122. package/dist/AiChatPanel-GLDW5OK4.mjs.gz +0 -0
  123. package/dist/AiChatPanel-N25STHYW.js.br +0 -0
  124. package/dist/AiChatPanel-N25STHYW.js.gz +0 -0
  125. package/dist/Area3DChartScene-5POI5LF7.js.br +0 -0
  126. package/dist/Area3DChartScene-5POI5LF7.js.gz +0 -0
  127. package/dist/Area3DChartScene-FCHO4SK6.mjs.br +0 -0
  128. package/dist/Area3DChartScene-FCHO4SK6.mjs.gz +0 -0
  129. package/dist/Bar3DChartScene-5CY5GRV5.js.br +0 -0
  130. package/dist/Bar3DChartScene-5CY5GRV5.js.gz +0 -0
  131. package/dist/Bar3DChartScene-M3LLHXAL.mjs.br +0 -0
  132. package/dist/Bar3DChartScene-M3LLHXAL.mjs.gz +0 -0
  133. package/dist/Line3DChartScene-3TP7OUIP.js.br +0 -0
  134. package/dist/Line3DChartScene-3TP7OUIP.js.gz +0 -0
  135. package/dist/Line3DChartScene-77TZRLJY.mjs.br +0 -0
  136. package/dist/Line3DChartScene-77TZRLJY.mjs.gz +0 -0
  137. package/dist/Model3DScene-CBETCFMI.js.br +0 -0
  138. package/dist/Model3DScene-CBETCFMI.js.gz +0 -0
  139. package/dist/Model3DScene-QINKUHM2.mjs.br +0 -0
  140. package/dist/Model3DScene-QINKUHM2.mjs.gz +0 -0
  141. package/dist/PieChart3DScene-H2DJSHW7.mjs.br +0 -0
  142. package/dist/PieChart3DScene-H2DJSHW7.mjs.gz +0 -0
  143. package/dist/PieChart3DScene-NFXFVG7R.js.br +0 -0
  144. package/dist/PieChart3DScene-NFXFVG7R.js.gz +0 -0
  145. package/dist/SurfaceChart3DScene-2IN5YKKE.js.br +0 -0
  146. package/dist/SurfaceChart3DScene-2IN5YKKE.js.gz +0 -0
  147. package/dist/SurfaceChart3DScene-4AGI4O3L.mjs.br +0 -0
  148. package/dist/SurfaceChart3DScene-4AGI4O3L.mjs.gz +0 -0
  149. package/dist/chunk-3AJ54EAB.js.br +0 -0
  150. package/dist/chunk-3FVOKV4E.js.br +0 -0
  151. package/dist/chunk-3FVOKV4E.js.gz +0 -0
  152. package/dist/chunk-3PUFHKXW.mjs.br +0 -0
  153. package/dist/chunk-3PUFHKXW.mjs.gz +0 -0
  154. package/dist/chunk-4NSDMKFE.js.br +0 -0
  155. package/dist/chunk-4NSDMKFE.js.gz +0 -0
  156. package/dist/chunk-4Q6VIX6M.js.br +0 -0
  157. package/dist/chunk-4Q6VIX6M.js.gz +0 -0
  158. package/dist/chunk-7ELFYC6K.mjs.br +0 -0
  159. package/dist/chunk-7ELFYC6K.mjs.gz +0 -0
  160. package/dist/chunk-B3YVURJB.mjs.br +0 -0
  161. package/dist/chunk-B3YVURJB.mjs.gz +0 -0
  162. package/dist/chunk-HMX3MQR7.mjs.br +0 -0
  163. package/dist/chunk-I5YSAIL5.mjs.br +0 -0
  164. package/dist/chunk-I5YSAIL5.mjs.gz +0 -0
  165. package/dist/chunk-SQNEE6AM.js.br +0 -0
  166. package/dist/chunk-SQNEE6AM.js.gz +0 -0
  167. package/dist/chunk-TYVSLRC7.js.br +0 -0
  168. package/dist/chunk-XMD6ZWUO.mjs.br +0 -0
  169. package/dist/chunk-XMD6ZWUO.mjs.gz +0 -0
@@ -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, buildPdfFromTiledImageData, buildNotesPdf, GRID_SIZE, DEFAULT_TEXT_FONT_SIZE } from './chunk-B3YVURJB.mjs';
2
- import { GlyphOutlineFontCache, createGlyphOutlineLookup, DEFAULT_VIEWER_OPTIONS, TOOLBAR_TABS, MIN_TOUCH_TARGET_PX, 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, createPresentationLoadResources, 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, 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, selectGoogleWebfontFamilies, fetchGoogleWebfontOutlineBytes, mapSlideShowStartKey, mapEditorKey, isEditorTextInputTarget, createViewerOptionsStore, readSlidesFromYDoc, shouldRoomSlidesReplaceLoad, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, shouldAutoFollowBroadcaster, detectTouchDevice, detectOrientation, deriveViewportBreakpoints, createTouchGestureRecognizer, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, isKeyboardOpen, scopeLayoutOptionsToSlide, checkModifyPassword, viewerPreferencesFromViewProperties, DEFAULT_VIEWER_PREFERENCES, viewPropertiesPatchFromPreferences, openPptxFile, readBackstageRecentFile, isActionHidden, buildInlineTextCommitPatch, resolveInlineEditAutoFitHeight, resolveInlineEditNormAutofitShrink, filterInteractableIds, beginShapeAdjustment, buildElementClipboardPayload, savedPresentationFileName, downloadBlob, 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, buildRunProgramNotice, toggleStageElementMedia, resolveOleVerbTarget, downloadDataUrl, openUrlInNewTab, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, resetPresenterTimer, presenterElapsed, stepPresenterZoom, togglePresenterTimer, addCommentToList, removeCommentFromList, editCommentInList, toggleCommentResolvedInList, resolveExportCaptureDecision, recordProgressPercent, computeGridSpacingPx, resolveShowSlideIndexes, groupSlidesBySection, masterViewPseudoSlide, resolveHistoryDepth, hasCopyableFormat, createBackstagePresentation, buildFieldSubstitutionContext, cloneElementForPaste, computeScrollDelta, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, rerouteConnectorsForMovedElements, applyReroutedConnectors, SvgExporter, replyToCommentInList, removeTableElementColumn, insertTableElementColumn, removeTableElementRow, insertTableElementRow, updateCellTextStyleInRawXml, setCellText, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, GIF_POST_CAPTURE_MAX_SIDE, encodeGif, rasterResultToPngBlob, rasterizeElementTiles, placeTileOnPage, PDF_SLIDES_PAGE_WIDTH_PT, PDF_SLIDES_PAGE_HEIGHT_PT, canvasToJpegData, rasterizeElementTiledToCanvas, isPpactionUrl, parsePpactionUrl, resolvePresentationAction, ACTION_BUTTON_PRESETS, elementActionToPptxAction, isUrlSafe, buildSmartArtPresetData, classifyMediaType, computeSnapToShape, publishLiveGeometry, getDraggedShapeAdjustments, computeMarqueeHitIds, mergeAdditiveSelection, clampGifDimensions, rasterizeElement, shouldConfirmExternalHyperlink, applyResize, lockResizeAspect, snapBoxToGrid, applyMotionPathPreset } from './chunk-XMD6ZWUO.mjs';
3
- import { translationsEn } from './chunk-HMX3MQR7.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_TEXT_FONT_SIZE, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, buildPdfFromTiledImageData, buildNotesPdf, GRID_SIZE } from './chunk-VYSMTC5C.mjs';
2
+ import { GlyphOutlineFontCache, createGlyphOutlineLookup, DEFAULT_VIEWER_OPTIONS, TOOLBAR_TABS, MIN_TOUCH_TARGET_PX, 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, createPresentationLoadResources, collectMediaElements, resolveMediaElementSource, collectImagePaths, applyImagePathPatches, resolveTableCellImageUrls, resolveTableStyleImageUrls, partitionTemplateElements, seedRecentColors, resolveAuthoredCustomShowId, buildInitialGuides, readOnlyRecommendation, compatibilityWarningToasts, EncryptedFileError, resolveAutosaveIntervalMs, shouldWriteAutosaveSnapshot, saveAutosaveSnapshot, autosaveSnapshotMark, hasTextProperties, remapTextToSegments, updateMasterViewElement, isTemplateElementId, updateElement, hasShapeProperties, getInlineEditorSelection, applyListStyleUpdate, setPendingSelectionRestore, applyStyleToSelectedSegments, updateTextSegmentStyle, applyCaseTransformToSegments, transformTextCase, masterViewElements, replaceMasterViewElements, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, canInteractWithElement, normalizeColorsForCapture, preprocessCssForCapture, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, 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, selectGoogleWebfontFamilies, fetchGoogleWebfontOutlineBytes, mapSlideShowStartKey, mapEditorKey, isEditorTextInputTarget, prepareElementForInsertion, createViewerOptionsStore, readSlidesFromYDoc, shouldRoomSlidesReplaceLoad, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, shouldAutoFollowBroadcaster, detectTouchDevice, detectOrientation, deriveViewportBreakpoints, createTouchGestureRecognizer, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, isKeyboardOpen, scopeLayoutOptionsToSlide, checkModifyPassword, viewerPreferencesFromViewProperties, DEFAULT_VIEWER_PREFERENCES, viewPropertiesPatchFromPreferences, openPptxFile, readBackstageRecentFile, isActionHidden, buildInlineTextCommitPatch, resolveInlineEditAutoFitHeight, resolveInlineEditNormAutofitShrink, filterInteractableIds, beginShapeAdjustment, buildElementClipboardPayload, savedPresentationFileName, downloadBlob, 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, resolveViewportFitOptions, calculateViewportFit, scheduleAutoAdvanceChain, computeEntranceAnimationDelay, createPresentationSessionId, resolveTransitionDurationMs, resolveTransitionSoundAction, runPresentationAction, safeOpenUrl, buildRunProgramNotice, toggleStageElementMedia, resolveOleVerbTarget, downloadDataUrl, openUrlInNewTab, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, resetPresenterTimer, presenterElapsed, stepPresenterZoom, togglePresenterTimer, addCommentToList, removeCommentFromList, editCommentInList, toggleCommentResolvedInList, resolveExportCaptureDecision, recordProgressPercent, computeGridSpacingPx, resolveShowSlideIndexes, groupSlidesBySection, masterViewPseudoSlide, resolveHistoryDepth, hasCopyableFormat, createBackstagePresentation, buildFieldSubstitutionContext, cloneElementForPaste, computeScrollDelta, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, rerouteConnectorsForMovedElements, applyReroutedConnectors, SvgExporter, replyToCommentInList, removeTableElementColumn, insertTableElementColumn, removeTableElementRow, insertTableElementRow, updateCellTextStyleInRawXml, setCellText, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, GIF_POST_CAPTURE_MAX_SIDE, encodeGif, rasterResultToPngBlob, rasterizeElementTiles, placeTileOnPage, PDF_SLIDES_PAGE_WIDTH_PT, PDF_SLIDES_PAGE_HEIGHT_PT, canvasToJpegData, rasterizeElementTiledToCanvas, isPpactionUrl, parsePpactionUrl, resolvePresentationAction, ACTION_BUTTON_PRESETS, elementActionToPptxAction, isUrlSafe, buildSmartArtPresetData, classifyMediaType, computeSnapToShape, publishLiveGeometry, getDraggedShapeAdjustments, computeMarqueeHitIds, mergeAdditiveSelection, clampGifDimensions, rasterizeElement, shouldConfirmExternalHyperlink, applyResize, lockResizeAspect, snapBoxToGrid, applyMotionPathPreset } from './chunk-QTGCOL5H.mjs';
3
+ import { translationsEn } from './chunk-LAU34UMB.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
 
@@ -730,12 +730,60 @@ function useViewerStore(store, selector, isEqual = Object.is) {
730
730
  );
731
731
  return useSyncExternalStore(subscribe2, getSnapshot2, getSnapshot2);
732
732
  }
733
+ var DEFAULT_FIT = { fitPadding: { horizontal: 4, vertical: 16 }, maxFitScale: 1 };
734
+ function useViewportFit(canvasSize, viewportRef, options) {
735
+ const [editorDimensions, setEditorDimensions] = useState(null);
736
+ const { fitPadding, maxFitScale } = resolveViewportFitOptions(options, DEFAULT_FIT);
737
+ const { horizontal, vertical } = fitPadding;
738
+ const effectiveEditorDimensions = editorDimensions ?? canvasSize;
739
+ const { scale: fitScale } = calculateViewportFit({
740
+ viewportWidth: effectiveEditorDimensions.width,
741
+ viewportHeight: effectiveEditorDimensions.height,
742
+ canvasWidth: canvasSize.width,
743
+ canvasHeight: canvasSize.height,
744
+ maxFitScale
745
+ });
746
+ useEffect(() => {
747
+ let observer = null;
748
+ let raf = 0;
749
+ const measure = (element) => {
750
+ const { availableWidth: width, availableHeight: height } = calculateViewportFit({
751
+ viewportWidth: element.clientWidth,
752
+ viewportHeight: element.clientHeight,
753
+ canvasWidth: canvasSize.width,
754
+ canvasHeight: canvasSize.height,
755
+ fitPadding: { horizontal, vertical }
756
+ });
757
+ if (width > 0 && height > 0) {
758
+ setEditorDimensions({ width, height });
759
+ }
760
+ };
761
+ const attach = () => {
762
+ const element = viewportRef.current;
763
+ if (!element) {
764
+ raf = requestAnimationFrame(attach);
765
+ return;
766
+ }
767
+ observer = new ResizeObserver(() => measure(element));
768
+ observer.observe(element);
769
+ measure(element);
770
+ };
771
+ attach();
772
+ return () => {
773
+ cancelAnimationFrame(raf);
774
+ observer?.disconnect();
775
+ };
776
+ }, [viewportRef, canvasSize.width, canvasSize.height, horizontal, vertical]);
777
+ return { editorDimensions, setEditorDimensions, effectiveEditorDimensions, fitScale };
778
+ }
733
779
 
734
780
  // src/viewer/hooks/useZoomViewport.ts
735
781
  var selectZoom = (state) => state.zoom;
736
782
  function useZoomViewport({
737
783
  canvasSize,
738
- selectedElements
784
+ selectedElements,
785
+ fitPadding,
786
+ maxFitScale
739
787
  }) {
740
788
  const editWrapperRef = useRef(null);
741
789
  const canvasStageRef = useRef(null);
@@ -750,19 +798,7 @@ function useZoomViewport({
750
798
  (next) => store.dispatch({ type: "set-zoom", zoom: next }),
751
799
  [store]
752
800
  );
753
- const [editorDimensions, setEditorDimensions] = useState(null);
754
- const effectiveEditorDimensions = editorDimensions || {
755
- width: canvasSize.width,
756
- height: canvasSize.height
757
- };
758
- const fitScale = useMemo(() => {
759
- if (!effectiveEditorDimensions.width || !effectiveEditorDimensions.height) {
760
- return 1;
761
- }
762
- const widthScale = effectiveEditorDimensions.width / canvasSize.width;
763
- const heightScale = effectiveEditorDimensions.height / canvasSize.height;
764
- return Math.min(widthScale, heightScale, 1);
765
- }, [canvasSize, effectiveEditorDimensions.height, effectiveEditorDimensions.width]);
801
+ const { editorDimensions, setEditorDimensions, effectiveEditorDimensions, fitScale } = useViewportFit(canvasSize, canvasViewportRef, { fitPadding, maxFitScale });
766
802
  const editorScale = fitScale * scale;
767
803
  useEffect(() => {
768
804
  renderScaleRef.current = editorScale;
@@ -770,33 +806,6 @@ function useZoomViewport({
770
806
  useEffect(() => {
771
807
  store.dispatch({ type: "set-fit-scale", fitScale });
772
808
  }, [store, fitScale]);
773
- useEffect(() => {
774
- let observer = null;
775
- let raf = 0;
776
- const VERTICAL_MARGIN = 32;
777
- const measure = (el) => {
778
- const width = Math.max(0, el.clientWidth - 8);
779
- const height = Math.max(0, el.clientHeight - VERTICAL_MARGIN);
780
- if (width > 0 && height > 0) {
781
- setEditorDimensions({ width, height });
782
- }
783
- };
784
- const attach = () => {
785
- const el = canvasViewportRef.current;
786
- if (!el) {
787
- raf = requestAnimationFrame(attach);
788
- return;
789
- }
790
- observer = new ResizeObserver(() => measure(el));
791
- observer.observe(el);
792
- measure(el);
793
- };
794
- attach();
795
- return () => {
796
- cancelAnimationFrame(raf);
797
- observer?.disconnect();
798
- };
799
- }, []);
800
809
  const centerBoundsInViewport = useCallback(
801
810
  (bounds, nextScale) => {
802
811
  const wrapper = editWrapperRef.current;
@@ -4406,6 +4415,19 @@ function useElementOperations(input) {
4406
4415
  const isLiveEditing = selectedElement.id === inlineEditingElementId;
4407
4416
  const currentSegments = liveTextSegments();
4408
4417
  const inlineSel = getInlineEditorSelection(currentSegments);
4418
+ if (updates.listType) {
4419
+ const result = applyListStyleUpdate(
4420
+ { ...selectedElement, textSegments: currentSegments },
4421
+ updates,
4422
+ inlineSel
4423
+ );
4424
+ setPendingSelectionRestore(result.selection);
4425
+ updateSelectedElement({
4426
+ ...result.patch,
4427
+ ...isLiveEditing ? { text: inlineEditingText } : {}
4428
+ });
4429
+ return;
4430
+ }
4409
4431
  if (inlineSel && currentSegments) {
4410
4432
  const { newSegments: newSegments2, newSelection } = applyStyleToSelectedSegments(
4411
4433
  currentSegments,
@@ -4420,10 +4442,7 @@ function useElementOperations(input) {
4420
4442
  return;
4421
4443
  }
4422
4444
  const newTextStyle = { ...selectedElement.textStyle, ...updates };
4423
- const newSegments = currentSegments?.map((seg) => ({
4424
- ...seg,
4425
- style: { ...seg.style, ...updates }
4426
- }));
4445
+ const newSegments = currentSegments?.map((seg) => updateTextSegmentStyle(seg, updates));
4427
4446
  updateSelectedElement({
4428
4447
  textStyle: newTextStyle,
4429
4448
  textSegments: newSegments,
@@ -5897,6 +5916,7 @@ function useInsertElements(input) {
5897
5916
  history.markDirty();
5898
5917
  };
5899
5918
  return {
5919
+ addElement,
5900
5920
  handleAddTextBox,
5901
5921
  handleAddShape,
5902
5922
  handleAddTable,
@@ -9745,6 +9765,7 @@ function useKeyboardShortcuts(input) {
9745
9765
  }
9746
9766
  const { action, dx, dy } = mapEditorKey(e, {
9747
9767
  canEdit: current.canEdit,
9768
+ canPaste: current.canPaste,
9748
9769
  // The Slide Master view is an editing surface, not a viewing one.
9749
9770
  // Gating on `mode !== 'edit'` alone made `mapEditorKey` return
9750
9771
  // NO_ACTION there, so Delete, the arrow-key nudges and the clipboard
@@ -9840,6 +9861,7 @@ function useKeyboardShortcutWiring(input) {
9840
9861
  mode,
9841
9862
  canEdit,
9842
9863
  inlineEditingElementId: state.inlineEditingElementId,
9864
+ canPaste: Boolean(state.clipboardPayload && activeSlide),
9843
9865
  tableEditorState: state.tableEditorState,
9844
9866
  activeTool: state.activeTool,
9845
9867
  hasSelection: state.effectiveSelectedIds.length > 0,
@@ -9930,6 +9952,7 @@ function useViewerIntegration(input) {
9930
9952
  setModifyVerifier,
9931
9953
  setCompatToasts,
9932
9954
  canEdit,
9955
+ canInsertElement = true,
9933
9956
  promptKeepInkAnnotations,
9934
9957
  imageExportScale,
9935
9958
  imageResolutionScale,
@@ -10173,6 +10196,21 @@ function useViewerIntegration(input) {
10173
10196
  return s?.elements.find((e) => e.id === elementId);
10174
10197
  },
10175
10198
  // -- Element manipulation --
10199
+ addElement(element) {
10200
+ const inserted = prepareElementForInsertion(element, {
10201
+ canEdit: canEdit && canInsertElement,
10202
+ mode,
10203
+ hasActiveSlide: !loading && !error && Boolean(activeSlide),
10204
+ editTemplateMode: state.editTemplateMode
10205
+ });
10206
+ if (!inserted) {
10207
+ return void 0;
10208
+ }
10209
+ editorOps.canvasHandlers.handleInlineEditCommit();
10210
+ editorOps.insertHandlers.addElement(inserted);
10211
+ editorOps.ops.applySelection(inserted.id, [inserted.id]);
10212
+ return inserted.id;
10213
+ },
10176
10214
  updateElement(elementId, updates) {
10177
10215
  editorOps.ops.updateElementById(elementId, updates);
10178
10216
  },
@@ -10193,6 +10231,11 @@ function useViewerIntegration(input) {
10193
10231
  onContentChange,
10194
10232
  slides,
10195
10233
  activeSlideIndex,
10234
+ activeSlide,
10235
+ canEdit,
10236
+ canInsertElement,
10237
+ loading,
10238
+ error,
10196
10239
  state,
10197
10240
  history,
10198
10241
  zoom,
@@ -11390,7 +11433,12 @@ function useViewerBuildingBlocksCore(input) {
11390
11433
  state.isDrawingRef
11391
11434
  ]
11392
11435
  );
11393
- const zoom = useZoomViewport({ canvasSize, selectedElements: state.selectedElements });
11436
+ const zoom = useZoomViewport({
11437
+ canvasSize,
11438
+ selectedElements: state.selectedElements,
11439
+ fitPadding: input.fitPadding,
11440
+ maxFitScale: input.maxFitScale
11441
+ });
11394
11442
  const { options: viewerOptions } = useViewerOptions();
11395
11443
  const { setIsDirty } = state;
11396
11444
  const markDocumentDirty = useCallback(() => {
@@ -11746,6 +11794,7 @@ function useViewerBuildingBlocksState(input) {
11746
11794
  allowExternalImages: viewerOptions.trust.allowExternalContent,
11747
11795
  setReadOnlyRecommendation: readOnlyRec.setRecommendation,
11748
11796
  setModifyVerifier: readOnlyRec.setModifyVerifier,
11797
+ canInsertElement: !readOnlyRec.locked && !viewerOptions.trust.openInProtectedView,
11749
11798
  setCompatToasts: compatToastsState.setToasts,
11750
11799
  canEdit,
11751
11800
  promptKeepInkAnnotations: viewerOptions.advanced.slideShowPromptKeepInkAnnotations,
@@ -11837,7 +11886,11 @@ function useViewerBuildingBlocks(input) {
11837
11886
  }
11838
11887
  })();
11839
11888
  }, []);
11840
- const core = useViewerBuildingBlocksCore({ content});
11889
+ const core = useViewerBuildingBlocksCore({
11890
+ content,
11891
+ fitPadding: input.fitPadding,
11892
+ maxFitScale: input.maxFitScale
11893
+ });
11841
11894
  const {
11842
11895
  state,
11843
11896
  mode,
Binary file
Binary file