pptx-react-viewer 4.26.0 → 4.29.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 (169) hide show
  1. package/CHANGELOG.md +82 -0
  2. package/README.md +3 -0
  3. package/dist/{AiChatPanel-TIJ3MRTR.mjs → AiChatPanel-6EIOUV7J.mjs} +3 -7
  4. package/dist/AiChatPanel-6EIOUV7J.mjs.br +0 -0
  5. package/dist/AiChatPanel-6EIOUV7J.mjs.gz +0 -0
  6. package/dist/{AiChatPanel-PGZDMW4M.js → AiChatPanel-AK6X4NJD.js} +27 -31
  7. package/dist/AiChatPanel-AK6X4NJD.js.br +0 -0
  8. package/dist/AiChatPanel-AK6X4NJD.js.gz +0 -0
  9. package/dist/{Model3DScene-SJGIK2TB.mjs → Model3DScene-EZDCI7TT.mjs} +2 -2
  10. package/dist/Model3DScene-EZDCI7TT.mjs.br +0 -0
  11. package/dist/Model3DScene-EZDCI7TT.mjs.gz +0 -0
  12. package/dist/{Model3DScene-LQBTZGVN.js → Model3DScene-KYIYYLMY.js} +3 -3
  13. package/dist/Model3DScene-KYIYYLMY.js.br +0 -0
  14. package/dist/Model3DScene-KYIYYLMY.js.gz +0 -0
  15. package/dist/{chunk-QJNZZBVF.mjs → chunk-6YOFWVII.mjs} +149 -167
  16. package/dist/chunk-6YOFWVII.mjs.br +0 -0
  17. package/dist/chunk-6YOFWVII.mjs.gz +0 -0
  18. package/dist/{chunk-ZW2WNQN7.js → chunk-7JMO6R6B.js} +1215 -1190
  19. package/dist/chunk-7JMO6R6B.js.br +0 -0
  20. package/dist/chunk-7JMO6R6B.js.gz +0 -0
  21. package/dist/{chunk-VEVEP7VF.js → chunk-CTL42ZRR.js} +533 -272
  22. package/dist/chunk-CTL42ZRR.js.br +0 -0
  23. package/dist/chunk-CTL42ZRR.js.gz +0 -0
  24. package/dist/{chunk-4VNS5WPM.js → chunk-DFFCFNK2.js} +2 -5
  25. package/dist/chunk-DFFCFNK2.js.br +0 -0
  26. package/dist/chunk-DFFCFNK2.js.gz +0 -0
  27. package/dist/{chunk-K564H64A.mjs → chunk-EW45F35P.mjs} +125 -176
  28. package/dist/chunk-EW45F35P.mjs.br +0 -0
  29. package/dist/chunk-EW45F35P.mjs.gz +0 -0
  30. package/dist/{chunk-XGB3TDIC.mjs → chunk-GDQSMJQZ.mjs} +2 -5
  31. package/dist/chunk-GDQSMJQZ.mjs.br +0 -0
  32. package/dist/chunk-GDQSMJQZ.mjs.gz +0 -0
  33. package/dist/{chunk-PW3YOZFA.js → chunk-K3EGXT6W.js} +921 -933
  34. package/dist/chunk-K3EGXT6W.js.br +0 -0
  35. package/dist/chunk-K3EGXT6W.js.gz +0 -0
  36. package/dist/{chunk-USJXG5TE.mjs → chunk-VI575UU6.mjs} +87 -105
  37. package/dist/chunk-VI575UU6.mjs.br +0 -0
  38. package/dist/chunk-VI575UU6.mjs.gz +0 -0
  39. package/dist/i18n.d.ts +1 -46
  40. package/dist/i18n.js +5 -5
  41. package/dist/i18n.js.br +2 -2
  42. package/dist/i18n.js.gz +0 -0
  43. package/dist/i18n.mjs +2 -2
  44. package/dist/i18n.mjs.br +0 -0
  45. package/dist/i18n.mjs.gz +0 -0
  46. package/dist/index.d.ts +28 -3703
  47. package/dist/index.js +96 -97
  48. package/dist/index.js.br +0 -0
  49. package/dist/index.js.gz +0 -0
  50. package/dist/index.mjs +6 -7
  51. package/dist/index.mjs.br +0 -0
  52. package/dist/index.mjs.gz +0 -0
  53. package/dist/internals.d.ts +16 -3848
  54. package/dist/internals.js +114 -115
  55. package/dist/internals.js.br +0 -0
  56. package/dist/internals.js.gz +0 -0
  57. package/dist/internals.mjs +4 -5
  58. package/dist/internals.mjs.br +0 -0
  59. package/dist/internals.mjs.gz +0 -0
  60. package/dist/{chunk-NJYF5KTY.mjs → three.module-2R4ADL7W.mjs} +2 -0
  61. package/dist/three.module-2R4ADL7W.mjs.br +0 -0
  62. package/dist/three.module-2R4ADL7W.mjs.gz +0 -0
  63. package/dist/{chunk-QS3GAPPA.js → three.module-LS32MK23.js} +2 -0
  64. package/dist/three.module-LS32MK23.js.br +0 -0
  65. package/dist/three.module-LS32MK23.js.gz +0 -0
  66. package/dist/viewer/index.d.ts +29 -2633
  67. package/dist/viewer/index.js +35 -37
  68. package/dist/viewer/index.js.br +0 -0
  69. package/dist/viewer/index.js.gz +0 -0
  70. package/dist/viewer/index.mjs +5 -7
  71. package/dist/viewer/index.mjs.br +0 -0
  72. package/dist/viewer/index.mjs.gz +0 -0
  73. package/dist/{y-webrtc-GAHCEZSS.mjs → y-webrtc-6DZI5KUK.mjs} +1 -1
  74. package/dist/y-webrtc-6DZI5KUK.mjs.br +0 -0
  75. package/dist/y-webrtc-6DZI5KUK.mjs.gz +0 -0
  76. package/dist/{y-webrtc-F2H7BRUK.js → y-webrtc-OTRGEYOH.js} +5 -5
  77. package/dist/y-webrtc-OTRGEYOH.js.br +0 -0
  78. package/dist/y-webrtc-OTRGEYOH.js.gz +0 -0
  79. package/dist/{y-websocket-FBMB63F4.js → y-websocket-AWBYMAHL.js} +1 -1
  80. package/dist/y-websocket-AWBYMAHL.js.br +0 -0
  81. package/dist/y-websocket-AWBYMAHL.js.gz +0 -0
  82. package/dist/{y-websocket-MAGDFVLN.mjs → y-websocket-VAKUVRQT.mjs} +1 -1
  83. package/dist/y-websocket-VAKUVRQT.mjs.br +0 -0
  84. package/dist/y-websocket-VAKUVRQT.mjs.gz +0 -0
  85. package/package.json +4 -4
  86. package/dist/AiChatPanel-PGZDMW4M.js.br +0 -0
  87. package/dist/AiChatPanel-PGZDMW4M.js.gz +0 -0
  88. package/dist/AiChatPanel-TIJ3MRTR.mjs.br +0 -0
  89. package/dist/AiChatPanel-TIJ3MRTR.mjs.gz +0 -0
  90. package/dist/GLTFLoader-O7FNKCHG.mjs +0 -2649
  91. package/dist/GLTFLoader-O7FNKCHG.mjs.br +0 -0
  92. package/dist/GLTFLoader-O7FNKCHG.mjs.gz +0 -0
  93. package/dist/GLTFLoader-UM56GMCK.js +0 -2651
  94. package/dist/GLTFLoader-UM56GMCK.js.br +0 -0
  95. package/dist/GLTFLoader-UM56GMCK.js.gz +0 -0
  96. package/dist/Model3DScene-LQBTZGVN.js.br +0 -0
  97. package/dist/Model3DScene-LQBTZGVN.js.gz +0 -0
  98. package/dist/Model3DScene-SJGIK2TB.mjs.br +0 -0
  99. package/dist/Model3DScene-SJGIK2TB.mjs.gz +0 -0
  100. package/dist/OrbitControls-EXEHIXFI.js +0 -922
  101. package/dist/OrbitControls-EXEHIXFI.js.br +0 -0
  102. package/dist/OrbitControls-EXEHIXFI.js.gz +0 -0
  103. package/dist/OrbitControls-PZQ4CBVS.mjs +0 -920
  104. package/dist/OrbitControls-PZQ4CBVS.mjs.br +0 -0
  105. package/dist/OrbitControls-PZQ4CBVS.mjs.gz +0 -0
  106. package/dist/UTIF-6SHLXCNF.js +0 -6402
  107. package/dist/UTIF-6SHLXCNF.js.br +0 -0
  108. package/dist/UTIF-6SHLXCNF.js.gz +0 -0
  109. package/dist/UTIF-CNNXS5Z5.mjs +0 -6400
  110. package/dist/UTIF-CNNXS5Z5.mjs.br +0 -0
  111. package/dist/UTIF-CNNXS5Z5.mjs.gz +0 -0
  112. package/dist/chunk-4VNS5WPM.js.br +0 -0
  113. package/dist/chunk-4VNS5WPM.js.gz +0 -0
  114. package/dist/chunk-6HMJTCFO.js +0 -4247
  115. package/dist/chunk-6HMJTCFO.js.br +0 -0
  116. package/dist/chunk-6HMJTCFO.js.gz +0 -0
  117. package/dist/chunk-DKMPRUXL.mjs +0 -22197
  118. package/dist/chunk-DKMPRUXL.mjs.br +0 -0
  119. package/dist/chunk-DKMPRUXL.mjs.gz +0 -0
  120. package/dist/chunk-K564H64A.mjs.br +0 -0
  121. package/dist/chunk-K564H64A.mjs.gz +0 -0
  122. package/dist/chunk-LCWNHXHZ.mjs +0 -312894
  123. package/dist/chunk-LCWNHXHZ.mjs.br +0 -0
  124. package/dist/chunk-LCWNHXHZ.mjs.gz +0 -0
  125. package/dist/chunk-NJYF5KTY.mjs.br +0 -0
  126. package/dist/chunk-NJYF5KTY.mjs.gz +0 -0
  127. package/dist/chunk-NWZKMLGC.js +0 -22241
  128. package/dist/chunk-NWZKMLGC.js.br +0 -0
  129. package/dist/chunk-NWZKMLGC.js.gz +0 -0
  130. package/dist/chunk-PW3YOZFA.js.br +0 -0
  131. package/dist/chunk-PW3YOZFA.js.gz +0 -0
  132. package/dist/chunk-QJNZZBVF.mjs.br +0 -0
  133. package/dist/chunk-QJNZZBVF.mjs.gz +0 -0
  134. package/dist/chunk-QS3GAPPA.js.br +0 -0
  135. package/dist/chunk-QS3GAPPA.js.gz +0 -0
  136. package/dist/chunk-UHW3R465.js +0 -314151
  137. package/dist/chunk-UHW3R465.js.br +0 -0
  138. package/dist/chunk-UHW3R465.js.gz +0 -0
  139. package/dist/chunk-USJXG5TE.mjs.br +0 -0
  140. package/dist/chunk-USJXG5TE.mjs.gz +0 -0
  141. package/dist/chunk-VEVEP7VF.js.br +0 -0
  142. package/dist/chunk-VEVEP7VF.js.gz +0 -0
  143. package/dist/chunk-XGB3TDIC.mjs.br +0 -0
  144. package/dist/chunk-XGB3TDIC.mjs.gz +0 -0
  145. package/dist/chunk-XLPQM7OJ.mjs +0 -4243
  146. package/dist/chunk-XLPQM7OJ.mjs.br +0 -0
  147. package/dist/chunk-XLPQM7OJ.mjs.gz +0 -0
  148. package/dist/chunk-ZW2WNQN7.js.br +0 -0
  149. package/dist/chunk-ZW2WNQN7.js.gz +0 -0
  150. package/dist/smartart-layouts-5T2QZGLG.js +0 -2494
  151. package/dist/smartart-layouts-5T2QZGLG.js.br +0 -0
  152. package/dist/smartart-layouts-5T2QZGLG.js.gz +0 -0
  153. package/dist/smartart-layouts-UCAFYVFW.mjs +0 -2487
  154. package/dist/smartart-layouts-UCAFYVFW.mjs.br +0 -0
  155. package/dist/smartart-layouts-UCAFYVFW.mjs.gz +0 -0
  156. package/dist/three.module-BLHG4FHZ.js +0 -1783
  157. package/dist/three.module-BLHG4FHZ.js.br +0 -0
  158. package/dist/three.module-BLHG4FHZ.js.gz +0 -0
  159. package/dist/three.module-ZSSMKKHW.mjs +0 -2
  160. package/dist/three.module-ZSSMKKHW.mjs.br +0 -0
  161. package/dist/three.module-ZSSMKKHW.mjs.gz +0 -0
  162. package/dist/y-webrtc-F2H7BRUK.js.br +0 -0
  163. package/dist/y-webrtc-F2H7BRUK.js.gz +0 -0
  164. package/dist/y-webrtc-GAHCEZSS.mjs.br +0 -0
  165. package/dist/y-webrtc-GAHCEZSS.mjs.gz +0 -0
  166. package/dist/y-websocket-FBMB63F4.js.br +0 -0
  167. package/dist/y-websocket-FBMB63F4.js.gz +0 -0
  168. package/dist/y-websocket-MAGDFVLN.mjs.br +0 -0
  169. package/dist/y-websocket-MAGDFVLN.mjs.gz +0 -0
@@ -1,8 +1,9 @@
1
- import { DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getImageSurfaceStyle, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, DEFAULT_FILL_COLOR, getCropShapeClipPath, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getImageSurfaceMaskStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, MIN_ELEMENT_SIZE, buildTextBody3DSceneStyle, getImageTilingStyle, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, HYPERLINK_COLOR, cloneHistorySnapshot, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, UNGROUPED_SECTION_ID, DEFAULT_SECTION_GROUP_ID, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, buildPdfFromTiledImageData, GRID_SIZE, buildNotesPdf } from './chunk-USJXG5TE.mjs';
2
- import { GlyphOutlineFontCache, createGlyphOutlineLookup, DEFAULT_VIEWER_OPTIONS, TOOLBAR_TABS, defineThreeViewElement, getSelectionControlArtworkStyle, hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, getSelectionOutlineColor, connectorWrapperTransform, getAriaRoleDescription, getAriaLabel, getAriaRole, resolveElementInteractivity, isEditableTextElement, buildTextStyleOverrideCss, isElementRendered, resolveElementAriaAttributes, isMediaFullscreenActive, shouldRenderHitTarget, elementHitTargetStyle, getImageEffectsOpacity, getImageEffectsFilter, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, ACTION_BUTTON_PRESETS, mediaTransportVisible, isInkElement, oleActionsVisible, getGroupChildParentFill, getElementLabel, getResizeHandleHitAreaStyle, paintedStrokeWidth, buildCssGradientFromShapeStyle, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, paintedElementSize, MEDIA_FULLSCREEN_OVERLAY_STYLE, elementContainerHeightStyle, getElementTransform, resolveElementHighlightClick, applyHighlightClickStyle, getComputedEffectStyle, getSoftEdgeSvgFilter, getEffectStyleSource, getBevelLightingSvgFilter, buildStrokeOutline, buildHollowHitOutline, buildSubpathFillOverlay, isImageLikeElement, strokeOutlineViewBox, resolveRevealedSmartArtNodes, resolveRevealedDrawingShapes, buildSmartArtA11y, canDrillDown, computeSmartArtElementLayout, flattenNodes, buildSummaryZoomView, isImageTiled, getImageColorWashStyle, readEditableText, placeCaretAt, takePendingCaretPoint, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, mapInlineTextFormatKey, subscribeBarFacePicturePixelSamples, getBarFacePicturePixelSampleVersion, ensureChartInteractionStyles, applyChartPartHighlight, resolveRevealedChartData, formatAxisValue, buildInkGroupStrokes, getInkReplayStyles, INK_REPLAY_KEYFRAMES, buildContentPartStrokes, getContentPartReplayStyles, resolveOleType, getOleAriaLabel, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, placeholderPromptDescriptor, attachRotateHandlePlacement, elementIdSelector, createRotationDrag, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, DEFAULT_PALETTE2, resolvePalette, computeDrawingViewBox, projectDrawingShapes, resolveRevealedDrawingShapeNodeIds, styleShadowFilter, buildChromeStyle, measureSvgViewportRect, modelDataToBlobUrl, resolveZoomNavigationTarget, getImageSvgFilters, getCachedNativeImageSize, probeNativeImageSize, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, inlineListBodyText, createInlineListSeed, readListActivationSelection, createInlineListModelObserver, attachCollaborationInlineEditor, bindInlineListParagraph, bindInlineListRun, attachInlineListController, restoreInlineListBodySelection, getInlineEditorSelectionResult, isBulletMarkerSegment, resolveChartThreeViewSpec, applyChart3DDrag, applyChart3DSelect, findChartPartTarget, withChartTitle, resolveSmartArtThreeViewSpec, isBrowserOpenableMime, formatBytes, getOleDisplayName, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, hasGlyphEnvelope, buildGlyphEnvelopeBlock, getWarpPath, isWedgeCalloutPresetShape, isElementActionable, centeredSvgTextLines, findSmartArtNodeText, setSmartArtNodeStyle, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, updateSmartArtNodeText, advanceChartMarkDrag, advanceChartValueDrag, resolveChartKind, buildChartMarkDragGeometry, beginChartMarkDrag, beginChartValueDrag, commitSmartArtNodeFill, commitSmartArtNodeText, groupIntoParagraphs, substituteFieldText, computeInlineEditorRect, smartArtNodeAtPoint, MIN_TOUCH_TARGET_PX, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, createSyncGate, clearLocalAwareness, validateRoomId, createDepartureChannel, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, registerCollaborationTeardown, createPresenceProjector, BROADCAST_THROTTLE_MS, sanitizeColor, cloneTemplateElementsBySlideId, cloneSlide, 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, resolveForwardSlideWithZoomReturn, buildZoomTransitionOverride, hasShowSlideAfter, nextShowSlideIndex, previousShowSlideIndex, beginZoomExcursion, createPresenterShowGuard, firstShowSlideIndex, attachPresentationVisibilityPause, presentationEntrySlideIndex, buildMorphTransitionPlan, morphOptionToMode, buildMorphAnimationRules, findInSlides, applyFindReplacements, visibleTemplateElements, createCollaborationLivePatcher, publishLiveInlineText, PptxHandler, createPresentationLoadResources, collectMediaElements, resolveMediaElementSource, collectImagePaths, applyImagePathPatches, resolveTableCellImageUrls, resolveTableStyleImageUrls, resolveTextFillBlipUrls, partitionTemplateElements, seedRecentColors, resolveAuthoredCustomShowId, buildInitialGuides, readOnlyRecommendation, compatibilityWarningToasts, EncryptedFileError, resolveAutosaveIntervalMs, shouldWriteAutosaveSnapshot, saveAutosaveSnapshot, autosaveSnapshotMark, updateMasterViewElement, isTemplateElementId, updateElement, masterViewElements, replaceMasterViewElements, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, canMergeShapes, canInteractWithElement, prepareHtml2CanvasClone, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, resolveImageResolutionScale, applyThemeToData, THEME_PRESETS, themeColorSchemesEqual, comparePresentation, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, describeFontEmbedding, isMobileViewport, resolveAuthoredSlideRange, mayLeaveSlideShow, stopAllPersistentAudio, guidePxToEmu, buildSaveSlides, buildDeckSaveOptions, resolveSlideSizeSelection, saveDeckWithPassword, shouldProbeAutosaveRecovery, probeAutosaveRecovery, acceptAutosaveRecovery, acknowledgeAutosaveRecovery, discardAutosaveRecovery, shouldLoopContinuously, applyRehearsalTimings, rasterResultToPngBlob, downloadBlob, elementPictureFilename, canEditElementPoints, collectReferencedFontFamilies, resolveGoogleWebfontHref, syncGoogleWebfontStylesheet, selectGoogleWebfontFamilies, fetchGoogleWebfontOutlineBytes, isFeatureEnabled, mapSlideShowStartKey, mapCustomizedEditorKey, isEditorControlTarget, isEditorTextInputTarget, parentSelection, textFontSizePtToPx, stepFontSizePt, textFontSizePxToPt, cycleSelectableElement, createCustomizationController, prepareElementForInsertion, slideSpaceElement, createViewerOptionsStore, observeYDocSlides, LOCAL_SYNC_ORIGIN, readSlidesFromYDoc, shouldRoomSlidesReplaceLoad, reconcileSlidesInYDoc, shouldAutoFollowBroadcaster, detectTouchDevice, detectOrientation, deriveViewportBreakpoints, createTouchGestureRecognizer, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, isKeyboardOpen, scopeLayoutOptionsToSlide, checkModifyPassword, viewerPreferencesFromViewProperties, DEFAULT_VIEWER_PREFERENCES, viewPropertiesPatchFromPreferences, openPptxFile, readBackstageRecentFile, resolveCollaborationShellEditability, resolveCollaborationShellState, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, getSlideTransitionAnimations, getFragmentedTransitionDescriptor, SLIDE_TRANSITION_KEYFRAMES, isActionHidden, buildInlineTextCommitPatch, resolveInlineEditAutoFitHeight, resolveInlineEditNormAutofitShrink, setPendingCaretPoint, drillSelectionForDoubleClick, filterInteractableIds, beginShapeAdjustment, buildElementClipboardPayload, contextMenuInspectorAnchor, savedPresentationFileName, exportDeckJson, groupElements, generateElementId, makeCloneId, ungroupElements, alignElements, distributeElements, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, planMergeShapes, applyMergeShapesPlan, mapPresentationKey, lastShowSlideIndex, mapPresentationWheel, openPendingPrintWindow, computeColorFilter, filterHiddenSlideIndices, computeSlideIndices, buildPrintDocument, finishPrintWindow, buildPrintHtmlDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, buildSlideTemplateSlide, templateSchemeFromTheme, buildThemeColorMap, reResolveSlideColors, reResolveElementColors, resolveViewportFitOptions, EDITOR_VIEWPORT_FIT, calculateViewportFit, scheduleAutoAdvanceChain, computeEntranceAnimationDelay, createPresentationSessionId, resolveTransitionDurationMs, resolveTransitionSoundAction, runPresentationAction, safeOpenUrl, buildRunProgramNotice, toggleStageElementMedia, resolveOleVerbTarget, downloadDataUrl, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, resetPresenterTimer, presenterElapsed, stepPresenterZoom, togglePresenterTimer, addCommentToList, removeCommentFromList, editCommentInList, toggleCommentResolvedInList, slideSpaceMembers, remapTextToSegments, buildInlineListStylePatch, applyActiveInlineListFormatting, applyListStyleUpdate, setPendingSelectionRestore, applyTextStyleUpdate, toggleSelectionBullets, transformInlineListCase, applyCaseTransformToSegments, transformTextCase, resolveExportCaptureDecision, recordProgressPercent, computeGridSpacingPx, resolveShowSlideIndexes, groupSlidesBySection, masterViewPseudoSlide, overlayMasterViewInlineSnapshot, overlayInlineTextSnapshot, rasterizeElement, cloneElementForPaste, applyPasteSpecialFormat, buildRasterPictureElement, copyFormatFromElement, cloneElementUpdates, assertElementUpdateTarget, prepareElementUpdateBatch, createWriteBackScheduler, observeExternalCollaborationReadiness, resolveHistoryDepth, hasCopyableFormat, createBackstagePresentation, buildFieldSubstitutionContext, isEnterableGroup, memberChainAtPoint, findElementPath, drillSelectionForClick, scrollInspectorSectionIntoView, computeScrollDelta, rerouteConnectorsForMovedElements, applyReroutedConnectors, SvgExporter, reResolveElementFonts, replyToCommentInList, removeTableElementColumn, insertTableElementColumn, removeTableElementRow, insertTableElementRow, updateCellTextStyleInRawXml, setCellText, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, 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, canvasToJpegData, applyFormatToElement, createSnapshotTextPositions, isPpactionUrl, parsePpactionUrl, resolvePresentationAction, elementActionToPptxAction, isUrlSafe, buildSmartArtPresetData, classifyMediaType, computeSnapToShape, publishLiveGeometry, getDraggedShapeAdjustments, computeMarqueeHitIds, mergeAdditiveSelection, rasterizeElementTiledToCanvas, borrowExternalCollaborationAwareness, observeExternalCollaborationSession, clampGifDimensions, rasterResultToPngDataUrl, shouldConfirmExternalHyperlink, applyResize, lockResizeAspect, snapBoxToGrid, applyMotionPathPreset, bringForward, sendBackward, bringToFront, sendToBack } from './chunk-LCWNHXHZ.mjs';
3
- import { translationsEn } from './chunk-XLPQM7OJ.mjs';
1
+ import { dist_exports, normalizeHexColor, DEFAULT_STROKE_COLOR, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getAriaRoleDescription, getAriaLabel, getAriaRole, isEditableTextElement, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageEffectsOpacity, getImageEffectsFilter, getImageRenderStyle, cn, ACTION_BUTTON_PRESETS, getImageSurfaceStyle, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, getElementLabel, DEFAULT_FILL_COLOR, buildCssGradientFromShapeStyle, getCropShapeClipPath, getElementTransform, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getImageSurfaceMaskStyle, isImageTiled, getDuotoneColors, getTextWarpStyle, getTextCompensationTransform, renderTextSegments, buildReactChartViewModel, renderChartElement, buildInkGroupStrokes, getInkReplayStyles, INK_REPLAY_KEYFRAMES, buildContentPartStrokes, getContentPartReplayStyles, MIN_ELEMENT_SIZE, buildTextBody3DSceneStyle, getImageTilingStyle, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, substituteFieldText, HYPERLINK_COLOR, cloneTemplateElementsBySlideId, cloneSlide, cloneHistorySnapshot, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, partitionTemplateElements, isTemplateElementId, comparePresentation, UNGROUPED_SECTION_ID, DEFAULT_SECTION_GROUP_ID, stopAllPersistentAudio, buildSaveSlides, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, makeCloneId, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, buildPdfFromTiledImageData, GRID_SIZE, copyFormatFromElement, hasCopyableFormat, rerouteConnectorsForMovedElements, applyReroutedConnectors, splitCell, mergeCells, buildNotesPdf, canvasToJpegData, applyFormatToElement, isPpactionUrl, parsePpactionUrl, isUrlSafe, computeSnapToShape, safeOpenUrl as safeOpenUrl$1 } from './chunk-VI575UU6.mjs';
2
+ import { GlyphOutlineFontCache, createGlyphOutlineLookup, DEFAULT_VIEWER_OPTIONS, TOOLBAR_TABS, defineThreeViewElement, getSelectionControlArtworkStyle, svgLineCap, getSelectionOutlineColor, connectorWrapperTransform, resolveElementInteractivity, buildTextStyleOverrideCss, isElementRendered, resolveElementAriaAttributes, isMediaFullscreenActive, shouldRenderHitTarget, elementHitTargetStyle, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, mediaTransportVisible, oleActionsVisible, getGroupChildParentFill, getResizeHandleHitAreaStyle, paintedStrokeWidth, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, paintedElementSize, MEDIA_FULLSCREEN_OVERLAY_STYLE, elementContainerHeightStyle, resolveElementHighlightClick, applyHighlightClickStyle, getComputedEffectStyle, getSoftEdgeSvgFilter, getEffectStyleSource, getBevelLightingSvgFilter, buildStrokeOutline, buildHollowHitOutline, buildSubpathFillOverlay, strokeOutlineViewBox, resolveRevealedSmartArtNodes, resolveRevealedDrawingShapes, buildSmartArtA11y, canDrillDown, computeSmartArtElementLayout, flattenNodes, buildSummaryZoomView, getImageColorWashStyle, readEditableText, placeCaretAt, takePendingCaretPoint, getPendingSelectionRestore, restoreSegmentSelection, mapInlineTextFormatKey, subscribeBarFacePicturePixelSamples, getBarFacePicturePixelSampleVersion, ensureChartInteractionStyles, applyChartPartHighlight, resolveRevealedChartData, formatAxisValue, resolveOleType, getOleAriaLabel, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, placeholderPromptDescriptor, getAriaRoleDescription as getAriaRoleDescription$1, getAriaLabel as getAriaLabel$1, attachRotateHandlePlacement, elementIdSelector, createRotationDrag, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, SMARTART_DEFAULT_PALETTE, resolvePalette as resolvePalette$1, computeDrawingViewBox, projectDrawingShapes, resolveRevealedDrawingShapeNodeIds, styleShadowFilter, buildChromeStyle, measureSvgViewportRect, modelDataToBlobUrl, resolveZoomNavigationTarget, getImageSvgFilters, getCachedNativeImageSize, probeNativeImageSize, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, inlineListBodyText, createInlineListSeed, readListActivationSelection, createInlineListModelObserver, attachCollaborationInlineEditor, bindInlineListParagraph, bindInlineListRun, attachInlineListController, restoreInlineListBodySelection, getInlineEditorSelectionResult, isBulletMarkerSegment, resolveChartThreeViewSpec, applyChart3DDrag, applyChart3DSelect, findChartPartTarget, withChartTitle, resolveSmartArtThreeViewSpec, isBrowserOpenableMime, formatBytes, getOleDisplayName, getOleBadgeLabel, openUrlInNewTab, hasGlyphEnvelope, buildGlyphEnvelopeBlock, getWarpPath, isWedgeCalloutPresetShape, getAriaRole as getAriaRole$1, isElementActionable, centeredSvgTextLines, findSmartArtNodeText, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, advanceChartMarkDrag, advanceChartValueDrag, resolveChartKind, buildChartMarkDragGeometry, beginChartMarkDrag, beginChartValueDrag, commitSmartArtNodeFill, commitSmartArtNodeText, groupIntoParagraphs as groupIntoParagraphs$1, computeInlineEditorRect, smartArtNodeAtPoint, MIN_TOUCH_TARGET_PX, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, createSyncGate, clearLocalAwareness, validateRoomId, createDepartureChannel, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, registerCollaborationTeardown, createPresenceProjector, BROADCAST_THROTTLE_MS, sanitizeColor, 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, resolveForwardSlideWithZoomReturn, buildZoomTransitionOverride, hasShowSlideAfter, nextShowSlideIndex, previousShowSlideIndex, beginZoomExcursion, createPresenterShowGuard, firstShowSlideIndex, attachPresentationVisibilityPause, presentationEntrySlideIndex, buildMorphTransitionPlan, morphOptionToMode, buildMorphAnimationRules, findInSlides, applyFindReplacements, visibleTemplateElements, createCollaborationLivePatcher, publishLiveInlineText, createPresentationLoadResources, collectMediaElements, resolveMediaElementSource, collectImagePaths, applyImagePathPatches, resolveTableCellImageUrls, resolveTableStyleImageUrls, resolveTextFillBlipUrls, seedRecentColors, resolveAuthoredCustomShowId, buildInitialGuides, readOnlyRecommendation, compatibilityWarningToasts, resolveInitialSlideIndex, resolveAutosaveIntervalMs, shouldWriteAutosaveSnapshot, saveAutosaveSnapshot, autosaveSnapshotMark, updateMasterViewElement, updateElement, masterViewElements, replaceMasterViewElements, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, canMergeShapes, canInteractWithElement, prepareHtml2CanvasClone, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, resolveImageResolutionScale, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, describeFontEmbedding, isMobileViewport, resolveAuthoredSlideRange, mayLeaveSlideShow, buildDeckSaveOptions, resolveSlideSizeSelection, saveDeckWithPassword, shouldProbeAutosaveRecovery, probeAutosaveRecovery, acceptAutosaveRecovery, acknowledgeAutosaveRecovery, discardAutosaveRecovery, shouldLoopContinuously, applyRehearsalTimings, rasterResultToPngBlob, downloadBlob, elementPictureFilename, canEditElementPoints, collectReferencedFontFamilies, resolveGoogleWebfontHref, syncGoogleWebfontStylesheet, selectGoogleWebfontFamilies, fetchGoogleWebfontOutlineBytes, isFeatureEnabled, mapSlideShowStartKey, mapCustomizedEditorKey, isEditorControlTarget, isEditorTextInputTarget, parentSelection, textFontSizePtToPx, stepFontSizePt, textFontSizePxToPt, cycleSelectableElement, createCustomizationController, prepareElementForInsertion, slideSpaceElement, createViewerOptionsStore, observeYDocSlides, LOCAL_SYNC_ORIGIN, readSlidesFromYDoc, shouldRoomSlidesReplaceLoad, reconcileSlidesInYDoc, shouldAutoFollowBroadcaster, detectTouchDevice, detectOrientation, deriveViewportBreakpoints, createTouchGestureRecognizer, isKeyboardOpen, scopeLayoutOptionsToSlide, checkModifyPassword, viewerPreferencesFromViewProperties, DEFAULT_VIEWER_PREFERENCES, viewPropertiesPatchFromPreferences, openPptxFile, readBackstageRecentFile, resolveCollaborationShellEditability, resolveCollaborationShellState, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, getSlideTransitionAnimations, getFragmentedTransitionDescriptor, SLIDE_TRANSITION_KEYFRAMES, isActionHidden, buildInlineTextCommitPatch, resolveInlineEditAutoFitHeight, resolveInlineEditNormAutofitShrink, setPendingCaretPoint, drillSelectionForDoubleClick, filterInteractableIds, beginShapeAdjustment, buildElementClipboardPayload, contextMenuInspectorAnchor, savedPresentationFileName, exportDeckJson, groupElements, generateElementId, ungroupElements, alignElements, distributeElements, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, planMergeShapes, applyMergeShapesPlan, mapPresentationKey, lastShowSlideIndex, mapPresentationWheel, openPendingPrintWindow, computeColorFilter, filterHiddenSlideIndices, computeSlideIndices, buildPrintDocument, finishPrintWindow, buildPrintHtmlDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, buildSlideTemplateSlide, templateSchemeFromTheme, resolveViewportFitOptions, EDITOR_VIEWPORT_FIT, calculateViewportFit, scheduleAutoAdvanceChain, computeEntranceAnimationDelay, createPresentationSessionId, resolveTransitionDurationMs, resolveTransitionSoundAction, runPresentationAction, safeOpenUrl, buildRunProgramNotice, toggleStageElementMedia, resolveOleVerbTarget, downloadDataUrl, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, resetPresenterTimer, presenterElapsed, stepPresenterZoom, togglePresenterTimer, addCommentToList, removeCommentFromList, editCommentInList, toggleCommentResolvedInList, slideSpaceMembers, remapTextToSegments, buildInlineListStylePatch, applyActiveInlineListFormatting, applyListStyleUpdate, setPendingSelectionRestore, applyTextStyleUpdate, toggleSelectionBullets, transformInlineListCase, applyCaseTransformToSegments, transformTextCase, resolveExportCaptureDecision, recordProgressPercent, computeGridSpacingPx as computeGridSpacingPx$1, resolveShowSlideIndexes, groupSlidesBySection, masterViewPseudoSlide, overlayMasterViewInlineSnapshot, overlayInlineTextSnapshot, rasterizeElement, cloneElementForPaste, applyPasteSpecialFormat, buildRasterPictureElement, cloneElementUpdates, assertElementUpdateTarget, prepareElementUpdateBatch, createWriteBackScheduler, observeExternalCollaborationReadiness, resolveHistoryDepth, createBackstagePresentation, buildFieldSubstitutionContext, isEnterableGroup, memberChainAtPoint, findElementPath, drillSelectionForClick, scrollInspectorSectionIntoView, computeScrollDelta, replyToCommentInList, removeTableElementColumn, insertTableElementColumn, removeTableElementRow, insertTableElementRow, 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, buildSmartArtPresetData, classifyMediaType, publishLiveGeometry, getDraggedShapeAdjustments, computeMarqueeHitIds, mergeAdditiveSelection, rasterizeElementTiledToCanvas, borrowExternalCollaborationAwareness, observeExternalCollaborationSession, clampGifDimensions, rasterResultToPngDataUrl, shouldConfirmExternalHyperlink, applyResize, lockResizeAspect, snapBoxToGrid, applyMotionPathPreset, bringForward, sendBackward, bringToFront, sendToBack } from 'ooxml-ui/pptx';
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, { createContext, useMemo, useState, useCallback, useEffect, Suspense, useRef, useLayoutEffect, useContext, useSyncExternalStore, useImperativeHandle } from 'react';
5
5
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
6
+ import { translationsEn } from 'ooxml-ui/pptx/i18n';
6
7
  import { useTranslation } from 'react-i18next';
7
8
  import { flushSync } from 'react-dom';
8
9
  import { LuRotateCw } from 'react-icons/lu';
@@ -124,7 +125,7 @@ function useYjsProvider({ config: inputConfig }) {
124
125
  }
125
126
  setStatus("connecting");
126
127
  try {
127
- const [Y, { WebrtcProvider }] = await Promise.all([import('yjs'), import('./y-webrtc-GAHCEZSS.mjs')]);
128
+ const [Y, { WebrtcProvider }] = await Promise.all([import('yjs'), import('./y-webrtc-6DZI5KUK.mjs')]);
128
129
  if (generation !== generationRef.current) {
129
130
  return;
130
131
  }
@@ -199,7 +200,7 @@ function useYjsProvider({ config: inputConfig }) {
199
200
  }
200
201
  setStatus("connecting");
201
202
  try {
202
- const [Y, { WebsocketProvider }] = await Promise.all([import('yjs'), import('./y-websocket-MAGDFVLN.mjs')]);
203
+ const [Y, { WebsocketProvider }] = await Promise.all([import('yjs'), import('./y-websocket-VAKUVRQT.mjs')]);
203
204
  if (generation !== generationRef.current) {
204
205
  return;
205
206
  }
@@ -2050,8 +2051,6 @@ function useRehearsalTimings(input) {
2050
2051
  toggleRehearsalPause
2051
2052
  };
2052
2053
  }
2053
-
2054
- // src/viewer/hooks/presentation-mode/presentation-actions.ts
2055
2054
  function handlePresentationActionImpl(action, deps) {
2056
2055
  runPresentationAction(
2057
2056
  action,
@@ -2077,8 +2076,6 @@ function handlePresentationActionImpl(action, deps) {
2077
2076
  }
2078
2077
  );
2079
2078
  }
2080
-
2081
- // src/viewer/hooks/presentation-mode/slide-transition.ts
2082
2079
  function executeSlideTransition(nextSlideIndex, deps) {
2083
2080
  const incomingSlide = deps.slides[nextSlideIndex];
2084
2081
  const transition = deps.transitionOverride ?? (deps.reverse ? deps.slides[deps.currentSlideIndex]?.transition : incomingSlide?.transition);
@@ -3480,8 +3477,6 @@ function useCommentMentionDrafts() {
3480
3477
  clearReplyDraftMentions
3481
3478
  };
3482
3479
  }
3483
-
3484
- // src/viewer/hooks/useComments-helpers.ts
3485
3480
  function replaceCommentsOnSlide(slides, slideIndex, next) {
3486
3481
  return slides.map(
3487
3482
  (entry, index) => index === slideIndex ? { ...entry, comments: next } : entry
@@ -3946,7 +3941,7 @@ function useDerivedElementState(input) {
3946
3941
  () => resolveActiveLayout(activeMaster, activeLayoutIndex),
3947
3942
  [activeMaster, activeLayoutIndex]
3948
3943
  );
3949
- const masterViewElements2 = useMemo(
3944
+ const masterViewElements = useMemo(
3950
3945
  () => computeMasterViewElements(activeMaster, activeLayout),
3951
3946
  [activeMaster, activeLayout]
3952
3947
  );
@@ -3956,13 +3951,13 @@ function useDerivedElementState(input) {
3956
3951
  () => buildElementLookup(
3957
3952
  [
3958
3953
  ...templateElements,
3959
- ...masterViewElements2,
3954
+ ...masterViewElements,
3960
3955
  ...notesMasterElements,
3961
3956
  ...handoutMasterElements
3962
3957
  ],
3963
3958
  activeSlide?.elements ?? []
3964
3959
  ),
3965
- [activeSlide, templateElements, masterViewElements2, notesMasterElements, handoutMasterElements]
3960
+ [activeSlide, templateElements, masterViewElements, notesMasterElements, handoutMasterElements]
3966
3961
  );
3967
3962
  const selectedElement = useMemo(() => {
3968
3963
  if (!selectedElementId) {
@@ -3989,7 +3984,7 @@ function useDerivedElementState(input) {
3989
3984
  selectedElements,
3990
3985
  activeMaster,
3991
3986
  activeLayout,
3992
- masterViewElements: masterViewElements2,
3987
+ masterViewElements,
3993
3988
  notesMasterElements,
3994
3989
  handoutMasterElements
3995
3990
  };
@@ -4411,8 +4406,6 @@ function useViewerState(input) {
4411
4406
  const crop = useCropSessionState();
4412
4407
  return { ...core, ...ui, ...crop };
4413
4408
  }
4414
-
4415
- // src/viewer/utils/glyph-outline-cache.ts
4416
4409
  var glyphOutlineFontCache = new GlyphOutlineFontCache();
4417
4410
  var getGlyphOutline = createGlyphOutlineLookup(glyphOutlineFontCache);
4418
4411
 
@@ -4462,9 +4455,12 @@ function useLoadContent({
4462
4455
  setIsDirty,
4463
4456
  setIsEncrypted,
4464
4457
  onContentApplied,
4465
- allowExternalImages
4458
+ allowExternalImages,
4459
+ initialSlide
4466
4460
  }) {
4467
4461
  const handlerRef = useRef(null);
4462
+ const initialSlideRef = useRef(initialSlide);
4463
+ initialSlideRef.current = initialSlide;
4468
4464
  const originalBufferRef = useRef(null);
4469
4465
  const renderTokenRef = useRef(0);
4470
4466
  useEffect(() => {
@@ -4473,7 +4469,7 @@ function useLoadContent({
4473
4469
  }
4474
4470
  let cancelled = false;
4475
4471
  const token = ++renderTokenRef.current;
4476
- const handler = new PptxHandler();
4472
+ const handler = new dist_exports.PptxHandler();
4477
4473
  const resources = createPresentationLoadResources(handler);
4478
4474
  const loadBlobUrls = resources.blobUrls;
4479
4475
  (async () => {
@@ -4617,14 +4613,16 @@ function useLoadContent({
4617
4613
  ...parsed.slides.flatMap((slide) => slide.warnings ?? [])
4618
4614
  ])
4619
4615
  );
4620
- setActiveSlideIndex(0);
4616
+ setActiveSlideIndex(
4617
+ resolveInitialSlideIndex(initialSlideRef.current, parsed.slides.length)
4618
+ );
4621
4619
  clearSelection();
4622
4620
  setIsDirty(false);
4623
4621
  history.resetHistory();
4624
4622
  onContentApplied?.();
4625
4623
  } catch (err) {
4626
4624
  if (!cancelled && token === renderTokenRef.current) {
4627
- if (err instanceof EncryptedFileError) {
4625
+ if (err instanceof dist_exports.EncryptedFileError) {
4628
4626
  setIsEncrypted(true);
4629
4627
  } else {
4630
4628
  console.error("[pptx] Failed to load presentation content:", err);
@@ -4737,6 +4735,8 @@ function useAutosave(input) {
4737
4735
  triggerAutosave: () => doAutosave()
4738
4736
  };
4739
4737
  }
4738
+
4739
+ // src/viewer/hooks/useTextElementOperations.ts
4740
4740
  function useTextElementOperations(input) {
4741
4741
  const {
4742
4742
  selectedElement,
@@ -4747,7 +4747,7 @@ function useTextElementOperations(input) {
4747
4747
  updateSelectedElement
4748
4748
  } = input;
4749
4749
  const liveTextSegments = useCallback(() => {
4750
- if (!selectedElement || !hasTextProperties(selectedElement)) {
4750
+ if (!selectedElement || !(0, dist_exports.hasTextProperties)(selectedElement)) {
4751
4751
  return void 0;
4752
4752
  }
4753
4753
  if (selectedElement.id !== inlineEditingElementId) {
@@ -4765,7 +4765,7 @@ function useTextElementOperations(input) {
4765
4765
  }, [selectedElement, inlineEditingElementId, inlineEditingText, inlineEditingSnapshotRef]);
4766
4766
  const updateSelectedTextStyle = useCallback(
4767
4767
  (updates) => {
4768
- if (!selectedElement || !hasTextProperties(selectedElement)) {
4768
+ if (!selectedElement || !(0, dist_exports.hasTextProperties)(selectedElement)) {
4769
4769
  return;
4770
4770
  }
4771
4771
  const isLiveEditing = selectedElement.id === inlineEditingElementId;
@@ -4843,7 +4843,7 @@ function useTextElementOperations(input) {
4843
4843
  );
4844
4844
  const toggleSelectedBullets = useCallback(
4845
4845
  (kind) => {
4846
- if (!selectedElement || !hasTextProperties(selectedElement)) {
4846
+ if (!selectedElement || !(0, dist_exports.hasTextProperties)(selectedElement)) {
4847
4847
  return;
4848
4848
  }
4849
4849
  const currentSegments = liveTextSegments();
@@ -4894,7 +4894,7 @@ function useTextElementOperations(input) {
4894
4894
  );
4895
4895
  const updateSelectedTextCase = useCallback(
4896
4896
  (mode) => {
4897
- if (!selectedElement || !hasTextProperties(selectedElement)) {
4897
+ if (!selectedElement || !(0, dist_exports.hasTextProperties)(selectedElement)) {
4898
4898
  return;
4899
4899
  }
4900
4900
  const isLiveEditing = selectedElement.id === inlineEditingElementId;
@@ -5046,7 +5046,7 @@ function useElementOperations(input) {
5046
5046
  );
5047
5047
  const updateSelectedShapeStyle = useCallback(
5048
5048
  (updates) => {
5049
- if (!selectedElement || !hasShapeProperties(selectedElement)) {
5049
+ if (!selectedElement || !(0, dist_exports.hasShapeProperties)(selectedElement)) {
5050
5050
  return;
5051
5051
  }
5052
5052
  updateSelectedElement({
@@ -5130,7 +5130,7 @@ function useElementOperations(input) {
5130
5130
  }
5131
5131
  function useSectionOperations(input) {
5132
5132
  const { sections, setSections, slides, setSlides, markDirty } = input;
5133
- const addSection2 = useCallback(
5133
+ const addSection$1 = useCallback(
5134
5134
  (name, afterSlideIndex) => {
5135
5135
  const result = addSection(sections, slides, name, afterSlideIndex);
5136
5136
  setSlides(result.slides);
@@ -5139,7 +5139,7 @@ function useSectionOperations(input) {
5139
5139
  },
5140
5140
  [sections, slides, setSlides, setSections, markDirty]
5141
5141
  );
5142
- const renameSection2 = useCallback(
5142
+ const renameSection$1 = useCallback(
5143
5143
  (sectionId, newName) => {
5144
5144
  const result = renameSection(sections, slides, sectionId, newName);
5145
5145
  setSections(result.sections);
@@ -5148,7 +5148,7 @@ function useSectionOperations(input) {
5148
5148
  },
5149
5149
  [sections, slides, setSections, setSlides, markDirty]
5150
5150
  );
5151
- const deleteSection2 = useCallback(
5151
+ const deleteSection$1 = useCallback(
5152
5152
  (sectionId) => {
5153
5153
  const result = deleteSection(sections, slides, sectionId);
5154
5154
  setSections(result.sections);
@@ -5157,21 +5157,21 @@ function useSectionOperations(input) {
5157
5157
  },
5158
5158
  [sections, slides, setSections, setSlides, markDirty]
5159
5159
  );
5160
- const moveSectionUp2 = useCallback(
5160
+ const moveSectionUp$1 = useCallback(
5161
5161
  (sectionId) => {
5162
5162
  setSections(moveSectionUp(sections, sectionId));
5163
5163
  markDirty();
5164
5164
  },
5165
5165
  [sections, setSections, markDirty]
5166
5166
  );
5167
- const moveSectionDown2 = useCallback(
5167
+ const moveSectionDown$1 = useCallback(
5168
5168
  (sectionId) => {
5169
5169
  setSections(moveSectionDown(sections, sectionId));
5170
5170
  markDirty();
5171
5171
  },
5172
5172
  [sections, setSections, markDirty]
5173
5173
  );
5174
- const moveSlidesToSection2 = useCallback(
5174
+ const moveSlidesToSection$1 = useCallback(
5175
5175
  (slideIndexes, targetSectionId) => {
5176
5176
  const result = moveSlidesToSection(sections, slides, slideIndexes, targetSectionId);
5177
5177
  setSlides(result.slides);
@@ -5190,12 +5190,12 @@ function useSectionOperations(input) {
5190
5190
  [setSections, markDirty]
5191
5191
  );
5192
5192
  return {
5193
- addSection: addSection2,
5194
- renameSection: renameSection2,
5195
- deleteSection: deleteSection2,
5196
- moveSectionUp: moveSectionUp2,
5197
- moveSectionDown: moveSectionDown2,
5198
- moveSlidesToSection: moveSlidesToSection2,
5193
+ addSection: addSection$1,
5194
+ renameSection: renameSection$1,
5195
+ deleteSection: deleteSection$1,
5196
+ moveSectionUp: moveSectionUp$1,
5197
+ moveSectionDown: moveSectionDown$1,
5198
+ moveSlidesToSection: moveSlidesToSection$1,
5199
5199
  toggleSectionCollapse
5200
5200
  };
5201
5201
  }
@@ -5476,8 +5476,6 @@ function processAdjustmentMove(e, adj, editorScale, updateElementById) {
5476
5476
  });
5477
5477
  }
5478
5478
  }
5479
-
5480
- // src/viewer/hooks/pointer-up-handlers.ts
5481
5479
  function processPointerUp(input) {
5482
5480
  const {
5483
5481
  editTemplateMode,
@@ -5788,7 +5786,7 @@ function useCanvasInteractions(input) {
5788
5786
  return;
5789
5787
  }
5790
5788
  const el = elementLookup.get(editId);
5791
- if (el && hasTextProperties(el)) {
5789
+ if (el && (0, dist_exports.hasTextProperties)(el)) {
5792
5790
  const reader = inlineEditingReaderRef?.current;
5793
5791
  const read = reader?.elementId === editId ? reader.read() : void 0;
5794
5792
  if (read?.kind === "unsupported") {
@@ -5835,7 +5833,7 @@ function useCanvasInteractions(input) {
5835
5833
  wasEditable.current = canEdit;
5836
5834
  }, [canEdit]);
5837
5835
  const openEquationEditorForElement = (el) => {
5838
- if (!hasTextProperties(el)) {
5836
+ if (!(0, dist_exports.hasTextProperties)(el)) {
5839
5837
  return false;
5840
5838
  }
5841
5839
  const eqSeg = el.textSegments?.find((seg) => seg.equationXml);
@@ -5868,7 +5866,7 @@ function useCanvasInteractions(input) {
5868
5866
  justInteractedRef.current = false;
5869
5867
  } else {
5870
5868
  const el = elementLookup.get(elementId);
5871
- if (el && hasTextProperties(el) && canInteractWithElement(el, "textEdit")) {
5869
+ if (el && (0, dist_exports.hasTextProperties)(el) && canInteractWithElement(el, "textEdit")) {
5872
5870
  if (!openEquationEditorForElement(el)) {
5873
5871
  setPendingCaretPoint(e);
5874
5872
  setInlineEditingElementId(elementId);
@@ -5894,7 +5892,7 @@ function useCanvasInteractions(input) {
5894
5892
  if (openEquationEditorForElement(el)) {
5895
5893
  return;
5896
5894
  }
5897
- if (hasTextProperties(el) && canInteractWithElement(el, "textEdit")) {
5895
+ if ((0, dist_exports.hasTextProperties)(el) && canInteractWithElement(el, "textEdit")) {
5898
5896
  setInlineEditingElementId(elementId);
5899
5897
  setInlineEditingText(el.text ?? "");
5900
5898
  }
@@ -6067,8 +6065,6 @@ function useCanvasInteractions(input) {
6067
6065
  handleInlineEditCommit
6068
6066
  };
6069
6067
  }
6070
-
6071
- // src/viewer/hooks/insert-file-handlers.ts
6072
6068
  function createFileHandlers(deps) {
6073
6069
  const { activeSlide, canvasSize, addElement } = deps;
6074
6070
  const handleImageFileChange = (e) => {
@@ -6411,7 +6407,7 @@ function createStructuredElementHandlers(deps) {
6411
6407
  if (!preset) {
6412
6408
  return;
6413
6409
  }
6414
- const defaultPptxAction = elementActionToPptxAction({
6410
+ const defaultPptxAction = (0, dist_exports.elementActionToPptxAction)({
6415
6411
  trigger: "click",
6416
6412
  type: preset.defaultAction
6417
6413
  });
@@ -6583,8 +6579,6 @@ function useInsertElements(input) {
6583
6579
  ...fileHandlers
6584
6580
  };
6585
6581
  }
6586
-
6587
- // src/viewer/hooks/useClipboardHandlers.ts
6588
6582
  function useClipboardHandlers(input) {
6589
6583
  const {
6590
6584
  activeSlide,
@@ -6643,11 +6637,9 @@ function useClipboardHandlers(input) {
6643
6637
  handleDelete
6644
6638
  };
6645
6639
  }
6646
-
6647
- // src/viewer/hooks/useMergeShapesHandler.ts
6648
6640
  function useMergeShapesHandler(input) {
6649
6641
  const { activeSlide, activeSlideIndex, selectedElements, ops, history } = input;
6650
- const canMergeShapes2 = canMergeShapes(selectedElements);
6642
+ const canMergeShapes$1 = canMergeShapes(selectedElements);
6651
6643
  const handleMergeShapes = (operation) => {
6652
6644
  if (!activeSlide) {
6653
6645
  return;
@@ -6669,10 +6661,8 @@ function useMergeShapesHandler(input) {
6669
6661
  ops.applySelection(createdIds[0] ?? null, createdIds.length > 1 ? createdIds : []);
6670
6662
  history.markDirty();
6671
6663
  };
6672
- return { handleMergeShapes, canMergeShapes: canMergeShapes2 };
6664
+ return { handleMergeShapes, canMergeShapes: canMergeShapes$1 };
6673
6665
  }
6674
-
6675
- // src/viewer/hooks/useGroupAlignLayerHandlers.ts
6676
6666
  var ALIGN_EDGE_BY_KEY = {
6677
6667
  left: "left",
6678
6668
  center: "centerH",
@@ -6812,7 +6802,7 @@ function useGroupAlignLayerHandlers(input) {
6812
6802
  );
6813
6803
  history.markDirty();
6814
6804
  };
6815
- const { handleMergeShapes, canMergeShapes: canMergeShapes2 } = useMergeShapesHandler({
6805
+ const { handleMergeShapes, canMergeShapes } = useMergeShapesHandler({
6816
6806
  activeSlide,
6817
6807
  activeSlideIndex,
6818
6808
  selectedElements,
@@ -6830,11 +6820,9 @@ function useGroupAlignLayerHandlers(input) {
6830
6820
  handleMoveLayer,
6831
6821
  handleMoveLayerToEdge,
6832
6822
  handleMergeShapes,
6833
- canMergeShapes: canMergeShapes2
6823
+ canMergeShapes
6834
6824
  };
6835
6825
  }
6836
-
6837
- // src/viewer/hooks/useElementManipulation.ts
6838
6826
  function focusInspectorSection(setIsInspectorPaneOpen, setSidebarPanelMode, anchor) {
6839
6827
  setIsInspectorPaneOpen(true);
6840
6828
  setSidebarPanelMode("properties");
@@ -6867,7 +6855,7 @@ function useElementManipulation(input) {
6867
6855
  handleMoveLayer,
6868
6856
  handleMoveLayerToEdge,
6869
6857
  handleMergeShapes,
6870
- canMergeShapes: canMergeShapes2
6858
+ canMergeShapes
6871
6859
  } = useGroupAlignLayerHandlers(input);
6872
6860
  const handleContextMenuAction = (action) => {
6873
6861
  switch (action) {
@@ -6971,12 +6959,10 @@ function useElementManipulation(input) {
6971
6959
  handleMoveLayer,
6972
6960
  handleMoveLayerToEdge,
6973
6961
  handleMergeShapes,
6974
- canMergeShapes: canMergeShapes2,
6962
+ canMergeShapes,
6975
6963
  handleContextMenuAction
6976
6964
  };
6977
6965
  }
6978
-
6979
- // src/viewer/hooks/useSlideManagement.ts
6980
6966
  function insertSlideFromLayoutUpdater(slides, activeIndex, draft) {
6981
6967
  const next = [...slides];
6982
6968
  const insertAt = Math.max(0, Math.min(activeIndex + 1, next.length));
@@ -7059,14 +7045,7 @@ function useSlideManagement(input) {
7059
7045
  if (!src) {
7060
7046
  continue;
7061
7047
  }
7062
- const clone = {
7063
- ...src,
7064
- id: makeSlideId(),
7065
- elements: src.elements.map((el) => ({
7066
- ...el,
7067
- id: `${el.id}-dup-${Math.random().toString(36).slice(2, 6)}`
7068
- }))
7069
- };
7048
+ const clone = { ...(0, dist_exports.duplicateSlide)(src, next.length + 1), id: makeSlideId() };
7070
7049
  next.splice(i + offset + 1, 0, clone);
7071
7050
  offset++;
7072
7051
  }
@@ -7177,7 +7156,7 @@ function createTableMergeHandlers(input) {
7177
7156
  td
7178
7157
  );
7179
7158
  const updates = { tableData: newTableData };
7180
- const newRawXml = updateMergeAttrsInRawXml(selectedElement, newTableData);
7159
+ const newRawXml = (0, dist_exports.updateMergeAttrsInRawXml)(selectedElement, newTableData);
7181
7160
  if (newRawXml) {
7182
7161
  updates.rawXml = newRawXml;
7183
7162
  }
@@ -7211,7 +7190,7 @@ function createTableMergeHandlers(input) {
7211
7190
  td
7212
7191
  );
7213
7192
  const updates = { tableData: newTableData };
7214
- const newRawXml = updateMergeAttrsInRawXml(selectedElement, newTableData);
7193
+ const newRawXml = (0, dist_exports.updateMergeAttrsInRawXml)(selectedElement, newTableData);
7215
7194
  if (newRawXml) {
7216
7195
  updates.rawXml = newRawXml;
7217
7196
  }
@@ -7228,7 +7207,7 @@ function createTableMergeHandlers(input) {
7228
7207
  const td = selectedElement.tableData;
7229
7208
  const newTableData = mergeCells(ts.selectedCells, td);
7230
7209
  const updates = { tableData: newTableData };
7231
- const newRawXml = updateMergeAttrsInRawXml(selectedElement, newTableData);
7210
+ const newRawXml = (0, dist_exports.updateMergeAttrsInRawXml)(selectedElement, newTableData);
7232
7211
  if (newRawXml) {
7233
7212
  updates.rawXml = newRawXml;
7234
7213
  }
@@ -7247,7 +7226,7 @@ function createTableMergeHandlers(input) {
7247
7226
  const td = selectedElement.tableData;
7248
7227
  const newTableData = splitCell(rowIndex, columnIndex, td);
7249
7228
  const updates = { tableData: newTableData };
7250
- const newRawXml = updateMergeAttrsInRawXml(selectedElement, newTableData);
7229
+ const newRawXml = (0, dist_exports.updateMergeAttrsInRawXml)(selectedElement, newTableData);
7251
7230
  if (newRawXml) {
7252
7231
  updates.rawXml = newRawXml;
7253
7232
  }
@@ -7261,8 +7240,6 @@ function createTableMergeHandlers(input) {
7261
7240
  handleSplitCell
7262
7241
  };
7263
7242
  }
7264
-
7265
- // src/viewer/hooks/table-struct-handlers.ts
7266
7243
  function createTableStructHandlers(input) {
7267
7244
  const {
7268
7245
  selectedElement,
@@ -7284,7 +7261,7 @@ function createTableStructHandlers(input) {
7284
7261
  updates.tableData = setCellText(el, rowIndex, colIndex, text).tableData;
7285
7262
  }
7286
7263
  if (el.rawXml) {
7287
- const newRawXml = updateCellTextInRawXml(el, rowIndex, colIndex, text);
7264
+ const newRawXml = (0, dist_exports.updateCellTextInRawXml)(el, rowIndex, colIndex, text);
7288
7265
  if (newRawXml) {
7289
7266
  updates.rawXml = newRawXml;
7290
7267
  }
@@ -7308,7 +7285,7 @@ function createTableStructHandlers(input) {
7308
7285
  const { rowIndex, columnIndex: colIndex } = ts;
7309
7286
  const updates = {};
7310
7287
  if (selectedElement.rawXml) {
7311
- const newRawXml = updateCellTextStyleInRawXml(
7288
+ const newRawXml = (0, dist_exports.updateCellTextStyleInRawXml)(
7312
7289
  selectedElement,
7313
7290
  rowIndex,
7314
7291
  colIndex,
@@ -7430,8 +7407,6 @@ function useTableOperations(input) {
7430
7407
  ...mergeHandlers
7431
7408
  };
7432
7409
  }
7433
-
7434
- // src/lib/canvas-export.ts
7435
7410
  async function renderToCanvas(element, options = {}) {
7436
7411
  const userOnClone = options.onclone;
7437
7412
  const { default: html2canvasPro } = await import('html2canvas-pro');
@@ -7445,8 +7420,6 @@ async function renderToCanvas(element, options = {}) {
7445
7420
  }
7446
7421
  });
7447
7422
  }
7448
-
7449
- // src/viewer/hooks/useExportSaveAs.ts
7450
7423
  function useExportSaveAs(input) {
7451
7424
  const {
7452
7425
  slides,
@@ -7530,8 +7503,6 @@ function useExportSaveAs(input) {
7530
7503
  handleSaveAsPpt
7531
7504
  };
7532
7505
  }
7533
-
7534
- // src/viewer/utils/export-helpers.ts
7535
7506
  function ignoreExportOverlayElements(el) {
7536
7507
  const htmlEl = el;
7537
7508
  if (htmlEl.dataset?.exportIgnore === "true") {
@@ -7643,8 +7614,6 @@ async function captureAllSlidesAsPngDataUrls(slideStageRef, totalSlides, setActi
7643
7614
  setActiveSlide(currentSlideIndex);
7644
7615
  return dataUrls;
7645
7616
  }
7646
-
7647
- // src/viewer/utils/export-pdf.ts
7648
7617
  function tilesToPdfPage(tilesResult) {
7649
7618
  return tilesResult.tiles.map((tile) => ({
7650
7619
  image: canvasToJpegData(tile.canvas),
@@ -7713,8 +7682,6 @@ async function exportAllSlidesAsNotesPdf(slideStageRef, totalSlides, setActiveSl
7713
7682
  const pdfDataUrl = buildNotesPdf(pages);
7714
7683
  downloadDataUrl(pdfDataUrl, filename);
7715
7684
  }
7716
-
7717
- // src/viewer/utils/export-video.ts
7718
7685
  async function exportAllSlidesAsVideo(slideStageRef, totalSlides, setActiveSlide, currentSlideIndex, options = {}) {
7719
7686
  const {
7720
7687
  scale = 1,
@@ -7907,7 +7874,7 @@ function exportAllSlidesToSvg(data, options = {}) {
7907
7874
  continue;
7908
7875
  }
7909
7876
  onProgress?.(processedCount, data.slides.length);
7910
- let svg = SvgExporter.exportSlide(slide, data.width, data.height, svgOptions);
7877
+ let svg = dist_exports.SvgExporter.exportSlide(slide, data.width, data.height, svgOptions);
7911
7878
  if (embedFonts && fontFaces?.length) {
7912
7879
  svg = injectFontFaces(svg, fontFaces);
7913
7880
  }
@@ -7917,8 +7884,6 @@ function exportAllSlidesToSvg(data, options = {}) {
7917
7884
  onProgress?.(processedCount, data.slides.length);
7918
7885
  return results;
7919
7886
  }
7920
-
7921
- // src/viewer/utils/dom-helpers.ts
7922
7887
  function safePrompt(message, defaultValue) {
7923
7888
  try {
7924
7889
  return window.prompt(message, defaultValue);
@@ -8498,10 +8463,10 @@ async function applyThemeEditorEdit(input, { colorScheme, fontScheme, name }) {
8498
8463
  return;
8499
8464
  }
8500
8465
  await handler.applyTheme(colorScheme, fontScheme, name);
8501
- const previousMap = theme?.colorScheme ? buildThemeColorMap(theme.colorScheme) : {};
8466
+ const previousMap = theme?.colorScheme ? (0, dist_exports.buildThemeColorMap)(theme.colorScheme) : {};
8502
8467
  bumpHistory();
8503
8468
  setSlides(
8504
- (slides) => applyThemeToData(
8469
+ (slides) => (0, dist_exports.applyThemeToData)(
8505
8470
  { slides, theme, themeColorMap: previousMap },
8506
8471
  colorScheme,
8507
8472
  fontScheme,
@@ -8512,8 +8477,8 @@ async function applyThemeEditorEdit(input, { colorScheme, fontScheme, name }) {
8512
8477
  (prev) => Object.fromEntries(
8513
8478
  Object.entries(prev).map(([id, elements]) => [
8514
8479
  id,
8515
- reResolveElementFonts(
8516
- reResolveElementColors(elements, previousMap, colorScheme),
8480
+ (0, dist_exports.reResolveElementFonts)(
8481
+ (0, dist_exports.reResolveElementColors)(elements, previousMap, colorScheme),
8517
8482
  theme?.fontScheme,
8518
8483
  fontScheme
8519
8484
  )
@@ -8571,13 +8536,13 @@ function useThemeHandlers(input) {
8571
8536
  return;
8572
8537
  }
8573
8538
  await handler.updateThemeColorScheme(colorScheme);
8574
- const previousMap = theme?.colorScheme ? buildThemeColorMap(theme.colorScheme) : {};
8575
- setSlides((prev) => reResolveSlideColors(prev, previousMap, colorScheme));
8539
+ const previousMap = theme?.colorScheme ? (0, dist_exports.buildThemeColorMap)(theme.colorScheme) : {};
8540
+ setSlides((prev) => (0, dist_exports.reResolveSlideColors)(prev, previousMap, colorScheme));
8576
8541
  if (Object.keys(templateElementsBySlideId).length > 0) {
8577
8542
  setTemplateElementsBySlideId((prev) => {
8578
8543
  const next = {};
8579
8544
  for (const [slideId, elements] of Object.entries(prev)) {
8580
- next[slideId] = reResolveElementColors(elements, previousMap, colorScheme);
8545
+ next[slideId] = (0, dist_exports.reResolveElementColors)(elements, previousMap, colorScheme);
8581
8546
  }
8582
8547
  return next;
8583
8548
  });
@@ -8688,7 +8653,7 @@ function useThemeSwitching(input) {
8688
8653
  }
8689
8654
  try {
8690
8655
  await handler.applyTheme(preset.colorScheme, preset.fontScheme, preset.name);
8691
- const newData = applyThemeToData(data, preset.colorScheme, preset.fontScheme, preset.name);
8656
+ const newData = (0, dist_exports.applyThemeToData)(data, preset.colorScheme, preset.fontScheme, preset.name);
8692
8657
  onDataChange(newData);
8693
8658
  onThemeChanged?.(preset);
8694
8659
  } catch (error) {
@@ -8705,7 +8670,7 @@ function useThemeSwitching(input) {
8705
8670
  }
8706
8671
  try {
8707
8672
  await handler.applyTheme(colorScheme, fontScheme ?? {}, themeName);
8708
- const newData = applyThemeToData(data, colorScheme, fontScheme, themeName);
8673
+ const newData = (0, dist_exports.applyThemeToData)(data, colorScheme, fontScheme, themeName);
8709
8674
  onDataChange(newData);
8710
8675
  } catch (error) {
8711
8676
  console.error("Failed to switch to custom theme:", error);
@@ -8717,17 +8682,19 @@ function useThemeSwitching(input) {
8717
8682
  if (!data?.theme?.colorScheme) {
8718
8683
  return void 0;
8719
8684
  }
8720
- return THEME_PRESETS.find(
8721
- (p) => themeColorSchemesEqual(data.theme?.colorScheme, p.colorScheme)
8685
+ return dist_exports.THEME_PRESETS.find(
8686
+ (p) => (0, dist_exports.themeColorSchemesEqual)(data.theme?.colorScheme, p.colorScheme)
8722
8687
  );
8723
8688
  }, [data?.theme?.colorScheme]);
8724
8689
  return {
8725
- presets: THEME_PRESETS,
8690
+ presets: dist_exports.THEME_PRESETS,
8726
8691
  switchToPreset,
8727
8692
  switchToCustom,
8728
8693
  currentPreset
8729
8694
  };
8730
8695
  }
8696
+
8697
+ // src/viewer/hooks/usePropertyHandlers.ts
8731
8698
  function usePropertyHandlers(input) {
8732
8699
  const {
8733
8700
  slides,
@@ -8797,7 +8764,7 @@ function usePropertyHandlers(input) {
8797
8764
  }
8798
8765
  try {
8799
8766
  const ab = await file.arrayBuffer();
8800
- const h = new PptxHandler();
8767
+ const h = new dist_exports.PptxHandler();
8801
8768
  const other = await h.load(ab);
8802
8769
  if (!other) {
8803
8770
  return;
@@ -9159,8 +9126,8 @@ function useViewerDialogs(input) {
9159
9126
  handleRunAccessibilityCheck
9160
9127
  };
9161
9128
  }
9162
- function computeGridSpacingPx2(documentGridSpacing) {
9163
- return computeGridSpacingPx(documentGridSpacing, GRID_SIZE);
9129
+ function computeGridSpacingPx(documentGridSpacing) {
9130
+ return computeGridSpacingPx$1(documentGridSpacing, GRID_SIZE);
9164
9131
  }
9165
9132
  function computeVisibleSlideIndexes(slides, activeCustomShowId, customShows, presentationProperties) {
9166
9133
  const activeShow = activeCustomShowId ? customShows.find((show) => show.id === activeCustomShowId) : void 0;
@@ -9201,7 +9168,7 @@ function useDerivedSlideState(input) {
9201
9168
  documentGridSpacing
9202
9169
  } = input;
9203
9170
  const gridSpacingPx = useMemo(
9204
- () => computeGridSpacingPx2(documentGridSpacing),
9171
+ () => computeGridSpacingPx(documentGridSpacing),
9205
9172
  [documentGridSpacing]
9206
9173
  );
9207
9174
  const visibleSlideIndexes = useMemo(
@@ -9361,8 +9328,6 @@ function useAnnotationHandlers(input) {
9361
9328
  handleEnterRehearsalMode
9362
9329
  };
9363
9330
  }
9364
-
9365
- // src/viewer/hooks/serialize-inline-edit.ts
9366
9331
  function overlayPendingInlineEdit(document2, elementId, text, snapshot, transformText) {
9367
9332
  const rich = snapshot?.elementId === elementId && snapshot.text === text && snapshot.textSegments;
9368
9333
  const committedText = rich && transformText ? transformText(text) : text;
@@ -9407,7 +9372,7 @@ function overlayPendingInlineEdit(document2, elementId, text, snapshot, transfor
9407
9372
  (slide) => !elementId ? slide : {
9408
9373
  ...slide,
9409
9374
  elements: slide.elements.map(
9410
- (element) => element.id === elementId && hasTextProperties(element) ? {
9375
+ (element) => element.id === elementId && (0, dist_exports.hasTextProperties)(element) ? {
9411
9376
  ...element,
9412
9377
  text,
9413
9378
  textSegments: remapTextToSegments(
@@ -9493,7 +9458,7 @@ function useSerialize(input) {
9493
9458
  const pptxGuides = guides.map((g) => ({
9494
9459
  id: g.id,
9495
9460
  orientation: g.axis === "h" ? "horz" : "vert",
9496
- positionEmu: guidePxToEmu(g.position)
9461
+ positionEmu: (0, dist_exports.guidePxToEmu)(g.position)
9497
9462
  }));
9498
9463
  return {
9499
9464
  ...slide,
@@ -9804,10 +9769,10 @@ function useCanvasImagePaste(input) {
9804
9769
  function formatPatchFor(element, format) {
9805
9770
  const updated = applyFormatToElement(element, format);
9806
9771
  const updates = {};
9807
- if (hasShapeProperties(updated)) {
9772
+ if ((0, dist_exports.hasShapeProperties)(updated)) {
9808
9773
  updates.shapeStyle = updated.shapeStyle;
9809
9774
  }
9810
- if (hasTextProperties(updated)) {
9775
+ if ((0, dist_exports.hasTextProperties)(updated)) {
9811
9776
  updates.textStyle = updated.textStyle;
9812
9777
  }
9813
9778
  return updates;
@@ -10516,6 +10481,7 @@ function useContentLifecycle(input) {
10516
10481
  password,
10517
10482
  onContentApplied,
10518
10483
  allowExternalImages,
10484
+ initialSlide,
10519
10485
  setReadOnlyRecommendation,
10520
10486
  setModifyVerifier,
10521
10487
  setCompatToasts
@@ -10565,7 +10531,8 @@ function useContentLifecycle(input) {
10565
10531
  setIsDirty: state.setIsDirty,
10566
10532
  setIsEncrypted: setIsEncryptedDialogOpen,
10567
10533
  onContentApplied,
10568
- allowExternalImages
10534
+ allowExternalImages,
10535
+ initialSlide
10569
10536
  });
10570
10537
  useEffect(() => {
10571
10538
  actionSoundHandlerRef.current = handlerRef.current;
@@ -10789,8 +10756,6 @@ function useKeyboardShortcuts(input) {
10789
10756
  };
10790
10757
  }, [handleKeyDown]);
10791
10758
  }
10792
-
10793
- // src/viewer/hooks/useKeyboardShortcutWiring.ts
10794
10759
  var CLEAR_FORMATTING_PATCH = {
10795
10760
  bold: false,
10796
10761
  italic: false,
@@ -10914,7 +10879,7 @@ function useKeyboardShortcutWiring(input) {
10914
10879
  }
10915
10880
  function stepSelectedFontSize(state, ops, direction) {
10916
10881
  const selected = state.selectedElement;
10917
- const currentPx = (selected && hasTextProperties(selected) ? selected.textStyle?.fontSize : void 0) ?? textFontSizePtToPx(18);
10882
+ const currentPx = (selected && (0, dist_exports.hasTextProperties)(selected) ? selected.textStyle?.fontSize : void 0) ?? textFontSizePtToPx(18);
10918
10883
  const nextPt = stepFontSizePt(textFontSizePxToPt(currentPx), direction);
10919
10884
  ops.updateSelectedTextStyle({ fontSize: textFontSizePtToPx(nextPt) });
10920
10885
  }
@@ -10981,6 +10946,7 @@ function useViewerIntegration(input) {
10981
10946
  autosaveAllowed = true,
10982
10947
  autosaveIntervalMs,
10983
10948
  allowExternalImages,
10949
+ initialSlide,
10984
10950
  setReadOnlyRecommendation,
10985
10951
  setModifyVerifier,
10986
10952
  setCompatToasts,
@@ -11056,6 +11022,7 @@ function useViewerIntegration(input) {
11056
11022
  password: dialogs.presentationPassword ?? void 0,
11057
11023
  onContentApplied: () => setLoadVersion((v) => v + 1),
11058
11024
  allowExternalImages,
11025
+ initialSlide,
11059
11026
  setReadOnlyRecommendation,
11060
11027
  setModifyVerifier,
11061
11028
  setCompatToasts
@@ -12105,8 +12072,6 @@ function useKeyboardInsets(enabled = true) {
12105
12072
  }, [enabled]);
12106
12073
  return { keyboardInset, isKeyboardOpen: isKeyboardOpen(keyboardInset) };
12107
12074
  }
12108
-
12109
- // src/viewer/hooks/useViewerBuildingBlocks-canvas-props.ts
12110
12075
  function buildCanvasProps(input) {
12111
12076
  const {
12112
12077
  mode,
@@ -12142,7 +12107,7 @@ function buildCanvasProps(input) {
12142
12107
  if (shouldConfirmExternalHyperlink(viewerOptions, url) && !window.confirm(buildHyperlinkConfirmMessage(url))) {
12143
12108
  return;
12144
12109
  }
12145
- safeOpenUrl(url, target);
12110
+ safeOpenUrl$1(url, target);
12146
12111
  };
12147
12112
  const handleActionClick = (elementId, action) => {
12148
12113
  if (mode === "present") {
@@ -12266,13 +12231,9 @@ function buildCanvasProps(input) {
12266
12231
  }
12267
12232
  };
12268
12233
  }
12269
-
12270
- // src/viewer/hooks/useScopedLayoutOptions.ts
12271
12234
  function scopeLayoutOptionsToActiveSlide(options, activeSlide) {
12272
12235
  return scopeLayoutOptionsToSlide(options, activeSlide?.layoutPath);
12273
12236
  }
12274
-
12275
- // src/viewer/hooks/useViewerBuildingBlocks-toolbar-handlers.ts
12276
12237
  function buildToolbarAnimationHandlers(input) {
12277
12238
  const { selectedElement, activeSlide, propertyHandlers, ops, history } = input;
12278
12239
  const handleAddAnimation = (preset, group) => {
@@ -12877,7 +12838,7 @@ function useViewerBuildingBlocksCore(input) {
12877
12838
  documentGridSpacing: state.viewProperties?.gridSpacing
12878
12839
  });
12879
12840
  const themeColorMap = useMemo(
12880
- () => state.theme?.colorScheme ? buildThemeColorMap(state.theme.colorScheme) : void 0,
12841
+ () => state.theme?.colorScheme ? (0, dist_exports.buildThemeColorMap)(state.theme.colorScheme) : void 0,
12881
12842
  [state.theme?.colorScheme]
12882
12843
  );
12883
12844
  const { presentation, annotations, actionSoundHandlerRef, setExitModeHandler } = usePresentationSetup({
@@ -13656,7 +13617,7 @@ function renderImg(el, style, filter, alt, opacity) {
13656
13617
  ] });
13657
13618
  }
13658
13619
  const colorWash = getImageColorWashStyle(
13659
- isImageLikeElement(el) ? el.imageEffects?.colorWash : void 0
13620
+ (0, dist_exports.isImageLikeElement)(el) ? el.imageEffects?.colorWash : void 0
13660
13621
  );
13661
13622
  const clrChange = "imageEffects" in el ? el.imageEffects?.clrChange : void 0;
13662
13623
  const duotoneColors = getDuotoneColors(el);
@@ -14259,8 +14220,6 @@ var EDGE_HANDLES = [
14259
14220
  sizeClass: "w-2 h-5 max-md:w-3 max-md:h-8 rounded-sm"
14260
14221
  }
14261
14222
  ];
14262
-
14263
- // src/viewer/components/elements/selection-control-artwork.ts
14264
14223
  var appearance = { fill: "var(--color-primary)", borderColor: "#ffffff" };
14265
14224
  var cornerSize = "var(--pptx-react-corner-default, 12px)";
14266
14225
  var edgeLength = "var(--pptx-react-edge-length-default, 20px)";
@@ -14547,7 +14506,7 @@ var ConnectorElementRenderer = React17.memo(
14547
14506
  animationState,
14548
14507
  textStyleOverrideCss
14549
14508
  }) {
14550
- const shapeEl = hasShapeProperties(el) ? el : void 0;
14509
+ const shapeEl = (0, dist_exports.hasShapeProperties)(el) ? el : void 0;
14551
14510
  const viewWidth = Math.max(el.width, 0);
14552
14511
  const viewHeight = Math.max(el.height, 0);
14553
14512
  const svgWidth = Math.max(el.width, 1);
@@ -14571,7 +14530,7 @@ var ConnectorElementRenderer = React17.memo(
14571
14530
  const compoundOffsets = getCompoundLineOffsets(compoundLine, strokeWidth);
14572
14531
  const compoundWidths = getCompoundLineWidths(compoundLine, strokeWidth);
14573
14532
  const strokeCap = svgLineCap(ss?.lineCap);
14574
- const textEl = hasTextProperties(el) ? el : void 0;
14533
+ const textEl = (0, dist_exports.hasTextProperties)(el) ? el : void 0;
14575
14534
  const connectorText = textEl?.text?.trim() ?? "";
14576
14535
  const connectorTextSegments = textEl?.textSegments;
14577
14536
  const connectorTextStyle = textEl?.textStyle;
@@ -14773,8 +14732,6 @@ var ConnectorElementRenderer = React17.memo(
14773
14732
  }
14774
14733
  );
14775
14734
  ConnectorElementRenderer.displayName = "ConnectorElementRenderer";
14776
-
14777
- // src/viewer/components/elements/element-interaction-props.ts
14778
14735
  function getElementInteractionProps({
14779
14736
  element,
14780
14737
  isEditableText,
@@ -14838,8 +14795,6 @@ function getElementInteractionProps({
14838
14795
  title: canInteract && element.actionClick ? void 0 : element.actionClick?.tooltip || element.actionHover?.tooltip || void 0
14839
14796
  };
14840
14797
  }
14841
-
14842
- // src/viewer/components/elements/element-renderer-helpers.tsx
14843
14798
  function renderDagDuotoneFilterForElement(el) {
14844
14799
  if (!hasDagDuotoneEffect(el)) {
14845
14800
  return null;
@@ -14861,7 +14816,7 @@ function getContainerStyle({
14861
14816
  has3DExtrusion,
14862
14817
  templateEditing
14863
14818
  }) {
14864
- const ss = hasShapeProperties(el) ? el.shapeStyle : void 0;
14819
+ const ss = (0, dist_exports.hasShapeProperties)(el) ? el.shapeStyle : void 0;
14865
14820
  const isPicture = el.type === "picture" || el.type === "image";
14866
14821
  const blurGrowVisible = Boolean(
14867
14822
  ss?.blurGrow && typeof ss.blurRadius === "number" && ss.blurRadius > 0
@@ -14909,10 +14864,8 @@ function getContainerStyle({
14909
14864
  ...templateEditing ? { outline: "2px dashed rgb(217, 119, 6)", outlineOffset: "1px", opacity: opacity ?? 0.95 } : {}
14910
14865
  };
14911
14866
  }
14912
-
14913
- // src/viewer/components/elements/element-shape-params.ts
14914
14867
  function shapeParams(element) {
14915
- const style = hasShapeProperties(element) ? element.shapeStyle : void 0;
14868
+ const style = (0, dist_exports.hasShapeProperties)(element) ? element.shapeStyle : void 0;
14916
14869
  const strokeWidth = paintedStrokeWidth(style);
14917
14870
  const strokeColor = normalizeHexColor(style?.strokeColor, DEFAULT_STROKE_COLOR);
14918
14871
  const fillColor = normalizeHexColor(style?.fillColor, DEFAULT_FILL_COLOR);
@@ -15021,7 +14974,7 @@ function ShapeEffectOverlay({
15021
14974
  const fillOverlayStyle = overlay ? {
15022
14975
  position: "absolute",
15023
14976
  inset: 0,
15024
- ...isImageLikeElement(element) ? getImageSurfaceMaskStyle(element) : {},
14977
+ ...(0, dist_exports.isImageLikeElement)(element) ? getImageSurfaceMaskStyle(element) : {},
15025
14978
  background: overlay.color,
15026
14979
  mixBlendMode: overlay.blendMode,
15027
14980
  pointerEvents: "none"
@@ -15221,7 +15174,7 @@ var ElementRenderer = React17.memo(
15221
15174
  const backgroundAnimationState = presentationElementStates?.get(`${el.id}::pptx-bg`);
15222
15175
  const visualAnimationState = backgroundAnimationState ?? animationState;
15223
15176
  const isTxt = isEditableTextElement(el) && allow.textEditable;
15224
- const txtSE = hasTextProperties(el) ? el.textStyle : void 0;
15177
+ const txtSE = (0, dist_exports.hasTextProperties)(el) ? el.textStyle : void 0;
15225
15178
  const textStyleOverrideCss = buildTextStyleOverrideCss(el.id, visualAnimationState?.textStyle);
15226
15179
  const ss = getShapeVisualStyle(
15227
15180
  el,
@@ -15245,7 +15198,7 @@ var ElementRenderer = React17.memo(
15245
15198
  );
15246
15199
  const isModel3D = el.type === "model3d";
15247
15200
  const isConn = isConnectorOrLineElement(el);
15248
- const shapeStyle3d = hasShapeProperties(el) ? el.shapeStyle : void 0;
15201
+ const shapeStyle3d = (0, dist_exports.hasShapeProperties)(el) ? el.shapeStyle : void 0;
15249
15202
  const extrusionData = useMemo(
15250
15203
  () => build3DExtrusionData(shapeStyle3d?.shape3d, shapeStyle3d?.scene3d, fc, el.width, el.height),
15251
15204
  [shapeStyle3d?.shape3d, shapeStyle3d?.scene3d, fc, el.width, el.height]
@@ -16067,7 +16020,7 @@ function InlineTextEditor({
16067
16020
  seedRef.current = {
16068
16021
  initialText,
16069
16022
  hasRichSegments: Boolean(
16070
- hasTextProperties(element) && element.textSegments && element.textSegments.length > 0
16023
+ (0, dist_exports.hasTextProperties)(element) && element.textSegments && element.textSegments.length > 0
16071
16024
  )
16072
16025
  };
16073
16026
  }
@@ -16145,7 +16098,7 @@ function InlineTextEditor({
16145
16098
  transformOrigin: warpStyle?.transformOrigin || "center"
16146
16099
  };
16147
16100
  const nextInlineStyleValue = (property) => {
16148
- if (!hasTextProperties(element)) {
16101
+ if (!(0, dist_exports.hasTextProperties)(element)) {
16149
16102
  return true;
16150
16103
  }
16151
16104
  const result = getInlineEditorSelectionResult(element.textSegments);
@@ -16232,7 +16185,7 @@ function FailedToLoad() {
16232
16185
  var LazyModel3DScene = React17.lazy(
16233
16186
  async () => {
16234
16187
  try {
16235
- return await import('./Model3DScene-SJGIK2TB.mjs');
16188
+ return await import('./Model3DScene-EZDCI7TT.mjs');
16236
16189
  } catch {
16237
16190
  return { default: FailedToLoad };
16238
16191
  }
@@ -16313,7 +16266,7 @@ function Model3DRenderer({ element, width, height, interactive }) {
16313
16266
  const [threeAvailable, setThreeAvailable] = useState(null);
16314
16267
  useEffect(() => {
16315
16268
  let cancelled = false;
16316
- import('./three.module-ZSSMKKHW.mjs').then(() => {
16269
+ import('./three.module-2R4ADL7W.mjs').then(() => {
16317
16270
  if (!cancelled) {
16318
16271
  setThreeAvailable(true);
16319
16272
  }
@@ -16759,10 +16712,8 @@ function SmartArtEditableLayer({
16759
16712
  }
16760
16713
  );
16761
16714
  }
16762
-
16763
- // src/viewer/utils/smartart-helpers.tsx
16764
- function resolvePalette2(el) {
16765
- return el.type === "smartArt" ? resolvePalette(el.smartArtData) : DEFAULT_PALETTE2;
16715
+ function resolvePalette(el) {
16716
+ return el.type === "smartArt" ? resolvePalette$1(el.smartArtData) : SMARTART_DEFAULT_PALETTE;
16766
16717
  }
16767
16718
  function resolveStyle(el) {
16768
16719
  if (el.type !== "smartArt" || !el.smartArtData) {
@@ -16771,7 +16722,7 @@ function resolveStyle(el) {
16771
16722
  return el.smartArtData.style ?? "flat";
16772
16723
  }
16773
16724
  function resolveSmartArtDataPalette(data) {
16774
- return resolvePalette(data);
16725
+ return resolvePalette$1(data);
16775
16726
  }
16776
16727
  var LABEL_WIDTH_FRACTION = 0.82;
16777
16728
  function smartArtNodeGroupProps(nodeId, shadow, label) {
@@ -17151,7 +17102,7 @@ function SmartArtRendererImpl({
17151
17102
  }
17152
17103
  );
17153
17104
  }
17154
- const palette = resolvePalette2(element);
17105
+ const palette = resolvePalette(element);
17155
17106
  const style = resolveStyle(element);
17156
17107
  const a11y = buildSmartArtA11y(smartArtData);
17157
17108
  const nodeLabels = new Map(a11y.nodes.map((n) => [n.id, n.label]));
@@ -17160,7 +17111,7 @@ function SmartArtRendererImpl({
17160
17111
  if (!onUpdateElement || !shouldCommitSmartArtNodeText(smartArtData, nodeId, text)) {
17161
17112
  return;
17162
17113
  }
17163
- const updated = updateSmartArtNodeText(smartArtData, nodeId, text);
17114
+ const updated = (0, dist_exports.updateSmartArtNodeText)(smartArtData, nodeId, text);
17164
17115
  const box = { width: element.width, height: element.height };
17165
17116
  const reflowed = rebuildDrawingShapesIfCleared(
17166
17117
  updated,
@@ -17176,7 +17127,7 @@ function SmartArtRendererImpl({
17176
17127
  if (!onUpdateElement) {
17177
17128
  return;
17178
17129
  }
17179
- const next = setSmartArtNodeStyle(smartArtData, nodeId, { fillColor: fill });
17130
+ const next = (0, dist_exports.setSmartArtNodeStyle)(smartArtData, nodeId, { fillColor: fill });
17180
17131
  if (next !== smartArtData) {
17181
17132
  const box = { width: element.width, height: element.height };
17182
17133
  const reflowed = rebuildDrawingShapesIfCleared(
@@ -17337,7 +17288,7 @@ function SmartArt3DView({
17337
17288
  smartArtData,
17338
17289
  canEdit: true,
17339
17290
  onCommitNodeText: handleCommitNodeText,
17340
- palette: resolvePalette(smartArtData),
17291
+ palette: resolvePalette$1(smartArtData),
17341
17292
  onChangeNodeStyle: handleChangeNodeStyle,
17342
17293
  measureNodeRect: measureSvgViewportRect,
17343
17294
  children: /* @__PURE__ */ jsx("div", { className: "absolute inset-0 opacity-0", children: /* @__PURE__ */ jsx(SmartArtRenderer, { element, canEdit: false }) })
@@ -17365,8 +17316,8 @@ function SmartArtElement({
17365
17316
  }
17366
17317
  );
17367
17318
  }
17368
- function groupIntoParagraphs2(element, fieldContext) {
17369
- return groupIntoParagraphs(
17319
+ function groupIntoParagraphs(element, fieldContext) {
17320
+ return groupIntoParagraphs$1(
17370
17321
  element,
17371
17322
  fieldContext ? (seg) => {
17372
17323
  if (seg.fieldType) {
@@ -17411,7 +17362,7 @@ function getSegmentTspanProps(segment, element, fallbackColor) {
17411
17362
  fontSize: s.fontSize ?? element.textStyle?.fontSize ?? DEFAULT_TEXT_FONT_SIZE,
17412
17363
  fontWeight: s.bold ? 700 : 400,
17413
17364
  fontStyle: s.italic ? "italic" : void 0,
17414
- fontFamily: s.fontFamily || element.textStyle?.fontFamily ? getSubstituteFontFamily(s.fontFamily || element.textStyle?.fontFamily || "") : DEFAULT_FONT_FAMILY,
17365
+ fontFamily: s.fontFamily || element.textStyle?.fontFamily ? (0, dist_exports.getSubstituteFontFamily)(s.fontFamily || element.textStyle?.fontFamily || "") : DEFAULT_FONT_FAMILY,
17415
17366
  textDecoration: decos.length > 0 ? decos.join(" ") : void 0
17416
17367
  };
17417
17368
  }
@@ -17419,7 +17370,7 @@ function resolveSegmentFont(segment, element) {
17419
17370
  const s = segment.style || {};
17420
17371
  const family = s.fontFamily || element.textStyle?.fontFamily;
17421
17372
  return {
17422
- fontFamily: family ? getSubstituteFontFamily(family) : DEFAULT_FONT_FAMILY,
17373
+ fontFamily: family ? (0, dist_exports.getSubstituteFontFamily)(family) : DEFAULT_FONT_FAMILY,
17423
17374
  fontSizePx: s.fontSize ?? element.textStyle?.fontSize ?? DEFAULT_TEXT_FONT_SIZE,
17424
17375
  bold: s.bold ?? element.textStyle?.bold,
17425
17376
  italic: s.italic ?? element.textStyle?.italic
@@ -17486,7 +17437,7 @@ function WarpedText({
17486
17437
  fallbackColor,
17487
17438
  fieldContext
17488
17439
  }) {
17489
- if (!hasTextProperties(element)) {
17440
+ if (!(0, dist_exports.hasTextProperties)(element)) {
17490
17441
  return null;
17491
17442
  }
17492
17443
  const textEl = element;
@@ -17494,7 +17445,7 @@ function WarpedText({
17494
17445
  if (!preset || !shouldUseSvgWarp(preset)) {
17495
17446
  return null;
17496
17447
  }
17497
- const paragraphs = groupIntoParagraphs2(textEl, fieldContext);
17448
+ const paragraphs = groupIntoParagraphs(textEl, fieldContext);
17498
17449
  if (paragraphs.length === 0) {
17499
17450
  return null;
17500
17451
  }
@@ -17505,7 +17456,7 @@ function WarpedText({
17505
17456
  const align = textEl.textStyle?.align ?? "center";
17506
17457
  const { startOffset, textAnchor } = getAlignmentProps(align);
17507
17458
  const baseFontSize = textEl.textStyle?.fontSize ?? DEFAULT_TEXT_FONT_SIZE;
17508
- const baseFontFamily = textEl.textStyle?.fontFamily ? getSubstituteFontFamily(textEl.textStyle.fontFamily) : DEFAULT_FONT_FAMILY;
17459
+ const baseFontFamily = textEl.textStyle?.fontFamily ? (0, dist_exports.getSubstituteFontFamily)(textEl.textStyle.fontFamily) : DEFAULT_FONT_FAMILY;
17509
17460
  const baseFill = normalizeHexColor(textEl.textStyle?.color, fallbackColor);
17510
17461
  if (hasGlyphEnvelope(preset)) {
17511
17462
  const perLine = buildGlyphEnvelopeBlock(
@@ -17673,12 +17624,12 @@ function renderTextElementBody(options) {
17673
17624
  placeholderPromptMode = "present",
17674
17625
  slideElements
17675
17626
  } = options;
17676
- const isLinkedTextBox2 = isLinkedTextBox(el);
17627
+ const isLinkedTextBox$1 = isLinkedTextBox(el);
17677
17628
  const linkedSegments = getOverflowSegments(el, slideElements);
17678
17629
  const useSvgWarp = shouldUseSvgWarp(
17679
- hasTextProperties(el) ? el.textStyle?.textWarpPreset : void 0
17630
+ (0, dist_exports.hasTextProperties)(el) ? el.textStyle?.textWarpPreset : void 0
17680
17631
  );
17681
- const scene3dStyle = hasTextProperties(el) ? buildTextBody3DSceneStyle(el.textStyle, { width: el.width, height: el.height }) : void 0;
17632
+ const scene3dStyle = (0, dist_exports.hasTextProperties)(el) ? buildTextBody3DSceneStyle(el.textStyle, { width: el.width, height: el.height }) : void 0;
17682
17633
  const rotationTransform = getTextBodyRotationTransform(el);
17683
17634
  const composedTransform = [rotationTransform, getTextCompensationTransform(el), scene3dStyle?.transform].filter(Boolean).join(" ") || void 0;
17684
17635
  const transformStyle = {
@@ -17699,7 +17650,7 @@ function renderTextElementBody(options) {
17699
17650
  // those presets, since the homography path above never sets it.
17700
17651
  ...scene3dStyle?.perspectiveOrigin ? { perspectiveOrigin: scene3dStyle.perspectiveOrigin } : {},
17701
17652
  ...scene3dStyle?.transformStyle ? { transformStyle: scene3dStyle.transformStyle } : {},
17702
- ...isLinkedTextBox2 ? { overflow: "hidden" } : {}
17653
+ ...isLinkedTextBox$1 ? { overflow: "hidden" } : {}
17703
17654
  };
17704
17655
  const shapeType = "shapeType" in el ? el.shapeType : void 0;
17705
17656
  const placeholderPrompt = placeholderPromptDescriptor(el, placeholderPromptMode);
@@ -18144,7 +18095,7 @@ function renderBody(options) {
18144
18095
  onPlayStateChange: handleMediaPlayStateChange
18145
18096
  });
18146
18097
  }
18147
- if (doInk && isInkElement(el)) {
18098
+ if (doInk && (0, dist_exports.isInkElement)(el)) {
18148
18099
  return renderInk(el, {
18149
18100
  replay: isPresentationPassive,
18150
18101
  pressureSensitive: true
@@ -18178,8 +18129,6 @@ function renderBody(options) {
18178
18129
  }
18179
18130
  return renderTextElementBody(options);
18180
18131
  }
18181
-
18182
- // src/viewer/components/static-element-renderer-utils.ts
18183
18132
  function defaultTextColorForFill(fillColor) {
18184
18133
  const hex = String(fillColor ?? "").replace(/^#/u, "");
18185
18134
  if (!/^[0-9a-f]{6}$/iu.test(hex)) {
@@ -18190,7 +18139,7 @@ function defaultTextColorForFill(fillColor) {
18190
18139
  return luminance > 0.179 ? DEFAULT_TEXT_COLOR : "#ffffff";
18191
18140
  }
18192
18141
  function getStaticElementVisualState(element, parentGroupFill) {
18193
- const style = hasShapeProperties(element) ? element.shapeStyle : void 0;
18142
+ const style = (0, dist_exports.hasShapeProperties)(element) ? element.shapeStyle : void 0;
18194
18143
  const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
18195
18144
  const fill = normalizeHexColor(style?.fillColor, DEFAULT_FILL_COLOR);
18196
18145
  const strokeWidth = paintedStrokeWidth(style);
@@ -18210,8 +18159,8 @@ function getStaticElementVisualState(element, parentGroupFill) {
18210
18159
  element.type === "shape" && hasFill ? defaultTextColorForFill(fill) : DEFAULT_TEXT_COLOR
18211
18160
  );
18212
18161
  const isImage = element.type === "picture" || element.type === "image";
18213
- const letsTextOverflow = hasTextProperties(element) && element.textStyle?.autoFitMode === "shrink" && (element.type === "text" || element.locks?.txBox === true);
18214
- const shapeType = hasShapeProperties(element) ? element.shapeType : void 0;
18162
+ const letsTextOverflow = (0, dist_exports.hasTextProperties)(element) && element.textStyle?.autoFitMode === "shrink" && (element.type === "text" || element.locks?.txBox === true);
18163
+ const shapeType = (0, dist_exports.hasShapeProperties)(element) ? element.shapeType : void 0;
18215
18164
  const isCallout = isWedgeCalloutPresetShape(shapeType) || String(shapeType ?? "").toLowerCase().includes("callout");
18216
18165
  return {
18217
18166
  hasFill,
@@ -18228,7 +18177,7 @@ function getStaticElementVisualState(element, parentGroupFill) {
18228
18177
  function getStaticElementInteractionState(element, hasActionHandler, exposeElementId) {
18229
18178
  const action = element.actionClick;
18230
18179
  const isActionable = Boolean(action && hasActionHandler);
18231
- const contractRole = exposeElementId ? getAriaRole(element, { actionable: isElementActionable(element) }) : isActionable ? "button" : void 0;
18180
+ const contractRole = exposeElementId ? getAriaRole$1(element, { actionable: isElementActionable(element) }) : isActionable ? "button" : void 0;
18232
18181
  return { action, isActionable, contractRole };
18233
18182
  }
18234
18183
  function getStaticElementWrapperClassName(element, visual, positioned, isActionable) {
@@ -18290,8 +18239,8 @@ function StaticElementRendererImpl({
18290
18239
  isActionable
18291
18240
  ),
18292
18241
  role: contractRole,
18293
- "aria-label": exposeElementId ? getAriaLabel(element) : void 0,
18294
- "aria-roledescription": exposeElementId ? getAriaRoleDescription(element) : void 0,
18242
+ "aria-label": exposeElementId ? getAriaLabel$1(element) : void 0,
18243
+ "aria-roledescription": exposeElementId ? getAriaRoleDescription$1(element) : void 0,
18295
18244
  tabIndex: isActionable ? 0 : void 0,
18296
18245
  title: isActionable ? action?.tooltip || action?.url || void 0 : void 0,
18297
18246
  onClick: isActionable ? (event) => {
@@ -18356,7 +18305,7 @@ function StaticElementRendererImpl({
18356
18305
  isEditing: false,
18357
18306
  editText: "",
18358
18307
  spellCheck: false,
18359
- txtSE: hasTextProperties(element) ? element.textStyle : void 0,
18308
+ txtSE: (0, dist_exports.hasTextProperties)(element) ? element.textStyle : void 0,
18360
18309
  txtS: textStyle,
18361
18310
  vecShape: renderVectorShape(
18362
18311
  element,