pptx-react-viewer 3.11.0 → 3.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/{AiChatPanel-A3ZMMVUA.js → AiChatPanel-E53JJRZX.js} +25 -25
  3. package/dist/AiChatPanel-E53JJRZX.js.br +0 -0
  4. package/dist/AiChatPanel-E53JJRZX.js.gz +0 -0
  5. package/dist/{AiChatPanel-L5H455NZ.mjs → AiChatPanel-JTXC5WWH.mjs} +4 -4
  6. package/dist/AiChatPanel-JTXC5WWH.mjs.br +0 -0
  7. package/dist/AiChatPanel-JTXC5WWH.mjs.gz +0 -0
  8. package/dist/{Area3DChartScene-R2CKCYCB.js → Area3DChartScene-J7G54OH4.js} +2 -2
  9. package/dist/Area3DChartScene-J7G54OH4.js.br +0 -0
  10. package/dist/Area3DChartScene-J7G54OH4.js.gz +0 -0
  11. package/dist/{Area3DChartScene-OAD36KIX.mjs → Area3DChartScene-JQ2VU73H.mjs} +1 -1
  12. package/dist/Area3DChartScene-JQ2VU73H.mjs.br +0 -0
  13. package/dist/Area3DChartScene-JQ2VU73H.mjs.gz +0 -0
  14. package/dist/{Bar3DChartScene-XNNXF26T.mjs → Bar3DChartScene-5HC7LYBH.mjs} +1 -1
  15. package/dist/Bar3DChartScene-5HC7LYBH.mjs.br +0 -0
  16. package/dist/Bar3DChartScene-5HC7LYBH.mjs.gz +0 -0
  17. package/dist/{Bar3DChartScene-CRRPMXGQ.js → Bar3DChartScene-JV3A2P6O.js} +2 -2
  18. package/dist/Bar3DChartScene-JV3A2P6O.js.br +0 -0
  19. package/dist/Bar3DChartScene-JV3A2P6O.js.gz +0 -0
  20. package/dist/{Line3DChartScene-MNNPB3LZ.mjs → Line3DChartScene-4ZAOOU7U.mjs} +1 -1
  21. package/dist/Line3DChartScene-4ZAOOU7U.mjs.br +0 -0
  22. package/dist/Line3DChartScene-4ZAOOU7U.mjs.gz +0 -0
  23. package/dist/{Line3DChartScene-44PLZML2.js → Line3DChartScene-7SN7TVKQ.js} +2 -2
  24. package/dist/Line3DChartScene-7SN7TVKQ.js.br +0 -0
  25. package/dist/Line3DChartScene-7SN7TVKQ.js.gz +0 -0
  26. package/dist/{Model3DScene-RYPYQPJH.js → Model3DScene-GQANXXQD.js} +2 -2
  27. package/dist/Model3DScene-GQANXXQD.js.br +0 -0
  28. package/dist/Model3DScene-GQANXXQD.js.gz +0 -0
  29. package/dist/{Model3DScene-5MUREFLY.mjs → Model3DScene-GWIBUQ2U.mjs} +1 -1
  30. package/dist/Model3DScene-GWIBUQ2U.mjs.br +0 -0
  31. package/dist/Model3DScene-GWIBUQ2U.mjs.gz +0 -0
  32. package/dist/{PieChart3DScene-GACYCSSQ.js → PieChart3DScene-QPFDRMEA.js} +2 -2
  33. package/dist/PieChart3DScene-QPFDRMEA.js.br +0 -0
  34. package/dist/PieChart3DScene-QPFDRMEA.js.gz +0 -0
  35. package/dist/{PieChart3DScene-KYZSSG5X.mjs → PieChart3DScene-RDTOLFTD.mjs} +1 -1
  36. package/dist/PieChart3DScene-RDTOLFTD.mjs.br +0 -0
  37. package/dist/PieChart3DScene-RDTOLFTD.mjs.gz +0 -0
  38. package/dist/PowerPointViewer-Cl6jBPNw.d.ts.map +1 -1
  39. package/dist/{SurfaceChart3DScene-ZUP4PRUZ.mjs → SurfaceChart3DScene-5JQCRWA5.mjs} +1 -1
  40. package/dist/SurfaceChart3DScene-5JQCRWA5.mjs.br +0 -0
  41. package/dist/SurfaceChart3DScene-5JQCRWA5.mjs.gz +0 -0
  42. package/dist/{SurfaceChart3DScene-RI5G4BHS.js → SurfaceChart3DScene-JLYGC7QU.js} +2 -2
  43. package/dist/SurfaceChart3DScene-JLYGC7QU.js.br +0 -0
  44. package/dist/SurfaceChart3DScene-JLYGC7QU.js.gz +0 -0
  45. package/dist/{chunk-Y6GG2OOW.js → chunk-3AJ54EAB.js} +5 -0
  46. package/dist/chunk-3AJ54EAB.js.br +0 -0
  47. package/dist/chunk-3AJ54EAB.js.gz +0 -0
  48. package/dist/{chunk-BX4XVY5X.js → chunk-G2Z7QULX.js} +5 -5
  49. package/dist/chunk-G2Z7QULX.js.br +0 -0
  50. package/dist/chunk-G2Z7QULX.js.gz +0 -0
  51. package/dist/{chunk-MRBHJ26I.js → chunk-H3GHGSGW.js} +586 -503
  52. package/dist/chunk-H3GHGSGW.js.br +0 -0
  53. package/dist/chunk-H3GHGSGW.js.gz +0 -0
  54. package/dist/{chunk-SUEZMQRT.mjs → chunk-HB7DJENT.mjs} +1 -1
  55. package/dist/chunk-HB7DJENT.mjs.br +0 -0
  56. package/dist/chunk-HB7DJENT.mjs.gz +0 -0
  57. package/dist/{chunk-TAGG5YNA.mjs → chunk-HMX3MQR7.mjs} +5 -0
  58. package/dist/chunk-HMX3MQR7.mjs.br +0 -0
  59. package/dist/chunk-HMX3MQR7.mjs.gz +0 -0
  60. package/dist/{chunk-IK25LY4C.js → chunk-IVCYND7A.js} +197 -183
  61. package/dist/chunk-IVCYND7A.js.br +0 -0
  62. package/dist/chunk-IVCYND7A.js.gz +0 -0
  63. package/dist/{chunk-VHFPZBUW.mjs → chunk-M7SNS3DQ.mjs} +154 -71
  64. package/dist/chunk-M7SNS3DQ.mjs.br +0 -0
  65. package/dist/chunk-M7SNS3DQ.mjs.gz +0 -0
  66. package/dist/{chunk-N75WRHON.mjs → chunk-PKHTTHA2.mjs} +361 -142
  67. package/dist/chunk-PKHTTHA2.mjs.br +0 -0
  68. package/dist/chunk-PKHTTHA2.mjs.gz +0 -0
  69. package/dist/{chunk-6BNPHEEX.mjs → chunk-TS2DHMBS.mjs} +8671 -1786
  70. package/dist/chunk-TS2DHMBS.mjs.br +0 -0
  71. package/dist/chunk-TS2DHMBS.mjs.gz +0 -0
  72. package/dist/{chunk-LY5535CF.js → chunk-TWUAZRCG.js} +8684 -1786
  73. package/dist/chunk-TWUAZRCG.js.br +0 -0
  74. package/dist/chunk-TWUAZRCG.js.gz +0 -0
  75. package/dist/{chunk-4PL3GBSD.js → chunk-UGVPKJSU.js} +1607 -1388
  76. package/dist/chunk-UGVPKJSU.js.br +0 -0
  77. package/dist/chunk-UGVPKJSU.js.gz +0 -0
  78. package/dist/{chunk-5T4Y4QPV.mjs → chunk-Y3SA5H5H.mjs} +25 -11
  79. package/dist/chunk-Y3SA5H5H.mjs.br +0 -0
  80. package/dist/chunk-Y3SA5H5H.mjs.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 +92 -0
  88. package/dist/index.js +47 -47
  89. package/dist/index.js.br +0 -0
  90. package/dist/index.js.gz +0 -0
  91. package/dist/index.mjs +6 -6
  92. package/dist/index.mjs.br +0 -0
  93. package/dist/index.mjs.gz +0 -0
  94. package/dist/internals.d.ts +157 -0
  95. package/dist/internals.d.ts.map +1 -1
  96. package/dist/internals.js +79 -79
  97. package/dist/internals.js.br +0 -0
  98. package/dist/internals.js.gz +0 -0
  99. package/dist/internals.mjs +4 -4
  100. package/dist/internals.mjs.br +0 -0
  101. package/dist/internals.mjs.gz +0 -0
  102. package/dist/viewer/index.d.ts +81 -0
  103. package/dist/viewer/index.js +27 -27
  104. package/dist/viewer/index.js.br +0 -0
  105. package/dist/viewer/index.js.gz +0 -0
  106. package/dist/viewer/index.mjs +6 -6
  107. package/dist/viewer/index.mjs.br +0 -0
  108. package/dist/viewer/index.mjs.gz +0 -0
  109. package/package.json +1 -1
  110. package/dist/AiChatPanel-A3ZMMVUA.js.br +0 -0
  111. package/dist/AiChatPanel-A3ZMMVUA.js.gz +0 -0
  112. package/dist/AiChatPanel-L5H455NZ.mjs.br +0 -0
  113. package/dist/AiChatPanel-L5H455NZ.mjs.gz +0 -0
  114. package/dist/Area3DChartScene-OAD36KIX.mjs.br +0 -0
  115. package/dist/Area3DChartScene-OAD36KIX.mjs.gz +0 -0
  116. package/dist/Area3DChartScene-R2CKCYCB.js.br +0 -0
  117. package/dist/Area3DChartScene-R2CKCYCB.js.gz +0 -0
  118. package/dist/Bar3DChartScene-CRRPMXGQ.js.br +0 -0
  119. package/dist/Bar3DChartScene-CRRPMXGQ.js.gz +0 -0
  120. package/dist/Bar3DChartScene-XNNXF26T.mjs.br +0 -0
  121. package/dist/Bar3DChartScene-XNNXF26T.mjs.gz +0 -0
  122. package/dist/Line3DChartScene-44PLZML2.js.br +0 -0
  123. package/dist/Line3DChartScene-44PLZML2.js.gz +0 -0
  124. package/dist/Line3DChartScene-MNNPB3LZ.mjs.br +0 -0
  125. package/dist/Line3DChartScene-MNNPB3LZ.mjs.gz +0 -0
  126. package/dist/Model3DScene-5MUREFLY.mjs.br +0 -0
  127. package/dist/Model3DScene-5MUREFLY.mjs.gz +0 -0
  128. package/dist/Model3DScene-RYPYQPJH.js.br +0 -0
  129. package/dist/Model3DScene-RYPYQPJH.js.gz +0 -0
  130. package/dist/PieChart3DScene-GACYCSSQ.js.br +0 -0
  131. package/dist/PieChart3DScene-GACYCSSQ.js.gz +0 -0
  132. package/dist/PieChart3DScene-KYZSSG5X.mjs.br +0 -0
  133. package/dist/PieChart3DScene-KYZSSG5X.mjs.gz +0 -0
  134. package/dist/SurfaceChart3DScene-RI5G4BHS.js.br +0 -0
  135. package/dist/SurfaceChart3DScene-RI5G4BHS.js.gz +0 -0
  136. package/dist/SurfaceChart3DScene-ZUP4PRUZ.mjs.br +0 -0
  137. package/dist/SurfaceChart3DScene-ZUP4PRUZ.mjs.gz +0 -0
  138. package/dist/chunk-4PL3GBSD.js.br +0 -0
  139. package/dist/chunk-4PL3GBSD.js.gz +0 -0
  140. package/dist/chunk-5T4Y4QPV.mjs.br +0 -0
  141. package/dist/chunk-5T4Y4QPV.mjs.gz +0 -0
  142. package/dist/chunk-6BNPHEEX.mjs.br +0 -0
  143. package/dist/chunk-6BNPHEEX.mjs.gz +0 -0
  144. package/dist/chunk-BX4XVY5X.js.br +0 -0
  145. package/dist/chunk-BX4XVY5X.js.gz +0 -0
  146. package/dist/chunk-IK25LY4C.js.br +0 -0
  147. package/dist/chunk-IK25LY4C.js.gz +0 -0
  148. package/dist/chunk-LY5535CF.js.br +0 -0
  149. package/dist/chunk-LY5535CF.js.gz +0 -0
  150. package/dist/chunk-MRBHJ26I.js.br +0 -0
  151. package/dist/chunk-MRBHJ26I.js.gz +0 -0
  152. package/dist/chunk-N75WRHON.mjs.br +0 -0
  153. package/dist/chunk-N75WRHON.mjs.gz +0 -0
  154. package/dist/chunk-SUEZMQRT.mjs.br +0 -0
  155. package/dist/chunk-SUEZMQRT.mjs.gz +0 -0
  156. package/dist/chunk-TAGG5YNA.mjs.br +0 -0
  157. package/dist/chunk-TAGG5YNA.mjs.gz +0 -0
  158. package/dist/chunk-VHFPZBUW.mjs.br +0 -0
  159. package/dist/chunk-VHFPZBUW.mjs.gz +0 -0
  160. package/dist/chunk-Y6GG2OOW.js.br +0 -0
  161. package/dist/chunk-Y6GG2OOW.js.gz +0 -0
@@ -1,8 +1,8 @@
1
- import { computeFocusTargets, deckDataFieldChanged, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, collectStoredChats, exportAiChatLogs, applyElementUpdate } from './chunk-SUEZMQRT.mjs';
2
- import { useViewerOptions, useReadOnlyRecommendationState, useCompatibilityToastsState, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useViewPreferencesSync, useLayoutSwitching, ViewerOptionsContext, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, safePrompt, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useViewerOptionsContext, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, syncSelectionHandleOverlay, playAnimationSound } from './chunk-VHFPZBUW.mjs';
3
- import { MIN_ELEMENT_SIZE, DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getImageSurfaceStyle, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getImageSurfaceMaskStyle, 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, STROKE_DASH_OPTIONS } from './chunk-5T4Y4QPV.mjs';
4
- import { hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, connectorWrapperTransform, getAriaRoleDescription, getAriaLabel, getAriaRole, resolveElementInteractivity, isEditableTextElement, buildTextStyleOverrideCss, isElementRendered, resolveElementAriaAttributes, 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, buildThemeColorMap, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, resolveExpiredAutosaveSnapshots, resolveHistoryDepth, applyAutoCorrect, resolveImageResolutionScale, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, shouldShowAutosaveRecoveryPrompt, resolveOptionRootClasses, resolve3DRenderingFlags, resolveSlideSizeSelection, buildDeckSaveOptions, paintedStrokeWidth, buildCssGradientFromShapeStyle, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, resolveElementHighlightClick, applyHighlightClickStyle, getComputedEffectStyle, getSoftEdgeSvgFilter, getEffectStyleSource, buildStrokeOutline, buildHollowHitOutline, buildSubpathFillOverlay, isImageLikeElement, strokeOutlineViewBox, getElementTransform, resolveRevealedSmartArtNodes, resolveRevealedDrawingShapes, buildSmartArtA11y, canDrillDown, computeSmartArtElementLayout, flattenNodes, buildSummaryZoomView, isImageTiled, getImageColorWashStyle, readEditableText, placeCaretAtEnd, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, resolveChartKind, subscribeBarFacePicturePixelSamples, getBarFacePicturePixelSampleVersion, ensureChartInteractionStyles, applyChartPartHighlight, resolveRevealedChartData, formatAxisValue, buildInkGroupStrokes, getInkReplayStyles, INK_REPLAY_KEYFRAMES, buildContentPartStrokes, getContentPartReplayStyles, resolveOleType, getOleAriaLabel, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, placeholderPromptDescriptor, RULER_THICKNESS, RULER_FONT_SIZE, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, visibleTemplateElements, themeToCssVars, shouldClearAutosaveCacheOnClose, masterViewCrudActions, applyMasterViewCrudAction, masterViewCrudFailureKey, applyMotionPathPreset, resetSlideLayoutPath, DEFAULT_INSERT_CHART_KIND, hasCopyableFormat, templateSchemeFromTheme, createBackstagePresentation, playFeedbackSound, shouldDiscardAutosaveOnSuccessfulSave, setMasterViewBackgroundColor, compatToastStackStyle, printPropertiesFrameSlides, printPropertiesSlidesPerPage, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, isHeaderFooterDateTextVisible, isHeaderFooterHeaderTextVisible, isHeaderFooterFooterTextVisible, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, elementIdSelector, 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, resolveRevealedDrawingShapeNodeIds, styleShadowFilter, buildChromeStyle, modelDataToBlobUrl, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, getInlineEditorSelection, findChartPartTarget, buildSurfaceChart3DDataForElement, buildBarChart3DDataForElement, buildLineChart3DDataForElement, buildAreaChart3DDataForElement, buildPieChart3DDataForElement, withChartTitle, buildSmartArt3DModel, collectCoherent3DOffNodeIds, isBrowserOpenableMime, formatBytes, getOleDisplayName, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, hasGlyphEnvelope, buildGlyphEnvelope, getWarpPath, isWedgeCalloutPresetShape, isElementActionable, getSlideBackgroundStyle, pushRecentColor, mruColorsPatch, 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, clampPercent2, 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, advanceChartMarkDrag, advanceChartValueDrag, buildChartMarkDragGeometry, beginChartMarkDrag, beginChartValueDrag, groupIntoParagraphs, substituteFieldText, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, COMMON_FONT_SIZES, textFontSizePtToPx, INSERT_CHART_TYPES, CHARACTER_SPACING_OPTIONS, OFFICE_COLOR_SWATCHES, shapeFillChange, shapeOutlineChange, readRibbonTransitionDraft, ribbonTransitionUpdates, 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, buildStrokePathD, cursorForTool, annotationOverlayZIndex, presentationInkPath, resolveNotesSchematicBodyFontSizePx, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptors, shouldShowElementHandles, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, isBlackboardActive, scaleSlidesForSizeChange, slideSizeToCanvasPx, resolveSelectionPaneRename, PRESET_THEMES, resolveNotesSegments, segmentsToEditorHtml, DEBOUNCE_MS, createPlainNotesSegments, parseSegmentsFromRichEditor, segmentsToPlainText, getCurrentParagraphIndex, segmentsToParagraphs, paragraphsToSegments, MAX_INDENT_LEVEL, INDENT_PX, isUrlSafe, buildNotesPrintHtml, toggleSheet, SMARTART_PREVIEW_ELEMENT_HEIGHT, SMARTART_PREVIEW_ELEMENT_WIDTH, buildSmartArtPreviewElement, 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, withChartPointValue, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, resolveDefaultFontFamily, textFontSizePxToPt, buildFontCatalog, buildThemeColorSwatchGrid, themeColorSwatchRows, findSelectedThemeSwatch, themeSwatchCommit, RIBBON_SHAPE_SWATCHES, canGroupSelection, canUngroupSelection, canSetStrokeWidth, strokeWidthOf, readSoundFileAsDataUrl, applyTransitionSoundFile, TRANSITION_SOUND_OTHER_VALUE, TRANSITION_SOUND_NONE_VALUE, clearTransitionSound, applyTransitionStockSound, transitionStockSoundId, getEffectSoundAsset, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, masterViewPseudoSlide, authorConnectorBetweenSites, findEraserHitElementId, generateTicks, rulerDragToGuidePosition, getElementTransformWithoutRotation, getActiveXControlOverlayView, buildCommentMarkers, COMMENT_MARKER_SIZE, collectConnectorSiteCandidates, getConnectorEndpointHandles, findConnectorSiteNear, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, applyTableStyleDelete, applyTableStyleMapChange, themeColorLabel, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, COMMON_FONTS, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, isCurrentLayout, SLIDE_TEMPLATES, computeAnchoredPopupPosition, buildLiveInkStrokeView, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, isElementLocked, mergeSlideTransition, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, buildLayoutPreviewGeometry, buildSlideTemplateContent, hasTiltData, elementLockTogglePatch, buildTableDataGrid, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, TABLE_STYLE_PRESETS, applyTableStylePreset, tableStyleAssignmentUpdate, evenColumnWidths, redistributeColumnWidth, evenRowHeights, patchChartData, collapseChartTitleRunsForEdit, chartGridlinesState, chartGridlinesPatch, seriesSecondaryAxisPatch, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, hideChartSeries, restoreFilteredSeries, setDataLabelsRangeCache, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, describeSmartArtBounds, canAddTopLevelNode, classifyExtraConnections, siblingIndex, siblingCount, canRemoveTopLevelNode, canInteractWithElement, buildOleObjectNamePatch, getOleObjectTypeLabel, sanitizeGradientStops, shouldShowAccessibilitySection, pptxActionToElementAction, withFrameSlides, withSlidesPerPage, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, schemaLabel, THEME_COLOR_SLOT_LABEL_KEYS, SLIDE_SIZE_PRESETS, TRANSITION_VALID_DIRECTIONS, TRANSITION_ORIENTATION_TYPES, clampTransitionNumber, TRANSITION_SPEED_OPTIONS, TRANSITION_MORPH_OPTIONS, flattenTagCollections, resolveTemplateBackgroundRows, formatCommentTimestamp, commentMentionQuery, matchCommentMentionAuthors, buildAnimationTimelineRows, clearMotionPath, getEffectSoundState, setEffectSound, setEffectStockSound, setAfterAnimation, setAfterAnimationColor, DIRECTIONAL_PRESETS, buildAnimationTimelineBars, motionPathPresetIdForPath, EFFECT_SOUND_CATALOGUE, normalizeTableStyleGuid, describeTableStyleEditor, TABLE_STYLE_EDITOR_PARTS, computeMergeCellRight, computeMergeCellDown, computeSplitCell, resolveDisplayedChartType, CHART_TYPE_OPTIONS, BAR3D_SHAPE_OPTIONS, bar3DShapePatch, RADAR_STYLE_OPTIONS, radarStylePatch, SURFACE_WIREFRAME_OPTIONS, surfaceWireframePatch, isSeriesUsingSecondaryAxis, listChartUserShapeRows, withChartUserShapeAdded, createDefaultChartUserShape, withChartUserShapeRowRemoved, withChartUserShapeRowTextUpdated, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSmartArtNodeAsChild, removeSmartArtNode, addSiblingAfter, removeEmptyNode, demote, promote, reorder, clampCropValue, DUOTONE_PRESETS, ARTISTIC_EFFECTS, mediaTrimEndSeconds, trimmedMediaDurationMs, mediaTrimEndAbsoluteMs, mediaTrimEndMsFromAbsoluteMs, buildOleEditDialogDescriptor, buildOleContentUpdatePatch, applyOleSheetCellEdit, getOleSheetGrid, applyOleDocumentParagraphEdit, getOleDocumentParagraphs, applyOleNestedDeckElementTextEdit, getOleNestedDeckDetail, replaceOleFile, getNonVisualDescriptionFields, resolveActionType, ELEMENT_ACTION_TYPE_OPTIONS, elementActionToPptxAction, canCommitActionType, slideSizeFromPreset, withSlideSizeOrientation, TRANSITION_DIR_ARROWS, buildDirectionGrid, updateTagInCollections, deleteTagFromCollections, addTagToCollections, commentTextSegments, COMMENT_MENTION_CLASS, COMMENT_MENTION_ATTRIBUTE, insertCommentMention, reorderAnimationTimelineRows, applyAnimationTimelineOrder, animationEffectLabel, TABLE_STYLE_BORDER_SIDES, applyTableStyleFieldEdit, createTableStyleEntry, addTableStyleToMap, deleteTableStyleFromMap, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, getChartUserShapeGroupTransform, withChartUserShapeGroupChildAdded, createDefaultChartUserShapeGroupChild, withChartUserShapeRowUpdated, getChartUserShapeRowChartBox, withChartUserShapeRowFlipUpdated, withChartUserShapeRowRotationUpdated, withChartUserShapeRowChartBoxUpdated, switchSmartArtLayout, mediaTrimEndMsFromSeconds, validateMediaTrimRange, SHAPE_QUICK_STYLES, quickStyleSwatchCss, PATTERN_PRESET_OPTIONS, getPatternSvg, COMPOUND_LINE_OPTIONS, LINE_JOIN_OPTIONS, LINE_CAP_OPTIONS, TEXT_WARP_PRESETS, warpPreviewPath, text3dPtToEmu, text3dEmuToPt, MATERIAL_PRESETS, toSlideIndex, TABLE_STYLE_BORDER_SIDE_LABEL_KEYS, TABLE_STYLE_DASH_PRESETS, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS, FILL_PATTERN_LABEL_KEYS, openNativeEyeDropper, toggleText3dExtrusion, BEVEL_PRESETS } from './chunk-6BNPHEEX.mjs';
5
- import { LOCALE_CATALOG, translationsEn } from './chunk-TAGG5YNA.mjs';
1
+ import { computeFocusTargets, deckDataFieldChanged, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, collectStoredChats, exportAiChatLogs, applyElementUpdate } from './chunk-HB7DJENT.mjs';
2
+ import { useViewerOptions, useReadOnlyRecommendationState, useCompatibilityToastsState, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useViewPreferencesSync, useLayoutSwitching, ViewerOptionsContext, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, safePrompt, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useViewerOptionsContext, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, syncSelectionHandleOverlay, playAnimationSound } from './chunk-M7SNS3DQ.mjs';
3
+ import { MIN_ELEMENT_SIZE, DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getImageSurfaceStyle, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getImageSurfaceMaskStyle, 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, STROKE_DASH_OPTIONS } from './chunk-Y3SA5H5H.mjs';
4
+ import { hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, connectorWrapperTransform, getAriaRoleDescription, getAriaLabel, getAriaRole, resolveElementInteractivity, isEditableTextElement, buildTextStyleOverrideCss, isElementRendered, resolveElementAriaAttributes, 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, buildThemeColorMap, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, resolveExpiredAutosaveSnapshots, resolveHistoryDepth, applyAutoCorrect, resolveImageResolutionScale, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, shouldShowAutosaveRecoveryPrompt, resolveOptionRootClasses, resolve3DRenderingFlags, resolveSlideSizeSelection, buildDeckSaveOptions, paintedStrokeWidth, buildCssGradientFromShapeStyle, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, resolveElementHighlightClick, applyHighlightClickStyle, getComputedEffectStyle, getSoftEdgeSvgFilter, getEffectStyleSource, getBevelLightingSvgFilter, buildStrokeOutline, buildHollowHitOutline, buildSubpathFillOverlay, isImageLikeElement, strokeOutlineViewBox, getElementTransform, resolveRevealedSmartArtNodes, resolveRevealedDrawingShapes, buildSmartArtA11y, canDrillDown, computeSmartArtElementLayout, flattenNodes, buildSummaryZoomView, isImageTiled, getImageColorWashStyle, readEditableText, placeCaretAtEnd, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, resolveChartKind, subscribeBarFacePicturePixelSamples, getBarFacePicturePixelSampleVersion, ensureChartInteractionStyles, applyChartPartHighlight, resolveRevealedChartData, formatAxisValue, buildInkGroupStrokes, getInkReplayStyles, INK_REPLAY_KEYFRAMES, buildContentPartStrokes, getContentPartReplayStyles, resolveOleType, getOleAriaLabel, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, placeholderPromptDescriptor, RULER_THICKNESS, RULER_FONT_SIZE, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, visibleTemplateElements, themeToCssVars, shouldClearAutosaveCacheOnClose, masterViewCrudActions, applyMasterViewCrudAction, masterViewCrudFailureKey, applyMotionPathPreset, resetSlideLayoutPath, DEFAULT_INSERT_CHART_KIND, hasCopyableFormat, templateSchemeFromTheme, createBackstagePresentation, playFeedbackSound, shouldDiscardAutosaveOnSuccessfulSave, setMasterViewBackgroundColor, canUseClipboard, runProgramNoticeStackStyle, compatToastStackStyle, printPropertiesFrameSlides, printPropertiesSlidesPerPage, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, isHeaderFooterDateTextVisible, isHeaderFooterHeaderTextVisible, isHeaderFooterFooterTextVisible, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, elementIdSelector, 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, resolveRevealedDrawingShapeNodeIds, styleShadowFilter, buildChromeStyle, modelDataToBlobUrl, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, getInlineEditorSelection, findChartPartTarget, buildSurfaceChart3DDataForElement, buildBarChart3DDataForElement, buildLineChart3DDataForElement, buildAreaChart3DDataForElement, buildPieChart3DDataForElement, withChartTitle, buildSmartArt3DModel, collectCoherent3DOffNodeIds, isBrowserOpenableMime, formatBytes, getOleDisplayName, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, hasGlyphEnvelope, buildGlyphEnvelope, getWarpPath, isWedgeCalloutPresetShape, isElementActionable, getSlideBackgroundStyle, pushRecentColor, mruColorsPatch, 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, clampPercent2, 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, advanceChartMarkDrag, advanceChartValueDrag, buildChartMarkDragGeometry, beginChartMarkDrag, beginChartValueDrag, groupIntoParagraphs, substituteFieldText, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, COMMON_FONT_SIZES, textFontSizePtToPx, INSERT_CHART_TYPES, CHARACTER_SPACING_OPTIONS, OFFICE_COLOR_SWATCHES, shapeFillChange, shapeOutlineChange, readRibbonTransitionDraft, ribbonTransitionUpdates, 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, getFragmentedTransitionDescriptor, SLIDE_TRANSITION_KEYFRAMES, buildStrokePathD, cursorForTool, annotationOverlayZIndex, presentationInkPath, resolveNotesSchematicBodyFontSizePx, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptors, shouldShowElementHandles, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, isBlackboardActive, scaleSlidesForSizeChange, slideSizeToCanvasPx, resolveSelectionPaneRename, PRESET_THEMES, resolveNotesSegments, segmentsToEditorHtml, DEBOUNCE_MS, createPlainNotesSegments, parseSegmentsFromRichEditor, segmentsToPlainText, getCurrentParagraphIndex, segmentsToParagraphs, paragraphsToSegments, MAX_INDENT_LEVEL, INDENT_PX, isUrlSafe, buildNotesPrintHtml, toggleSheet, SMARTART_PREVIEW_ELEMENT_HEIGHT, SMARTART_PREVIEW_ELEMENT_WIDTH, buildSmartArtPreviewElement, 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, withChartPointValue, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, resolveDefaultFontFamily, textFontSizePxToPt, buildFontCatalog, buildThemeColorSwatchGrid, themeColorSwatchRows, findSelectedThemeSwatch, themeSwatchCommit, RIBBON_SHAPE_SWATCHES, canGroupSelection, canUngroupSelection, canSetStrokeWidth, strokeWidthOf, readSoundFileAsDataUrl, applyTransitionSoundFile, TRANSITION_SOUND_OTHER_VALUE, TRANSITION_SOUND_NONE_VALUE, clearTransitionSound, applyTransitionStockSound, transitionStockSoundId, getEffectSoundAsset, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, masterViewPseudoSlide, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, authorConnectorBetweenSites, findEraserHitElementId, generateTicks, rulerDragToGuidePosition, getElementTransformWithoutRotation, getActiveXControlOverlayView, buildCommentMarkers, COMMENT_MARKER_SIZE, collectConnectorSiteCandidates, getConnectorEndpointHandles, findConnectorSiteNear, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, applyTableStyleDelete, applyTableStyleMapChange, themeColorLabel, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, COMMON_FONTS, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, isCurrentLayout, SLIDE_TEMPLATES, computeAnchoredPopupPosition, buildLiveInkStrokeView, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, isElementLocked, mergeSlideTransition, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, buildLayoutPreviewGeometry, buildSlideTemplateContent, hasTiltData, elementLockTogglePatch, buildTableDataGrid, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, TABLE_STYLE_PRESETS, applyTableStylePreset, tableStyleAssignmentUpdate, evenColumnWidths, redistributeColumnWidth, evenRowHeights, patchChartData, collapseChartTitleRunsForEdit, chartGridlinesState, chartGridlinesPatch, seriesSecondaryAxisPatch, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, hideChartSeries, restoreFilteredSeries, setDataLabelsRangeCache, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, describeSmartArtBounds, canAddTopLevelNode, classifyExtraConnections, siblingIndex, siblingCount, canRemoveTopLevelNode, canInteractWithElement, buildOleObjectNamePatch, getOleObjectTypeLabel, sanitizeGradientStops, shouldShowAccessibilitySection, pptxActionToElementAction, withFrameSlides, withSlidesPerPage, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, schemaLabel, THEME_COLOR_SLOT_LABEL_KEYS, SLIDE_SIZE_PRESETS, TRANSITION_VALID_DIRECTIONS, TRANSITION_ORIENTATION_TYPES, clampTransitionNumber, TRANSITION_SPEED_OPTIONS, TRANSITION_MORPH_OPTIONS, flattenTagCollections, resolveTemplateBackgroundRows, formatCommentTimestamp, commentMentionQuery, matchCommentMentionAuthors, buildAnimationTimelineRows, clearMotionPath, getEffectSoundState, setEffectSound, setEffectStockSound, setAfterAnimation, setAfterAnimationColor, DIRECTIONAL_PRESETS, buildAnimationTimelineBars, motionPathPresetIdForPath, EFFECT_SOUND_CATALOGUE, normalizeTableStyleGuid, describeTableStyleEditor, TABLE_STYLE_EDITOR_PARTS, computeMergeCellRight, computeMergeCellDown, computeSplitCell, resolveDisplayedChartType, CHART_TYPE_OPTIONS, BAR3D_SHAPE_OPTIONS, bar3DShapePatch, RADAR_STYLE_OPTIONS, radarStylePatch, SURFACE_WIREFRAME_OPTIONS, surfaceWireframePatch, isSeriesUsingSecondaryAxis, listChartUserShapeRows, withChartUserShapeAdded, createDefaultChartUserShape, withChartUserShapeRowRemoved, withChartUserShapeRowTextUpdated, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSmartArtNodeAsChild, removeSmartArtNode, addSiblingAfter, removeEmptyNode, demote, promote, reorder, clampCropValue, DUOTONE_PRESETS, ARTISTIC_EFFECTS, mediaTrimEndSeconds, trimmedMediaDurationMs, mediaTrimEndAbsoluteMs, mediaTrimEndMsFromAbsoluteMs, buildOleEditDialogDescriptor, buildOleContentUpdatePatch, applyOleSheetCellEdit, getOleSheetGrid, applyOleDocumentParagraphEdit, getOleDocumentParagraphs, applyOleNestedDeckElementTextEdit, getOleNestedDeckDetail, replaceOleFile, getNonVisualDescriptionFields, resolveActionType, ELEMENT_ACTION_TYPE_OPTIONS, elementActionToPptxAction, canCommitActionType, slideSizeFromPreset, withSlideSizeOrientation, TRANSITION_DIR_ARROWS, buildDirectionGrid, updateTagInCollections, deleteTagFromCollections, addTagToCollections, commentTextSegments, COMMENT_MENTION_CLASS, COMMENT_MENTION_ATTRIBUTE, insertCommentMention, reorderAnimationTimelineRows, applyAnimationTimelineOrder, animationEffectLabel, TABLE_STYLE_BORDER_SIDES, applyTableStyleFieldEdit, createTableStyleEntry, addTableStyleToMap, deleteTableStyleFromMap, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, getChartUserShapeGroupTransform, withChartUserShapeGroupChildAdded, createDefaultChartUserShapeGroupChild, withChartUserShapeRowUpdated, getChartUserShapeRowChartBox, withChartUserShapeRowFlipUpdated, withChartUserShapeRowRotationUpdated, withChartUserShapeRowChartBoxUpdated, switchSmartArtLayout, mediaTrimEndMsFromSeconds, validateMediaTrimRange, SHAPE_QUICK_STYLES, quickStyleSwatchCss, PATTERN_PRESET_OPTIONS, getPatternSvg, COMPOUND_LINE_OPTIONS, LINE_JOIN_OPTIONS, LINE_CAP_OPTIONS, TEXT_WARP_PRESETS, warpPreviewPath, text3dPtToEmu, text3dEmuToPt, MATERIAL_PRESETS, toSlideIndex, TABLE_STYLE_BORDER_SIDE_LABEL_KEYS, TABLE_STYLE_DASH_PRESETS, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS, FILL_PATTERN_LABEL_KEYS, openNativeEyeDropper, toggleText3dExtrusion, BEVEL_PRESETS } from './chunk-TS2DHMBS.mjs';
5
+ import { LOCALE_CATALOG, translationsEn } from './chunk-HMX3MQR7.mjs';
6
6
  import React20, { createContext, useMemo, useState, useCallback, lazy, forwardRef, useEffect, useRef, Suspense, useLayoutEffect, useContext, useSyncExternalStore, useId, Fragment as Fragment$1, useDeferredValue } from 'react';
7
7
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
8
8
  import { useTranslation } from 'react-i18next';
@@ -514,7 +514,7 @@ function FailedToLoad() {
514
514
  var LazyArea3DChartScene = React20.lazy(
515
515
  async () => {
516
516
  try {
517
- return await import('./Area3DChartScene-OAD36KIX.mjs');
517
+ return await import('./Area3DChartScene-JQ2VU73H.mjs');
518
518
  } catch {
519
519
  return { default: FailedToLoad };
520
520
  }
@@ -583,7 +583,7 @@ function FailedToLoad2() {
583
583
  var LazyBar3DChartScene = React20.lazy(
584
584
  async () => {
585
585
  try {
586
- return await import('./Bar3DChartScene-XNNXF26T.mjs');
586
+ return await import('./Bar3DChartScene-5HC7LYBH.mjs');
587
587
  } catch {
588
588
  return { default: FailedToLoad2 };
589
589
  }
@@ -686,7 +686,7 @@ function FailedToLoad3() {
686
686
  var LazyLine3DChartScene = React20.lazy(
687
687
  async () => {
688
688
  try {
689
- return await import('./Line3DChartScene-MNNPB3LZ.mjs');
689
+ return await import('./Line3DChartScene-4ZAOOU7U.mjs');
690
690
  } catch {
691
691
  return { default: FailedToLoad3 };
692
692
  }
@@ -755,7 +755,7 @@ function FailedToLoad4() {
755
755
  var LazyPieChart3DScene = React20.lazy(
756
756
  async () => {
757
757
  try {
758
- return await import('./PieChart3DScene-KYZSSG5X.mjs');
758
+ return await import('./PieChart3DScene-RDTOLFTD.mjs');
759
759
  } catch {
760
760
  return { default: FailedToLoad4 };
761
761
  }
@@ -822,7 +822,7 @@ function FailedToLoad5() {
822
822
  var LazySurfaceChart3DScene = React20.lazy(
823
823
  async () => {
824
824
  try {
825
- return await import('./SurfaceChart3DScene-ZUP4PRUZ.mjs');
825
+ return await import('./SurfaceChart3DScene-5JQCRWA5.mjs');
826
826
  } catch {
827
827
  return { default: FailedToLoad5 };
828
828
  }
@@ -2191,10 +2191,11 @@ function ShapeEffectOverlay({
2191
2191
  const overlay = fx.fillOverlay;
2192
2192
  const reflection = suppressReflection ? void 0 : fx.reflection;
2193
2193
  const softEdge = getSoftEdgeSvgFilter(getEffectStyleSource(element), element.id);
2194
+ const bevelLightingFilter = getBevelLightingSvgFilter(element);
2194
2195
  const strokeOutline = buildStrokeOutline(element);
2195
2196
  const hollowHit = buildHollowHitOutline(element);
2196
2197
  const subpathFill = buildSubpathFillOverlay(element);
2197
- if (!overlay && !softEdge && !strokeOutline && !hollowHit && !subpathFill && !reflection) {
2198
+ if (!overlay && !softEdge && !bevelLightingFilter && !strokeOutline && !hollowHit && !subpathFill && !reflection) {
2198
2199
  return null;
2199
2200
  }
2200
2201
  const fillOverlayStyle = overlay ? {
@@ -2245,6 +2246,21 @@ function ShapeEffectOverlay({
2245
2246
  children: /* @__PURE__ */ jsx("defs", { dangerouslySetInnerHTML: { __html: softEdge.filterMarkup } })
2246
2247
  }
2247
2248
  ) : null,
2249
+ bevelLightingFilter ? /* @__PURE__ */ jsx(
2250
+ "svg",
2251
+ {
2252
+ width: 0,
2253
+ height: 0,
2254
+ "aria-hidden": "true",
2255
+ style: {
2256
+ position: "absolute",
2257
+ width: 0,
2258
+ height: 0,
2259
+ overflow: "hidden"
2260
+ },
2261
+ children: /* @__PURE__ */ jsx("defs", { dangerouslySetInnerHTML: { __html: bevelLightingFilter.filterMarkup } })
2262
+ }
2263
+ ) : null,
2248
2264
  fillOverlayStyle ? /* @__PURE__ */ jsx("div", { className: "pptx-react-fill-overlay", "aria-hidden": "true", style: fillOverlayStyle }) : null,
2249
2265
  strokeOutline ? /* @__PURE__ */ jsxs(
2250
2266
  "svg",
@@ -3165,7 +3181,7 @@ function FailedToLoad6() {
3165
3181
  var LazyModel3DScene = React20.lazy(
3166
3182
  async () => {
3167
3183
  try {
3168
- return await import('./Model3DScene-5MUREFLY.mjs');
3184
+ return await import('./Model3DScene-GWIBUQ2U.mjs');
3169
3185
  } catch {
3170
3186
  return { default: FailedToLoad6 };
3171
3187
  }
@@ -6690,7 +6706,7 @@ function AccountPage() {
6690
6706
  return void 0;
6691
6707
  });
6692
6708
  };
6693
- const version = "3.10.0" ;
6709
+ const version = "3.12.0" ;
6694
6710
  return /* @__PURE__ */ jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
6695
6711
  /* @__PURE__ */ jsxs("section", { className: cardClass, children: [
6696
6712
  /* @__PURE__ */ jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
@@ -21582,7 +21598,8 @@ var POS_FIELDS = [
21582
21598
  var URL_LABEL_KEY = {
21583
21599
  url: "pptx.action.gotoUrl",
21584
21600
  openFile: "pptx.hyperlink.actionOpenFile",
21585
- openPresentation: "pptx.hyperlink.actionOpenPresentation"
21601
+ openPresentation: "pptx.hyperlink.actionOpenPresentation",
21602
+ runProgram: "pptx.hyperlink.actionRunProgram"
21586
21603
  };
21587
21604
  function ActionTargetFields({
21588
21605
  type,
@@ -32989,7 +33006,11 @@ function PresentationTouchControls({
32989
33006
  )
32990
33007
  ] });
32991
33008
  }
32992
- function SlideLayer({ slide, templateElements, canvasSize }) {
33009
+ function SlideLayer({
33010
+ slide,
33011
+ templateElements,
33012
+ canvasSize
33013
+ }) {
32993
33014
  const safeWidth = Math.max(canvasSize.width, 1);
32994
33015
  const safeHeight = Math.max(canvasSize.height, 1);
32995
33016
  const elements = [...visibleTemplateElements(slide, templateElements), ...slide.elements];
@@ -33021,6 +33042,187 @@ function SlideLayer({ slide, templateElements, canvasSize }) {
33021
33042
  }
33022
33043
  );
33023
33044
  }
33045
+ function FragmentedTransitionLayer({
33046
+ layer,
33047
+ slide,
33048
+ templateElements,
33049
+ canvasSize,
33050
+ scale,
33051
+ zIndex,
33052
+ layerName
33053
+ }) {
33054
+ return /* @__PURE__ */ jsx(
33055
+ "div",
33056
+ {
33057
+ "data-pptx-transition-layer": layerName,
33058
+ "data-pptx-transition-fragments": layer.keyframesName,
33059
+ className: "pptx-react-transition-layer absolute inset-0",
33060
+ style: { zIndex },
33061
+ children: layer.fragments.map((fragment) => /* @__PURE__ */ jsx(
33062
+ "div",
33063
+ {
33064
+ "data-pptx-transition-fragment": fragment.id,
33065
+ className: "absolute inset-0 flex items-center justify-center pointer-events-none",
33066
+ style: {
33067
+ clipPath: fragment.clipPath,
33068
+ transformOrigin: fragment.transformOrigin,
33069
+ animationName: layer.keyframesName,
33070
+ animationDuration: `${layer.durationMs}ms`,
33071
+ animationTimingFunction: layer.easing,
33072
+ animationDelay: `${fragment.delayMs}ms`,
33073
+ animationFillMode: "forwards",
33074
+ willChange: "transform, opacity",
33075
+ ...fragment.vars
33076
+ },
33077
+ children: /* @__PURE__ */ jsx(
33078
+ "div",
33079
+ {
33080
+ style: {
33081
+ width: canvasSize.width,
33082
+ height: canvasSize.height,
33083
+ flexShrink: 0,
33084
+ transform: `scale(${scale})`,
33085
+ transformOrigin: "center"
33086
+ },
33087
+ children: /* @__PURE__ */ jsx(SlideLayer, { slide, templateElements, canvasSize })
33088
+ }
33089
+ )
33090
+ },
33091
+ fragment.id
33092
+ ))
33093
+ }
33094
+ );
33095
+ }
33096
+ function MorphTransitionOverlay({
33097
+ canvasSize,
33098
+ scale,
33099
+ morphPlan,
33100
+ outgoingSlide,
33101
+ incomingSlide,
33102
+ containerRef
33103
+ }) {
33104
+ return /* @__PURE__ */ jsxs(
33105
+ "div",
33106
+ {
33107
+ ref: containerRef,
33108
+ "data-pptx-transition-overlay": true,
33109
+ "data-pptx-transition-morph": "true",
33110
+ className: "pptx-react-transition-overlay absolute inset-0 pointer-events-none overflow-hidden",
33111
+ style: { zIndex: 40 },
33112
+ children: [
33113
+ /* @__PURE__ */ jsx("style", { children: morphPlan.keyframesCss }),
33114
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsxs(
33115
+ "div",
33116
+ {
33117
+ style: {
33118
+ width: canvasSize.width,
33119
+ height: canvasSize.height,
33120
+ // The slide box is a flex ITEM, so it shrinks to the container
33121
+ // unless told not to. A show surface narrower than the deck's own
33122
+ // canvas (a windowed show, or a display scaled past 100%) squeezed
33123
+ // the unscaled 1280px box down to the container width and only
33124
+ // then scaled it, landing the whole outgoing slide up to ~77px to
33125
+ // the right of the live one for the length of the morph (issue
33126
+ // #161). The stage below positions its slide box absolutely and is
33127
+ // unaffected, so the two layers disagreed.
33128
+ flexShrink: 0,
33129
+ transform: `scale(${scale})`,
33130
+ transformOrigin: "center",
33131
+ position: "relative"
33132
+ },
33133
+ children: [
33134
+ morphPlan.outgoingElements.map((element, index) => /* @__PURE__ */ jsx(
33135
+ "div",
33136
+ {
33137
+ "data-pptx-morph-outgoing": element.id,
33138
+ style: { position: "absolute", inset: 0 },
33139
+ children: /* @__PURE__ */ jsx(
33140
+ StaticElementRenderer,
33141
+ {
33142
+ element,
33143
+ activeSlide: outgoingSlide,
33144
+ allSlides: [outgoingSlide],
33145
+ zIndex: index,
33146
+ animation: morphPlan.outgoingAnimations.get(element.id),
33147
+ imageAnimation: morphPlan.outgoingImageAnimations.get(element.id)
33148
+ }
33149
+ )
33150
+ },
33151
+ element.id
33152
+ )),
33153
+ incomingSlide && morphPlan.overlayIncomingElements.map((element, index) => /* @__PURE__ */ jsx(
33154
+ "div",
33155
+ {
33156
+ "data-pptx-morph-lifted": element.id,
33157
+ style: { position: "absolute", inset: 0 },
33158
+ children: /* @__PURE__ */ jsx(
33159
+ StaticElementRenderer,
33160
+ {
33161
+ element,
33162
+ activeSlide: incomingSlide,
33163
+ allSlides: [incomingSlide],
33164
+ zIndex: morphPlan.outgoingElements.length + index,
33165
+ animation: morphPlan.overlayIncomingAnimations.get(element.id)
33166
+ }
33167
+ )
33168
+ },
33169
+ element.id
33170
+ )),
33171
+ incomingSlide && morphPlan.crossfadeGroups.map((group, index) => /* @__PURE__ */ jsxs(
33172
+ "div",
33173
+ {
33174
+ "data-pptx-morph-crossfade": group.incoming.id,
33175
+ style: {
33176
+ ...MORPH_CROSSFADE_GROUP_STYLE,
33177
+ zIndex: morphPlan.outgoingElements.length + morphPlan.overlayIncomingElements.length + index
33178
+ },
33179
+ children: [
33180
+ /* @__PURE__ */ jsx(
33181
+ "div",
33182
+ {
33183
+ "data-pptx-morph-outgoing": group.outgoing.id,
33184
+ style: { ...MORPH_CROSSFADE_HALF_STYLE, animation: group.outgoingAnimation },
33185
+ children: /* @__PURE__ */ jsx(
33186
+ StaticElementRenderer,
33187
+ {
33188
+ element: group.outgoing,
33189
+ activeSlide: outgoingSlide,
33190
+ allSlides: [outgoingSlide],
33191
+ zIndex: 0,
33192
+ animation: morphPlan.outgoingAnimations.get(group.outgoing.id),
33193
+ imageAnimation: morphPlan.outgoingImageAnimations.get(group.outgoing.id)
33194
+ }
33195
+ )
33196
+ }
33197
+ ),
33198
+ /* @__PURE__ */ jsx(
33199
+ "div",
33200
+ {
33201
+ "data-pptx-morph-lifted": group.incoming.id,
33202
+ style: { ...MORPH_CROSSFADE_HALF_STYLE, animation: group.incomingAnimation },
33203
+ children: /* @__PURE__ */ jsx(
33204
+ StaticElementRenderer,
33205
+ {
33206
+ element: group.incoming,
33207
+ activeSlide: incomingSlide,
33208
+ allSlides: [incomingSlide],
33209
+ zIndex: 0,
33210
+ animation: morphPlan.overlayIncomingAnimations.get(group.incoming.id)
33211
+ }
33212
+ )
33213
+ }
33214
+ )
33215
+ ]
33216
+ },
33217
+ group.incoming.id
33218
+ ))
33219
+ ]
33220
+ }
33221
+ ) })
33222
+ ]
33223
+ }
33224
+ );
33225
+ }
33024
33226
  function PresentationTransitionOverlay({
33025
33227
  outgoingSlide,
33026
33228
  templateElements,
@@ -33070,6 +33272,16 @@ function PresentationTransitionOverlay({
33070
33272
  durationMs
33071
33273
  ]
33072
33274
  );
33275
+ const fragmented = useMemo(
33276
+ () => getFragmentedTransitionDescriptor(
33277
+ transition.type,
33278
+ durationMs,
33279
+ transition.direction,
33280
+ transition.spokes,
33281
+ transition.pattern
33282
+ ),
33283
+ [transition.type, transition.direction, transition.spokes, transition.pattern, durationMs]
33284
+ );
33073
33285
  const scale = useMemo(() => {
33074
33286
  if (resolvedStageScale !== null) {
33075
33287
  return resolvedStageScale;
@@ -33083,125 +33295,15 @@ function PresentationTransitionOverlay({
33083
33295
  }, [resolvedStageScale, containerSize, canvasSize]);
33084
33296
  const outgoingZIndex = animations.outgoingOnTop ? 40 : 20;
33085
33297
  if (morphPlan) {
33086
- return /* @__PURE__ */ jsxs(
33087
- "div",
33298
+ return /* @__PURE__ */ jsx(
33299
+ MorphTransitionOverlay,
33088
33300
  {
33089
- ref: containerRef,
33090
- "data-pptx-transition-overlay": true,
33091
- "data-pptx-transition-morph": "true",
33092
- className: "pptx-react-transition-overlay absolute inset-0 pointer-events-none overflow-hidden",
33093
- style: { zIndex: 40 },
33094
- children: [
33095
- /* @__PURE__ */ jsx("style", { children: morphPlan.keyframesCss }),
33096
- /* @__PURE__ */ jsx("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsxs(
33097
- "div",
33098
- {
33099
- style: {
33100
- width: canvasSize.width,
33101
- height: canvasSize.height,
33102
- // The slide box is a flex ITEM, so it shrinks to the container
33103
- // unless told not to. A show surface narrower than the deck's own
33104
- // canvas (a windowed show, or a display scaled past 100%) squeezed
33105
- // the unscaled 1280px box down to the container width and only
33106
- // then scaled it, landing the whole outgoing slide up to ~77px to
33107
- // the right of the live one for the length of the morph (issue
33108
- // #161). The stage below positions its slide box absolutely and is
33109
- // unaffected, so the two layers disagreed.
33110
- flexShrink: 0,
33111
- transform: `scale(${scale})`,
33112
- transformOrigin: "center",
33113
- position: "relative"
33114
- },
33115
- children: [
33116
- morphPlan.outgoingElements.map((element, index) => /* @__PURE__ */ jsx(
33117
- "div",
33118
- {
33119
- "data-pptx-morph-outgoing": element.id,
33120
- style: { position: "absolute", inset: 0 },
33121
- children: /* @__PURE__ */ jsx(
33122
- StaticElementRenderer,
33123
- {
33124
- element,
33125
- activeSlide: outgoingSlide,
33126
- allSlides: [outgoingSlide],
33127
- zIndex: index,
33128
- animation: morphPlan.outgoingAnimations.get(element.id),
33129
- imageAnimation: morphPlan.outgoingImageAnimations.get(element.id)
33130
- }
33131
- )
33132
- },
33133
- element.id
33134
- )),
33135
- incomingSlide && morphPlan.overlayIncomingElements.map((element, index) => /* @__PURE__ */ jsx(
33136
- "div",
33137
- {
33138
- "data-pptx-morph-lifted": element.id,
33139
- style: { position: "absolute", inset: 0 },
33140
- children: /* @__PURE__ */ jsx(
33141
- StaticElementRenderer,
33142
- {
33143
- element,
33144
- activeSlide: incomingSlide,
33145
- allSlides: [incomingSlide],
33146
- zIndex: morphPlan.outgoingElements.length + index,
33147
- animation: morphPlan.overlayIncomingAnimations.get(element.id)
33148
- }
33149
- )
33150
- },
33151
- element.id
33152
- )),
33153
- incomingSlide && morphPlan.crossfadeGroups.map((group, index) => /* @__PURE__ */ jsxs(
33154
- "div",
33155
- {
33156
- "data-pptx-morph-crossfade": group.incoming.id,
33157
- style: {
33158
- ...MORPH_CROSSFADE_GROUP_STYLE,
33159
- zIndex: morphPlan.outgoingElements.length + morphPlan.overlayIncomingElements.length + index
33160
- },
33161
- children: [
33162
- /* @__PURE__ */ jsx(
33163
- "div",
33164
- {
33165
- "data-pptx-morph-outgoing": group.outgoing.id,
33166
- style: { ...MORPH_CROSSFADE_HALF_STYLE, animation: group.outgoingAnimation },
33167
- children: /* @__PURE__ */ jsx(
33168
- StaticElementRenderer,
33169
- {
33170
- element: group.outgoing,
33171
- activeSlide: outgoingSlide,
33172
- allSlides: [outgoingSlide],
33173
- zIndex: 0,
33174
- animation: morphPlan.outgoingAnimations.get(group.outgoing.id),
33175
- imageAnimation: morphPlan.outgoingImageAnimations.get(group.outgoing.id)
33176
- }
33177
- )
33178
- }
33179
- ),
33180
- /* @__PURE__ */ jsx(
33181
- "div",
33182
- {
33183
- "data-pptx-morph-lifted": group.incoming.id,
33184
- style: { ...MORPH_CROSSFADE_HALF_STYLE, animation: group.incomingAnimation },
33185
- children: /* @__PURE__ */ jsx(
33186
- StaticElementRenderer,
33187
- {
33188
- element: group.incoming,
33189
- activeSlide: incomingSlide,
33190
- allSlides: [incomingSlide],
33191
- zIndex: 0,
33192
- animation: morphPlan.overlayIncomingAnimations.get(group.incoming.id)
33193
- }
33194
- )
33195
- }
33196
- )
33197
- ]
33198
- },
33199
- group.incoming.id
33200
- ))
33201
- ]
33202
- }
33203
- ) })
33204
- ]
33301
+ containerRef,
33302
+ canvasSize,
33303
+ scale,
33304
+ morphPlan,
33305
+ outgoingSlide,
33306
+ incomingSlide
33205
33307
  }
33206
33308
  );
33207
33309
  }
@@ -33214,7 +33316,18 @@ function PresentationTransitionOverlay({
33214
33316
  style: { zIndex: outgoingZIndex },
33215
33317
  children: [
33216
33318
  /* @__PURE__ */ jsx("style", { children: SLIDE_TRANSITION_KEYFRAMES }),
33217
- !morphPlan && animations.incoming !== "none" && incomingSlide ? /* @__PURE__ */ jsx(
33319
+ !morphPlan && incomingSlide && fragmented?.incoming ? /* @__PURE__ */ jsx(
33320
+ FragmentedTransitionLayer,
33321
+ {
33322
+ layer: fragmented.incoming,
33323
+ slide: incomingSlide,
33324
+ templateElements,
33325
+ canvasSize,
33326
+ scale,
33327
+ zIndex: animations.outgoingOnTop ? 0 : 10,
33328
+ layerName: "incoming"
33329
+ }
33330
+ ) : !morphPlan && animations.incoming !== "none" && incomingSlide ? /* @__PURE__ */ jsx(
33218
33331
  "div",
33219
33332
  {
33220
33333
  "data-pptx-transition-layer": "incoming",
@@ -33245,7 +33358,18 @@ function PresentationTransitionOverlay({
33245
33358
  )
33246
33359
  }
33247
33360
  ) : null,
33248
- /* @__PURE__ */ jsx(
33361
+ fragmented?.outgoing ? /* @__PURE__ */ jsx(
33362
+ FragmentedTransitionLayer,
33363
+ {
33364
+ layer: fragmented.outgoing,
33365
+ slide: outgoingSlide,
33366
+ templateElements,
33367
+ canvasSize,
33368
+ scale,
33369
+ zIndex: animations.outgoingOnTop ? 10 : 0,
33370
+ layerName: "outgoing"
33371
+ }
33372
+ ) : /* @__PURE__ */ jsx(
33249
33373
  "div",
33250
33374
  {
33251
33375
  "data-pptx-transition-layer": "outgoing",
@@ -37318,6 +37442,7 @@ function ViewerCanvasArea(props) {
37318
37442
  tableOps,
37319
37443
  annotations,
37320
37444
  presentation,
37445
+ presentationOverlay,
37321
37446
  onEndPresentation,
37322
37447
  findReplace,
37323
37448
  hiddenActions,
@@ -37521,11 +37646,15 @@ ${url}`)) {
37521
37646
  tableStyleContext,
37522
37647
  onStageClick: handleStageClick,
37523
37648
  screenOverlay: (
37524
- // Blackout/whiteout, audience ink, laser and captions. Rendered on
37525
- // the stage rather than beside the viewer, because the fullscreen
37526
- // element is the viewer's inner container: anything mounted outside
37527
- // it simply is not painted while a real fullscreen show is running.
37528
- /* @__PURE__ */ jsx(PresentationAudienceEffects, { snapshot: presentation.presenterSnapshot })
37649
+ // Blackout/whiteout, audience ink, laser and captions, plus any
37650
+ // caller-supplied show chrome. Rendered on the stage rather than
37651
+ // beside the viewer, because the fullscreen element is the viewer's
37652
+ // inner container: anything mounted outside it simply is not
37653
+ // painted while a real fullscreen show is running.
37654
+ /* @__PURE__ */ jsxs(Fragment, { children: [
37655
+ /* @__PURE__ */ jsx(PresentationAudienceEffects, { snapshot: presentation.presenterSnapshot }),
37656
+ presentationOverlay
37657
+ ] })
37529
37658
  ),
37530
37659
  children: (stageScale) => /* @__PURE__ */ jsxs(Fragment, { children: [
37531
37660
  presentation.transitionOverlay && slides[presentation.transitionOverlay.outgoingSlideIndex] && /* @__PURE__ */ jsx(
@@ -37784,7 +37913,7 @@ function useTableStyleMapHandlers(input) {
37784
37913
  var AiChatPanel = lazy(async () => {
37785
37914
  const [{ useChat }, { default: Panel }] = await Promise.all([
37786
37915
  import('@ai-sdk/react'),
37787
- import('./AiChatPanel-L5H455NZ.mjs')
37916
+ import('./AiChatPanel-JTXC5WWH.mjs')
37788
37917
  ]);
37789
37918
  function BoundAiChatPanel(props) {
37790
37919
  return /* @__PURE__ */ jsx(Panel, { ...props, useChat });
@@ -38866,6 +38995,7 @@ function ViewerMainContent(props) {
38866
38995
  editorOps,
38867
38996
  dialogs,
38868
38997
  presentation,
38998
+ presentationOverlay,
38869
38999
  annotations,
38870
39000
  propertyHandlers,
38871
39001
  themeHandlers,
@@ -39014,6 +39144,7 @@ function ViewerMainContent(props) {
39014
39144
  tableOps,
39015
39145
  annotations,
39016
39146
  presentation,
39147
+ presentationOverlay,
39017
39148
  onEndPresentation,
39018
39149
  findReplace,
39019
39150
  hiddenActions,
@@ -39690,6 +39821,59 @@ function ReadOnlyBanner({
39690
39821
  }
39691
39822
  );
39692
39823
  }
39824
+ function RunProgramNotices({ notices, onDismiss }) {
39825
+ const { t } = useTranslation();
39826
+ if (notices.length === 0) {
39827
+ return null;
39828
+ }
39829
+ const clipboardAvailable = canUseClipboard(
39830
+ typeof navigator === "undefined" ? void 0 : navigator
39831
+ );
39832
+ return /* @__PURE__ */ jsx(
39833
+ "div",
39834
+ {
39835
+ "data-testid": "pptx-run-program-notices",
39836
+ className: "max-h-[60%] overflow-y-auto",
39837
+ style: runProgramNoticeStackStyle(),
39838
+ children: notices.map((notice) => /* @__PURE__ */ jsxs(
39839
+ "div",
39840
+ {
39841
+ "data-testid": "pptx-run-program-notice",
39842
+ "data-target": notice.target,
39843
+ className: "flex items-start gap-2 rounded border border-border bg-card p-2 text-[11px] shadow-md",
39844
+ style: { pointerEvents: "auto" },
39845
+ children: [
39846
+ /* @__PURE__ */ jsx("span", { className: "flex-1 min-w-0", children: t(notice.messageKey, { target: notice.target }) }),
39847
+ clipboardAvailable && /* @__PURE__ */ jsx(
39848
+ "button",
39849
+ {
39850
+ type: "button",
39851
+ "data-testid": "pptx-run-program-notice-copy",
39852
+ onClick: () => {
39853
+ void navigator.clipboard.writeText(notice.target);
39854
+ },
39855
+ className: "shrink-0 text-muted-foreground underline-offset-2 hover:underline hover:text-foreground",
39856
+ children: t(notice.copyLabelKey)
39857
+ }
39858
+ ),
39859
+ /* @__PURE__ */ jsx(
39860
+ "button",
39861
+ {
39862
+ type: "button",
39863
+ "data-testid": "pptx-run-program-notice-dismiss",
39864
+ onClick: () => onDismiss(notice.id),
39865
+ "aria-label": t("pptx.compatibility.dismiss"),
39866
+ className: "shrink-0 text-muted-foreground hover:text-foreground",
39867
+ children: "\xD7"
39868
+ }
39869
+ )
39870
+ ]
39871
+ },
39872
+ notice.id
39873
+ ))
39874
+ }
39875
+ );
39876
+ }
39693
39877
  function AddinTable({
39694
39878
  title,
39695
39879
  rows,
@@ -40955,6 +41139,19 @@ function useRecentColorsSync(input) {
40955
41139
  );
40956
41140
  return { pushColor };
40957
41141
  }
41142
+ function useRunProgramNoticesState() {
41143
+ const [notices, setNotices] = useState([]);
41144
+ const addNotice = useCallback((notice) => {
41145
+ setNotices((prev) => [...prev, notice]);
41146
+ }, []);
41147
+ const dismiss = useCallback((id) => {
41148
+ setNotices((prev) => prev.filter((notice) => notice.id !== id));
41149
+ }, []);
41150
+ const dismissAll = useCallback(() => {
41151
+ setNotices([]);
41152
+ }, []);
41153
+ return { notices, addNotice, dismiss, dismissAll };
41154
+ }
40958
41155
  var PowerPointViewer = forwardRef(
40959
41156
  // oxlint-disable-next-line prefer-arrow-callback -- named fn gives the forwardRef component its displayName
40960
41157
  function PowerPointViewer2(props, ref) {
@@ -41103,6 +41300,7 @@ var PowerPointViewer = forwardRef(
41103
41300
  }, []);
41104
41301
  const readOnlyRec = useReadOnlyRecommendationState(content);
41105
41302
  const compatToastsState = useCompatibilityToastsState();
41303
+ const runProgramNoticesState = useRunProgramNoticesState();
41106
41304
  const canEdit = hostCanEdit && !isProtectedView && !readOnlyRec.locked;
41107
41305
  const [isSettingsOpen, setIsSettingsOpen] = useState(false);
41108
41306
  const [isHeaderFooterOpen, setIsHeaderFooterOpen] = useState(false);
@@ -41332,6 +41530,10 @@ var PowerPointViewer = forwardRef(
41332
41530
  promptKeepInkAnnotations: viewerOptions.advanced.slideShowPromptKeepInkAnnotations,
41333
41531
  // File > Options > Advanced > "Show popup toolbar" while presenting.
41334
41532
  popupToolbarEnabled: viewerOptions.advanced.slideShowShowPopupToolbar,
41533
+ // File > Options > Advanced > "Show a mosaic effect for Pixelate
41534
+ // transitions". Off (the default) matches PowerPoint's own
41535
+ // instant-swap behaviour for `p:animEffect/@filter="pixelate"`.
41536
+ pixelateMosaicAnimation: viewerOptions.advanced.pixelateMosaicAnimation,
41335
41537
  activeSlideIndex,
41336
41538
  containerRef,
41337
41539
  content,
@@ -41349,7 +41551,8 @@ var PowerPointViewer = forwardRef(
41349
41551
  })),
41350
41552
  customShows: state.customShows,
41351
41553
  activeCustomShowId: state.activeCustomShowId,
41352
- onSetActiveCustomShowId: state.setActiveCustomShowId
41554
+ onSetActiveCustomShowId: state.setActiveCustomShowId,
41555
+ onAddRunProgramNotice: runProgramNoticesState.addNotice
41353
41556
  });
41354
41557
  useTouchGestures({
41355
41558
  targetRef: zoom.canvasViewportRef,
@@ -41725,6 +41928,22 @@ var PowerPointViewer = forwardRef(
41725
41928
  canEdit,
41726
41929
  slides,
41727
41930
  activeSlide,
41931
+ presentationOverlay: (
41932
+ // `ppaction://program` ("Run program") notices. Rendered INSIDE
41933
+ // the show stage, not beside the viewer: the fullscreen element
41934
+ // is the viewer's inner container (the top layer), so anything
41935
+ // mounted outside it is neither painted nor hit-testable while
41936
+ // a real fullscreen show runs, whatever its z-index. Caught by
41937
+ // e2e/run-program-notice.spec.ts (the Copy button was visible
41938
+ // yet every click reached the stage).
41939
+ /* @__PURE__ */ jsx(
41940
+ RunProgramNotices,
41941
+ {
41942
+ notices: runProgramNoticesState.notices,
41943
+ onDismiss: runProgramNoticesState.dismiss
41944
+ }
41945
+ )
41946
+ ),
41728
41947
  masterPseudoSlide,
41729
41948
  activeSlideIndex,
41730
41949
  canvasSize,