pptx-react-viewer 3.1.4 → 3.2.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 (157) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/{AiChatPanel-ITCVRVKP.mjs → AiChatPanel-C3E7NLX3.mjs} +4 -4
  3. package/dist/AiChatPanel-C3E7NLX3.mjs.br +0 -0
  4. package/dist/AiChatPanel-C3E7NLX3.mjs.gz +0 -0
  5. package/dist/{AiChatPanel-TO5PHBGW.js → AiChatPanel-TKBVSYD2.js} +24 -24
  6. package/dist/AiChatPanel-TKBVSYD2.js.br +0 -0
  7. package/dist/AiChatPanel-TKBVSYD2.js.gz +0 -0
  8. package/dist/{Area3DChartScene-2UNQ3J3V.js → Area3DChartScene-3A3CXKN3.js} +2 -2
  9. package/dist/Area3DChartScene-3A3CXKN3.js.br +0 -0
  10. package/dist/Area3DChartScene-3A3CXKN3.js.gz +0 -0
  11. package/dist/{Area3DChartScene-7PHPDOTG.mjs → Area3DChartScene-7YCFWEGX.mjs} +1 -1
  12. package/dist/Area3DChartScene-7YCFWEGX.mjs.br +3 -0
  13. package/dist/Area3DChartScene-7YCFWEGX.mjs.gz +0 -0
  14. package/dist/{Bar3DChartScene-BLPUHYRZ.mjs → Bar3DChartScene-7CNSJ35X.mjs} +1 -1
  15. package/dist/Bar3DChartScene-7CNSJ35X.mjs.br +0 -0
  16. package/dist/Bar3DChartScene-7CNSJ35X.mjs.gz +0 -0
  17. package/dist/{Bar3DChartScene-MC5S3AGT.js → Bar3DChartScene-BDUENAWJ.js} +2 -2
  18. package/dist/Bar3DChartScene-BDUENAWJ.js.br +0 -0
  19. package/dist/Bar3DChartScene-BDUENAWJ.js.gz +0 -0
  20. package/dist/{Line3DChartScene-JVVZRIDD.js → Line3DChartScene-R352CZ5U.js} +2 -2
  21. package/dist/Line3DChartScene-R352CZ5U.js.br +0 -0
  22. package/dist/Line3DChartScene-R352CZ5U.js.gz +0 -0
  23. package/dist/{Line3DChartScene-L5B4YFG3.mjs → Line3DChartScene-SMTHK6MD.mjs} +1 -1
  24. package/dist/Line3DChartScene-SMTHK6MD.mjs.br +3 -0
  25. package/dist/Line3DChartScene-SMTHK6MD.mjs.gz +0 -0
  26. package/dist/{Model3DScene-6TNWS5LV.mjs → Model3DScene-AUVJXXPV.mjs} +1 -1
  27. package/dist/Model3DScene-AUVJXXPV.mjs.br +0 -0
  28. package/dist/Model3DScene-AUVJXXPV.mjs.gz +0 -0
  29. package/dist/{Model3DScene-LRDNQNKJ.js → Model3DScene-Y4SGFQYW.js} +2 -2
  30. package/dist/{Model3DScene-LRDNQNKJ.js.br → Model3DScene-Y4SGFQYW.js.br} +0 -0
  31. package/dist/Model3DScene-Y4SGFQYW.js.gz +0 -0
  32. package/dist/{PieChart3DScene-PZWZCXHX.js → PieChart3DScene-TK2VT4RS.js} +2 -2
  33. package/dist/PieChart3DScene-TK2VT4RS.js.br +0 -0
  34. package/dist/PieChart3DScene-TK2VT4RS.js.gz +0 -0
  35. package/dist/{PieChart3DScene-XXAIVP4I.mjs → PieChart3DScene-UD7GRH55.mjs} +1 -1
  36. package/dist/PieChart3DScene-UD7GRH55.mjs.br +0 -0
  37. package/dist/PieChart3DScene-UD7GRH55.mjs.gz +0 -0
  38. package/dist/{SurfaceChart3DScene-UBQV3ZN2.js → SurfaceChart3DScene-ERFXZW2O.js} +2 -2
  39. package/dist/SurfaceChart3DScene-ERFXZW2O.js.br +0 -0
  40. package/dist/SurfaceChart3DScene-ERFXZW2O.js.gz +0 -0
  41. package/dist/{SurfaceChart3DScene-CRUGJSCY.mjs → SurfaceChart3DScene-TXY6UZSW.mjs} +1 -1
  42. package/dist/SurfaceChart3DScene-TXY6UZSW.mjs.br +0 -0
  43. package/dist/SurfaceChart3DScene-TXY6UZSW.mjs.gz +0 -0
  44. package/dist/{chunk-SWRY3SI5.js → chunk-ALO4ZOHQ.js} +46 -1
  45. package/dist/chunk-ALO4ZOHQ.js.br +0 -0
  46. package/dist/{chunk-SWRY3SI5.js.gz → chunk-ALO4ZOHQ.js.gz} +0 -0
  47. package/dist/{chunk-LXYDXLKZ.js → chunk-ARQGUUYU.js} +421 -460
  48. package/dist/chunk-ARQGUUYU.js.br +0 -0
  49. package/dist/chunk-ARQGUUYU.js.gz +0 -0
  50. package/dist/{chunk-T2QG2HD5.js → chunk-B6UIVRFA.js} +167 -167
  51. package/dist/chunk-B6UIVRFA.js.br +0 -0
  52. package/dist/chunk-B6UIVRFA.js.gz +0 -0
  53. package/dist/{chunk-YDEEINER.js → chunk-FJDZ7AEE.js} +6446 -3739
  54. package/dist/chunk-FJDZ7AEE.js.br +0 -0
  55. package/dist/chunk-FJDZ7AEE.js.gz +0 -0
  56. package/dist/{chunk-BPWSJLLG.mjs → chunk-FMEEIS6L.mjs} +2 -2
  57. package/dist/chunk-FMEEIS6L.mjs.br +0 -0
  58. package/dist/chunk-FMEEIS6L.mjs.gz +0 -0
  59. package/dist/{chunk-XIHK52SB.mjs → chunk-G7UBIKAG.mjs} +6445 -3740
  60. package/dist/chunk-G7UBIKAG.mjs.br +0 -0
  61. package/dist/chunk-G7UBIKAG.mjs.gz +0 -0
  62. package/dist/{chunk-57MGKBJ4.mjs → chunk-PPNXPEEZ.mjs} +20 -14
  63. package/dist/chunk-PPNXPEEZ.mjs.br +0 -0
  64. package/dist/chunk-PPNXPEEZ.mjs.gz +0 -0
  65. package/dist/{chunk-LGVNUG3G.js → chunk-Q52HT4EZ.js} +9 -8
  66. package/dist/chunk-Q52HT4EZ.js.br +0 -0
  67. package/dist/chunk-Q52HT4EZ.js.gz +0 -0
  68. package/dist/{chunk-ARJE3V6V.mjs → chunk-RHSA5BW5.mjs} +46 -1
  69. package/dist/chunk-RHSA5BW5.mjs.br +0 -0
  70. package/dist/{chunk-ARJE3V6V.mjs.gz → chunk-RHSA5BW5.mjs.gz} +0 -0
  71. package/dist/{chunk-T44LBKF6.js → chunk-RRAL4Y7V.js} +1136 -1130
  72. package/dist/chunk-RRAL4Y7V.js.br +0 -0
  73. package/dist/chunk-RRAL4Y7V.js.gz +0 -0
  74. package/dist/{chunk-QOLYY7E3.mjs → chunk-RX6FE24O.mjs} +7 -6
  75. package/dist/chunk-RX6FE24O.mjs.br +0 -0
  76. package/dist/chunk-RX6FE24O.mjs.gz +0 -0
  77. package/dist/{chunk-A2UAUSJM.mjs → chunk-UHR7EYFM.mjs} +18 -57
  78. package/dist/chunk-UHR7EYFM.mjs.br +0 -0
  79. package/dist/chunk-UHR7EYFM.mjs.gz +0 -0
  80. package/dist/i18n.js +4 -4
  81. package/dist/i18n.js.br +0 -0
  82. package/dist/i18n.js.gz +0 -0
  83. package/dist/i18n.mjs +1 -1
  84. package/dist/i18n.mjs.br +0 -0
  85. package/dist/i18n.mjs.gz +0 -0
  86. package/dist/index.d.ts +170 -17
  87. package/dist/index.js +47 -47
  88. package/dist/index.js.br +0 -0
  89. package/dist/index.js.gz +0 -0
  90. package/dist/index.mjs +6 -6
  91. package/dist/index.mjs.br +0 -0
  92. package/dist/index.mjs.gz +0 -0
  93. package/dist/internals.d.ts +170 -17
  94. package/dist/internals.d.ts.map +1 -1
  95. package/dist/internals.js +79 -79
  96. package/dist/internals.js.br +0 -0
  97. package/dist/internals.js.gz +0 -0
  98. package/dist/internals.mjs +4 -4
  99. package/dist/internals.mjs.br +0 -0
  100. package/dist/internals.mjs.gz +0 -0
  101. package/dist/viewer/index.d.ts +170 -17
  102. package/dist/viewer/index.js +27 -27
  103. package/dist/viewer/index.js.br +0 -0
  104. package/dist/viewer/index.js.gz +0 -0
  105. package/dist/viewer/index.mjs +6 -6
  106. package/dist/viewer/index.mjs.br +0 -0
  107. package/dist/viewer/index.mjs.gz +0 -0
  108. package/package.json +1 -1
  109. package/dist/AiChatPanel-ITCVRVKP.mjs.br +0 -0
  110. package/dist/AiChatPanel-ITCVRVKP.mjs.gz +0 -0
  111. package/dist/AiChatPanel-TO5PHBGW.js.br +0 -0
  112. package/dist/AiChatPanel-TO5PHBGW.js.gz +0 -0
  113. package/dist/Area3DChartScene-2UNQ3J3V.js.br +0 -0
  114. package/dist/Area3DChartScene-2UNQ3J3V.js.gz +0 -0
  115. package/dist/Area3DChartScene-7PHPDOTG.mjs.br +0 -0
  116. package/dist/Area3DChartScene-7PHPDOTG.mjs.gz +0 -0
  117. package/dist/Bar3DChartScene-BLPUHYRZ.mjs.br +0 -0
  118. package/dist/Bar3DChartScene-BLPUHYRZ.mjs.gz +0 -0
  119. package/dist/Bar3DChartScene-MC5S3AGT.js.br +0 -0
  120. package/dist/Bar3DChartScene-MC5S3AGT.js.gz +0 -0
  121. package/dist/Line3DChartScene-JVVZRIDD.js.br +0 -0
  122. package/dist/Line3DChartScene-JVVZRIDD.js.gz +0 -0
  123. package/dist/Line3DChartScene-L5B4YFG3.mjs.br +0 -0
  124. package/dist/Line3DChartScene-L5B4YFG3.mjs.gz +0 -0
  125. package/dist/Model3DScene-6TNWS5LV.mjs.br +0 -0
  126. package/dist/Model3DScene-6TNWS5LV.mjs.gz +0 -0
  127. package/dist/Model3DScene-LRDNQNKJ.js.gz +0 -0
  128. package/dist/PieChart3DScene-PZWZCXHX.js.br +0 -0
  129. package/dist/PieChart3DScene-PZWZCXHX.js.gz +0 -0
  130. package/dist/PieChart3DScene-XXAIVP4I.mjs.br +0 -0
  131. package/dist/PieChart3DScene-XXAIVP4I.mjs.gz +0 -0
  132. package/dist/SurfaceChart3DScene-CRUGJSCY.mjs.br +0 -1
  133. package/dist/SurfaceChart3DScene-CRUGJSCY.mjs.gz +0 -0
  134. package/dist/SurfaceChart3DScene-UBQV3ZN2.js.br +0 -0
  135. package/dist/SurfaceChart3DScene-UBQV3ZN2.js.gz +0 -0
  136. package/dist/chunk-57MGKBJ4.mjs.br +0 -0
  137. package/dist/chunk-57MGKBJ4.mjs.gz +0 -0
  138. package/dist/chunk-A2UAUSJM.mjs.br +0 -0
  139. package/dist/chunk-A2UAUSJM.mjs.gz +0 -0
  140. package/dist/chunk-ARJE3V6V.mjs.br +0 -0
  141. package/dist/chunk-BPWSJLLG.mjs.br +0 -0
  142. package/dist/chunk-BPWSJLLG.mjs.gz +0 -0
  143. package/dist/chunk-LGVNUG3G.js.br +0 -0
  144. package/dist/chunk-LGVNUG3G.js.gz +0 -0
  145. package/dist/chunk-LXYDXLKZ.js.br +0 -0
  146. package/dist/chunk-LXYDXLKZ.js.gz +0 -0
  147. package/dist/chunk-QOLYY7E3.mjs.br +0 -0
  148. package/dist/chunk-QOLYY7E3.mjs.gz +0 -0
  149. package/dist/chunk-SWRY3SI5.js.br +0 -0
  150. package/dist/chunk-T2QG2HD5.js.br +0 -0
  151. package/dist/chunk-T2QG2HD5.js.gz +0 -0
  152. package/dist/chunk-T44LBKF6.js.br +0 -0
  153. package/dist/chunk-T44LBKF6.js.gz +0 -0
  154. package/dist/chunk-XIHK52SB.mjs.br +0 -0
  155. package/dist/chunk-XIHK52SB.mjs.gz +0 -0
  156. package/dist/chunk-YDEEINER.js.br +0 -0
  157. package/dist/chunk-YDEEINER.js.gz +0 -0
Binary file
Binary file
@@ -1,4 +1,4 @@
1
- import { ThemePresets, PptxMarkdownConverter } from './chunk-XIHK52SB.mjs';
1
+ import { ThemePresets, PptxMarkdownConverter } from './chunk-G7UBIKAG.mjs';
2
2
  import { __export } from './chunk-XGB3TDIC.mjs';
3
3
  import * as mcp from 'pptx-viewer-mcp';
4
4
  import * as mcpSchemas from 'pptx-viewer-mcp/schemas';
@@ -16195,11 +16195,6 @@ function changeGhostStyle(change, phase, config2) {
16195
16195
  }
16196
16196
  init_chat_history_store();
16197
16197
  init_chat_history_store();
16198
- function deckIdFromBridge(bridge) {
16199
- const meta3 = bridge.getDeckMeta();
16200
- const title = (meta3.title ?? "deck").trim().toLowerCase().replace(/\s+/gu, "-").slice(0, 60);
16201
- return `${title || "deck"}::${meta3.slideCount}`;
16202
- }
16203
16198
  function isTextPart(part) {
16204
16199
  return part.type === "text";
16205
16200
  }
@@ -16240,6 +16235,12 @@ function toRenderableParts(message) {
16240
16235
  }
16241
16236
  return out;
16242
16237
  }
16238
+ init_chat_history_store();
16239
+ function deckIdFromBridge(bridge) {
16240
+ const meta3 = bridge.getDeckMeta();
16241
+ const title = (meta3.title ?? "deck").trim().toLowerCase().replace(/\s+/gu, "-").slice(0, 60);
16242
+ return `${title || "deck"}::${meta3.slideCount}`;
16243
+ }
16243
16244
  function toolLabel(toolName) {
16244
16245
  if (!toolName) {
16245
16246
  return "Tool";
Binary file
Binary file
@@ -1,6 +1,6 @@
1
- import { cloneHistorySnapshot, MIN_ELEMENT_SIZE, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, UNGROUPED_SECTION_ID, DEFAULT_SECTION_GROUP_ID, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, executeMediaCommand, buildPdfFromImageData, buildNotesPdf, GRID_SIZE, DEFAULT_TEXT_FONT_SIZE } from './chunk-BPWSJLLG.mjs';
2
- import { DEFAULT_VIEWER_OPTIONS, TOOLBAR_TABS, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, createPresenceProjector, BROADCAST_THROTTLE_MS, createSyncGate, clearLocalAwareness, validateRoomId, createDepartureChannel, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, registerCollaborationTeardown, sanitizeColor, cloneTemplateElementsBySlideId, cloneSlide, createWheelStepBuffer, createViewerZoomStore, clampZoomScale, mapEditingWheel, PresentationAnimationController, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, endAudienceDisplay, createPresentationKeyBuffer, acceptsPresentationInput, resolveAutoAdvanceDelayMs, hasShowSlideAfter, nextShowSlideIndex, previousShowSlideIndex, createPresenterShowGuard, attachPresentationVisibilityPause, buildMorphTransitionPlan, morphOptionToMode, buildMorphAnimationRules, findInSlides, applyFindReplacements, createCollaborationLivePatcher, publishLiveInlineText, PptxHandler, collectMediaElements, collectImagePaths, collectTableCellImagePaths, applyTableCellImagePatches, collectTableStyleImagePaths, applyTableStyleImagePatches, partitionTemplateElements, resolveAuthoredCustomShowId, buildInitialGuides, EncryptedFileError, resolveAutosaveIntervalMs, shouldWriteAutosaveSnapshot, saveAutosaveSnapshot, autosaveSnapshotMark, updateMasterViewElement, isTemplateElementId, hasShapeProperties, hasTextProperties, getInlineEditorSelection, applyStyleToSelectedSegments, setPendingSelectionRestore, applyCaseTransformToSegments, transformTextCase, masterViewElements, replaceMasterViewElements, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, normalizeColorsForCapture, preprocessCssForCapture, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, recordProgressPercent, downloadBlob, resolveImageResolutionScale, applyThemeToData, THEME_PRESETS, themeColorSchemesEqual, comparePresentation, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, describeFontEmbedding, isMobileViewport, mayLeaveSlideShow, stopAllPersistentAudio, remapTextToSegments, guidePxToEmu, buildSaveSlides, embeddedFontSaveOptions, resolveSlideSizeSelection, saveDeckWithPassword, shouldProbeAutosaveRecovery, probeAutosaveRecovery, acceptAutosaveRecovery, discardAutosaveRecovery, shouldLoopContinuously, applyRehearsalTimings, copyFormatFromElement, applyFormatToElement, mapEditorKey, isEditorTextInputTarget, createViewerOptionsStore, readSlidesFromYDoc, shouldRoomSlidesReplaceLoad, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, shouldAutoFollowBroadcaster, detectTouchDevice, detectOrientation, deriveViewportBreakpoints, createTouchGestureRecognizer, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, isKeyboardOpen, scopeLayoutOptionsToSlide, openPptxFile, readBackstageRecentFile, isActionHidden, resolveInlineEditAutoFitHeight, canInteractWithElement, filterInteractableIds, beginShapeAdjustment, buildElementClipboardPayload, savedPresentationFileName, exportDeckJson, groupElements, generateElementId, makeCloneId, ungroupElements, alignElements, distributeElements, bringForward, sendBackward, bringToFront, sendToBack, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, mergeShapes, mapPresentationKey, lastShowSlideIndex, firstShowSlideIndex, mapPresentationWheel, openPendingPrintWindow, computeColorFilter, filterHiddenSlideIndices, computeSlideIndices, buildPrintDocument, finishPrintWindow, buildPrintHtmlDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, buildSlideTemplateSlide, templateSchemeFromTheme, buildThemeColorMap, reResolveSlideColors, computeEntranceAnimationDelay, createPresentationSessionId, resolveTransitionDurationMs, runPresentationAction, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, resetPresenterTimer, presenterElapsed, stepPresenterZoom, togglePresenterTimer, addCommentToList, removeCommentFromList, editCommentInList, toggleCommentResolvedInList, replyToCommentInList, canvasToJpegData, downloadDataUrl, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, encodeGif, computeGridSpacingPx, resolveShowSlideIndexes, groupSlidesBySection, masterViewPseudoSlide, resolveHistoryDepth, hasCopyableFormat, createBackstagePresentation, buildFieldSubstitutionContext, cloneElementForPaste, computeScrollDelta, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, rerouteConnectorsForMovedElements, applyReroutedConnectors, SvgExporter, deleteTableColumn, rebuildTableStructureInRawXml, insertTableColumn, deleteTableRow, insertTableRow, updateCellTextStyleInRawXml, setCellText, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, isPpactionUrl, parsePpactionUrl, resolvePresentationAction, ACTION_BUTTON_PRESETS, elementActionToPptxAction, isUrlSafe, buildSmartArtPresetData, classifyMediaType, computeSnapToShape, publishLiveGeometry, getDraggedShapeAdjustments, computeMarqueeHitIds, mergeAdditiveSelection, shouldConfirmExternalHyperlink, safeOpenUrl, applyResize, snapBoxToGrid, applyMotionPathPreset } from './chunk-XIHK52SB.mjs';
3
- import { translationsEn } from './chunk-ARJE3V6V.mjs';
1
+ import { cloneHistorySnapshot, MIN_ELEMENT_SIZE, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, UNGROUPED_SECTION_ID, DEFAULT_SECTION_GROUP_ID, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, executeMediaCommand, buildPdfFromImageData, buildNotesPdf, GRID_SIZE, DEFAULT_TEXT_FONT_SIZE } from './chunk-FMEEIS6L.mjs';
2
+ import { DEFAULT_VIEWER_OPTIONS, TOOLBAR_TABS, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, createPresenceProjector, BROADCAST_THROTTLE_MS, createSyncGate, clearLocalAwareness, validateRoomId, createDepartureChannel, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, registerCollaborationTeardown, sanitizeColor, cloneTemplateElementsBySlideId, cloneSlide, createWheelStepBuffer, createViewerZoomStore, clampZoomScale, mapEditingWheel, PresentationAnimationController, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, endAudienceDisplay, createPresentationKeyBuffer, acceptsPresentationInput, resolveAutoAdvanceDelayMs, hasShowSlideAfter, nextShowSlideIndex, previousShowSlideIndex, createPresenterShowGuard, attachPresentationVisibilityPause, buildMorphTransitionPlan, morphOptionToMode, buildMorphAnimationRules, findInSlides, applyFindReplacements, createCollaborationLivePatcher, publishLiveInlineText, PptxHandler, collectMediaElements, collectImagePaths, collectTableCellImagePaths, applyTableCellImagePatches, collectTableStyleImagePaths, applyTableStyleImagePatches, partitionTemplateElements, resolveAuthoredCustomShowId, buildInitialGuides, EncryptedFileError, resolveAutosaveIntervalMs, shouldWriteAutosaveSnapshot, saveAutosaveSnapshot, autosaveSnapshotMark, updateMasterViewElement, isTemplateElementId, hasShapeProperties, hasTextProperties, getInlineEditorSelection, applyStyleToSelectedSegments, setPendingSelectionRestore, applyCaseTransformToSegments, transformTextCase, masterViewElements, replaceMasterViewElements, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, normalizeColorsForCapture, preprocessCssForCapture, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, recordProgressPercent, downloadBlob, resolveImageResolutionScale, applyThemeToData, THEME_PRESETS, themeColorSchemesEqual, comparePresentation, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, describeFontEmbedding, isMobileViewport, mayLeaveSlideShow, stopAllPersistentAudio, remapTextToSegments, guidePxToEmu, buildSaveSlides, embeddedFontSaveOptions, resolveSlideSizeSelection, saveDeckWithPassword, shouldProbeAutosaveRecovery, probeAutosaveRecovery, acceptAutosaveRecovery, discardAutosaveRecovery, shouldLoopContinuously, applyRehearsalTimings, copyFormatFromElement, applyFormatToElement, collectReferencedFontFamilies, resolveGoogleWebfontHref, mapEditorKey, isEditorTextInputTarget, createViewerOptionsStore, readSlidesFromYDoc, shouldRoomSlidesReplaceLoad, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, shouldAutoFollowBroadcaster, detectTouchDevice, detectOrientation, deriveViewportBreakpoints, createTouchGestureRecognizer, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, isKeyboardOpen, scopeLayoutOptionsToSlide, openPptxFile, readBackstageRecentFile, isActionHidden, resolveInlineEditAutoFitHeight, canInteractWithElement, filterInteractableIds, beginShapeAdjustment, buildElementClipboardPayload, savedPresentationFileName, exportDeckJson, groupElements, generateElementId, makeCloneId, ungroupElements, alignElements, distributeElements, bringForward, sendBackward, bringToFront, sendToBack, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, mergeShapes, mapPresentationKey, lastShowSlideIndex, firstShowSlideIndex, mapPresentationWheel, openPendingPrintWindow, computeColorFilter, filterHiddenSlideIndices, computeSlideIndices, buildPrintDocument, finishPrintWindow, buildPrintHtmlDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, buildSlideTemplateSlide, templateSchemeFromTheme, buildThemeColorMap, reResolveSlideColors, computeEntranceAnimationDelay, createPresentationSessionId, resolveTransitionDurationMs, runPresentationAction, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, resetPresenterTimer, presenterElapsed, stepPresenterZoom, togglePresenterTimer, addCommentToList, removeCommentFromList, editCommentInList, toggleCommentResolvedInList, replyToCommentInList, canvasToJpegData, downloadDataUrl, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, encodeGif, computeGridSpacingPx, resolveShowSlideIndexes, groupSlidesBySection, masterViewPseudoSlide, resolveHistoryDepth, hasCopyableFormat, createBackstagePresentation, buildFieldSubstitutionContext, cloneElementForPaste, computeScrollDelta, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, rerouteConnectorsForMovedElements, applyReroutedConnectors, SvgExporter, deleteTableColumn, rebuildTableStructureInRawXml, insertTableColumn, deleteTableRow, insertTableRow, updateCellTextStyleInRawXml, setCellText, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, isPpactionUrl, parsePpactionUrl, resolvePresentationAction, ACTION_BUTTON_PRESETS, elementActionToPptxAction, isUrlSafe, buildSmartArtPresetData, classifyMediaType, computeSnapToShape, publishLiveGeometry, getDraggedShapeAdjustments, computeMarqueeHitIds, mergeAdditiveSelection, shouldConfirmExternalHyperlink, safeOpenUrl, applyResize, snapBoxToGrid, applyMotionPathPreset } from './chunk-G7UBIKAG.mjs';
3
+ import { translationsEn } from './chunk-RHSA5BW5.mjs';
4
4
  import { createContext, useRef, useState, useEffect, useCallback, useMemo, useLayoutEffect, useContext, useImperativeHandle, useSyncExternalStore } from 'react';
5
5
  import { useTranslation } from 'react-i18next';
6
6
 
@@ -9179,28 +9179,6 @@ function useIOHandlers(input) {
9179
9179
  });
9180
9180
  return { exportHandlers, printHandlers, themeHandlers, propertyHandlers };
9181
9181
  }
9182
- var GOOGLE_FONTS_AVAILABLE = {
9183
- "Atkinson Hyperlegible": "Atkinson+Hyperlegible:wght@400;700",
9184
- Roboto: "Roboto:wght@400;700",
9185
- "Open Sans": "Open+Sans:wght@400;700",
9186
- Lato: "Lato:wght@400;700",
9187
- Montserrat: "Montserrat:wght@400;700",
9188
- Poppins: "Poppins:wght@400;700",
9189
- Raleway: "Raleway:wght@400;700",
9190
- Nunito: "Nunito:wght@400;700",
9191
- "Playfair Display": "Playfair+Display:wght@400;700",
9192
- "Source Sans Pro": "Source+Sans+Pro:wght@400;700",
9193
- "PT Sans": "PT+Sans:wght@400;700",
9194
- Merriweather: "Merriweather:wght@400;700",
9195
- Ubuntu: "Ubuntu:wght@400;700",
9196
- Oswald: "Oswald:wght@400;700",
9197
- "Noto Sans": "Noto+Sans:wght@400;700",
9198
- "Fira Sans": "Fira+Sans:wght@400;700",
9199
- Inter: "Inter:wght@400;700",
9200
- "Work Sans": "Work+Sans:wght@400;700",
9201
- Quicksand: "Quicksand:wght@400;700",
9202
- Cabin: "Cabin:wght@400;700"
9203
- };
9204
9182
  var EMBEDDED_FONTS_STYLE_ID = "pptx-embedded-fonts";
9205
9183
  var GOOGLE_FONTS_LINK_ID = "pptx-google-fonts";
9206
9184
  var SYMBOL_FONTS_STYLE_ID = "pptx-symbol-font-fallback";
@@ -9211,21 +9189,6 @@ var SYMBOL_FONT_FAMILIES = [
9211
9189
  "Symbol",
9212
9190
  "Webdings"
9213
9191
  ];
9214
- function collectReferencedFontFamilies(slides) {
9215
- const families = /* @__PURE__ */ new Set();
9216
- for (const slide of slides) {
9217
- for (const el of slide.elements) {
9218
- if (hasTextProperties(el) && el.textSegments) {
9219
- for (const seg of el.textSegments) {
9220
- if (seg.style.fontFamily) {
9221
- families.add(seg.style.fontFamily);
9222
- }
9223
- }
9224
- }
9225
- }
9226
- }
9227
- return families;
9228
- }
9229
9192
  var FONT_NAME_UNSAFE_CHARS = /["\\\n\r;}<>]/u;
9230
9193
  var FONT_FORMAT_ALLOWED = /* @__PURE__ */ new Set([
9231
9194
  "truetype",
@@ -9286,31 +9249,29 @@ function useFontInjection({ embeddedFonts, slides }) {
9286
9249
  }, [embeddedFonts]);
9287
9250
  const referencedFamilies = useMemo(() => collectReferencedFontFamilies(slides), [slides]);
9288
9251
  useEffect(() => {
9289
- const embeddedFamilies = new Set(embeddedFonts.map((f) => f.name));
9290
- const googleFamilies = [];
9291
- for (const family of referencedFamilies) {
9292
- if (embeddedFamilies.has(family)) {
9293
- continue;
9252
+ let cancelled = false;
9253
+ void resolveGoogleWebfontHref(slides, embeddedFonts).then((href) => {
9254
+ if (cancelled) {
9255
+ return null;
9294
9256
  }
9295
- if (GOOGLE_FONTS_AVAILABLE[family]) {
9296
- googleFamilies.push(family);
9257
+ if (!href || document.getElementById(GOOGLE_FONTS_LINK_ID)) {
9258
+ return null;
9297
9259
  }
9298
- }
9299
- if (googleFamilies.length === 0) {
9300
- return;
9301
- }
9302
- const linkEl = document.createElement("link");
9303
- linkEl.id = GOOGLE_FONTS_LINK_ID;
9304
- linkEl.rel = "stylesheet";
9305
- linkEl.href = `https://fonts.googleapis.com/css2?${googleFamilies.map((f) => `family=${encodeURIComponent(GOOGLE_FONTS_AVAILABLE[f])}`).join("&")}&display=swap`;
9306
- document.head.appendChild(linkEl);
9260
+ const linkEl = document.createElement("link");
9261
+ linkEl.id = GOOGLE_FONTS_LINK_ID;
9262
+ linkEl.rel = "stylesheet";
9263
+ linkEl.href = href;
9264
+ document.head.appendChild(linkEl);
9265
+ return href;
9266
+ });
9307
9267
  return () => {
9268
+ cancelled = true;
9308
9269
  const existing = document.getElementById(GOOGLE_FONTS_LINK_ID);
9309
9270
  if (existing) {
9310
9271
  document.head.removeChild(existing);
9311
9272
  }
9312
9273
  };
9313
- }, [embeddedFonts, referencedFamilies]);
9274
+ }, [embeddedFonts, slides]);
9314
9275
  useEffect(() => {
9315
9276
  const neededSymbolFonts = SYMBOL_FONT_FAMILIES.filter((f) => referencedFamilies.has(f));
9316
9277
  if (neededSymbolFonts.length === 0) {
Binary file
Binary file
package/dist/i18n.js CHANGED
@@ -1,19 +1,19 @@
1
1
  'use strict';
2
2
 
3
- var chunkSWRY3SI5_js = require('./chunk-SWRY3SI5.js');
3
+ var chunkALO4ZOHQ_js = require('./chunk-ALO4ZOHQ.js');
4
4
  require('./chunk-4VNS5WPM.js');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "LOCALE_CATALOG", {
9
9
  enumerable: true,
10
- get: function () { return chunkSWRY3SI5_js.LOCALE_CATALOG; }
10
+ get: function () { return chunkALO4ZOHQ_js.LOCALE_CATALOG; }
11
11
  });
12
12
  Object.defineProperty(exports, "keyToLabel", {
13
13
  enumerable: true,
14
- get: function () { return chunkSWRY3SI5_js.keyToLabel; }
14
+ get: function () { return chunkALO4ZOHQ_js.keyToLabel; }
15
15
  });
16
16
  Object.defineProperty(exports, "translationsEn", {
17
17
  enumerable: true,
18
- get: function () { return chunkSWRY3SI5_js.translationsEn; }
18
+ get: function () { return chunkALO4ZOHQ_js.translationsEn; }
19
19
  });
package/dist/i18n.js.br CHANGED
Binary file
package/dist/i18n.js.gz CHANGED
Binary file
package/dist/i18n.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export { LOCALE_CATALOG, keyToLabel, translationsEn } from './chunk-ARJE3V6V.mjs';
1
+ export { LOCALE_CATALOG, keyToLabel, translationsEn } from './chunk-RHSA5BW5.mjs';
2
2
  import './chunk-XGB3TDIC.mjs';
package/dist/i18n.mjs.br CHANGED
Binary file
package/dist/i18n.mjs.gz CHANGED
Binary file
package/dist/index.d.ts CHANGED
@@ -241,6 +241,12 @@ interface PptxShapeLocks {
241
241
  * `a:spLocks` / `a:picLocks` / `a:cxnSpLocks` / `a:grpSpLocks`.
242
242
  */
243
243
  noDrilldown?: boolean;
244
+ /**
245
+ * `a:picLocks/@noCrop`: forbids cropping the picture. Declared ONLY by
246
+ * `CT_PictureLocking`, so it is written for pictures (and media authored as
247
+ * a `p:pic`) and never onto the other lock elements.
248
+ */
249
+ noCrop?: boolean;
244
250
  /**
245
251
  * Text-box flag from `p:cNvSpPr/@txBox`. Not a lock in the strict sense,
246
252
  * but it lives on the same non-visual-properties node as `a:spLocks`, so
@@ -2182,13 +2188,32 @@ interface PlaceholderTextLevelStyle {
2182
2188
  bulletSizePercent?: number;
2183
2189
  /** Bullet colour from `a:buClr` as hex string. */
2184
2190
  bulletColor?: string;
2191
+ /**
2192
+ * The colour-choice node inside `a:buClr` this level's {@link bulletColor}
2193
+ * resolved from (`a:schemeClr` / `a:sysClr` / `a:prstClr` / `a:srgbClr`,
2194
+ * transforms included), mirroring `BulletInfo.colorXml`. Re-emitted
2195
+ * verbatim on save so a themed bullet is not downgraded to a literal
2196
+ * `a:srgbClr`. Absent when the level declares no bullet colour.
2197
+ */
2198
+ bulletColorXml?: XmlObject;
2185
2199
  /** Bullet size in points from `a:buSzPts`. */
2186
2200
  bulletSizePts?: number;
2187
2201
  /** True when `a:buNone` is present at this level. */
2188
2202
  bulletNone?: boolean;
2189
2203
  marginLeft?: number;
2204
+ /** Paragraph right margin in px (from `@_marR` EMU). */
2205
+ marginRight?: number;
2190
2206
  indent?: number;
2207
+ /**
2208
+ * Paragraph alignment as a `TextStyle['align']` token (`left`, `center`,
2209
+ * `right`, `justify`, `justLow`, `dist`, `thaiDist`), never the raw OOXML
2210
+ * `@algn` value.
2211
+ */
2191
2212
  alignment?: string;
2213
+ /** Right-to-left paragraph direction (`@rtl`). */
2214
+ rtl?: boolean;
2215
+ /** Tab stops from `a:tabLst/a:tab` (positions in px). */
2216
+ tabStops?: TextStyle['tabStops'];
2192
2217
  lineSpacing?: number;
2193
2218
  lineSpacingExactPt?: number;
2194
2219
  spaceBefore?: number;
@@ -2414,6 +2439,20 @@ type PptxChartType = 'bar' | 'line' | 'pie' | 'ofPie' | 'doughnut' | 'area' | 's
2414
2439
  * ```
2415
2440
  */
2416
2441
  type PptxChartBarDirection = 'col' | 'bar';
2442
+ /**
2443
+ * 3-D bar/column shape (OOXML `ST_Shape`, `c:bar3DChart/c:shape/@val` or a
2444
+ * per-series `c:ser/c:shape` override). `coneToMax` / `pyramidToMax` scale
2445
+ * the cone/pyramid so it reaches full height at the value axis maximum,
2446
+ * appearing truncated below it; the plain `cone`/`pyramid` always come to a
2447
+ * full point at the bar's own value.
2448
+ *
2449
+ * @example
2450
+ * ```ts
2451
+ * const shape: PptxBar3DShape = "cylinder";
2452
+ * // => "cylinder", one of: "box" | "cone" | "coneToMax" | "cylinder" | "pyramid" | "pyramidToMax"
2453
+ * ```
2454
+ */
2455
+ type PptxBar3DShape = 'box' | 'cone' | 'coneToMax' | 'cylinder' | 'pyramid' | 'pyramidToMax';
2417
2456
  /**
2418
2457
  * Supported trendline regression types.
2419
2458
  *
@@ -2842,6 +2881,12 @@ interface PptxChartSeries {
2842
2881
  * series.
2843
2882
  */
2844
2883
  seriesChartType?: PptxChartType;
2884
+ /**
2885
+ * Per-series 3-D bar/column shape override (`c:ser/c:shape`), legal only
2886
+ * inside a bar3D chart-type container. Overrides {@link PptxChartData.barShape}
2887
+ * for this series alone.
2888
+ */
2889
+ shape?: PptxBar3DShape;
2845
2890
  boxWhiskerOptions?: PptxChartBoxWhiskerOptions;
2846
2891
  histogramOptions?: PptxChartHistogramOptions;
2847
2892
  waterfallOptions?: PptxChartWaterfallOptions;
@@ -3143,6 +3188,28 @@ interface PptxChartData {
3143
3188
  * default), so only horizontal bar charts need to carry the field.
3144
3189
  */
3145
3190
  barDirection?: PptxChartBarDirection;
3191
+ /**
3192
+ * 3-D bar/column shape (`c:bar3DChart/c:shape/@val`). Bar3D only; a plain
3193
+ * bar chart has no `c:shape` element. A per-series `c:ser/c:shape`
3194
+ * ({@link PptxChartSeries.shape}) overrides this for that series.
3195
+ */
3196
+ barShape?: PptxBar3DShape;
3197
+ /**
3198
+ * Radar chart drawing style (`c:radarChart/c:radarStyle/@val`). `standard`
3199
+ * draws an outline only, `marker` adds markers at each vertex (PowerPoint's
3200
+ * own default for every radar chart it authors), and `filled` paints the
3201
+ * enclosed polygon with the series fill and omits markers. Radar only.
3202
+ */
3203
+ radarStyle?: 'standard' | 'marker' | 'filled';
3204
+ /**
3205
+ * Whether a surface chart renders as a wireframe grid rather than a solid
3206
+ * coloured surface (`c:surfaceChart/c:wireframe/@val` or
3207
+ * `c:surface3DChart/c:wireframe/@val`, both modeled as chart type
3208
+ * `"surface"`). A `CT_Boolean` element: absent from the source XML
3209
+ * defaults to `true` per schema, so `undefined` here means "not present in
3210
+ * the source" and callers should treat it as `true`. Surface only.
3211
+ */
3212
+ wireframe?: boolean;
3146
3213
  /**
3147
3214
  * Scatter presentation mode (`c:scatterChart/c:scatterStyle/@val`).
3148
3215
  *
@@ -3340,6 +3407,26 @@ interface PptxBackgroundRemovalMark {
3340
3407
  * // => retains the middle of the image; the marks list stays empty
3341
3408
  * ```
3342
3409
  */
3410
+ /**
3411
+ * Snapshot of the a14 Corrections / Color panel values as they were read from
3412
+ * the file, kept on {@link PptxImageEffects.prerenderedCorrections} so a
3413
+ * renderer can tell a baked-in value from one changed in this library.
3414
+ */
3415
+ interface PptxImagePrerenderedCorrections {
3416
+ sharpenSoften?: {
3417
+ amount: number;
3418
+ };
3419
+ brightnessContrast?: {
3420
+ bright?: number;
3421
+ contrast?: number;
3422
+ };
3423
+ colorTemperature?: {
3424
+ colorTemp: number;
3425
+ };
3426
+ colorSaturation?: {
3427
+ sat: number;
3428
+ };
3429
+ }
3343
3430
  interface PptxBackgroundRemoval {
3344
3431
  /** Top edge of the retained rectangle (0..1 fraction of the image height). */
3345
3432
  top: number;
@@ -3406,18 +3493,71 @@ interface PptxImageEffects {
3406
3493
  */
3407
3494
  backgroundRemoval?: PptxBackgroundRemoval;
3408
3495
  /**
3409
- * `a14:imgLayer/@r:embed` relationship id of the PRISTINE original image
3496
+ * `a14:imgLayer/@r:embed`: relationship id of the PRISTINE original image
3410
3497
  * the baked effects were derived from (PowerPoint stores it as an HD Photo
3411
3498
  * `.wdp` part, which browsers cannot decode).
3412
3499
  */
3413
3500
  originalImageRelId?: string;
3501
+ /**
3502
+ * PowerPoint 2010+ Corrections panel "Sharpen/Soften"
3503
+ * (`a14:sharpenSoften/@amount`). Raw as the XML carries it: 1/1000ths of a
3504
+ * percent, `-100000` (fully softened) .. `100000` (fully sharpened).
3505
+ * Edit-time metadata like the artistic effects: PowerPoint bakes the result
3506
+ * into the stored bitmap.
3507
+ */
3508
+ sharpenSoften?: {
3509
+ amount: number;
3510
+ };
3511
+ /**
3512
+ * PowerPoint 2010+ Corrections panel "Brightness/Contrast"
3513
+ * (`a14:brightnessContrast/@bright`, `@contrast`). Raw 1/1000ths of a
3514
+ * percent, `-100000` .. `100000`. Distinct from the legacy `a:blip/@bright`
3515
+ * + `@contrast` pair in {@link PptxImageEffects.brightness} /
3516
+ * {@link PptxImageEffects.contrast}, which PowerPoint 2007 wrote and which
3517
+ * a renderer still applies.
3518
+ */
3519
+ brightnessContrast?: {
3520
+ bright?: number;
3521
+ contrast?: number;
3522
+ };
3523
+ /**
3524
+ * PowerPoint 2010+ Color panel "Color Tone"
3525
+ * (`a14:colorTemperature/@colorTemp`). Raw Kelvin value, `1500` .. `11500`;
3526
+ * `6500` is neutral.
3527
+ */
3528
+ colorTemperature?: {
3529
+ colorTemp: number;
3530
+ };
3531
+ /**
3532
+ * PowerPoint 2010+ Color panel "Color Saturation" (`a14:saturation/@sat`).
3533
+ * Raw 1/1000ths of a percent: `100000` is unchanged, `0` is grayscale,
3534
+ * `400000` the maximum. Named `colorSaturation` because
3535
+ * {@link PptxImageEffects.saturation} is the viewer-side -100..100 knob
3536
+ * that has no OOXML counterpart.
3537
+ */
3538
+ colorSaturation?: {
3539
+ sat: number;
3540
+ };
3541
+ /**
3542
+ * The Corrections / Color panel values ALREADY baked into the image data,
3543
+ * which a renderer must not apply a second time. The a14 counterpart of
3544
+ * {@link PptxImageEffects.artisticPrerenderedEffect}: PowerPoint writes the
3545
+ * corrected bitmap to the main `a:blip` and keeps the pristine original in
3546
+ * `a14:imgLayer` (measured on a real deck: the stored PNG is a monotone tonal
3547
+ * transform of the `.wdp` original, slope 0.7 for `contrast="-40000"`).
3548
+ *
3549
+ * Holds the VALUES rather than a boolean so that changing one of the four
3550
+ * fields in this library's inspector still renders: a field that differs
3551
+ * from its snapshot is applied, one that matches is skipped.
3552
+ */
3553
+ prerenderedCorrections?: PptxImagePrerenderedCorrections;
3414
3554
  /** Alpha modulation fixed: non-negative percentage (100 means unchanged opacity). */
3415
3555
  alphaModFix?: number;
3416
3556
  /** Original alpha modulation fixed node, including foreign attributes. */
3417
3557
  alphaModFixRawXml?: XmlObject;
3418
- /** Bi-level threshold converts to 1-bit black/white (0-100). */
3558
+ /** Bi-level threshold: converts to 1-bit black/white (0-100). */
3419
3559
  biLevel?: number;
3420
- /** Colour change swap one colour range for another (used for transparency keying). */
3560
+ /** Colour change: swap one colour range for another (used for transparency keying). */
3421
3561
  clrChange?: {
3422
3562
  clrFrom: string;
3423
3563
  clrTo: string;
@@ -3440,11 +3580,11 @@ interface PptxImageEffects {
3440
3580
  /** Original effect XML, including colour transforms and foreign attributes. */
3441
3581
  rawXml?: XmlObject;
3442
3582
  };
3443
- /** Alpha ceiling (`a:alphaCeiling`) clamps any non-zero alpha to fully opaque. Boolean flag. */
3583
+ /** Alpha ceiling (`a:alphaCeiling`): clamps any non-zero alpha to fully opaque. Boolean flag. */
3444
3584
  alphaCeiling?: boolean;
3445
3585
  /** Original alpha ceiling node, including foreign attributes. */
3446
3586
  alphaCeilingRawXml?: XmlObject;
3447
- /** Alpha floor (`a:alphaFloor`) clamps any non-fully-opaque alpha to fully transparent. Boolean flag. */
3587
+ /** Alpha floor (`a:alphaFloor`): clamps any non-fully-opaque alpha to fully transparent. Boolean flag. */
3448
3588
  alphaFloor?: boolean;
3449
3589
  /** Original alpha floor node, including foreign attributes. */
3450
3590
  alphaFloorRawXml?: XmlObject;
@@ -3468,16 +3608,16 @@ interface PptxImageEffects {
3468
3608
  */
3469
3609
  amt?: number;
3470
3610
  };
3471
- /** Alpha replace (`a:alphaRepl`) replaces alpha with the given fixed-percent value (0..100). */
3611
+ /** Alpha replace (`a:alphaRepl`): replaces alpha with the given fixed-percent value (0..100). */
3472
3612
  alphaRepl?: number;
3473
3613
  /** Original alpha replace node, including foreign attributes. */
3474
3614
  alphaReplRawXml?: XmlObject;
3475
- /** Alpha bi-level (`a:alphaBiLevel`) threshold (0..100) above which alpha becomes fully opaque. */
3615
+ /** Alpha bi-level (`a:alphaBiLevel`): threshold (0..100) above which alpha becomes fully opaque. */
3476
3616
  alphaBiLevel?: number;
3477
3617
  /** Original alpha bi-level node, including foreign attributes. */
3478
3618
  alphaBiLevelRawXml?: XmlObject;
3479
3619
  /**
3480
- * Colour replace (`a:clrRepl`) replaces all colour information in an image
3620
+ * Colour replace (`a:clrRepl`): replaces all colour information in an image
3481
3621
  * with the given solid colour. Stores the raw colour child to preserve scheme
3482
3622
  * colour references and modifiers.
3483
3623
  */
@@ -3487,24 +3627,24 @@ interface PptxImageEffects {
3487
3627
  /** Raw opaque colour XML for round-trip. */
3488
3628
  rawXml?: Record<string, unknown>;
3489
3629
  };
3490
- /** Luminance modulation (`a:lum`) bright/contrast as fixed percentages (0..100). */
3630
+ /** Luminance modulation (`a:lum`): bright/contrast as fixed percentages (0..100). */
3491
3631
  lum?: {
3492
3632
  bright?: number;
3493
3633
  contrast?: number;
3494
3634
  };
3495
- /** HSL modulation (`a:hsl`) hue (0..360 degrees), saturation/luminance (-100..100). */
3635
+ /** HSL modulation (`a:hsl`): hue (0..360 degrees), saturation/luminance (-100..100). */
3496
3636
  hsl?: {
3497
3637
  hue?: number;
3498
3638
  sat?: number;
3499
3639
  lum?: number;
3500
3640
  };
3501
- /** Image-effect tint (`a:tint` inside blip) hue (0..360), amount (-100..100). */
3641
+ /** Image-effect tint (`a:tint` inside blip): hue (0..360), amount (-100..100). */
3502
3642
  tint?: {
3503
3643
  hue?: number;
3504
3644
  amt?: number;
3505
3645
  };
3506
3646
  /**
3507
- * Fill overlay (`a:fillOverlay`) overlays a fill on top of the blip.
3647
+ * Fill overlay (`a:fillOverlay`): overlays a fill on top of the blip.
3508
3648
  * Stores blend mode and the raw inner fill XML for round-trip.
3509
3649
  */
3510
3650
  fillOverlay?: {
@@ -3546,7 +3686,7 @@ interface PptxImageEffects {
3546
3686
  background?: string;
3547
3687
  };
3548
3688
  };
3549
- /** Blur (`a:blur`) radius in EMU and grow flag. */
3689
+ /** Blur (`a:blur`): radius in EMU and grow flag. */
3550
3690
  blur?: {
3551
3691
  rad?: number;
3552
3692
  grow?: boolean;
@@ -3558,12 +3698,12 @@ interface PptxImageEffects {
3558
3698
  * @example
3559
3699
  * ```ts
3560
3700
  * const shape: PptxCropShape = "ellipse";
3561
- * // => "ellipse" one of: none | ellipse | roundedRect | triangle | diamond | pentagon | hexagon | star
3701
+ * // => "ellipse": one of: none | ellipse | roundedRect | triangle | diamond | pentagon | hexagon | star
3562
3702
  * ```
3563
3703
  */
3564
3704
  type PptxCropShape = 'none' | 'ellipse' | 'roundedRect' | 'triangle' | 'diamond' | 'pentagon' | 'hexagon' | 'star';
3565
3705
  /**
3566
- * Image content mixin present on image and picture elements.
3706
+ * Image content mixin: present on image and picture elements.
3567
3707
  *
3568
3708
  * Contains the decoded image data (base64 data URL or archive path),
3569
3709
  * alt text, crop insets, tiling settings, and image effects.
@@ -3633,7 +3773,16 @@ interface PptxImageProperties {
3633
3773
  dpi?: number;
3634
3774
  /** Image recolour/artistic effect properties. */
3635
3775
  imageEffects?: PptxImageEffects;
3636
- /** Crop-to-shape — CSS clip-path shape name. */
3776
+ /**
3777
+ * Crop-to-shape (CSS clip-path shape name).
3778
+ *
3779
+ * PowerPoint implements "Crop to Shape" by writing the picture's own
3780
+ * `a:prstGeom`, so this is a typed view over `shapeType`: on load it is
3781
+ * derived from the preset (`ellipse` -> `'ellipse'`, `roundRect` ->
3782
+ * `'roundedRect'`, `star5` -> `'star'`, ...; see
3783
+ * `utils/crop-shape-geometry`), and on save a changed value rewrites the
3784
+ * preset. `'none'` / `undefined` leaves the geometry alone.
3785
+ */
3637
3786
  cropShape?: PptxCropShape;
3638
3787
  }
3639
3788
  //#endregion
@@ -7550,7 +7699,11 @@ interface PptxSlide {
7550
7699
  */
7551
7700
  slideId?: string;
7552
7701
  sourceSlideId?: string;
7553
- /** Optional author-supplied slide name (set via `SlideBuilder.setName`). */
7702
+ /**
7703
+ * The slide name, `p:cSld/@name`: loaded from the part, written back on
7704
+ * save (an empty string clears the attribute), and settable via
7705
+ * `SlideBuilder.setName`.
7706
+ */
7554
7707
  name?: string;
7555
7708
  layoutPath?: string;
7556
7709
  layoutName?: string;