pptx-react-viewer 4.33.2 → 4.35.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 (85) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/{AiChatPanel-CYD46SEM.mjs → AiChatPanel-CX74JT77.mjs} +1 -1
  3. package/dist/AiChatPanel-CX74JT77.mjs.br +0 -0
  4. package/dist/AiChatPanel-CX74JT77.mjs.gz +0 -0
  5. package/dist/{AiChatPanel-ONHWZEPV.js → AiChatPanel-PVRSPIAY.js} +9 -9
  6. package/dist/AiChatPanel-PVRSPIAY.js.br +0 -0
  7. package/dist/AiChatPanel-PVRSPIAY.js.gz +0 -0
  8. package/dist/{chunk-7DGKSEIU.js → chunk-4MGJUBY7.js} +2 -1
  9. package/dist/chunk-4MGJUBY7.js.br +0 -0
  10. package/dist/chunk-4MGJUBY7.js.gz +0 -0
  11. package/dist/{chunk-2OIJUZD5.mjs → chunk-6SRRGOV2.mjs} +85 -36
  12. package/dist/chunk-6SRRGOV2.mjs.br +0 -0
  13. package/dist/chunk-6SRRGOV2.mjs.gz +0 -0
  14. package/dist/{chunk-TVSTM5J5.js → chunk-EL2KJ7PU.js} +328 -279
  15. package/dist/chunk-EL2KJ7PU.js.br +0 -0
  16. package/dist/chunk-EL2KJ7PU.js.gz +0 -0
  17. package/dist/{chunk-P3ANCQX6.mjs → chunk-GKUPYPD3.mjs} +237 -96
  18. package/dist/chunk-GKUPYPD3.mjs.br +0 -0
  19. package/dist/chunk-GKUPYPD3.mjs.gz +0 -0
  20. package/dist/{chunk-DJ32R6VM.js → chunk-KYMELPA6.js} +1502 -1361
  21. package/dist/chunk-KYMELPA6.js.br +0 -0
  22. package/dist/chunk-KYMELPA6.js.gz +0 -0
  23. package/dist/{chunk-K4UXDQZ6.mjs → chunk-SMPZ552M.mjs} +2 -1
  24. package/dist/chunk-SMPZ552M.mjs.br +0 -0
  25. package/dist/chunk-SMPZ552M.mjs.gz +0 -0
  26. package/dist/i18n/de.cjs +10 -0
  27. package/dist/i18n/de.cjs.br +0 -0
  28. package/dist/i18n/de.cjs.gz +0 -0
  29. package/dist/i18n/de.mjs +10 -0
  30. package/dist/i18n/de.mjs.br +0 -0
  31. package/dist/i18n/de.mjs.gz +0 -0
  32. package/dist/i18n/es.cjs +10 -0
  33. package/dist/i18n/es.cjs.br +0 -0
  34. package/dist/i18n/es.cjs.gz +0 -0
  35. package/dist/i18n/es.mjs +10 -0
  36. package/dist/i18n/es.mjs.br +0 -0
  37. package/dist/i18n/es.mjs.gz +0 -0
  38. package/dist/i18n/fr.cjs +10 -0
  39. package/dist/i18n/fr.cjs.br +0 -0
  40. package/dist/i18n/fr.cjs.gz +0 -0
  41. package/dist/i18n/fr.mjs +10 -0
  42. package/dist/i18n/fr.mjs.br +0 -0
  43. package/dist/i18n/fr.mjs.gz +0 -0
  44. package/dist/i18n/zh-CN.cjs +10 -0
  45. package/dist/i18n/zh-CN.cjs.br +0 -0
  46. package/dist/i18n/zh-CN.cjs.gz +0 -0
  47. package/dist/i18n/zh-CN.mjs +10 -0
  48. package/dist/i18n/zh-CN.mjs.br +0 -0
  49. package/dist/i18n/zh-CN.mjs.gz +0 -0
  50. package/dist/index.js +24 -24
  51. package/dist/index.js.br +0 -0
  52. package/dist/index.js.gz +0 -0
  53. package/dist/index.mjs +3 -3
  54. package/dist/index.mjs.br +0 -0
  55. package/dist/index.mjs.gz +0 -0
  56. package/dist/internals.d.ts +12 -2
  57. package/dist/internals.js +81 -81
  58. package/dist/internals.js.br +0 -0
  59. package/dist/internals.js.gz +0 -0
  60. package/dist/internals.mjs +2 -2
  61. package/dist/internals.mjs.br +0 -0
  62. package/dist/internals.mjs.gz +0 -0
  63. package/dist/viewer/index.js +19 -19
  64. package/dist/viewer/index.js.br +0 -0
  65. package/dist/viewer/index.js.gz +0 -0
  66. package/dist/viewer/index.mjs +3 -3
  67. package/dist/viewer/index.mjs.br +0 -0
  68. package/dist/viewer/index.mjs.gz +0 -0
  69. package/package.json +3 -3
  70. package/dist/AiChatPanel-CYD46SEM.mjs.br +0 -0
  71. package/dist/AiChatPanel-CYD46SEM.mjs.gz +0 -0
  72. package/dist/AiChatPanel-ONHWZEPV.js.br +0 -0
  73. package/dist/AiChatPanel-ONHWZEPV.js.gz +0 -0
  74. package/dist/chunk-2OIJUZD5.mjs.br +0 -0
  75. package/dist/chunk-2OIJUZD5.mjs.gz +0 -0
  76. package/dist/chunk-7DGKSEIU.js.br +0 -0
  77. package/dist/chunk-7DGKSEIU.js.gz +0 -0
  78. package/dist/chunk-DJ32R6VM.js.br +0 -0
  79. package/dist/chunk-DJ32R6VM.js.gz +0 -0
  80. package/dist/chunk-K4UXDQZ6.mjs.br +0 -0
  81. package/dist/chunk-K4UXDQZ6.mjs.gz +0 -0
  82. package/dist/chunk-P3ANCQX6.mjs.br +0 -0
  83. package/dist/chunk-P3ANCQX6.mjs.gz +0 -0
  84. package/dist/chunk-TVSTM5J5.js.br +0 -0
  85. package/dist/chunk-TVSTM5J5.js.gz +0 -0
@@ -1,8 +1,8 @@
1
- import { useViewerOptions, useReadOnlyRecommendationState, useCompatibilityToastsState, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useViewPreferencesSync, useLayoutSwitching, Rendering3DFlagsContext, CollaborationProvider, useCollaboration, useCollaborationDocumentSync, useFollowMode, useBroadcastFollower, SlideBackgroundImageLayer, StaticElementRenderer, safePrompt, scopeLayoutOptionsToActiveSlide, ChartPartSelectionProvider, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, ViewerOptionsStoreContext, ViewerOptionsContext, useViewerOptionsContext, useVirtualizedSlides, useSwipeNavigation, PresentationTransitionOverlay, RemoteSelectionOverlay, CollaborationCursorOverlay, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, ElementRenderer, InlineCollaborationContext, SmartArtRenderer, downloadBlob, playAnimationSound, ResizeHandles, imgSrc, renderStrokeView, useChartPartSelection, DUOTONE_PRESETS, getSlideTransitionAnimations, SLIDE_TRANSITION_KEYFRAMES, resolveSmartArtDataPalette } from './chunk-2OIJUZD5.mjs';
2
- import { ANIMATION_PRESET_OPTIONS, dist_exports, cn, SLIDE_NAV_THUMBNAIL_WIDTH, SLIDE_TRANSITION_OPTIONS, normalizeHexColor, hasCopyableFormat, DEFAULT_SECTION_GROUP_ID, safeOpenUrl, isPpactionUrl, parsePpactionUrl, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, TOOLBAR_SECTIONS, isUrlSafe, computeHandoutLayout, getPrintableArea, generateNoteLineCount, UNGROUPED_SECTION_ID, getShapeAdjustmentHandleDescriptors, isConnectorOrLineElement, GRID_SIZE, getElementTransformWithoutRotation, getElementTransform, MIN_ELEMENT_SIZE, getElementLabel, TABLE_STYLE_PRESETS, SHAPE_PRESETS, sanitizeGradientStops, formatCommentTimestamp, clampCropValue, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, DEFAULT_FILL_COLOR, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, SHAPE_QUICK_STYLES, getPatternSvg, DEFAULT_STROKE_COLOR, STROKE_DASH_OPTIONS, openNativeEyeDropper } from './chunk-K4UXDQZ6.mjs';
3
- import { EMPTY_RESOLVED_CUSTOMIZATION, ANIMATION_DIRECTION_LABEL_KEYS, compileEquationTemplateMathMl, resolveViewerRootOptions, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, isFeatureEnabled, isDialogAvailable, resolveAutosaveActivation, viewerOptionsToPreferences, applyPreferenceToOptions, resolveHistoryDepth, attachViewerHyperlinks, shouldConfirmExternalHyperlink, applyAutoCorrect, resolveImageResolutionScale, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, isPanelVisible, shouldShowAutosaveRecoveryPrompt, resolveOptionRootClasses, RIBBON_SCOPE_ATTR, resolve3DRenderingFlags, resolveSlideSizeSelection, RULER_THICKNESS, RULER_FONT_SIZE, editorThumbnailHeight, buildPreviewElements, deriveSlideFieldContext, deviceStrokeStageStyle, hiddenSlideCue, EDITOR_THUMBNAIL_WIDTH, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, visibleTemplateElements, themeToCssVars, createCustomizationController, resolveEffectiveHiddenActions, listAutosaveSnapshots, resolveExpiredAutosaveSnapshots, deleteAutosaveSnapshot, masterViewCrudActions, applyMasterViewCrudAction, masterViewCrudFailureKey, EDITOR_CHROME_CSS, ribbonCustomizationCss, applyMotionPathPreset, resetSlideLayoutPath, DEFAULT_INSERT_CHART_KIND, templateSchemeFromTheme, createBackstagePresentation, playFeedbackSound, shouldDiscardAutosaveOnSuccessfulSave, setMasterViewBackgroundColor, canUseClipboard, runProgramNoticeStackStyle, printPropertiesFrameSlides, printPropertiesSlidesPerPage, PASTE_SPECIAL_OPTIONS, findCanvasElementNode, getDensePanelTouchTargetPx, shouldStickyActionRow, customizeOptionsTabs, VIEWER_OPTIONS_TABS, isOptionsPageVisible, DEFAULT_QUICK_ACCESS_COMMAND_IDS, isHeaderFooterDateTextVisible, isHeaderFooterHeaderTextVisible, isHeaderFooterFooterTextVisible, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, getSlideBackgroundStyle, pushRecentColor, mruColorsPatch, shouldClearAutosaveCacheOnClose, canCropElement, cropSessionChanged, cancelCropUpdate, startCropSession, homeLaunchers, attachRibbonOverflow, editorThumbnailWidth, masterViewBackgroundColor, buildFieldSubstitutionContext, resolvePresentationAction, isPresentationAdvanceClick, toggleBlackboard, PRESENT_TOOLBAR_CLASSES, resolveEditPointsAvailability, isCurrentLayout, observeElementHeight, EXPANDED_MAX_HEIGHT, resolveStatusBarSave, statusBarViewMode, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, clampPercent, resolveDefaultPrintSettings, HANDOUT_OPTIONS, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS, resolveViewerAddinRows, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, CUSTOM_FONT_ACCEPT, activateModalFocus, buildCollaborationShareUrl, buildActiveSessionUsers, SORTER_MIN_ZOOM, SORTER_ZOOM_STEP, SORTER_MAX_ZOOM, canGoPrevious, formatSlideCounter, READING_VIEW_COUNTER_ATTR, canGoNext, READING_VIEW_ATTR, OUTLINE_LEVEL_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_ROW_ATTR, OUTLINE_VIEW_ATTR, mobileElapsedSince, nextPresentedSlide, presenterPrevDisabled, presenterNextDisabled, formatMobileElapsed, mobileSlideCounter, presenterPaneAdvancesOnClick, presenterTimerProgress, PRESENTER_CONSOLE_CLASSES, formatElapsed, cropModeKeyAction, buildTitleBarState, resolveScreenTip, visibleContextualTabs, resolveActiveRibbonTab, visibleRibbonAddIns, RIBBON_ADD_IN_TAB_ATTR, contextualTabLabelKey, RIBBON_CONTEXTUAL_TAB_ATTR, buildTabRowActionsState, TAB_ROW_ACTION_CLASSES, tabRowActionsAttributes, customizeBackstageNav, BACKSTAGE_NAV, listBackstageRecentFiles, BACKSTAGE_BACK_CLASSES, BACKSTAGE_NAV_CLASSES, FREEFORM_TOOL_IDS, isDrawingToolVisible, textFontSizePtToPx, withHomeGalleries, drawingHomeControls, homeGalleryControls, homeGalleryApply, shapeOutlineChange, shapeFillChange, editingHomeControls, arrangeHomeControls, arrangePainterHomeControls, arrangeAlignAction, DESIGN_RIBBON_GROUPS, DESIGN_RIBBON_COMMANDS, designCommandState, FIXED_TAB_GALLERIES, CONTEXTUAL_TAB_GROUPS, editorThumbnailStep, resolveSlidePaneClick, SLIDE_VIRTUALIZATION_THRESHOLD, buildSectionContextMenuEntries, buildSlidePaneContextMenuEntries, slidePaneViewItems, isEditPointsEnabled, PRESENTATION_HIT_TEST_CSS, PRESENTATION_STAGE_ATTRIBUTE, buildStrokePathD, cursorForTool, annotationOverlayZIndex, presentationInkPath, resolveNotesSchematicBodyFontSizePx, PRESENTER_NAVIGATOR_LABEL_KEYS, getPresentationContextMenuSections, CONTEXT_MENU_PRESENTATION_LAYER, presentationViewItems, subtitleRecognitionLanguage, subtitleSettingsFromOptions, getSpeechRecognitionCtor, mergeCaptionResults, customizeContextMenuEntries, buildContextMenuEntries, contextMenuViewItems, customizeCanvasContextMenuEntries, buildCanvasContextMenuEntries, buildLayoutPreviewGeometry, scaleSlidesForSizeChange, slideSizeToCanvasPx, resolveSelectionPaneRename, themeEditorLabels, resolveNotesSegments, defaultRichEnabled, segmentsToEditorHtml, DEBOUNCE_MS, createPlainNotesSegments, parseSegmentsFromRichEditor, segmentsToPlainText, getCurrentParagraphIndex, segmentsToParagraphs, paragraphsToSegments, MAX_INDENT_LEVEL, INDENT_PX as INDENT_PX$1, buildNotesPrintHtml, MIN_TOUCH_TARGET_PX, toggleSheet, SMARTART_PREVIEW_ELEMENT_HEIGHT, SMARTART_PREVIEW_ELEMENT_WIDTH, buildSmartArtPreviewElement, sanitizeMathMl, computeAllNotesPages, getNotesPrintableArea, clampOptionNumber, QUICK_ACCESS_COMMAND_CATALOG, registerCustomFont, createSlideSorterState, sorterSelectionIndexes, selectSorterSlide, applySorterAction, slideSorterPasteIndexes, sorterGridColumns, sorterMenuContext, buildSlideSorterContextMenuEntries, slideSorterContextMenuLabel, openReadingView, applyReadingViewCommand, createPresentationKeyBuffer, readingViewFitScale, READING_VIEW_STAGE_ATTR, buildOutline, applyOutlineEdit, mapOutlineKey, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, presenterConsoleAction, presenterConsoleViewState, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, customizeBackstageCards, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, clipboardHomeControls, slidesHomeControls, resolveDefaultFontFamily, textFontSizePxToPt, getInlineEditorSelectionResult, selectedParagraphBulletKind, elementBulletKind, selectionBulletKind, fontPickerHomeControls, fontHomeControls, nextToggleValue, RIBBON_GROUP_ATTR, paragraphHomeAlign, paragraphHomeControls, paragraphHomeAction, arrangeShapeHomeControls, strokeWidthOf, canSetStrokeWidth, canUngroupSelection, canGroupSelection, parseCropValue, buildRibbonGallery, readRibbonTransitionDraft, SLIDE_SHOW_COMMAND_GROUPS, RECORD_COMMAND_GROUPS, buildReviewRibbon, HELP_RIBBON_COMMANDS, galleryTextLabel, sectionAddAfterSlideIndex, masterViewPseudoSlide, PRESENTATION_ANIM_TRIGGER_ATTRIBUTE, parentSelection, slideSpaceElement, isGroupMember, motionPathFor, setMotionPath, shouldShowElementHandles, computeAnchoredPopupPosition, applyTableStyleDelete, applyTableStyleMapChange, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, SLIDE_TEMPLATES, getSelectionTextStyleFlags, TEXT_DECORATION_FLAGS, applyRibbonGalleryItem, ribbonTransitionsDraftPatch, ribbonTransitionUpdates, ribbonTransitionsSoundChange, ribbonTransitionStockSoundUrl, playSlideTransitionPreview, playAnimationRibbonPreview, SLIDE_SHOW_OPTIONS, createViewerOptionsStore, subtitleSettingsLabels, attachEditorImagePaste, authorConnectorBetweenSites, findEraserHitElementId, generateTicks, rulerDragToGuidePosition, resolveElementInteractivity, buildChartQuickActionsDescriptor, applyChartElementToggle, CHART_QUICK_ACTION_BUTTON_SIZE, applyChartStylePreset, hideChartSeries, restoreFilteredSeries, buildCropOverlay, CROP_HANDLE_ARIA_KEY, getActiveXControlOverlayView, buildCommentMarkers, COMMENT_MARKER_SIZE, collectConnectorSiteCandidates, getConnectorEndpointHandles, findConnectorSiteNear, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, canEditElementPoints, MERGE_SHAPES_MENU_ITEMS, hasMultipleSelectedTableCells, isElementLocked, mergeSlideTransition, slideBackgroundClearState, slideBackgroundClearPatch, effectiveDirection, TRIGGER_OPTIONS, effectiveTimingCurve, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, buildSlideTemplateContent, updateSubtitleSettings, buildFreeformShapeElement, buildLiveInkStrokeView, beginCropDrag, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, FreeformToolSession, attachOverlayKeyboard, EditPointsSession, EDIT_POINTS_STYLE, elementLockTogglePatch, buildTableDataGrid, getDenseGridLayoutPlan, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, applyTableStylePreset, tableStyleAssignmentUpdate, evenColumnWidths, redistributeColumnWidth, evenRowHeights, patchChartData, collapseChartTitleRunsForEdit, chartGridlinesState, chartGridlinesPatch, seriesSecondaryAxisPatch, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, setDataLabelsRangeCache, describeSmartArtBounds, canAddTopLevelNode, classifyExtraConnections, siblingIndex, siblingCount, canRemoveTopLevelNode, imageResetPatch, imageResetState, canInteractWithElement, buildOleObjectNamePatch, shouldShowAccessibilitySection, withFrameSlides, withSlidesPerPage, schemaLabel, THEME_COLOR_SLOT_LABEL_KEYS, SLIDE_SIZE_PRESETS, TRANSITION_ORIENTATION_TYPES, clampTransitionNumber, TRANSITION_SPEED_OPTIONS, TRANSITION_MORPH_OPTIONS, flattenTagCollections, resolveTemplateBackgroundRows, commentMentionQuery, matchCommentMentionAuthors, buildAnimationTimelineRows, clearMotionPath, setTrigger, setTriggerBookmark, getEffectSoundState, setEffectSound, setEffectStockSound, setAfterAnimation, setAfterAnimationColor, directionValuesFor, buildAnimationTimelineBars, motionPathPresetIdForPath, MOTION_PATH_FAMILIES, motionPathPresetsByFamily, motionPathPresetLabelKey, motionPathFamilyLabelKey, EFFECT_SOUND_CATALOGUE, listMediaBookmarkOptions, selectedBookmarkOptionValue, hasTiltData, toElementAxes, dragCropHandle, panCropImage, clientToSlidePoint, EDIT_POINTS_TARGET_ATTR, describeTableStyleEditor, TABLE_STYLE_EDITOR_PARTS, computeMergeCellRight, computeMergeCellDown, computeSplitCell, resolveDisplayedChartType, CHART_TYPE_OPTIONS, chartDataLabelsTogglePatch, BAR3D_SHAPE_OPTIONS, bar3DShapePatch, RADAR_STYLE_OPTIONS, radarStylePatch, SURFACE_WIREFRAME_OPTIONS, surfaceWireframePatch, isSeriesUsingSecondaryAxis, seriesColorClearState, listChartUserShapeRows, withChartUserShapeAdded, createDefaultChartUserShape, withChartUserShapeRowRemoved, withChartUserShapeRowTextUpdated, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSiblingAfter, removeEmptyNode, demote, promote, reorder, cropResetState, cropResetPatch, ARTISTIC_EFFECTS, mediaTrimEndSeconds, trimmedMediaDurationMs, mediaTrimEndAbsoluteMs, mediaTrimResetState, mediaTrimEndMsFromAbsoluteMs, mediaTrimResetPatch, buildOleEditDialogDescriptor, buildOleContentUpdatePatch, buildThemeColorSwatchGrid, themeColorSwatchRows, findSelectedThemeSwatch, themeSwatchCommit, getNonVisualDescriptionFields, resolveActionType, ELEMENT_ACTION_TYPE_OPTIONS, canCommitActionType, slideSizeFromPreset, withSlideSizeOrientation, TRANSITION_DIR_ARROWS, buildDirectionGrid, updateTagInCollections, deleteTagFromCollections, addTagToCollections, commentTextSegments, COMMENT_MENTION_CLASS, COMMENT_MENTION_ATTRIBUTE, insertCommentMention, reorderAnimationTimelineRows, applyAnimationTimelineOrder, getEffectSoundAsset, animationEffectLabel, overlayPointerInput, TABLE_STYLE_BORDER_SIDES, applyTableStyleFieldEdit, withCellStyle, LBL as LBL$1, SEL as SEL$1, FILL_MODE_OPTIONS as FILL_MODE_OPTIONS$1, SECTION_HEADING, NUM as NUM$1, getChartUserShapeGroupTransform, withChartUserShapeGroupChildAdded, createDefaultChartUserShapeGroupChild, withChartUserShapeRowUpdated, getChartUserShapeRowChartBox, withChartUserShapeRowFlipUpdated, withChartUserShapeRowRotationUpdated, withChartUserShapeRowChartBoxUpdated, smartArtLayoutSwitchPatch, rebuildDrawingShapesIfCleared, mediaTrimEndMsFromSeconds, validateMediaTrimRange, quickStyleSwatchCss, OFFICE_COLOR_SWATCHES, PATTERN_PRESET_OPTIONS as PATTERN_PRESET_OPTIONS$1, COMPOUND_LINE_OPTIONS as COMPOUND_LINE_OPTIONS$1, LINE_JOIN_OPTIONS as LINE_JOIN_OPTIONS$1, LINE_CAP_OPTIONS as LINE_CAP_OPTIONS$1, TEXT_WARP_PRESETS, warpPreviewPath, text3dPtToEmu, text3dEmuToPt, MATERIAL_PRESETS, toSlideIndex, TABLE_STYLE_BORDER_SIDE_LABEL_KEYS, TABLE_STYLE_DASH_PRESETS, GRADIENT_TYPE_OPTIONS as GRADIENT_TYPE_OPTIONS$1, PATTERN_OPTIONS, FILL_PATTERN_LABEL_KEYS, toggleText3dExtrusion, BEVEL_PRESETS, cropFit, cropFill, cropToAspectRatio } from 'ooxml-ui/pptx';
1
+ import { useViewerOptions, useReadOnlyRecommendationState, useCompatibilityToastsState, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useViewPreferencesSync, useLayoutSwitching, Rendering3DFlagsContext, CollaborationProvider, useCollaboration, useCollaborationDocumentSync, useFollowMode, useBroadcastFollower, SlideBackgroundImageLayer, StaticElementRenderer, safePrompt, scopeLayoutOptionsToActiveSlide, ChartPartSelectionProvider, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, ViewerOptionsStoreContext, ViewerOptionsContext, useViewerOptionsContext, useVirtualizedSlides, useSwipeNavigation, PresentationTransitionOverlay, RemoteSelectionOverlay, CollaborationCursorOverlay, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, ElementRenderer, InlineCollaborationContext, SmartArtRenderer, downloadBlob, playAnimationSound, ResizeHandles, imgSrc, renderStrokeView, useChartPartSelection, DUOTONE_PRESETS, getSlideTransitionAnimations, SLIDE_TRANSITION_KEYFRAMES, resolveSmartArtDataPalette } from './chunk-6SRRGOV2.mjs';
2
+ import { ANIMATION_PRESET_OPTIONS, dist_exports, cn, SLIDE_NAV_THUMBNAIL_WIDTH, SLIDE_TRANSITION_OPTIONS, normalizeHexColor, hasCopyableFormat, DEFAULT_SECTION_GROUP_ID, safeOpenUrl, isPpactionUrl, parsePpactionUrl, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, TOOLBAR_SECTIONS, isUrlSafe, computeHandoutLayout, getPrintableArea, generateNoteLineCount, UNGROUPED_SECTION_ID, getShapeAdjustmentHandleDescriptors, isConnectorOrLineElement, GRID_SIZE, getElementTransformWithoutRotation, getElementTransform, MIN_ELEMENT_SIZE, getElementLabel, TABLE_STYLE_PRESETS, SHAPE_PRESETS, sanitizeGradientStops, formatCommentTimestamp, clampCropValue, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, DEFAULT_FILL_COLOR, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, SHAPE_QUICK_STYLES, getPatternSvg, DEFAULT_STROKE_COLOR, STROKE_DASH_OPTIONS, openNativeEyeDropper } from './chunk-SMPZ552M.mjs';
3
+ import { EMPTY_RESOLVED_CUSTOMIZATION, ANIMATION_DIRECTION_LABEL_KEYS, compileEquationTemplateMathMl, resolveViewerRootOptions, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, isFeatureEnabled, isDialogAvailable, resolveAutosaveActivation, viewerOptionsToPreferences, applyPreferenceToOptions, resolveHistoryDepth, attachViewerHyperlinks, shouldConfirmExternalHyperlink, applyAutoCorrect, resolveImageResolutionScale, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, createSlidePackageClipboard, isPanelVisible, shouldShowAutosaveRecoveryPrompt, resolveOptionRootClasses, RIBBON_SCOPE_ATTR, resolve3DRenderingFlags, resolveSlideSizeSelection, RULER_THICKNESS, RULER_FONT_SIZE, editorThumbnailHeight, buildPreviewElements, deriveSlideFieldContext, deviceStrokeStageStyle, hiddenSlideCue, EDITOR_THUMBNAIL_WIDTH, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, visibleTemplateElements, themeToCssVars, createCustomizationController, resolveEffectiveHiddenActions, listAutosaveSnapshots, resolveExpiredAutosaveSnapshots, deleteAutosaveSnapshot, masterViewCrudActions, applyMasterViewCrudAction, masterViewCrudFailureKey, EDITOR_CHROME_CSS, ribbonCustomizationCss, applyMotionPathPreset, resetSlideLayoutPath, DEFAULT_INSERT_CHART_KIND, templateSchemeFromTheme, createBackstagePresentation, playFeedbackSound, shouldDiscardAutosaveOnSuccessfulSave, buildFieldSubstitutionContext, setMasterViewBackgroundColor, canUseClipboard, runProgramNoticeStackStyle, printPropertiesFrameSlides, printPropertiesSlidesPerPage, PASTE_SPECIAL_OPTIONS, findCanvasElementNode, getDensePanelTouchTargetPx, shouldStickyActionRow, customizeOptionsTabs, VIEWER_OPTIONS_TABS, isOptionsPageVisible, DEFAULT_QUICK_ACCESS_COMMAND_IDS, isHeaderFooterDateTextVisible, isHeaderFooterHeaderTextVisible, isHeaderFooterFooterTextVisible, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, getSlideBackgroundStyle, pushRecentColor, mruColorsPatch, shouldClearAutosaveCacheOnClose, canCropElement, cropSessionChanged, cancelCropUpdate, startCropSession, homeLaunchers, attachRibbonOverflow, editorThumbnailWidth, masterViewBackgroundColor, resolvePresentationAction, isPresentationAdvanceClick, toggleBlackboard, PRESENT_TOOLBAR_CLASSES, resolveEditPointsAvailability, isCurrentLayout, observeElementHeight, EXPANDED_MAX_HEIGHT, resolveStatusBarSave, statusBarViewMode, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, clampPercent, resolveDefaultPrintSettings, HANDOUT_OPTIONS, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS, resolveViewerAddinRows, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, CUSTOM_FONT_ACCEPT, activateModalFocus, buildCollaborationShareUrl, buildActiveSessionUsers, slideClipboardLabels, sorterPasteInsertAt, SORTER_MIN_ZOOM, SORTER_ZOOM_STEP, SORTER_MAX_ZOOM, canGoPrevious, formatSlideCounter, READING_VIEW_COUNTER_ATTR, canGoNext, READING_VIEW_ATTR, OUTLINE_LEVEL_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_ROW_ATTR, OUTLINE_VIEW_ATTR, mobileElapsedSince, nextPresentedSlide, presenterPrevDisabled, presenterNextDisabled, formatMobileElapsed, mobileSlideCounter, presenterPaneAdvancesOnClick, presenterTimerProgress, PRESENTER_CONSOLE_CLASSES, formatElapsed, cropModeKeyAction, buildTitleBarState, resolveScreenTip, visibleContextualTabs, resolveActiveRibbonTab, visibleRibbonAddIns, RIBBON_ADD_IN_TAB_ATTR, contextualTabLabelKey, RIBBON_CONTEXTUAL_TAB_ATTR, buildTabRowActionsState, TAB_ROW_ACTION_CLASSES, tabRowActionsAttributes, customizeBackstageNav, BACKSTAGE_NAV, listBackstageRecentFiles, BACKSTAGE_BACK_CLASSES, BACKSTAGE_NAV_CLASSES, FREEFORM_TOOL_IDS, isDrawingToolVisible, textFontSizePtToPx, withHomeGalleries, drawingHomeControls, homeGalleryControls, homeGalleryApply, shapeOutlineChange, shapeFillChange, editingHomeControls, arrangeHomeControls, arrangePainterHomeControls, arrangeAlignAction, DESIGN_RIBBON_GROUPS, DESIGN_RIBBON_COMMANDS, designCommandState, FIXED_TAB_GALLERIES, CONTEXTUAL_TAB_GROUPS, editorThumbnailStep, resolveSlidePaneClick, SLIDE_VIRTUALIZATION_THRESHOLD, buildSectionContextMenuEntries, buildSlidePaneContextMenuEntries, slidePaneViewItems, isEditPointsEnabled, findReplacementAvailability, PRESENTATION_HIT_TEST_CSS, PRESENTATION_STAGE_ATTRIBUTE, buildStrokePathD, cursorForTool, annotationOverlayZIndex, presentationInkPath, resolveNotesSchematicBodyFontSizePx, PRESENTER_NAVIGATOR_LABEL_KEYS, getPresentationContextMenuSections, CONTEXT_MENU_PRESENTATION_LAYER, presentationViewItems, subtitleRecognitionLanguage, subtitleSettingsFromOptions, getSpeechRecognitionCtor, mergeCaptionResults, customizeContextMenuEntries, buildContextMenuEntries, contextMenuViewItems, customizeCanvasContextMenuEntries, buildCanvasContextMenuEntries, buildLayoutPreviewGeometry, scaleSlidesForSizeChange, slideSizeToCanvasPx, resolveSelectionPaneRename, themeEditorLabels, resolveNotesSegments, defaultRichEnabled, segmentsToEditorHtml, DEBOUNCE_MS, createPlainNotesSegments, parseSegmentsFromRichEditor, segmentsToPlainText, getCurrentParagraphIndex, segmentsToParagraphs, paragraphsToSegments, MAX_INDENT_LEVEL, INDENT_PX as INDENT_PX$1, buildNotesPrintHtml, MIN_TOUCH_TARGET_PX, toggleSheet, SMARTART_PREVIEW_ELEMENT_HEIGHT, SMARTART_PREVIEW_ELEMENT_WIDTH, buildSmartArtPreviewElement, sanitizeMathMl, computeAllNotesPages, getNotesPrintableArea, clampOptionNumber, QUICK_ACCESS_COMMAND_CATALOG, registerCustomFont, createSlideSorterState, sorterSelectionIndexes, selectSorterSlide, applySorterAction, sorterGridColumns, sorterMenuContext, buildSlideSorterContextMenuEntries, slideSorterContextMenuLabel, openReadingView, applyReadingViewCommand, createPresentationKeyBuffer, readingViewFitScale, READING_VIEW_STAGE_ATTR, buildOutline, applyOutlineEdit, mapOutlineKey, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, presenterConsoleAction, presenterConsoleViewState, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, customizeBackstageCards, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, clipboardHomeControls, slidesHomeControls, resolveDefaultFontFamily, textFontSizePxToPt, getInlineEditorSelectionResult, selectedParagraphBulletKind, elementBulletKind, selectionBulletKind, fontPickerHomeControls, fontHomeControls, nextToggleValue, RIBBON_GROUP_ATTR, paragraphHomeAlign, paragraphHomeControls, paragraphHomeAction, arrangeShapeHomeControls, strokeWidthOf, canSetStrokeWidth, canUngroupSelection, canGroupSelection, buildRibbonGallery, readRibbonTransitionDraft, SLIDE_SHOW_COMMAND_GROUPS, RECORD_COMMAND_GROUPS, buildReviewRibbon, HELP_RIBBON_COMMANDS, galleryTextLabel, pictureSizeHomeControls, sectionAddAfterSlideIndex, masterViewPseudoSlide, PRESENTATION_ANIM_TRIGGER_ATTRIBUTE, parentSelection, slideSpaceElement, isGroupMember, motionPathFor, setMotionPath, shouldShowElementHandles, computeAnchoredPopupPosition, applyTableStyleDelete, applyTableStyleMapChange, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, SLIDE_TEMPLATES, getSelectionTextStyleFlags, TEXT_DECORATION_FLAGS, dispatchCropRequest, applyRibbonGalleryItem, ribbonTransitionsDraftPatch, ribbonTransitionUpdates, ribbonTransitionsSoundChange, ribbonTransitionStockSoundUrl, playSlideTransitionPreview, playAnimationRibbonPreview, SLIDE_SHOW_OPTIONS, createViewerOptionsStore, subtitleSettingsLabels, attachEditorImagePaste, authorConnectorBetweenSites, findEraserHitElementId, generateTicks, rulerDragToGuidePosition, resolveElementInteractivity, buildChartQuickActionsDescriptor, applyChartElementToggle, CHART_QUICK_ACTION_BUTTON_SIZE, applyChartStylePreset, hideChartSeries, restoreFilteredSeries, buildCropOverlay, CROP_HANDLE_ARIA_KEY, getActiveXControlOverlayView, buildCommentMarkers, COMMENT_MARKER_SIZE, collectConnectorSiteCandidates, getConnectorEndpointHandles, findConnectorSiteNear, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, canEditElementPoints, MERGE_SHAPES_MENU_ITEMS, hasMultipleSelectedTableCells, isElementLocked, mergeSlideTransition, slideBackgroundClearState, slideBackgroundClearPatch, effectiveDirection, TRIGGER_OPTIONS, effectiveTimingCurve, getAfterAnimationState, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, buildSlideTemplateContent, updateSubtitleSettings, buildFreeformShapeElement, buildLiveInkStrokeView, beginCropDrag, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, FreeformToolSession, attachOverlayKeyboard, EditPointsSession, EDIT_POINTS_STYLE, elementLockTogglePatch, buildTableDataGrid, getDenseGridLayoutPlan, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, applyTableStylePreset, tableStyleAssignmentUpdate, evenColumnWidths, redistributeColumnWidth, evenRowHeights, inspectorNumber, patchChartData, collapseChartTitleRunsForEdit, chartGridlinesState, chartGridlinesPatch, seriesSecondaryAxisPatch, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, setDataLabelsRangeCache, describeSmartArtBounds, canAddTopLevelNode, classifyExtraConnections, siblingIndex, siblingCount, canRemoveTopLevelNode, imageResetPatch, imageResetState, canInteractWithElement, buildOleObjectNamePatch, shouldShowAccessibilitySection, withFrameSlides, withSlidesPerPage, schemaLabel, THEME_COLOR_SLOT_LABEL_KEYS, SLIDE_SIZE_PRESETS, TRANSITION_ORIENTATION_TYPES, clampTransitionNumber, TRANSITION_SPEED_OPTIONS, TRANSITION_MORPH_OPTIONS, flattenTagCollections, resolveTemplateBackgroundRows, commentMentionQuery, matchCommentMentionAuthors, buildAnimationTimelineRows, clearMotionPath, setTrigger, setTriggerBookmark, getEffectSoundState, setEffectSound, setEffectStockSound, setAfterAnimation, setAfterAnimationColor, directionValuesFor, buildAnimationTimelineBars, motionPathPresetIdForPath, MOTION_PATH_FAMILIES, motionPathPresetsByFamily, motionPathPresetLabelKey, motionPathFamilyLabelKey, EFFECT_SOUND_CATALOGUE, listMediaBookmarkOptions, selectedBookmarkOptionValue, hasTiltData, toElementAxes, dragCropHandle, panCropImage, clientToSlidePoint, EDIT_POINTS_TARGET_ATTR, describeTableStyleEditor, TABLE_STYLE_EDITOR_PARTS, computeMergeCellRight, computeMergeCellDown, computeSplitCell, resolveDisplayedChartType, CHART_TYPE_OPTIONS, chartDataLabelsTogglePatch, BAR3D_SHAPE_OPTIONS, bar3DShapePatch, RADAR_STYLE_OPTIONS, radarStylePatch, SURFACE_WIREFRAME_OPTIONS, surfaceWireframePatch, isSeriesUsingSecondaryAxis, seriesColorClearState, listChartUserShapeRows, withChartUserShapeAdded, createDefaultChartUserShape, withChartUserShapeRowRemoved, withChartUserShapeRowTextUpdated, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSiblingAfter, removeEmptyNode, demote, promote, reorder, cropResetState, cropResetPatch, ARTISTIC_EFFECTS, mediaTrimEndSeconds, trimmedMediaDurationMs, mediaTrimEndAbsoluteMs, mediaTrimResetState, mediaTrimEndMsFromAbsoluteMs, mediaTrimResetPatch, buildOleEditDialogDescriptor, buildOleContentUpdatePatch, buildThemeColorSwatchGrid, themeColorSwatchRows, findSelectedThemeSwatch, themeSwatchCommit, getNonVisualDescriptionFields, resolveActionType, ELEMENT_ACTION_TYPE_OPTIONS, canCommitActionType, slideSizeFromPreset, withSlideSizeOrientation, TRANSITION_DIR_ARROWS, buildDirectionGrid, updateTagInCollections, deleteTagFromCollections, addTagToCollections, commentTextSegments, COMMENT_MENTION_CLASS, COMMENT_MENTION_ATTRIBUTE, insertCommentMention, reorderAnimationTimelineRows, applyAnimationTimelineOrder, getEffectSoundAsset, animationEffectLabel, overlayPointerInput, TABLE_STYLE_BORDER_SIDES, applyTableStyleFieldEdit, withCellStyle, LBL as LBL$1, SEL as SEL$1, FILL_MODE_OPTIONS as FILL_MODE_OPTIONS$1, SECTION_HEADING, NUM as NUM$1, getChartUserShapeGroupTransform, withChartUserShapeGroupChildAdded, createDefaultChartUserShapeGroupChild, withChartUserShapeRowUpdated, getChartUserShapeRowChartBox, withChartUserShapeRowFlipUpdated, withChartUserShapeRowRotationUpdated, withChartUserShapeRowChartBoxUpdated, smartArtLayoutSwitchPatch, rebuildDrawingShapesIfCleared, mediaTrimEndMsFromSeconds, validateMediaTrimRange, quickStyleSwatchCss, OFFICE_COLOR_SWATCHES, PATTERN_PRESET_OPTIONS as PATTERN_PRESET_OPTIONS$1, COMPOUND_LINE_OPTIONS as COMPOUND_LINE_OPTIONS$1, LINE_JOIN_OPTIONS as LINE_JOIN_OPTIONS$1, LINE_CAP_OPTIONS as LINE_CAP_OPTIONS$1, TEXT_WARP_PRESETS, warpPreviewPath, text3dPtToEmu, text3dEmuToPt, MATERIAL_PRESETS, toSlideIndex, TABLE_STYLE_BORDER_SIDE_LABEL_KEYS, TABLE_STYLE_DASH_PRESETS, GRADIENT_TYPE_OPTIONS as GRADIENT_TYPE_OPTIONS$1, PATTERN_OPTIONS, FILL_PATTERN_LABEL_KEYS, toggleText3dExtrusion, BEVEL_PRESETS, cropFit, cropFill, cropToAspectRatio } from 'ooxml-ui/pptx';
4
4
  export { THEME_CATALOG, defaultCssVars, defaultRadius, defaultThemeColors, resolveThemeCatalogEntry, themeToCssVars, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius } from 'ooxml-ui/pptx';
5
- import React99, { createContext, lazy, forwardRef, useEffect, useState, useCallback, useMemo, useRef, useLayoutEffect, useSyncExternalStore, useId, useContext, useDeferredValue, Suspense, useReducer, Fragment as Fragment$1 } from 'react';
5
+ import React101, { createContext, lazy, forwardRef, useEffect, useState, useCallback, useMemo, useRef, useLayoutEffect, useSyncExternalStore, useId, useContext, useDeferredValue, Suspense, useReducer, Fragment as Fragment$1 } from 'react';
6
6
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
7
7
  import { useTranslation } from 'react-i18next';
8
8
  import { LuArrowDown, LuArrowUp, LuArrowRight, LuArrowLeft, LuArrowDownRight, LuArrowDownLeft, LuArrowUpRight, LuArrowUpLeft, LuMessageSquare, LuEyeOff, LuHistory, LuSettings, LuX, LuCalendarDays, LuClock, LuHash, LuFileText, LuText, LuCast, LuShieldCheck, LuPlus, LuPanelLeftClose, LuDownload, LuTrash2, LuCheck, LuLock, LuEye, LuType, LuLoader, LuShieldAlert, LuSignature, LuInfo, LuTriangleAlert, LuPrinter, LuPenTool, LuBug, LuChevronUp, LuChevronDown, LuUpload, LuWifi, LuWifiOff, LuUsers, LuCopy, LuMinus, LuChevronLeft, LuChevronRight, LuPlay, LuPause, LuPanelLeft, LuPanelRight, LuSparkles, LuFolderOpen, LuPalette, LuSearch, LuCaseSensitive, LuReplace, LuGripVertical, LuLoaderCircle, LuGrid2X2, LuStickyNote, LuList, LuClipboardCopy, LuPaintbrush, LuShapes, LuLayoutGrid, LuWand, LuPresentation, LuTextCursorInput, LuFile, LuEllipsis, LuUserRound, LuShare2, LuSave, LuFilePlus2, LuHouse, LuFileJson, LuBox, LuVideo, LuFileImage, LuDatabase, LuClock3, LuUser, LuHardDrive, LuLogIn, LuMove, LuCopyPlus, LuClipboardPaste, LuMonitor, LuRadio, LuCaptions, LuImage, LuFilter, LuLayers, LuSettings2, LuLockOpen, LuPencil, LuReply, LuMoveRight, LuRotateCw, LuScissors, LuBookmark, LuPipette } from 'react-icons/lu';
@@ -670,6 +670,16 @@ var ShapeFormatContext = createContext(null);
670
670
  function useShapeFormatContext() {
671
671
  return useContext(ShapeFormatContext);
672
672
  }
673
+ function runCropRequest(crop, value) {
674
+ if (crop) {
675
+ dispatchCropRequest(value, {
676
+ toggle: crop.toggle,
677
+ aspect: crop.cropToAspect,
678
+ fill: crop.fill,
679
+ fit: crop.fit
680
+ });
681
+ }
682
+ }
673
683
  function WebHomeControls({
674
684
  family,
675
685
  controls,
@@ -713,7 +723,7 @@ function WebHomeControls({
713
723
  host.addEventListener("home-popup", listener);
714
724
  return () => host.removeEventListener("home-popup", listener);
715
725
  }, [onPopup]);
716
- return React99.createElement(`pptx-ui-ribbon-home-${family}`, { ref });
726
+ return React101.createElement(`pptx-ui-ribbon-home-${family}`, { ref });
717
727
  }
718
728
  function ShapeArrangeExtras(p) {
719
729
  const commands = useShapeFormatContext();
@@ -760,18 +770,8 @@ function ShapeArrangeExtras(p) {
760
770
  case "home.arrange.outlineWidth":
761
771
  onUpdateElementStyle({ strokeWidth: Math.max(0, Number(value)) });
762
772
  break;
763
- case "home.arrange.crop": {
764
- const action = parseCropValue(value);
765
- if (!action) {
766
- crop?.toggle();
767
- } else if (action.kind === "aspect") {
768
- crop?.cropToAspect(action.width, action.height);
769
- } else if (action.kind === "fill") {
770
- crop?.fill();
771
- } else {
772
- crop?.fit();
773
- }
774
- }
773
+ case "home.arrange.crop":
774
+ runCropRequest(crop, value);
775
775
  }
776
776
  },
777
777
  [onGroupElements, onUngroupElement, onUpdateElementStyle, commands, crop]
@@ -1210,7 +1210,7 @@ function AccountPage() {
1210
1210
  return void 0;
1211
1211
  });
1212
1212
  };
1213
- const version = "4.33.2" ;
1213
+ const version = "4.35.0" ;
1214
1214
  return /* @__PURE__ */ jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
1215
1215
  /* @__PURE__ */ jsxs("section", { className: cardClass, children: [
1216
1216
  /* @__PURE__ */ jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
@@ -3401,18 +3401,44 @@ function MobileToolbar(props) {
3401
3401
  /* @__PURE__ */ jsx(MobileMenuSheet, { open: menuOpen, onClose: () => setMenuOpen(false), ...props })
3402
3402
  ] });
3403
3403
  }
3404
+ function PictureSizeStrip({
3405
+ hiddenActions
3406
+ }) {
3407
+ const crop = useShapeFormatContext()?.crop;
3408
+ const { isHidden } = useToolbarVisibility(hiddenActions);
3409
+ const controls = useMemo(
3410
+ () => pictureSizeHomeControls({
3411
+ editable: Boolean(crop),
3412
+ canCrop: Boolean(crop?.canCrop),
3413
+ cropActive: Boolean(crop?.element),
3414
+ hideCrop: isHidden("crop")
3415
+ }),
3416
+ [crop, isHidden]
3417
+ );
3418
+ const request = useCallback(
3419
+ (_id, _part, intent) => runCropRequest(crop, intent?.value),
3420
+ [crop]
3421
+ );
3422
+ return /* @__PURE__ */ jsx(WebHomeControls, { family: "picture-size", controls, onRequest: request });
3423
+ }
3404
3424
  function useTranslateOr() {
3405
3425
  const { t } = useTranslation();
3406
3426
  return (key, fallback) => galleryTextLabel(t, key, fallback);
3407
3427
  }
3408
- function ContextualTabSection({ tab }) {
3428
+ function ContextualTabSection({
3429
+ tab,
3430
+ hiddenActions
3431
+ }) {
3409
3432
  const translateOr = useTranslateOr();
3410
- return /* @__PURE__ */ jsx(Fragment, { children: CONTEXTUAL_TAB_GROUPS[tab].map((group) => /* @__PURE__ */ jsx(
3433
+ return /* @__PURE__ */ jsx(Fragment, { children: CONTEXTUAL_TAB_GROUPS[tab].map((group) => /* @__PURE__ */ jsxs(
3411
3434
  WebRibbonGroup,
3412
3435
  {
3413
3436
  groupId: group.group,
3414
3437
  label: translateOr(group.labelKey, group.label),
3415
- children: group.galleries.map((placement) => /* @__PURE__ */ jsx(RibbonGallery, { placement }, placement.control))
3438
+ children: [
3439
+ group.galleries.map((placement) => /* @__PURE__ */ jsx(RibbonGallery, { placement }, placement.control)),
3440
+ group.strip === "picture-size" && /* @__PURE__ */ jsx(PictureSizeStrip, { hiddenActions })
3441
+ ]
3416
3442
  },
3417
3443
  group.group
3418
3444
  )) });
@@ -4614,7 +4640,7 @@ function Toolbar(p) {
4614
4640
  }
4615
4641
  ),
4616
4642
  /* @__PURE__ */ jsx(ToolbarLateTabs, { p, section }),
4617
- contextual.active && !addIns.active && /* @__PURE__ */ jsx(ContextualTabSection, { tab: contextual.active }),
4643
+ contextual.active && !addIns.active && /* @__PURE__ */ jsx(ContextualTabSection, { tab: contextual.active, hiddenActions: p.hiddenActions }),
4618
4644
  addIns.active && /* @__PURE__ */ jsx(RibbonAddInSection, { tab: addIns.active })
4619
4645
  ]
4620
4646
  }
@@ -4886,7 +4912,7 @@ function ChartQuickActionsOverlay({
4886
4912
  "data-export-ignore": "true",
4887
4913
  style: { position: "absolute", left: 0, top: 0, zIndex: 59 },
4888
4914
  onMouseDown: (e) => e.stopPropagation(),
4889
- children: descriptor.buttons.map((button) => /* @__PURE__ */ jsxs(React99.Fragment, { children: [
4915
+ children: descriptor.buttons.map((button) => /* @__PURE__ */ jsxs(React101.Fragment, { children: [
4890
4916
  /* @__PURE__ */ jsx(
4891
4917
  "button",
4892
4918
  {
@@ -4906,7 +4932,7 @@ function ChartQuickActionsOverlay({
4906
4932
  transformOrigin: "top left"
4907
4933
  },
4908
4934
  className: "flex items-center justify-center rounded bg-white border border-gray-300 shadow-sm hover:bg-gray-100 text-gray-700",
4909
- children: React99.createElement(ICONS3[button.id], { className: "size-3.5" })
4935
+ children: React101.createElement(ICONS3[button.id], { className: "size-3.5" })
4910
4936
  }
4911
4937
  ),
4912
4938
  open === button.id && button.id === "elements" && /* @__PURE__ */ jsxs(
@@ -6052,7 +6078,7 @@ function HorizontalRulerView({ ticks, widthPx, highlight }) {
6052
6078
  }
6053
6079
  );
6054
6080
  }
6055
- var HorizontalRuler = React99.memo(HorizontalRulerView);
6081
+ var HorizontalRuler = React101.memo(HorizontalRulerView);
6056
6082
  HorizontalRuler.displayName = "HorizontalRuler";
6057
6083
  function VerticalRulerView({ ticks, heightPx, highlight }) {
6058
6084
  return /* @__PURE__ */ jsxs(
@@ -6124,7 +6150,7 @@ function VerticalRulerView({ ticks, heightPx, highlight }) {
6124
6150
  }
6125
6151
  );
6126
6152
  }
6127
- var VerticalRuler = React99.memo(VerticalRulerView);
6153
+ var VerticalRuler = React101.memo(VerticalRulerView);
6128
6154
  VerticalRuler.displayName = "VerticalRuler";
6129
6155
  function Ruler({
6130
6156
  canvasSize,
@@ -8006,7 +8032,7 @@ function slideThumbnailPropsEqual(prev, next) {
8006
8032
  }
8007
8033
  return true;
8008
8034
  }
8009
- var SlideThumbnail = React99.memo(SlideThumbnailImpl, slideThumbnailPropsEqual);
8035
+ var SlideThumbnail = React101.memo(SlideThumbnailImpl, slideThumbnailPropsEqual);
8010
8036
  function tableCell(props) {
8011
8037
  const { selectedElement, tableEditorState } = props;
8012
8038
  if (selectedElement?.type !== "table" || tableEditorState === null) {
@@ -8230,6 +8256,12 @@ function FindReplacePanel({
8230
8256
  findQuery,
8231
8257
  replaceQuery,
8232
8258
  findMatchCase,
8259
+ findIncludeNotes = false,
8260
+ findIncludeChartTitles = true,
8261
+ findIncludeChartData = false,
8262
+ onSetFindIncludeChartTitles,
8263
+ onSetFindIncludeChartData,
8264
+ onSetFindIncludeNotes,
8233
8265
  findResults,
8234
8266
  findResultIndex,
8235
8267
  onSetFindQuery,
@@ -8248,7 +8280,7 @@ function FindReplacePanel({
8248
8280
  }, []);
8249
8281
  useEffect(() => {
8250
8282
  onPerformFind();
8251
- }, [findQuery, findMatchCase]);
8283
+ }, [findQuery, findMatchCase, findIncludeNotes, findIncludeChartTitles, findIncludeChartData]);
8252
8284
  const handleSearchKeyDown = useCallback(
8253
8285
  (event) => {
8254
8286
  if (event.key === "Escape") {
@@ -8274,9 +8306,43 @@ function FindReplacePanel({
8274
8306
  [onClose, onReplace]
8275
8307
  );
8276
8308
  const hasResults = findResults.length > 0;
8309
+ const availability = findReplacementAvailability(findResults, findResultIndex);
8277
8310
  const matchCountLabel = hasResults ? t("pptx.findReplace.matchCount", { current: findResultIndex + 1, total: findResults.length }) : findQuery.length > 0 ? t("pptx.findReplace.noMatches") : "";
8278
8311
  return /* @__PURE__ */ jsxs("div", { className: "absolute top-2 right-2 z-40 bg-popover border border-border rounded-lg shadow-lg p-3 text-xs text-foreground w-80 backdrop-blur", children: [
8312
+ /* @__PURE__ */ jsxs("label", { children: [
8313
+ /* @__PURE__ */ jsx(
8314
+ WebCheckbox,
8315
+ {
8316
+ "aria-label": t("pptx.findReplace.includeChartTitles"),
8317
+ checked: findIncludeChartTitles,
8318
+ onChange: (event) => onSetFindIncludeChartTitles?.(event.target.checked)
8319
+ }
8320
+ ),
8321
+ t("pptx.findReplace.includeChartTitles")
8322
+ ] }),
8323
+ /* @__PURE__ */ jsxs("label", { children: [
8324
+ /* @__PURE__ */ jsx(
8325
+ WebCheckbox,
8326
+ {
8327
+ "aria-label": t("pptx.findReplace.includeChartData"),
8328
+ checked: findIncludeChartData,
8329
+ onChange: (event) => onSetFindIncludeChartData?.(event.target.checked)
8330
+ }
8331
+ ),
8332
+ t("pptx.findReplace.includeChartData")
8333
+ ] }),
8279
8334
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-2", children: [
8335
+ /* @__PURE__ */ jsxs("label", { children: [
8336
+ /* @__PURE__ */ jsx(
8337
+ WebCheckbox,
8338
+ {
8339
+ "aria-label": t("pptx.findReplace.includeNotes"),
8340
+ checked: findIncludeNotes,
8341
+ onChange: (event) => onSetFindIncludeNotes?.(event.target.checked)
8342
+ }
8343
+ ),
8344
+ t("pptx.findReplace.includeNotes")
8345
+ ] }),
8280
8346
  /* @__PURE__ */ jsxs("span", { className: "font-semibold text-sm inline-flex items-center gap-1.5", children: [
8281
8347
  /* @__PURE__ */ jsx(LuSearch, { className: ic2 }),
8282
8348
  t("pptx.findReplace.title")
@@ -8362,6 +8428,9 @@ function FindReplacePanel({
8362
8428
  }
8363
8429
  )
8364
8430
  ] }) }),
8431
+ availability.hasReadOnly && /* @__PURE__ */ jsx("p", { role: "status", children: t(
8432
+ findIncludeChartData ? "pptx.findReplace.readOnlyChartText" : "pptx.findReplace.readOnlyChartTitle"
8433
+ ) }),
8365
8434
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
8366
8435
  /* @__PURE__ */ jsx(
8367
8436
  "button",
@@ -8369,7 +8438,7 @@ function FindReplacePanel({
8369
8438
  type: "button",
8370
8439
  className: btnAction,
8371
8440
  onClick: onReplace,
8372
- disabled: !hasResults,
8441
+ disabled: !availability.current,
8373
8442
  title: t("pptx.findReplace.replaceCurrent"),
8374
8443
  children: t("pptx.findReplace.replace")
8375
8444
  }
@@ -8380,7 +8449,7 @@ function FindReplacePanel({
8380
8449
  type: "button",
8381
8450
  className: btnAction,
8382
8451
  onClick: onReplaceAll,
8383
- disabled: !hasResults,
8452
+ disabled: !availability.all,
8384
8453
  title: t("pptx.findReplace.replaceAllMatches"),
8385
8454
  children: t("pptx.findReplace.replaceAll")
8386
8455
  }
@@ -8649,7 +8718,7 @@ function LazyThumbnailInner({
8649
8718
  }
8650
8719
  ) });
8651
8720
  }
8652
- var LazyThumbnail = React99.memo(LazyThumbnailInner);
8721
+ var LazyThumbnail = React101.memo(LazyThumbnailInner);
8653
8722
  function declaredSectionFacts(groups, sectionId) {
8654
8723
  const declared = groups.filter((group) => group.id !== DEFAULT_SECTION_GROUP_ID && group.id !== UNGROUPED_SECTION_ID).map((group) => group.id);
8655
8724
  return {
@@ -8817,7 +8886,7 @@ function SlideItemInner({
8817
8886
  }
8818
8887
  );
8819
8888
  }
8820
- var SlideItem = React99.memo(SlideItemInner);
8889
+ var SlideItem = React101.memo(SlideItemInner);
8821
8890
  function useSlidePaneCallbacks(onMoveSlide, onRenameSection, onToggleSectionCollapse) {
8822
8891
  const [collapsedSections, setCollapsedSections] = useState({});
8823
8892
  const [renamingSectionId, setRenamingSectionId] = useState(null);
@@ -10230,7 +10299,7 @@ function arePropsEqual(prev, next) {
10230
10299
  }
10231
10300
  return true;
10232
10301
  }
10233
- var SlideCard = React99.memo(SlideCardImpl, arePropsEqual);
10302
+ var SlideCard = React101.memo(SlideCardImpl, arePropsEqual);
10234
10303
  var ICON_CLASS = "h-3.5 w-3.5 text-muted-foreground";
10235
10304
  function SorterContextMenu({
10236
10305
  x,
@@ -10385,6 +10454,7 @@ function useKeyboardShortcuts(params) {
10385
10454
  function useSlideSorterState(params) {
10386
10455
  const {
10387
10456
  slides,
10457
+ templateElementsBySlideId,
10388
10458
  activeSlideIndex,
10389
10459
  canEdit,
10390
10460
  sectionGroups,
@@ -10392,6 +10462,7 @@ function useSlideSorterState(params) {
10392
10462
  onMoveSlide,
10393
10463
  onDeleteSlides,
10394
10464
  onDuplicateSlides,
10465
+ onPasteSlides,
10395
10466
  onToggleHideSlides,
10396
10467
  onClose
10397
10468
  } = params;
@@ -10459,22 +10530,29 @@ function useSlideSorterState(params) {
10459
10530
  closeContextMenu();
10460
10531
  }, [selectedIndexes, onDuplicateSlides, closeContextMenu]);
10461
10532
  const handleCopySelected = useCallback(() => {
10462
- setSorter((previous) => ({
10463
- ...previous,
10464
- clipboardIds: sorterSelectionIndexes(previous, slides).map((i) => slides[i].id)
10465
- }));
10533
+ setSorter(
10534
+ (previous) => applySorterAction(
10535
+ previous,
10536
+ slides,
10537
+ "copy",
10538
+ activeSlideIndex,
10539
+ slides,
10540
+ templateElementsBySlideId
10541
+ ).state
10542
+ );
10466
10543
  closeContextMenu();
10467
- }, [slides, closeContextMenu]);
10544
+ }, [slides, activeSlideIndex, templateElementsBySlideId, closeContextMenu]);
10468
10545
  const handlePaste = useCallback(() => {
10469
10546
  if (clipboardSlideIds.length === 0) {
10470
10547
  return;
10471
10548
  }
10472
- const indexes = slideSorterPasteIndexes(clipboardSlideIds, slides);
10473
- if (indexes.length > 0) {
10474
- onDuplicateSlides(indexes);
10549
+ const result = applySorterAction(sorter, slides, "paste", activeSlideIndex);
10550
+ if (result.paste) {
10551
+ onPasteSlides(result.paste);
10552
+ setSorter(result.state);
10475
10553
  }
10476
10554
  closeContextMenu();
10477
- }, [clipboardSlideIds, slides, onDuplicateSlides, closeContextMenu]);
10555
+ }, [clipboardSlideIds, sorter, slides, activeSlideIndex, onPasteSlides, closeContextMenu]);
10478
10556
  const handleToggleHideSelected = useCallback(() => {
10479
10557
  if (selectedIndexes.length === 0) {
10480
10558
  return;
@@ -10579,6 +10657,7 @@ function useSlideSorterState(params) {
10579
10657
  }
10580
10658
  function SlideSorterOverlay({
10581
10659
  slides,
10660
+ templateElementsBySlideId,
10582
10661
  activeSlideIndex,
10583
10662
  canvasSize,
10584
10663
  canEdit,
@@ -10587,12 +10666,16 @@ function SlideSorterOverlay({
10587
10666
  onMoveSlide,
10588
10667
  onDeleteSlides,
10589
10668
  onDuplicateSlides,
10669
+ onPasteSlides,
10670
+ onCopySystemSlides,
10671
+ onPasteSystemSlides,
10590
10672
  onToggleHideSlides,
10591
10673
  onClose
10592
10674
  }) {
10593
10675
  const { t } = useTranslation();
10594
10676
  const state = useSlideSorterState({
10595
10677
  slides,
10678
+ templateElementsBySlideId,
10596
10679
  activeSlideIndex,
10597
10680
  canEdit,
10598
10681
  sectionGroups,
@@ -10600,6 +10683,7 @@ function SlideSorterOverlay({
10600
10683
  onMoveSlide,
10601
10684
  onDeleteSlides,
10602
10685
  onDuplicateSlides,
10686
+ onPasteSlides,
10603
10687
  onToggleHideSlides,
10604
10688
  onClose
10605
10689
  });
@@ -10640,6 +10724,18 @@ function SlideSorterOverlay({
10640
10724
  count: state.selectedSlideIds.length
10641
10725
  }) })
10642
10726
  ] }),
10727
+ React101.createElement("pptx-ui-slide-clipboard", {
10728
+ ref: (node) => {
10729
+ if (!node) {
10730
+ return;
10731
+ }
10732
+ node.labels = slideClipboardLabels((key) => t(key));
10733
+ node.copyAction = onCopySystemSlides ? () => onCopySystemSlides(state.selectedIndexes) : void 0;
10734
+ node.pasteAction = canEdit && onPasteSystemSlides ? () => onPasteSystemSlides(
10735
+ sorterPasteInsertAt(state.selectedIndexes, activeSlideIndex, slides.length)
10736
+ ) : void 0;
10737
+ }
10738
+ }),
10643
10739
  /* @__PURE__ */ jsx(
10644
10740
  "button",
10645
10741
  {
@@ -11543,8 +11639,8 @@ function SlideNotesPanel({
11543
11639
  onHeightChange
11544
11640
  }) {
11545
11641
  const { t } = useTranslation();
11546
- const rootRef = React99.useRef(null);
11547
- React99.useEffect(() => {
11642
+ const rootRef = React101.useRef(null);
11643
+ React101.useEffect(() => {
11548
11644
  const el = rootRef.current;
11549
11645
  if (!el || !onHeightChange) {
11550
11646
  return void 0;
@@ -13387,9 +13483,9 @@ function PresentationSubtitleBar({
13387
13483
  function renderNotesSegments(segments) {
13388
13484
  return notesSegmentsToSpans(segments).map((span) => {
13389
13485
  if (span.kind === "break") {
13390
- return React99.createElement("br", { key: span.key });
13486
+ return React101.createElement("br", { key: span.key });
13391
13487
  }
13392
- return React99.createElement(
13488
+ return React101.createElement(
13393
13489
  "span",
13394
13490
  { key: span.key, style: span.style },
13395
13491
  span.text
@@ -13565,7 +13661,7 @@ function scaledSlidePreviewPropsEqual(prev, next) {
13565
13661
  }
13566
13662
  return true;
13567
13663
  }
13568
- var ScaledSlidePreview = React99.memo(ScaledSlidePreviewImpl, scaledSlidePreviewPropsEqual);
13664
+ var ScaledSlidePreview = React101.memo(ScaledSlidePreviewImpl, scaledSlidePreviewPropsEqual);
13569
13665
  function PresenterNotesRail({
13570
13666
  slides,
13571
13667
  current,
@@ -14543,6 +14639,7 @@ function AfterAnimationRow({
14543
14639
  action,
14544
14640
  color,
14545
14641
  canEdit,
14642
+ showColor = true,
14546
14643
  onActionChange,
14547
14644
  onColorChange
14548
14645
  }) {
@@ -14563,7 +14660,7 @@ function AfterAnimationRow({
14563
14660
  }
14564
14661
  )
14565
14662
  ] }),
14566
- action === "dimToColor" && /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2", children: [
14663
+ action === "dimToColor" && showColor && /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2", children: [
14567
14664
  /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-[11px]", children: t("pptx.animation.afterAnimation.color") }),
14568
14665
  /* @__PURE__ */ jsx(
14569
14666
  "input",
@@ -14793,7 +14890,7 @@ function EffectSoundRow({
14793
14890
  onPickStock
14794
14891
  }) {
14795
14892
  const { t } = useTranslation();
14796
- const fileInputRef = React99.useRef(null);
14893
+ const fileInputRef = React101.useRef(null);
14797
14894
  const selectedValue = soundState.catalogueId ?? (soundState.hasSound ? CURRENT_VALUE : NONE_VALUE);
14798
14895
  const handleSelectChange = (event) => {
14799
14896
  const value = event.target.value;
@@ -15498,27 +15595,15 @@ function AnimationPanel({
15498
15595
  }
15499
15596
  )
15500
15597
  ] }),
15501
- /* @__PURE__ */ jsxs("div", { className: "pt-1 border-t border-border flex flex-col gap-2", children: [
15502
- /* @__PURE__ */ jsx(
15503
- EffectSoundRow,
15504
- {
15505
- soundState: effectSoundState,
15506
- canEdit,
15507
- onPick: handleEffectSoundPick,
15508
- onPickStock: handleEffectStockSoundPick
15509
- }
15510
- ),
15511
- /* @__PURE__ */ jsx(
15512
- AfterAnimationRow,
15513
- {
15514
- action: selectedElementAnimation?.afterAnimation ?? "none",
15515
- color: selectedElementAnimation?.afterAnimationColor,
15516
- canEdit,
15517
- onActionChange: handleAfterAnimationChange,
15518
- onColorChange: handleAfterAnimationColorChange
15519
- }
15520
- )
15521
- ] }),
15598
+ /* @__PURE__ */ jsx("div", { className: "pt-1 border-t border-border flex flex-col gap-2", children: /* @__PURE__ */ jsx(
15599
+ EffectSoundRow,
15600
+ {
15601
+ soundState: effectSoundState,
15602
+ canEdit,
15603
+ onPick: handleEffectSoundPick,
15604
+ onPickStock: handleEffectStockSoundPick
15605
+ }
15606
+ ) }),
15522
15607
  /* @__PURE__ */ jsx("div", { className: "text-[11px] uppercase tracking-wide text-muted-foreground pt-1 border-t border-border", children: t("pptx.animation.timing") }),
15523
15608
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
15524
15609
  /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-[11px]", children: t("pptx.animation.trigger") }),
@@ -15645,6 +15730,17 @@ function AnimationPanel({
15645
15730
  )
15646
15731
  ] })
15647
15732
  ] }),
15733
+ (hasAnimation || selectedElementAnimation?.nativeAfterAnimation) && /* @__PURE__ */ jsx(
15734
+ AfterAnimationRow,
15735
+ {
15736
+ action: getAfterAnimationState(selectedElementAnimation).action,
15737
+ color: getAfterAnimationState(selectedElementAnimation).color,
15738
+ showColor: getAfterAnimationState(selectedElementAnimation).showColor,
15739
+ canEdit,
15740
+ onActionChange: handleAfterAnimationChange,
15741
+ onColorChange: handleAfterAnimationColorChange
15742
+ }
15743
+ ),
15648
15744
  /* @__PURE__ */ jsx(
15649
15745
  AnimationTimelineSection,
15650
15746
  {
@@ -18365,7 +18461,7 @@ function ConnectorArrowsSection({
18365
18461
  ["Start", "End"].map((end) => {
18366
18462
  const widthKey = end === "Start" ? "connectorStartArrowWidth" : "connectorEndArrowWidth";
18367
18463
  const lengthKey = end === "Start" ? "connectorStartArrowLength" : "connectorEndArrowLength";
18368
- return /* @__PURE__ */ jsxs(React99.Fragment, { children: [
18464
+ return /* @__PURE__ */ jsxs(React101.Fragment, { children: [
18369
18465
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
18370
18466
  /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t(END_LABEL_KEYS[end].width) }),
18371
18467
  /* @__PURE__ */ jsx(
@@ -21290,7 +21386,7 @@ function StrokeEffectsSection({
21290
21386
  ] }),
21291
21387
  EFFECT_CONFIGS.map((cfg) => {
21292
21388
  const on = cfg.isOn(style);
21293
- return /* @__PURE__ */ jsxs(React99.Fragment, { children: [
21389
+ return /* @__PURE__ */ jsxs(React101.Fragment, { children: [
21294
21390
  /* @__PURE__ */ jsxs("label", { className: `inline-flex items-center gap-2 text-foreground ${COL2}`, children: [
21295
21391
  /* @__PURE__ */ jsx(
21296
21392
  WebCheckbox,
@@ -22145,7 +22241,7 @@ function TextWarpGallery({
22145
22241
  onUpdateTextStyle
22146
22242
  }) {
22147
22243
  const { t } = useTranslation();
22148
- const [expanded, setExpanded] = React99.useState(false);
22244
+ const [expanded, setExpanded] = React101.useState(false);
22149
22245
  const currentPreset = ts?.textWarpPreset || "textNoShape";
22150
22246
  return /* @__PURE__ */ jsxs("div", { className: "mt-2 rounded border border-border bg-card p-2 space-y-2", children: [
22151
22247
  /* @__PURE__ */ jsxs(
@@ -22788,7 +22884,7 @@ function SmartArtStyleControls({
22788
22884
  onChangeStyle
22789
22885
  }) {
22790
22886
  const { t } = useTranslation();
22791
- const translate = React99.useCallback((key) => t(key), [t]);
22887
+ const translate = React101.useCallback((key) => t(key), [t]);
22792
22888
  return /* @__PURE__ */ jsxs(Fragment, { children: [
22793
22889
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1 text-[11px]", children: [
22794
22890
  /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.smartart.colorScheme") }),
@@ -22843,9 +22939,9 @@ function SmartArtPropertiesPanel({
22843
22939
  const nodes = smartArtData.nodes ?? [];
22844
22940
  const layout = smartArtData.resolvedLayoutType;
22845
22941
  const topLevelCount = nodes.filter((n) => !n.parentId).length;
22846
- const inputRefs = React99.useRef(/* @__PURE__ */ new Map());
22847
- const pendingFocusId = React99.useRef(null);
22848
- React99.useEffect(() => {
22942
+ const inputRefs = React101.useRef(/* @__PURE__ */ new Map());
22943
+ const pendingFocusId = React101.useRef(null);
22944
+ React101.useEffect(() => {
22849
22945
  const id = pendingFocusId.current;
22850
22946
  if (id) {
22851
22947
  inputRefs.current.get(id)?.focus();
@@ -23344,7 +23440,7 @@ function TableCellAdvancedFill({
23344
23440
  className: NUM$1,
23345
23441
  min: 0,
23346
23442
  max: 200,
23347
- value: cellStyle[key] ?? 0,
23443
+ value: inspectorNumber(cellStyle[key], 0),
23348
23444
  onChange: (e) => onUpdateCellStyle({
23349
23445
  [key]: Number(e.target.value)
23350
23446
  })
@@ -23400,7 +23496,7 @@ function GradientControls({
23400
23496
  className: NUM$1,
23401
23497
  min: 0,
23402
23498
  max: 360,
23403
- value: cellStyle.gradientFillAngle ?? 90,
23499
+ value: inspectorNumber(cellStyle.gradientFillAngle, 90),
23404
23500
  onChange: (e) => onUpdateCellStyle({
23405
23501
  gradientFillAngle: Number(e.target.value)
23406
23502
  })
@@ -23523,7 +23619,7 @@ function TableCellFormattingPanel({
23523
23619
  className: INPUT2,
23524
23620
  min: 6,
23525
23621
  max: 200,
23526
- value: cs.fontSize ?? 14,
23622
+ value: inspectorNumber(cs.fontSize, 14),
23527
23623
  onChange: (e) => updateCellStyle({ fontSize: Number(e.target.value) })
23528
23624
  }
23529
23625
  )
@@ -23644,7 +23740,7 @@ function TableCellFormattingPanel({
23644
23740
  className: cn(INPUT2, "w-14"),
23645
23741
  min: 0,
23646
23742
  max: 10,
23647
- value: cs[widthKey] ?? 1,
23743
+ value: inspectorNumber(cs[widthKey], 1),
23648
23744
  onChange: (e) => updateCellStyle({ [widthKey]: Number(e.target.value) })
23649
23745
  }
23650
23746
  )
@@ -24134,7 +24230,7 @@ function TablePropertiesPanel({
24134
24230
  className: INPUT2,
24135
24231
  min: 16,
24136
24232
  max: 500,
24137
- value: row.height ?? 32,
24233
+ value: inspectorNumber(row.height, 32),
24138
24234
  onChange: (e) => {
24139
24235
  const newRows = td.rows.map(
24140
24236
  (r, i) => i === ri ? { ...r, height: Number(e.target.value) } : r
@@ -24451,7 +24547,7 @@ function CommentBody({ text, mentions, className }) {
24451
24547
  index
24452
24548
  ) : (
24453
24549
  // eslint-disable-next-line react/no-array-index-key -- segments are positional
24454
- /* @__PURE__ */ jsx(React99.Fragment, { children: segment.text }, index)
24550
+ /* @__PURE__ */ jsx(React101.Fragment, { children: segment.text }, index)
24455
24551
  )
24456
24552
  ) });
24457
24553
  }
@@ -25967,7 +26063,7 @@ function PresentationPropertiesPanel({
25967
26063
  onUpdateTagCollections
25968
26064
  }) {
25969
26065
  const { t } = useTranslation();
25970
- const handleTransitionChange = React99.useCallback(
26066
+ const handleTransitionChange = React101.useCallback(
25971
26067
  (updates) => {
25972
26068
  onUpdateSlide({
25973
26069
  transition: mergeSlideTransition(activeSlide?.transition, updates)
@@ -28901,6 +28997,7 @@ function ViewerOverlays({
28901
28997
  showReadingView,
28902
28998
  showOutlineView,
28903
28999
  templateElements,
29000
+ templateElementsBySlideId,
28904
29001
  accessibilityIssues,
28905
29002
  slides,
28906
29003
  activeSlideIndex,
@@ -28913,6 +29010,9 @@ function ViewerOverlays({
28913
29010
  onMoveSlide,
28914
29011
  onDeleteSlides,
28915
29012
  onDuplicateSlides,
29013
+ onPasteSlides,
29014
+ onCopySystemSlides,
29015
+ onPasteSystemSlides,
28916
29016
  onToggleHideSlides,
28917
29017
  onCloseSorter,
28918
29018
  onCloseReadingView,
@@ -28943,6 +29043,7 @@ function ViewerOverlays({
28943
29043
  SlideSorterOverlay,
28944
29044
  {
28945
29045
  slides,
29046
+ templateElementsBySlideId,
28946
29047
  activeSlideIndex,
28947
29048
  canvasSize,
28948
29049
  canEdit,
@@ -28951,6 +29052,9 @@ function ViewerOverlays({
28951
29052
  onMoveSlide,
28952
29053
  onDeleteSlides,
28953
29054
  onDuplicateSlides,
29055
+ onPasteSlides,
29056
+ onCopySystemSlides,
29057
+ onPasteSystemSlides,
28954
29058
  onToggleHideSlides,
28955
29059
  onClose: onCloseSorter
28956
29060
  }
@@ -29350,7 +29454,7 @@ function ViewerToolbarSection(props) {
29350
29454
  },
29351
29455
  [activeSlide, propertyHandlers]
29352
29456
  );
29353
- const scopedLayoutOptions = React99.useMemo(
29457
+ const scopedLayoutOptions = React101.useMemo(
29354
29458
  () => scopeLayoutOptionsToActiveSlide(s.layoutOptions, activeSlide),
29355
29459
  [s.layoutOptions, activeSlide]
29356
29460
  );
@@ -30823,9 +30927,10 @@ function ViewerCanvasArea(props) {
30823
30927
  () => buildFieldSubstitutionContext({
30824
30928
  headerFooter: s.headerFooter,
30825
30929
  customProperties: s.customProperties,
30826
- slide: activeSlide
30930
+ slide: activeSlide,
30931
+ firstSlideNumber: s.firstSlideNumber
30827
30932
  }),
30828
- [s.headerFooter, s.customProperties, activeSlide]
30933
+ [s.headerFooter, s.customProperties, activeSlide, s.firstSlideNumber]
30829
30934
  );
30830
30935
  const tableStyleContext = useMemo(() => {
30831
30936
  if (!s.theme && !s.tableStyleMap) {
@@ -30979,6 +31084,12 @@ ${url}`)) {
30979
31084
  findQuery: findReplace.findQuery,
30980
31085
  replaceQuery: findReplace.replaceQuery,
30981
31086
  findMatchCase: findReplace.findMatchCase,
31087
+ findIncludeNotes: findReplace.findIncludeNotes,
31088
+ findIncludeChartTitles: findReplace.findIncludeChartTitles,
31089
+ findIncludeChartData: findReplace.findIncludeChartData,
31090
+ onSetFindIncludeChartTitles: findReplace.setFindIncludeChartTitles,
31091
+ onSetFindIncludeChartData: findReplace.setFindIncludeChartData,
31092
+ onSetFindIncludeNotes: findReplace.setFindIncludeNotes,
30982
31093
  findResults: findReplace.findResults,
30983
31094
  findResultIndex: findReplace.findResultIndex,
30984
31095
  onSetFindQuery: findReplace.setFindQuery,
@@ -31280,7 +31391,7 @@ function useTableStyleMapHandlers(input) {
31280
31391
  var AiChatPanel = lazy(async () => {
31281
31392
  const [{ useChat }, { default: Panel }] = await Promise.all([
31282
31393
  import('@ai-sdk/react'),
31283
- import('./AiChatPanel-CYD46SEM.mjs')
31394
+ import('./AiChatPanel-CX74JT77.mjs')
31284
31395
  ]);
31285
31396
  function BoundAiChatPanel(props) {
31286
31397
  return /* @__PURE__ */ jsx(Panel, { ...props, useChat });
@@ -32162,16 +32273,13 @@ function ViewerMainContent(props) {
32162
32273
  slideOps,
32163
32274
  findReplace
32164
32275
  } = editorOps;
32165
- const hf = state.headerFooter;
32166
32276
  const thumbnailFieldContext = useMemo(
32167
- () => ({
32168
- dateTimeText: hf.dateTimeText,
32169
- dateFormat: hf.dateFormat,
32170
- footerText: hf.footerText,
32171
- headerText: hf.headerText,
32172
- customProperties: state.customProperties.map((p) => ({ name: p.name, value: p.value }))
32277
+ () => buildFieldSubstitutionContext({
32278
+ headerFooter: state.headerFooter,
32279
+ customProperties: state.customProperties,
32280
+ firstSlideNumber: state.firstSlideNumber
32173
32281
  }),
32174
- [hf.dateTimeText, hf.dateFormat, hf.footerText, hf.headerText, state.customProperties]
32282
+ [state.headerFooter, state.customProperties, state.firstSlideNumber]
32175
32283
  );
32176
32284
  const thumbnailTableStyleContext = useMemo(
32177
32285
  () => state.theme || state.tableStyleMap ? { theme: state.theme, tableStyleMap: state.tableStyleMap } : void 0,
@@ -35068,6 +35176,35 @@ ${url}`)
35068
35176
  customizationApi: custom.api,
35069
35177
  customization: customizationResolved
35070
35178
  });
35179
+ const slidePackageClipboardRef = useRef(null);
35180
+ const slidePackageHost = {
35181
+ getSnapshot: () => handlerRef.current ? {
35182
+ handler: handlerRef.current,
35183
+ slides: state.slides,
35184
+ templateElementsBySlideId: state.templateElementsBySlideId,
35185
+ allowExternalImages: viewerOptions.trust.allowExternalContent,
35186
+ editable: canEdit
35187
+ } : null,
35188
+ commit: (result) => {
35189
+ history.commitSlides(result.slides);
35190
+ handlerRef.current = result.handler;
35191
+ actionSoundHandlerRef.current = result.handler;
35192
+ state.setTemplateElementsBySlideId(result.templateElementsBySlideId);
35193
+ state.setSlideMasters(result.data.slideMasters ?? []);
35194
+ state.setLayoutOptions(result.data.layoutOptions ?? []);
35195
+ state.setThemeOptions(result.data.themeOptions ?? []);
35196
+ for (const [path, url] of result.mediaUrls) {
35197
+ state.mediaDataUrls.set(path, url);
35198
+ }
35199
+ state.setActiveSlideIndex(result.insertAt);
35200
+ history.markDirty();
35201
+ }
35202
+ };
35203
+ if (!slidePackageClipboardRef.current) {
35204
+ slidePackageClipboardRef.current = createSlidePackageClipboard(slidePackageHost);
35205
+ }
35206
+ slidePackageClipboardRef.current.updateHost(slidePackageHost);
35207
+ useEffect(() => () => slidePackageClipboardRef.current?.dispose(), []);
35071
35208
  const ribbonGalleries = useRibbonGalleryCommands2({
35072
35209
  selectedElement,
35073
35210
  theme: state.theme,
@@ -35545,6 +35682,7 @@ ${url}`)
35545
35682
  showReadingView: state.showReadingView,
35546
35683
  showOutlineView: state.showOutlineView,
35547
35684
  templateElements: state.templateElements,
35685
+ templateElementsBySlideId: state.templateElementsBySlideId,
35548
35686
  accessibilityIssues: state.accessibilityIssues,
35549
35687
  slides,
35550
35688
  activeSlideIndex,
@@ -35560,6 +35698,9 @@ ${url}`)
35560
35698
  onMoveSlide: editorOps.slideOps.handleMoveSlide,
35561
35699
  onDeleteSlides: editorOps.slideOps.handleDeleteSlides,
35562
35700
  onDuplicateSlides: editorOps.slideOps.handleDuplicateSlides,
35701
+ onPasteSlides: editorOps.slideOps.handlePasteSlides,
35702
+ onCopySystemSlides: (indexes) => slidePackageClipboardRef.current.copy(indexes),
35703
+ onPasteSystemSlides: (insertAt) => slidePackageClipboardRef.current.paste(insertAt),
35563
35704
  onToggleHideSlides: editorOps.slideOps.handleToggleHideSlides,
35564
35705
  onCloseSorter: () => state.setShowSlideSorter(false),
35565
35706
  onCloseReadingView: (slideIndex) => {