pptx-react-viewer 4.64.1 → 4.66.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 (100) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/dist/{AiChatPanel-7AFFNYEN.js → AiChatPanel-DL7EBR2V.js} +19 -19
  3. package/dist/AiChatPanel-DL7EBR2V.js.br +0 -0
  4. package/dist/AiChatPanel-DL7EBR2V.js.gz +0 -0
  5. package/dist/{AiChatPanel-7U7IJRNY.mjs → AiChatPanel-JKWJQX4N.mjs} +1 -1
  6. package/dist/AiChatPanel-JKWJQX4N.mjs.br +0 -0
  7. package/dist/AiChatPanel-JKWJQX4N.mjs.gz +0 -0
  8. package/dist/ai.js +2 -2
  9. package/dist/ai.js.br +2 -1
  10. package/dist/ai.js.gz +0 -0
  11. package/dist/ai.mjs +1 -1
  12. package/dist/ai.mjs.br +0 -0
  13. package/dist/ai.mjs.gz +0 -0
  14. package/dist/{chunk-5DBKW7F3.js → chunk-73S5EOD3.js} +67 -735
  15. package/dist/chunk-73S5EOD3.js.br +0 -0
  16. package/dist/chunk-73S5EOD3.js.gz +0 -0
  17. package/dist/{chunk-5ZW3GP6C.mjs → chunk-A4K2TM2K.mjs} +68 -737
  18. package/dist/chunk-A4K2TM2K.mjs.br +0 -0
  19. package/dist/chunk-A4K2TM2K.mjs.gz +0 -0
  20. package/dist/{chunk-HZBEKG5R.mjs → chunk-DORVZDQT.mjs} +17 -6
  21. package/dist/chunk-DORVZDQT.mjs.br +0 -0
  22. package/dist/chunk-DORVZDQT.mjs.gz +0 -0
  23. package/dist/{chunk-GXL2XMST.js → chunk-QLXYEA54.js} +572 -561
  24. package/dist/chunk-QLXYEA54.js.br +0 -0
  25. package/dist/chunk-QLXYEA54.js.gz +0 -0
  26. package/dist/{chunk-WAIX4VJ2.mjs → chunk-SLFVXZHA.mjs} +1 -1
  27. package/dist/chunk-SLFVXZHA.mjs.br +0 -0
  28. package/dist/chunk-SLFVXZHA.mjs.gz +0 -0
  29. package/dist/{chunk-PNDORR6S.js → chunk-UC57KUGO.js} +1 -1
  30. package/dist/chunk-UC57KUGO.js.br +0 -0
  31. package/dist/chunk-UC57KUGO.js.gz +0 -0
  32. package/dist/{chunk-VGU5S37T.js → chunk-YQ67KAQR.js} +318 -329
  33. package/dist/chunk-YQ67KAQR.js.br +0 -0
  34. package/dist/chunk-YQ67KAQR.js.gz +0 -0
  35. package/dist/{chunk-G5JGUSBL.mjs → chunk-ZRU67AVX.mjs} +122 -133
  36. package/dist/chunk-ZRU67AVX.mjs.br +0 -0
  37. package/dist/chunk-ZRU67AVX.mjs.gz +0 -0
  38. package/dist/i18n/de.cjs +5 -0
  39. package/dist/i18n/de.cjs.br +0 -0
  40. package/dist/i18n/de.cjs.gz +0 -0
  41. package/dist/i18n/de.mjs +5 -0
  42. package/dist/i18n/de.mjs.br +0 -0
  43. package/dist/i18n/de.mjs.gz +0 -0
  44. package/dist/i18n/es.cjs +5 -0
  45. package/dist/i18n/es.cjs.br +0 -0
  46. package/dist/i18n/es.cjs.gz +0 -0
  47. package/dist/i18n/es.mjs +5 -0
  48. package/dist/i18n/es.mjs.br +0 -0
  49. package/dist/i18n/es.mjs.gz +0 -0
  50. package/dist/i18n/fr.cjs +5 -0
  51. package/dist/i18n/fr.cjs.br +0 -0
  52. package/dist/i18n/fr.cjs.gz +0 -0
  53. package/dist/i18n/fr.mjs +5 -0
  54. package/dist/i18n/fr.mjs.br +0 -0
  55. package/dist/i18n/fr.mjs.gz +0 -0
  56. package/dist/i18n/zh-CN.cjs +5 -0
  57. package/dist/i18n/zh-CN.cjs.br +0 -0
  58. package/dist/i18n/zh-CN.cjs.gz +0 -0
  59. package/dist/i18n/zh-CN.mjs +5 -0
  60. package/dist/i18n/zh-CN.mjs.br +0 -0
  61. package/dist/i18n/zh-CN.mjs.gz +0 -0
  62. package/dist/index.js +27 -27
  63. package/dist/index.js.br +0 -0
  64. package/dist/index.js.gz +0 -0
  65. package/dist/index.mjs +4 -4
  66. package/dist/index.mjs.br +0 -0
  67. package/dist/index.mjs.gz +0 -0
  68. package/dist/internals.js +81 -81
  69. package/dist/internals.js.br +0 -0
  70. package/dist/internals.js.gz +0 -0
  71. package/dist/internals.mjs +2 -2
  72. package/dist/internals.mjs.br +0 -0
  73. package/dist/internals.mjs.gz +0 -0
  74. package/dist/viewer/index.js +21 -21
  75. package/dist/viewer/index.js.br +0 -0
  76. package/dist/viewer/index.js.gz +0 -0
  77. package/dist/viewer/index.mjs +4 -4
  78. package/dist/viewer/index.mjs.br +0 -0
  79. package/dist/viewer/index.mjs.gz +0 -0
  80. package/package.json +3 -3
  81. package/dist/AiChatPanel-7AFFNYEN.js.br +0 -0
  82. package/dist/AiChatPanel-7AFFNYEN.js.gz +0 -0
  83. package/dist/AiChatPanel-7U7IJRNY.mjs.br +0 -0
  84. package/dist/AiChatPanel-7U7IJRNY.mjs.gz +0 -0
  85. package/dist/chunk-5DBKW7F3.js.br +0 -0
  86. package/dist/chunk-5DBKW7F3.js.gz +0 -0
  87. package/dist/chunk-5ZW3GP6C.mjs.br +0 -0
  88. package/dist/chunk-5ZW3GP6C.mjs.gz +0 -0
  89. package/dist/chunk-G5JGUSBL.mjs.br +0 -0
  90. package/dist/chunk-G5JGUSBL.mjs.gz +0 -0
  91. package/dist/chunk-GXL2XMST.js.br +0 -0
  92. package/dist/chunk-GXL2XMST.js.gz +0 -0
  93. package/dist/chunk-HZBEKG5R.mjs.br +0 -0
  94. package/dist/chunk-HZBEKG5R.mjs.gz +0 -0
  95. package/dist/chunk-PNDORR6S.js.br +0 -0
  96. package/dist/chunk-PNDORR6S.js.gz +0 -0
  97. package/dist/chunk-VGU5S37T.js.br +0 -0
  98. package/dist/chunk-VGU5S37T.js.gz +0 -0
  99. package/dist/chunk-WAIX4VJ2.mjs.br +0 -0
  100. package/dist/chunk-WAIX4VJ2.mjs.gz +0 -0
Binary file
Binary file
@@ -1,5 +1,5 @@
1
- import { cloneTemplateElementsBySlideId, cloneSlide, cloneHistorySnapshot, MIN_ELEMENT_SIZE, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, useTranslation, partitionTemplateElements, isTemplateElementId, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, comparePresentation, UNGROUPED_SECTION_ID, DEFAULT_SECTION_GROUP_ID, stopAllPersistentAudio, buildSaveSlides, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, getImageEffectsOpacity, getImageEffectsFilter, getImageRenderStyle, cn, isEditableTextElement, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageSurfaceStyle, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, getElementLabel, normalizeHexColor, makeCloneId, DEFAULT_TEXT_FONT_SIZE, buildPdfFromTiledImageData, GRID_SIZE, copyFormatFromElement, hasCopyableFormat, isImageTiled, getDuotoneColors, DEFAULT_STROKE_COLOR, DEFAULT_FILL_COLOR, buildCssGradientFromShapeStyle, getCropShapeClipPath, getElementTransform, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getImageSurfaceMaskStyle, getTextWarpStyle, getTextCompensationTransform, getTextCompensationOrigin, renderTextSegments, buildReactChartViewModel, renderChartElement, buildInkGroupStrokes, getInkReplayStyles, INK_REPLAY_KEYFRAMES, buildContentPartStrokes, getContentPartReplayStyles, buildTextBody3DSceneStyle, rerouteConnectorsForMovedElements, applyReroutedConnectors, updateCellTextStyleInRawXml, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, buildNotesPdf, canvasToJpegData, applyFormatToElement, isPpactionUrl, parsePpactionUrl, getImageTilingStyle, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getAriaRoleDescription as getAriaRoleDescription$1, getAriaLabel as getAriaLabel$1, getAriaRole, DEFAULT_FONT_FAMILY, ACTION_BUTTON_PRESETS, isUrlSafe, substituteFieldText, HYPERLINK_COLOR } from './chunk-5ZW3GP6C.mjs';
2
- import { defineThreeViewElement, MIN_TOUCH_TARGET_PX, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, createCollaborationSessionController, registerCollaborationTeardown, createPresenceProjector, BROADCAST_THROTTLE_MS, sanitizeColor, createEditorHistoryController, historyTheme, crossedHistoryTheme, createWheelStepBuffer, createViewerZoomStore, clampZoomScale, mapEditingWheel, createActiveAnimationGroup, cancelBuildReveal, clearPlaybackTimers, PresentationAnimationController, resolveMediaTimeNodeElementIds, resolveMediaBookmarkTimesMs, advanceMainSequence, playGroup, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, endAudienceDisplay, createPresentationKeyBuffer, acceptsPresentationInput, resolveAutoAdvanceDelayMs, resolveShowBackward, resolveShowForward, beginZoomExcursion, buildZoomTransitionOverride, createPresenterShowGuard, firstShowSlideIndex, attachPresentationVisibilityPause, presentationEntrySlideIndex, buildMorphTransitionPlan, morphOptionToMode, buildMorphAnimationRules, INITIAL_FIND_REPLACE_SESSION, findReplaceSessionActions, visibleTemplateElements, createCollaborationLivePatcher, reportInlineTextDraft, initialInspectorOpen, createPresentationLoadResources, collectMediaElements, resolveMediaElementSource, collectImagePaths, applyImagePathPatches, resolveTableCellImageUrls, resolveTableStyleImageUrls, resolveTextFillBlipUrls, seedRecentColors, resolveAuthoredCustomShowId, GlyphOutlineFontCache, buildInitialGuides, readOnlyRecommendation, compatibilityWarningToasts, resolveInitialSlideIndex, pptxLoadErrorMessage, resolveAutosaveIntervalMs, createAutosaveController, saveAutosaveSnapshot, updateMasterViewElement, updateElement, masterViewElements, replaceMasterViewElements, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, canMergeShapes, canInteractWithElement, prepareHtml2CanvasClone, html2canvasCaptureScope, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, DEFAULT_VIEWER_OPTIONS, resolveImageResolutionScale, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, describeFontEmbedding, isMobileViewport, resolveAuthoredSlideRange, mayLeaveSlideShow, buildDeckSaveOptions, resolveSlideSizeSelection, saveDeckWithPassword, createAutosaveRecoveryController, discardAutosaveRecovery, probeAutosaveRecovery, shouldLoopContinuously, applyRehearsalTimings, rasterResultToPngBlob, downloadBlob, elementPictureFilename, canEditElementPoints, resolveGoogleFontsCss2Base, selectTrustedEmbeddedFonts, resolveFontWeight, resolveFontItalic, collectReferencedFontFamilies, resolveGoogleWebfontHref, syncGoogleWebfontStylesheet, selectGoogleWebfontFamilies, fetchGoogleWebfontOutlineBytes, dispatchEditorKey, isFeatureEnabled, parentSelection, textFontSizePtToPx, stepFontSizePt, textFontSizePxToPt, cycleSelectableElement, createCustomizationController, gateViewerEdits, prepareElementForInsertion, slideSpaceElement, resolveReportedViewerMode, autosaveStatusKind, createViewerOptionsStore, observeYDocSlides, LOCAL_SYNC_ORIGIN, readSlidesFromYDoc, shouldRoomSlidesReplaceLoad, reconcileSlidesInYDoc, shouldAutoFollowBroadcaster, detectTouchDevice, detectOrientation, deriveViewportBreakpoints, createTouchGestureRecognizer, isKeyboardOpen, scopeLayoutOptionsToSlide, collaborationHistoryReady, bindCollaborationHistory, INITIAL_READ_ONLY_SESSION, readOnlySessionActions, applyReadOnlySessionEvent, readOnlyBannerVisible, readOnlyLocked, viewerPreferencesFromViewProperties, DEFAULT_VIEWER_PREFERENCES, viewPropertiesPatchFromPreferences, resolveCollaborationConfig, openPptxFile, readBackstageRecentFile, resolveCollaborationShellEditability, resolveCollaborationShellState, getResizeHandleHitAreaStyle, resolveElementInteractivity, getBackgroundAnimationState, getShapeEffectLayerPlacement, buildTextStyleOverrideCss, isElementRendered, resolveElementAriaAttributes, isMediaFullscreenActive, shouldRenderHitTarget, elementHitTargetStyle, getShapeEffectAnimationLayerStyle, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, resolvePalette as resolvePalette$1, mediaTransportVisible, oleActionsVisible, getGroupChildParentFill, deviceStrokeStageStyle, morphOverlayElementSlots, buildMorphOutlineRules, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, getSlideTransitionAnimations, getFragmentedTransitionDescriptor, SLIDE_TRANSITION_KEYFRAMES, isActionHidden, buildInlineTextCommitPatch, resolveInlineEditAutoFitHeight, resolveInlineEditNormAutofitShrink, setPendingCaretPoint, resolveGroupDoubleClickTarget, filterInteractableIds, beginShapeAdjustment, buildElementClipboardPayload, promptNameDialog, generateCustomShowId, confirmDeleteDialog, contextMenuInspectorAnchor, savedPresentationFileName, deliverSavedPresentation, exportDeckJson, mapCustomizedEditorKey, isEditorTextInputTarget, groupElements, generateElementId, ungroupElements, alignElements, distributeElements, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, planMergeShapes, applyMergeShapesPlan, mapPresentationKey, lastShowSlideIndex, mapPresentationWheel, createBlankSlide, insertSlidePaste, applySlidePasteTemplates, makeSlideId, insertedLayoutCompletion, buildSlideTemplateSlide, templateSchemeFromTheme, queueThemeWrite, needsOwnedSession, openOwnedCollaboration, resolveViewportFitOptions, editorViewportFitFor, calculateViewportFit, observeViewportClientSize, scheduleAutoAdvanceChain, computeEntranceAnimationDelay, createPresentationSessionId, resolveTransitionDurationMs, resolveTransitionSoundAction, runPresentationAction, safeOpenUrl, buildRunProgramNotice, toggleStageElementMedia, resolveOleVerbTarget, downloadDataUrl, openUrlInNewTab, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, resetPresenterTimer, presenterElapsed, stepPresenterZoom, togglePresenterTimer, addCommentToList, removeCommentFromList, editCommentInList, toggleCommentResolvedInList, slideSpaceMembers, remapTextToSegments, getInlineEditorSelectionResult, buildInlineListStylePatch, applyActiveInlineListFormatting, applyListStyleUpdate, setPendingSelectionRestore, applyTextStyleUpdate, toggleSelectionBullets, transformInlineListCase, applyCaseTransformToSegments, transformTextCase, createGestureController, resolveExportCaptureDecision, recordProgressPercent, computeGridSpacingPx as computeGridSpacingPx$1, resolveShowSlideIndexes, groupSlidesBySection, masterViewPseudoSlide, overlayMasterViewInlineSnapshot, overlayInlineTextSnapshot, rasterizeElement, cloneElementForPaste, applyPasteSpecialFormat, buildRasterPictureElement, cloneElementUpdates, assertElementUpdateTarget, prepareElementUpdateBatch, createWriteBackScheduler, writeBackReport, createSyncGate, observeExternalCollaborationReadiness, resolveHistoryDepth, lockExternalContentSetting, resolveAllowExternalContent, createBackstagePresentation, buildFieldSubstitutionContext, buildSlidesPaneFieldContext, buildSlidesPaneTableStyleContext, slidesPaneRehearsalTimings, openSlidesPaneLayoutGallery, getImageColorWashStyle, attachRotateHandlePlacement, getSelectionControlArtworkStyle, getSelectionOutlineColor, paintedStrokeWidth, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, paintedElementSize, MEDIA_FULLSCREEN_OVERLAY_STYLE, elementContainerHeightStyle, getAnimationOpacity, abuttingEdgeBleedStyle, resolveElementHighlightClick, applyHighlightClickStyle, getComputedEffectStyle, getSoftEdgeSvgFilter, getEffectStyleSource, getBevelLightingSvgFilter, buildStrokeOutline, buildHollowHitOutline, buildSubpathFillOverlay, strokeOutlineViewBox, buildSummaryZoomView, readEditableText, placeCaretAt, takePendingCaretPoint, getPendingSelectionRestore, restoreSegmentSelection, mapInlineTextFormatKey, mapInlineEditorChord, subscribeBarFacePicturePixelSamples, getBarFacePicturePixelSampleVersion, ensureChartInteractionStyles, applyChartPartHighlight, resolveRevealedChartData, formatAxisValue, chartFormatTargetFromEvent, resolveOleType, getOleAriaLabel, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, getTextCompensationStyle, placeholderPromptDescriptor, getAriaRoleDescription, getAriaLabel, elementIdSelector, TOOLBAR_TABS, resolveGroupPressTarget, scrollInspectorSectionIntoView, computeScrollDelta, buildOutlinePrintJobDocument, printJobRasterFallback, applyThemeByPath, withHistoryTheme, withHistoryMasterThemes, writeThemeParts, loadedThemeName, replyToCommentInList, removeTableElementColumn, insertTableElementColumn, removeTableElementRow, insertTableElementRow, withCellStyle, getCellText, setCellText, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, stopCaptureStream, GIF_POST_CAPTURE_MAX_SIDE, encodeGif, rasterizeElementTiles, placeTileOnPage, PDF_SLIDES_PAGE_WIDTH_PT, PDF_SLIDES_PAGE_HEIGHT_PT, createSnapshotTextPositions, resolvePresentationAction, getImageSvgFilters, getCachedNativeImageSize, probeNativeImageSize, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, svgLineCap, connectorSnapTransform, connectorNeedsPath, connectorStrandScreenWidth, connectorWrapperTransform, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, modelDataToBlobUrl, resolveZoomNavigationTarget, inlineListBodyText, createInlineListSeed, readListActivationSelection, createInlineListModelObserver, attachCollaborationInlineEditor, bindInlineListParagraph, bindInlineListRun, attachInlineListController, restoreInlineListBodySelection, isBulletMarkerSegment, resolveChartThreeViewSpec, applyChart3DDrag, applyChart3DSelect, canDrillDown, findChartPartTarget, withChartTitle, resolveSmartArtThreeViewSpec, measureSvgViewportRect, isBrowserOpenableMime, formatBytes, getOleDisplayName, getOleBadgeLabel, hasGlyphEnvelope, buildGlyphEnvelopeBlock, getWarpPath, isWedgeCalloutPresetShape, getAriaRole as getAriaRole$1, isElementActionable, buildSmartArtPresetData, classifyMediaType, getDraggedShapeAdjustments, computeMarqueeHitIds, mergeAdditiveSelection, planPrintJob, openPrintWindow, buildVectorPrintJobDocument, openPendingPrintWindow, borrowExternalCollaborationAwareness, observeExternalCollaborationSession, publishLiveGeometry, rasterizeElementTiledToCanvas, clampGifDimensions, rasterResultToPngDataUrl, openExternalHyperlinkConfirmed, advanceChartMarkDrag, advanceChartValueDrag, resolveChartKind, buildChartMarkDragGeometry, beginChartMarkDrag, beginChartValueDrag, findSmartArtNodeText, commitSmartArtNodeFill, commitSmartArtNodeText, groupIntoParagraphs as groupIntoParagraphs$1, createGlyphOutlineLookup, finishPrintWindow, buildRasterPrintJobDocument, applyMotionPathPreset, resolveRevealedSmartArtNodes, resolveRevealedDrawingShapes, buildSmartArtA11y, computeSmartArtElementLayout, flattenNodes, computeInlineEditorRect, smartArtNodeAtPoint, SMARTART_DEFAULT_PALETTE, computeDrawingViewBox, projectDrawingShapes, resolveRevealedDrawingShapeNodeIds, styleShadowFilter, buildChromeStyle, refreshSmartArtPictureImage, centeredSvgTextLines, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, bringForward, sendBackward, bringToFront, sendToBack } from 'ooxml-ui/pptx';
1
+ import { cloneTemplateElementsBySlideId, cloneSlide, cloneHistorySnapshot, MIN_ELEMENT_SIZE, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, useTranslation, partitionTemplateElements, isTemplateElementId, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, comparePresentation, UNGROUPED_SECTION_ID, DEFAULT_SECTION_GROUP_ID, stopAllPersistentAudio, buildSaveSlides, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, getImageEffectsOpacity, getImageEffectsFilter, getImageRenderStyle, cn, isEditableTextElement, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageSurfaceStyle, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, getElementLabel, normalizeHexColor, makeCloneId, DEFAULT_TEXT_FONT_SIZE, buildPdfFromTiledImageData, GRID_SIZE, copyFormatFromElement, hasCopyableFormat, isImageTiled, getDuotoneColors, DEFAULT_STROKE_COLOR, DEFAULT_FILL_COLOR, buildCssGradientFromShapeStyle, getCropShapeClipPath, getElementTransform, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, rendersCustomVectorPath, rendersWedgeCalloutVector, getImageSurfaceMaskStyle, getTextWarpStyle, getTextCompensationTransform, getTextCompensationOrigin, renderTextSegments, buildReactChartViewModel, renderChartElement, buildInkGroupStrokes, getInkReplayStyles, INK_REPLAY_KEYFRAMES, buildContentPartStrokes, getContentPartReplayStyles, buildTextBody3DSceneStyle, rerouteConnectorsForMovedElements, applyReroutedConnectors, updateCellTextStyleInRawXml, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, buildNotesPdf, canvasToJpegData, applyFormatToElement, isPpactionUrl, parsePpactionUrl, getImageTilingStyle, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getAriaRoleDescription as getAriaRoleDescription$1, getAriaLabel as getAriaLabel$1, getAriaRole, DEFAULT_FONT_FAMILY, ACTION_BUTTON_PRESETS, isUrlSafe, substituteFieldText } from './chunk-A4K2TM2K.mjs';
2
+ import { defineThreeViewElement, MIN_TOUCH_TARGET_PX, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, createCollaborationSessionController, registerCollaborationTeardown, createPresenceProjector, BROADCAST_THROTTLE_MS, sanitizeColor, createEditorHistoryController, historyTheme, crossedHistoryTheme, createWheelStepBuffer, createViewerZoomStore, clampZoomScale, mapEditingWheel, createActiveAnimationGroup, cancelBuildReveal, clearPlaybackTimers, PresentationAnimationController, resolveMediaTimeNodeElementIds, resolveMediaBookmarkTimesMs, advanceMainSequence, playGroup, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, endAudienceDisplay, createPresentationKeyBuffer, acceptsPresentationInput, resolveAutoAdvanceDelayMs, resolveShowBackward, resolveShowForward, beginZoomExcursion, buildZoomTransitionOverride, createPresenterShowGuard, firstShowSlideIndex, attachPresentationVisibilityPause, presentationEntrySlideIndex, buildMorphTransitionPlan, morphOptionToMode, buildMorphAnimationRules, INITIAL_FIND_REPLACE_SESSION, findReplaceSessionActions, visibleTemplateElements, createCollaborationLivePatcher, reportInlineTextDraft, initialInspectorOpen, createPresentationLoadResources, collectMediaElements, resolveMediaElementSource, collectImagePaths, applyImagePathPatches, resolveTableCellImageUrls, resolveTableStyleImageUrls, resolveTextFillBlipUrls, seedRecentColors, resolveAuthoredCustomShowId, GlyphOutlineFontCache, buildInitialGuides, readOnlyRecommendation, compatibilityWarningToasts, resolveInitialSlideIndex, pptxLoadErrorMessage, resolveAutosaveIntervalMs, createAutosaveController, saveAutosaveSnapshot, updateMasterViewElement, updateElement, masterViewElements, replaceMasterViewElements, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, canMergeShapes, canInteractWithElement, prepareHtml2CanvasClone, html2canvasCaptureScope, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, DEFAULT_VIEWER_OPTIONS, resolveImageResolutionScale, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, describeFontEmbedding, isMobileViewport, resolveAuthoredSlideRange, mayLeaveSlideShow, buildDeckSaveOptions, resolveSlideSizeSelection, saveDeckWithPassword, createAutosaveRecoveryController, discardAutosaveRecovery, probeAutosaveRecovery, shouldLoopContinuously, applyRehearsalTimings, rasterResultToPngBlob, downloadBlob, elementPictureFilename, canEditElementPoints, resolveGoogleFontsCss2Base, createEmbeddedFontsSheet, collectReferencedFontFamilies, resolveGoogleWebfontHref, syncGoogleWebfontStylesheet, selectGoogleWebfontFamilies, selectTrustedEmbeddedFonts, fetchGoogleWebfontOutlineBytes, dispatchEditorKey, isFeatureEnabled, parentSelection, textFontSizePtToPx, stepFontSizePt, textFontSizePxToPt, cycleSelectableElement, createCustomizationController, gateViewerEdits, prepareElementForInsertion, slideSpaceElement, resolveReportedViewerMode, autosaveStatusKind, createViewerOptionsStore, observeYDocSlides, LOCAL_SYNC_ORIGIN, readSlidesFromYDoc, shouldRoomSlidesReplaceLoad, reconcileSlidesInYDoc, shouldAutoFollowBroadcaster, detectTouchDevice, detectOrientation, deriveViewportBreakpoints, createTouchGestureRecognizer, isKeyboardOpen, scopeLayoutOptionsToSlide, collaborationHistoryReady, bindCollaborationHistory, INITIAL_READ_ONLY_SESSION, readOnlySessionActions, applyReadOnlySessionEvent, readOnlyBannerVisible, readOnlyLocked, viewerPreferencesFromViewProperties, DEFAULT_VIEWER_PREFERENCES, viewPropertiesPatchFromPreferences, resolveCollaborationConfig, openPptxFile, readBackstageRecentFile, resolveCollaborationShellEditability, resolveCollaborationShellState, getResizeHandleHitAreaStyle, resolveElementInteractivity, getBackgroundAnimationState, getShapeEffectLayerPlacement, buildTextStyleOverrideCss, isElementRendered, resolveElementAriaAttributes, isMediaFullscreenActive, shouldRenderHitTarget, elementHitTargetStyle, getShapeEffectAnimationLayerStyle, tableFrameCss, inlineElementPointerEvents, passesClicksThroughBox, LINK_TOOLTIP_HOST_CLASS, resolvePalette as resolvePalette$1, mediaControlBarEnabled, mediaTransportVisible, oleActionsVisible, getGroupChildParentFill, deviceStrokeStageStyle, morphOverlayElementSlots, buildMorphOutlineRules, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, getSlideTransitionAnimations, getFragmentedTransitionDescriptor, SLIDE_TRANSITION_KEYFRAMES, isActionHidden, buildInlineTextCommitPatch, resolveInlineEditAutoFitHeight, resolveInlineEditNormAutofitShrink, setPendingCaretPoint, resolveGroupDoubleClickTarget, filterInteractableIds, beginShapeAdjustment, buildElementClipboardPayload, promptNameDialog, generateCustomShowId, confirmDeleteDialog, contextMenuInspectorAnchor, savedPresentationFileName, deliverSavedPresentation, exportDeckJson, mapCustomizedEditorKey, isEditorTextInputTarget, groupElements, generateElementId, ungroupElements, alignElements, distributeElements, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, planMergeShapes, applyMergeShapesPlan, mapPresentationKey, lastShowSlideIndex, mapPresentationWheel, createBlankSlide, insertSlidePaste, applySlidePasteTemplates, makeSlideId, insertedLayoutCompletion, buildSlideTemplateSlide, templateSchemeFromTheme, queueThemeWrite, needsOwnedSession, openOwnedCollaboration, resolveViewportFitOptions, editorViewportFitFor, calculateViewportFit, observeViewportClientSize, scheduleAutoAdvanceChain, computeEntranceAnimationDelay, createPresentationSessionId, resolveTransitionDurationMs, resolveTransitionSoundAction, runPresentationAction, safeOpenUrl, buildRunProgramNotice, toggleStageElementMedia, resolveOleVerbTarget, downloadDataUrl, openUrlInNewTab, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, resetPresenterTimer, presenterElapsed, stepPresenterZoom, togglePresenterTimer, addCommentToList, removeCommentFromList, editCommentInList, toggleCommentResolvedInList, slideSpaceMembers, remapTextToSegments, getInlineEditorSelectionResult, buildInlineListStylePatch, applyActiveInlineListFormatting, applyListStyleUpdate, setPendingSelectionRestore, applyTextStyleUpdate, toggleSelectionBullets, transformInlineListCase, applyCaseTransformToSegments, transformTextCase, createGestureController, resolveExportCaptureDecision, recordProgressPercent, computeGridSpacingPx as computeGridSpacingPx$1, resolveShowSlideIndexes, groupSlidesBySection, masterViewPseudoSlide, overlayMasterViewInlineSnapshot, overlayInlineTextSnapshot, rasterizeElement, cloneElementForPaste, applyPasteSpecialFormat, buildRasterPictureElement, cloneElementUpdates, assertElementUpdateTarget, prepareElementUpdateBatch, createWriteBackScheduler, writeBackReport, createSyncGate, observeExternalCollaborationReadiness, resolveHistoryDepth, lockExternalContentSetting, resolveAllowExternalContent, createBackstagePresentation, buildFieldSubstitutionContext, buildSlidesPaneFieldContext, buildSlidesPaneTableStyleContext, slidesPaneRehearsalTimings, openSlidesPaneLayoutGallery, getImageColorWashStyle, attachRotateHandlePlacement, getSelectionControlArtworkStyle, getSelectionOutlineColor, paintedStrokeWidth, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, paintedElementSize, MEDIA_FULLSCREEN_OVERLAY_STYLE, elementContainerHeightStyle, getAnimationOpacity, abuttingEdgeBleedStyle, resolveElementHighlightClick, applyHighlightClickStyle, getComputedEffectStyle, getShapeEffectFilterDefs, getBevelLightingSvgFilter, buildStrokeOutline, buildHollowHitOutline, getSilhouetteFillLayer, buildSubpathFillOverlay, strokeOutlineViewBox, buildSummaryZoomView, readEditableText, placeCaretAt, takePendingCaretPoint, getPendingSelectionRestore, restoreSegmentSelection, mapInlineTextFormatKey, mapInlineEditorChord, subscribeBarFacePicturePixelSamples, getBarFacePicturePixelSampleVersion, ensureChartInteractionStyles, applyChartPartHighlight, resolveRevealedChartData, formatAxisValue, chartFormatTargetFromEvent, resolveOleType, getOleAriaLabel, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, getTextCompensationStyle, placeholderPromptDescriptor, getAriaRoleDescription, getAriaLabel, elementIdSelector, TOOLBAR_TABS, resolveGroupPressTarget, scrollInspectorSectionIntoView, computeScrollDelta, buildOutlinePrintJobDocument, printJobRasterFallback, applyThemeByPath, withHistoryTheme, withHistoryMasterThemes, writeThemeParts, loadedThemeName, replyToCommentInList, removeTableElementColumn, insertTableElementColumn, removeTableElementRow, insertTableElementRow, withCellStyle, getCellText, setCellText, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, stopCaptureStream, GIF_POST_CAPTURE_MAX_SIDE, encodeGif, rasterizeElementTiles, placeTileOnPage, PDF_SLIDES_PAGE_WIDTH_PT, PDF_SLIDES_PAGE_HEIGHT_PT, createSnapshotTextPositions, resolvePresentationAction, getImageSvgFilters, getCachedNativeImageSize, probeNativeImageSize, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, svgLineCap, connectorSnapTransform, connectorNeedsPath, connectorStrandScreenWidth, connectorWrapperTransform, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, modelDataToBlobUrl, resolveZoomNavigationTarget, inlineListBodyText, createInlineListSeed, readListActivationSelection, createInlineListModelObserver, attachCollaborationInlineEditor, bindInlineListParagraph, bindInlineListRun, attachInlineListController, restoreInlineListBodySelection, isBulletMarkerSegment, resolveChartThreeViewSpec, applyChart3DDrag, applyChart3DSelect, canDrillDown, findChartPartTarget, withChartTitle, resolveSmartArtThreeViewSpec, measureSvgViewportRect, isBrowserOpenableMime, formatBytes, getOleDisplayName, getOleBadgeLabel, isEquationOnlyText, convertOmmlToMathMl, EQUATION_FONT_FAMILY, sanitizeMathMl, buildEquationBlockStyle, buildTextBlockStyle, hasGlyphEnvelope, buildGlyphEnvelopeBlock, getWarpPath, resolveFontItalic, resolveFontWeight, isWedgeCalloutPresetShape, getAriaRole as getAriaRole$1, isElementActionable, buildSmartArtPresetData, classifyMediaType, getDraggedShapeAdjustments, computeMarqueeHitIds, mergeAdditiveSelection, planPrintJob, openPrintWindow, buildVectorPrintJobDocument, openPendingPrintWindow, borrowExternalCollaborationAwareness, observeExternalCollaborationSession, publishLiveGeometry, rasterizeElementTiledToCanvas, clampGifDimensions, rasterResultToPngDataUrl, openExternalHyperlinkConfirmed, advanceChartMarkDrag, advanceChartValueDrag, resolveChartKind, buildChartMarkDragGeometry, beginChartMarkDrag, beginChartValueDrag, findSmartArtNodeText, commitSmartArtNodeFill, commitSmartArtNodeText, groupIntoParagraphs as groupIntoParagraphs$1, createGlyphOutlineLookup, resolveWarpRunPaint, finishPrintWindow, buildRasterPrintJobDocument, applyMotionPathPreset, resolveRevealedSmartArtNodes, resolveRevealedDrawingShapes, buildSmartArtA11y, computeSmartArtElementLayout, flattenNodes, computeInlineEditorRect, smartArtNodeAtPoint, SMARTART_DEFAULT_PALETTE, computeDrawingViewBox, projectDrawingShapes, resolveRevealedDrawingShapeNodeIds, styleShadowFilter, buildChromeStyle, refreshSmartArtPictureImage, centeredSvgTextLines, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, bringForward, sendBackward, bringToFront, sendToBack } from 'ooxml-ui/pptx';
3
3
  export { DUOTONE_PRESETS, MOBILE_BREAKPOINT, SLIDE_TRANSITION_KEYFRAMES, TABLET_BREAKPOINT, clearAudienceContent, computeVirtualRange, downloadBlob, getSlideTransitionAnimations, loadAudienceContent, storeAudienceContent } from 'ooxml-ui/pptx';
4
4
  import React17, { useRef, useState, useCallback, useEffect, useSyncExternalStore, useMemo, useContext, useLayoutEffect, createContext, useImperativeHandle, Suspense } from 'react';
5
5
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -10116,24 +10116,6 @@ var SYMBOL_FONT_FAMILIES = [
10116
10116
  "Webdings"
10117
10117
  ];
10118
10118
  var FONT_NAME_UNSAFE_CHARS = /["\\\n\r;}<>]/u;
10119
- var FONT_FORMAT_ALLOWED = /* @__PURE__ */ new Set([
10120
- "truetype",
10121
- "opentype",
10122
- "woff",
10123
- "woff2",
10124
- "svg",
10125
- "embedded-opentype"
10126
- ]);
10127
- var FONT_DATA_URL_PATTERN = /^data:font\/[a-z0-9+.-]+(?:;charset=[a-z0-9-]+)?;base64,[A-Za-z0-9+/=]+$/iu;
10128
- function isFontDataUrlSafe(url) {
10129
- if (typeof url !== "string" || url.length === 0) {
10130
- return false;
10131
- }
10132
- if (url.startsWith("blob:")) {
10133
- return true;
10134
- }
10135
- return FONT_DATA_URL_PATTERN.test(url);
10136
- }
10137
10119
  function useFontInjection({
10138
10120
  embeddedFonts,
10139
10121
  slides,
@@ -10144,39 +10126,9 @@ function useFontInjection({
10144
10126
  if (!embeddedFonts.length) {
10145
10127
  return;
10146
10128
  }
10147
- const styleEl = document.createElement("style");
10148
- styleEl.id = EMBEDDED_FONTS_STYLE_ID;
10149
- const cssRules = selectTrustedEmbeddedFonts(embeddedFonts).flatMap((font) => {
10150
- if (typeof font.name !== "string" || font.name.length === 0 || FONT_NAME_UNSAFE_CHARS.test(font.name)) {
10151
- return [];
10152
- }
10153
- if (!isFontDataUrlSafe(font.dataUrl)) {
10154
- return [];
10155
- }
10156
- const fontFormat = font.format ?? "truetype";
10157
- if (!FONT_FORMAT_ALLOWED.has(fontFormat)) {
10158
- return [];
10159
- }
10160
- const fontWeight = String(resolveFontWeight(font.name, font.bold));
10161
- const fontStyleCss = resolveFontItalic(font.name, font.italic) ? "italic" : "normal";
10162
- return [
10163
- `@font-face {
10164
- font-family: "${font.name}";
10165
- src: url("${font.dataUrl}") format("${fontFormat}");
10166
- font-weight: ${fontWeight};
10167
- font-style: ${fontStyleCss};
10168
- font-display: swap;
10169
- }`
10170
- ];
10171
- }).join("\n");
10172
- styleEl.textContent = cssRules;
10173
- document.head.appendChild(styleEl);
10174
- return () => {
10175
- const existing = document.getElementById(EMBEDDED_FONTS_STYLE_ID);
10176
- if (existing) {
10177
- document.head.removeChild(existing);
10178
- }
10179
- };
10129
+ const sheet = createEmbeddedFontsSheet(document, EMBEDDED_FONTS_STYLE_ID);
10130
+ sheet.set(embeddedFonts);
10131
+ return () => sheet.dispose();
10180
10132
  }, [embeddedFonts]);
10181
10133
  const referencedFamilies = useMemo(() => collectReferencedFontFamilies(slides), [slides]);
10182
10134
  useEffect(() => {
@@ -14480,7 +14432,8 @@ var ConnectorElementRendererMemo = /* @__PURE__ */ React17.memo(
14480
14432
  const dashArray = getSvgStrokeDasharray(
14481
14433
  dashType,
14482
14434
  Math.max(strokeWidth, 1),
14483
- ss?.customDashSegments
14435
+ ss?.customDashSegments,
14436
+ ss?.lineCap
14484
14437
  );
14485
14438
  const startArrow = ss?.connectorStartArrow;
14486
14439
  const endArrow = ss?.connectorEndArrow;
@@ -14490,7 +14443,7 @@ var ConnectorElementRendererMemo = /* @__PURE__ */ React17.memo(
14490
14443
  const endMarkerId = `${markerSeed}-sel-end`;
14491
14444
  const compoundOffsets = getCompoundLineOffsets(compoundLine, strokeWidth);
14492
14445
  const compoundWidths = getCompoundLineWidths(compoundLine, strokeWidth);
14493
- const strokeCap = svgLineCap(ss?.lineCap);
14446
+ const strokeCap = svgLineCap(ss?.lineCap, dashArray !== void 0);
14494
14447
  const textEl = hasTextProperties(el) ? el : void 0;
14495
14448
  const connectorText = textEl?.text?.trim() ?? "";
14496
14449
  const connectorTextSegments = textEl?.textSegments;
@@ -14926,7 +14879,17 @@ function renderOutlinePaint(paint) {
14926
14879
  );
14927
14880
  }
14928
14881
  if (paint.kind === "rectPath") {
14929
- return /* @__PURE__ */ jsx("pattern", { id: paint.id, patternUnits: "objectBoundingBox", width: 1, height: 1, children: /* @__PURE__ */ jsx("image", { href: paint.href, x: 0, y: 0, width: 1, height: 1, preserveAspectRatio: "none" }) });
14882
+ return /* @__PURE__ */ jsx(
14883
+ "pattern",
14884
+ {
14885
+ id: paint.id,
14886
+ patternUnits: "objectBoundingBox",
14887
+ patternContentUnits: "objectBoundingBox",
14888
+ width: 1,
14889
+ height: 1,
14890
+ children: /* @__PURE__ */ jsx("image", { href: paint.href, x: 0, y: 0, width: 1, height: 1, preserveAspectRatio: "none" })
14891
+ }
14892
+ );
14930
14893
  }
14931
14894
  const stops = paint.stops.map((stop, idx) => /* @__PURE__ */ jsx(
14932
14895
  "stop",
@@ -14951,12 +14914,14 @@ function ShapeEffectOverlay({
14951
14914
  const fx = getComputedEffectStyle(element);
14952
14915
  const overlay = fx.fillOverlay;
14953
14916
  const reflection = suppressReflection ? void 0 : fx.reflection;
14954
- const softEdge = getSoftEdgeSvgFilter(getEffectStyleSource(element), element.id);
14917
+ const softEdge = getShapeEffectFilterDefs(element);
14955
14918
  const bevelLightingFilter = getBevelLightingSvgFilter(element);
14956
14919
  const strokeOutline = buildStrokeOutline(element);
14957
14920
  const hollowHit = buildHollowHitOutline(element);
14958
- const subpathFill = buildSubpathFillOverlay(element);
14959
- if (!overlay && !softEdge && !bevelLightingFilter && !strokeOutline && !hollowHit && !subpathFill && !reflection) {
14921
+ const fillLayer = getSilhouetteFillLayer(element);
14922
+ const overlayFill = buildSubpathFillOverlay(element);
14923
+ const subpathFill = overlayFill?.silhouette && (rendersCustomVectorPath(element) || rendersWedgeCalloutVector(element)) ? void 0 : overlayFill;
14924
+ if (!overlay && !softEdge && !bevelLightingFilter && !strokeOutline && !hollowHit && !subpathFill && !fillLayer && !reflection) {
14960
14925
  return null;
14961
14926
  }
14962
14927
  const fillOverlayStyle = overlay ? {
@@ -14968,10 +14933,19 @@ function ShapeEffectOverlay({
14968
14933
  pointerEvents: "none"
14969
14934
  } : void 0;
14970
14935
  return /* @__PURE__ */ jsxs(Fragment, { children: [
14936
+ fillLayer ? /* @__PURE__ */ jsx(
14937
+ "div",
14938
+ {
14939
+ className: "pptx-react-silhouette-fill",
14940
+ "aria-hidden": "true",
14941
+ style: fillLayer.style
14942
+ }
14943
+ ) : null,
14971
14944
  subpathFill ? /* @__PURE__ */ jsx(
14972
14945
  "svg",
14973
14946
  {
14974
14947
  className: "pptx-react-subpath-fill",
14948
+ "data-pptx-silhouette-fill": subpathFill.silhouette ? "" : void 0,
14975
14949
  "aria-hidden": "true",
14976
14950
  viewBox: `0 0 ${subpathFill.viewBoxWidth} ${subpathFill.viewBoxHeight}`,
14977
14951
  preserveAspectRatio: "none",
@@ -15067,6 +15041,7 @@ function ShapeEffectOverlay({
15067
15041
  ]
15068
15042
  }
15069
15043
  ) : null,
15044
+ hollowHit?.textCss ? /* @__PURE__ */ jsx("style", { children: hollowHit.textCss }) : null,
15070
15045
  hollowHit ? /* @__PURE__ */ jsx(
15071
15046
  "svg",
15072
15047
  {
@@ -15087,10 +15062,10 @@ function ShapeEffectOverlay({
15087
15062
  "path",
15088
15063
  {
15089
15064
  d: hollowHit.d,
15090
- fill: "none",
15091
- stroke: "transparent",
15065
+ fill: hollowHit.fill,
15066
+ stroke: hollowHit.stroke,
15092
15067
  strokeWidth: hollowHit.strokeWidth,
15093
- style: { pointerEvents: "stroke" }
15068
+ style: { pointerEvents: hollowHit.pointerEvents }
15094
15069
  }
15095
15070
  )
15096
15071
  }
@@ -15307,7 +15282,7 @@ var ElementRenderer = /* @__PURE__ */ React17.memo(
15307
15282
  // outline only, so its interior must not swallow clicks meant for what it
15308
15283
  // is drawn over. ShapeEffectOverlay paints a transparent
15309
15284
  // pointer-events:stroke band that opts the outline back in.
15310
- isHollowShapeElement(el) ? "pointer-events-none" : "",
15285
+ passesClicksThroughBox(el) ? "pointer-events-none" : "",
15311
15286
  isFullscreenMedia ? "pointer-events-auto" : "",
15312
15287
  selB,
15313
15288
  // Shared class the tooltip's `:hover` rule keys off (see
@@ -15316,6 +15291,13 @@ var ElementRenderer = /* @__PURE__ */ React17.memo(
15316
15291
  actionAffordance.showLinkTooltip && LINK_TOOLTIP_HOST_CLASS
15317
15292
  ),
15318
15293
  style: {
15294
+ // The table style's drop shadow (Themed Style 1/2) sits on the clipping frame.
15295
+ ...el.type === "table" ? tableFrameCss(el.tableData, {
15296
+ tableStyleMap: tableStyleContext?.tableStyleMap,
15297
+ colorScheme: tableStyleContext?.theme?.colorScheme,
15298
+ fontScheme: tableStyleContext?.theme?.fontScheme,
15299
+ formatScheme: tableStyleContext?.theme?.formatScheme
15300
+ }) : {},
15319
15301
  ...containerStyle,
15320
15302
  ...isSelected ? selectionOutlineStyle(selClr) : {}
15321
15303
  },
@@ -17345,22 +17327,19 @@ function getAlignmentProps(align) {
17345
17327
  }
17346
17328
  }
17347
17329
  function getSegmentTspanProps(segment, element, fallbackColor) {
17348
- const s = segment.style || {};
17349
- const decos = [];
17350
- if (s.underline || s.hyperlink) {
17351
- decos.push("underline");
17352
- }
17353
- if (s.strikethrough) {
17354
- decos.push("line-through");
17355
- }
17356
- const fill = s.hyperlink ? normalizeHexColor(s.color || element.textStyle?.color, HYPERLINK_COLOR) : normalizeHexColor(s.color || element.textStyle?.color, fallbackColor);
17330
+ const paint = resolveWarpRunPaint(
17331
+ segment,
17332
+ element.textStyle,
17333
+ fallbackColor,
17334
+ DEFAULT_TEXT_FONT_SIZE
17335
+ );
17357
17336
  return {
17358
- fill,
17359
- fontSize: s.fontSize ?? element.textStyle?.fontSize ?? DEFAULT_TEXT_FONT_SIZE,
17360
- fontWeight: resolveFontWeight(s.fontFamily || element.textStyle?.fontFamily, s.bold),
17361
- fontStyle: resolveFontItalic(s.fontFamily || element.textStyle?.fontFamily, s.italic) ? "italic" : void 0,
17362
- fontFamily: s.fontFamily || element.textStyle?.fontFamily ? getSubstituteFontFamily(s.fontFamily || element.textStyle?.fontFamily || "") : DEFAULT_FONT_FAMILY,
17363
- textDecoration: decos.length > 0 ? decos.join(" ") : void 0
17337
+ fill: paint.fill,
17338
+ fontSize: paint.fontSizePx,
17339
+ fontWeight: paint.fontWeight ?? "normal",
17340
+ fontStyle: paint.fontStyle ?? "normal",
17341
+ fontFamily: paint.fontFamily,
17342
+ textDecoration: paint.textDecoration
17364
17343
  };
17365
17344
  }
17366
17345
  function resolveSegmentFont(segment, element) {
@@ -17559,60 +17538,66 @@ function WarpedText({
17559
17538
  }
17560
17539
  );
17561
17540
  }
17562
- var GLYPH_BY_SHAPE = /* @__PURE__ */ buildGlyphByShape();
17563
- function buildGlyphByShape() {
17564
- const glyphs = Object.fromEntries(
17565
- ACTION_BUTTON_PRESETS.map((p) => [p.shapeType, p.iconPath])
17566
- );
17567
- glyphs["actionButtonForwardOrNext"] = glyphs["actionButtonForwardNext"];
17568
- glyphs["actionButtonBackOrPrevious"] = glyphs["actionButtonBackPrevious"];
17569
- return glyphs;
17570
- }
17571
- function isActionButtonShape(shapeType) {
17572
- return Boolean(shapeType && shapeType in GLYPH_BY_SHAPE);
17573
- }
17574
- function getActionButtonGlyphPath(shapeType) {
17575
- if (!shapeType) {
17576
- return void 0;
17541
+ function renderEquationBox(el, interactive) {
17542
+ if (!hasTextProperties(el) || !isEquationOnlyText(el.textSegments)) {
17543
+ return null;
17577
17544
  }
17578
- const path = GLYPH_BY_SHAPE[shapeType];
17579
- return path && path.length > 0 ? path : void 0;
17580
- }
17581
- function ActionButtonGlyphOverlay({
17582
- element,
17583
- color
17584
- }) {
17585
- const shapeType = "shapeType" in element ? element.shapeType : void 0;
17586
- const path = getActionButtonGlyphPath(shapeType);
17587
- if (!path) {
17545
+ const equations = (el.textSegments ?? []).flatMap((segment, index) => {
17546
+ const mathml = segment.equationXml ? convertOmmlToMathMl(segment.equationXml) : "";
17547
+ if (!mathml) {
17548
+ return [];
17549
+ }
17550
+ const math = /* @__PURE__ */ jsx(
17551
+ "span",
17552
+ {
17553
+ style: {
17554
+ display: "inline-block",
17555
+ verticalAlign: "middle",
17556
+ fontFamily: EQUATION_FONT_FAMILY
17557
+ },
17558
+ dangerouslySetInnerHTML: { __html: sanitizeMathMl(mathml) }
17559
+ }
17560
+ );
17561
+ if (!segment.equationNumber) {
17562
+ return [/* @__PURE__ */ jsx(React17.Fragment, { children: math }, `${el.id}-eq-${index}`)];
17563
+ }
17564
+ const label = `(${segment.equationNumber})`;
17565
+ return [
17566
+ /* @__PURE__ */ jsxs(
17567
+ "span",
17568
+ {
17569
+ style: {
17570
+ display: "flex",
17571
+ justifyContent: "space-between",
17572
+ alignItems: "center",
17573
+ width: "100%"
17574
+ },
17575
+ children: [
17576
+ /* @__PURE__ */ jsx("span", { style: { visibility: "hidden", whiteSpace: "nowrap" }, children: label }),
17577
+ /* @__PURE__ */ jsx("span", { style: { flex: 1, textAlign: "center" }, children: math }),
17578
+ /* @__PURE__ */ jsx("span", { style: { whiteSpace: "nowrap", fontFamily: EQUATION_FONT_FAMILY }, children: label })
17579
+ ]
17580
+ },
17581
+ `${el.id}-eq-${index}`
17582
+ )
17583
+ ];
17584
+ });
17585
+ if (equations.length === 0) {
17588
17586
  return null;
17589
17587
  }
17590
- const stroke = color ?? ("textStyle" in element && element.textStyle?.color || "#ffffff");
17588
+ const style = buildEquationBlockStyle(
17589
+ buildTextBlockStyle(el, {
17590
+ fallbackColor: DEFAULT_TEXT_COLOR,
17591
+ bodyLayout: true,
17592
+ pxLengths: true
17593
+ })
17594
+ );
17591
17595
  return /* @__PURE__ */ jsx(
17592
- "svg",
17596
+ "div",
17593
17597
  {
17594
- viewBox: "0 0 24 24",
17595
- width: "100%",
17596
- height: "100%",
17597
- preserveAspectRatio: "xMidYMid meet",
17598
- style: {
17599
- position: "absolute",
17600
- inset: 0,
17601
- pointerEvents: "none",
17602
- padding: "20%"
17603
- },
17604
- "aria-hidden": "true",
17605
- children: /* @__PURE__ */ jsx(
17606
- "path",
17607
- {
17608
- d: path,
17609
- fill: "none",
17610
- stroke,
17611
- strokeWidth: 2,
17612
- strokeLinecap: "round",
17613
- strokeLinejoin: "round"
17614
- }
17615
- )
17598
+ className: cn("relative z-10 w-full h-full", interactive ? "" : "pointer-events-none"),
17599
+ style,
17600
+ children: equations
17616
17601
  }
17617
17602
  );
17618
17603
  }
@@ -17660,13 +17645,13 @@ function renderTextElementBody(options) {
17660
17645
  ...scene3dStyle?.transformStyle ? { transformStyle: scene3dStyle.transformStyle } : {},
17661
17646
  ...isLinkedTextBox$1 ? { overflow: "hidden" } : {}
17662
17647
  };
17663
- const shapeType = "shapeType" in el ? el.shapeType : void 0;
17664
17648
  const placeholderPrompt = placeholderPromptDescriptor(el, placeholderPromptMode);
17665
17649
  const shouldRenderText = isTxtEl || placeholderPrompt !== null;
17650
+ const equationBox = shouldRenderText ? renderEquationBox(el, Boolean(onHyperlinkClick)) : null;
17666
17651
  return /* @__PURE__ */ jsxs(Fragment, { children: [
17667
17652
  vecShape,
17668
- isActionButtonShape(shapeType) && /* @__PURE__ */ jsx(ActionButtonGlyphOverlay, { element: el }),
17669
- shouldRenderText && (useSvgWarp ? /* @__PURE__ */ jsx(
17653
+ equationBox,
17654
+ shouldRenderText && !equationBox && (useSvgWarp ? /* @__PURE__ */ jsx(
17670
17655
  "div",
17671
17656
  {
17672
17657
  className: cn(
@@ -18095,13 +18080,17 @@ function renderBody(options) {
18095
18080
  // does. The rule is shared so the five bindings cannot drift on it.
18096
18081
  showTransport: mediaTransportVisible({
18097
18082
  presenting: isPresentationPassive === true,
18098
- preview: isStaticSurface === true,
18099
- canvasTransport: true
18083
+ preview: isStaticSurface === true
18100
18084
  }),
18101
18085
  // ...and never the play badge / placeholder box either: a still is
18102
18086
  // slide content, and the transition overlay paints one (issue #147).
18103
18087
  preview: isStaticSurface === true,
18104
- onPlayStateChange: handleMediaPlayStateChange
18088
+ onPlayStateChange: handleMediaPlayStateChange,
18089
+ // PowerPoint's Normal view: a control bar while selected or hovered.
18090
+ ...mediaControlBarEnabled({
18091
+ presenting: isPresentationPassive === true,
18092
+ preview: isStaticSurface === true
18093
+ }) ? { controlBar: { selected: isSel === true } } : {}
18105
18094
  });
18106
18095
  }
18107
18096
  if (doInk && isInkElement(el)) {
Binary file
Binary file
package/dist/i18n/de.cjs CHANGED
@@ -844,6 +844,11 @@ var translations5 = {
844
844
  "pptx.statusBar.zoomOut": "Verkleinern",
845
845
  "pptx.statusBar.zoomToFit": "An Fenster anpassen",
846
846
  "pptx.autosave.saving": "Speichern...",
847
+ "pptx.autosave.progress.uploading": "Speichern\u2026 {percent}%",
848
+ "pptx.autosave.progress.checking": "Auf \xC4nderungen pr\xFCfen\u2026",
849
+ "pptx.autosave.progress.downloading": "Neueste Version wird abgerufen\u2026 {percent}%",
850
+ "pptx.autosave.progress.downloadingUnknown": "Neueste Version wird abgerufen\u2026",
851
+ "pptx.autosave.progress.merging": "\xC4nderungen werden zusammengef\xFChrt\u2026",
847
852
  "pptx.autosave.saved": "Gespeichert {{time}}",
848
853
  "pptx.autosave.error": "Fehler beim automatischen Speichern",
849
854
  "pptx.autosave.disabled": "Automatisches Speichern nicht verf\xFCgbar",
Binary file
Binary file
package/dist/i18n/de.mjs CHANGED
@@ -818,6 +818,11 @@ var translations5 = {
818
818
  "pptx.statusBar.zoomOut": "Verkleinern",
819
819
  "pptx.statusBar.zoomToFit": "An Fenster anpassen",
820
820
  "pptx.autosave.saving": "Speichern...",
821
+ "pptx.autosave.progress.uploading": "Speichern\u2026 {percent}%",
822
+ "pptx.autosave.progress.checking": "Auf \xC4nderungen pr\xFCfen\u2026",
823
+ "pptx.autosave.progress.downloading": "Neueste Version wird abgerufen\u2026 {percent}%",
824
+ "pptx.autosave.progress.downloadingUnknown": "Neueste Version wird abgerufen\u2026",
825
+ "pptx.autosave.progress.merging": "\xC4nderungen werden zusammengef\xFChrt\u2026",
821
826
  "pptx.autosave.saved": "Gespeichert {{time}}",
822
827
  "pptx.autosave.error": "Fehler beim automatischen Speichern",
823
828
  "pptx.autosave.disabled": "Automatisches Speichern nicht verf\xFCgbar",
Binary file
Binary file
package/dist/i18n/es.cjs CHANGED
@@ -844,6 +844,11 @@ var translations5 = {
844
844
  "pptx.statusBar.zoomOut": "Alejar",
845
845
  "pptx.statusBar.zoomToFit": "Ajustar a la ventana",
846
846
  "pptx.autosave.saving": "Guardando...",
847
+ "pptx.autosave.progress.uploading": "Guardando\u2026 {percent}%",
848
+ "pptx.autosave.progress.checking": "Buscando cambios\u2026",
849
+ "pptx.autosave.progress.downloading": "Obteniendo la \xFAltima versi\xF3n\u2026 {percent}%",
850
+ "pptx.autosave.progress.downloadingUnknown": "Obteniendo la \xFAltima versi\xF3n\u2026",
851
+ "pptx.autosave.progress.merging": "Combinando ediciones\u2026",
847
852
  "pptx.autosave.saved": "Guardado {{time}}",
848
853
  "pptx.autosave.error": "Error de guardado autom\xE1tico",
849
854
  "pptx.autosave.disabled": "Autoguardado no disponible",
Binary file
Binary file
package/dist/i18n/es.mjs CHANGED
@@ -818,6 +818,11 @@ var translations5 = {
818
818
  "pptx.statusBar.zoomOut": "Alejar",
819
819
  "pptx.statusBar.zoomToFit": "Ajustar a la ventana",
820
820
  "pptx.autosave.saving": "Guardando...",
821
+ "pptx.autosave.progress.uploading": "Guardando\u2026 {percent}%",
822
+ "pptx.autosave.progress.checking": "Buscando cambios\u2026",
823
+ "pptx.autosave.progress.downloading": "Obteniendo la \xFAltima versi\xF3n\u2026 {percent}%",
824
+ "pptx.autosave.progress.downloadingUnknown": "Obteniendo la \xFAltima versi\xF3n\u2026",
825
+ "pptx.autosave.progress.merging": "Combinando ediciones\u2026",
821
826
  "pptx.autosave.saved": "Guardado {{time}}",
822
827
  "pptx.autosave.error": "Error de guardado autom\xE1tico",
823
828
  "pptx.autosave.disabled": "Autoguardado no disponible",
Binary file
Binary file
package/dist/i18n/fr.cjs CHANGED
@@ -844,6 +844,11 @@ var translations5 = {
844
844
  "pptx.statusBar.zoomOut": "Zoom arri\xE8re",
845
845
  "pptx.statusBar.zoomToFit": "Ajuster \xE0 la fen\xEAtre",
846
846
  "pptx.autosave.saving": "Enregistrement...",
847
+ "pptx.autosave.progress.uploading": "Enregistrement\u2026 {percent}%",
848
+ "pptx.autosave.progress.checking": "Recherche de modifications\u2026",
849
+ "pptx.autosave.progress.downloading": "R\xE9cup\xE9ration de la derni\xE8re version\u2026 {percent}%",
850
+ "pptx.autosave.progress.downloadingUnknown": "R\xE9cup\xE9ration de la derni\xE8re version\u2026",
851
+ "pptx.autosave.progress.merging": "Fusion des modifications\u2026",
847
852
  "pptx.autosave.saved": "Enregistr\xE9 {{time}}",
848
853
  "pptx.autosave.error": "Erreur d'enregistrement automatique",
849
854
  "pptx.autosave.disabled": "Enregistrement automatique indisponible",
Binary file
Binary file
package/dist/i18n/fr.mjs CHANGED
@@ -818,6 +818,11 @@ var translations5 = {
818
818
  "pptx.statusBar.zoomOut": "Zoom arri\xE8re",
819
819
  "pptx.statusBar.zoomToFit": "Ajuster \xE0 la fen\xEAtre",
820
820
  "pptx.autosave.saving": "Enregistrement...",
821
+ "pptx.autosave.progress.uploading": "Enregistrement\u2026 {percent}%",
822
+ "pptx.autosave.progress.checking": "Recherche de modifications\u2026",
823
+ "pptx.autosave.progress.downloading": "R\xE9cup\xE9ration de la derni\xE8re version\u2026 {percent}%",
824
+ "pptx.autosave.progress.downloadingUnknown": "R\xE9cup\xE9ration de la derni\xE8re version\u2026",
825
+ "pptx.autosave.progress.merging": "Fusion des modifications\u2026",
821
826
  "pptx.autosave.saved": "Enregistr\xE9 {{time}}",
822
827
  "pptx.autosave.error": "Erreur d'enregistrement automatique",
823
828
  "pptx.autosave.disabled": "Enregistrement automatique indisponible",
Binary file
Binary file
@@ -845,6 +845,11 @@ var translations7 = {
845
845
  "pptx.statusBar.zoomOut": "\u7F29\u5C0F",
846
846
  "pptx.statusBar.zoomToFit": "\u9002\u5E94\u7A97\u53E3",
847
847
  "pptx.autosave.saving": "\u6B63\u5728\u4FDD\u5B58\u2026",
848
+ "pptx.autosave.progress.uploading": "\u6B63\u5728\u4FDD\u5B58\u2026 {percent}%",
849
+ "pptx.autosave.progress.checking": "\u6B63\u5728\u68C0\u67E5\u66F4\u6539\u2026",
850
+ "pptx.autosave.progress.downloading": "\u6B63\u5728\u83B7\u53D6\u6700\u65B0\u7248\u672C\u2026 {percent}%",
851
+ "pptx.autosave.progress.downloadingUnknown": "\u6B63\u5728\u83B7\u53D6\u6700\u65B0\u7248\u672C\u2026",
852
+ "pptx.autosave.progress.merging": "\u6B63\u5728\u5408\u5E76\u7F16\u8F91\u2026",
848
853
  "pptx.autosave.saved": "\u5DF2\u4FDD\u5B58 {{time}}",
849
854
  "pptx.autosave.error": "\u81EA\u52A8\u4FDD\u5B58\u9519\u8BEF",
850
855
  "pptx.autosave.disabled": "\u81EA\u52A8\u4FDD\u5B58\u4E0D\u53EF\u7528",
Binary file
Binary file
@@ -819,6 +819,11 @@ var translations7 = {
819
819
  "pptx.statusBar.zoomOut": "\u7F29\u5C0F",
820
820
  "pptx.statusBar.zoomToFit": "\u9002\u5E94\u7A97\u53E3",
821
821
  "pptx.autosave.saving": "\u6B63\u5728\u4FDD\u5B58\u2026",
822
+ "pptx.autosave.progress.uploading": "\u6B63\u5728\u4FDD\u5B58\u2026 {percent}%",
823
+ "pptx.autosave.progress.checking": "\u6B63\u5728\u68C0\u67E5\u66F4\u6539\u2026",
824
+ "pptx.autosave.progress.downloading": "\u6B63\u5728\u83B7\u53D6\u6700\u65B0\u7248\u672C\u2026 {percent}%",
825
+ "pptx.autosave.progress.downloadingUnknown": "\u6B63\u5728\u83B7\u53D6\u6700\u65B0\u7248\u672C\u2026",
826
+ "pptx.autosave.progress.merging": "\u6B63\u5728\u5408\u5E76\u7F16\u8F91\u2026",
822
827
  "pptx.autosave.saved": "\u5DF2\u4FDD\u5B58 {{time}}",
823
828
  "pptx.autosave.error": "\u81EA\u52A8\u4FDD\u5B58\u9519\u8BEF",
824
829
  "pptx.autosave.disabled": "\u81EA\u52A8\u4FDD\u5B58\u4E0D\u53EF\u7528",
Binary file
Binary file