pptx-react-viewer 3.1.1 → 3.1.2

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 (167) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/{AiChatPanel-6PERJN7M.js → AiChatPanel-4EYZDQXM.js} +24 -24
  3. package/dist/AiChatPanel-4EYZDQXM.js.br +0 -0
  4. package/dist/AiChatPanel-4EYZDQXM.js.gz +0 -0
  5. package/dist/{AiChatPanel-EIENGCKW.mjs → AiChatPanel-UCFQIWOQ.mjs} +4 -4
  6. package/dist/AiChatPanel-UCFQIWOQ.mjs.br +0 -0
  7. package/dist/AiChatPanel-UCFQIWOQ.mjs.gz +0 -0
  8. package/dist/{Area3DChartScene-W6SVC235.mjs → Area3DChartScene-PMYXO4MR.mjs} +1 -1
  9. package/dist/Area3DChartScene-PMYXO4MR.mjs.br +0 -0
  10. package/dist/Area3DChartScene-PMYXO4MR.mjs.gz +0 -0
  11. package/dist/{Area3DChartScene-TXCLQLBQ.js → Area3DChartScene-YBMC6NKY.js} +2 -2
  12. package/dist/Area3DChartScene-YBMC6NKY.js.br +0 -0
  13. package/dist/Area3DChartScene-YBMC6NKY.js.gz +0 -0
  14. package/dist/{Bar3DChartScene-6RHPFLZT.js → Bar3DChartScene-75DCA2ZA.js} +2 -2
  15. package/dist/Bar3DChartScene-75DCA2ZA.js.br +0 -0
  16. package/dist/Bar3DChartScene-75DCA2ZA.js.gz +0 -0
  17. package/dist/{Bar3DChartScene-FCVUZIJ3.mjs → Bar3DChartScene-CEOI6SU6.mjs} +1 -1
  18. package/dist/Bar3DChartScene-CEOI6SU6.mjs.br +0 -0
  19. package/dist/Bar3DChartScene-CEOI6SU6.mjs.gz +0 -0
  20. package/dist/{Line3DChartScene-MJXFXSPW.mjs → Line3DChartScene-EZZKWUZR.mjs} +1 -1
  21. package/dist/Line3DChartScene-EZZKWUZR.mjs.br +0 -0
  22. package/dist/Line3DChartScene-EZZKWUZR.mjs.gz +0 -0
  23. package/dist/{Line3DChartScene-2ZFE53KO.js → Line3DChartScene-STGX6N6V.js} +2 -2
  24. package/dist/Line3DChartScene-STGX6N6V.js.br +0 -0
  25. package/dist/Line3DChartScene-STGX6N6V.js.gz +0 -0
  26. package/dist/{Model3DScene-7VQNRY5B.js → Model3DScene-DWRD63FH.js} +2 -2
  27. package/dist/Model3DScene-DWRD63FH.js.br +0 -0
  28. package/dist/Model3DScene-DWRD63FH.js.gz +0 -0
  29. package/dist/{Model3DScene-A5RV3KNJ.mjs → Model3DScene-FGQJKWL6.mjs} +1 -1
  30. package/dist/Model3DScene-FGQJKWL6.mjs.br +0 -0
  31. package/dist/Model3DScene-FGQJKWL6.mjs.gz +0 -0
  32. package/dist/{PieChart3DScene-UEVFZZVW.mjs → PieChart3DScene-DH6RSJO6.mjs} +1 -1
  33. package/dist/PieChart3DScene-DH6RSJO6.mjs.br +0 -0
  34. package/dist/PieChart3DScene-DH6RSJO6.mjs.gz +0 -0
  35. package/dist/{PieChart3DScene-JTHZESS3.js → PieChart3DScene-R3Y7OVVO.js} +2 -2
  36. package/dist/PieChart3DScene-R3Y7OVVO.js.br +0 -0
  37. package/dist/PieChart3DScene-R3Y7OVVO.js.gz +0 -0
  38. package/dist/PowerPointViewer-Cl6jBPNw.d.ts.map +1 -1
  39. package/dist/{SurfaceChart3DScene-WD65PAG4.mjs → SurfaceChart3DScene-BMBU5RKI.mjs} +1 -1
  40. package/dist/SurfaceChart3DScene-BMBU5RKI.mjs.br +0 -0
  41. package/dist/SurfaceChart3DScene-BMBU5RKI.mjs.gz +0 -0
  42. package/dist/{SurfaceChart3DScene-FXUNT5OK.js → SurfaceChart3DScene-UM5HA3VO.js} +2 -2
  43. package/dist/SurfaceChart3DScene-UM5HA3VO.js.br +0 -0
  44. package/dist/SurfaceChart3DScene-UM5HA3VO.js.gz +0 -0
  45. package/dist/{chunk-GCE2TYHF.js → chunk-2HLDBQH7.js} +157 -157
  46. package/dist/chunk-2HLDBQH7.js.br +0 -0
  47. package/dist/chunk-2HLDBQH7.js.gz +0 -0
  48. package/dist/{chunk-MAOUVROK.mjs → chunk-4VVOTEQ4.mjs} +359 -336
  49. package/dist/chunk-4VVOTEQ4.mjs.br +0 -0
  50. package/dist/chunk-4VVOTEQ4.mjs.gz +0 -0
  51. package/dist/{chunk-IDTNKL4S.js → chunk-7ZQ2FZXE.js} +300 -45
  52. package/dist/chunk-7ZQ2FZXE.js.br +0 -0
  53. package/dist/chunk-7ZQ2FZXE.js.gz +0 -0
  54. package/dist/{chunk-MKPSUHUH.mjs → chunk-ARJE3V6V.mjs} +5 -6
  55. package/dist/chunk-ARJE3V6V.mjs.br +0 -0
  56. package/dist/chunk-ARJE3V6V.mjs.gz +0 -0
  57. package/dist/{chunk-GIFQWIW5.js → chunk-MQEG5GOV.js} +1339 -1212
  58. package/dist/chunk-MQEG5GOV.js.br +0 -0
  59. package/dist/chunk-MQEG5GOV.js.gz +0 -0
  60. package/dist/{chunk-5ERW2B25.mjs → chunk-O5DKWJDK.mjs} +1 -1
  61. package/dist/chunk-O5DKWJDK.mjs.br +0 -0
  62. package/dist/chunk-O5DKWJDK.mjs.gz +0 -0
  63. package/dist/{chunk-ISDTM2V3.mjs → chunk-S546O4W2.mjs} +286 -45
  64. package/dist/chunk-S546O4W2.mjs.br +0 -0
  65. package/dist/chunk-S546O4W2.mjs.gz +0 -0
  66. package/dist/{chunk-PIUB7R2K.js → chunk-SWRY3SI5.js} +5 -6
  67. package/dist/chunk-SWRY3SI5.js.br +0 -0
  68. package/dist/chunk-SWRY3SI5.js.gz +0 -0
  69. package/dist/{chunk-ICAYXQVJ.mjs → chunk-VLLZ3QL2.mjs} +260 -133
  70. package/dist/chunk-VLLZ3QL2.mjs.br +0 -0
  71. package/dist/chunk-VLLZ3QL2.mjs.gz +0 -0
  72. package/dist/{chunk-OUX4O5XK.mjs → chunk-W3J6SNVE.mjs} +2 -2
  73. package/dist/chunk-W3J6SNVE.mjs.br +0 -0
  74. package/dist/chunk-W3J6SNVE.mjs.gz +0 -0
  75. package/dist/{chunk-OTBQBTTQ.js → chunk-WVIKFMNS.js} +725 -704
  76. package/dist/chunk-WVIKFMNS.js.br +0 -0
  77. package/dist/chunk-WVIKFMNS.js.gz +0 -0
  78. package/dist/{chunk-OZGFMZEX.js → chunk-YNUYFR2T.js} +3 -3
  79. package/dist/chunk-YNUYFR2T.js.br +0 -0
  80. package/dist/chunk-YNUYFR2T.js.gz +0 -0
  81. package/dist/i18n.js +4 -4
  82. package/dist/i18n.js.br +0 -0
  83. package/dist/i18n.js.gz +0 -0
  84. package/dist/i18n.mjs +1 -1
  85. package/dist/i18n.mjs.br +0 -0
  86. package/dist/i18n.mjs.gz +0 -0
  87. package/dist/index.d.ts +27 -1
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +47 -47
  90. package/dist/index.js.br +0 -0
  91. package/dist/index.js.gz +0 -0
  92. package/dist/index.mjs +6 -6
  93. package/dist/index.mjs.br +0 -0
  94. package/dist/index.mjs.gz +0 -0
  95. package/dist/internals.d.ts +99 -22
  96. package/dist/internals.d.ts.map +1 -1
  97. package/dist/internals.js +79 -79
  98. package/dist/internals.js.br +0 -0
  99. package/dist/internals.js.gz +0 -0
  100. package/dist/internals.mjs +4 -4
  101. package/dist/internals.mjs.br +0 -0
  102. package/dist/internals.mjs.gz +0 -0
  103. package/dist/pptx-viewer.css +1 -1
  104. package/dist/pptx-viewer.css.br +0 -0
  105. package/dist/pptx-viewer.css.gz +0 -0
  106. package/dist/{useViewerBuildingBlocks-DC1O_op4.d.ts → useViewerBuildingBlocks-X1L8BjsQ.d.ts} +19 -2
  107. package/dist/useViewerBuildingBlocks-X1L8BjsQ.d.ts.map +1 -0
  108. package/dist/viewer/index.js +27 -27
  109. package/dist/viewer/index.js.br +0 -0
  110. package/dist/viewer/index.js.gz +0 -0
  111. package/dist/viewer/index.mjs +6 -6
  112. package/dist/viewer/index.mjs.br +0 -0
  113. package/dist/viewer/index.mjs.gz +0 -0
  114. package/package.json +1 -1
  115. package/dist/AiChatPanel-6PERJN7M.js.br +0 -0
  116. package/dist/AiChatPanel-6PERJN7M.js.gz +0 -0
  117. package/dist/AiChatPanel-EIENGCKW.mjs.br +0 -0
  118. package/dist/AiChatPanel-EIENGCKW.mjs.gz +0 -0
  119. package/dist/Area3DChartScene-TXCLQLBQ.js.br +0 -0
  120. package/dist/Area3DChartScene-TXCLQLBQ.js.gz +0 -0
  121. package/dist/Area3DChartScene-W6SVC235.mjs.br +0 -0
  122. package/dist/Area3DChartScene-W6SVC235.mjs.gz +0 -0
  123. package/dist/Bar3DChartScene-6RHPFLZT.js.br +0 -0
  124. package/dist/Bar3DChartScene-6RHPFLZT.js.gz +0 -0
  125. package/dist/Bar3DChartScene-FCVUZIJ3.mjs.br +0 -0
  126. package/dist/Bar3DChartScene-FCVUZIJ3.mjs.gz +0 -0
  127. package/dist/Line3DChartScene-2ZFE53KO.js.br +0 -0
  128. package/dist/Line3DChartScene-2ZFE53KO.js.gz +0 -0
  129. package/dist/Line3DChartScene-MJXFXSPW.mjs.br +0 -0
  130. package/dist/Line3DChartScene-MJXFXSPW.mjs.gz +0 -0
  131. package/dist/Model3DScene-7VQNRY5B.js.br +0 -0
  132. package/dist/Model3DScene-7VQNRY5B.js.gz +0 -0
  133. package/dist/Model3DScene-A5RV3KNJ.mjs.br +0 -0
  134. package/dist/Model3DScene-A5RV3KNJ.mjs.gz +0 -0
  135. package/dist/PieChart3DScene-JTHZESS3.js.br +0 -0
  136. package/dist/PieChart3DScene-JTHZESS3.js.gz +0 -0
  137. package/dist/PieChart3DScene-UEVFZZVW.mjs.br +0 -0
  138. package/dist/PieChart3DScene-UEVFZZVW.mjs.gz +0 -0
  139. package/dist/SurfaceChart3DScene-FXUNT5OK.js.br +0 -0
  140. package/dist/SurfaceChart3DScene-FXUNT5OK.js.gz +0 -0
  141. package/dist/SurfaceChart3DScene-WD65PAG4.mjs.br +0 -0
  142. package/dist/SurfaceChart3DScene-WD65PAG4.mjs.gz +0 -0
  143. package/dist/chunk-5ERW2B25.mjs.br +0 -0
  144. package/dist/chunk-5ERW2B25.mjs.gz +0 -0
  145. package/dist/chunk-GCE2TYHF.js.br +0 -0
  146. package/dist/chunk-GCE2TYHF.js.gz +0 -0
  147. package/dist/chunk-GIFQWIW5.js.br +0 -0
  148. package/dist/chunk-GIFQWIW5.js.gz +0 -0
  149. package/dist/chunk-ICAYXQVJ.mjs.br +0 -0
  150. package/dist/chunk-ICAYXQVJ.mjs.gz +0 -0
  151. package/dist/chunk-IDTNKL4S.js.br +0 -0
  152. package/dist/chunk-IDTNKL4S.js.gz +0 -0
  153. package/dist/chunk-ISDTM2V3.mjs.br +0 -0
  154. package/dist/chunk-ISDTM2V3.mjs.gz +0 -0
  155. package/dist/chunk-MAOUVROK.mjs.br +0 -0
  156. package/dist/chunk-MAOUVROK.mjs.gz +0 -0
  157. package/dist/chunk-MKPSUHUH.mjs.br +0 -0
  158. package/dist/chunk-MKPSUHUH.mjs.gz +0 -0
  159. package/dist/chunk-OTBQBTTQ.js.br +0 -0
  160. package/dist/chunk-OTBQBTTQ.js.gz +0 -0
  161. package/dist/chunk-OUX4O5XK.mjs.br +0 -0
  162. package/dist/chunk-OUX4O5XK.mjs.gz +0 -0
  163. package/dist/chunk-OZGFMZEX.js.br +0 -0
  164. package/dist/chunk-OZGFMZEX.js.gz +0 -0
  165. package/dist/chunk-PIUB7R2K.js.br +0 -0
  166. package/dist/chunk-PIUB7R2K.js.gz +0 -0
  167. package/dist/useViewerBuildingBlocks-DC1O_op4.d.ts.map +0 -1
@@ -1,12 +1,12 @@
1
- import { computeFocusTargets, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, toRenderableParts } from './chunk-5ERW2B25.mjs';
2
- import { useReducedMotion, useViewerState, useViewerOptions, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useLayoutSwitching, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP } from './chunk-MAOUVROK.mjs';
3
- import { MIN_ELEMENT_SIZE, DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getCropShapeClipPath, getImageTilingStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, buildTextBody3DSceneStyle, SLIDE_NAV_THUMBNAIL_WIDTH, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, TOOLBAR_SECTIONS, DEFAULT_SECTION_GROUP_ID, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, HYPERLINK_COLOR, GRID_SIZE, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, THEME_COLOR_SWATCHES, STROKE_DASH_OPTIONS } from './chunk-OUX4O5XK.mjs';
4
- import { LOCALE_CATALOG, translationsEn } from './chunk-MKPSUHUH.mjs';
5
- import { hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, getElementTransform, getAriaRoleDescription, getAriaLabel, getAriaRole, resolveElementInteractivity, isEditableTextElement, isElementRendered, isElementActionable, getImageEffectsOpacity, getImageEffectsFilter, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, ACTION_BUTTON_PRESETS, mediaTransportVisible, isInkElement, getGroupChildParentFill, getElementLabel, SWITCHABLE_LAYOUT_TYPES, DEFAULT_VIEWER_OPTIONS, compileEquationTemplateMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, resolveAutosaveActivation, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, shouldShowAutosaveRecoveryPrompt, paintedStrokeWidth, buildCssGradientFromShapeStyle, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, getComputedEffectStyle, getSoftEdgeSvgFilter, buildStrokeOutline, buildHollowHitOutline, buildSubpathFillOverlay, isImageLikeElement, getComputedFillStyle, strokeOutlineViewBox, revealedSmartArtNodeCount, buildSmartArtA11y, computeSmartArtElementLayout, flattenNodes, buildSummaryZoomView, isImageTiled, getImageColorWashStyle, placeCaretAtEnd, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, resolveChartKind, ensureChartInteractionStyles, applyChartPartHighlight, applyChartBuildReveal, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleAriaLabel, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, RULER_THICKNESS, RULER_FONT_SIZE, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, themeToCssVars, applyMotionPathPreset, resetSlideLayoutPath, DEFAULT_INSERT_CHART_KIND, hasCopyableFormat, templateSchemeFromTheme, createBackstagePresentation, setMasterViewBackgroundColor, printPropertiesFrameSlides, printPropertiesSlidesPerPage, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, DEFAULT_PALETTE2, resolvePalette, computeDrawingViewBox, projectDrawingShapes, styleShadowFilter, resolveDrawingShapeNodeId, buildChromeStyle, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, findChartPartTarget, advanceChartValueDrag, beginChartValueDrag, buildSurfaceChart3DDataForElement, buildBarChart3DDataForElement, buildLineChart3DDataForElement, buildAreaChart3DDataForElement, buildPieChart3DDataForElement, withChartTitle, buildSmartArt3DModel, extractPathPoints, generatePressureCircles, generateNibMarks, isBrowserOpenableMime, formatBytes, getOleDisplayName, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, getWarpPath, getSlideBackgroundStyle, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, masterViewBackgroundColor, buildFieldSubstitutionContext, shouldConfirmExternalHyperlink, safeOpenUrl, isPpactionUrl, parsePpactionUrl, isPresentationAdvanceClick, toggleBlackboard, PRESENT_TOOLBAR_CLASSES, buildContextMenuEntries, themeColorSchemesEqual, EXPANDED_MAX_HEIGHT, STATUS_BAR_CLASSES, buildBarActions, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, clampPercent, HANDOUT_OPTIONS, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS, resolveViewerAddinRows, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, CUSTOM_FONT_ACCEPT, activateModalFocus, buildCollaborationShareUrl, buildActiveSessionUsers, SORTER_MIN_ZOOM, SORTER_ZOOM_STEP, SORTER_MAX_ZOOM, canGoPrevious, formatSlideCounter, READING_VIEW_COUNTER_ATTR, canGoNext, READING_VIEW_ATTR, OUTLINE_LEVEL_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_ROW_ATTR, OUTLINE_VIEW_ATTR, mobileElapsedSince, nextPresentedSlide, presenterPrevDisabled, presenterNextDisabled, formatMobileElapsed, mobileSlideCounter, presenterPaneAdvancesOnClick, presenterTimerProgress, PRESENTER_CONSOLE_CLASSES, formatElapsed, centeredSvgTextLines, computeInlineEditorRect, findSmartArtNodeText, setSmartArtNodeStyle, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, updateSmartArtNodeText, groupIntoParagraphs, substituteFieldText, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, INSERT_CHART_TYPES, CHARACTER_SPACING_OPTIONS, RIBBON_SHAPE_SWATCHES, shapeFillChange, shapeOutlineChange, readRibbonTransitionDraft, ribbonTransitionUpdates, readSoundFileAsDataUrl, applyTransitionSoundFile, playSlideTransitionPreview, RIBBON_TRANSITION_PRESETS, transitionSoundOptions, transitionSoundSelectedValue, DEFAULT_MOTION_PATH_PRESET_ID, SLIDE_SHOW_OPTIONS, slideShowOptionChange, readSlideShowOption, SLIDE_VIRTUALIZATION_THRESHOLD, PRESENTATION_HIT_TEST_CSS, PRESENTATION_STAGE_ATTRIBUTE, getSlideTransitionAnimations, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, SLIDE_TRANSITION_KEYFRAMES, annotationOverlayZIndex, presentationInkPath, resolveNotesSchematicBodyFontSizePx, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptors, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, isBlackboardActive, slideSizeToCanvasPx, resolveSelectionPaneRename, PRESET_THEMES, resolveNotesSegments, segmentsToEditorHtml, DEBOUNCE_MS, createPlainNotesSegments, parseSegmentsFromRichEditor, segmentsToPlainText, getCurrentParagraphIndex, segmentsToParagraphs, paragraphsToSegments, MAX_INDENT_LEVEL, INDENT_PX, isUrlSafe, buildNotesPrintHtml, toggleSheet, sanitizeMathMl, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, downloadBlob, clampOptionNumber, QUICK_ACCESS_COMMAND_CATALOG, registerCustomFont, openReadingView, applyReadingViewCommand, createPresentationKeyBuffer, readingViewFitScale, READING_VIEW_STAGE_ATTR, buildOutline, applyOutlineEdit, mapOutlineKey, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, PRESENTER_CONSOLE_CONTROLS, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, resolveDefaultFontFamily, buildFontCatalog, TRANSITION_SOUND_OTHER_VALUE, TRANSITION_SOUND_NONE_VALUE, clearTransitionSound, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, masterViewPseudoSlide, authorConnectorBetweenSites, findEraserHitElementId, generateTicks, rulerDragToGuidePosition, getElementTransformWithoutRotation, buildCommentMarkers, COMMENT_MARKER_SIZE, collectConnectorSiteCandidates, getConnectorEndpointHandles, findConnectorSiteNear, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, themeColorLabel, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, COMMON_FONTS, buildSmartArtPresetData, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, isCurrentLayout, SLIDE_TEMPLATES, computeAnchoredPopupPosition, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, isElementLocked, mergeSlideTransition, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, buildLayoutPreviewGeometry, buildSlideTemplateContent, elementLockTogglePatch, buildTableDataGrid, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, TABLE_STYLE_PRESETS, applyTableStylePreset, evenColumnWidths, redistributeColumnWidth, evenRowHeights, patchChartData, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, describeSmartArtBounds, canAddTopLevelNode, classifyExtraConnections, siblingIndex, siblingCount, canRemoveTopLevelNode, buildOleObjectNamePatch, getOleObjectTypeLabel, sanitizeGradientStops, pptxActionToElementAction, withFrameSlides, withSlidesPerPage, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, schemaLabel, THEME_COLOR_SLOT_LABEL_KEYS, resolveSlideSizeSelection, SLIDE_SIZE_PRESETS, TRANSITION_VALID_DIRECTIONS, TRANSITION_ORIENTATION_TYPES, clampTransitionNumber, TRANSITION_SPEED_OPTIONS, TRANSITION_MORPH_OPTIONS, flattenTagCollections, resolveTemplateBackgroundRows, formatCommentTimestamp, buildAnimationTimelineRows, clearMotionPath, getEffectSoundState, setEffectSound, setAfterAnimation, setAfterAnimationColor, DIRECTIONAL_PRESETS, buildAnimationTimelineBars, motionPathPresetIdForPath, computeMergeCellRight, computeMergeCellDown, computeSplitCell, CHART_TYPE_OPTIONS, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSmartArtNodeAsChild, removeSmartArtNode, addSiblingAfter, removeEmptyNode, demote, promote, reorder, clampCropValue, DUOTONE_PRESETS, ARTISTIC_EFFECTS, resolveActionType, ELEMENT_ACTION_TYPE_OPTIONS, toSlideIndex, elementActionToPptxAction, canCommitActionType, slideSizeFromPreset, withSlideSizeOrientation, TRANSITION_DIR_ARROWS, buildDirectionGrid, updateTagInCollections, deleteTagFromCollections, addTagToCollections, commentTextSegments, COMMENT_MENTION_CLASS, COMMENT_MENTION_ATTRIBUTE, reorderAnimationTimelineRows, applyAnimationTimelineOrder, animationEffectLabel, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, switchSmartArtLayout, SHAPE_QUICK_STYLES, quickStyleSwatchCss, getPatternSvg, TEXT_WARP_PRESETS, warpPreviewPath, text3dPtToEmu, text3dEmuToPt, MATERIAL_PRESETS, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS, FILL_PATTERN_LABEL_KEYS, openNativeEyeDropper, toggleText3dExtrusion, BEVEL_PRESETS } from './chunk-ISDTM2V3.mjs';
1
+ import { computeFocusTargets, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, toRenderableParts } from './chunk-O5DKWJDK.mjs';
2
+ import { useViewerOptions, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useLayoutSwitching, ViewerOptionsContext, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useViewerOptionsContext, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP } from './chunk-4VVOTEQ4.mjs';
3
+ import { MIN_ELEMENT_SIZE, DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getCropShapeClipPath, getImageTilingStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, buildTextBody3DSceneStyle, SLIDE_NAV_THUMBNAIL_WIDTH, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, TOOLBAR_SECTIONS, DEFAULT_SECTION_GROUP_ID, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, HYPERLINK_COLOR, GRID_SIZE, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, THEME_COLOR_SWATCHES, STROKE_DASH_OPTIONS } from './chunk-W3J6SNVE.mjs';
4
+ import { LOCALE_CATALOG, translationsEn } from './chunk-ARJE3V6V.mjs';
5
+ import { hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, getElementTransform, getAriaRoleDescription, getAriaLabel, getAriaRole, resolveElementInteractivity, isEditableTextElement, isElementRendered, isElementActionable, getImageEffectsOpacity, getImageEffectsFilter, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, ACTION_BUTTON_PRESETS, mediaTransportVisible, isInkElement, getGroupChildParentFill, getElementLabel, SWITCHABLE_LAYOUT_TYPES, compileEquationTemplateMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, resolveAutosaveActivation, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, resolveExpiredAutosaveSnapshots, resolveHistoryDepth, applyAutoCorrect, resolveImageResolutionScale, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, shouldShowAutosaveRecoveryPrompt, resolveOptionRootClasses, resolve3DRenderingFlags, paintedStrokeWidth, buildCssGradientFromShapeStyle, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, getComputedEffectStyle, getSoftEdgeSvgFilter, buildStrokeOutline, buildHollowHitOutline, buildSubpathFillOverlay, isImageLikeElement, getComputedFillStyle, strokeOutlineViewBox, revealedSmartArtNodeCount, buildSmartArtA11y, computeSmartArtElementLayout, flattenNodes, buildSummaryZoomView, isImageTiled, getImageColorWashStyle, placeCaretAtEnd, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, resolveChartKind, ensureChartInteractionStyles, applyChartPartHighlight, applyChartBuildReveal, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleAriaLabel, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, RULER_THICKNESS, RULER_FONT_SIZE, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, themeToCssVars, shouldClearAutosaveCacheOnClose, applyMotionPathPreset, resetSlideLayoutPath, DEFAULT_INSERT_CHART_KIND, hasCopyableFormat, templateSchemeFromTheme, createBackstagePresentation, playFeedbackSound, shouldDiscardAutosaveOnSuccessfulSave, setMasterViewBackgroundColor, printPropertiesFrameSlides, printPropertiesSlidesPerPage, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, DEFAULT_PALETTE2, resolvePalette, computeDrawingViewBox, projectDrawingShapes, styleShadowFilter, resolveDrawingShapeNodeId, buildChromeStyle, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, findChartPartTarget, advanceChartValueDrag, beginChartValueDrag, buildSurfaceChart3DDataForElement, buildBarChart3DDataForElement, buildLineChart3DDataForElement, buildAreaChart3DDataForElement, buildPieChart3DDataForElement, withChartTitle, buildSmartArt3DModel, extractPathPoints, generatePressureCircles, generateNibMarks, isBrowserOpenableMime, formatBytes, getOleDisplayName, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, getWarpPath, getSlideBackgroundStyle, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, resolveScreenTip, masterViewBackgroundColor, buildFieldSubstitutionContext, shouldConfirmExternalHyperlink, safeOpenUrl, resolvePresentationAction, isPpactionUrl, parsePpactionUrl, isPresentationAdvanceClick, toggleBlackboard, PRESENT_TOOLBAR_CLASSES, buildContextMenuEntries, themeColorSchemesEqual, EXPANDED_MAX_HEIGHT, STATUS_BAR_CLASSES, buildBarActions, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, clampPercent, resolveDefaultPrintSettings, HANDOUT_OPTIONS, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS, resolveViewerAddinRows, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, CUSTOM_FONT_ACCEPT, activateModalFocus, buildCollaborationShareUrl, buildActiveSessionUsers, SORTER_MIN_ZOOM, SORTER_ZOOM_STEP, SORTER_MAX_ZOOM, canGoPrevious, formatSlideCounter, READING_VIEW_COUNTER_ATTR, canGoNext, READING_VIEW_ATTR, OUTLINE_LEVEL_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_ROW_ATTR, OUTLINE_VIEW_ATTR, mobileElapsedSince, nextPresentedSlide, presenterPrevDisabled, presenterNextDisabled, formatMobileElapsed, mobileSlideCounter, presenterPaneAdvancesOnClick, presenterTimerProgress, PRESENTER_CONSOLE_CLASSES, formatElapsed, centeredSvgTextLines, computeInlineEditorRect, findSmartArtNodeText, setSmartArtNodeStyle, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, updateSmartArtNodeText, groupIntoParagraphs, substituteFieldText, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, INSERT_CHART_TYPES, CHARACTER_SPACING_OPTIONS, RIBBON_SHAPE_SWATCHES, shapeFillChange, shapeOutlineChange, readRibbonTransitionDraft, ribbonTransitionUpdates, readSoundFileAsDataUrl, applyTransitionSoundFile, playSlideTransitionPreview, RIBBON_TRANSITION_PRESETS, transitionSoundOptions, transitionSoundSelectedValue, DEFAULT_MOTION_PATH_PRESET_ID, SLIDE_SHOW_OPTIONS, slideShowOptionChange, readSlideShowOption, SLIDE_VIRTUALIZATION_THRESHOLD, PRESENTATION_HIT_TEST_CSS, PRESENTATION_STAGE_ATTRIBUTE, getSlideTransitionAnimations, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, SLIDE_TRANSITION_KEYFRAMES, annotationOverlayZIndex, presentationInkPath, resolveNotesSchematicBodyFontSizePx, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptors, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, isBlackboardActive, slideSizeToCanvasPx, resolveSelectionPaneRename, PRESET_THEMES, resolveNotesSegments, segmentsToEditorHtml, DEBOUNCE_MS, createPlainNotesSegments, parseSegmentsFromRichEditor, segmentsToPlainText, getCurrentParagraphIndex, segmentsToParagraphs, paragraphsToSegments, MAX_INDENT_LEVEL, INDENT_PX, isUrlSafe, buildNotesPrintHtml, toggleSheet, sanitizeMathMl, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, downloadBlob, clampOptionNumber, QUICK_ACCESS_COMMAND_CATALOG, registerCustomFont, openReadingView, applyReadingViewCommand, createPresentationKeyBuffer, readingViewFitScale, READING_VIEW_STAGE_ATTR, buildOutline, applyOutlineEdit, mapOutlineKey, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, PRESENTER_CONSOLE_CONTROLS, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, resolveDefaultFontFamily, buildFontCatalog, TRANSITION_SOUND_OTHER_VALUE, TRANSITION_SOUND_NONE_VALUE, clearTransitionSound, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, masterViewPseudoSlide, authorConnectorBetweenSites, findEraserHitElementId, generateTicks, rulerDragToGuidePosition, getElementTransformWithoutRotation, buildCommentMarkers, COMMENT_MARKER_SIZE, collectConnectorSiteCandidates, getConnectorEndpointHandles, findConnectorSiteNear, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, themeColorLabel, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, COMMON_FONTS, buildSmartArtPresetData, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, isCurrentLayout, SLIDE_TEMPLATES, computeAnchoredPopupPosition, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, isElementLocked, mergeSlideTransition, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, buildLayoutPreviewGeometry, buildSlideTemplateContent, elementLockTogglePatch, buildTableDataGrid, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, TABLE_STYLE_PRESETS, applyTableStylePreset, evenColumnWidths, redistributeColumnWidth, evenRowHeights, patchChartData, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, describeSmartArtBounds, canAddTopLevelNode, classifyExtraConnections, siblingIndex, siblingCount, canRemoveTopLevelNode, buildOleObjectNamePatch, getOleObjectTypeLabel, sanitizeGradientStops, pptxActionToElementAction, withFrameSlides, withSlidesPerPage, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, schemaLabel, THEME_COLOR_SLOT_LABEL_KEYS, resolveSlideSizeSelection, SLIDE_SIZE_PRESETS, TRANSITION_VALID_DIRECTIONS, TRANSITION_ORIENTATION_TYPES, clampTransitionNumber, TRANSITION_SPEED_OPTIONS, TRANSITION_MORPH_OPTIONS, flattenTagCollections, resolveTemplateBackgroundRows, formatCommentTimestamp, buildAnimationTimelineRows, clearMotionPath, getEffectSoundState, setEffectSound, setAfterAnimation, setAfterAnimationColor, DIRECTIONAL_PRESETS, buildAnimationTimelineBars, motionPathPresetIdForPath, computeMergeCellRight, computeMergeCellDown, computeSplitCell, CHART_TYPE_OPTIONS, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSmartArtNodeAsChild, removeSmartArtNode, addSiblingAfter, removeEmptyNode, demote, promote, reorder, clampCropValue, DUOTONE_PRESETS, ARTISTIC_EFFECTS, resolveActionType, ELEMENT_ACTION_TYPE_OPTIONS, toSlideIndex, elementActionToPptxAction, canCommitActionType, slideSizeFromPreset, withSlideSizeOrientation, TRANSITION_DIR_ARROWS, buildDirectionGrid, updateTagInCollections, deleteTagFromCollections, addTagToCollections, commentTextSegments, COMMENT_MENTION_CLASS, COMMENT_MENTION_ATTRIBUTE, reorderAnimationTimelineRows, applyAnimationTimelineOrder, animationEffectLabel, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, switchSmartArtLayout, SHAPE_QUICK_STYLES, quickStyleSwatchCss, getPatternSvg, TEXT_WARP_PRESETS, warpPreviewPath, text3dPtToEmu, text3dEmuToPt, MATERIAL_PRESETS, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS, FILL_PATTERN_LABEL_KEYS, openNativeEyeDropper, toggleText3dExtrusion, BEVEL_PRESETS } from './chunk-S546O4W2.mjs';
6
6
  import React19, { createContext, useMemo, useState, useCallback, lazy, forwardRef, useEffect, useRef, Suspense, useLayoutEffect, useContext, Fragment as Fragment$1, useDeferredValue } from 'react';
7
7
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
8
8
  import { useTranslation } from 'react-i18next';
9
- import { LuRotateCw, LuMessageSquare, LuEyeOff, LuHistory, LuTrash2, LuSettings, LuX, LuCalendarDays, LuHash, LuText, LuCast, LuSave, LuUndo, LuRedo, LuSearch, LuShieldCheck, LuPlus, LuPanelLeftClose, LuStickyNote, LuMonitor, LuColumns2, LuPresentation, LuMinus, LuSettings2, LuLayers, LuClock, LuDownload, LuCheck, LuLock, LuEye, LuFileText, LuType, LuLoader, LuShieldAlert, LuSignature, LuInfo, LuTriangleAlert, LuPrinter, LuPenTool, LuBug, LuChevronUp, LuChevronDown, LuUpload, LuWifi, LuWifiOff, LuUsers, LuCopy, LuChevronLeft, LuChevronRight, LuPlay, LuPause, LuZoomOut, LuZoomIn, LuSpellCheck, LuFileDown, LuMenu, LuSparkles, LuShare2, LuPanelLeft, LuPanelRight, LuArrowLeft, LuFolderOpen, LuClipboardPaste, LuScissors, LuPaintbrush, LuSquare, LuImage, LuVideo, LuDatabase, LuAArrowUp, LuAArrowDown, LuRemoveFormatting, LuHighlighter, LuList, LuListOrdered, LuIndentDecrease, LuIndentIncrease, LuReplace, LuMousePointer2, LuShapes, LuPaintBucket, LuPenLine, LuPalette, LuPencil, LuStar, LuMoveRight, LuMousePointerClick, LuClock3, LuMonitorPlay, LuListVideo, LuCaptions, LuCamera, LuEraser, LuRotateCcw, LuCircleHelp, LuBookOpen, LuLanguages, LuGlobe, LuGitCompare, LuMessageSquarePlus, LuLockKeyhole, LuPanelTop, LuLayoutGrid, LuGrid3X3, LuPipette, LuRuler, LuMaximize2, LuCode, LuCaseSensitive, LuTimer, LuGripVertical, LuLoaderCircle, LuBold, LuItalic, LuUnderline, LuStrikethrough, LuLink, LuGrid2X2, LuCopyPlus, LuScan, LuMonitorOff, LuCirclePlay, LuCirclePause, LuArrowLeftRight, LuClipboardCopy, LuWand, LuTextCursorInput, LuFile, LuEllipsis, LuUserRound, LuFilePlus2, LuHouse, LuPackage, LuFileJson, LuBox, LuFileImage, LuUser, LuHardDrive, LuLogIn, LuLayoutTemplate, LuFolderPlus, LuAlignLeft, LuAlignCenter, LuAlignRight, LuAlignJustify, LuColumns3, LuSpline, LuAlignHorizontalSpaceAround, LuAlignVerticalSpaceAround, LuGroup, LuUngroup, LuMove, LuRadio, LuLockOpen, LuArrowDown, LuArrowUp, LuArrowRight, LuReply, LuBookmark } from 'react-icons/lu';
9
+ import { LuRotateCw, LuMessageSquare, LuEyeOff, LuHistory, LuTrash2, LuSettings, LuX, LuCalendarDays, LuHash, LuText, LuCast, LuSave, LuUndo, LuRedo, LuSearch, LuShieldCheck, LuPlus, LuPanelLeftClose, LuStickyNote, LuMonitor, LuColumns2, LuPresentation, LuMinus, LuSettings2, LuLayers, LuClock, LuDownload, LuCheck, LuLock, LuEye, LuFileText, LuType, LuLoader, LuShieldAlert, LuSignature, LuInfo, LuTriangleAlert, LuPrinter, LuPenTool, LuBug, LuChevronUp, LuChevronDown, LuUpload, LuWifi, LuWifiOff, LuUsers, LuCopy, LuChevronLeft, LuChevronRight, LuPlay, LuPause, LuZoomOut, LuZoomIn, LuSpellCheck, LuFileDown, LuMenu, LuSparkles, LuShare2, LuPanelLeft, LuPanelRight, LuArrowLeft, LuFolderOpen, LuClipboardPaste, LuScissors, LuPaintbrush, LuSquare, LuImage, LuVideo, LuDatabase, LuAArrowUp, LuAArrowDown, LuRemoveFormatting, LuHighlighter, LuList, LuListOrdered, LuIndentDecrease, LuIndentIncrease, LuReplace, LuMousePointer2, LuShapes, LuPaintBucket, LuPenLine, LuPalette, LuPencil, LuStar, LuMoveRight, LuMousePointerClick, LuClock3, LuMonitorPlay, LuListVideo, LuCaptions, LuCamera, LuEraser, LuRotateCcw, LuCircleHelp, LuBookOpen, LuLanguages, LuGlobe, LuGitCompare, LuMessageSquarePlus, LuLockKeyhole, LuPanelTop, LuLayoutGrid, LuGrid3X3, LuPipette, LuRuler, LuMaximize2, LuCode, LuCaseSensitive, LuTimer, LuGripVertical, LuLoaderCircle, LuBold, LuItalic, LuUnderline, LuStrikethrough, LuLink, LuGrid2X2, LuCopyPlus, LuScan, LuMonitorOff, LuCirclePlay, LuCirclePause, LuArrowLeftRight, LuClipboardCopy, LuWand, LuTextCursorInput, LuFile, LuEllipsis, LuUserRound, LuFilePlus2, LuHouse, LuFileJson, LuBox, LuFileImage, LuUser, LuHardDrive, LuLogIn, LuLayoutTemplate, LuFolderPlus, LuAlignLeft, LuAlignCenter, LuAlignRight, LuAlignJustify, LuColumns3, LuSpline, LuAlignHorizontalSpaceAround, LuAlignVerticalSpaceAround, LuGroup, LuUngroup, LuMove, LuRadio, LuLockOpen, LuArrowDown, LuArrowUp, LuArrowRight, LuReply, LuBookmark } from 'react-icons/lu';
10
10
 
11
11
  var ViewerThemeContext = createContext(void 0);
12
12
  function ViewerThemeProvider({ theme, children }) {
@@ -510,7 +510,7 @@ function FailedToLoad() {
510
510
  var LazyArea3DChartScene = React19.lazy(
511
511
  async () => {
512
512
  try {
513
- return await import('./Area3DChartScene-W6SVC235.mjs');
513
+ return await import('./Area3DChartScene-PMYXO4MR.mjs');
514
514
  } catch {
515
515
  return { default: FailedToLoad };
516
516
  }
@@ -566,7 +566,7 @@ function FailedToLoad2() {
566
566
  var LazyBar3DChartScene = React19.lazy(
567
567
  async () => {
568
568
  try {
569
- return await import('./Bar3DChartScene-FCVUZIJ3.mjs');
569
+ return await import('./Bar3DChartScene-CEOI6SU6.mjs');
570
570
  } catch {
571
571
  return { default: FailedToLoad2 };
572
572
  }
@@ -622,7 +622,7 @@ function FailedToLoad3() {
622
622
  var LazyLine3DChartScene = React19.lazy(
623
623
  async () => {
624
624
  try {
625
- return await import('./Line3DChartScene-MJXFXSPW.mjs');
625
+ return await import('./Line3DChartScene-EZZKWUZR.mjs');
626
626
  } catch {
627
627
  return { default: FailedToLoad3 };
628
628
  }
@@ -678,7 +678,7 @@ function FailedToLoad4() {
678
678
  var LazyPieChart3DScene = React19.lazy(
679
679
  async () => {
680
680
  try {
681
- return await import('./PieChart3DScene-UEVFZZVW.mjs');
681
+ return await import('./PieChart3DScene-DH6RSJO6.mjs');
682
682
  } catch {
683
683
  return { default: FailedToLoad4 };
684
684
  }
@@ -734,7 +734,7 @@ function FailedToLoad5() {
734
734
  var LazySurfaceChart3DScene = React19.lazy(
735
735
  async () => {
736
736
  try {
737
- return await import('./SurfaceChart3DScene-WD65PAG4.mjs');
737
+ return await import('./SurfaceChart3DScene-BMBU5RKI.mjs');
738
738
  } catch {
739
739
  return { default: FailedToLoad5 };
740
740
  }
@@ -1351,8 +1351,8 @@ function ResizeHandles({
1351
1351
  onResizePointerDown(elementId, e, handle);
1352
1352
  };
1353
1353
  const startRotate = (btn, pointerId) => {
1354
- const wrapper = btn.closest(
1355
- "[data-pptx-selection-handle-host], [data-element-id]"
1354
+ const wrapper = document.querySelector(
1355
+ `[data-element-id="${elementId}"]`
1356
1356
  );
1357
1357
  if (!wrapper) {
1358
1358
  return;
@@ -2923,7 +2923,7 @@ function FailedToLoad6() {
2923
2923
  var LazyModel3DScene = React19.lazy(
2924
2924
  async () => {
2925
2925
  try {
2926
- return await import('./Model3DScene-A5RV3KNJ.mjs');
2926
+ return await import('./Model3DScene-FGQJKWL6.mjs');
2927
2927
  } catch {
2928
2928
  return { default: FailedToLoad6 };
2929
2929
  }
@@ -5504,11 +5504,6 @@ var OV = [
5504
5504
  labelKey: "pptx.ribbon.exportGif",
5505
5505
  i: /* @__PURE__ */ jsx(LuImage, { className: `${ics} text-muted-foreground` })
5506
5506
  },
5507
- {
5508
- k: "package",
5509
- labelKey: "pptx.file.packageTooltip",
5510
- i: /* @__PURE__ */ jsx(LuFolderOpen, { className: `${ics} text-muted-foreground` })
5511
- },
5512
5507
  {
5513
5508
  k: "pptx",
5514
5509
  labelKey: "pptx.file.saveAsPptxTooltip",
@@ -6158,7 +6153,7 @@ function AccountPage() {
6158
6153
  return void 0;
6159
6154
  });
6160
6155
  };
6161
- const version = "3.1.0" ;
6156
+ const version = "3.1.1" ;
6162
6157
  return /* @__PURE__ */ jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
6163
6158
  /* @__PURE__ */ jsxs("section", { className: cardClass, children: [
6164
6159
  /* @__PURE__ */ jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
@@ -6337,7 +6332,6 @@ var ICONS = {
6337
6332
  saveAsPptx: LuDownload,
6338
6333
  saveAsPpsx: LuPlay,
6339
6334
  saveAsPptm: LuFileText,
6340
- package: LuPackage,
6341
6335
  pdf: LuFileText,
6342
6336
  png: LuFileImage,
6343
6337
  video: LuVideo,
@@ -6345,8 +6339,7 @@ var ICONS = {
6345
6339
  json: LuFileJson,
6346
6340
  copyImage: LuCopy,
6347
6341
  print: LuPrinter,
6348
- share: LuShare2,
6349
- sharePackage: LuPackage
6342
+ share: LuShare2
6350
6343
  };
6351
6344
  function BackstageCards({
6352
6345
  page,
@@ -6363,7 +6356,6 @@ function BackstageCards({
6363
6356
  saveAsPptx: props.onSaveAsPptx,
6364
6357
  saveAsPpsx: props.onSaveAsPpsx,
6365
6358
  saveAsPptm: props.onSaveAsPptm,
6366
- package: props.onPackageForSharing,
6367
6359
  pdf: props.onExportPdf,
6368
6360
  png: props.onExportPng,
6369
6361
  video: props.onExportVideo,
@@ -6371,8 +6363,7 @@ function BackstageCards({
6371
6363
  json: props.onExportJson,
6372
6364
  copyImage: props.onCopySlideAsImage,
6373
6365
  print: props.onPrint,
6374
- share: props.onOpenShareDialog,
6375
- sharePackage: props.onPackageForSharing
6366
+ share: props.onOpenShareDialog
6376
6367
  };
6377
6368
  const cards = backstageCardsFor(page).filter(
6378
6369
  (card) => card.id !== "saveAsPptm" || props.hasMacros
@@ -6421,8 +6412,8 @@ function FileSection(p) {
6421
6412
  const { isHidden } = useToolbarVisibility(p.hiddenActions);
6422
6413
  const exportHidden = isHidden("export");
6423
6414
  useEffect(() => {
6424
- void listBackstageRecentFiles(t).then(setRecent);
6425
- }, [t]);
6415
+ void listBackstageRecentFiles(t, p.recentPresentationsCount).then(setRecent);
6416
+ }, [t, p.recentPresentationsCount]);
6426
6417
  const visibleRecent = useMemo(() => {
6427
6418
  const q = query.trim().toLowerCase();
6428
6419
  return q ? recent.filter((file) => `${file.name} ${file.location}`.toLowerCase().includes(q)) : recent;
@@ -9302,7 +9293,6 @@ function MobileSectionBody({
9302
9293
  onExportVideo: p.onExportVideo,
9303
9294
  onExportGif: p.onExportGif,
9304
9295
  onExportJson: p.onExportJson,
9305
- onPackageForSharing: p.onPackageForSharing,
9306
9296
  onSaveAsPptx: p.onSaveAsPptx,
9307
9297
  onSaveAsPpsx: p.onSaveAsPpsx,
9308
9298
  onSaveAsPptm: p.onSaveAsPptm,
@@ -9316,7 +9306,8 @@ function MobileSectionBody({
9316
9306
  onOpenFontEmbedding: p.onOpenFontEmbedding,
9317
9307
  onOpenDigitalSignatures: p.onOpenDigitalSignatures,
9318
9308
  onOpenVersionHistory: p.onToggleVersionHistory,
9319
- hiddenActions: p.hiddenActions
9309
+ hiddenActions: p.hiddenActions,
9310
+ recentPresentationsCount: p.recentPresentationsCount
9320
9311
  }
9321
9312
  ) });
9322
9313
  default:
@@ -9413,7 +9404,7 @@ function MobileToolbar(props) {
9413
9404
  "button",
9414
9405
  {
9415
9406
  type: "button",
9416
- onClick: props.onOpenShareDialog ?? props.onPackageForSharing,
9407
+ onClick: props.onOpenShareDialog,
9417
9408
  className: cn(btn, "bg-primary text-white hover:bg-primary/90 px-3"),
9418
9409
  title: t("pptx.toolbar.share"),
9419
9410
  "aria-label": t("pptx.toolbar.share"),
@@ -9814,7 +9805,7 @@ function TabRowActions(p) {
9814
9805
  "button",
9815
9806
  {
9816
9807
  type: "button",
9817
- onClick: p.onOpenShareDialog ?? p.onPackageForSharing,
9808
+ onClick: p.onOpenShareDialog,
9818
9809
  className: cn(
9819
9810
  "relative inline-flex items-center gap-1 px-2.5 py-1 rounded-sm text-[11px] font-medium transition-colors whitespace-nowrap",
9820
9811
  isCollaborating ? "bg-green-600 hover:bg-green-500 text-white" : "bg-primary hover:bg-primary/90 text-white"
@@ -9829,6 +9820,44 @@ function TabRowActions(p) {
9829
9820
  )
9830
9821
  ] });
9831
9822
  }
9823
+ var QUICK_ACCESS_ICONS = {
9824
+ save: LuSave,
9825
+ undo: LuUndo,
9826
+ redo: LuRedo,
9827
+ play: LuPlay,
9828
+ printer: LuPrinter,
9829
+ fileDown: LuFileDown,
9830
+ plus: LuPlus,
9831
+ spellCheck: LuSpellCheck,
9832
+ zoomIn: LuZoomIn,
9833
+ zoomOut: LuZoomOut
9834
+ };
9835
+ function TitleBarQuickExtras(p) {
9836
+ const { t } = useTranslation();
9837
+ if (!p.quickAccess.visible) {
9838
+ return null;
9839
+ }
9840
+ const commands = extraQuickAccessCommands(p.quickAccess.commandIds);
9841
+ if (commands.length === 0) {
9842
+ return null;
9843
+ }
9844
+ return /* @__PURE__ */ jsx(Fragment, { children: commands.map((command) => {
9845
+ const Icon = QUICK_ACCESS_ICONS[command.icon] ?? LuPlay;
9846
+ const label = t(command.labelKey);
9847
+ return /* @__PURE__ */ jsx(
9848
+ "button",
9849
+ {
9850
+ type: "button",
9851
+ onClick: () => p.onCommand?.(command.id),
9852
+ className: TITLE_BAR_CLASSES.quickButton,
9853
+ title: label,
9854
+ "aria-label": label,
9855
+ children: /* @__PURE__ */ jsx(Icon, { className: "w-3.5 h-3.5" })
9856
+ },
9857
+ command.id
9858
+ );
9859
+ }) });
9860
+ }
9832
9861
  function PresentDropdown({
9833
9862
  isActive,
9834
9863
  onPresent,
@@ -10028,7 +10057,6 @@ function OverflowMenu(p) {
10028
10057
  pdf: p.onExportPdf,
10029
10058
  video: p.onExportVideo,
10030
10059
  gif: p.onExportGif,
10031
- package: p.onPackageForSharing,
10032
10060
  pptx: p.onSaveAsPptx,
10033
10061
  ppsx: p.onSaveAsPpsx,
10034
10062
  pptm: p.onSaveAsPptm,
@@ -10211,7 +10239,16 @@ function ToolbarPrimaryRow(p) {
10211
10239
  children: /* @__PURE__ */ jsx(LuSettings, { className: ics })
10212
10240
  }
10213
10241
  ),
10214
- !canEdit && /* @__PURE__ */ jsx("span", { className: "inline-flex items-center px-2 py-0.5 rounded-sm bg-amber-600/90 text-[10px] text-amber-50", children: t("pptx.toolbar.readOnly") }),
10242
+ !canEdit && p.isProtectedView && p.onEnableEditing ? /* @__PURE__ */ jsx(
10243
+ "button",
10244
+ {
10245
+ type: "button",
10246
+ onClick: p.onEnableEditing,
10247
+ className: "inline-flex items-center px-2 py-0.5 rounded-sm bg-amber-600/90 text-[10px] text-amber-50 transition-colors hover:bg-amber-600",
10248
+ title: t("pptx.options.trust.protectedViewInfo"),
10249
+ children: t("pptx.security.enableEditing")
10250
+ }
10251
+ ) : !canEdit && /* @__PURE__ */ jsx("span", { className: "inline-flex items-center px-2 py-0.5 rounded-sm bg-amber-600/90 text-[10px] text-amber-50", children: t("pptx.toolbar.readOnly") }),
10215
10252
  /* @__PURE__ */ jsx(OverflowMenu, { ...p })
10216
10253
  ] });
10217
10254
  }
@@ -10219,6 +10256,7 @@ function Toolbar(p) {
10219
10256
  const { mode, isNarrowViewport, isCompactToolbarOpen, toolbarSection, onSetToolbarSection } = p;
10220
10257
  const { t } = useTranslation();
10221
10258
  const { isTabVisible } = useToolbarVisibility(p.hiddenActions);
10259
+ const viewerOptions = useViewerOptionsContext();
10222
10260
  if (isNarrowViewport && mode !== "present") {
10223
10261
  return /* @__PURE__ */ jsx(MobileToolbar, { ...p });
10224
10262
  }
@@ -10257,6 +10295,7 @@ function Toolbar(p) {
10257
10295
  type: "button",
10258
10296
  role: "tab",
10259
10297
  "aria-selected": toolbarSection === s.id,
10298
+ title: resolveScreenTip(viewerOptions, t(s.labelKey)),
10260
10299
  onClick: () => onSetToolbarSection(s.id),
10261
10300
  className: cn(
10262
10301
  "relative px-3.5 py-2 text-[12px] font-medium whitespace-nowrap transition-colors max-md:min-h-[36px] max-md:px-3",
@@ -10272,7 +10311,6 @@ function Toolbar(p) {
10272
10311
  {
10273
10312
  onEnterRehearsalMode: p.canEdit ? p.onEnterRehearsalMode : void 0,
10274
10313
  onOpenShareDialog: p.onOpenShareDialog,
10275
- onPackageForSharing: p.onPackageForSharing,
10276
10314
  hiddenActions: p.hiddenActions
10277
10315
  }
10278
10316
  ),
@@ -10294,11 +10332,18 @@ function Toolbar(p) {
10294
10332
  ]
10295
10333
  }
10296
10334
  ),
10335
+ showRibbon && viewerOptions.quickAccess.position === "below" && /* @__PURE__ */ jsx("div", { className: "flex items-center gap-0.5 border-b border-border/60 px-2 py-1", children: /* @__PURE__ */ jsx(
10336
+ TitleBarQuickExtras,
10337
+ {
10338
+ quickAccess: viewerOptions.quickAccess,
10339
+ onCommand: p.onQuickCommand
10340
+ }
10341
+ ) }),
10297
10342
  showRibbon && /* @__PURE__ */ jsxs(
10298
10343
  "div",
10299
10344
  {
10300
10345
  className: cn(
10301
- "flex min-h-[82px] items-stretch gap-0 overflow-x-auto px-1 py-0.5 max-md:min-h-0 max-md:px-1 max-md:py-0.5 flex-nowrap [&>*]:shrink-0",
10346
+ "flex min-h-[82px] items-center gap-0 overflow-x-auto px-1 py-0.5 max-md:min-h-0 max-md:px-1 max-md:py-0.5 flex-nowrap [&>*]:shrink-0",
10302
10347
  isNarrowViewport && !isCompactToolbarOpen && "hidden"
10303
10348
  ),
10304
10349
  children: [
@@ -10315,7 +10360,6 @@ function Toolbar(p) {
10315
10360
  onExportVideo: p.onExportVideo,
10316
10361
  onExportGif: p.onExportGif,
10317
10362
  onExportJson: p.onExportJson,
10318
- onPackageForSharing: p.onPackageForSharing,
10319
10363
  onSaveAsPptx: p.onSaveAsPptx,
10320
10364
  onSaveAsPpsx: p.onSaveAsPpsx,
10321
10365
  onSaveAsPptm: p.onSaveAsPptm,
@@ -10329,7 +10373,8 @@ function Toolbar(p) {
10329
10373
  onOpenFontEmbedding: p.onOpenFontEmbedding,
10330
10374
  onOpenDigitalSignatures: p.onOpenDigitalSignatures,
10331
10375
  onOpenVersionHistory: p.onToggleVersionHistory,
10332
- hiddenActions: p.hiddenActions
10376
+ hiddenActions: p.hiddenActions,
10377
+ recentPresentationsCount: p.recentPresentationsCount
10333
10378
  }
10334
10379
  ),
10335
10380
  sHome && /* @__PURE__ */ jsx(
@@ -22039,6 +22084,7 @@ function ChartTypeSelector({
22039
22084
  }
22040
22085
  function ChartDataPanel({ selectedElement, canEdit, onUpdateElement }) {
22041
22086
  const chartData = selectedElement.chartData;
22087
+ const followDataPoint = useViewerOptionsContext().advanced.chartPropertiesFollowDataPoint;
22042
22088
  const { selection: partSelection } = useChartPartSelection();
22043
22089
  const canvasPart = partSelection?.elementId === selectedElement.id ? partSelection.part : null;
22044
22090
  const title = chartData?.title;
@@ -22159,12 +22205,12 @@ function ChartDataPanel({ selectedElement, canEdit, onUpdateElement }) {
22159
22205
  }, [chartData, replaceChartData]);
22160
22206
  const removeCategory = useCallback(
22161
22207
  (catIndex) => {
22162
- const next = chartData && removeChartCategory(chartData, catIndex);
22208
+ const next = chartData && removeChartCategory(chartData, catIndex, followDataPoint);
22163
22209
  if (next) {
22164
22210
  replaceChartData(next);
22165
22211
  }
22166
22212
  },
22167
- [chartData, replaceChartData]
22213
+ [chartData, followDataPoint, replaceChartData]
22168
22214
  );
22169
22215
  const addSeries = useCallback(() => {
22170
22216
  if (chartData) {
@@ -31188,10 +31234,15 @@ function PrintDialog({
31188
31234
  }) {
31189
31235
  const { t } = useTranslation();
31190
31236
  const { panelStyle, handlers: dragHandlers } = useModalDismissDrag(onClose);
31191
- const [printWhat, setPrintWhat] = useState("slides");
31237
+ const printOptionDefaults = resolveDefaultPrintSettings(useViewerOptionsContext());
31238
+ const [printWhat, setPrintWhat] = useState(printOptionDefaults?.printWhat ?? "slides");
31192
31239
  const [orientation, setOrientation] = useState("landscape");
31193
- const [colorMode, setColorMode] = useState("color");
31194
- const [frameSlides, setFrameSlides] = useState(defaultFrameSlides ?? false);
31240
+ const [colorMode, setColorMode] = useState(
31241
+ printOptionDefaults?.colorMode ?? "color"
31242
+ );
31243
+ const [frameSlides, setFrameSlides] = useState(
31244
+ printOptionDefaults?.frameSlides ?? defaultFrameSlides ?? false
31245
+ );
31195
31246
  const [slidesPerPage, setSlidesPerPage] = useState(
31196
31247
  HANDOUT_OPTIONS.includes(defaultSlidesPerPage) ? defaultSlidesPerPage : 6
31197
31248
  );
@@ -31250,7 +31301,10 @@ function PrintDialog({
31250
31301
  slidesPerPage,
31251
31302
  slideRange,
31252
31303
  customRangeFrom: Math.max(1, Math.min(customFrom, slides.length)),
31253
- customRangeTo: Math.max(1, Math.min(customTo, slides.length))
31304
+ customRangeTo: Math.max(1, Math.min(customTo, slides.length)),
31305
+ // Options > Advanced > "Print scale to fit"; no dialog control of its
31306
+ // own (PowerPoint keeps this an Options default, not a per-job choice).
31307
+ scaleToFit: printOptionDefaults?.scaleToFit ?? true
31254
31308
  });
31255
31309
  }, [
31256
31310
  printWhat,
@@ -31262,6 +31316,7 @@ function PrintDialog({
31262
31316
  customFrom,
31263
31317
  customTo,
31264
31318
  slides.length,
31319
+ printOptionDefaults?.scaleToFit,
31265
31320
  onPrint
31266
31321
  ]);
31267
31322
  if (!open) {
@@ -32025,8 +32080,9 @@ function ActiveSessionView({
32025
32080
  onCopyRoomId,
32026
32081
  onStopCollaboration
32027
32082
  }) {
32028
- const { t } = useTranslation(), statusColor = collab.status === "connected" ? "text-green-400" : collab.status === "connecting" ? "text-yellow-400" : "text-red-400", statusIcon = collab.status === "connected" || collab.status === "connecting" ? /* @__PURE__ */ jsx(LuWifi, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx(LuWifiOff, { className: "w-4 h-4" }), sessionUsers = buildActiveSessionUsers({
32083
+ const { t } = useTranslation(), viewerOptions = useViewerOptionsContext(), statusColor = collab.status === "connected" ? "text-green-400" : collab.status === "connecting" ? "text-yellow-400" : "text-red-400", statusIcon = collab.status === "connected" || collab.status === "connecting" ? /* @__PURE__ */ jsx(LuWifi, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx(LuWifiOff, { className: "w-4 h-4" }), sessionUsers = buildActiveSessionUsers({
32029
32084
  localUserName: activeCollaboration?.userName ?? collab.config.userName,
32085
+ localUserInitials: viewerOptions.general.userInitials,
32030
32086
  localUserColor: collab.config.userColor,
32031
32087
  remoteUsers: collab.remoteUsers
32032
32088
  });
@@ -32995,48 +33051,6 @@ function ViewerInspector({
32995
33051
  }
32996
33052
  );
32997
33053
  }
32998
- var ViewerOptionsContext = createContext(DEFAULT_VIEWER_OPTIONS);
32999
- function useViewerOptionsContext() {
33000
- return useContext(ViewerOptionsContext);
33001
- }
33002
- var QUICK_ACCESS_ICONS = {
33003
- save: LuSave,
33004
- undo: LuUndo,
33005
- redo: LuRedo,
33006
- play: LuPlay,
33007
- printer: LuPrinter,
33008
- fileDown: LuFileDown,
33009
- plus: LuPlus,
33010
- spellCheck: LuSpellCheck,
33011
- zoomIn: LuZoomIn,
33012
- zoomOut: LuZoomOut
33013
- };
33014
- function TitleBarQuickExtras(p) {
33015
- const { t } = useTranslation();
33016
- if (!p.quickAccess.visible) {
33017
- return null;
33018
- }
33019
- const commands = extraQuickAccessCommands(p.quickAccess.commandIds);
33020
- if (commands.length === 0) {
33021
- return null;
33022
- }
33023
- return /* @__PURE__ */ jsx(Fragment, { children: commands.map((command) => {
33024
- const Icon = QUICK_ACCESS_ICONS[command.icon] ?? LuPlay;
33025
- const label = t(command.labelKey);
33026
- return /* @__PURE__ */ jsx(
33027
- "button",
33028
- {
33029
- type: "button",
33030
- onClick: () => p.onCommand?.(command.id),
33031
- className: TITLE_BAR_CLASSES.quickButton,
33032
- title: label,
33033
- "aria-label": label,
33034
- children: /* @__PURE__ */ jsx(Icon, { className: "w-3.5 h-3.5" })
33035
- },
33036
- command.id
33037
- );
33038
- }) });
33039
- }
33040
33054
  function TitleBar(p) {
33041
33055
  const { t } = useTranslation();
33042
33056
  const editing = (p.mode === "edit" || p.mode === "master") && p.canEdit;
@@ -33152,7 +33166,7 @@ function TitleBar(p) {
33152
33166
  children: /* @__PURE__ */ jsx(LuRedo, { className: "w-3.5 h-3.5" })
33153
33167
  }
33154
33168
  ),
33155
- /* @__PURE__ */ jsx(TitleBarQuickExtras, { quickAccess, onCommand: p.onQuickCommand }),
33169
+ quickAccess.position !== "below" && /* @__PURE__ */ jsx(TitleBarQuickExtras, { quickAccess, onCommand: p.onQuickCommand }),
33156
33170
  /* @__PURE__ */ jsx("div", { className: TITLE_BAR_CLASSES.separator })
33157
33171
  ] }),
33158
33172
  /* @__PURE__ */ jsxs("span", { className: TITLE_BAR_CLASSES.fileGroup, children: [
@@ -33278,9 +33292,12 @@ function ViewerToolbarSection(props) {
33278
33292
  autosaveEnabled = true,
33279
33293
  onToggleAutosave,
33280
33294
  hiddenActions,
33295
+ recentPresentationsCount,
33281
33296
  aiEnabled,
33282
33297
  isAiPanelOpen,
33283
- onToggleAiPanel
33298
+ onToggleAiPanel,
33299
+ isProtectedView,
33300
+ onEnableEditing
33284
33301
  } = props;
33285
33302
  const { t } = useTranslation();
33286
33303
  const handleAddAnimation = useCallback(
@@ -33558,7 +33575,11 @@ function ViewerToolbarSection(props) {
33558
33575
  fileName,
33559
33576
  mode,
33560
33577
  canEdit,
33578
+ isProtectedView,
33579
+ onEnableEditing,
33580
+ onQuickCommand: handleQuickAccessCommand,
33561
33581
  hiddenActions,
33582
+ recentPresentationsCount,
33562
33583
  isNarrowViewport: dialogs.isNarrowViewport,
33563
33584
  isSidebarCollapsed: !s.isSlidesPaneOpen,
33564
33585
  isInspectorPaneOpen: s.isInspectorPaneOpen,
@@ -33648,7 +33669,6 @@ function ViewerToolbarSection(props) {
33648
33669
  onExportVideo: exportHandlers.handleExportVideo,
33649
33670
  onExportGif: exportHandlers.handleExportGif,
33650
33671
  onExportJson: exportHandlers.handleExportJson,
33651
- onPackageForSharing: exportHandlers.handlePackageForSharing,
33652
33672
  onOpenFile,
33653
33673
  onOpenRecentFile,
33654
33674
  onCreatePresentation: (templateId) => {
@@ -34352,7 +34372,7 @@ function ViewerDialogGroup(props) {
34352
34372
  {
34353
34373
  open: printHandlers.isPrintDialogOpen,
34354
34374
  onClose: () => printHandlers.setIsPrintDialogOpen(false),
34355
- onPrint: printHandlers.handlePrintWithSettings,
34375
+ onPrint: printHandlers.handlePrintSvg,
34356
34376
  slides,
34357
34377
  activeSlideIndex,
34358
34378
  defaultSlidesPerPage: printPropertiesSlidesPerPage(presentationProperties.printProperties),
@@ -34764,12 +34784,17 @@ ${url}`)) {
34764
34784
  const handleActionClick = useCallback(
34765
34785
  (_elementId, action) => {
34766
34786
  if (mode === "present") {
34787
+ const resolved = resolvePresentationAction(action, { slideCount: slides.length });
34788
+ if (resolved.intent.kind === "openUrl") {
34789
+ openExternalUrl(resolved.intent.url);
34790
+ return;
34791
+ }
34767
34792
  presentation.handlePresentationAction(action);
34768
34793
  } else if (action.url) {
34769
34794
  openExternalUrl(action.url);
34770
34795
  }
34771
34796
  },
34772
- [mode, presentation, openExternalUrl]
34797
+ [mode, presentation, openExternalUrl, slides.length]
34773
34798
  );
34774
34799
  const handleHyperlinkClick = useCallback(
34775
34800
  (url) => {
@@ -35168,7 +35193,7 @@ ${url}`)) {
35168
35193
  var AiChatPanel = lazy(async () => {
35169
35194
  const [{ useChat }, { default: Panel }] = await Promise.all([
35170
35195
  import('@ai-sdk/react'),
35171
- import('./AiChatPanel-EIENGCKW.mjs')
35196
+ import('./AiChatPanel-UCFQIWOQ.mjs')
35172
35197
  ]);
35173
35198
  function BoundAiChatPanel(props) {
35174
35199
  return /* @__PURE__ */ jsx(Panel, { ...props, useChat });
@@ -38212,7 +38237,7 @@ var PowerPointViewer = forwardRef(
38212
38237
  fonts = [],
38213
38238
  filePath,
38214
38239
  fileName,
38215
- canEdit = false,
38240
+ canEdit: hostCanEdit = false,
38216
38241
  autosave: hostAutosave,
38217
38242
  autosaveIntervalMs: hostAutosaveIntervalMs,
38218
38243
  onContentChange,
@@ -38341,6 +38366,16 @@ var PowerPointViewer = forwardRef(
38341
38366
  }
38342
38367
  })();
38343
38368
  }, []);
38369
+ const { optionsStore, options: viewerOptions } = useViewerOptions();
38370
+ const [protectedViewOverridden, setProtectedViewOverridden] = useState(false);
38371
+ useEffect(() => {
38372
+ setProtectedViewOverridden(false);
38373
+ }, [content]);
38374
+ const isProtectedView = viewerOptions.trust.openInProtectedView && !protectedViewOverridden;
38375
+ const handleEnableEditing = useCallback(() => {
38376
+ setProtectedViewOverridden(true);
38377
+ }, []);
38378
+ const canEdit = hostCanEdit && !isProtectedView;
38344
38379
  const [isSettingsOpen, setIsSettingsOpen] = useState(false);
38345
38380
  const [isHeaderFooterOpen, setIsHeaderFooterOpen] = useState(false);
38346
38381
  const [autosaveEnabled, setAutosaveEnabled] = useState(true);
@@ -38412,7 +38447,6 @@ var PowerPointViewer = forwardRef(
38412
38447
  },
38413
38448
  [state, reducedMotion, toggleReducedMotion]
38414
38449
  );
38415
- const { optionsStore, options: viewerOptions } = useViewerOptions();
38416
38450
  const settingsRef = useRef(settings);
38417
38451
  settingsRef.current = settings;
38418
38452
  const handleSettingsChangeRef = useRef(handleSettingsChange);
@@ -38457,6 +38491,28 @@ var PowerPointViewer = forwardRef(
38457
38491
  await Promise.all(snapshots.map((entry) => deleteAutosaveSnapshot(entry.key)));
38458
38492
  })();
38459
38493
  }, []);
38494
+ useEffect(() => {
38495
+ void (async () => {
38496
+ try {
38497
+ const snapshots = await listAutosaveSnapshots();
38498
+ const expired = resolveExpiredAutosaveSnapshots(snapshots, viewerOptions);
38499
+ await Promise.all(expired.map((key) => deleteAutosaveSnapshot(key)));
38500
+ } catch {
38501
+ }
38502
+ })();
38503
+ }, []);
38504
+ useEffect(() => {
38505
+ const clearIfRequested = () => {
38506
+ if (shouldClearAutosaveCacheOnClose(viewerOptions)) {
38507
+ handleClearOptionsCache();
38508
+ }
38509
+ };
38510
+ window.addEventListener("beforeunload", clearIfRequested);
38511
+ return () => {
38512
+ window.removeEventListener("beforeunload", clearIfRequested);
38513
+ clearIfRequested();
38514
+ };
38515
+ }, [viewerOptions, handleClearOptionsCache]);
38460
38516
  const mobile = useIsMobile();
38461
38517
  const { isMobile, isTouchDevice, isVirtualKeyboardOpen } = mobile;
38462
38518
  const resizablePanels = useResizablePanels();
@@ -38502,6 +38558,9 @@ var PowerPointViewer = forwardRef(
38502
38558
  headerFooter: state.headerFooter,
38503
38559
  loading,
38504
38560
  error,
38561
+ // File > Options > Advanced > "Maximum number of undos", re-read every
38562
+ // render so a mid-session change reaches the undo stack.
38563
+ maxHistoryEntries: resolveHistoryDepth(viewerOptions),
38505
38564
  hasActivePointerInteraction,
38506
38565
  pointerCommitNonce: state.pointerCommitNonce,
38507
38566
  onDirty: markDocumentDirty,
@@ -38514,13 +38573,18 @@ var PowerPointViewer = forwardRef(
38514
38573
  setEditTemplateMode: state.setEditTemplateMode,
38515
38574
  setHeaderFooter: state.setHeaderFooter
38516
38575
  });
38517
- const { presentation, annotations, actionSoundHandlerRef } = usePresentationSetup({
38576
+ const { presentation, annotations, actionSoundHandlerRef, setExitModeHandler } = usePresentationSetup({
38518
38577
  mode,
38519
38578
  slides,
38520
38579
  visibleSlideIndexes,
38521
38580
  // File > Options > Advanced > "End with black slide". Off means the show
38522
38581
  // exits straight to the editor instead of raising the black end screen.
38523
38582
  endWithBlackSlide: viewerOptions.advanced.slideShowEndWithBlackSlide,
38583
+ // File > Options > Advanced > "Prompt to keep ink annotations when
38584
+ // exiting". Off skips the keep/discard dialog entirely.
38585
+ promptKeepInkAnnotations: viewerOptions.advanced.slideShowPromptKeepInkAnnotations,
38586
+ // File > Options > Advanced > "Show popup toolbar" while presenting.
38587
+ popupToolbarEnabled: viewerOptions.advanced.slideShowShowPopupToolbar,
38524
38588
  activeSlideIndex,
38525
38589
  containerRef,
38526
38590
  content,
@@ -38616,11 +38680,16 @@ var PowerPointViewer = forwardRef(
38616
38680
  canvasSize,
38617
38681
  dialogs,
38618
38682
  presentation,
38619
- userName: authorName ?? collaboration?.userName,
38620
- handlerRef: actionSoundHandlerRef
38683
+ // Comment/reply authorship: an explicit host `authorName` or an active
38684
+ // collaboration session's identity wins; otherwise fall back to the
38685
+ // user's own Options > General > "User name" before the generic "You".
38686
+ userName: authorName ?? collaboration?.userName ?? (viewerOptions.general.userName || void 0),
38687
+ handlerRef: actionSoundHandlerRef,
38688
+ // Options > Proofing > AutoCorrect, applied to committed inline-edit text.
38689
+ transformCommittedText: (text) => applyAutoCorrect(text, viewerOptions.proofing)
38621
38690
  });
38622
38691
  const {
38623
- exportHandlers,
38692
+ exportHandlers: rawExportHandlers,
38624
38693
  printHandlers,
38625
38694
  themeHandlers,
38626
38695
  propertyHandlers,
@@ -38656,7 +38725,20 @@ var PowerPointViewer = forwardRef(
38656
38725
  hostIntervalMs: hostAutosaveIntervalMs,
38657
38726
  optionsIntervalSeconds: resolveAutosaveIntervalSeconds(viewerOptions)
38658
38727
  }),
38728
+ // Trust Center > "Allow external content": core defaults this to false
38729
+ // (SSRF/privacy-safe), so only an explicit `true` here lets remote
38730
+ // http(s) image sources actually load.
38731
+ allowExternalImages: viewerOptions.trust.allowExternalContent,
38659
38732
  canEdit,
38733
+ promptKeepInkAnnotations: viewerOptions.advanced.slideShowPromptKeepInkAnnotations,
38734
+ // File > Options > Advanced > "Image Size and Quality" (do-not-compress /
38735
+ // default resolution), resolved to a raster-scale multiplier for
38736
+ // PNG/PDF export and copy-slide-as-image. Multiplied against the
38737
+ // pre-existing 2x baseline (not used outright) so the default "High
38738
+ // fidelity" preset (raw multiplier 1) keeps today's export quality
38739
+ // instead of silently downgrading it; the explicit ppi presets still
38740
+ // scale proportionally from that baseline. Mirrors the other bindings.
38741
+ imageExportScale: 2 * resolveImageResolutionScale(viewerOptions),
38660
38742
  mode,
38661
38743
  slides,
38662
38744
  activeSlide,
@@ -38674,6 +38756,26 @@ var PowerPointViewer = forwardRef(
38674
38756
  onSelectionChange,
38675
38757
  onSlideCountChange
38676
38758
  });
38759
+ const exportHandlers = useMemo(() => {
38760
+ const afterSuccessfulSave = (format) => {
38761
+ playFeedbackSound(viewerOptions);
38762
+ if (format === "pptx" && filePath && shouldDiscardAutosaveOnSuccessfulSave(viewerOptions)) {
38763
+ void deleteAutosaveSnapshot(filePath);
38764
+ }
38765
+ };
38766
+ const handleSaveAsFormat = async (format) => {
38767
+ await rawExportHandlers.handleSaveAsFormat(format);
38768
+ afterSuccessfulSave(format);
38769
+ };
38770
+ return {
38771
+ ...rawExportHandlers,
38772
+ handleSaveAsFormat,
38773
+ handleSaveAsPptx: () => void handleSaveAsFormat("pptx"),
38774
+ handleSaveAsPpsx: () => void handleSaveAsFormat("ppsx"),
38775
+ handleSaveAsPptm: () => void handleSaveAsFormat("pptm")
38776
+ };
38777
+ }, [rawExportHandlers, viewerOptions, filePath]);
38778
+ setExitModeHandler(handleSetMode);
38677
38779
  const handleTemplateElementsChanged = useCallback(
38678
38780
  (slideId, elements) => {
38679
38781
  state.setTemplateElementsBySlideId((prev) => ({ ...prev, [slideId]: elements }));
@@ -38739,13 +38841,21 @@ var PowerPointViewer = forwardRef(
38739
38841
  });
38740
38842
  const showSlidesPane = mode === "edit" && !isMobile && !dialogs.isNarrowViewport && state.isSlidesPaneOpen;
38741
38843
  const showMasterPane = mode === "master" && !isMobile && state.isSlidesPaneOpen;
38844
+ const addinStatus = {
38845
+ smartArt3d: smartArt3D && !viewerOptions.advanced.disable3DRendering,
38846
+ collaboration: Boolean(collaboration),
38847
+ locales: resolvedLocales.length > 1
38848
+ };
38742
38849
  const viewerContent = /* @__PURE__ */ jsxs(
38743
38850
  "div",
38744
38851
  {
38745
38852
  style: themeStyle,
38746
38853
  "data-pptx-viewer": "",
38747
38854
  "aria-busy": loading,
38748
- className: "h-full w-full bg-background text-foreground relative",
38855
+ className: cn(
38856
+ "h-full w-full bg-background text-foreground relative",
38857
+ ...resolveOptionRootClasses(viewerOptions, "pptx")
38858
+ ),
38749
38859
  children: [
38750
38860
  /* @__PURE__ */ jsx(
38751
38861
  "div",
@@ -38795,9 +38905,12 @@ var PowerPointViewer = forwardRef(
38795
38905
  }
38796
38906
  },
38797
38907
  hiddenActions,
38908
+ recentPresentationsCount: viewerOptions.advanced.recentPresentationsCount,
38798
38909
  aiEnabled: Boolean(ai),
38799
38910
  isAiPanelOpen: aiPanel.isOpen,
38800
- onToggleAiPanel: aiPanel.toggle
38911
+ onToggleAiPanel: aiPanel.toggle,
38912
+ isProtectedView,
38913
+ onEnableEditing: hostCanEdit ? handleEnableEditing : void 0
38801
38914
  }
38802
38915
  ),
38803
38916
  /* @__PURE__ */ jsx(
@@ -38935,6 +39048,7 @@ var PowerPointViewer = forwardRef(
38935
39048
  onQuickAccessCommandsChange: (commandIds) => optionsStore.setQuickAccessCommands(commandIds),
38936
39049
  onResetOptions: (group) => optionsStore.reset(group),
38937
39050
  onClearCache: handleClearOptionsCache,
39051
+ addinStatus,
38938
39052
  themeKey,
38939
39053
  availableThemes: themeCatalog,
38940
39054
  onSelectTheme: handleThemeChange,
@@ -39050,38 +39164,51 @@ var PowerPointViewer = forwardRef(
39050
39164
  ]
39051
39165
  }
39052
39166
  );
39053
- return /* @__PURE__ */ jsx(AccountAuthContext.Provider, { value: accountAuth, children: /* @__PURE__ */ jsx(SmartArt3DContext.Provider, { value: smartArt3D, children: /* @__PURE__ */ jsx(SurfaceChart3DContext.Provider, { value: surfaceChart3D, children: /* @__PURE__ */ jsx(BarChart3DContext.Provider, { value: barChart3D, children: /* @__PURE__ */ jsx(LineChart3DContext.Provider, { value: lineChart3D, children: /* @__PURE__ */ jsx(AreaChart3DContext.Provider, { value: areaChart3D, children: /* @__PURE__ */ jsx(PieChart3DContext.Provider, { value: pieChart3D, children: /* @__PURE__ */ jsx(ViewerThemeProvider, { theme: effectiveTheme, children: /* @__PURE__ */ jsxs(
39054
- CollaborationProvider,
39055
- {
39056
- config: collaboration,
39057
- canvasWidth: canvasSize.width,
39058
- canvasHeight: canvasSize.height,
39059
- children: [
39060
- /* @__PURE__ */ jsx(
39061
- CollaborationDocumentSync,
39062
- {
39063
- slides,
39064
- templateElementsBySlideId,
39065
- setSlides: state.setSlides,
39066
- config: collaboration,
39067
- content,
39068
- loadVersion,
39069
- loadOrigin,
39070
- livePatcher: state.livePatcher
39071
- }
39072
- ),
39073
- /* @__PURE__ */ jsx(
39074
- CollaborationFollowLayer,
39075
- {
39076
- activeSlideIndex,
39077
- setActiveSlideIndex: state.setActiveSlideIndex,
39078
- slideCount: slides.length
39079
- }
39080
- ),
39081
- viewerContent
39082
- ]
39083
- }
39084
- ) }) }) }) }) }) }) }) });
39167
+ const effective3D = resolve3DRenderingFlags(
39168
+ { smartArt3D, surfaceChart3D, barChart3D, lineChart3D, areaChart3D, pieChart3D },
39169
+ viewerOptions
39170
+ );
39171
+ return (
39172
+ // `ViewerOptionsContext` is how every deeply-nested chrome piece (the
39173
+ // toolbar, title bar, Quick Access strip, print dialog, canvas
39174
+ // hyperlink gate, share dialog) reads the live File > Options
39175
+ // snapshot without threading it through each intermediate prop list.
39176
+ // Nothing previously provided it, so every one of those consumers was
39177
+ // silently reading `DEFAULT_VIEWER_OPTIONS` forever, no matter what
39178
+ // the user changed in the Options dialog.
39179
+ /* @__PURE__ */ jsx(ViewerOptionsContext.Provider, { value: viewerOptions, children: /* @__PURE__ */ jsx(AccountAuthContext.Provider, { value: accountAuth, children: /* @__PURE__ */ jsx(SmartArt3DContext.Provider, { value: effective3D.smartArt3D, children: /* @__PURE__ */ jsx(SurfaceChart3DContext.Provider, { value: effective3D.surfaceChart3D, children: /* @__PURE__ */ jsx(BarChart3DContext.Provider, { value: effective3D.barChart3D, children: /* @__PURE__ */ jsx(LineChart3DContext.Provider, { value: effective3D.lineChart3D, children: /* @__PURE__ */ jsx(AreaChart3DContext.Provider, { value: effective3D.areaChart3D, children: /* @__PURE__ */ jsx(PieChart3DContext.Provider, { value: effective3D.pieChart3D, children: /* @__PURE__ */ jsx(ViewerThemeProvider, { theme: effectiveTheme, children: /* @__PURE__ */ jsxs(
39180
+ CollaborationProvider,
39181
+ {
39182
+ config: collaboration,
39183
+ canvasWidth: canvasSize.width,
39184
+ canvasHeight: canvasSize.height,
39185
+ children: [
39186
+ /* @__PURE__ */ jsx(
39187
+ CollaborationDocumentSync,
39188
+ {
39189
+ slides,
39190
+ templateElementsBySlideId,
39191
+ setSlides: state.setSlides,
39192
+ config: collaboration,
39193
+ content,
39194
+ loadVersion,
39195
+ loadOrigin,
39196
+ livePatcher: state.livePatcher
39197
+ }
39198
+ ),
39199
+ /* @__PURE__ */ jsx(
39200
+ CollaborationFollowLayer,
39201
+ {
39202
+ activeSlideIndex,
39203
+ setActiveSlideIndex: state.setActiveSlideIndex,
39204
+ slideCount: slides.length
39205
+ }
39206
+ ),
39207
+ viewerContent
39208
+ ]
39209
+ }
39210
+ ) }) }) }) }) }) }) }) }) })
39211
+ );
39085
39212
  }
39086
39213
  );
39087
39214
  PowerPointViewer.displayName = "PowerPointViewer";