pptx-react-viewer 4.52.0 → 4.53.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 (43) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/{chunk-3KXEJCMG.mjs → chunk-3WAEUEID.mjs} +133 -128
  3. package/dist/chunk-3WAEUEID.mjs.br +0 -0
  4. package/dist/chunk-3WAEUEID.mjs.gz +0 -0
  5. package/dist/{chunk-I63IFSNX.js → chunk-7M7MQGRK.js} +1252 -1134
  6. package/dist/chunk-7M7MQGRK.js.br +0 -0
  7. package/dist/chunk-7M7MQGRK.js.gz +0 -0
  8. package/dist/{chunk-E6A6ZBAM.mjs → chunk-BFVUPYIH.mjs} +188 -70
  9. package/dist/chunk-BFVUPYIH.mjs.br +0 -0
  10. package/dist/chunk-BFVUPYIH.mjs.gz +0 -0
  11. package/dist/{chunk-6GAWXARM.js → chunk-L3I2DEBI.js} +132 -126
  12. package/dist/chunk-L3I2DEBI.js.br +0 -0
  13. package/dist/chunk-L3I2DEBI.js.gz +0 -0
  14. package/dist/index.d.ts +17 -1
  15. package/dist/index.js +23 -23
  16. package/dist/index.js.br +0 -0
  17. package/dist/index.js.gz +0 -0
  18. package/dist/index.mjs +2 -2
  19. package/dist/index.mjs.br +0 -0
  20. package/dist/index.mjs.gz +0 -0
  21. package/dist/internals.d.ts +36 -6
  22. package/dist/internals.js +80 -80
  23. package/dist/internals.js.br +0 -0
  24. package/dist/internals.js.gz +0 -0
  25. package/dist/internals.mjs +1 -1
  26. package/dist/internals.mjs.br +0 -0
  27. package/dist/internals.mjs.gz +0 -0
  28. package/dist/viewer/index.d.ts +10 -0
  29. package/dist/viewer/index.js +18 -18
  30. package/dist/viewer/index.js.br +0 -0
  31. package/dist/viewer/index.js.gz +0 -0
  32. package/dist/viewer/index.mjs +2 -2
  33. package/dist/viewer/index.mjs.br +0 -0
  34. package/dist/viewer/index.mjs.gz +0 -0
  35. package/package.json +3 -3
  36. package/dist/chunk-3KXEJCMG.mjs.br +0 -0
  37. package/dist/chunk-3KXEJCMG.mjs.gz +0 -0
  38. package/dist/chunk-6GAWXARM.js.br +0 -0
  39. package/dist/chunk-6GAWXARM.js.gz +0 -0
  40. package/dist/chunk-E6A6ZBAM.mjs.br +0 -0
  41. package/dist/chunk-E6A6ZBAM.mjs.gz +0 -0
  42. package/dist/chunk-I63IFSNX.js.br +0 -0
  43. package/dist/chunk-I63IFSNX.js.gz +0 -0
@@ -1,8 +1,8 @@
1
- import { StaticElementRenderer, useModalDismissDrag, useToolbarVisibility, useViewerOptionsContext, InlineCollaborationContext, SlideBackgroundImageLayer, ElementRenderer, withDisplayName, useCollaboration, ResizeHandles, imgSrc, renderStrokeView, useChartFormatContext, useViewerOptions, useReadOnlyRecommendationState, useCompatibilityToastsState, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useViewPreferencesSync, useLayoutSwitching, Rendering3DFlagsContext, CollaborationProvider, ChartFormatContext, useSheetDismissDrag, playAnimationSound, ViewerOptionsStoreContext, safePrompt, useController, scopeLayoutOptionsToActiveSlide, createReviewCommentsHost, ChartPartSelectionProvider, useKeyboardInsets, ViewerOptionsContext, useReportOnChange, useCollaborationDocumentSync, useFollowMode, useBroadcastFollower, useVirtualizedSlides, useSwipeNavigation, PresentationTransitionOverlay, RemoteSelectionOverlay, CollaborationCursorOverlay, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, downloadBlob, useChartPartSelection, resolveSmartArtDataPalette, DUOTONE_PRESETS, getSlideTransitionAnimations, SLIDE_TRANSITION_KEYFRAMES } from './chunk-3KXEJCMG.mjs';
1
+ import { StaticElementRenderer, useModalDismissDrag, useToolbarVisibility, useViewerOptionsContext, InlineCollaborationContext, SlideBackgroundImageLayer, ElementRenderer, withDisplayName, useCollaboration, ResizeHandles, imgSrc, renderStrokeView, useChartFormatContext, useViewerOptions, useReadOnlyRecommendationState, useCompatibilityToastsState, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useClearSelectionOnSlideChange, useEditorOperations, useViewerIntegration, useViewPreferencesSync, useLayoutSwitching, Rendering3DFlagsContext, CollaborationProvider, ChartFormatContext, useSheetDismissDrag, playAnimationSound, ViewerOptionsStoreContext, safePrompt, useController, scopeLayoutOptionsToActiveSlide, createReviewCommentsHost, ChartPartSelectionProvider, useKeyboardInsets, ViewerOptionsContext, useReportOnChange, useCollaborationDocumentSync, useFollowMode, useBroadcastFollower, useVirtualizedSlides, useSwipeNavigation, PresentationTransitionOverlay, RemoteSelectionOverlay, CollaborationCursorOverlay, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, downloadBlob, useChartPartSelection, resolveSmartArtDataPalette, DUOTONE_PRESETS, getSlideTransitionAnimations, SLIDE_TRANSITION_KEYFRAMES } from './chunk-3WAEUEID.mjs';
2
2
  import { useTranslation, cn, getShapeAdjustmentHandleDescriptors, isConnectorOrLineElement, PptxI18nContext, TOOLBAR_SECTIONS, GRID_SIZE, getElementTransformWithoutRotation, getElementTransform, MIN_ELEMENT_SIZE, ViewerLocaleControlsContext, hasCopyableFormat, ViewerI18nContext, useHostI18next, DEFAULT_SECTION_GROUP_ID, safeOpenUrl, isPpactionUrl, parsePpactionUrl, SHORTCUT_REFERENCE_ITEMS, isUrlSafe, computeHandoutLayout, getPrintableArea, generateNoteLineCount, normalizeHexColor, UNGROUPED_SECTION_ID, SLIDE_NAV_THUMBNAIL_WIDTH, SLIDE_TRANSITION_OPTIONS, getElementLabel, TABLE_STYLE_PRESETS, SHAPE_PRESETS, sanitizeGradientStops, formatCommentTimestamp, ANIMATION_PRESET_OPTIONS, clampCropValue, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, DEFAULT_FILL_COLOR, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, getPatternSvg, DEFAULT_STROKE_COLOR, openNativeEyeDropper } from './chunk-ID37Y3HG.mjs';
3
- import { ANIMATION_DIRECTION_LABEL_KEYS, buildQuickStylesGallery, buildSlideTemplateContent, SLIDE_TEMPLATES, homeLaunchers, attachRibbonOverflow, isPanelVisible, parentSelection, slideSpaceElement, isGroupMember, motionPathFor, setMotionPath, RULER_THICKNESS, shouldShowElementHandles, deviceStrokeStageStyle, activateModalFocus, visibleContextualTabs, resolveActiveRibbonTab, visibleRibbonAddIns, isDialogAvailable, resolveScreenTip, RIBBON_ADD_IN_TAB_ATTR, contextualTabLabelKey, RIBBON_CONTEXTUAL_TAB_ATTR, buildTabRowActionsState, isFeatureEnabled, TAB_ROW_ACTION_CLASSES, tabRowActionsAttributes, buildTitleBarState, backstageNavEntries, BACKSTAGE_NAV, listBackstageRecentFiles, BACKSTAGE_BACK_CLASSES, BACKSTAGE_NAV_CLASSES, DEFAULT_INSERT_CHART_KIND, FREEFORM_TOOL_IDS, isDrawingToolVisible, textFontSizePtToPx, withHomeGalleries, drawingHomeControls, homeGalleryControls, homeGalleryApply, shapeOutlineChange, shapeFillChange, editingHomeControls, arrangeHomeControls, arrangePainterHomeControls, arrangeAlignAction, DESIGN_RIBBON_GROUPS, FIXED_TAB_GALLERIES, DESIGN_RIBBON_COMMANDS, designCommandState, CONTEXTUAL_TAB_GROUPS, 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, getSlideBackgroundStyle, EMPTY_RESOLVED_CUSTOMIZATION, getRegionRenderer, ViewerRegionHost, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, customizeBackstageCards, backstageCardsFor, DEFAULT_VIEWER_PROFILE, readStoredViewerPrefs, resolveProfileInitial, AVATAR_COLOR_SWATCHES, clipboardHomeControls, slidesHomeControls, resolveInsertSlideLayout, 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, buildRecordRibbon, trackActiveComment, commentCounts, findCommentLocation, buildReviewRibbon, buildHelpRibbon, galleryTextLabel, pictureSizeHomeControls, chartSelectionHomeControls, dispatchChartSelectionRequest, buildFreeformShapeElement, buildLiveInkStrokeView, beginCropDrag, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, FreeformToolSession, attachOverlayKeyboard, EditPointsSession, EDIT_POINTS_STYLE, resolveCollaborationConfig, resolveViewerRootOptions, buildUserFontFaceStyles, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, isEditingAllowed, resolveAutosaveActivation, viewerOptionsToPreferences, applyPreferenceToOptions, resolveHistoryDepth, attachViewerHyperlinks, shouldConfirmExternalHyperlink, applyAutoCorrect, resolveImageResolutionScale, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, saveFailureMessage, withSaveFailureToast, createSlidePackageClipboard, shouldShowAutosaveRecoveryPrompt, resolveOptionRootClasses, RIBBON_SCOPE_ATTR, resolve3DRenderingFlags, resolveSlideSizeSelection, MIN_TOUCH_TARGET_PX, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, getSelectionTextStyleFlags, TEXT_DECORATION_FLAGS, dispatchCropRequest, applyRibbonGalleryItem, ribbonTransitionsDraftPatch, ribbonTransitionUpdates, ribbonTransitionsSoundChange, ribbonTransitionStockSoundUrl, playSlideTransitionPreview, playAnimationRibbonPreview, SLIDE_SHOW_OPTIONS, createViewerOptionsStore, subtitleSettingsFromOptions, subtitleSettingsLabels, isReviewCommentCommand, runReviewCommentCommand, hasTiltData, RULER_FONT_SIZE, toElementAxes, dragCropHandle, panCropImage, clientToSlidePoint, EDIT_POINTS_TARGET_ATTR, themeToCssVars, createCustomizationController, resolveEffectiveHiddenActions, pruneExpiredAutosaveSnapshots, createDeckStyleHost, galleryDeckView, tableLayoutCells, commitsThroughDeckStyle, resetChartFormatTarget, masterViewCrudActions, applyMasterViewCrudAction, masterViewCrudFailureKey, forgetStepsUsingRemovedParts, EDITOR_CHROME_CSS, ribbonCustomizationCss, applyMotionPathPreset, resetSlideLayoutPath, templateSchemeFromTheme, createBackstagePresentation, playFeedbackSound, shouldDiscardAutosaveOnSuccessfulSave, deleteAutosaveSnapshot, dispatchReadOnlyBannerIntent, readOnlyBannerState, buildFieldSubstitutionContext, setMasterViewBackgroundColor, canUseClipboard, runProgramNoticeStackStyle, observeElementHeight, printPropertiesFrameSlides, printPropertiesSlidesPerPage, PASTE_SPECIAL_OPTIONS, findCanvasElementNode, isHeaderFooterDateTextVisible, isHeaderFooterHeaderTextVisible, isHeaderFooterFooterTextVisible, getDensePanelTouchTargetPx, shouldStickyActionRow, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, computeAnchoredPopupPosition, updateSubtitleSettings, overlayPointerInput, pushRecentColor, mruColorsPatch, shouldClearAutosaveCacheOnClose, clearAutosaveSnapshots, canCropElement, cropSessionChanged, cancelCropUpdate, startCropSession, editorThumbnailWidth, EDITOR_THUMBNAIL_WIDTH, masterViewBackgroundColor, resolvePresentationAction, isPresentationAdvanceClick, toggleBlackboard, visibleTemplateElements, PRESENT_TOOLBAR_CLASSES, resolveEditPointsAvailability, isCurrentLayout, EXPANDED_MAX_HEIGHT, statusBarState, statusBarViewMode, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, resolveDefaultPrintSettings, HANDOUT_OPTIONS, effectiveOrientation, computeSlideCount, estimatePageCount, computeSlideIndices, bindPptxOptionsDialog, optionsBlockSlot, optionsPaneSlot, DEFAULT_QUICK_ACCESS_COMMAND_IDS, AI_OPTIONS_CATEGORY, buildCollaborationShareUrl, buildActiveSessionUsers, slideClipboardLabels, sorterPasteInsertAt, SORTER_MIN_ZOOM, SORTER_ZOOM_STEP, SORTER_MAX_ZOOM, canGoPrevious, formatSlideCounter, READING_VIEW_COUNTER_ATTR, canGoNext, READING_VIEW_ATTR, listenForOutlineViewDismiss, OUTLINE_LEVEL_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_ROW_ATTR, OUTLINE_VIEW_ATTR, mobileElapsedSince, nextPresentedSlide, presenterPrevDisabled, presenterNextDisabled, formatMobileElapsed, mobileSlideCounter, presenterPaneAdvancesOnClick, presenterTimerProgress, PRESENTER_CONSOLE_CLASSES, formatElapsed, createCollaborationStateReporter, buildCollaborationState, writeBackReport, cropModeKeyAction, 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, 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, dispatchStatusBarIntent, toggleSheet, describeElementChange, sanitizeMathMl, compileEquationTemplateMathMl, computeAllNotesPages, getNotesPrintableArea, CUSTOM_FONT_ACCEPT, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, resolveViewerAddinRows, 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, sectionAddAfterSlideIndex, masterViewPseudoSlide, PRESENTATION_ANIM_TRIGGER_ATTRIBUTE, applyTableStyleDelete, applyTableStyleMapChange, registerCustomFont, QUICK_ACCESS_COMMAND_CATALOG, handleReadingViewKey, editorThumbnailHeight, buildPreviewElements, deriveSlideFieldContext, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, MERGE_SHAPES_MENU_ITEMS, hasMultipleSelectedTableCells, isElementLocked, ELEMENT_GEOMETRY_SECTIONS, mergeSlideTransition, slideBackgroundClearState, slideBackgroundClearPatch, effectiveDirection, TRIGGER_OPTIONS, effectiveTimingCurve, getAfterAnimationState, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, elementLockTogglePatch, resolveInspectorSections, inspectorTogglePatch, buildTableDataGrid, getDenseGridLayoutPlan, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, applyTableStylePreset, tableStyleAssignmentUpdate, evenColumnWidths, redistributeColumnWidth, evenRowHeights, inspectorNumber, patchChartData, collapseChartTitleRunsForEdit, chartGridlinesState, chartGridlinesPatch, seriesSecondaryAxisPatch, setDataLabelsRangeCache, 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, 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, rebuildDrawingShapesIfCleared, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, cropResetState, cropResetPatch, ARTISTIC_EFFECTS, mediaTrimEndSeconds, trimmedMediaDurationMs, mediaTrimEndAbsoluteMs, mediaTrimResetState, mediaTrimEndMsFromAbsoluteMs, mediaTrimResetPatch, buildOleEditDialogDescriptor, buildOleContentUpdatePatch, buildThemeColorSwatchGrid, themeColorGridView, recentColorsGridView, 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, inspectorFieldPatch, 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, mediaTrimEndMsFromSeconds, validateMediaTrimRange, OFFICE_COLOR_SWATCHES, officeColorSwatchLabel, PATTERN_PRESET_OPTIONS as PATTERN_PRESET_OPTIONS$1, SHAPE_LINE_SECTIONS, SHAPE_EFFECT_SECTIONS, themeColorGridCommit, TEXT_BOX_SECTIONS, buildTextWarpGallery, TEXT_WARP_PRESETS, 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, quickStyleShapeStyle, textWarpStyle, toggleText3dExtrusion, BEVEL_PRESETS, cropFit, cropFill, cropToAspectRatio } from 'ooxml-ui/pptx';
3
+ import { ANIMATION_DIRECTION_LABEL_KEYS, buildQuickStylesGallery, buildSlideTemplateContent, SLIDE_TEMPLATES, homeLaunchers, attachRibbonOverflow, isPanelVisible, parentSelection, slideSpaceElement, isGroupMember, motionPathFor, setMotionPath, RULER_THICKNESS, shouldShowElementHandles, deviceStrokeStageStyle, activateModalFocus, visibleContextualTabs, resolveActiveRibbonTab, visibleRibbonAddIns, isDialogAvailable, resolveScreenTip, RIBBON_ADD_IN_TAB_ATTR, contextualTabLabelKey, RIBBON_CONTEXTUAL_TAB_ATTR, buildTabRowActionsState, isFeatureEnabled, TAB_ROW_ACTION_CLASSES, tabRowActionsAttributes, buildTitleBarState, backstageNavEntries, BACKSTAGE_NAV, listBackstageRecentFiles, BACKSTAGE_BACK_CLASSES, BACKSTAGE_NAV_CLASSES, DEFAULT_INSERT_CHART_KIND, FREEFORM_TOOL_IDS, isDrawingToolVisible, textFontSizePtToPx, withHomeGalleries, drawingHomeControls, homeGalleryControls, homeGalleryApply, shapeOutlineChange, shapeFillChange, editingHomeControls, arrangeHomeControls, arrangePainterHomeControls, arrangeAlignAction, DESIGN_RIBBON_GROUPS, FIXED_TAB_GALLERIES, DESIGN_RIBBON_COMMANDS, designCommandState, CONTEXTUAL_TAB_GROUPS, 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, getSlideBackgroundStyle, EMPTY_RESOLVED_CUSTOMIZATION, getRegionRenderer, ViewerRegionHost, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, customizeBackstageCards, backstageCardsFor, DEFAULT_VIEWER_PROFILE, readStoredViewerPrefs, resolveProfileInitial, AVATAR_COLOR_SWATCHES, clipboardHomeControls, slidesHomeControls, resolveInsertSlideLayout, 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, buildRecordRibbon, trackActiveComment, commentCounts, findCommentLocation, buildReviewRibbon, buildHelpRibbon, galleryTextLabel, pictureSizeHomeControls, chartSelectionHomeControls, dispatchChartSelectionRequest, buildFreeformShapeElement, buildLiveInkStrokeView, beginCropDrag, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, FreeformToolSession, attachOverlayKeyboard, EditPointsSession, EDIT_POINTS_STYLE, resolveCollaborationConfig, resolveViewerRootOptions, buildUserFontFaceStyles, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, isEditingAllowed, resolveAutosaveActivation, viewerOptionsToPreferences, applyPreferenceToOptions, resolveHistoryDepth, attachViewerHyperlinks, shouldConfirmExternalHyperlink, applyAutoCorrect, resolveImageResolutionScale, resolveAllowExternalContent, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, saveFailureMessage, withSaveFailureToast, createSlidePackageClipboard, shouldShowAutosaveRecoveryPrompt, resolveOptionRootClasses, RIBBON_SCOPE_ATTR, resolve3DRenderingFlags, resolveSlideSizeSelection, MIN_TOUCH_TARGET_PX, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, getSelectionTextStyleFlags, TEXT_DECORATION_FLAGS, dispatchCropRequest, applyRibbonGalleryItem, ribbonTransitionsDraftPatch, ribbonTransitionUpdates, ribbonTransitionsSoundChange, ribbonTransitionStockSoundUrl, playSlideTransitionPreview, playAnimationRibbonPreview, SLIDE_SHOW_OPTIONS, createViewerOptionsStore, subtitleSettingsFromOptions, subtitleSettingsLabels, isReviewCommentCommand, runReviewCommentCommand, hasTiltData, RULER_FONT_SIZE, toElementAxes, dragCropHandle, panCropImage, clientToSlidePoint, EDIT_POINTS_TARGET_ATTR, themeToCssVars, createCustomizationController, resolveEffectiveHiddenActions, pruneExpiredAutosaveSnapshots, createDeckStyleHost, galleryDeckView, tableLayoutCells, commitsThroughDeckStyle, resetChartFormatTarget, masterViewCrudActions, applyMasterViewCrudAction, masterViewCrudFailureKey, forgetStepsUsingRemovedParts, EDITOR_CHROME_CSS, ribbonCustomizationCss, applyMotionPathPreset, resetSlideLayoutPath, templateSchemeFromTheme, createBackstagePresentation, playFeedbackSound, shouldDiscardAutosaveOnSuccessfulSave, deleteAutosaveSnapshot, dispatchReadOnlyBannerIntent, readOnlyBannerState, buildFieldSubstitutionContext, setMasterViewBackgroundColor, canUseClipboard, runProgramNoticeStackStyle, observeElementHeight, printPropertiesFrameSlides, printPropertiesSlidesPerPage, PASTE_SPECIAL_OPTIONS, findCanvasElementNode, isHeaderFooterDateTextVisible, isHeaderFooterHeaderTextVisible, isHeaderFooterFooterTextVisible, getDensePanelTouchTargetPx, shouldStickyActionRow, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, computeAnchoredPopupPosition, updateSubtitleSettings, overlayPointerInput, pushRecentColor, mruColorsPatch, shouldClearAutosaveCacheOnClose, clearAutosaveSnapshots, canCropElement, cropSessionChanged, cancelCropUpdate, startCropSession, editorThumbnailWidth, EDITOR_THUMBNAIL_WIDTH, masterViewBackgroundColor, resolvePresentationAction, isPresentationAdvanceClick, toggleBlackboard, visibleTemplateElements, PRESENT_TOOLBAR_CLASSES, resolveEditPointsAvailability, isCurrentLayout, EXPANDED_MAX_HEIGHT, statusBarState, statusBarViewMode, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, resolveDefaultPrintSettings, HANDOUT_OPTIONS, effectiveOrientation, computeSlideCount, estimatePageCount, computeSlideIndices, bindPptxOptionsDialog, optionsBlockSlot, optionsPaneSlot, DEFAULT_QUICK_ACCESS_COMMAND_IDS, AI_OPTIONS_CATEGORY, buildCollaborationShareUrl, buildActiveSessionUsers, slideClipboardLabels, sorterPasteInsertAt, SORTER_MIN_ZOOM, SORTER_ZOOM_STEP, SORTER_MAX_ZOOM, canGoPrevious, formatSlideCounter, READING_VIEW_COUNTER_ATTR, canGoNext, READING_VIEW_ATTR, listenForOutlineViewDismiss, OUTLINE_LEVEL_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_ROW_ATTR, OUTLINE_VIEW_ATTR, mobileElapsedSince, nextPresentedSlide, presenterPrevDisabled, presenterNextDisabled, formatMobileElapsed, mobileSlideCounter, presenterPaneAdvancesOnClick, presenterTimerProgress, PRESENTER_CONSOLE_CLASSES, formatElapsed, createCollaborationStateReporter, buildCollaborationState, writeBackReport, cropModeKeyAction, 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, 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, dispatchStatusBarIntent, toggleSheet, describeElementChange, sanitizeMathMl, compileEquationTemplateMathMl, computeAllNotesPages, getNotesPrintableArea, CUSTOM_FONT_ACCEPT, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, resolveViewerAddinRows, 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, sectionAddAfterSlideIndex, masterViewPseudoSlide, PRESENTATION_ANIM_TRIGGER_ATTRIBUTE, applyTableStyleDelete, applyTableStyleMapChange, registerCustomFont, QUICK_ACCESS_COMMAND_CATALOG, handleReadingViewKey, editorThumbnailHeight, buildPreviewElements, deriveSlideFieldContext, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, MERGE_SHAPES_MENU_ITEMS, hasMultipleSelectedTableCells, isElementLocked, ELEMENT_GEOMETRY_SECTIONS, mergeSlideTransition, slideBackgroundClearState, slideBackgroundClearPatch, effectiveDirection, TRIGGER_OPTIONS, effectiveTimingCurve, getAfterAnimationState, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, elementLockTogglePatch, resolveInspectorSections, inspectorTogglePatch, buildTableDataGrid, getDenseGridLayoutPlan, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, applyTableStylePreset, tableStyleAssignmentUpdate, evenColumnWidths, redistributeColumnWidth, evenRowHeights, inspectorNumber, patchChartData, collapseChartTitleRunsForEdit, chartGridlinesState, chartGridlinesPatch, seriesSecondaryAxisPatch, setDataLabelsRangeCache, imageResetPatch, imageResetState, canInteractWithElement, buildOleObjectNamePatch, strokeColorChange, 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, inspectorFieldPatch, 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, rebuildDrawingShapesIfCleared, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, cropResetState, cropResetPatch, ARTISTIC_EFFECTS, mediaTrimEndSeconds, trimmedMediaDurationMs, mediaTrimEndAbsoluteMs, mediaTrimResetState, mediaTrimEndMsFromAbsoluteMs, mediaTrimResetPatch, buildOleEditDialogDescriptor, buildOleContentUpdatePatch, applyTextStyleUpdate, buildThemeColorSwatchGrid, themeColorGridView, recentColorsGridView, 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, 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, mediaTrimEndMsFromSeconds, validateMediaTrimRange, OFFICE_COLOR_SWATCHES, officeColorSwatchLabel, PATTERN_PRESET_OPTIONS as PATTERN_PRESET_OPTIONS$1, SHAPE_LINE_SECTIONS, shapeQuickStylePatch, SHAPE_EFFECT_SECTIONS, createLiveColorInput, themeColorGridCommit, TEXT_BOX_SECTIONS, buildTextWarpGallery, TEXT_WARP_PRESETS, 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, quickStyleShapeStyle, textWarpStyle, 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 React108, { createContext, useContext, useMemo, useState, useRef, useCallback, useEffect, useLayoutEffect, forwardRef, useSyncExternalStore, useReducer, Fragment as Fragment$1, useId, useDeferredValue, Suspense, lazy } from 'react';
5
+ import React109, { createContext, useContext, useMemo, useState, useRef, useCallback, useEffect, useLayoutEffect, forwardRef, useSyncExternalStore, useReducer, Fragment as Fragment$1, useId, useDeferredValue, Suspense, lazy } from 'react';
6
6
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
7
  import { LuArrowDown, LuArrowUp, LuArrowRight, LuArrowLeft, LuArrowDownRight, LuArrowDownLeft, LuArrowUpRight, LuArrowUpLeft, LuX, LuPanelLeft, LuPanelRight, LuSparkles, LuSettings, LuFolderOpen, LuType, LuPalette, LuFilter, LuPaintbrush, LuPlus, LuClipboardCopy, LuShapes, LuLayoutGrid, LuWand, LuPresentation, LuTextCursorInput, LuFile, LuEllipsis, LuUserRound, LuUpload, LuShare2, LuPrinter, LuDownload, LuSave, LuInfo, LuFilePlus2, LuHouse, LuCopy, LuFileJson, LuBox, LuVideo, LuFileImage, LuFileText, LuDatabase, LuPlay, LuClock3, LuShieldAlert, LuLock, LuUser, LuHardDrive, LuLogIn, LuChevronRight, LuChevronDown, LuMonitor, LuClock, LuRadio, LuCaptions, LuCheck, LuImage, LuSearch, LuHistory, LuCalendarDays, LuHash, LuText, LuCast, LuShieldCheck, LuPanelLeftClose, LuTrash2, LuEyeOff, LuEye, LuLoader, LuSignature, LuTriangleAlert, LuPenTool, LuWifi, LuWifiOff, LuUsers, LuMinus, LuChevronLeft, LuPause, LuCaseSensitive, LuChevronUp, LuReplace, LuGripVertical, LuLoaderCircle, LuGrid2X2, LuStickyNote, LuList, LuBug, LuMove, LuCopyPlus, LuClipboardPaste, LuMessageSquare, LuLayers, LuSettings2, LuLockOpen, LuPencil, LuReply, LuMoveRight, LuRotateCw, LuScissors, LuBookmark, LuPipette } from 'react-icons/lu';
8
8
  import { createPortal } from 'react-dom';
@@ -1135,7 +1135,7 @@ function WebHomeControls({
1135
1135
  host.addEventListener("home-popup", listener);
1136
1136
  return () => host.removeEventListener("home-popup", listener);
1137
1137
  }, [onPopup]);
1138
- return React108.createElement(`pptx-ui-ribbon-home-${family}`, { ref });
1138
+ return React109.createElement(`pptx-ui-ribbon-home-${family}`, { ref });
1139
1139
  }
1140
1140
  function ShapeArrangeExtras(p) {
1141
1141
  const commands = useShapeFormatContext();
@@ -1678,7 +1678,7 @@ function AccountPage() {
1678
1678
  return void 0;
1679
1679
  });
1680
1680
  };
1681
- const version = "4.52.0" ;
1681
+ const version = "4.53.0" ;
1682
1682
  return /* @__PURE__ */ jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
1683
1683
  /* @__PURE__ */ jsxs("section", { className: cardClass, children: [
1684
1684
  /* @__PURE__ */ jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
@@ -5192,7 +5192,7 @@ function ChartQuickActionsOverlay({
5192
5192
  "data-export-ignore": "true",
5193
5193
  style: { position: "absolute", left: 0, top: 0, zIndex: 59 },
5194
5194
  onMouseDown: (e) => e.stopPropagation(),
5195
- children: descriptor.buttons.map((button) => /* @__PURE__ */ jsxs(React108.Fragment, { children: [
5195
+ children: descriptor.buttons.map((button) => /* @__PURE__ */ jsxs(React109.Fragment, { children: [
5196
5196
  /* @__PURE__ */ jsx(
5197
5197
  "button",
5198
5198
  {
@@ -5212,7 +5212,7 @@ function ChartQuickActionsOverlay({
5212
5212
  transformOrigin: "top left"
5213
5213
  },
5214
5214
  className: "flex items-center justify-center rounded bg-white border border-gray-300 shadow-sm hover:bg-gray-100 text-gray-700",
5215
- children: React108.createElement(ICONS3[button.id], { className: "size-3.5" })
5215
+ children: React109.createElement(ICONS3[button.id], { className: "size-3.5" })
5216
5216
  }
5217
5217
  ),
5218
5218
  open === button.id && button.id === "elements" && /* @__PURE__ */ jsxs(
@@ -6359,7 +6359,7 @@ function HorizontalRulerView({ ticks, widthPx, highlight }) {
6359
6359
  );
6360
6360
  }
6361
6361
  var HorizontalRuler = /* @__PURE__ */ withDisplayName(
6362
- /* @__PURE__ */ React108.memo(HorizontalRulerView),
6362
+ /* @__PURE__ */ React109.memo(HorizontalRulerView),
6363
6363
  "HorizontalRuler"
6364
6364
  );
6365
6365
  function VerticalRulerView({ ticks, heightPx, highlight }) {
@@ -6433,7 +6433,7 @@ function VerticalRulerView({ ticks, heightPx, highlight }) {
6433
6433
  );
6434
6434
  }
6435
6435
  var VerticalRuler = /* @__PURE__ */ withDisplayName(
6436
- /* @__PURE__ */ React108.memo(VerticalRulerView),
6436
+ /* @__PURE__ */ React109.memo(VerticalRulerView),
6437
6437
  "VerticalRuler"
6438
6438
  );
6439
6439
  function Ruler({
@@ -8272,7 +8272,7 @@ function slideThumbnailPropsEqual(prev, next) {
8272
8272
  }
8273
8273
  return true;
8274
8274
  }
8275
- var SlideThumbnail = /* @__PURE__ */ React108.memo(
8275
+ var SlideThumbnail = /* @__PURE__ */ React109.memo(
8276
8276
  SlideThumbnailImpl,
8277
8277
  slideThumbnailPropsEqual
8278
8278
  );
@@ -8534,7 +8534,7 @@ function FindReplacePanel({
8534
8534
  }, []);
8535
8535
  useEffect(() => {
8536
8536
  onPerformFind();
8537
- }, [findQuery, findMatchCase, findIncludeNotes, findIncludeChartTitles, findIncludeChartData]);
8537
+ }, []);
8538
8538
  const handleSearchKeyDown = useCallback(
8539
8539
  (event) => {
8540
8540
  if (event.key === "Escape") {
@@ -8972,7 +8972,7 @@ function LazyThumbnailInner({
8972
8972
  }
8973
8973
  ) });
8974
8974
  }
8975
- var LazyThumbnail = /* @__PURE__ */ React108.memo(LazyThumbnailInner);
8975
+ var LazyThumbnail = /* @__PURE__ */ React109.memo(LazyThumbnailInner);
8976
8976
  function declaredSectionFacts(groups, sectionId) {
8977
8977
  const declared = groups.filter((group) => group.id !== DEFAULT_SECTION_GROUP_ID && group.id !== UNGROUPED_SECTION_ID).map((group) => group.id);
8978
8978
  return {
@@ -9140,7 +9140,7 @@ function SlideItemInner({
9140
9140
  }
9141
9141
  );
9142
9142
  }
9143
- var SlideItem = /* @__PURE__ */ React108.memo(SlideItemInner);
9143
+ var SlideItem = /* @__PURE__ */ React109.memo(SlideItemInner);
9144
9144
  function useSlidePaneCallbacks(onMoveSlide, onRenameSection, onToggleSectionCollapse) {
9145
9145
  const [collapsedSections, setCollapsedSections] = useState({});
9146
9146
  const [renamingSectionId, setRenamingSectionId] = useState(null);
@@ -10553,7 +10553,7 @@ function arePropsEqual(prev, next) {
10553
10553
  }
10554
10554
  return true;
10555
10555
  }
10556
- var SlideCard = /* @__PURE__ */ React108.memo(SlideCardImpl, arePropsEqual);
10556
+ var SlideCard = /* @__PURE__ */ React109.memo(SlideCardImpl, arePropsEqual);
10557
10557
  var ICON_CLASS = "h-3.5 w-3.5 text-muted-foreground";
10558
10558
  function SorterContextMenu({
10559
10559
  x,
@@ -10978,7 +10978,7 @@ function SlideSorterOverlay({
10978
10978
  count: state.selectedSlideIds.length
10979
10979
  }) })
10980
10980
  ] }),
10981
- React108.createElement("pptx-ui-slide-clipboard", {
10981
+ React109.createElement("pptx-ui-slide-clipboard", {
10982
10982
  ref: (node) => {
10983
10983
  if (!node) {
10984
10984
  return;
@@ -11894,8 +11894,8 @@ function SlideNotesPanel({
11894
11894
  onHeightChange
11895
11895
  }) {
11896
11896
  const { t } = useTranslation();
11897
- const rootRef = React108.useRef(null);
11898
- React108.useEffect(() => {
11897
+ const rootRef = React109.useRef(null);
11898
+ React109.useEffect(() => {
11899
11899
  const el = rootRef.current;
11900
11900
  if (!el || !onHeightChange) {
11901
11901
  return void 0;
@@ -13738,9 +13738,9 @@ function PresentationSubtitleBar({
13738
13738
  function renderNotesSegments(segments) {
13739
13739
  return notesSegmentsToSpans(segments).map((span) => {
13740
13740
  if (span.kind === "break") {
13741
- return React108.createElement("br", { key: span.key });
13741
+ return React109.createElement("br", { key: span.key });
13742
13742
  }
13743
- return React108.createElement(
13743
+ return React109.createElement(
13744
13744
  "span",
13745
13745
  { key: span.key, style: span.style },
13746
13746
  span.text
@@ -13916,7 +13916,7 @@ function scaledSlidePreviewPropsEqual(prev, next) {
13916
13916
  }
13917
13917
  return true;
13918
13918
  }
13919
- var ScaledSlidePreview = /* @__PURE__ */ React108.memo(
13919
+ var ScaledSlidePreview = /* @__PURE__ */ React109.memo(
13920
13920
  ScaledSlidePreviewImpl,
13921
13921
  scaledSlidePreviewPropsEqual
13922
13922
  );
@@ -15162,7 +15162,7 @@ function EffectSoundRow({
15162
15162
  onPickStock
15163
15163
  }) {
15164
15164
  const { t } = useTranslation();
15165
- const fileInputRef = React108.useRef(null);
15165
+ const fileInputRef = React109.useRef(null);
15166
15166
  const selectedValue = soundState.catalogueId ?? (soundState.hasSound ? CURRENT_VALUE : NONE_VALUE);
15167
15167
  const handleSelectChange = (event) => {
15168
15168
  const value = event.target.value;
@@ -18550,7 +18550,7 @@ function ConnectorArrowsSection({
18550
18550
  ["Start", "End"].map((end) => {
18551
18551
  const widthKey = end === "Start" ? "connectorStartArrowWidth" : "connectorEndArrowWidth";
18552
18552
  const lengthKey = end === "Start" ? "connectorStartArrowLength" : "connectorEndArrowLength";
18553
- return /* @__PURE__ */ jsxs(React108.Fragment, { children: [
18553
+ return /* @__PURE__ */ jsxs(React109.Fragment, { children: [
18554
18554
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
18555
18555
  /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t(END_LABEL_KEYS[end].width) }),
18556
18556
  /* @__PURE__ */ jsx(
@@ -19360,14 +19360,87 @@ var DIS = "disabled:opacity-40 disabled:cursor-not-allowed";
19360
19360
  var LBL = "text-muted-foreground";
19361
19361
  var COL2 = "col-span-2";
19362
19362
  var isLineish = (el, st) => el.type === "connector" || st === "line";
19363
+ var LiveEditContext = /* @__PURE__ */ createContext(null);
19364
+ var LiveEditProvider = LiveEditContext.Provider;
19365
+ function useLiveEdit() {
19366
+ return useContext(LiveEditContext);
19367
+ }
19368
+ var changeHandlers = /* @__PURE__ */ new WeakMap();
19369
+ function settleOnChange(event) {
19370
+ const input = event.currentTarget;
19371
+ changeHandlers.get(input)?.current(input.value);
19372
+ }
19373
+ function liveController(latest) {
19374
+ return createLiveColorInput({
19375
+ read: () => {
19376
+ const { live, value } = latest.current;
19377
+ return live?.element ? { key: live.element.id, color: value, value: live.element } : void 0;
19378
+ },
19379
+ patch: (el, hex) => latest.current.patch?.(el, hex),
19380
+ lookup: (key) => latest.current.live?.elementById(key),
19381
+ preview: (patch, key) => latest.current.live?.previewElement(key, patch),
19382
+ commit: (_patch, _key, hex) => latest.current.onApply(hex),
19383
+ remember: (hex) => latest.current.pushColor(hex)
19384
+ });
19385
+ }
19386
+ function LiveColorInput({
19387
+ value,
19388
+ onApply,
19389
+ patch,
19390
+ ...rest
19391
+ }) {
19392
+ const live = useLiveEdit();
19393
+ const { pushColor } = useRecentColors();
19394
+ const latest = useRef({ value, onApply, patch, live, pushColor });
19395
+ latest.current = { value, onApply, patch, live, pushColor };
19396
+ const isLive = Boolean(live && patch);
19397
+ const controlRef = useRef(null);
19398
+ controlRef.current ??= liveController(latest);
19399
+ const control = controlRef.current;
19400
+ const onChangeRef = useRef((hex) => {
19401
+ if (latest.current.live && latest.current.patch) {
19402
+ control.change(hex);
19403
+ } else {
19404
+ latest.current.pushColor(hex);
19405
+ }
19406
+ });
19407
+ const attach = useCallback((input) => {
19408
+ if (input) {
19409
+ changeHandlers.set(input, onChangeRef);
19410
+ input.addEventListener("change", settleOnChange);
19411
+ }
19412
+ }, []);
19413
+ return /* @__PURE__ */ jsx(
19414
+ "input",
19415
+ {
19416
+ ...rest,
19417
+ type: "color",
19418
+ value,
19419
+ ref: attach,
19420
+ onChange: (event) => {
19421
+ if (!isLive) {
19422
+ onApply(event.target.value);
19423
+ } else if (event.nativeEvent.type === "input") {
19424
+ control.input(event.target.value);
19425
+ }
19426
+ },
19427
+ onBlur: (event) => {
19428
+ if (isLive) {
19429
+ control.blur(event.target.value);
19430
+ }
19431
+ }
19432
+ }
19433
+ );
19434
+ }
19363
19435
  function InspectorFields({
19364
19436
  sections,
19365
19437
  target,
19366
19438
  onPatch,
19367
- disabled = false
19439
+ disabled = false,
19440
+ liveTarget,
19441
+ livePatch
19368
19442
  }) {
19369
19443
  const { t } = useTranslation();
19370
- const commitRecentColor = useRecentColorCommit();
19371
19444
  const views = resolveInspectorSections(sections, target);
19372
19445
  const change = (sectionId, fieldId, raw) => {
19373
19446
  const patch = inspectorFieldPatch(sections, sectionId, fieldId, target, raw);
@@ -19415,15 +19488,23 @@ function InspectorFields({
19415
19488
  return /* @__PURE__ */ jsxs("label", { className: cls, children: [
19416
19489
  /* @__PURE__ */ jsx("span", { className: LBL, children: label }),
19417
19490
  /* @__PURE__ */ jsx(
19418
- "input",
19491
+ LiveColorInput,
19419
19492
  {
19420
- type: "color",
19421
19493
  "data-testid": field.testId,
19422
19494
  "aria-label": label,
19423
19495
  value: String(field.value),
19424
19496
  disabled,
19425
- ref: commitRecentColor,
19426
- onChange: (e) => change(sectionId, field.id, e.target.value),
19497
+ onApply: (hex) => change(sectionId, field.id, hex),
19498
+ patch: liveTarget && livePatch ? (el, hex) => {
19499
+ const fieldPatch = inspectorFieldPatch(
19500
+ sections,
19501
+ sectionId,
19502
+ field.id,
19503
+ liveTarget(el),
19504
+ hex
19505
+ );
19506
+ return fieldPatch === void 0 ? void 0 : livePatch(el, fieldPatch);
19507
+ } : void 0,
19427
19508
  className: `h-8 ${SEL} px-1`
19428
19509
  }
19429
19510
  )
@@ -19448,7 +19529,7 @@ function InspectorFields({
19448
19529
  )
19449
19530
  ] }, key);
19450
19531
  };
19451
- return /* @__PURE__ */ jsx(Fragment, { children: views.map((section) => /* @__PURE__ */ jsxs(React108.Fragment, { children: [
19532
+ return /* @__PURE__ */ jsx(Fragment, { children: views.map((section) => /* @__PURE__ */ jsxs(React109.Fragment, { children: [
19452
19533
  section.toggleable ? /* @__PURE__ */ jsxs("label", { className: `inline-flex items-center gap-2 text-foreground ${COL2}`, children: [
19453
19534
  /* @__PURE__ */ jsx(
19454
19535
  WebCheckbox,
@@ -20468,11 +20549,11 @@ function ColorPickerRow({
20468
20549
  selectedRef,
20469
20550
  disabled,
20470
20551
  prefix,
20471
- onChange
20552
+ onChange,
20553
+ styleChange
20472
20554
  }) {
20473
20555
  const { t } = useTranslation();
20474
20556
  const { pushColor } = useRecentColors();
20475
- const commitRecentColor = useRecentColorCommit();
20476
20557
  const commit = (color, ref) => {
20477
20558
  onChange(color, ref);
20478
20559
  pushColor(color);
@@ -20487,13 +20568,12 @@ function ColorPickerRow({
20487
20568
  /* @__PURE__ */ jsx("span", { className: LBL, children: label }),
20488
20569
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
20489
20570
  /* @__PURE__ */ jsx(
20490
- "input",
20571
+ LiveColorInput,
20491
20572
  {
20492
- type: "color",
20493
20573
  value,
20494
20574
  disabled,
20495
- ref: commitRecentColor,
20496
- onChange: (e) => onChange(e.target.value),
20575
+ onApply: onChange,
20576
+ patch: styleChange && ((el, hex) => shapeStyleChangePatch(el, hex, styleChange)),
20497
20577
  className: `h-8 flex-1 ${SEL} px-1 ${DIS}`
20498
20578
  }
20499
20579
  ),
@@ -20542,6 +20622,9 @@ function ColorPickerRow({
20542
20622
  /* @__PURE__ */ jsx(RecentColorsRow, { disabled, onCommit: commit })
20543
20623
  ] });
20544
20624
  }
20625
+ function shapeStyleChangePatch(el, hex, change) {
20626
+ return hasShapeProperties(el) ? shapeQuickStylePatch(el, change(hex, el.shapeStyle ?? {})) : void 0;
20627
+ }
20545
20628
  function GradientStopRow({
20546
20629
  stop: stop2,
20547
20630
  index,
@@ -20621,6 +20704,14 @@ function GradientStopRow({
20621
20704
  ] })
20622
20705
  ] });
20623
20706
  }
20707
+ var patternForeground = (color) => ({
20708
+ fillMode: "pattern",
20709
+ fillColor: color
20710
+ });
20711
+ var patternBackground = (color) => ({
20712
+ fillMode: "pattern",
20713
+ fillPatternBackgroundColor: color
20714
+ });
20624
20715
  function FillAdvancedControls({
20625
20716
  style,
20626
20717
  gradientStops,
@@ -20736,7 +20827,8 @@ function FillAdvancedControls({
20736
20827
  prefix: "pattern-fg",
20737
20828
  value: normalizeHexColor(style?.fillColor, DEFAULT_FILL_COLOR),
20738
20829
  disabled: isLine,
20739
- onChange: (color) => onUpdateShapeStyle({ fillMode: "pattern", fillColor: color })
20830
+ onChange: (color) => onUpdateShapeStyle(patternForeground(color)),
20831
+ styleChange: patternForeground
20740
20832
  }
20741
20833
  ),
20742
20834
  /* @__PURE__ */ jsx(
@@ -20746,10 +20838,8 @@ function FillAdvancedControls({
20746
20838
  prefix: "pattern-bg",
20747
20839
  value: normalizeHexColor(style?.fillPatternBackgroundColor, "#ffffff"),
20748
20840
  disabled: isLine,
20749
- onChange: (color) => onUpdateShapeStyle({
20750
- fillMode: "pattern",
20751
- fillPatternBackgroundColor: color
20752
- })
20841
+ onChange: (color) => onUpdateShapeStyle(patternBackground(color)),
20842
+ styleChange: patternBackground
20753
20843
  }
20754
20844
  )
20755
20845
  ] }),
@@ -20839,6 +20929,9 @@ function QuickStylesGallery({
20839
20929
  /* @__PURE__ */ jsx("pptx-ui-ribbon-gallery", { ref, mode: "panel", compact: true })
20840
20930
  ] });
20841
20931
  }
20932
+ function shapeStyleOf(el) {
20933
+ return hasShapeProperties(el) ? el.shapeStyle : void 0;
20934
+ }
20842
20935
  function StrokeEffectsSection({
20843
20936
  style,
20844
20937
  isLine,
@@ -20854,7 +20947,8 @@ function StrokeEffectsSection({
20854
20947
  prefix: "stroke",
20855
20948
  value: normalizeHexColor(style?.strokeColor, DEFAULT_STROKE_COLOR),
20856
20949
  selectedRef: style?.strokeColorRef,
20857
- onChange: onSetStrokeColor
20950
+ onChange: onSetStrokeColor,
20951
+ styleChange: (hex, current) => shapeOutlineChange(hex, void 0, current)
20858
20952
  }
20859
20953
  ),
20860
20954
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
@@ -20878,7 +20972,9 @@ function StrokeEffectsSection({
20878
20972
  {
20879
20973
  sections: SHAPE_EFFECT_SECTIONS,
20880
20974
  target: style,
20881
- onPatch: onUpdateShapeStyle
20975
+ onPatch: onUpdateShapeStyle,
20976
+ liveTarget: shapeStyleOf,
20977
+ livePatch: shapeQuickStylePatch
20882
20978
  }
20883
20979
  )
20884
20980
  ] });
@@ -20966,7 +21062,8 @@ function FillStrokeProperties({
20966
21062
  value: normalizeHexColor(style?.fillColor, DEFAULT_FILL_COLOR),
20967
21063
  selectedRef: style?.fillColorRef,
20968
21064
  disabled: line,
20969
- onChange: onSetFillColor
21065
+ onChange: onSetFillColor,
21066
+ styleChange: (hex) => shapeFillChange(hex)
20970
21067
  }
20971
21068
  ),
20972
21069
  /* @__PURE__ */ jsx(
@@ -21688,7 +21785,7 @@ function TextWarpGallery({
21688
21785
  onUpdateTextStyle
21689
21786
  }) {
21690
21787
  const { t } = useTranslation();
21691
- const [expanded, setExpanded] = React108.useState(false);
21788
+ const [expanded, setExpanded] = React109.useState(false);
21692
21789
  const currentPreset = ts?.textWarpPreset || "textNoShape";
21693
21790
  const descriptor = useMemo(() => buildTextWarpGallery(ts?.textWarpPreset), [ts?.textWarpPreset]);
21694
21791
  const ref = useRef(null);
@@ -21758,6 +21855,9 @@ function TextAdvancedSections({
21758
21855
  /* @__PURE__ */ jsx(Text3DProperties, { ts, onUpdateTextStyle })
21759
21856
  ] });
21760
21857
  }
21858
+ function textColorPatch(el, hex) {
21859
+ return hasTextProperties(el) ? applyTextStyleUpdate(el, { color: hex, colorRef: void 0 }, null).patch : void 0;
21860
+ }
21761
21861
  function ShapeTextPanels({
21762
21862
  selectedElement,
21763
21863
  canEdit,
@@ -21796,7 +21896,7 @@ function ShapeTextPanels({
21796
21896
  canEdit,
21797
21897
  onUpdateShapeStyle: onUpdateElementStyle,
21798
21898
  onSetFillColor: (hex, ref) => onUpdateElementStyle({ fillColor: hex, fillMode: "solid", fillColorRef: ref }),
21799
- onSetStrokeColor: (hex, ref) => onUpdateElementStyle(shapeOutlineChange(hex, ref, selectedElement.shapeStyle ?? {}))
21899
+ onSetStrokeColor: (hex, ref) => onUpdateElementStyle(strokeColorChange(selectedElement, hex, ref))
21800
21900
  }
21801
21901
  )
21802
21902
  ] }),
@@ -21822,13 +21922,14 @@ function ShapeTextPanels({
21822
21922
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
21823
21923
  /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Color" }),
21824
21924
  /* @__PURE__ */ jsx(
21825
- DebouncedColorInput,
21925
+ LiveColorInput,
21826
21926
  {
21827
21927
  disabled: !canEdit,
21828
- ariaLabel: "Text Color",
21928
+ "aria-label": "Text Color",
21829
21929
  value: normalizeHexColor(selectedElement.textStyle?.color, "#000000"),
21830
21930
  className: "w-full h-7 rounded border border-border bg-transparent cursor-pointer",
21831
- onCommit: (hex) => onUpdateTextStyle({ color: hex, colorRef: void 0 })
21931
+ onApply: (hex) => onUpdateTextStyle({ color: hex, colorRef: void 0 }),
21932
+ patch: textColorPatch
21832
21933
  }
21833
21934
  )
21834
21935
  ] }),
@@ -22132,7 +22233,7 @@ function SmartArtStyleControls({
22132
22233
  onChangeStyle
22133
22234
  }) {
22134
22235
  const { t } = useTranslation();
22135
- const translate = React108.useCallback((key) => t(key), [t]);
22236
+ const translate = React109.useCallback((key) => t(key), [t]);
22136
22237
  return /* @__PURE__ */ jsxs(Fragment, { children: [
22137
22238
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1 text-[11px]", children: [
22138
22239
  /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.smartart.colorScheme") }),
@@ -22185,7 +22286,7 @@ function SmartArtPropertiesPanel({
22185
22286
  }) {
22186
22287
  const { t } = useTranslation();
22187
22288
  const { pushColor } = useRecentColors();
22188
- const paneRef = React108.useRef(null);
22289
+ const paneRef = React109.useRef(null);
22189
22290
  const applySmartArtData = (newData) => {
22190
22291
  const reflowed = box ? rebuildDrawingShapesIfCleared(
22191
22292
  newData,
@@ -22197,12 +22298,12 @@ function SmartArtPropertiesPanel({
22197
22298
  ) : newData;
22198
22299
  onUpdateElement({ smartArtData: reflowed });
22199
22300
  };
22200
- const applyRef = React108.useRef(applySmartArtData);
22301
+ const applyRef = React109.useRef(applySmartArtData);
22201
22302
  applyRef.current = applySmartArtData;
22202
22303
  const updateSmartArt = (patch) => {
22203
22304
  applySmartArtData({ ...smartArtData, ...patch });
22204
22305
  };
22205
- React108.useLayoutEffect(() => {
22306
+ React109.useLayoutEffect(() => {
22206
22307
  if (paneRef.current) {
22207
22308
  paneRef.current.state = {
22208
22309
  smartArtData,
@@ -22211,7 +22312,7 @@ function SmartArtPropertiesPanel({
22211
22312
  };
22212
22313
  }
22213
22314
  }, [smartArtData, canEdit, t]);
22214
- React108.useEffect(() => {
22315
+ React109.useEffect(() => {
22215
22316
  const pane = paneRef.current;
22216
22317
  if (!pane) {
22217
22318
  return;
@@ -23648,7 +23749,7 @@ function CommentBody({ text, mentions, className }) {
23648
23749
  index
23649
23750
  ) : (
23650
23751
  // eslint-disable-next-line react/no-array-index-key -- segments are positional
23651
- /* @__PURE__ */ jsx(React108.Fragment, { children: segment.text }, index)
23752
+ /* @__PURE__ */ jsx(React109.Fragment, { children: segment.text }, index)
23652
23753
  )
23653
23754
  ) });
23654
23755
  }
@@ -25165,7 +25266,7 @@ function PresentationPropertiesPanel({
25165
25266
  onUpdateTagCollections
25166
25267
  }) {
25167
25268
  const { t } = useTranslation();
25168
- const handleTransitionChange = React108.useCallback(
25269
+ const handleTransitionChange = React109.useCallback(
25169
25270
  (updates) => {
25170
25271
  onUpdateSlide({
25171
25272
  transition: mergeSlideTransition(activeSlide?.transition, updates)
@@ -28355,10 +28456,17 @@ function ViewerInspector({
28355
28456
  tableStyleMap,
28356
28457
  onTableStyleMapChange,
28357
28458
  onDeleteTableStyle,
28358
- panelWidth
28459
+ panelWidth,
28460
+ onPreviewElement,
28461
+ elementById
28359
28462
  }) {
28360
28463
  const { t } = useTranslation();
28361
28464
  const regionRenderer = useRegionRenderer("inspector");
28465
+ const liveEdit = onPreviewElement ? {
28466
+ element: selectedElement,
28467
+ previewElement: onPreviewElement,
28468
+ elementById: elementById ?? (() => void 0)
28469
+ } : null;
28362
28470
  if (!isOpen) {
28363
28471
  return null;
28364
28472
  }
@@ -28386,7 +28494,7 @@ function ViewerInspector({
28386
28494
  "aria-label": t("pptx.inspector.properties"),
28387
28495
  className: "h-full flex-shrink-0 max-md:absolute max-md:inset-x-0 max-md:bottom-0 max-md:top-auto max-md:z-30",
28388
28496
  style: panelWidth ? { width: panelWidth } : void 0,
28389
- children: /* @__PURE__ */ jsx(
28497
+ children: /* @__PURE__ */ jsx(LiveEditProvider, { value: liveEdit, children: /* @__PURE__ */ jsx(
28390
28498
  InspectorPane,
28391
28499
  {
28392
28500
  isOpen,
@@ -28463,7 +28571,7 @@ function ViewerInspector({
28463
28571
  onDeleteTableStyle,
28464
28572
  panelWidth
28465
28573
  }
28466
- )
28574
+ ) })
28467
28575
  }
28468
28576
  );
28469
28577
  }
@@ -28619,7 +28727,7 @@ function ViewerToolbarSection(props) {
28619
28727
  },
28620
28728
  [activeSlide, propertyHandlers]
28621
28729
  );
28622
- const scopedLayoutOptions = React108.useMemo(
28730
+ const scopedLayoutOptions = React109.useMemo(
28623
28731
  () => scopeLayoutOptionsToActiveSlide(s.layoutOptions, activeSlide),
28624
28732
  [s.layoutOptions, activeSlide]
28625
28733
  );
@@ -31144,6 +31252,8 @@ function ViewerSidePanels(props) {
31144
31252
  onUpdateElementStyle: ops.updateSelectedShapeStyle,
31145
31253
  onUpdateTextStyle: ops.updateSelectedTextStyle,
31146
31254
  onUpdateElement: ops.updateSelectedElement,
31255
+ onPreviewElement: (id, patch) => history.withoutUndoStep(() => ops.updateElementById(id, patch)),
31256
+ elementById: (id) => s.elementLookup.get(id),
31147
31257
  onApplySelection: ops.applySelection,
31148
31258
  onSetCanvasSize: s.setCanvasSize,
31149
31259
  slideSizeEmu: s.slideSizeEmu,
@@ -33393,10 +33503,16 @@ function useShapeFormatCommands(input) {
33393
33503
  crop
33394
33504
  };
33395
33505
  }
33396
- function useViewerCustomization(customization, legacyHiddenActions, optionsStore) {
33506
+ function useViewerCustomization(customization, legacyHiddenActions, optionsStore, allowExternalContent) {
33397
33507
  const controllerRef = useRef(null);
33398
- controllerRef.current ??= createCustomizationController(customization);
33508
+ if (!controllerRef.current) {
33509
+ controllerRef.current = createCustomizationController(customization);
33510
+ controllerRef.current.setAllowExternalContent(allowExternalContent);
33511
+ }
33399
33512
  const controller = controllerRef.current;
33513
+ useLayoutEffect(() => {
33514
+ controller.setAllowExternalContent(allowExternalContent);
33515
+ }, [controller, allowExternalContent]);
33400
33516
  const appliedRef = useRef(customization);
33401
33517
  useLayoutEffect(() => {
33402
33518
  if (appliedRef.current === customization) {
@@ -33579,7 +33695,8 @@ var PowerPointViewerBody = /* @__PURE__ */ forwardRef(
33579
33695
  ai,
33580
33696
  customization,
33581
33697
  initialSlide,
33582
- googleFonts
33698
+ googleFonts,
33699
+ allowExternalContent
33583
33700
  } = props;
33584
33701
  const hostCanEdit = canEditProp && !readOnly;
33585
33702
  const collaboration = resolveCollaborationConfig(collaborationInput);
@@ -33657,7 +33774,12 @@ var PowerPointViewerBody = /* @__PURE__ */ forwardRef(
33657
33774
  [storage]
33658
33775
  );
33659
33776
  const { optionsStore, options: viewerOptions } = useViewerOptions();
33660
- const custom = useViewerCustomization(customization, legacyHiddenActions, optionsStore);
33777
+ const custom = useViewerCustomization(
33778
+ customization,
33779
+ legacyHiddenActions,
33780
+ optionsStore,
33781
+ allowExternalContent
33782
+ );
33661
33783
  const { resolved: customizationResolved, hiddenActions } = custom;
33662
33784
  const aiEnabled = Boolean(ai) && isFeatureEnabled(customizationResolved, "ai");
33663
33785
  const optionsAvailable = isDialogAvailable(customizationResolved, "options");
@@ -34025,11 +34147,7 @@ ${url}`)
34025
34147
  history,
34026
34148
  embeddedFontFamilies: state.embeddedFonts.map((font) => font.name)
34027
34149
  });
34028
- useEffect(() => {
34029
- state.setSelectedElementId(null);
34030
- state.setSelectedElementIds([]);
34031
- state.setInlineEditingElementId(null);
34032
- }, [activeSlideIndex]);
34150
+ useClearSelectionOnSlideChange(state, activeSlideIndex);
34033
34151
  const zoomBeforePresentRef = useRef(null);
34034
34152
  useEffect(() => {
34035
34153
  if (mode !== "present") {
@@ -34121,7 +34239,7 @@ ${url}`)
34121
34239
  // Trust Center > "Allow external content": core defaults this to false
34122
34240
  // (SSRF/privacy-safe), so only an explicit `true` here lets remote
34123
34241
  // http(s) image sources actually load.
34124
- allowExternalImages: viewerOptions.trust.allowExternalContent,
34242
+ allowExternalImages: resolveAllowExternalContent(allowExternalContent, viewerOptions),
34125
34243
  initialSlide,
34126
34244
  googleFonts,
34127
34245
  setReadOnlyRecommendation: readOnlyRec.setRecommendation,
@@ -34173,7 +34291,7 @@ ${url}`)
34173
34291
  handler: handlerRef.current,
34174
34292
  slides: state.slides,
34175
34293
  templateElementsBySlideId: state.templateElementsBySlideId,
34176
- allowExternalImages: viewerOptions.trust.allowExternalContent,
34294
+ allowExternalImages: resolveAllowExternalContent(allowExternalContent, viewerOptions),
34177
34295
  editable: canEdit
34178
34296
  } : null,
34179
34297
  commit: (result) => {