pptx-react-viewer 2.5.3 → 2.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/{AiChatPanel-DPMHPOWF.js → AiChatPanel-LBK6YRKH.js} +22 -22
  3. package/dist/AiChatPanel-LBK6YRKH.js.br +0 -0
  4. package/dist/AiChatPanel-LBK6YRKH.js.gz +0 -0
  5. package/dist/{AiChatPanel-OFOOWR4U.mjs → AiChatPanel-RVZOGGFK.mjs} +3 -3
  6. package/dist/AiChatPanel-RVZOGGFK.mjs.br +0 -0
  7. package/dist/AiChatPanel-RVZOGGFK.mjs.gz +0 -0
  8. package/dist/{Model3DScene-PD2MDBIE.js → Model3DScene-L46RNRU5.js} +2 -2
  9. package/dist/Model3DScene-L46RNRU5.js.br +0 -0
  10. package/dist/Model3DScene-L46RNRU5.js.gz +0 -0
  11. package/dist/{Model3DScene-P4OKVQBF.mjs → Model3DScene-WBUZ74G3.mjs} +1 -1
  12. package/dist/Model3DScene-WBUZ74G3.mjs.br +0 -0
  13. package/dist/Model3DScene-WBUZ74G3.mjs.gz +0 -0
  14. package/dist/{SurfaceChart3DScene-TL4ZIOI4.mjs → SurfaceChart3DScene-CB32AJS4.mjs} +1 -1
  15. package/dist/{SurfaceChart3DScene-TL4ZIOI4.mjs.br → SurfaceChart3DScene-CB32AJS4.mjs.br} +0 -0
  16. package/dist/SurfaceChart3DScene-CB32AJS4.mjs.gz +0 -0
  17. package/dist/{SurfaceChart3DScene-FECS3THE.js → SurfaceChart3DScene-RWMGMREC.js} +2 -2
  18. package/dist/SurfaceChart3DScene-RWMGMREC.js.br +0 -0
  19. package/dist/SurfaceChart3DScene-RWMGMREC.js.gz +0 -0
  20. package/dist/{chunk-UUS7QT22.js → chunk-2VE3LVKZ.js} +346 -315
  21. package/dist/chunk-2VE3LVKZ.js.br +0 -0
  22. package/dist/chunk-2VE3LVKZ.js.gz +0 -0
  23. package/dist/{chunk-FFLUALX5.js → chunk-4O7PPQ2V.js} +260 -240
  24. package/dist/chunk-4O7PPQ2V.js.br +0 -0
  25. package/dist/chunk-4O7PPQ2V.js.gz +0 -0
  26. package/dist/{chunk-ZZA62IND.mjs → chunk-54FSVX3O.mjs} +35 -4
  27. package/dist/chunk-54FSVX3O.mjs.br +0 -0
  28. package/dist/chunk-54FSVX3O.mjs.gz +0 -0
  29. package/dist/{chunk-H2FZ2NJ7.js → chunk-AX4Q5JWN.js} +3 -3
  30. package/dist/chunk-AX4Q5JWN.js.br +0 -0
  31. package/dist/chunk-AX4Q5JWN.js.gz +0 -0
  32. package/dist/{chunk-F3JUUSC4.mjs → chunk-BL3WW2BS.mjs} +95 -15
  33. package/dist/chunk-BL3WW2BS.mjs.br +0 -0
  34. package/dist/chunk-BL3WW2BS.mjs.gz +0 -0
  35. package/dist/{chunk-6KOM27PS.mjs → chunk-EI456HZK.mjs} +964 -64
  36. package/dist/chunk-EI456HZK.mjs.br +0 -0
  37. package/dist/chunk-EI456HZK.mjs.gz +0 -0
  38. package/dist/{chunk-SAXG53MO.mjs → chunk-GC6HQMVG.mjs} +1 -1
  39. package/dist/chunk-GC6HQMVG.mjs.br +0 -0
  40. package/dist/chunk-GC6HQMVG.mjs.gz +0 -0
  41. package/dist/{chunk-USHZUHHG.js → chunk-IEFH47TF.js} +929 -849
  42. package/dist/chunk-IEFH47TF.js.br +0 -0
  43. package/dist/chunk-IEFH47TF.js.gz +0 -0
  44. package/dist/{chunk-23Q3I2LM.js → chunk-T7AMP24E.js} +966 -63
  45. package/dist/chunk-T7AMP24E.js.br +0 -0
  46. package/dist/chunk-T7AMP24E.js.gz +0 -0
  47. package/dist/{chunk-QDIF3ZXF.mjs → chunk-ZUNDIOGD.mjs} +28 -8
  48. package/dist/chunk-ZUNDIOGD.mjs.br +0 -0
  49. package/dist/chunk-ZUNDIOGD.mjs.gz +0 -0
  50. package/dist/index.d.ts +15 -0
  51. package/dist/index.js +34 -34
  52. package/dist/index.js.br +0 -0
  53. package/dist/index.js.gz +0 -0
  54. package/dist/index.mjs +5 -5
  55. package/dist/index.mjs.br +0 -0
  56. package/dist/index.mjs.gz +0 -0
  57. package/dist/internals.d.ts +44 -0
  58. package/dist/internals.d.ts.map +1 -1
  59. package/dist/internals.js +78 -78
  60. package/dist/internals.js.br +0 -0
  61. package/dist/internals.js.gz +0 -0
  62. package/dist/internals.mjs +3 -3
  63. package/dist/internals.mjs.br +0 -0
  64. package/dist/internals.mjs.gz +0 -0
  65. package/dist/pptx-viewer.css +1 -1
  66. package/dist/pptx-viewer.css.br +0 -0
  67. package/dist/pptx-viewer.css.gz +0 -0
  68. package/dist/viewer/index.d.ts +15 -0
  69. package/dist/viewer/index.js +21 -21
  70. package/dist/viewer/index.js.br +0 -0
  71. package/dist/viewer/index.js.gz +0 -0
  72. package/dist/viewer/index.mjs +5 -5
  73. package/dist/viewer/index.mjs.br +0 -0
  74. package/dist/viewer/index.mjs.gz +0 -0
  75. package/package.json +1 -1
  76. package/dist/AiChatPanel-DPMHPOWF.js.br +0 -0
  77. package/dist/AiChatPanel-DPMHPOWF.js.gz +0 -0
  78. package/dist/AiChatPanel-OFOOWR4U.mjs.br +0 -0
  79. package/dist/AiChatPanel-OFOOWR4U.mjs.gz +0 -0
  80. package/dist/Model3DScene-P4OKVQBF.mjs.br +0 -0
  81. package/dist/Model3DScene-P4OKVQBF.mjs.gz +0 -0
  82. package/dist/Model3DScene-PD2MDBIE.js.br +0 -0
  83. package/dist/Model3DScene-PD2MDBIE.js.gz +0 -0
  84. package/dist/SurfaceChart3DScene-FECS3THE.js.br +0 -0
  85. package/dist/SurfaceChart3DScene-FECS3THE.js.gz +0 -0
  86. package/dist/SurfaceChart3DScene-TL4ZIOI4.mjs.gz +0 -0
  87. package/dist/chunk-23Q3I2LM.js.br +0 -0
  88. package/dist/chunk-23Q3I2LM.js.gz +0 -0
  89. package/dist/chunk-6KOM27PS.mjs.br +0 -0
  90. package/dist/chunk-6KOM27PS.mjs.gz +0 -0
  91. package/dist/chunk-F3JUUSC4.mjs.br +0 -0
  92. package/dist/chunk-F3JUUSC4.mjs.gz +0 -0
  93. package/dist/chunk-FFLUALX5.js.br +0 -0
  94. package/dist/chunk-FFLUALX5.js.gz +0 -0
  95. package/dist/chunk-H2FZ2NJ7.js.br +0 -0
  96. package/dist/chunk-H2FZ2NJ7.js.gz +0 -0
  97. package/dist/chunk-QDIF3ZXF.mjs.br +0 -0
  98. package/dist/chunk-QDIF3ZXF.mjs.gz +0 -0
  99. package/dist/chunk-SAXG53MO.mjs.br +0 -0
  100. package/dist/chunk-SAXG53MO.mjs.gz +0 -0
  101. package/dist/chunk-USHZUHHG.js.br +0 -0
  102. package/dist/chunk-USHZUHHG.js.gz +0 -0
  103. package/dist/chunk-UUS7QT22.js.br +0 -0
  104. package/dist/chunk-UUS7QT22.js.gz +0 -0
  105. package/dist/chunk-ZZA62IND.mjs.br +0 -0
  106. package/dist/chunk-ZZA62IND.mjs.gz +0 -0
Binary file
Binary file
@@ -1,6 +1,6 @@
1
- import { cloneHistorySnapshot, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, MIN_ELEMENT_SIZE, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, partitionTemplateElements, UNGROUPED_SECTION_ID, stopAllPersistentAudio, buildSaveSlides, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, executeMediaCommand, buildPdfFromImageData, buildNotesPdf, EMU_PER_PX, GRID_SIZE, DEFAULT_TEXT_FONT_SIZE } from './chunk-QDIF3ZXF.mjs';
1
+ import { cloneHistorySnapshot, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, MIN_ELEMENT_SIZE, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, partitionTemplateElements, UNGROUPED_SECTION_ID, stopAllPersistentAudio, buildSaveSlides, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, executeMediaCommand, buildPdfFromImageData, buildNotesPdf, EMU_PER_PX, GRID_SIZE, DEFAULT_TEXT_FONT_SIZE } from './chunk-ZUNDIOGD.mjs';
2
2
  import { translationsEn } from './chunk-Z6HIZWIQ.mjs';
3
- import { TOOLBAR_TABS, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, BROADCAST_THROTTLE_MS, createSyncGate, clearLocalAwareness, validateRoomId, createDepartureChannel, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, registerCollaborationTeardown, sanitizeColor, cloneTemplateElementsBySlideId, cloneSlide, PresentationAnimationController, computeEntranceAnimationDelay, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, endAudienceDisplay, createPresentationKeyBuffer, acceptsPresentationInput, createCollaborationLivePatcher, publishLiveInlineText, PptxHandler, collectMediaElements, collectImagePaths, buildInitialGuides, EncryptedFileError, saveAutosaveSnapshot, isTemplateElementId, hasShapeProperties, hasTextProperties, getInlineEditorSelection, applyStyleToSelectedSegments, setPendingSelectionRestore, applyCaseTransformToSegments, transformTextCase, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, normalizeColorsForCapture, preprocessCssForCapture, downloadBlob, sanitizeDownloadFilename, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, recordProgressPercent, applyThemeToData, THEME_PRESETS, themeColorSchemesEqual, comparePresentation, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, detectTouchDevice, detectOrientation, isMobileViewport, MOBILE_BREAKPOINT, TABLET_BREAKPOINT, mayLeaveSlideShow, remapTextToSegments, guidePxToEmu, shouldLoopContinuously, applyRehearsalTimings, copyFormatFromElement, applyFormatToElement, createViewerOptionsStore, readSlidesFromYDoc, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, shouldAutoFollowBroadcaster, createTouchGestureRecognizer, isKeyboardOpen, openPptxFile, readBackstageRecentFile, isActionHidden, buildElementClipboardPayload, generatePackageReadme, groupElements, generateElementId, makeCloneId, alignElements, distributeElements, bringForward, sendBackward, bringToFront, sendToBack, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, mergeShapes, derivePresenceList, mapPresentationKey, buildPrintDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, buildThemeColorMap, reResolveSlideColors, createPresentationSessionId, resolveTransitionDurationMs, isUrlSafe, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, presenterElapsed, stepPresenterZoom, resetPresenterTimer, togglePresenterTimer, canvasToJpegData, downloadDataUrl, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, encodeGif, groupSlidesBySection, hasCopyableFormat, createBackstagePresentation, cloneElementForPaste, computeScrollDelta, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, rerouteConnectorsForMovedElements, applyReroutedConnectors, SvgExporter, buildPrintHtmlDocument, deleteTableColumn, rebuildTableStructureInRawXml, insertTableColumn, deleteTableRow, insertTableRow, updateCellTextStyleInRawXml, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, isPpactionUrl, parsePpactionUrl, safeOpenUrl, ACTION_BUTTON_PRESETS, elementActionToPptxAction, buildSmartArtPresetData, computeSnapToShape, publishLiveGeometry, computeMarqueeHitIds, mergeAdditiveSelection, applyResize, snapBoxToGrid } from './chunk-6KOM27PS.mjs';
3
+ import { TOOLBAR_TABS, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, BROADCAST_THROTTLE_MS, createSyncGate, clearLocalAwareness, validateRoomId, createDepartureChannel, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, registerCollaborationTeardown, sanitizeColor, cloneTemplateElementsBySlideId, cloneSlide, PresentationAnimationController, computeEntranceAnimationDelay, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, endAudienceDisplay, createPresentationKeyBuffer, acceptsPresentationInput, buildMorphTransitionPlan, morphOptionToMode, createCollaborationLivePatcher, publishLiveInlineText, PptxHandler, collectMediaElements, collectImagePaths, buildInitialGuides, EncryptedFileError, saveAutosaveSnapshot, isTemplateElementId, hasShapeProperties, hasTextProperties, getInlineEditorSelection, applyStyleToSelectedSegments, setPendingSelectionRestore, applyCaseTransformToSegments, transformTextCase, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, normalizeColorsForCapture, preprocessCssForCapture, downloadBlob, sanitizeDownloadFilename, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, recordProgressPercent, applyThemeToData, THEME_PRESETS, themeColorSchemesEqual, comparePresentation, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, detectTouchDevice, detectOrientation, isMobileViewport, MOBILE_BREAKPOINT, TABLET_BREAKPOINT, mayLeaveSlideShow, remapTextToSegments, guidePxToEmu, shouldLoopContinuously, applyRehearsalTimings, copyFormatFromElement, applyFormatToElement, createViewerOptionsStore, readSlidesFromYDoc, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, shouldAutoFollowBroadcaster, createTouchGestureRecognizer, isKeyboardOpen, openPptxFile, readBackstageRecentFile, isActionHidden, buildElementClipboardPayload, generatePackageReadme, groupElements, generateElementId, makeCloneId, alignElements, distributeElements, bringForward, sendBackward, bringToFront, sendToBack, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, mergeShapes, derivePresenceList, mapPresentationKey, buildPrintDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, buildThemeColorMap, reResolveSlideColors, createPresentationSessionId, resolveTransitionDurationMs, isUrlSafe, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, presenterElapsed, stepPresenterZoom, resetPresenterTimer, togglePresenterTimer, canvasToJpegData, downloadDataUrl, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, encodeGif, groupSlidesBySection, hasCopyableFormat, createBackstagePresentation, cloneElementForPaste, computeScrollDelta, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, rerouteConnectorsForMovedElements, applyReroutedConnectors, SvgExporter, buildPrintHtmlDocument, deleteTableColumn, rebuildTableStructureInRawXml, insertTableColumn, deleteTableRow, insertTableRow, updateCellTextStyleInRawXml, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, isPpactionUrl, parsePpactionUrl, safeOpenUrl, ACTION_BUTTON_PRESETS, elementActionToPptxAction, buildSmartArtPresetData, computeSnapToShape, publishLiveGeometry, computeMarqueeHitIds, mergeAdditiveSelection, applyResize, snapBoxToGrid } from './chunk-EI456HZK.mjs';
4
4
  import { useRef, useState, useEffect, useCallback, useMemo, useSyncExternalStore, useImperativeHandle } from 'react';
5
5
  import JSZip from 'jszip';
6
6
  import { useTranslation } from 'react-i18next';
@@ -2424,15 +2424,46 @@ function usePresentationMode(input) {
2424
2424
  });
2425
2425
  };
2426
2426
  }, [presentationTimersRef]);
2427
+ const morphPlan = useMemo(() => {
2428
+ if (!transitionOverlay || transitionOverlay.transition.type !== "morph") {
2429
+ return void 0;
2430
+ }
2431
+ return buildMorphTransitionPlan(
2432
+ slides[transitionOverlay.outgoingSlideIndex],
2433
+ slides[transitionOverlay.incomingSlideIndex],
2434
+ transitionOverlay.durationMs,
2435
+ morphOptionToMode(transitionOverlay.transition.morphOption)
2436
+ );
2437
+ }, [transitionOverlay, slides]);
2438
+ const morphedElementStates = useMemo(() => {
2439
+ if (!morphPlan || morphPlan.incomingAnimations.size === 0) {
2440
+ return presentationElementStates;
2441
+ }
2442
+ const merged = new Map(presentationElementStates);
2443
+ for (const [elementId, animation] of morphPlan.incomingAnimations) {
2444
+ const existing = merged.get(elementId);
2445
+ if (existing?.cssAnimation) {
2446
+ continue;
2447
+ }
2448
+ merged.set(elementId, { ...existing, visible: true, cssAnimation: animation });
2449
+ }
2450
+ return merged;
2451
+ }, [morphPlan, presentationElementStates]);
2452
+ const morphedKeyframesCss = useMemo(
2453
+ () => morphPlan ? `${presentationKeyframesCss ?? ""}
2454
+ ${morphPlan.keyframesCss}` : presentationKeyframesCss,
2455
+ [morphPlan, presentationKeyframesCss]
2456
+ );
2427
2457
  return {
2428
2458
  presentationSlideIndex,
2429
2459
  setPresentationSlideIndex,
2430
2460
  presentationSlideVisible,
2431
2461
  transitionOverlay,
2432
2462
  handleTransitionOverlayComplete,
2463
+ morphPlan,
2433
2464
  presentationAnimations,
2434
- presentationElementStates,
2435
- presentationKeyframesCss,
2465
+ presentationElementStates: morphedElementStates,
2466
+ presentationKeyframesCss: morphedKeyframesCss,
2436
2467
  clearPresentationTimers,
2437
2468
  runPresentationEntranceAnimations,
2438
2469
  endOfShowVisible,
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk23Q3I2LM_js = require('./chunk-23Q3I2LM.js');
3
+ var chunkT7AMP24E_js = require('./chunk-T7AMP24E.js');
4
4
  var chunk4VNS5WPM_js = require('./chunk-4VNS5WPM.js');
5
5
  var mcp = require('pptx-viewer-mcp');
6
6
  var mcpSchemas = require('pptx-viewer-mcp/schemas');
@@ -14879,7 +14879,7 @@ async function buildSlideMarkdown(slides, slideIndex2, meta3, options = {}) {
14879
14879
  };
14880
14880
  let markdown;
14881
14881
  try {
14882
- const converter = new chunk23Q3I2LM_js.PptxMarkdownConverter(
14882
+ const converter = new chunkT7AMP24E_js.PptxMarkdownConverter(
14883
14883
  "",
14884
14884
  {
14885
14885
  sourceName: meta3.title ?? "deck.pptx",
@@ -15470,7 +15470,7 @@ var getTheme = (ctx) => {
15470
15470
  name: theme?.name,
15471
15471
  colorScheme: theme?.colorScheme,
15472
15472
  fontScheme: theme?.fontScheme,
15473
- availablePresets: Object.keys(chunk23Q3I2LM_js.ThemePresets)
15473
+ availablePresets: Object.keys(chunkT7AMP24E_js.ThemePresets)
15474
15474
  };
15475
15475
  };
15476
15476
  var readExecutors = {
Binary file
Binary file
@@ -1,8 +1,8 @@
1
- import { computeFocusTargets, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, toRenderableParts } from './chunk-SAXG53MO.mjs';
2
- import { useReducedMotion, useViewerState, useViewerOptions, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, downloadBlob } from './chunk-ZZA62IND.mjs';
3
- import { SHAPE_PRESETS, DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, MIN_ELEMENT_SIZE, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, ANIMATION_PRESET_OPTIONS, resolvePalette, resolveStyle, layoutToCategory, wrapChrome, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, getCropShapeClipPath, SLIDE_TRANSITION_OPTIONS, SLIDE_NAV_THUMBNAIL_WIDTH, styleShadow, styleStroke, colour, fitFontSize, smartArtNodeGroupProps, chevronPoints, SmartArtNodeText, truncate, renderStepDownProcess, renderAlternatingFlow, renderDescendingProcess, renderPictureAccentList, renderVerticalBlockList, renderGroupedList, renderPyramidList, renderHorizontalPictureList, renderAccentProcess, renderVerticalChevronList, isImageTiled, getImageTilingStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, buildTextBody3DSceneStyle, TOOLBAR_SECTIONS, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, buildTree, treeWidth, treeDepth, nodeOpacity, gearPath, resolveSmartArtDataPalette, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, HYPERLINK_COLOR, GRID_SIZE, startPreviewAnimation, stopPreviewAnimation } from './chunk-QDIF3ZXF.mjs';
1
+ import { computeFocusTargets, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, toRenderableParts } from './chunk-GC6HQMVG.mjs';
2
+ import { useReducedMotion, useViewerState, useViewerOptions, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, downloadBlob } from './chunk-54FSVX3O.mjs';
3
+ import { SHAPE_PRESETS, DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, MIN_ELEMENT_SIZE, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, ANIMATION_PRESET_OPTIONS, resolvePalette, resolveStyle, layoutToCategory, wrapChrome, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, getCropShapeClipPath, SLIDE_TRANSITION_OPTIONS, SLIDE_NAV_THUMBNAIL_WIDTH, styleShadow, styleStroke, colour, fitFontSize, smartArtNodeGroupProps, chevronPoints, SmartArtNodeText, truncate, renderStepDownProcess, renderAlternatingFlow, renderDescendingProcess, renderPictureAccentList, renderVerticalBlockList, renderGroupedList, renderPyramidList, renderHorizontalPictureList, renderAccentProcess, renderVerticalChevronList, isImageTiled, getImageTilingStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, buildTextBody3DSceneStyle, TOOLBAR_SECTIONS, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, buildTree, treeWidth, treeDepth, nodeOpacity, gearPath, resolveSmartArtDataPalette, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, HYPERLINK_COLOR, GRID_SIZE, startPreviewAnimation, stopPreviewAnimation } from './chunk-ZUNDIOGD.mjs';
4
4
  import { LOCALE_CATALOG, translationsEn } from './chunk-Z6HIZWIQ.mjs';
5
- import { RULER_THICKNESS, RULER_FONT_SIZE, hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, getElementTransform, ACTION_BUTTON_PRESETS, isEditableTextElement, getAriaRole, getAriaLabel, getAriaRoleDescription, getImageEffectsOpacity, getImageEffectsFilter, getElementTransformWithoutRotation, SWITCHABLE_LAYOUT_TYPES, EQUATION_TEMPLATES, convertLatexToOmml, convertOmmlToMathMl, sanitizeMathMl, DEFAULT_VIEWER_OPTIONS, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, revealedSmartArtNodeCount, buildSmartArtA11y, buildCssGradientFromShapeStyle, resolveGroupChildFill, getGroupChildParentFill, getComputedEffectStyle, getSoftEdgeSvgFilter, isInkElement, getElementLabel, buildPreviewElements, themeToCssVars, DEFAULT_INSERT_CHART_TYPE, hasCopyableFormat, createBackstagePresentation, printPropertiesFrameSlides, printPropertiesSlidesPerPage, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, resolveDrawingShapeNodeId, buildSummaryZoomView, getImageColorWashStyle, isImageLikeElement, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, applyChartBuildReveal, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleTypeColor, getOleTypeLabel, getLinkedTextBoxSegments, shouldUseSvgWarp, getSlideBackgroundStyle, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, shouldConfirmExternalHyperlink, safeOpenUrl, isPpactionUrl, parsePpactionUrl, themeColorSchemesEqual, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, clampPercent, HANDOUT_OPTIONS, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS, resolveViewerAddinRows, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, activateModalFocus, buildCollaborationShareUrl, mobileElapsedSince, isFirstSlide, isLastSlide, formatMobileElapsed, mobileSlideCounter, presenterPaneAdvancesOnClick, formatElapsed, computeInlineEditorRect, findSmartArtNodeText, setSmartArtNodeStyle, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, updateSmartArtNodeText, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, findChartPartTarget, dragValueForPart, withChartPointValue, dragAnchorViewY, withChartTitle, computeSmartArtLayout, buildSmartArt3DModel, extractPathPoints, generatePressureCircles, isBrowserOpenableMime, formatBytes, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, getWarpPath, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, INSERT_CHART_TYPES, SLIDE_VIRTUALIZATION_THRESHOLD, getSlideTransitionAnimations, SLIDE_TRANSITION_KEYFRAMES, presentationInkPath, getShapeAdjustmentHandleDescriptor, formatSlideCounter, isUrlSafe, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, QUICK_ACCESS_COMMAND_CATALOG, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, groupIntoParagraphs, substituteFieldText, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, getConnectionSites, generateTicks, getCommentMarkerPosition, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, THEME_COLOR_LABELS, buildSmartArtPresetData, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, TABLE_STYLE_PRESETS, chartDataChangeType, chartDataUpdatePoint, chartDataAddCategory, chartDataRemoveCategory, chartDataAddSeries, chartDataRemoveSeries, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, getOleObjectTypeLabel, pptxActionToElementAction, withFrameSlides, withSlidesPerPage, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, formatCommentTimestamp, DIRECTIONAL_PRESETS, computeMergeCellRight, computeMergeCellDown, computeSplitCell, addSmartArtNodeAsChild, removeSmartArtNode, DUOTONE_PRESETS, ARTISTIC_EFFECTS, elementActionToPptxAction, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, switchSmartArtLayout, addSmartArtNode, demoteSmartArtNode, promoteSmartArtNode, reorderSmartArtNode, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS } from './chunk-6KOM27PS.mjs';
5
+ import { RULER_THICKNESS, RULER_FONT_SIZE, hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, getElementTransform, ACTION_BUTTON_PRESETS, isEditableTextElement, getAriaRole, getAriaLabel, getAriaRoleDescription, getImageEffectsOpacity, getImageEffectsFilter, getElementTransformWithoutRotation, SWITCHABLE_LAYOUT_TYPES, EQUATION_TEMPLATES, convertLatexToOmml, convertOmmlToMathMl, sanitizeMathMl, DEFAULT_VIEWER_OPTIONS, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, revealedSmartArtNodeCount, buildSmartArtA11y, buildCssGradientFromShapeStyle, resolveGroupChildFill, getGroupChildParentFill, getComputedEffectStyle, getSoftEdgeSvgFilter, isInkElement, getElementLabel, buildPreviewElements, themeToCssVars, DEFAULT_INSERT_CHART_TYPE, hasCopyableFormat, createBackstagePresentation, printPropertiesFrameSlides, printPropertiesSlidesPerPage, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, resolveDrawingShapeNodeId, buildSummaryZoomView, getImageColorWashStyle, isImageLikeElement, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, applyChartBuildReveal, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleTypeColor, getOleTypeLabel, getLinkedTextBoxSegments, shouldUseSvgWarp, getSlideBackgroundStyle, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, shouldConfirmExternalHyperlink, safeOpenUrl, isPpactionUrl, parsePpactionUrl, themeColorSchemesEqual, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, clampPercent, HANDOUT_OPTIONS, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS, resolveViewerAddinRows, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, activateModalFocus, buildCollaborationShareUrl, mobileElapsedSince, isFirstSlide, isLastSlide, formatMobileElapsed, mobileSlideCounter, presenterPaneAdvancesOnClick, formatElapsed, computeInlineEditorRect, findSmartArtNodeText, setSmartArtNodeStyle, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, updateSmartArtNodeText, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, findChartPartTarget, dragValueForPart, withChartPointValue, dragAnchorViewY, withChartTitle, computeSmartArtLayout, buildSmartArt3DModel, extractPathPoints, generatePressureCircles, isBrowserOpenableMime, formatBytes, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, getWarpPath, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, INSERT_CHART_TYPES, SLIDE_VIRTUALIZATION_THRESHOLD, getSlideTransitionAnimations, SLIDE_TRANSITION_KEYFRAMES, presentationInkPath, getShapeAdjustmentHandleDescriptor, formatSlideCounter, isUrlSafe, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, QUICK_ACCESS_COMMAND_CATALOG, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, groupIntoParagraphs, substituteFieldText, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, getConnectionSites, generateTicks, getCommentMarkerPosition, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, THEME_COLOR_LABELS, buildSmartArtPresetData, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, TABLE_STYLE_PRESETS, chartDataChangeType, chartDataUpdatePoint, chartDataAddCategory, chartDataRemoveCategory, chartDataAddSeries, chartDataRemoveSeries, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, getOleObjectTypeLabel, pptxActionToElementAction, withFrameSlides, withSlidesPerPage, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, formatCommentTimestamp, DIRECTIONAL_PRESETS, computeMergeCellRight, computeMergeCellDown, computeSplitCell, addSmartArtNodeAsChild, removeSmartArtNode, DUOTONE_PRESETS, ARTISTIC_EFFECTS, elementActionToPptxAction, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, switchSmartArtLayout, addSmartArtNode, demoteSmartArtNode, promoteSmartArtNode, reorderSmartArtNode, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS } from './chunk-EI456HZK.mjs';
6
6
  import React32, { createContext, useMemo, useState, useCallback, lazy, forwardRef, useEffect, useRef, useContext, Suspense, useLayoutEffect, useDeferredValue } from 'react';
7
7
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
8
8
  import { useTranslation } from 'react-i18next';
@@ -1337,7 +1337,7 @@ function AccountPage() {
1337
1337
  return void 0;
1338
1338
  });
1339
1339
  };
1340
- const version = "2.5.2" ;
1340
+ const version = "2.6.0" ;
1341
1341
  return /* @__PURE__ */ jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
1342
1342
  /* @__PURE__ */ jsxs("section", { className: cardClass, children: [
1343
1343
  /* @__PURE__ */ jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
@@ -8341,7 +8341,7 @@ function FailedToLoad() {
8341
8341
  var LazyModel3DScene = React32.lazy(
8342
8342
  async () => {
8343
8343
  try {
8344
- return await import('./Model3DScene-P4OKVQBF.mjs');
8344
+ return await import('./Model3DScene-WBUZ74G3.mjs');
8345
8345
  } catch {
8346
8346
  return { default: FailedToLoad };
8347
8347
  }
@@ -11151,7 +11151,9 @@ function StaticElementRendererImpl({
11151
11151
  positioned = true,
11152
11152
  fieldContext,
11153
11153
  tableStyleContext,
11154
- parentGroupFill
11154
+ parentGroupFill,
11155
+ onActionClick,
11156
+ actionRequiresModifier = false
11155
11157
  }) {
11156
11158
  const style = hasShapeProperties(element) ? element.shapeStyle : void 0;
11157
11159
  const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
@@ -11173,11 +11175,33 @@ function StaticElementRendererImpl({
11173
11175
  element.type === "shape" && hasFill ? "#ffffff" : DEFAULT_TEXT_COLOR
11174
11176
  );
11175
11177
  const isImage = element.type === "picture" || element.type === "image";
11178
+ const action = element.actionClick;
11179
+ const isActionable = Boolean(action && onActionClick);
11176
11180
  return /* @__PURE__ */ jsxs(
11177
11181
  "div",
11178
11182
  {
11179
11183
  "data-static-element-type": element.type,
11180
- className: `${positioned ? "absolute" : "relative"} overflow-hidden pointer-events-none`,
11184
+ "data-pptx-action": isActionable ? "click" : void 0,
11185
+ className: `${positioned ? "absolute" : "relative"} overflow-hidden ${isActionable ? "pointer-events-auto cursor-pointer" : "pointer-events-none"}`,
11186
+ role: isActionable ? "button" : void 0,
11187
+ tabIndex: isActionable ? 0 : void 0,
11188
+ title: isActionable ? action?.tooltip || action?.url || void 0 : void 0,
11189
+ onClick: isActionable ? (event) => {
11190
+ if (actionRequiresModifier && !event.ctrlKey && !event.metaKey) {
11191
+ return;
11192
+ }
11193
+ event.stopPropagation();
11194
+ event.preventDefault();
11195
+ onActionClick?.(element.id, action);
11196
+ } : void 0,
11197
+ onKeyDown: isActionable ? (event) => {
11198
+ if (event.key !== "Enter" && event.key !== " ") {
11199
+ return;
11200
+ }
11201
+ event.preventDefault();
11202
+ event.stopPropagation();
11203
+ onActionClick?.(element.id, action);
11204
+ } : void 0,
11181
11205
  style: {
11182
11206
  left: positioned ? element.x : void 0,
11183
11207
  top: positioned ? element.y : void 0,
@@ -11201,7 +11225,9 @@ function StaticElementRendererImpl({
11201
11225
  zIndex: index,
11202
11226
  fieldContext,
11203
11227
  tableStyleContext,
11204
- parentGroupFill: getGroupChildParentFill(element)
11228
+ parentGroupFill: getGroupChildParentFill(element),
11229
+ onActionClick,
11230
+ actionRequiresModifier
11205
11231
  },
11206
11232
  child.id
11207
11233
  )) }) : renderBody({
@@ -11364,7 +11390,7 @@ var ElementRenderer = React32.memo(
11364
11390
  const hasHyperlinks = Boolean(onHyperlinkClick) && elementHasTextHyperlink(el);
11365
11391
  const isZoom = el.type === "zoom" && Boolean(onZoomClick);
11366
11392
  const isActionable = hasAction || hasHoverAction || hasHyperlinks || isZoom;
11367
- const selB = isSelected ? `border-${selClr} ring-2 ring-${selClr}/50` : showHoverBorder ? "border-transparent hover:border-primary/40" : "border-transparent";
11393
+ const selB = isSelected ? `outline-1 -outline-offset-1 outline-${selClr} ring-2 ring-${selClr}/50` : showHoverBorder ? "outline-1 -outline-offset-1 outline-transparent hover:outline-primary/40" : "";
11368
11394
  const cur = effectiveIsInlineEditing ? "cursor-text" : effectiveCanInteract ? elementLocks?.noMove ? "cursor-default" : "cursor-move" : hasAction || isZoom ? "cursor-pointer" : "";
11369
11395
  const isPresentationPassive = !effectiveCanInteract;
11370
11396
  const isFullscreenMedia = el.type === "media" && Boolean(el.fullScreen) && isPresentationPassive && isMediaPlaying;
@@ -11393,7 +11419,7 @@ var ElementRenderer = React32.memo(
11393
11419
  "aria-selected": isSelected ? true : void 0,
11394
11420
  tabIndex: isFocusable ? 0 : -1,
11395
11421
  className: cn(
11396
- "absolute border",
11422
+ "absolute",
11397
11423
  "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500",
11398
11424
  cur,
11399
11425
  effectiveCanInteract || isActionable ? "" : "pointer-events-none",
@@ -11445,7 +11471,9 @@ var ElementRenderer = React32.memo(
11445
11471
  mediaDataUrls,
11446
11472
  sourceSlideIndex,
11447
11473
  zIndex: index,
11448
- parentGroupFill: getGroupChildParentFill(el)
11474
+ parentGroupFill: getGroupChildParentFill(el),
11475
+ onActionClick: el.actionClick ? void 0 : onActionClick,
11476
+ actionRequiresModifier: effectiveCanInteract
11449
11477
  },
11450
11478
  child.id
11451
11479
  ),
@@ -27133,6 +27161,7 @@ function PresentationTransitionOverlay({
27133
27161
  transition,
27134
27162
  durationMs,
27135
27163
  scale: stageScale,
27164
+ morphPlan,
27136
27165
  onComplete
27137
27166
  }) {
27138
27167
  const containerRef = useRef(null);
@@ -27177,6 +27206,54 @@ function PresentationTransitionOverlay({
27177
27206
  return Math.min(scaleX, scaleY);
27178
27207
  }, [resolvedStageScale, containerSize, canvasSize]);
27179
27208
  const outgoingZIndex = animations.outgoingOnTop ? 40 : 20;
27209
+ if (morphPlan) {
27210
+ return /* @__PURE__ */ jsxs(
27211
+ "div",
27212
+ {
27213
+ ref: containerRef,
27214
+ "data-pptx-transition-overlay": true,
27215
+ "data-pptx-transition-morph": "true",
27216
+ className: "pptx-react-transition-overlay absolute inset-0 pointer-events-none overflow-hidden",
27217
+ style: { zIndex: 40 },
27218
+ children: [
27219
+ /* @__PURE__ */ jsx("style", { children: morphPlan.keyframesCss }),
27220
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx(
27221
+ "div",
27222
+ {
27223
+ style: {
27224
+ width: canvasSize.width,
27225
+ height: canvasSize.height,
27226
+ transform: `scale(${scale})`,
27227
+ transformOrigin: "center",
27228
+ position: "relative"
27229
+ },
27230
+ children: morphPlan.outgoingElements.map((element, index) => /* @__PURE__ */ jsx(
27231
+ "div",
27232
+ {
27233
+ "data-pptx-morph-outgoing": element.id,
27234
+ style: {
27235
+ position: "absolute",
27236
+ inset: 0,
27237
+ animation: morphPlan.outgoingAnimations.get(element.id)
27238
+ },
27239
+ children: /* @__PURE__ */ jsx(
27240
+ StaticElementRenderer,
27241
+ {
27242
+ element,
27243
+ activeSlide: outgoingSlide,
27244
+ allSlides: [outgoingSlide],
27245
+ zIndex: index
27246
+ }
27247
+ )
27248
+ },
27249
+ element.id
27250
+ ))
27251
+ }
27252
+ ) })
27253
+ ]
27254
+ }
27255
+ );
27256
+ }
27180
27257
  return /* @__PURE__ */ jsxs(
27181
27258
  "div",
27182
27259
  {
@@ -31323,6 +31400,7 @@ ${url}`)) {
31323
31400
  transition: presentation.transitionOverlay.transition,
31324
31401
  durationMs: presentation.transitionOverlay.durationMs,
31325
31402
  scale: stageScale,
31403
+ morphPlan: presentation.morphPlan,
31326
31404
  onComplete: presentation.handleTransitionOverlayComplete
31327
31405
  },
31328
31406
  `${presentation.transitionOverlay.outgoingSlideIndex}-${presentation.transitionOverlay.incomingSlideIndex}`
@@ -31545,7 +31623,7 @@ ${url}`)) {
31545
31623
  )
31546
31624
  );
31547
31625
  }
31548
- var AiChatPanel = lazy(() => import('./AiChatPanel-OFOOWR4U.mjs'));
31626
+ var AiChatPanel = lazy(() => import('./AiChatPanel-RVZOGGFK.mjs'));
31549
31627
  function AiChatPanelLazy(props) {
31550
31628
  return /* @__PURE__ */ jsx(
31551
31629
  Suspense,
@@ -34809,6 +34887,8 @@ var PowerPointViewer = forwardRef(
34809
34887
  const { optionsStore, options: viewerOptions } = useViewerOptions();
34810
34888
  const settingsRef = useRef(settings);
34811
34889
  settingsRef.current = settings;
34890
+ const handleSettingsChangeRef = useRef(handleSettingsChange);
34891
+ handleSettingsChangeRef.current = handleSettingsChange;
34812
34892
  const syncingFromOptionsRef = useRef(false);
34813
34893
  useEffect(() => {
34814
34894
  const mapped = viewerOptionsToPreferences(viewerOptions);
@@ -34816,13 +34896,13 @@ var PowerPointViewer = forwardRef(
34816
34896
  for (const key of Object.keys(mapped)) {
34817
34897
  if (mapped[key] !== settingsRef.current[key]) {
34818
34898
  changed = true;
34819
- handleSettingsChange(key, mapped[key]);
34899
+ handleSettingsChangeRef.current(key, mapped[key]);
34820
34900
  }
34821
34901
  }
34822
34902
  if (changed) {
34823
34903
  syncingFromOptionsRef.current = true;
34824
34904
  }
34825
- }, [viewerOptions, handleSettingsChange]);
34905
+ }, [viewerOptions]);
34826
34906
  useEffect(() => {
34827
34907
  const current = optionsStore.getOptions();
34828
34908
  const mapped = viewerOptionsToPreferences(current);
Binary file
Binary file