pptx-react-viewer 4.33.2 → 4.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/{AiChatPanel-CYD46SEM.mjs → AiChatPanel-CX74JT77.mjs} +1 -1
  3. package/dist/AiChatPanel-CX74JT77.mjs.br +0 -0
  4. package/dist/AiChatPanel-CX74JT77.mjs.gz +0 -0
  5. package/dist/{AiChatPanel-ONHWZEPV.js → AiChatPanel-PVRSPIAY.js} +9 -9
  6. package/dist/AiChatPanel-PVRSPIAY.js.br +0 -0
  7. package/dist/AiChatPanel-PVRSPIAY.js.gz +0 -0
  8. package/dist/{chunk-7DGKSEIU.js → chunk-4MGJUBY7.js} +2 -1
  9. package/dist/chunk-4MGJUBY7.js.br +0 -0
  10. package/dist/chunk-4MGJUBY7.js.gz +0 -0
  11. package/dist/{chunk-2OIJUZD5.mjs → chunk-6SRRGOV2.mjs} +85 -36
  12. package/dist/chunk-6SRRGOV2.mjs.br +0 -0
  13. package/dist/chunk-6SRRGOV2.mjs.gz +0 -0
  14. package/dist/{chunk-TVSTM5J5.js → chunk-EL2KJ7PU.js} +328 -279
  15. package/dist/chunk-EL2KJ7PU.js.br +0 -0
  16. package/dist/chunk-EL2KJ7PU.js.gz +0 -0
  17. package/dist/{chunk-P3ANCQX6.mjs → chunk-GKUPYPD3.mjs} +237 -96
  18. package/dist/chunk-GKUPYPD3.mjs.br +0 -0
  19. package/dist/chunk-GKUPYPD3.mjs.gz +0 -0
  20. package/dist/{chunk-DJ32R6VM.js → chunk-KYMELPA6.js} +1502 -1361
  21. package/dist/chunk-KYMELPA6.js.br +0 -0
  22. package/dist/chunk-KYMELPA6.js.gz +0 -0
  23. package/dist/{chunk-K4UXDQZ6.mjs → chunk-SMPZ552M.mjs} +2 -1
  24. package/dist/chunk-SMPZ552M.mjs.br +0 -0
  25. package/dist/chunk-SMPZ552M.mjs.gz +0 -0
  26. package/dist/i18n/de.cjs +10 -0
  27. package/dist/i18n/de.cjs.br +0 -0
  28. package/dist/i18n/de.cjs.gz +0 -0
  29. package/dist/i18n/de.mjs +10 -0
  30. package/dist/i18n/de.mjs.br +0 -0
  31. package/dist/i18n/de.mjs.gz +0 -0
  32. package/dist/i18n/es.cjs +10 -0
  33. package/dist/i18n/es.cjs.br +0 -0
  34. package/dist/i18n/es.cjs.gz +0 -0
  35. package/dist/i18n/es.mjs +10 -0
  36. package/dist/i18n/es.mjs.br +0 -0
  37. package/dist/i18n/es.mjs.gz +0 -0
  38. package/dist/i18n/fr.cjs +10 -0
  39. package/dist/i18n/fr.cjs.br +0 -0
  40. package/dist/i18n/fr.cjs.gz +0 -0
  41. package/dist/i18n/fr.mjs +10 -0
  42. package/dist/i18n/fr.mjs.br +0 -0
  43. package/dist/i18n/fr.mjs.gz +0 -0
  44. package/dist/i18n/zh-CN.cjs +10 -0
  45. package/dist/i18n/zh-CN.cjs.br +0 -0
  46. package/dist/i18n/zh-CN.cjs.gz +0 -0
  47. package/dist/i18n/zh-CN.mjs +10 -0
  48. package/dist/i18n/zh-CN.mjs.br +0 -0
  49. package/dist/i18n/zh-CN.mjs.gz +0 -0
  50. package/dist/index.js +24 -24
  51. package/dist/index.js.br +0 -0
  52. package/dist/index.js.gz +0 -0
  53. package/dist/index.mjs +3 -3
  54. package/dist/index.mjs.br +0 -0
  55. package/dist/index.mjs.gz +0 -0
  56. package/dist/internals.d.ts +12 -2
  57. package/dist/internals.js +81 -81
  58. package/dist/internals.js.br +0 -0
  59. package/dist/internals.js.gz +0 -0
  60. package/dist/internals.mjs +2 -2
  61. package/dist/internals.mjs.br +0 -0
  62. package/dist/internals.mjs.gz +0 -0
  63. package/dist/viewer/index.js +19 -19
  64. package/dist/viewer/index.js.br +0 -0
  65. package/dist/viewer/index.js.gz +0 -0
  66. package/dist/viewer/index.mjs +3 -3
  67. package/dist/viewer/index.mjs.br +0 -0
  68. package/dist/viewer/index.mjs.gz +0 -0
  69. package/package.json +3 -3
  70. package/dist/AiChatPanel-CYD46SEM.mjs.br +0 -0
  71. package/dist/AiChatPanel-CYD46SEM.mjs.gz +0 -0
  72. package/dist/AiChatPanel-ONHWZEPV.js.br +0 -0
  73. package/dist/AiChatPanel-ONHWZEPV.js.gz +0 -0
  74. package/dist/chunk-2OIJUZD5.mjs.br +0 -0
  75. package/dist/chunk-2OIJUZD5.mjs.gz +0 -0
  76. package/dist/chunk-7DGKSEIU.js.br +0 -0
  77. package/dist/chunk-7DGKSEIU.js.gz +0 -0
  78. package/dist/chunk-DJ32R6VM.js.br +0 -0
  79. package/dist/chunk-DJ32R6VM.js.gz +0 -0
  80. package/dist/chunk-K4UXDQZ6.mjs.br +0 -0
  81. package/dist/chunk-K4UXDQZ6.mjs.gz +0 -0
  82. package/dist/chunk-P3ANCQX6.mjs.br +0 -0
  83. package/dist/chunk-P3ANCQX6.mjs.gz +0 -0
  84. package/dist/chunk-TVSTM5J5.js.br +0 -0
  85. package/dist/chunk-TVSTM5J5.js.gz +0 -0
package/CHANGELOG.md CHANGED
@@ -7,6 +7,49 @@ A release listed with no entries carried no Conventional Commit in this package'
7
7
  scope: scripts/release-plan.mjs releases whenever any published file changes, not only on
8
8
  conventional commits.
9
9
 
10
+ ## [4.35.0](https://github.com/ChristopherVR/ooxml/releases/tag/pptx-react-viewer@4.35.0) - 2026-10-13
11
+
12
+ ### Features
13
+
14
+ - **ui:** Add a Size group with Crop to the Picture Format tab ([58f5906](https://github.com/ChristopherVR/ooxml/commit/58f5906b157cf2503b9348f671da76c591117cc6))
15
+ - **pptx:** Support native whole-shape fixed opacity ([7b0372e](https://github.com/ChristopherVR/ooxml/commit/7b0372ed918da963bf662a302334e68ccae972e2))
16
+ - **pptx:** Expose supported imported after-effect clearing ([936e248](https://github.com/ChristopherVR/ooxml/commit/936e248374a57fa90882879ab0a2ea607b4a4796))
17
+
18
+ ### Bug Fixes
19
+
20
+ - **pptx:** Paint animated picture frames above their images ([55ac6e8](https://github.com/ChristopherVR/ooxml/commit/55ac6e8d9ae5b4c74d0f1bd18b783864c9d446c1))
21
+ - **pptx:** Animate shape backgrounds independently of text ([1c2568b](https://github.com/ChristopherVR/ooxml/commit/1c2568b9fc5712ae34b9e0a11f530d4b298eb8a7))
22
+ - **core:** Keep custom-geometry command order through undo and copies ([3ea38e4](https://github.com/ChristopherVR/ooxml/commit/3ea38e4e1bda2a59e7677b3c1783d53a89d1ab75))
23
+ - **ui:** Keep spaces and line breaks in a wrap="none" text body ([12297d1](https://github.com/ChristopherVR/ooxml/commit/12297d13787c6230e406ab52d53c07365bcae185))
24
+ - **pptx:** Bound legacy opacity image hint admission ([a37cf62](https://github.com/ChristopherVR/ooxml/commit/a37cf62761132b312825d3fe9d317a28317c7e85))
25
+ - **pptx:** Refuse unresolved opacity parent timing ([8d71f85](https://github.com/ChristopherVR/ooxml/commit/8d71f852f4f0f4305cf18dbafcb151f6c7fac280))
26
+ - **pptx:** Preserve native after-state and honor explicit clears ([aed6a6d](https://github.com/ChristopherVR/ooxml/commit/aed6a6d03410a3487589edfa6f57bde243885a45))
27
+ - **pptx:** Number slide-number fields from the deck's firstSlideNum ([ec9b18d](https://github.com/ChristopherVR/ooxml/commit/ec9b18da409c971d08491b612db228fa32608c8b))
28
+ - **pptx:** Keep a:br line breaks soft through an inline text edit ([02e40ae](https://github.com/ChristopherVR/ooxml/commit/02e40aed4dc8388676d5b852d73e5065d1b3846f))
29
+ - **pptx:** Drop cleared cell fills and borders when the style changes ([99dbeba](https://github.com/ChristopherVR/ooxml/commit/99dbebabe7fd885998c52360610781e10ad3bca4))
30
+ - **ui:** Apply a picked font family to the whole text box ([5c20e49](https://github.com/ChristopherVR/ooxml/commit/5c20e4945a8b35bf68169715f3f4bd926ecfac86))
31
+
32
+ ### Testing
33
+
34
+ - **pptx:** Restore React translation state between files ([8994960](https://github.com/ChristopherVR/ooxml/commit/899496055fad208de2f65b96ab628d38b064bdcf))
35
+
36
+ ## [4.34.0](https://github.com/ChristopherVR/ooxml/releases/tag/pptx-react-viewer@4.34.0) - 2026-10-13
37
+
38
+ ### Features
39
+
40
+ - **pptx:** Add rich search and cross-deck slide clipboard ([736dbf9](https://github.com/ChristopherVR/ooxml/commit/736dbf94f7fac5226accea2e942db2e5f9e08063))
41
+ - **pptx:** Edit rich chart titles across viewer bindings ([e27970e](https://github.com/ChristopherVR/ooxml/commit/e27970e7791e8b1d2287619aa338ac907e25758d))
42
+ - **pptx:** Replace chart labels with coherent workbook updates ([df616f7](https://github.com/ChristopherVR/ooxml/commit/df616f7f14674af9e41fd579b6860280ef45b9ac))
43
+
44
+ ### Bug Fixes
45
+
46
+ - **ui:** Round the table cell panel numbers for display ([#65](https://github.com/ChristopherVR/ooxml/issues/65)) ([964a96f](https://github.com/ChristopherVR/ooxml/commit/964a96f3c9c04e5bb186b1459d9089d8e6cf06ee))
47
+ - **pptx:** Use shared controls for speaker-note search ([84064a9](https://github.com/ChristopherVR/ooxml/commit/84064a9f465ac05b73ff2231c61a16e04ef95e9a))
48
+ - **pptx:** Translate notes and clipboard controls ([73e9449](https://github.com/ChristopherVR/ooxml/commit/73e9449cd2e40635fac1c2d13ff82dfc95d1cb5e))
49
+ - **pptx:** Preserve chart workbooks across repeated saves ([b684d66](https://github.com/ChristopherVR/ooxml/commit/b684d66f7da744b8d322178e9db0b5df05fcf0fa))
50
+ - **pptx:** Typecheck clipboard fixture without build output ([ee3769f](https://github.com/ChristopherVR/ooxml/commit/ee3769ffce40280cde48317020fb62b858e4a6ed))
51
+ - **ui:** Paint picture frames and shadows across bindings ([#69](https://github.com/ChristopherVR/ooxml/issues/69)) ([c012f08](https://github.com/ChristopherVR/ooxml/commit/c012f08aa95ca069f2164f9f50e15208a793ba8e))
52
+
10
53
  ## [4.33.2](https://github.com/ChristopherVR/ooxml/releases/tag/pptx-react-viewer@4.33.2) - 2026-10-13
11
54
 
12
55
  ### Bug Fixes
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-K4UXDQZ6.mjs';
1
+ import { cn } from './chunk-SMPZ552M.mjs';
2
2
  import './chunk-Q3DHYOLK.mjs';
3
3
  import { useMemo, useRef, useState, useEffect, useReducer, useCallback } from 'react';
4
4
  import { useTranslation } from 'react-i18next';
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk7DGKSEIU_js = require('./chunk-7DGKSEIU.js');
3
+ var chunk4MGJUBY7_js = require('./chunk-4MGJUBY7.js');
4
4
  require('./chunk-W2IMY5SY.js');
5
5
  var react = require('react');
6
6
  var reactI18next = require('react-i18next');
@@ -365,7 +365,7 @@ function AiComposer({
365
365
  disabled: value.trim().length === 0,
366
366
  title: t("pptx.ai.send"),
367
367
  "aria-label": t("pptx.ai.send"),
368
- className: chunk7DGKSEIU_js.cn(
368
+ className: chunk4MGJUBY7_js.cn(
369
369
  "shrink-0 rounded-sm p-1.5 transition-colors",
370
370
  value.trim().length === 0 ? "text-muted-foreground/50" : "bg-primary text-primary-foreground hover:bg-primary/90"
371
371
  ),
@@ -396,7 +396,7 @@ function AiFocusBar({
396
396
  chips.map((chip) => /* @__PURE__ */ jsxRuntime.jsx(
397
397
  "span",
398
398
  {
399
- className: chunk7DGKSEIU_js.cn(
399
+ className: chunk4MGJUBY7_js.cn(
400
400
  "inline-flex max-w-[10rem] items-center rounded-full px-2 py-0.5 text-[11px]",
401
401
  hasPicks || isPinned ? "bg-primary/15 text-primary" : "bg-muted text-muted-foreground"
402
402
  ),
@@ -433,7 +433,7 @@ function AiFocusBar({
433
433
  title: t("pptx.ai.pickElement"),
434
434
  "aria-label": t("pptx.ai.pickAria"),
435
435
  "aria-pressed": pickMode,
436
- className: chunk7DGKSEIU_js.cn(
436
+ className: chunk4MGJUBY7_js.cn(
437
437
  "rounded-sm p-1 max-md:min-w-[44px]! max-md:min-h-[44px]! flex items-center justify-center",
438
438
  pickMode ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:bg-accent"
439
439
  ),
@@ -512,7 +512,7 @@ function AiHistoryList({ chats, activeChatId, onResume, onDelete }) {
512
512
  {
513
513
  type: "button",
514
514
  onClick: () => onResume(chat.id),
515
- className: chunk7DGKSEIU_js.cn(
515
+ className: chunk4MGJUBY7_js.cn(
516
516
  "flex min-w-0 flex-1 items-start gap-2 rounded-sm px-2 py-1.5 text-left hover:bg-accent",
517
517
  chat.id === activeChatId && "bg-accent/60"
518
518
  ),
@@ -676,17 +676,17 @@ function AiToolCallCard({ part }) {
676
676
  /* @__PURE__ */ jsxRuntime.jsx(
677
677
  Icon,
678
678
  {
679
- className: chunk7DGKSEIU_js.cn(
679
+ className: chunk4MGJUBY7_js.cn(
680
680
  "w-3.5 h-3.5 shrink-0",
681
681
  failed ? "text-destructive" : "text-muted-foreground"
682
682
  )
683
683
  }
684
684
  ),
685
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunk7DGKSEIU_js.cn("truncate", failed ? "text-destructive" : "text-foreground"), children: activity.label }),
685
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunk4MGJUBY7_js.cn("truncate", failed ? "text-destructive" : "text-foreground"), children: activity.label }),
686
686
  /* @__PURE__ */ jsxRuntime.jsxs(
687
687
  "span",
688
688
  {
689
- className: chunk7DGKSEIU_js.cn(
689
+ className: chunk4MGJUBY7_js.cn(
690
690
  "ml-auto inline-flex items-center gap-1 rounded-sm px-1.5 py-0.5 text-[10px]",
691
691
  failed ? "bg-destructive/15 text-destructive" : done ? "bg-primary/10 text-primary" : "bg-muted text-muted-foreground"
692
692
  ),
@@ -734,7 +734,7 @@ function AiMessageList({ messages, isStreaming, bridge }) {
734
734
  /* @__PURE__ */ jsxRuntime.jsx(
735
735
  "div",
736
736
  {
737
- className: chunk7DGKSEIU_js.cn(
737
+ className: chunk4MGJUBY7_js.cn(
738
738
  "mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-full",
739
739
  isUser ? "bg-secondary text-muted-foreground" : "bg-primary/15 text-primary"
740
740
  ),
Binary file
Binary file
@@ -844,8 +844,9 @@ function getTextLayoutStyle(element) {
844
844
  wordBreak: textWrapNone ? "normal" : "break-word",
845
845
  overflow: "visible"
846
846
  } : {},
847
+ // `pre`, not `nowrap`, which also collapses runs of spaces (shared rule).
847
848
  ...textWrapNone ? {
848
- whiteSpace: "nowrap",
849
+ whiteSpace: "pre",
849
850
  overflow: "visible"
850
851
  } : {}
851
852
  };
Binary file
Binary file
@@ -1,5 +1,5 @@
1
- import { dist_exports, normalizeHexColor, DEFAULT_STROKE_COLOR, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getAriaRoleDescription, getAriaLabel, getAriaRole, isEditableTextElement, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageEffectsOpacity, getImageEffectsFilter, getImageRenderStyle, cn, ACTION_BUTTON_PRESETS, getImageSurfaceStyle, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, getElementLabel, DEFAULT_FILL_COLOR, buildCssGradientFromShapeStyle, getCropShapeClipPath, getElementTransform, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getImageSurfaceMaskStyle, isImageTiled, getDuotoneColors, getTextWarpStyle, getTextCompensationTransform, renderTextSegments, buildReactChartViewModel, renderChartElement, buildInkGroupStrokes, getInkReplayStyles, INK_REPLAY_KEYFRAMES, buildContentPartStrokes, getContentPartReplayStyles, MIN_ELEMENT_SIZE, buildTextBody3DSceneStyle, getImageTilingStyle, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, substituteFieldText, HYPERLINK_COLOR, cloneTemplateElementsBySlideId, cloneSlide, cloneHistorySnapshot, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, partitionTemplateElements, isTemplateElementId, comparePresentation, UNGROUPED_SECTION_ID, DEFAULT_SECTION_GROUP_ID, stopAllPersistentAudio, buildSaveSlides, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, makeCloneId, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, buildPdfFromTiledImageData, GRID_SIZE, copyFormatFromElement, hasCopyableFormat, rerouteConnectorsForMovedElements, applyReroutedConnectors, splitCell, mergeCells, buildNotesPdf, canvasToJpegData, applyFormatToElement, isPpactionUrl, parsePpactionUrl, isUrlSafe, computeSnapToShape, safeOpenUrl as safeOpenUrl$1 } from './chunk-K4UXDQZ6.mjs';
2
- import { GlyphOutlineFontCache, createGlyphOutlineLookup, DEFAULT_VIEWER_OPTIONS, TOOLBAR_TABS, defineThreeViewElement, getSelectionControlArtworkStyle, svgLineCap, getSelectionOutlineColor, screenStrokeWidth, connectorWrapperTransform, resolveElementInteractivity, buildTextStyleOverrideCss, isElementRendered, resolveElementAriaAttributes, isMediaFullscreenActive, shouldRenderHitTarget, elementHitTargetStyle, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, mediaTransportVisible, oleActionsVisible, getGroupChildParentFill, getResizeHandleHitAreaStyle, paintedStrokeWidth, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, paintedElementSize, MEDIA_FULLSCREEN_OVERLAY_STYLE, elementContainerHeightStyle, resolveElementHighlightClick, applyHighlightClickStyle, getComputedEffectStyle, getSoftEdgeSvgFilter, getEffectStyleSource, getBevelLightingSvgFilter, buildStrokeOutline, buildHollowHitOutline, buildSubpathFillOverlay, strokeOutlineViewBox, resolveRevealedSmartArtNodes, resolveRevealedDrawingShapes, buildSmartArtA11y, canDrillDown, computeSmartArtElementLayout, flattenNodes, buildSummaryZoomView, getImageColorWashStyle, readEditableText, placeCaretAt, takePendingCaretPoint, getPendingSelectionRestore, restoreSegmentSelection, mapInlineTextFormatKey, subscribeBarFacePicturePixelSamples, getBarFacePicturePixelSampleVersion, ensureChartInteractionStyles, applyChartPartHighlight, resolveRevealedChartData, formatAxisValue, resolveOleType, getOleAriaLabel, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, placeholderPromptDescriptor, getAriaRoleDescription as getAriaRoleDescription$1, getAriaLabel as getAriaLabel$1, attachRotateHandlePlacement, elementIdSelector, createRotationDrag, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, SMARTART_DEFAULT_PALETTE, resolvePalette as resolvePalette$1, computeDrawingViewBox, projectDrawingShapes, resolveRevealedDrawingShapeNodeIds, styleShadowFilter, buildChromeStyle, measureSvgViewportRect, modelDataToBlobUrl, resolveZoomNavigationTarget, getImageSvgFilters, getCachedNativeImageSize, probeNativeImageSize, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, inlineListBodyText, createInlineListSeed, readListActivationSelection, createInlineListModelObserver, attachCollaborationInlineEditor, bindInlineListParagraph, bindInlineListRun, attachInlineListController, restoreInlineListBodySelection, getInlineEditorSelectionResult, isBulletMarkerSegment, resolveChartThreeViewSpec, applyChart3DDrag, applyChart3DSelect, findChartPartTarget, withChartTitle, resolveSmartArtThreeViewSpec, isBrowserOpenableMime, formatBytes, getOleDisplayName, getOleBadgeLabel, openUrlInNewTab, hasGlyphEnvelope, buildGlyphEnvelopeBlock, getWarpPath, isWedgeCalloutPresetShape, getAriaRole as getAriaRole$1, isElementActionable, centeredSvgTextLines, findSmartArtNodeText, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, advanceChartMarkDrag, advanceChartValueDrag, resolveChartKind, buildChartMarkDragGeometry, beginChartMarkDrag, beginChartValueDrag, commitSmartArtNodeFill, commitSmartArtNodeText, groupIntoParagraphs as groupIntoParagraphs$1, computeInlineEditorRect, smartArtNodeAtPoint, MIN_TOUCH_TARGET_PX, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, createSyncGate, clearLocalAwareness, validateRoomId, createDepartureChannel, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, registerCollaborationTeardown, createPresenceProjector, BROADCAST_THROTTLE_MS, sanitizeColor, createWheelStepBuffer, createViewerZoomStore, clampZoomScale, mapEditingWheel, createActiveAnimationGroup, cancelBuildReveal, clearPlaybackTimers, PresentationAnimationController, resolveMediaTimeNodeElementIds, resolveMediaBookmarkTimesMs, advanceMainSequence, playGroup, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, endAudienceDisplay, createPresentationKeyBuffer, acceptsPresentationInput, resolveAutoAdvanceDelayMs, resolveForwardSlideWithZoomReturn, buildZoomTransitionOverride, hasShowSlideAfter, nextShowSlideIndex, previousShowSlideIndex, beginZoomExcursion, createPresenterShowGuard, firstShowSlideIndex, attachPresentationVisibilityPause, presentationEntrySlideIndex, buildMorphTransitionPlan, morphOptionToMode, buildMorphAnimationRules, findInSlides, applyFindReplacements, visibleTemplateElements, createCollaborationLivePatcher, publishLiveInlineText, createPresentationLoadResources, collectMediaElements, resolveMediaElementSource, collectImagePaths, applyImagePathPatches, resolveTableCellImageUrls, resolveTableStyleImageUrls, resolveTextFillBlipUrls, seedRecentColors, resolveAuthoredCustomShowId, buildInitialGuides, readOnlyRecommendation, compatibilityWarningToasts, resolveInitialSlideIndex, resolveAutosaveIntervalMs, shouldWriteAutosaveSnapshot, saveAutosaveSnapshot, autosaveSnapshotMark, updateMasterViewElement, updateElement, masterViewElements, replaceMasterViewElements, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, canMergeShapes, canInteractWithElement, prepareHtml2CanvasClone, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, resolveImageResolutionScale, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, describeFontEmbedding, isMobileViewport, resolveAuthoredSlideRange, mayLeaveSlideShow, buildDeckSaveOptions, resolveSlideSizeSelection, saveDeckWithPassword, shouldProbeAutosaveRecovery, probeAutosaveRecovery, acceptAutosaveRecovery, acknowledgeAutosaveRecovery, discardAutosaveRecovery, shouldLoopContinuously, applyRehearsalTimings, rasterResultToPngBlob, downloadBlob, elementPictureFilename, canEditElementPoints, collectReferencedFontFamilies, resolveGoogleWebfontHref, syncGoogleWebfontStylesheet, selectGoogleWebfontFamilies, fetchGoogleWebfontOutlineBytes, isFeatureEnabled, mapSlideShowStartKey, mapCustomizedEditorKey, isEditorControlTarget, isEditorTextInputTarget, parentSelection, textFontSizePtToPx, stepFontSizePt, textFontSizePxToPt, cycleSelectableElement, createCustomizationController, prepareElementForInsertion, slideSpaceElement, createViewerOptionsStore, observeYDocSlides, LOCAL_SYNC_ORIGIN, readSlidesFromYDoc, shouldRoomSlidesReplaceLoad, reconcileSlidesInYDoc, shouldAutoFollowBroadcaster, detectTouchDevice, detectOrientation, deriveViewportBreakpoints, createTouchGestureRecognizer, isKeyboardOpen, scopeLayoutOptionsToSlide, checkModifyPassword, viewerPreferencesFromViewProperties, DEFAULT_VIEWER_PREFERENCES, viewPropertiesPatchFromPreferences, openPptxFile, readBackstageRecentFile, resolveCollaborationShellEditability, resolveCollaborationShellState, deviceStrokeStageStyle, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, getSlideTransitionAnimations, getFragmentedTransitionDescriptor, SLIDE_TRANSITION_KEYFRAMES, isActionHidden, buildInlineTextCommitPatch, resolveInlineEditAutoFitHeight, resolveInlineEditNormAutofitShrink, setPendingCaretPoint, drillSelectionForDoubleClick, filterInteractableIds, beginShapeAdjustment, buildElementClipboardPayload, contextMenuInspectorAnchor, savedPresentationFileName, exportDeckJson, groupElements, generateElementId, ungroupElements, alignElements, distributeElements, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, planMergeShapes, applyMergeShapesPlan, mapPresentationKey, lastShowSlideIndex, mapPresentationWheel, openPendingPrintWindow, computeColorFilter, filterHiddenSlideIndices, computeSlideIndices, buildPrintDocument, finishPrintWindow, buildPrintHtmlDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, buildSlideTemplateSlide, templateSchemeFromTheme, resolveViewportFitOptions, EDITOR_VIEWPORT_FIT, calculateViewportFit, scheduleAutoAdvanceChain, computeEntranceAnimationDelay, createPresentationSessionId, resolveTransitionDurationMs, resolveTransitionSoundAction, runPresentationAction, safeOpenUrl, buildRunProgramNotice, toggleStageElementMedia, resolveOleVerbTarget, downloadDataUrl, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, resetPresenterTimer, presenterElapsed, stepPresenterZoom, togglePresenterTimer, addCommentToList, removeCommentFromList, editCommentInList, toggleCommentResolvedInList, slideSpaceMembers, remapTextToSegments, buildInlineListStylePatch, applyActiveInlineListFormatting, applyListStyleUpdate, setPendingSelectionRestore, applyTextStyleUpdate, toggleSelectionBullets, transformInlineListCase, applyCaseTransformToSegments, transformTextCase, resolveExportCaptureDecision, recordProgressPercent, computeGridSpacingPx as computeGridSpacingPx$1, resolveShowSlideIndexes, groupSlidesBySection, masterViewPseudoSlide, overlayMasterViewInlineSnapshot, overlayInlineTextSnapshot, rasterizeElement, cloneElementForPaste, applyPasteSpecialFormat, buildRasterPictureElement, cloneElementUpdates, assertElementUpdateTarget, prepareElementUpdateBatch, createWriteBackScheduler, observeExternalCollaborationReadiness, resolveHistoryDepth, createBackstagePresentation, buildFieldSubstitutionContext, isEnterableGroup, memberChainAtPoint, findElementPath, drillSelectionForClick, scrollInspectorSectionIntoView, computeScrollDelta, replyToCommentInList, removeTableElementColumn, insertTableElementColumn, removeTableElementRow, insertTableElementRow, withCellStyle, setCellText, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, stopCaptureStream, GIF_POST_CAPTURE_MAX_SIDE, encodeGif, rasterizeElementTiles, placeTileOnPage, PDF_SLIDES_PAGE_WIDTH_PT, PDF_SLIDES_PAGE_HEIGHT_PT, createSnapshotTextPositions, resolvePresentationAction, buildSmartArtPresetData, classifyMediaType, publishLiveGeometry, getDraggedShapeAdjustments, computeMarqueeHitIds, mergeAdditiveSelection, rasterizeElementTiledToCanvas, borrowExternalCollaborationAwareness, observeExternalCollaborationSession, clampGifDimensions, rasterResultToPngDataUrl, shouldConfirmExternalHyperlink, applyResize, lockResizeAspect, snapBoxToGrid, applyMotionPathPreset, bringForward, sendBackward, bringToFront, sendToBack } from 'ooxml-ui/pptx';
1
+ import { dist_exports, normalizeHexColor, DEFAULT_STROKE_COLOR, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getAriaRoleDescription, getAriaLabel, getAriaRole, isEditableTextElement, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageEffectsOpacity, getImageEffectsFilter, getImageRenderStyle, cn, ACTION_BUTTON_PRESETS, getImageSurfaceStyle, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, getElementLabel, DEFAULT_FILL_COLOR, buildCssGradientFromShapeStyle, getCropShapeClipPath, getElementTransform, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getImageSurfaceMaskStyle, isImageTiled, getDuotoneColors, getTextWarpStyle, getTextCompensationTransform, renderTextSegments, buildReactChartViewModel, renderChartElement, buildInkGroupStrokes, getInkReplayStyles, INK_REPLAY_KEYFRAMES, buildContentPartStrokes, getContentPartReplayStyles, MIN_ELEMENT_SIZE, buildTextBody3DSceneStyle, getImageTilingStyle, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, substituteFieldText, HYPERLINK_COLOR, cloneTemplateElementsBySlideId, cloneSlide, cloneHistorySnapshot, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, partitionTemplateElements, isTemplateElementId, comparePresentation, UNGROUPED_SECTION_ID, DEFAULT_SECTION_GROUP_ID, stopAllPersistentAudio, buildSaveSlides, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, makeCloneId, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, buildPdfFromTiledImageData, GRID_SIZE, copyFormatFromElement, hasCopyableFormat, rerouteConnectorsForMovedElements, applyReroutedConnectors, splitCell, mergeCells, buildNotesPdf, canvasToJpegData, applyFormatToElement, isPpactionUrl, parsePpactionUrl, isUrlSafe, computeSnapToShape, safeOpenUrl as safeOpenUrl$1 } from './chunk-SMPZ552M.mjs';
2
+ import { GlyphOutlineFontCache, createGlyphOutlineLookup, DEFAULT_VIEWER_OPTIONS, TOOLBAR_TABS, defineThreeViewElement, getSelectionControlArtworkStyle, svgLineCap, getSelectionOutlineColor, screenStrokeWidth, connectorWrapperTransform, resolveElementInteractivity, getBackgroundAnimationState, getShapeEffectLayerPlacement, buildTextStyleOverrideCss, isElementRendered, resolveElementAriaAttributes, isMediaFullscreenActive, shouldRenderHitTarget, elementHitTargetStyle, getShapeEffectAnimationLayerStyle, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, mediaTransportVisible, oleActionsVisible, getGroupChildParentFill, getResizeHandleHitAreaStyle, paintedStrokeWidth, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, paintedElementSize, MEDIA_FULLSCREEN_OVERLAY_STYLE, elementContainerHeightStyle, getAnimationOpacity, resolveElementHighlightClick, applyHighlightClickStyle, getComputedEffectStyle, getSoftEdgeSvgFilter, getEffectStyleSource, getBevelLightingSvgFilter, buildStrokeOutline, buildHollowHitOutline, buildSubpathFillOverlay, strokeOutlineViewBox, resolveRevealedSmartArtNodes, resolveRevealedDrawingShapes, buildSmartArtA11y, canDrillDown, computeSmartArtElementLayout, flattenNodes, buildSummaryZoomView, getImageColorWashStyle, readEditableText, placeCaretAt, takePendingCaretPoint, getPendingSelectionRestore, restoreSegmentSelection, mapInlineTextFormatKey, subscribeBarFacePicturePixelSamples, getBarFacePicturePixelSampleVersion, ensureChartInteractionStyles, applyChartPartHighlight, resolveRevealedChartData, formatAxisValue, resolveOleType, getOleAriaLabel, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, placeholderPromptDescriptor, getAriaRoleDescription as getAriaRoleDescription$1, getAriaLabel as getAriaLabel$1, attachRotateHandlePlacement, elementIdSelector, createRotationDrag, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, SMARTART_DEFAULT_PALETTE, resolvePalette as resolvePalette$1, computeDrawingViewBox, projectDrawingShapes, resolveRevealedDrawingShapeNodeIds, styleShadowFilter, buildChromeStyle, measureSvgViewportRect, modelDataToBlobUrl, resolveZoomNavigationTarget, getImageSvgFilters, getCachedNativeImageSize, probeNativeImageSize, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, inlineListBodyText, createInlineListSeed, readListActivationSelection, createInlineListModelObserver, attachCollaborationInlineEditor, bindInlineListParagraph, bindInlineListRun, attachInlineListController, restoreInlineListBodySelection, getInlineEditorSelectionResult, isBulletMarkerSegment, resolveChartThreeViewSpec, applyChart3DDrag, applyChart3DSelect, findChartPartTarget, withChartTitle, resolveSmartArtThreeViewSpec, isBrowserOpenableMime, formatBytes, getOleDisplayName, getOleBadgeLabel, openUrlInNewTab, hasGlyphEnvelope, buildGlyphEnvelopeBlock, getWarpPath, isWedgeCalloutPresetShape, getAriaRole as getAriaRole$1, isElementActionable, centeredSvgTextLines, findSmartArtNodeText, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, advanceChartMarkDrag, advanceChartValueDrag, resolveChartKind, buildChartMarkDragGeometry, beginChartMarkDrag, beginChartValueDrag, commitSmartArtNodeFill, commitSmartArtNodeText, groupIntoParagraphs as groupIntoParagraphs$1, computeInlineEditorRect, smartArtNodeAtPoint, MIN_TOUCH_TARGET_PX, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, createSyncGate, clearLocalAwareness, validateRoomId, createDepartureChannel, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, registerCollaborationTeardown, createPresenceProjector, BROADCAST_THROTTLE_MS, sanitizeColor, createWheelStepBuffer, createViewerZoomStore, clampZoomScale, mapEditingWheel, createActiveAnimationGroup, cancelBuildReveal, clearPlaybackTimers, PresentationAnimationController, resolveMediaTimeNodeElementIds, resolveMediaBookmarkTimesMs, advanceMainSequence, playGroup, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, endAudienceDisplay, createPresentationKeyBuffer, acceptsPresentationInput, resolveAutoAdvanceDelayMs, resolveForwardSlideWithZoomReturn, buildZoomTransitionOverride, hasShowSlideAfter, nextShowSlideIndex, previousShowSlideIndex, beginZoomExcursion, createPresenterShowGuard, firstShowSlideIndex, attachPresentationVisibilityPause, presentationEntrySlideIndex, buildMorphTransitionPlan, morphOptionToMode, buildMorphAnimationRules, findInSlides, applyFindReplacements, visibleTemplateElements, createCollaborationLivePatcher, publishLiveInlineText, createPresentationLoadResources, collectMediaElements, resolveMediaElementSource, collectImagePaths, applyImagePathPatches, resolveTableCellImageUrls, resolveTableStyleImageUrls, resolveTextFillBlipUrls, seedRecentColors, resolveAuthoredCustomShowId, buildInitialGuides, readOnlyRecommendation, compatibilityWarningToasts, resolveInitialSlideIndex, resolveAutosaveIntervalMs, shouldWriteAutosaveSnapshot, saveAutosaveSnapshot, autosaveSnapshotMark, updateMasterViewElement, updateElement, masterViewElements, replaceMasterViewElements, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, canMergeShapes, canInteractWithElement, prepareHtml2CanvasClone, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, resolveImageResolutionScale, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, describeFontEmbedding, isMobileViewport, resolveAuthoredSlideRange, mayLeaveSlideShow, buildDeckSaveOptions, resolveSlideSizeSelection, saveDeckWithPassword, shouldProbeAutosaveRecovery, probeAutosaveRecovery, acceptAutosaveRecovery, acknowledgeAutosaveRecovery, discardAutosaveRecovery, shouldLoopContinuously, applyRehearsalTimings, rasterResultToPngBlob, downloadBlob, elementPictureFilename, canEditElementPoints, collectReferencedFontFamilies, resolveGoogleWebfontHref, syncGoogleWebfontStylesheet, selectGoogleWebfontFamilies, fetchGoogleWebfontOutlineBytes, isFeatureEnabled, mapSlideShowStartKey, mapCustomizedEditorKey, isEditorControlTarget, isEditorTextInputTarget, parentSelection, textFontSizePtToPx, stepFontSizePt, textFontSizePxToPt, cycleSelectableElement, createCustomizationController, prepareElementForInsertion, slideSpaceElement, createViewerOptionsStore, observeYDocSlides, LOCAL_SYNC_ORIGIN, readSlidesFromYDoc, shouldRoomSlidesReplaceLoad, reconcileSlidesInYDoc, shouldAutoFollowBroadcaster, detectTouchDevice, detectOrientation, deriveViewportBreakpoints, createTouchGestureRecognizer, isKeyboardOpen, scopeLayoutOptionsToSlide, checkModifyPassword, viewerPreferencesFromViewProperties, DEFAULT_VIEWER_PREFERENCES, viewPropertiesPatchFromPreferences, openPptxFile, readBackstageRecentFile, resolveCollaborationShellEditability, resolveCollaborationShellState, deviceStrokeStageStyle, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, getSlideTransitionAnimations, getFragmentedTransitionDescriptor, SLIDE_TRANSITION_KEYFRAMES, isActionHidden, buildInlineTextCommitPatch, resolveInlineEditAutoFitHeight, resolveInlineEditNormAutofitShrink, setPendingCaretPoint, drillSelectionForDoubleClick, filterInteractableIds, beginShapeAdjustment, buildElementClipboardPayload, contextMenuInspectorAnchor, savedPresentationFileName, exportDeckJson, groupElements, generateElementId, ungroupElements, alignElements, distributeElements, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, planMergeShapes, applyMergeShapesPlan, mapPresentationKey, lastShowSlideIndex, mapPresentationWheel, openPendingPrintWindow, computeColorFilter, filterHiddenSlideIndices, computeSlideIndices, buildPrintDocument, finishPrintWindow, buildPrintHtmlDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, insertSlidePaste, applySlidePasteTemplates, makeSlideId, buildSlideTemplateSlide, templateSchemeFromTheme, resolveViewportFitOptions, EDITOR_VIEWPORT_FIT, calculateViewportFit, scheduleAutoAdvanceChain, computeEntranceAnimationDelay, createPresentationSessionId, resolveTransitionDurationMs, resolveTransitionSoundAction, runPresentationAction, safeOpenUrl, buildRunProgramNotice, toggleStageElementMedia, resolveOleVerbTarget, downloadDataUrl, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, resetPresenterTimer, presenterElapsed, stepPresenterZoom, togglePresenterTimer, addCommentToList, removeCommentFromList, editCommentInList, toggleCommentResolvedInList, slideSpaceMembers, remapTextToSegments, buildInlineListStylePatch, applyActiveInlineListFormatting, applyListStyleUpdate, setPendingSelectionRestore, applyTextStyleUpdate, toggleSelectionBullets, transformInlineListCase, applyCaseTransformToSegments, transformTextCase, resolveExportCaptureDecision, recordProgressPercent, computeGridSpacingPx as computeGridSpacingPx$1, resolveShowSlideIndexes, groupSlidesBySection, masterViewPseudoSlide, overlayMasterViewInlineSnapshot, overlayInlineTextSnapshot, rasterizeElement, cloneElementForPaste, applyPasteSpecialFormat, buildRasterPictureElement, cloneElementUpdates, assertElementUpdateTarget, prepareElementUpdateBatch, createWriteBackScheduler, observeExternalCollaborationReadiness, resolveHistoryDepth, createBackstagePresentation, buildFieldSubstitutionContext, isEnterableGroup, memberChainAtPoint, findElementPath, drillSelectionForClick, scrollInspectorSectionIntoView, computeScrollDelta, replyToCommentInList, removeTableElementColumn, insertTableElementColumn, removeTableElementRow, insertTableElementRow, withCellStyle, setCellText, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, stopCaptureStream, GIF_POST_CAPTURE_MAX_SIDE, encodeGif, rasterizeElementTiles, placeTileOnPage, PDF_SLIDES_PAGE_WIDTH_PT, PDF_SLIDES_PAGE_HEIGHT_PT, createSnapshotTextPositions, resolvePresentationAction, buildSmartArtPresetData, classifyMediaType, publishLiveGeometry, getDraggedShapeAdjustments, computeMarqueeHitIds, mergeAdditiveSelection, rasterizeElementTiledToCanvas, borrowExternalCollaborationAwareness, observeExternalCollaborationSession, clampGifDimensions, rasterResultToPngDataUrl, shouldConfirmExternalHyperlink, applyResize, lockResizeAspect, snapBoxToGrid, applyMotionPathPreset, bringForward, sendBackward, bringToFront, sendToBack } from 'ooxml-ui/pptx';
3
3
  export { DUOTONE_PRESETS, MOBILE_BREAKPOINT, SLIDE_TRANSITION_KEYFRAMES, TABLET_BREAKPOINT, clearAudienceContent, computeVirtualRange, downloadBlob, getSlideTransitionAnimations, loadAudienceContent, storeAudienceContent } from 'ooxml-ui/pptx';
4
4
  import React17, { createContext, useMemo, useState, useCallback, useEffect, Suspense, useRef, useLayoutEffect, useContext, useSyncExternalStore, useImperativeHandle } from 'react';
5
5
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
@@ -3297,6 +3297,9 @@ function useFindReplace({
3297
3297
  const [findQuery, setFindQuery] = useState("");
3298
3298
  const [replaceQuery, setReplaceQuery] = useState("");
3299
3299
  const [findMatchCase, setFindMatchCase] = useState(false);
3300
+ const [findIncludeNotes, setFindIncludeNotes] = useState(false);
3301
+ const [findIncludeChartTitles, setFindIncludeChartTitles] = useState(true);
3302
+ const [findIncludeChartData, setFindIncludeChartData] = useState(false);
3300
3303
  const [findResults, setFindResults] = useState([]);
3301
3304
  const [findResultIndex, setFindResultIndex] = useState(-1);
3302
3305
  const pendingRefindRef = useRef(false);
@@ -3309,7 +3312,12 @@ function useFindReplace({
3309
3312
  pendingRefindRef.current = false;
3310
3313
  }, [findReplaceOpen]);
3311
3314
  const performFind = useCallback(() => {
3312
- const results = findInSlides(slides, findQuery, { matchCase: findMatchCase });
3315
+ const results = findInSlides(slides, findQuery, {
3316
+ matchCase: findMatchCase,
3317
+ includeNotes: findIncludeNotes,
3318
+ includeChartTitles: findIncludeChartTitles,
3319
+ includeChartData: findIncludeChartData
3320
+ });
3313
3321
  if (!findQuery) {
3314
3322
  setFindResults([]);
3315
3323
  setFindResultIndex(-1);
@@ -3321,7 +3329,16 @@ function useFindReplace({
3321
3329
  onSetActiveSlideIndex(results[0].slideIndex);
3322
3330
  onSetSelectedElementId(results[0].elementId);
3323
3331
  }
3324
- }, [slides, findQuery, findMatchCase, onSetActiveSlideIndex, onSetSelectedElementId]);
3332
+ }, [
3333
+ slides,
3334
+ findQuery,
3335
+ findMatchCase,
3336
+ findIncludeNotes,
3337
+ findIncludeChartTitles,
3338
+ findIncludeChartData,
3339
+ onSetActiveSlideIndex,
3340
+ onSetSelectedElementId
3341
+ ]);
3325
3342
  const navigateFindResult = useCallback(
3326
3343
  (direction) => {
3327
3344
  if (findResults.length === 0) {
@@ -3342,6 +3359,9 @@ function useFindReplace({
3342
3359
  if (toReplace.length === 0) {
3343
3360
  return;
3344
3361
  }
3362
+ if (toReplace.some((match) => match.readOnly)) {
3363
+ return;
3364
+ }
3345
3365
  onUpdateSlides(
3346
3366
  (prevSlides) => applyFindReplacements(prevSlides, toReplace, replaceQuery).slides
3347
3367
  );
@@ -3398,6 +3418,12 @@ function useFindReplace({
3398
3418
  setReplaceQuery,
3399
3419
  findMatchCase,
3400
3420
  setFindMatchCase,
3421
+ findIncludeNotes,
3422
+ setFindIncludeNotes,
3423
+ findIncludeChartTitles,
3424
+ findIncludeChartData,
3425
+ setFindIncludeChartTitles,
3426
+ setFindIncludeChartData,
3401
3427
  findResults,
3402
3428
  findResultIndex,
3403
3429
  performFind,
@@ -4120,6 +4146,7 @@ function useViewerCoreState(_input) {
4120
4146
  const [clipboardPayload, setClipboardPayload] = useState(null);
4121
4147
  const [pointerCommitNonce, setPointerCommitNonce] = useState(0);
4122
4148
  const [headerFooter, setHeaderFooter] = useState({});
4149
+ const [firstSlideNumber, setFirstSlideNumber] = useState();
4123
4150
  const [layoutOptions, setLayoutOptions] = useState([]);
4124
4151
  const [slideMasters, setSlideMasters] = useState([]);
4125
4152
  const [modernCommentAuthors, setModernCommentAuthors] = useState([]);
@@ -4211,6 +4238,8 @@ function useViewerCoreState(_input) {
4211
4238
  setPointerCommitNonce,
4212
4239
  headerFooter,
4213
4240
  setHeaderFooter,
4241
+ firstSlideNumber,
4242
+ setFirstSlideNumber,
4214
4243
  layoutOptions,
4215
4244
  setLayoutOptions,
4216
4245
  slideMasters,
@@ -4422,6 +4451,7 @@ function useLoadContent({
4422
4451
  setCanvasSize,
4423
4452
  setSlideSizeEmu,
4424
4453
  setHeaderFooter,
4454
+ setFirstSlideNumber,
4425
4455
  setLayoutOptions,
4426
4456
  setSlideMasters,
4427
4457
  setModernCommentAuthors,
@@ -4571,6 +4601,7 @@ function useLoadContent({
4571
4601
  } : void 0
4572
4602
  );
4573
4603
  setHeaderFooter(parsed.headerFooter ?? {});
4604
+ setFirstSlideNumber(parsed.firstSlideNumber);
4574
4605
  setLayoutOptions(parsed.layoutOptions ?? []);
4575
4606
  setSlideMasters(parsed.slideMasters ?? []);
4576
4607
  setModernCommentAuthors(parsed.modernCommentAuthors ?? []);
@@ -7034,6 +7065,15 @@ function useSlideManagement(input) {
7034
7065
  );
7035
7066
  history.markDirty();
7036
7067
  };
7068
+ const handlePasteSlides = (request) => {
7069
+ if (!request.copies.length) {
7070
+ return;
7071
+ }
7072
+ ops.updateSlides((previous) => insertSlidePaste(previous, request));
7073
+ setTemplateElementsBySlideId?.((previous) => applySlidePasteTemplates(previous, request));
7074
+ setActiveSlideIndex(request.insertAt);
7075
+ history.markDirty();
7076
+ };
7037
7077
  const handleDuplicateSlides = (indexes) => {
7038
7078
  if (indexes.length === 0) {
7039
7079
  return;
@@ -7125,6 +7165,7 @@ function useSlideManagement(input) {
7125
7165
  handleSlideContextMenu,
7126
7166
  handleDeleteSlides,
7127
7167
  handleDuplicateSlides,
7168
+ handlePasteSlides,
7128
7169
  handleToggleHideSlides,
7129
7170
  handleInsertSlideFromLayout,
7130
7171
  handleInsertSlideFromTemplate
@@ -10494,6 +10535,7 @@ function useContentLifecycle(input) {
10494
10535
  setCanvasSize: state.setCanvasSize,
10495
10536
  setSlideSizeEmu: state.setSlideSizeEmu,
10496
10537
  setHeaderFooter: state.setHeaderFooter,
10538
+ setFirstSlideNumber: state.setFirstSlideNumber,
10497
10539
  setLayoutOptions: state.setLayoutOptions,
10498
10540
  setSlideMasters: state.setSlideMasters,
10499
10541
  setModernCommentAuthors: state.setModernCommentAuthors,
@@ -12098,7 +12140,8 @@ function buildCanvasProps(input) {
12098
12140
  const fieldContext = buildFieldSubstitutionContext({
12099
12141
  headerFooter: s.headerFooter,
12100
12142
  customProperties: s.customProperties,
12101
- slide: activeSlide
12143
+ slide: activeSlide,
12144
+ firstSlideNumber: s.firstSlideNumber
12102
12145
  });
12103
12146
  const tableStyleContext = s.theme || s.tableStyleMap ? { theme: s.theme, tableStyleMap: s.tableStyleMap } : void 0;
12104
12147
  const openExternalUrl = (url, target) => {
@@ -14856,7 +14899,10 @@ function getContainerStyle({
14856
14899
  // bindings multiply the two; React spread the shape style over its own
14857
14900
  // `opacity` key, so a half-transparent element carrying a DAG alpha
14858
14901
  // rendered at the DAG's alpha alone.
14859
- opacity: typeof shapeVisualStyle.opacity === "number" ? (opacity ?? 1) * shapeVisualStyle.opacity : opacity,
14902
+ opacity: getAnimationOpacity(
14903
+ animationState,
14904
+ typeof shapeVisualStyle.opacity === "number" ? (opacity ?? 1) * shapeVisualStyle.opacity : opacity
14905
+ ),
14860
14906
  // Editable-template affordance: a distinct amber dashed ring + slight
14861
14907
  // transparency so inherited master/layout shapes read as "template" while
14862
14908
  // edit-template mode is on. Applied after the shape style so it wins; never
@@ -15175,7 +15221,8 @@ var ElementRenderer = React17.memo(
15175
15221
  const chartUpdateHandler = smartArtUpdateHandler;
15176
15222
  const { hf, fc, sw, sc } = shapeParams(el);
15177
15223
  const allow = resolveElementInteractivity(el);
15178
- const backgroundAnimationState = presentationElementStates?.get(`${el.id}::pptx-bg`);
15224
+ const backgroundAnimationState = getBackgroundAnimationState(el, presentationElementStates);
15225
+ const effectPlacement = getShapeEffectLayerPlacement(el);
15179
15226
  const visualAnimationState = backgroundAnimationState ?? animationState;
15180
15227
  const isTxt = isEditableTextElement(el) && allow.textEditable;
15181
15228
  const txtSE = (0, dist_exports.hasTextProperties)(el) ? el.textStyle : void 0;
@@ -15257,6 +15304,7 @@ var ElementRenderer = React17.memo(
15257
15304
  });
15258
15305
  const hitTargetStyle = shouldRenderHitTarget(effectiveCanInteract, isPresentationPassive) ? elementHitTargetStyle(el) : void 0;
15259
15306
  const isFocusable = effectiveCanInteract || isActionable;
15307
+ const backgroundLayerStyle = backgroundAnimationState ? getShapeEffectAnimationLayerStyle(el, ss, backgroundAnimationState) : void 0;
15260
15308
  const containerStyle = getContainerStyle({
15261
15309
  el,
15262
15310
  isFullscreenMedia,
@@ -15335,33 +15383,7 @@ var ElementRenderer = React17.memo(
15335
15383
  style: hitTargetStyle
15336
15384
  }
15337
15385
  ),
15338
- backgroundAnimationState ? /* @__PURE__ */ jsxs(
15339
- "div",
15340
- {
15341
- "data-pptx-animation-layer": "background",
15342
- style: {
15343
- ...ss,
15344
- position: "absolute",
15345
- inset: 0,
15346
- transformOrigin: "center",
15347
- visibility: backgroundAnimationState.visible === false ? "hidden" : "visible",
15348
- animation: backgroundAnimationState.cssAnimation,
15349
- pointerEvents: "none"
15350
- },
15351
- children: [
15352
- /* @__PURE__ */ jsx(
15353
- ShapeEffectOverlay,
15354
- {
15355
- element: el,
15356
- animatesFill: visualAnimationState?.animatesFill,
15357
- animatesStroke: visualAnimationState?.animatesStroke
15358
- }
15359
- ),
15360
- extrusionData.hasExtrusion && /* @__PURE__ */ jsx(Extrusion3DOverlay, { data: extrusionData }),
15361
- isImg ? null : vs
15362
- ]
15363
- }
15364
- ) : /* @__PURE__ */ jsxs(Fragment, { children: [
15386
+ backgroundAnimationState && effectPlacement.beforeBody ? /* @__PURE__ */ jsxs("div", { "data-pptx-animation-layer": "background", style: backgroundLayerStyle, children: [
15365
15387
  /* @__PURE__ */ jsx(
15366
15388
  ShapeEffectOverlay,
15367
15389
  {
@@ -15370,6 +15392,17 @@ var ElementRenderer = React17.memo(
15370
15392
  animatesStroke: visualAnimationState?.animatesStroke
15371
15393
  }
15372
15394
  ),
15395
+ extrusionData.hasExtrusion && /* @__PURE__ */ jsx(Extrusion3DOverlay, { data: extrusionData }),
15396
+ isImg ? null : vs
15397
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
15398
+ effectPlacement.beforeBody && /* @__PURE__ */ jsx(
15399
+ ShapeEffectOverlay,
15400
+ {
15401
+ element: el,
15402
+ animatesFill: visualAnimationState?.animatesFill,
15403
+ animatesStroke: visualAnimationState?.animatesStroke
15404
+ }
15405
+ ),
15373
15406
  extrusionData.hasExtrusion && /* @__PURE__ */ jsx(Extrusion3DOverlay, { data: extrusionData })
15374
15407
  ] }),
15375
15408
  renderBody({
@@ -15435,6 +15468,21 @@ var ElementRenderer = React17.memo(
15435
15468
  onUpdateChartElement: chartUpdateHandler,
15436
15469
  onFormatText
15437
15470
  }),
15471
+ effectPlacement.afterBody && /* @__PURE__ */ jsx(
15472
+ "div",
15473
+ {
15474
+ "data-pptx-animation-layer": backgroundAnimationState ? "background" : void 0,
15475
+ style: backgroundLayerStyle ?? { display: "contents" },
15476
+ children: /* @__PURE__ */ jsx(
15477
+ ShapeEffectOverlay,
15478
+ {
15479
+ element: el,
15480
+ animatesFill: visualAnimationState?.animatesFill,
15481
+ animatesStroke: visualAnimationState?.animatesStroke
15482
+ }
15483
+ )
15484
+ }
15485
+ ),
15438
15486
  /* @__PURE__ */ jsx(ActionAffordances, { affordance: actionAffordance })
15439
15487
  ]
15440
15488
  }
@@ -18286,7 +18334,7 @@ function StaticElementRendererImpl({
18286
18334
  animation
18287
18335
  },
18288
18336
  children: [
18289
- /* @__PURE__ */ jsx(ShapeEffectOverlay, { element, suppressReflection }),
18337
+ getShapeEffectLayerPlacement(element).beforeBody && /* @__PURE__ */ jsx(ShapeEffectOverlay, { element, suppressReflection }),
18290
18338
  element.type === "group" ? /* @__PURE__ */ jsx("div", { className: "relative w-full h-full", children: (element.children ?? []).map((child, index) => /* @__PURE__ */ jsx(
18291
18339
  StaticElementRenderer,
18292
18340
  {
@@ -18346,7 +18394,8 @@ function StaticElementRendererImpl({
18346
18394
  tableStyleContext,
18347
18395
  canEditSmartArt: false,
18348
18396
  canEditChart: false
18349
- })
18397
+ }),
18398
+ getShapeEffectLayerPlacement(element).afterBody && /* @__PURE__ */ jsx(ShapeEffectOverlay, { element, suppressReflection })
18350
18399
  ]
18351
18400
  }
18352
18401
  );
Binary file
Binary file