pptx-react-viewer 2.20.1 → 2.20.3

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 (40) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/{chunk-GKOJO67G.js → chunk-463BMH5Q.js} +10 -0
  3. package/dist/chunk-463BMH5Q.js.br +0 -0
  4. package/dist/chunk-463BMH5Q.js.gz +0 -0
  5. package/dist/{chunk-WCJ3HF4C.js → chunk-4JENQPJ3.js} +145 -131
  6. package/dist/chunk-4JENQPJ3.js.br +0 -0
  7. package/dist/chunk-4JENQPJ3.js.gz +0 -0
  8. package/dist/{chunk-HZ2PAL7P.mjs → chunk-AD4LAXDJ.mjs} +93 -79
  9. package/dist/chunk-AD4LAXDJ.mjs.br +0 -0
  10. package/dist/chunk-AD4LAXDJ.mjs.gz +0 -0
  11. package/dist/{chunk-SZJLZWEX.mjs → chunk-YAKDNRU7.mjs} +10 -0
  12. package/dist/chunk-YAKDNRU7.mjs.br +0 -0
  13. package/dist/chunk-YAKDNRU7.mjs.gz +0 -0
  14. package/dist/index.js +11 -11
  15. package/dist/index.js.br +0 -0
  16. package/dist/index.js.gz +0 -0
  17. package/dist/index.mjs +2 -2
  18. package/dist/index.mjs.br +0 -0
  19. package/dist/index.mjs.gz +0 -0
  20. package/dist/internals.js +73 -73
  21. package/dist/internals.js.br +0 -0
  22. package/dist/internals.js.gz +0 -0
  23. package/dist/internals.mjs +1 -1
  24. package/dist/internals.mjs.br +0 -0
  25. package/dist/internals.mjs.gz +0 -0
  26. package/dist/viewer/index.js +14 -14
  27. package/dist/viewer/index.js.br +0 -0
  28. package/dist/viewer/index.js.gz +0 -0
  29. package/dist/viewer/index.mjs +2 -2
  30. package/dist/viewer/index.mjs.br +0 -0
  31. package/dist/viewer/index.mjs.gz +0 -0
  32. package/package.json +2 -2
  33. package/dist/chunk-GKOJO67G.js.br +0 -0
  34. package/dist/chunk-GKOJO67G.js.gz +0 -0
  35. package/dist/chunk-HZ2PAL7P.mjs.br +0 -0
  36. package/dist/chunk-HZ2PAL7P.mjs.gz +0 -0
  37. package/dist/chunk-SZJLZWEX.mjs.br +0 -0
  38. package/dist/chunk-SZJLZWEX.mjs.gz +0 -0
  39. package/dist/chunk-WCJ3HF4C.js.br +0 -0
  40. package/dist/chunk-WCJ3HF4C.js.gz +0 -0
Binary file
Binary file
@@ -1,5 +1,5 @@
1
1
  import { computeFocusTargets, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, toRenderableParts } from './chunk-RJ26DQIM.mjs';
2
- import { useReducedMotion, useViewerState, useViewerOptions, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useLayoutSwitching, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, downloadBlob } from './chunk-SZJLZWEX.mjs';
2
+ import { useReducedMotion, useViewerState, useViewerOptions, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useLayoutSwitching, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, downloadBlob } from './chunk-YAKDNRU7.mjs';
3
3
  import { MIN_ELEMENT_SIZE, DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getCropShapeClipPath, getImageTilingStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, buildTextBody3DSceneStyle, SLIDE_NAV_THUMBNAIL_WIDTH, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, TOOLBAR_SECTIONS, DEFAULT_SECTION_GROUP_ID, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, HYPERLINK_COLOR, GRID_SIZE, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, THEME_COLOR_SWATCHES, STROKE_DASH_OPTIONS } from './chunk-O5BR276S.mjs';
4
4
  import { LOCALE_CATALOG, translationsEn } from './chunk-MZOZNBRO.mjs';
5
5
  import { hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, getElementTransform, getAriaRoleDescription, getAriaLabel, getAriaRole, resolveElementInteractivity, isEditableTextElement, isElementRendered, isElementActionable, getImageEffectsOpacity, getImageEffectsFilter, getElementTransformWithoutRotation, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, ACTION_BUTTON_PRESETS, mediaTransportVisible, isInkElement, getGroupChildParentFill, getElementLabel, SWITCHABLE_LAYOUT_TYPES, DEFAULT_VIEWER_OPTIONS, compileEquationTemplateMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, resolveAutosaveActivation, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, shouldShowAutosaveRecoveryPrompt, paintedStrokeWidth, buildCssGradientFromShapeStyle, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, getComputedEffectStyle, getSoftEdgeSvgFilter, buildStrokeOutline, buildHollowHitOutline, strokeOutlineViewBox, revealedSmartArtNodeCount, buildSmartArtA11y, computeSmartArtLayout, flattenNodes, buildSummaryZoomView, isImageTiled, getImageColorWashStyle, isImageLikeElement, placeCaretAtEnd, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, ensureChartInteractionStyles, applyChartPartHighlight, applyChartBuildReveal, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, RULER_THICKNESS, RULER_FONT_SIZE, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, themeToCssVars, applyMotionPathPreset, resetSlideLayoutPath, DEFAULT_INSERT_CHART_KIND, hasCopyableFormat, templateSchemeFromTheme, createBackstagePresentation, setMasterViewBackgroundColor, printPropertiesFrameSlides, printPropertiesSlidesPerPage, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, DEFAULT_PALETTE2, resolvePalette, computeDrawingViewBox, projectDrawingShapes, styleShadowFilter, resolveDrawingShapeNodeId, buildChromeStyle, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, findChartPartTarget, advanceChartValueDrag, beginChartValueDrag, withChartTitle, buildSmartArt3DModel, extractPathPoints, generatePressureCircles, isBrowserOpenableMime, formatBytes, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, getWarpPath, getSlideBackgroundStyle, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, masterViewBackgroundColor, buildFieldSubstitutionContext, shouldConfirmExternalHyperlink, safeOpenUrl, isPpactionUrl, parsePpactionUrl, isPresentationAdvanceClick, toggleBlackboard, PRESENT_TOOLBAR_CLASSES, buildContextMenuEntries, themeColorSchemesEqual, EXPANDED_MAX_HEIGHT, STATUS_BAR_CLASSES, buildBarActions, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, clampPercent, 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, centeredSvgTextLines, computeInlineEditorRect, findSmartArtNodeText, setSmartArtNodeStyle, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, updateSmartArtNodeText, groupIntoParagraphs, substituteFieldText, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, INSERT_CHART_TYPES, CHARACTER_SPACING_OPTIONS, RIBBON_SHAPE_SWATCHES, shapeFillChange, shapeOutlineChange, readRibbonTransitionDraft, ribbonTransitionUpdates, playSlideTransitionPreview, RIBBON_TRANSITION_PRESETS, DEFAULT_MOTION_PATH_PRESET_ID, SLIDE_SHOW_OPTIONS, slideShowOptionChange, readSlideShowOption, SLIDE_VIRTUALIZATION_THRESHOLD, PRESENTATION_HIT_TEST_CSS, PRESENTATION_STAGE_ATTRIBUTE, getSlideTransitionAnimations, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, SLIDE_TRANSITION_KEYFRAMES, annotationOverlayZIndex, presentationInkPath, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptors, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, isBlackboardActive, slideSizeToCanvasPx, resolveSelectionPaneRename, PRESET_THEMES, normalizeSegments, createPlainNotesSegments, segmentsToEditorHtml, DEBOUNCE_MS, parseSegmentsFromRichEditor, segmentsToPlainText, getCurrentParagraphIndex, segmentsToParagraphs, paragraphsToSegments, MAX_INDENT_LEVEL, INDENT_PX, isUrlSafe, escapeHtml2, toggleSheet, sanitizeMathMl, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, clampOptionNumber, QUICK_ACCESS_COMMAND_CATALOG, registerCustomFont, openReadingView, applyReadingViewCommand, createPresentationKeyBuffer, readingViewFitScale, READING_VIEW_STAGE_ATTR, buildOutline, applyOutlineEdit, mapOutlineKey, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, PRESENTER_CONSOLE_CONTROLS, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, resolveDefaultFontFamily, buildFontCatalog, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, masterViewPseudoSlide, authorConnectorBetweenSites, generateTicks, rulerDragToGuidePosition, buildCommentMarkers, COMMENT_MARKER_SIZE, collectConnectorSiteCandidates, getConnectorEndpointHandles, findConnectorSiteNear, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, themeColorLabel, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, COMMON_FONTS, buildSmartArtPresetData, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, isCurrentLayout, SLIDE_TEMPLATES, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, isElementLocked, mergeSlideTransition, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, buildLayoutPreviewGeometry, buildSlideTemplateContent, elementLockTogglePatch, buildTableDataGrid, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, TABLE_STYLE_PRESETS, applyTableStylePreset, evenColumnWidths, redistributeColumnWidth, evenRowHeights, chartDataChangeType, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, describeSmartArtBounds, canAddTopLevelNode, classifyExtraConnections, siblingIndex, siblingCount, canRemoveTopLevelNode, getOleObjectTypeLabel, sanitizeGradientStops, pptxActionToElementAction, withFrameSlides, withSlidesPerPage, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, schemaLabel, THEME_COLOR_SLOT_LABEL_KEYS, resolveSlideSizeSelection, SLIDE_SIZE_PRESETS, TRANSITION_VALID_DIRECTIONS, TRANSITION_ORIENTATION_TYPES, clampTransitionNumber, flattenTagCollections, formatCommentTimestamp, clearMotionPath, DIRECTIONAL_PRESETS, buildAnimationTimelineBars, motionPathPresetIdForPath, computeMergeCellRight, computeMergeCellDown, computeSplitCell, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSmartArtNodeAsChild, removeSmartArtNode, addSiblingAfter, removeEmptyNode, demote, promote, reorder, clampCropValue, DUOTONE_PRESETS, ARTISTIC_EFFECTS, resolveActionType, ELEMENT_ACTION_TYPE_OPTIONS, toSlideIndex, elementActionToPptxAction, canCommitActionType, slideSizeFromPreset, withSlideSizeOrientation, TRANSITION_DIR_ARROWS, buildDirectionGrid, updateTagInCollections, deleteTagFromCollections, addTagToCollections, commentTextSegments, COMMENT_MENTION_CLASS, COMMENT_MENTION_ATTRIBUTE, reorderAnimationTo, animationEffectLabel, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, switchSmartArtLayout, SHAPE_QUICK_STYLES, quickStyleSwatchCss, getPatternSvg, TEXT_WARP_PRESETS, warpPreviewPath, text3dPtToEmu, text3dEmuToPt, MATERIAL_PRESETS, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS, FILL_PATTERN_LABEL_KEYS, openNativeEyeDropper, toggleText3dExtrusion, BEVEL_PRESETS } from './chunk-2MENHAYJ.mjs';
@@ -1535,38 +1535,41 @@ function shapeParams(element) {
1535
1535
  const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
1536
1536
  return { hf: hasFill, fc: fillColor, sw: strokeWidth, sc: strokeColor };
1537
1537
  }
1538
- var Extrusion3DOverlay = React14.memo(({ data }) => {
1539
- if (!data.hasExtrusion || data.panels.length === 0) {
1540
- return null;
1541
- }
1542
- return /* @__PURE__ */ jsxs("div", { className: "extrusion-3d-wrapper", style: data.wrapperStyle, "aria-hidden": "true", children: [
1543
- data.panels.map((panel) => /* @__PURE__ */ jsx(
1544
- "div",
1545
- {
1546
- className: `extrusion-3d-panel extrusion-3d-panel--${panel.side}`,
1547
- style: panel.style
1548
- },
1549
- panel.side
1550
- )),
1551
- data.materialOverlay && /* @__PURE__ */ jsx(
1552
- "div",
1553
- {
1554
- className: "extrusion-3d-material-overlay",
1555
- style: {
1556
- position: "absolute",
1557
- inset: 0,
1558
- backgroundImage: data.materialOverlay,
1559
- pointerEvents: "none",
1560
- borderRadius: "inherit",
1561
- transform: data.frontFaceStyle.transform,
1562
- transformStyle: "preserve-3d",
1563
- backfaceVisibility: "hidden",
1564
- mixBlendMode: "normal"
1538
+ var Extrusion3DOverlay = React14.memo(
1539
+ // oxlint-disable-next-line prefer-arrow-callback -- named fn gives the memo component its displayName
1540
+ function Extrusion3DOverlayInner({ data }) {
1541
+ if (!data.hasExtrusion || data.panels.length === 0) {
1542
+ return null;
1543
+ }
1544
+ return /* @__PURE__ */ jsxs("div", { className: "extrusion-3d-wrapper", style: data.wrapperStyle, "aria-hidden": "true", children: [
1545
+ data.panels.map((panel) => /* @__PURE__ */ jsx(
1546
+ "div",
1547
+ {
1548
+ className: `extrusion-3d-panel extrusion-3d-panel--${panel.side}`,
1549
+ style: panel.style
1550
+ },
1551
+ panel.side
1552
+ )),
1553
+ data.materialOverlay && /* @__PURE__ */ jsx(
1554
+ "div",
1555
+ {
1556
+ className: "extrusion-3d-material-overlay",
1557
+ style: {
1558
+ position: "absolute",
1559
+ inset: 0,
1560
+ backgroundImage: data.materialOverlay,
1561
+ pointerEvents: "none",
1562
+ borderRadius: "inherit",
1563
+ transform: data.frontFaceStyle.transform,
1564
+ transformStyle: "preserve-3d",
1565
+ backfaceVisibility: "hidden",
1566
+ mixBlendMode: "normal"
1567
+ }
1565
1568
  }
1566
- }
1567
- )
1568
- ] });
1569
- });
1569
+ )
1570
+ ] });
1571
+ }
1572
+ );
1570
1573
  Extrusion3DOverlay.displayName = "Extrusion3DOverlay";
1571
1574
 
1572
1575
  // src/viewer/components/elements/scoped-element-handlers.ts
@@ -5742,7 +5745,7 @@ function AccountPage() {
5742
5745
  return void 0;
5743
5746
  });
5744
5747
  };
5745
- const version = "2.20.0" ;
5748
+ const version = "2.20.2" ;
5746
5749
  return /* @__PURE__ */ jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
5747
5750
  /* @__PURE__ */ jsxs("section", { className: cardClass, children: [
5748
5751
  /* @__PURE__ */ jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
@@ -10317,13 +10320,13 @@ function ConnectorEndpointOverlay({
10317
10320
  return;
10318
10321
  }
10319
10322
  const onMove = (event) => {
10320
- const point = toSlidePoint(event.clientX, event.clientY);
10321
- setDrag((prev) => prev ? { ...prev, ...point } : prev);
10323
+ const point2 = toSlidePoint(event.clientX, event.clientY);
10324
+ setDrag((prev) => prev ? { ...prev, ...point2 } : prev);
10322
10325
  };
10323
10326
  const onUp = (event) => {
10324
- const point = toSlidePoint(event.clientX, event.clientY);
10325
- const target = findConnectorSiteNear(candidates, point.x, point.y, CONNECTOR_SITE_SNAP_PX);
10326
- const update = resolveConnectorEndpointUpdate(connector, elements, drag.kind, point, target);
10327
+ const point2 = toSlidePoint(event.clientX, event.clientY);
10328
+ const target = findConnectorSiteNear(candidates, point2.x, point2.y, CONNECTOR_SITE_SNAP_PX);
10329
+ const update = resolveConnectorEndpointUpdate(connector, elements, drag.kind, point2, target);
10327
10330
  const next = withConnectorEndpointUpdate(connector, update);
10328
10331
  onUpdateElement(connector.id, {
10329
10332
  x: next.x,
@@ -10390,8 +10393,8 @@ function ConnectorEndpointOverlay({
10390
10393
  onPointerDown: (event) => {
10391
10394
  event.stopPropagation();
10392
10395
  event.preventDefault();
10393
- const point = toSlidePoint(event.clientX, event.clientY);
10394
- setDrag({ kind: handle.kind, ...point });
10396
+ const point2 = toSlidePoint(event.clientX, event.clientY);
10397
+ setDrag({ kind: handle.kind, ...point2 });
10395
10398
  }
10396
10399
  },
10397
10400
  handle.kind
@@ -16378,6 +16381,10 @@ function VersionHistoryPanel({
16378
16381
  setRestoringKey(null);
16379
16382
  }
16380
16383
  },
16384
+ // `onRestore`/`onClose` ARE read above (inside the `try`), but the analyzer
16385
+ // doesn't see through a try/finally block and flags them as unused;
16386
+ // verified as a false positive with a minimal repro (see useLayoutSwitching.ts).
16387
+ // oxlint-disable-next-line react/memo-dependencies -- see comment above
16381
16388
  [onRestore, onClose]
16382
16389
  );
16383
16390
  const handleDelete = useCallback(
@@ -16390,6 +16397,11 @@ function VersionHistoryPanel({
16390
16397
  setDeletingKey(null);
16391
16398
  }
16392
16399
  },
16400
+ // `fetchVersions` IS read above (inside the `try`), but the analyzer
16401
+ // doesn't see through an `await` call wrapped in try/finally and flags it
16402
+ // as unused; verified as a false positive with a minimal repro (see
16403
+ // useLayoutSwitching.ts).
16404
+ // oxlint-disable-next-line react/memo-dependencies -- see comment above
16393
16405
  [fetchVersions]
16394
16406
  );
16395
16407
  if (!isOpen) {
@@ -18390,15 +18402,15 @@ function PresenterSlideNavigator(props) {
18390
18402
  )) })
18391
18403
  ] });
18392
18404
  }
18405
+ function point(event) {
18406
+ const rect = event.currentTarget.getBoundingClientRect();
18407
+ return {
18408
+ x: (event.clientX - rect.left) / rect.width,
18409
+ y: (event.clientY - rect.top) / rect.height
18410
+ };
18411
+ }
18393
18412
  function usePresenterInk(snapshot, onUpdate) {
18394
18413
  const drawingId = useRef(null);
18395
- const point = (event) => {
18396
- const rect = event.currentTarget.getBoundingClientRect();
18397
- return {
18398
- x: (event.clientX - rect.left) / rect.width,
18399
- y: (event.clientY - rect.top) / rect.height
18400
- };
18401
- };
18402
18414
  const onPointerDown = useCallback(
18403
18415
  (event) => {
18404
18416
  const pointer = snapshot.pointer;
@@ -20790,8 +20802,8 @@ function ChartDataPointMarkerOptions({
20790
20802
  )
20791
20803
  ] }),
20792
20804
  /* @__PURE__ */ jsx("div", { className: "space-y-2", children: categories.map((cat, idx) => {
20793
- const point = pointFor(idx);
20794
- const hasOverride = point?.marker !== void 0;
20805
+ const point2 = pointFor(idx);
20806
+ const hasOverride = point2?.marker !== void 0;
20795
20807
  return /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
20796
20808
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-[11px]", children: [
20797
20809
  /* @__PURE__ */ jsx("span", { className: "flex-1 truncate", title: cat, children: cat }),
@@ -20814,13 +20826,13 @@ function ChartDataPointMarkerOptions({
20814
20826
  /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.chart.markerOverride") })
20815
20827
  ] })
20816
20828
  ] }),
20817
- hasOverride && point?.marker && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 ml-2 flex-wrap", children: [
20829
+ hasOverride && point2?.marker && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 ml-2 flex-wrap", children: [
20818
20830
  /* @__PURE__ */ jsx(
20819
20831
  "select",
20820
20832
  {
20821
20833
  disabled: !canEdit,
20822
20834
  className: "bg-muted border border-border rounded px-1.5 py-0.5 text-[11px]",
20823
- value: point.marker.symbol,
20835
+ value: point2.marker.symbol,
20824
20836
  onChange: (e) => onSetPointMarker(seriesIndex, idx, {
20825
20837
  symbol: e.target.value
20826
20838
  }),
@@ -20836,7 +20848,7 @@ function ChartDataPointMarkerOptions({
20836
20848
  disabled: !canEdit,
20837
20849
  title: t("pptx.chart.markerSize"),
20838
20850
  className: "w-14 bg-muted border border-border rounded px-1.5 py-0.5 text-[11px]",
20839
- value: point.marker.size ?? "",
20851
+ value: point2.marker.size ?? "",
20840
20852
  placeholder: t("pptx.chart.auto"),
20841
20853
  onChange: (e) => {
20842
20854
  const num = Number.parseInt(e.target.value, 10);
@@ -20853,7 +20865,7 @@ function ChartDataPointMarkerOptions({
20853
20865
  disabled: !canEdit,
20854
20866
  title: t("pptx.chart.markerFill"),
20855
20867
  className: "h-6 w-8 cursor-pointer rounded border border-border bg-transparent",
20856
- value: point.marker.spPr?.fillColor ?? "#4472c4",
20868
+ value: point2.marker.spPr?.fillColor ?? "#4472c4",
20857
20869
  onChange: (e) => onSetPointMarker(seriesIndex, idx, { fillColor: e.target.value })
20858
20870
  }
20859
20871
  )
@@ -20896,7 +20908,7 @@ function ChartDataPointOptions({
20896
20908
  )
20897
20909
  ] }),
20898
20910
  /* @__PURE__ */ jsx("div", { className: "space-y-1.5", children: categories.map((cat, idx) => {
20899
- const point = pointFor(idx);
20911
+ const point2 = pointFor(idx);
20900
20912
  return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-[11px]", children: [
20901
20913
  /* @__PURE__ */ jsx("span", { className: "flex-1 truncate", title: cat, children: cat }),
20902
20914
  /* @__PURE__ */ jsx(
@@ -20921,11 +20933,11 @@ function ChartDataPointOptions({
20921
20933
  disabled: !canEdit,
20922
20934
  title: t("pptx.chart.pointFill"),
20923
20935
  className: "h-6 w-8 cursor-pointer rounded border border-border bg-transparent",
20924
- value: point?.spPr?.fillColor ?? activeSeries.color ?? "#4472c4",
20936
+ value: point2?.spPr?.fillColor ?? activeSeries.color ?? "#4472c4",
20925
20937
  onChange: (e) => onSetPointFill(seriesIndex, idx, e.target.value)
20926
20938
  }
20927
20939
  ),
20928
- point?.spPr?.fillColor && /* @__PURE__ */ jsx(
20940
+ point2?.spPr?.fillColor && /* @__PURE__ */ jsx(
20929
20941
  "button",
20930
20942
  {
20931
20943
  type: "button",
@@ -20945,7 +20957,7 @@ function ChartDataPointOptions({
20945
20957
  disabled: !canEdit,
20946
20958
  title: t("pptx.chart.pointExplosion"),
20947
20959
  className: "w-14 bg-muted border border-border rounded px-1.5 py-0.5",
20948
- value: point?.explosion ?? "",
20960
+ value: point2?.explosion ?? "",
20949
20961
  placeholder: "0",
20950
20962
  onChange: (e) => {
20951
20963
  const raw = e.target.value;
@@ -35850,26 +35862,28 @@ function AutosaveRecoveryDialog({
35850
35862
  }
35851
35863
  );
35852
35864
  }
35853
- var ToggleRow = ({ checked, onChange, icon, label }) => /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2.5 cursor-pointer group select-none", children: [
35854
- /* @__PURE__ */ jsxs("span", { className: "relative flex items-center justify-center w-4 h-4", children: [
35855
- /* @__PURE__ */ jsx(
35856
- "input",
35857
- {
35858
- type: "checkbox",
35859
- checked,
35860
- onChange: (e) => onChange(e.target.checked),
35861
- className: "peer sr-only"
35862
- }
35863
- ),
35864
- /* @__PURE__ */ jsx("span", { className: "absolute inset-0 rounded border border-border bg-muted transition-colors peer-checked:border-primary peer-checked:bg-primary peer-focus-visible:ring-2 peer-focus-visible:ring-primary/50" }),
35865
- checked && /* @__PURE__ */ jsx(LuCheck, { className: "relative z-10 w-3 h-3 text-white" })
35866
- ] }),
35867
- /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1.5 text-xs text-foreground group-hover:text-foreground transition-colors", children: [
35868
- icon,
35869
- label
35870
- ] })
35871
- ] });
35872
- var HeaderFooterPanel = ({
35865
+ function ToggleRow({ checked, onChange, icon, label }) {
35866
+ return /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2.5 cursor-pointer group select-none", children: [
35867
+ /* @__PURE__ */ jsxs("span", { className: "relative flex items-center justify-center w-4 h-4", children: [
35868
+ /* @__PURE__ */ jsx(
35869
+ "input",
35870
+ {
35871
+ type: "checkbox",
35872
+ checked,
35873
+ onChange: (e) => onChange(e.target.checked),
35874
+ className: "peer sr-only"
35875
+ }
35876
+ ),
35877
+ /* @__PURE__ */ jsx("span", { className: "absolute inset-0 rounded border border-border bg-muted transition-colors peer-checked:border-primary peer-checked:bg-primary peer-focus-visible:ring-2 peer-focus-visible:ring-primary/50" }),
35878
+ checked && /* @__PURE__ */ jsx(LuCheck, { className: "relative z-10 w-3 h-3 text-white" })
35879
+ ] }),
35880
+ /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1.5 text-xs text-foreground group-hover:text-foreground transition-colors", children: [
35881
+ icon,
35882
+ label
35883
+ ] })
35884
+ ] });
35885
+ }
35886
+ function HeaderFooterPanel({
35873
35887
  showDateTime,
35874
35888
  showSlideNumber,
35875
35889
  showFooter,
@@ -35881,7 +35895,7 @@ var HeaderFooterPanel = ({
35881
35895
  onApplyToAll,
35882
35896
  onApplyToCurrent,
35883
35897
  onClose
35884
- }) => {
35898
+ }) {
35885
35899
  const handleFooterTextChange = useCallback(
35886
35900
  (e) => {
35887
35901
  onSetFooterText(e.target.value);
@@ -35963,7 +35977,7 @@ var HeaderFooterPanel = ({
35963
35977
  )
35964
35978
  ] })
35965
35979
  ] }) });
35966
- };
35980
+ }
35967
35981
  function isActionKey(key) {
35968
35982
  return key === "slides" || key === "insert" || key === "inspector" || key === "comments" || key === "notes";
35969
35983
  }
Binary file
Binary file
@@ -1194,6 +1194,12 @@ function useAnimationPlayback(input) {
1194
1194
  );
1195
1195
  presentationTimersRef.current.push(timer);
1196
1196
  },
1197
+ // `scheduleAutoAdvanceChain` recursively calls itself (line 190) to walk the
1198
+ // auto-advance chain; it can't list itself as its own dependency (the const
1199
+ // isn't assigned yet when the array is evaluated). The recursive call still
1200
+ // resolves correctly because the setTimeout callback only reads the binding
1201
+ // once the outer const has been assigned.
1202
+ // oxlint-disable-next-line react/memo-dependencies -- see comment above
1197
1203
  [onPlayActionSound, startBuildReveal]
1198
1204
  );
1199
1205
  const resetSlideTimeline = useCallback(
@@ -10358,6 +10364,10 @@ function useLayoutSwitching(input) {
10358
10364
  setIsLoading(false);
10359
10365
  }
10360
10366
  },
10367
+ // `activeSlideIndex` IS read above (inside the `try`), but the analyzer
10368
+ // doesn't see through an `await` call wrapped in try/finally and flags it
10369
+ // as unused; verified as a false positive with a minimal repro.
10370
+ // oxlint-disable-next-line react/memo-dependencies -- see comment above
10361
10371
  [handler, activeSlideIndex, ops, history, onTemplateElementsChanged]
10362
10372
  );
10363
10373
  const loadLayoutPreviews = useCallback(
Binary file
Binary file
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunkWCJ3HF4C_js = require('./chunk-WCJ3HF4C.js');
3
+ var chunk4JENQPJ3_js = require('./chunk-4JENQPJ3.js');
4
4
  require('./chunk-QJJX2E6I.js');
5
- var chunkGKOJO67G_js = require('./chunk-GKOJO67G.js');
5
+ var chunk463BMH5Q_js = require('./chunk-463BMH5Q.js');
6
6
  var chunkLLZ25OVR_js = require('./chunk-LLZ25OVR.js');
7
7
  var chunk6CPUGAK7_js = require('./chunk-6CPUGAK7.js');
8
8
  var chunk4Z4HEIP5_js = require('./chunk-4Z4HEIP5.js');
@@ -12,39 +12,39 @@ require('./chunk-4VNS5WPM.js');
12
12
 
13
13
  Object.defineProperty(exports, "PowerPointViewer", {
14
14
  enumerable: true,
15
- get: function () { return chunkWCJ3HF4C_js.PowerPointViewer; }
15
+ get: function () { return chunk4JENQPJ3_js.PowerPointViewer; }
16
16
  });
17
17
  Object.defineProperty(exports, "SlideCanvas", {
18
18
  enumerable: true,
19
- get: function () { return chunkWCJ3HF4C_js.SlideCanvas; }
19
+ get: function () { return chunk4JENQPJ3_js.SlideCanvas; }
20
20
  });
21
21
  Object.defineProperty(exports, "SlideTemplateGalleryDialog", {
22
22
  enumerable: true,
23
- get: function () { return chunkWCJ3HF4C_js.SlideTemplateGalleryDialog; }
23
+ get: function () { return chunk4JENQPJ3_js.SlideTemplateGalleryDialog; }
24
24
  });
25
25
  Object.defineProperty(exports, "SlideTemplatePreview", {
26
26
  enumerable: true,
27
- get: function () { return chunkWCJ3HF4C_js.SlideTemplatePreview; }
27
+ get: function () { return chunk4JENQPJ3_js.SlideTemplatePreview; }
28
28
  });
29
29
  Object.defineProperty(exports, "Toolbar", {
30
30
  enumerable: true,
31
- get: function () { return chunkWCJ3HF4C_js.Toolbar; }
31
+ get: function () { return chunk4JENQPJ3_js.Toolbar; }
32
32
  });
33
33
  Object.defineProperty(exports, "ViewerThemeProvider", {
34
34
  enumerable: true,
35
- get: function () { return chunkWCJ3HF4C_js.ViewerThemeProvider; }
35
+ get: function () { return chunk4JENQPJ3_js.ViewerThemeProvider; }
36
36
  });
37
37
  Object.defineProperty(exports, "useViewerTheme", {
38
38
  enumerable: true,
39
- get: function () { return chunkWCJ3HF4C_js.useViewerTheme; }
39
+ get: function () { return chunk4JENQPJ3_js.useViewerTheme; }
40
40
  });
41
41
  Object.defineProperty(exports, "renderToCanvas", {
42
42
  enumerable: true,
43
- get: function () { return chunkGKOJO67G_js.renderToCanvas; }
43
+ get: function () { return chunk463BMH5Q_js.renderToCanvas; }
44
44
  });
45
45
  Object.defineProperty(exports, "useViewerBuildingBlocks", {
46
46
  enumerable: true,
47
- get: function () { return chunkGKOJO67G_js.useViewerBuildingBlocks; }
47
+ get: function () { return chunk463BMH5Q_js.useViewerBuildingBlocks; }
48
48
  });
49
49
  Object.defineProperty(exports, "getAnimationInitialStyle", {
50
50
  enumerable: true,
package/dist/index.js.br CHANGED
Binary file
package/dist/index.js.gz CHANGED
Binary file
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
- export { PowerPointViewer, SlideCanvas, SlideTemplateGalleryDialog, SlideTemplatePreview, Toolbar, ViewerThemeProvider, useViewerTheme } from './chunk-HZ2PAL7P.mjs';
1
+ export { PowerPointViewer, SlideCanvas, SlideTemplateGalleryDialog, SlideTemplatePreview, Toolbar, ViewerThemeProvider, useViewerTheme } from './chunk-AD4LAXDJ.mjs';
2
2
  import './chunk-RJ26DQIM.mjs';
3
- export { renderToCanvas, useViewerBuildingBlocks } from './chunk-SZJLZWEX.mjs';
3
+ export { renderToCanvas, useViewerBuildingBlocks } from './chunk-YAKDNRU7.mjs';
4
4
  export { getAnimationInitialStyle } from './chunk-O5BR276S.mjs';
5
5
  export { LOCALE_CATALOG } from './chunk-MZOZNBRO.mjs';
6
6
  export { AVATAR_COLOR_SWATCHES, DEFAULT_VIEWER_PROFILE, PPTX_OPEN_ACCEPT, PRESENTATION_OPEN_EXTENSIONS, SLIDE_TEMPLATES, THEME_CATALOG, VIEWER_PREFS_STORAGE_KEY, buildSlideTemplateContent, buildSlideTemplateSlide, clearAllLocalViewerData, clearStoredViewerPrefs, defaultCssVars, defaultRadius, defaultThemeColors, getLocalStorageUsageSummary, isLegacyBinaryPresentation, isSupportedPresentationFile, presentationBaseName, readStoredViewerPrefs, resolveProfileInitial, resolveThemeCatalogEntry, saveViewerProfile, savedPresentationFileName, themeToCssVars, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, writeStoredViewerPrefs } from './chunk-2MENHAYJ.mjs';
package/dist/index.mjs.br CHANGED
Binary file
package/dist/index.mjs.gz CHANGED
Binary file