pptx-react-viewer 1.25.3 → 1.25.5

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 (97) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/{Model3DScene-IQLE5JLL.mjs → Model3DScene-XVYOISVJ.mjs} +2 -2
  3. package/dist/Model3DScene-XVYOISVJ.mjs.br +0 -0
  4. package/dist/Model3DScene-XVYOISVJ.mjs.gz +0 -0
  5. package/dist/{Model3DScene-F2GUSTZI.js → Model3DScene-Y5ABLO7K.js} +3 -3
  6. package/dist/Model3DScene-Y5ABLO7K.js.br +0 -0
  7. package/dist/Model3DScene-Y5ABLO7K.js.gz +0 -0
  8. package/dist/{SurfaceChart3DScene-JG26PJ7O.mjs → SurfaceChart3DScene-RXZADECL.mjs} +2 -2
  9. package/dist/SurfaceChart3DScene-RXZADECL.mjs.br +0 -0
  10. package/dist/SurfaceChart3DScene-RXZADECL.mjs.gz +0 -0
  11. package/dist/{SurfaceChart3DScene-4OMD7LWR.js → SurfaceChart3DScene-WMY5JTW4.js} +3 -3
  12. package/dist/{SurfaceChart3DScene-4OMD7LWR.js.br → SurfaceChart3DScene-WMY5JTW4.js.br} +0 -0
  13. package/dist/SurfaceChart3DScene-WMY5JTW4.js.gz +0 -0
  14. package/dist/{chunk-5G3SPYQE.js → chunk-7CSBUYRN.js} +849 -808
  15. package/dist/chunk-7CSBUYRN.js.br +0 -0
  16. package/dist/chunk-7CSBUYRN.js.gz +0 -0
  17. package/dist/{chunk-ZUJHFLOR.js → chunk-E55Q4AC7.js} +556 -476
  18. package/dist/chunk-E55Q4AC7.js.br +0 -0
  19. package/dist/chunk-E55Q4AC7.js.gz +0 -0
  20. package/dist/{chunk-NYBERTS7.mjs → chunk-F4WPQRZU.mjs} +96 -16
  21. package/dist/chunk-F4WPQRZU.mjs.br +0 -0
  22. package/dist/chunk-F4WPQRZU.mjs.gz +0 -0
  23. package/dist/{chunk-DAI4KM5W.mjs → chunk-FOMF7POV.mjs} +2285 -490
  24. package/dist/chunk-FOMF7POV.mjs.br +0 -0
  25. package/dist/chunk-FOMF7POV.mjs.gz +0 -0
  26. package/dist/{chunk-DVM75RMN.mjs → chunk-FVQDRA5N.mjs} +1100 -126
  27. package/dist/chunk-FVQDRA5N.mjs.br +0 -0
  28. package/dist/chunk-FVQDRA5N.mjs.gz +0 -0
  29. package/dist/{chunk-2V6BD4JQ.js → chunk-IPYAN574.js} +2288 -490
  30. package/dist/chunk-IPYAN574.js.br +0 -0
  31. package/dist/chunk-IPYAN574.js.gz +0 -0
  32. package/dist/{chunk-GNXWU7UG.mjs → chunk-L4ZADJOM.mjs} +48 -7
  33. package/dist/chunk-L4ZADJOM.mjs.br +0 -0
  34. package/dist/chunk-L4ZADJOM.mjs.gz +0 -0
  35. package/dist/{chunk-UXVFNGJH.js → chunk-TEN35NUX.js} +1133 -159
  36. package/dist/chunk-TEN35NUX.js.br +0 -0
  37. package/dist/chunk-TEN35NUX.js.gz +0 -0
  38. package/dist/{dist-ZA77P2O5.js → dist-755SJ3ZH.js} +574 -562
  39. package/dist/dist-755SJ3ZH.js.br +0 -0
  40. package/dist/dist-755SJ3ZH.js.gz +0 -0
  41. package/dist/dist-FFWP5NQZ.mjs +2 -0
  42. package/dist/dist-FFWP5NQZ.mjs.br +0 -0
  43. package/dist/dist-FFWP5NQZ.mjs.gz +0 -0
  44. package/dist/hooks-unstable.d.ts +350 -5
  45. package/dist/hooks-unstable.d.ts.map +1 -1
  46. package/dist/hooks-unstable.js +78 -78
  47. package/dist/hooks-unstable.js.br +0 -0
  48. package/dist/hooks-unstable.js.gz +0 -0
  49. package/dist/hooks-unstable.mjs +3 -3
  50. package/dist/hooks-unstable.mjs.br +0 -0
  51. package/dist/hooks-unstable.mjs.gz +0 -0
  52. package/dist/{index-DWvM1PBB.d.ts → index-J6IuHQ2_.d.ts} +21 -4
  53. package/dist/index-J6IuHQ2_.d.ts.map +1 -0
  54. package/dist/index.d.ts +330 -2
  55. package/dist/index.js +33 -33
  56. package/dist/index.js.br +0 -0
  57. package/dist/index.js.gz +0 -0
  58. package/dist/index.mjs +4 -4
  59. package/dist/index.mjs.br +0 -0
  60. package/dist/index.mjs.gz +0 -0
  61. package/dist/viewer/index.d.ts +330 -2
  62. package/dist/viewer/index.js +20 -20
  63. package/dist/viewer/index.js.br +0 -0
  64. package/dist/viewer/index.js.gz +0 -0
  65. package/dist/viewer/index.mjs +4 -4
  66. package/dist/viewer/index.mjs.br +0 -0
  67. package/dist/viewer/index.mjs.gz +0 -0
  68. package/package.json +1 -1
  69. package/dist/Model3DScene-F2GUSTZI.js.br +0 -0
  70. package/dist/Model3DScene-F2GUSTZI.js.gz +0 -0
  71. package/dist/Model3DScene-IQLE5JLL.mjs.br +0 -0
  72. package/dist/Model3DScene-IQLE5JLL.mjs.gz +0 -0
  73. package/dist/SurfaceChart3DScene-4OMD7LWR.js.gz +0 -0
  74. package/dist/SurfaceChart3DScene-JG26PJ7O.mjs.br +0 -0
  75. package/dist/SurfaceChart3DScene-JG26PJ7O.mjs.gz +0 -0
  76. package/dist/chunk-2V6BD4JQ.js.br +0 -0
  77. package/dist/chunk-2V6BD4JQ.js.gz +0 -0
  78. package/dist/chunk-5G3SPYQE.js.br +0 -0
  79. package/dist/chunk-5G3SPYQE.js.gz +0 -0
  80. package/dist/chunk-DAI4KM5W.mjs.br +0 -0
  81. package/dist/chunk-DAI4KM5W.mjs.gz +0 -0
  82. package/dist/chunk-DVM75RMN.mjs.br +0 -0
  83. package/dist/chunk-DVM75RMN.mjs.gz +0 -0
  84. package/dist/chunk-GNXWU7UG.mjs.br +0 -0
  85. package/dist/chunk-GNXWU7UG.mjs.gz +0 -0
  86. package/dist/chunk-NYBERTS7.mjs.br +0 -0
  87. package/dist/chunk-NYBERTS7.mjs.gz +0 -0
  88. package/dist/chunk-UXVFNGJH.js.br +0 -0
  89. package/dist/chunk-UXVFNGJH.js.gz +0 -0
  90. package/dist/chunk-ZUJHFLOR.js.br +0 -0
  91. package/dist/chunk-ZUJHFLOR.js.gz +0 -0
  92. package/dist/dist-E3IHM3OU.mjs +0 -2
  93. package/dist/dist-E3IHM3OU.mjs.br +0 -0
  94. package/dist/dist-E3IHM3OU.mjs.gz +0 -0
  95. package/dist/dist-ZA77P2O5.js.br +0 -0
  96. package/dist/dist-ZA77P2O5.js.gz +0 -0
  97. package/dist/index-DWvM1PBB.d.ts.map +0 -1
Binary file
Binary file
@@ -0,0 +1,2 @@
1
+ export { ALL_ANIMATION_PRESETS, BLIP_FILL_ORDER, CLOUD_CALLOUT_TAIL_COUNT, CLOUD_LOBE_COUNT, COLOR_MAP_ALIAS_KEYS, CONNECTOR_ARROW_OPTIONS, CONNECTOR_GEOMETRY_OPTIONS, ChartBuilder, ConnectorBuilder, ConnectorXmlFactory, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, DEFAULT_COLOR_MAP, DEFAULT_FILL_COLOR, DEFAULT_FONT_FAMILY, DEFAULT_MAX_UNCOMPRESSED_BYTES, DEFAULT_SCHEME_COLOR_MAP, DEFAULT_STROKE_COLOR, DEFAULT_TEXT_COLOR, DEFAULT_TEXT_FONT_SIZE, DIGEST_ALGORITHM_TO_HASH, DIGEST_ALGORITHM_TO_WEB_CRYPTO, DIGITAL_SIGNATURE_ORIGIN_REL_TYPE, DIGITAL_SIGNATURE_REL_TYPE, DataIntegrityError, DocumentConverter, EFFECT_LST_ORDER, ELEMENT_FIELD_KIND, EMPHASIS_PRESETS, EMU_PER_INCH, EMU_PER_PIXEL3 as EMU_PER_PIXEL, EMU_PER_POINT, EMU_PER_PX, ENTERPRISE_FAIL_ON_REVOCATION_UNKNOWN_ENV, ENTERPRISE_REQUIRE_REVOCATION_ENV, ENTERPRISE_REQUIRE_TIMESTAMP_ENV, ENTERPRISE_TRUST_ROOTS_FILE_ENV, ENTERPRISE_TRUST_ROOTS_PEM_ENV, ENTRANCE_PRESETS, EXIT_PRESETS, EncryptedFileError, FONT_SUBSTITUTION_MAP, FreeformPathBuilder, GroupBuilder, ImageBuilder, IncorrectPasswordError, MAX_TABLE_DIMENSION, MAX_ZIP_ENTRY_COUNT, MIN_ELEMENT_SIZE, MIN_TABLE_DIMENSION, MOTION_PATH_PRESETS, MediaBuilder, MediaContext, MediaGraphicFrameXmlFactory, OOXML_TO_PRESET_EMPH, OOXML_TO_PRESET_ENTR, OOXML_TO_PRESET_EXIT, OPC_RELATIONSHIP_TRANSFORM, OPENXML_COVERAGE, OPENXML_SCHEMA_CONSTRUCT_IDS, OPENXML_STRICT_SCHEMA_CONSTRUCT_IDS, OPENXML_TRANSITIONAL_SCHEMA_CONSTRUCT_IDS, Ole2ParseError, P14_GUIDE_URI, P15_GUIDE_URI, PANOSE_FAMILY_MAP, PANOSE_MONOSPACE_PROPORTION, PANOSE_SANS_SERIF_STYLES, PANOSE_WEIGHT_MAP, POWERPOINT_PRESENCE_KEY, PPTX_VIEWER_MANIFEST_NS, PRESET_COLOR_MAP, PRESET_SHAPE_CATEGORY_LABELS, PRESET_SHAPE_CLIP_PATHS, PRESET_SHAPE_DEFINITIONS, PRESET_SHAPE_GEOMETRY_TABLE, PRESET_TO_OOXML, PictureXmlFactory, PptxAnimationWriteService, PptxColorStyleCodec, PptxCommentAuthorsXmlFactory, PptxCommentXmlFactoryProvider, PptxCompatibilityService, PptxConnectorParser, PptxContentTypesBuilder, PptxDocumentPropertiesUpdater, PptxEditorAnimationService, PptxElementTransformUpdater, PptxElementXmlBuilder, PptxGraphicFrameParser, PptxHandler, PptxHandlerRuntime96 as PptxHandlerRuntime, PptxHandlerRuntimeFactory, PptxLoadDataBuilder, PptxMarkdownConverter, PptxMediaDataParser, PptxNativeAnimationService, PptxPresentationSaveBuilder, PptxPresentationSlidesReconciler, PptxRuntimeDependencyFactory, PptxSaveConstantsFactory, PptxSaveState as PptxSaveSession, PptxSaveStateBuilder as PptxSaveSessionBuilder, PptxSaveState, PptxSaveStateBuilder, PptxShapeIdValidator, PptxShapeStyleExtractor, PptxSlideBackgroundBuilder, PptxSlideBuilder, PptxSlideCommentPartWriter, PptxSlideCommentsXmlFactory, PptxSlideElementsBuilder, PptxSlideLoaderService, PptxSlideMediaRelationshipBuilder, PptxSlideNotesBuilder, PptxSlideNotesPartUpdater, PptxSlideRelationshipRegistry, PptxSlideTransitionService, PptxTableDataParser, PptxTemplateBackgroundService, PptxXmlBuilder, PptxXmlFactoryProvider, PptxXmlLookupService, Presentation, PresentationBuilder, SHAPE_TREE_ELEMENT_TAGS, SLIDE_FIELD_KIND, SMART_ART_DEFINITION_PARTS, SP_PR_ORDER, STROKE_DASH_OPTIONS, SUPPORTED_XML_CANON_TRANSFORMS, SWITCHABLE_LAYOUT_TYPES, SYSTEM_COLOR_MAP, ShapeBuilder, SlideBuilder, SlideProcessor, SlideSizes, SvgExporter, TC_PR_BORDERS_ORDER, THEME_COLOR_SCHEME_KEYS, THEME_PRESETS, TRANSITION_VALID_DIRECTIONS, TableBuilder, TextBuilder, TextShapeXmlFactory, ThemePresets, VML_SHAPE_TAGS, XMLDSIG_NS, XML_TRANSFORM_ENVELOPED_SIGNATURE, ZipBombError, addChartCategory, addChartSeries, addSection, addSmartArtNode, addSmartArtNodeAsChild, applyBubbleChartOptions, applyChartLayouts, applyChartManualLayout, applyChartUpDownBars, applyCustomShows, applyDiagramRelationshipIds, applyDrawingColorTransforms, applyDrawingLineDash, applyDrawingMediaReference, applyKinsokuToXml, applySections, applySmartArtConstraintRules, applySmartArtLayoutDefinition, applyTableCellTextAndStyle, applyTemplate, applyThemeOverrideToSlide, applyThemeToData, areNamespacesSupported, buildCalloutLeaderLineSvgPath, buildClrMapOverrideXml, buildFontFamilyString, buildGuideListExtension, buildInkMlContent, buildLinkedTextBoxChains, buildOle2, buildSingleEffectNode, buildSlideReferenceRemap, buildSrgbColorChoice, buildThemeColorMap, catmullRomToBezier, chartDataAddCategory, chartDataAddSeries, chartDataChangeType, chartDataRemoveCategory, chartDataRemoveSeries, chartDataUpdatePoint, checkBlankSlide, checkComplexTables, checkDuplicateTitles, checkLowContrast, checkMissingAltText, checkMissingSlideTitle, checkPresentation, clampUnitInterval, classifyPanose, cloneElement, cloneShapeStyle, cloneSlide, cloneTemplateElementsBySlideId, cloneTextStyle, cloneXmlObject, cm, cmToEmu, colorWithOpacity, colorsEqual, combineShapes, computeContrastRatio, computeCycleLayout, computeDetailStatus, computeDigestBase64 as computeDigestBase64WebCrypto, computeHierarchyLayout, computeLinearLayout, computeMatrixLayout, computePyramidLayout, computeSmartArtLayout, computeSnakeLayout, computeVerificationStatus, convertEmfToDataUrl, convertWmfToDataUrl, convertXmlToStrict, createArrayBufferCopy, createBuiltinVariables, createChartElement, createConnectorElement, createDefaultPptxHandlerRuntime, createEditorId, createFreeformElement, createGroupElement, createImageElement, createLayout, createLayouts, createMediaElement, createModifyVerifier, createPptxSaveConstants, createShapeElement, createTableCellXml, createTableElement, createTableGraphicFrameRawXml, createTemplateConnectorRawXml, createTemplateShapeRawXml, createTextElement, createUniformTextSegments, dataUrlToMediaBytes, decodeOle10Native, decodeXmlEntities, decomposeSmartArt, decryptPptx, demoteSmartArtNode, deobfuscateFont, deriveOutputPath, deriveSlideTitle, deriveSlideTitles, detectDigitalSignatures, detectFileFormat, detectFontFormat, detectOleObjectType, detectStrictConformance, diffPresentations, diffSlides, distributeSegmentsAcrossChain, douglasPeucker, duplicateElement, duplicateSlide, elementActionToPptxAction, elementHasAction, emuToPixels, encryptPptx, ensureArrayValue, escapeXmlAttr, escapeXmlText, estimateTextBoxCapacity, evaluateGeometryPaths, evaluateGuides, evaluatePresetShape, extractAllTagText, extractColorChoiceXml, extractFirstTagText, extractGraphicBuilds, extractGuidFromPartName, extractModel3DTransform, extractStyleReferenceColorXml, extractTagAttribute, fetchUrlToBytes, findCustomShow, findLayoutByName, findLayoutByType, findOpenXmlCoverage, findPlaceholders, findText, formatCommentTimestamp, fragmentShapes, generateFontGuid, generateLayoutXml, generateMediaFilename, getAdjustmentAwareClipPath, getAdjustmentAwareShapeClipPath, getAnimationPresetInfo, getCalloutLeaderLineGeometry, getCalloutTier, getCalloutViewBoxBounds, getCloudCalloutClipPath, getCloudClipPath, getCloudPathForRendering, getCommentMarkerPosition, getConnectorAdjustment, getConnectorPathGeometry, getCssBorderDashStyle, getCustomShowNames, getCustomShowPositionLabel, getDirectory, getElementLabel, getElementTextContent, getElementTransform, getImageMaskStyle, getLinkedTextBoxSegments, getNativeAnimationPresetMetadata, getOleObjectTypeLabel, getPanoseWeight, getPresetShapeClipPath, getPresetsByCategory, getRoundRectRadiusPx, getSectionForSlide, getSectionSlideRange, getShapeClipPath, getShapeClipPathFromPreset, getShapeType, getSignaturePathsToStrip, getSubstituteFontFamily, getSubstituteFonts, getSupportedNamespaces, getSvgStrokeDasharray, getTextCompensationTransform, getThemePreset, getZoomElements, getZoomTargetSlideIndexes, guidToKey, guideEmuToPx, guidePxToEmu, hasDirectSubstitution, hasNonTrivialOverride, hasShapeProperties, hasTextProperties, hexToRgbChannels, hslToRgb, inches, inchesToEmu, inferOleExtensionFromTarget, interpolateShapeGeometry, intersectPolygons, intersectShapes, intersectSvgPaths, isAlternateContentChoiceSupported, isAlternateContentChoiceXmlSupported, isCalloutShape, isConnectorElement, isEditableTextElement, isImageLikeElement, isInkElement, isNamespaceSupported, isOle2CompoundFile, isShapeElement, isStrictNamespaceUri, isSummaryZoomSlide, isSwitchableLayoutType, isTemplateElement, isTextElement, isTransitionalNamespaceUri, isValidBase64, isXmlNode, isZoomElement, isZoomElement2 as isZoomElementUtil, layoutEngineShapesToDrawingShapes, listUnassessedOpenXmlCoverage, lookupPresetShape, mailMerge, mergePresentation, mergeShapes, mergeStyleParts, mergeThemeColorOverride, mimeTypeForOleFile, mm, moveSlidesToSection, navigateCustomShow, normalizeHexColor, normalizeNamespaceUri, normalizePartPath, normalizePath, normalizeStrictXml, normalizeStrokeDashType, obfuscateFont, oleBytesToDataUrl, ooxmlArcToSvg, ooxmlToPresetName, orderedXmlKey, parseActiveXControlsFromSlide, parseAdjustmentValues, parseBodyPrBooleanAttrs, parseBubbleChartOptions, parseChart3DSurfaces, parseChartAxes, parseChartLayouts, parseChartManualLayout, parseChartUpDownBars, parseCondition, parseConditionList, parseCustomShows, parseCxChartSeries, parseDataTable, parseDataUrlToBytes, parseDiagramRelationshipIds, parseDrawingColor, parseDrawingColorChoice, parseDrawingColorOpacity, parseDrawingFraction, parseDrawingHueDegrees, parseDrawingLineDash, parseDrawingMediaReference, parseDrawingPercent, parseEmbeddedXlsx, parseGuideDefinitions, parseHexColor, parseInkMlContent, parseKinsoku, parseLayoutDefinition, parseLineStyle, parseMarker, parseOle2, parsePanoseBytes, parsePanoseString, parsePresentationDrawingGuides, parseSeriesDataLabels, parseSeriesDataPoints, parseSeriesErrBars, parseSeriesExplosion, parseSeriesTrendlines, parseShapeProps, parseSignatureXml, parseSlideDrawingGuides, parseSmartArtColorStyleLabels, parseSmartArtConstraintRules, parseSmartArtDefinitionHeaderList, parseSmartArtDefinitionMetadata, parseSmartArtLayoutDefinition, parseSmartArtQuickStyleLabels, parseStructuredCustomGeometry, parseSvgPath, parseTimeTargetElement, parseVmlElement, parseVmlElements, pixelsToEmu, polygonsToSvgPath, pptxActionToElementAction, promoteSmartArtNode, pt, reResolveSlideColors, readFileAsDataUrl, rebuildTableStructureInRawXml, reconcileAnimationTargets, reflowSmartArtLayout, relativeLuminance, relayoutSmartArt, remapEditorAnimationsToShapeIds, removeChartCategory, removeChartSeries, removeSection, removeSmartArtNode, reorderObjectKeys, reorderSections, reorderSmartArtNode, reorderSmartArtNodeToIndex, repairPptx, replaceShapeGeometry, replaceText, replaceTextInSlide, replaceWithCustomGeometry, resetCloneIdCounter, resetDecomposeCounter, resetIdCounter, resetSectionIdCounter, resetSmartArtEditCounter, resolveCoordinate, resolveCustomShowSlideIndices, resolveLayoutDisplayName, resolveModel3DMimeType, resolveReferenceUriToPart, resolveTableCellStyle, rgbToHsl, selectAlternateContentBranch, serializeColorChoice, serializeCondition, serializeConditionList, serializeGraphicBuild, serializeSmartArtDefinitionHeaderList, serializeSvgPath, serializeTimeTargetElement, setChartAxis, setChartAxisGridlineStyle, setChartAxisLogScale, setChartAxisTitleStyle, setChartCategories, setChartDataLabels, setChartDataPointExplosion, setChartDataPointFill, setChartDataPointLabel, setChartDataPointMarker, setChartGrouping, setChartLegend, setChartSeriesChartType, setChartSeriesColor, setChartSeriesErrorBars, setChartSeriesMarker, setChartSeriesTrendline, setChartTitle, setChartType, setElementLocked, setSmartArtNodeStyle, shouldRenderFallbackLabel, shouldReturnToZoomSlide, stripParentDirSegments, stripXmlOrderSuffix, subtractPolygons, subtractShapes, subtractSvgPaths, summarizeOpenXmlCoverage, summarizeOpenXmlCoverageByVocabulary, svgPathToPolygons, switchSmartArtLayout, themeColorSchemesEqual, toHex, toStrictNamespaceUri, unionPolygons, unionShapes, unionSvgPaths, unwrapAlternateContent, unwrapOleEmbedding, updateCellTextInRawXml, updateCellTextStyleInRawXml, updateChartDataPoint, updateChartSeriesValues, updateMergeAttrsInRawXml, updateSmartArtNodeText, validatePptx, validateSmartArtColorStyleLabels, validateSmartArtConstraintRules, validateSmartArtDefinitionHeaderList, validateSmartArtDefinitionMetadata, validateSmartArtLayoutDefinition, verifyModifyPassword, verifyPassword, verifySignatureDigests, withThemePlaceholderColor, writeBodyPrBooleanAttrs, xmlAttr, xmlAttrBool, xmlAttrNumber, xmlChild, xmlChildren, xmlPath, xmlText } from './chunk-FOMF7POV.mjs';
2
+ import './chunk-6DZX6EAA.mjs';
Binary file
Binary file
@@ -206,6 +206,13 @@ interface PptxShapeLocks {
206
206
  noAdjustHandles?: boolean;
207
207
  noChangeArrowheads?: boolean;
208
208
  noChangeShapeType?: boolean;
209
+ /**
210
+ * Text-box flag from `p:cNvSpPr/@txBox`. Not a lock in the strict sense,
211
+ * but it lives on the same non-visual-properties node as `a:spLocks`, so
212
+ * it is captured here to round-trip through the model. When `true` the
213
+ * shape is a plain text box (no fill/line by default).
214
+ */
215
+ txBox?: boolean;
209
216
  }
210
217
  /**
211
218
  * A drawing guide parsed from OOXML extension lists.
@@ -795,6 +802,15 @@ interface ShapeStyle {
795
802
  r: number;
796
803
  b: number;
797
804
  };
805
+ /** Raw tileRect LTRB values (0..1 fractions, may be negative) from
806
+ * `a:gradFill/a:tileRect`. Defines the rectangle the gradient tile occupies
807
+ * before any flip/tiling is applied. */
808
+ fillGradientTileRect?: {
809
+ l: number;
810
+ t: number;
811
+ r: number;
812
+ b: number;
813
+ };
798
814
  /** Gradient tile flip mode (`a:gradFill/@flip`).
799
815
  * `none` = no tiling flip (default), `x|y|xy` = mirror in the named axis. */
800
816
  fillGradientFlip?: 'none' | 'x' | 'y' | 'xy';
@@ -812,6 +828,20 @@ interface ShapeStyle {
812
828
  * round-trip serialisation. See {@link fillColorXml} for the rationale.
813
829
  */
814
830
  strokeColorXml?: XmlObject;
831
+ /**
832
+ * Kind of fill painted on the outline (`a:ln` child). Distinguishes a solid
833
+ * outline from a gradient/pattern/none outline so save can emit the correct
834
+ * single line fill instead of collapsing every outline to `a:solidFill`
835
+ * (which, alongside a preserved `a:gradFill`/`a:pattFill`, produces an
836
+ * invalid dual-fill `<a:ln>`).
837
+ */
838
+ strokeFillMode?: 'solid' | 'gradient' | 'pattern' | 'none';
839
+ /** Raw `a:ln/a:gradFill` XML preserved for round-trip when the outline is
840
+ * gradient-filled. Re-emitted verbatim as the line's single fill on save. */
841
+ strokeGradientXml?: XmlObject;
842
+ /** Raw `a:ln/a:pattFill` XML preserved for round-trip when the outline is
843
+ * pattern-filled. Re-emitted verbatim as the line's single fill on save. */
844
+ strokePatternXml?: XmlObject;
815
845
  strokeWidth?: number;
816
846
  strokeOpacity?: number;
817
847
  strokeDash?: StrokeDashType;
@@ -1120,6 +1150,13 @@ interface TextStyle {
1120
1150
  kerning?: number;
1121
1151
  /** Text highlight colour as hex string (`a:highlight`). */
1122
1152
  highlightColor?: string;
1153
+ /**
1154
+ * Raw colour-choice XML preserved from `a:highlight` so a themed highlight
1155
+ * (`a:schemeClr` / `a:sysClr` / `a:prstClr`) re-emits with its original
1156
+ * identity rather than being flattened to `<a:srgbClr/>` on save. On save we
1157
+ * re-emit verbatim when the resolved {@link highlightColor} still matches.
1158
+ */
1159
+ highlightColorXml?: XmlObject;
1123
1160
  /** Text-level gradient fill CSS string (from `a:rPr > a:gradFill`). */
1124
1161
  textFillGradient?: string;
1125
1162
  /** Structured gradient stops for text fill round-trip serialization. */
@@ -1231,10 +1268,36 @@ interface TextStyle {
1231
1268
  eastAsiaFont?: string;
1232
1269
  /** Complex Script font family from `a:cs`. */
1233
1270
  complexScriptFont?: string;
1271
+ /**
1272
+ * Theme-font token (`+mj-lt` / `+mn-lt` / ...) authored on `a:latin`, when
1273
+ * present. {@link fontFamily} holds the resolved concrete face for
1274
+ * rendering; this preserves the token linkage so the writer re-emits the
1275
+ * token rather than the flattened face (see #84).
1276
+ */
1277
+ latinFontThemeToken?: string;
1278
+ /** Theme-font token authored on `a:ea` (e.g. `+mn-ea`), when present. */
1279
+ eastAsiaFontThemeToken?: string;
1280
+ /** Theme-font token authored on `a:cs` (e.g. `+mn-cs`), when present. */
1281
+ complexScriptFontThemeToken?: string;
1282
+ /**
1283
+ * Automatic per-script fallback face resolved from the theme's
1284
+ * `<a:font script="...">` overrides for a run whose text is dominantly
1285
+ * CJK / Arabic / Hebrew / Thai (see #83). A rendering hint only: it is not
1286
+ * serialised back on save, so it never disturbs the round-trip typefaces.
1287
+ */
1288
+ scriptFallbackFont?: string;
1234
1289
  /** Text language from `a:rPr/@lang`. */
1235
1290
  language?: string;
1236
1291
  /** Hyperlink mouse-over target from `a:hlinkMouseOver`. */
1237
1292
  hyperlinkMouseOver?: string;
1293
+ /**
1294
+ * Raw `a:snd` (embedded WAV audio) child of `a:hlinkClick`, preserved
1295
+ * verbatim (carries `@r:embed` + `@name`). Round-tripped on save so the
1296
+ * click sound survives instead of being dropped.
1297
+ */
1298
+ hyperlinkSoundXml?: XmlObject;
1299
+ /** Raw `a:snd` child of `a:hlinkMouseOver`, preserved verbatim for round-trip. */
1300
+ hyperlinkMouseOverSoundXml?: XmlObject;
1238
1301
  /** Hyperlink invalidUrl attribute (`a:hlinkClick/@invalidUrl`). */
1239
1302
  hyperlinkInvalidUrl?: string;
1240
1303
  /** Hyperlink target frame (`a:hlinkClick/@tgtFrame`). */
@@ -1578,6 +1641,15 @@ interface TextSegment {
1578
1641
  * on the first segment of a paragraph.
1579
1642
  */
1580
1643
  endParaRunProperties?: Record<string, unknown>;
1644
+ /**
1645
+ * Per-paragraph properties (alignment, spacing, margins, indent, tab stops,
1646
+ * rtl) authored on this paragraph's own `a:pPr` (#69). Only meaningful on
1647
+ * the first segment of a paragraph. When present, the writer emits these
1648
+ * per paragraph instead of collapsing one shape-level pPr onto every
1649
+ * paragraph. Only the paragraph-geometry keys of {@link TextStyle} are
1650
+ * populated; unrelated fields fall back to the shape-level style.
1651
+ */
1652
+ paragraphProperties?: TextStyle;
1581
1653
  /**
1582
1654
  * Phonetic annotation text from `a:ruby > a:rt` (e.g. furigana, pinyin).
1583
1655
  * When present, the renderer should wrap the base text with an HTML `<ruby>` tag.
@@ -2223,6 +2295,18 @@ interface PptxChartSeries {
2223
2295
  marker?: PptxChartMarker;
2224
2296
  dataLabels?: PptxChartDataLabel[];
2225
2297
  explosion?: number;
2298
+ /**
2299
+ * Series-level `c:invertIfNegative`: when true, bar/column data points with a
2300
+ * negative value are drawn with an inverted (lightened) fill. A per-point
2301
+ * `c:dPt/c:invertIfNegative` overrides this for that point. Absent when the
2302
+ * source XML omits the flag.
2303
+ */
2304
+ invertIfNegative?: boolean;
2305
+ /**
2306
+ * Whether this line/scatter series is drawn with bezier smoothing
2307
+ * (`c:ser/c:smooth/@val`). Absent when the source XML omits `c:smooth`.
2308
+ */
2309
+ smooth?: boolean;
2226
2310
  /** Axis ID this series is plotted against (links to PptxChartAxisFormatting.axisId). */
2227
2311
  axisId?: number;
2228
2312
  /**
@@ -2489,6 +2573,33 @@ interface PptxChartData {
2489
2573
  style?: PptxChartStyle;
2490
2574
  /** Grouping mode for bar/area/line charts: 'clustered' | 'stacked' | 'percentStacked' */
2491
2575
  grouping?: 'clustered' | 'stacked' | 'percentStacked';
2576
+ /**
2577
+ * Whether the first (or only) series varies its point colours
2578
+ * (`c:varyColors/@val`). Pie/doughnut default this on; single-series
2579
+ * bar/column honour it by giving each point a distinct palette colour.
2580
+ * Absent when the source XML omits `c:varyColors`.
2581
+ */
2582
+ varyColors?: boolean;
2583
+ /**
2584
+ * Pie/doughnut start angle in degrees clockwise from 12 o'clock
2585
+ * (`c:firstSliceAng/@val`, 0 through 360). Absent uses the default 0.
2586
+ */
2587
+ firstSliceAngle?: number;
2588
+ /**
2589
+ * Doughnut hole diameter as a percentage of the outer diameter
2590
+ * (`c:holeSize/@val`, 10 through 90). Absent uses the renderer default.
2591
+ */
2592
+ doughnutHoleSize?: number;
2593
+ /**
2594
+ * Bar/column gap between category clusters as a percentage of bar width
2595
+ * (`c:gapWidth/@val`, 0 through 500). Absent uses the renderer default.
2596
+ */
2597
+ barGapWidth?: number;
2598
+ /**
2599
+ * Clustered bar/column overlap between series within a category as a
2600
+ * percentage (`c:overlap/@val`, -100 through 100). Absent uses 0.
2601
+ */
2602
+ barOverlap?: number;
2492
2603
  /** Internal: path to the chart XML part in the PPTX archive (for round-trip save). */
2493
2604
  chartPartPath?: string;
2494
2605
  /** Internal: relationship ID linking the graphic frame to the chart part. */
@@ -3296,6 +3407,18 @@ interface PptxSmartArtColorTransform extends PptxSmartArtDefinitionMetadata {
3296
3407
  fillColors: string[];
3297
3408
  /** Ordered resolved line colors for rendering. */
3298
3409
  lineColors: string[];
3410
+ /** Ordered resolved text-fill colors (primary styleLbl `txFillClrLst`). */
3411
+ textFillColors?: string[];
3412
+ /** Ordered resolved text-line colors (primary styleLbl `txLinClrLst`). */
3413
+ textLineColors?: string[];
3414
+ /** Ordered resolved effect colors (primary styleLbl `effectClrLst`). */
3415
+ effectColors?: string[];
3416
+ /** Ordered resolved text-effect colors (primary styleLbl `txEffectClrLst`). */
3417
+ textEffectColors?: string[];
3418
+ /** Fill-list span/cycle + hue-direction interpolation of the primary styleLbl. */
3419
+ fillInterpolation?: PptxSmartArtColorListMetadata;
3420
+ /** Line-list span/cycle + hue-direction interpolation of the primary styleLbl. */
3421
+ lineInterpolation?: PptxSmartArtColorListMetadata;
3299
3422
  /** Ordered CT_CTStyleLabel metadata. */
3300
3423
  labels?: PptxSmartArtColorStyleLabel[];
3301
3424
  }
@@ -3416,6 +3539,40 @@ interface PptxSmartArtDrawingShape extends PptxCustomPathProperties {
3416
3539
  skewY?: number;
3417
3540
  /** Solid fill colour (hex). */
3418
3541
  fillColor?: string;
3542
+ /**
3543
+ * Gradient fill stops when the cached shape uses `a:gradFill`. Positions are
3544
+ * 0..100 (percent). Renderers emit an SVG/CSS gradient instead of a flat box.
3545
+ */
3546
+ fillGradientStops?: Array<{
3547
+ color: string;
3548
+ position: number;
3549
+ opacity?: number;
3550
+ }>;
3551
+ /** Gradient geometry type (`linear` for `a:lin`, `radial` for `a:path`). */
3552
+ fillGradientType?: 'linear' | 'radial';
3553
+ /** Linear gradient angle in degrees (0..360). */
3554
+ fillGradientAngle?: number;
3555
+ /** Pattern fill preset name from `a:pattFill/@prst` (e.g. "pct50", "cross"). */
3556
+ fillPatternPreset?: string;
3557
+ /** Pattern fill foreground colour (hex) from `a:pattFill/a:fgClr`. */
3558
+ fillPatternForegroundColor?: string;
3559
+ /** Pattern fill background colour (hex) from `a:pattFill/a:bgClr`. */
3560
+ fillPatternBackgroundColor?: string;
3561
+ /**
3562
+ * Relationship id of a picture (blip) fill's embedded image, from
3563
+ * `a:blipFill/a:blip/@r:embed`. The image bytes are resolved separately; see
3564
+ * {@link fillImageUrl}.
3565
+ */
3566
+ fillBlipEmbedId?: string;
3567
+ /**
3568
+ * Resolved data-URI/URL for a picture (blip) fill, when the embedded image
3569
+ * part could be resolved. Absent when only {@link fillBlipEmbedId} is known.
3570
+ */
3571
+ fillImageUrl?: string;
3572
+ /** Whether the cached shape carries an outer-shadow effect (`a:effectLst`). */
3573
+ hasShadow?: boolean;
3574
+ /** Resolved outer-shadow colour (hex), when present. */
3575
+ shadowColor?: string;
3419
3576
  /** Stroke colour (hex). */
3420
3577
  strokeColor?: string;
3421
3578
  /** Stroke width in points. */
@@ -3450,6 +3607,40 @@ interface PptxSmartArtChrome {
3450
3607
  /** Outline stroke width in points. */
3451
3608
  outlineWidth?: number;
3452
3609
  }
3610
+ /**
3611
+ * Presentation layout variables from `dgm:prSet/dgm:presLayoutVars` (data model)
3612
+ * or `dgm:varLst` (layout definition defaults).
3613
+ *
3614
+ * These drive how the DiagramML layout interpreter arranges points: flow
3615
+ * direction, hierarchy branch style, org-chart mode, and child count limits.
3616
+ * The fallback layout engine can consult them for direction/org-chart hints.
3617
+ *
3618
+ * @example
3619
+ * ```ts
3620
+ * const vars: PptxSmartArtPresLayoutVars = { direction: "rev", orgChart: true };
3621
+ * // => satisfies PptxSmartArtPresLayoutVars
3622
+ * ```
3623
+ */
3624
+ interface PptxSmartArtPresLayoutVars {
3625
+ /** Flow direction (`dgm:dir`): "norm" (default) or "rev" (reversed/RTL). */
3626
+ direction?: 'norm' | 'rev';
3627
+ /** Hierarchy branch style (`dgm:hierBranch`): std/init/l/r/hang. */
3628
+ hierarchyBranch?: 'std' | 'init' | 'l' | 'r' | 'hang';
3629
+ /** Org-chart mode enabled (`dgm:orgChart`). */
3630
+ orgChart?: boolean;
3631
+ /** Maximum children per node (`dgm:chMax`, -1 = unbounded). */
3632
+ childMax?: number;
3633
+ /** Preferred children per node (`dgm:chPref`, -1 = unbounded). */
3634
+ childPreferred?: number;
3635
+ /** Whether bullets are enabled (`dgm:bulletEnabled`). */
3636
+ bulletEnabled?: boolean;
3637
+ /** Animation-by-level setting (`dgm:animLvl`). */
3638
+ animationLevel?: string;
3639
+ /** Animate-one setting (`dgm:animOne`). */
3640
+ animateOne?: string;
3641
+ /** Allowed resize handles (`dgm:resizeHandles`). */
3642
+ resizeHandles?: string;
3643
+ }
3453
3644
  /**
3454
3645
  * Complete parsed SmartArt data for a {@link SmartArtPptxElement}.
3455
3646
  *
@@ -3491,6 +3682,12 @@ interface PptxSmartArtData {
3491
3682
  quickStyle?: PptxSmartArtQuickStyle;
3492
3683
  /** Editable metadata from the related DiagramML layout definition. */
3493
3684
  layoutDefinition?: PptxSmartArtLayoutDefinition;
3685
+ /**
3686
+ * Presentation layout variables (direction, hierarchy branch, org-chart,
3687
+ * child limits, bullets) from `dgm:presLayoutVars` / layout `dgm:varLst`.
3688
+ * Consulted by the fallback layout engine for direction/org-chart hints.
3689
+ */
3690
+ presLayoutVars?: PptxSmartArtPresLayoutVars;
3494
3691
  /** Relationship ID for the diagram data part (for round-trip save). */
3495
3692
  dataRelId?: string;
3496
3693
  /** Relationship ID for the diagram layout part. */
@@ -3763,12 +3960,50 @@ interface PptxTableData {
3763
3960
  * ```
3764
3961
  */
3765
3962
  interface ParsedTableStyleFill {
3766
- /** Theme colour key (e.g. `accent1`, `dk1`). */
3963
+ /**
3964
+ * Theme colour key (e.g. `accent1`, `dk1`). Empty string when the fill is a
3965
+ * non-scheme fill (explicit sRGB, gradient, pattern, or none) that carries
3966
+ * no theme colour reference; the renderer then resolves {@link color},
3967
+ * {@link gradient}, {@link pattern}, or {@link noFill} instead.
3968
+ */
3767
3969
  schemeColor: string;
3768
3970
  /** Tint value (0-100 000). */
3769
3971
  tint?: number;
3770
3972
  /** Shade value (0-100 000). */
3771
3973
  shade?: number;
3974
+ /** Explicit sRGB hex colour (e.g. `#FF8800`) from `a:srgbClr`. */
3975
+ color?: string;
3976
+ /** The fill was `a:noFill`: renders transparent and clears lower layers. */
3977
+ noFill?: boolean;
3978
+ /** Gradient fill parsed from `a:gradFill`. */
3979
+ gradient?: ParsedTableStyleGradient;
3980
+ /** Preset pattern fill parsed from `a:pattFill`. */
3981
+ pattern?: ParsedTableStylePattern;
3982
+ }
3983
+ /** A single colour stop within a {@link ParsedTableStyleGradient}. */
3984
+ interface ParsedTableStyleGradientStop {
3985
+ /** Stop position as a percentage (0-100). */
3986
+ position: number;
3987
+ /** Stop colour (scheme or explicit sRGB). */
3988
+ fill: ParsedTableStyleFill;
3989
+ }
3990
+ /** A gradient fill parsed from a table style section's `a:gradFill`. */
3991
+ interface ParsedTableStyleGradient {
3992
+ /** Ordered colour stops. */
3993
+ stops: ParsedTableStyleGradientStop[];
3994
+ /** Linear gradient angle in degrees (from `a:lin@ang`, 60000ths -> deg). */
3995
+ angle?: number;
3996
+ /** Gradient family: linear (`a:lin`) or radial (`a:path`). */
3997
+ type: 'linear' | 'radial';
3998
+ }
3999
+ /** A preset pattern fill parsed from a table style section's `a:pattFill`. */
4000
+ interface ParsedTableStylePattern {
4001
+ /** OOXML preset name (e.g. `ltDnDiag`) from `a:pattFill@prst`. */
4002
+ preset: string;
4003
+ /** Foreground colour (`a:fgClr`). */
4004
+ foreground?: ParsedTableStyleFill;
4005
+ /** Background colour (`a:bgClr`). */
4006
+ background?: ParsedTableStyleFill;
3772
4007
  }
3773
4008
  /**
3774
4009
  * A single entry in the parsed table style map.
@@ -3795,12 +4030,67 @@ interface ParsedTableStyleText {
3795
4030
  bold?: boolean;
3796
4031
  /** Font italic. */
3797
4032
  italic?: boolean;
4033
+ /** Font underline (from `a:tcTxStyle@u`, any value other than `none`). */
4034
+ underline?: boolean;
3798
4035
  /** Font colour as theme scheme key. */
3799
4036
  fontSchemeColor?: string;
3800
4037
  /** Font colour tint (0-100 000). */
3801
4038
  fontTint?: number;
3802
4039
  /** Font colour shade (0-100 000). */
3803
4040
  fontShade?: number;
4041
+ /** Explicit sRGB hex font colour (e.g. `#FF0000`) from `a:srgbClr`. */
4042
+ fontColor?: string;
4043
+ /** Typeface from `a:font@typeface` (latin font). */
4044
+ fontFace?: string;
4045
+ /** Font-collection index from `a:fontRef@idx` (`minor`, `major`, `none`). */
4046
+ fontRefIdx?: string;
4047
+ }
4048
+ /**
4049
+ * A single border side within a table style's `a:tcStyle/a:tcBdr`.
4050
+ *
4051
+ * Corresponds to one of `a:left`, `a:right`, `a:top`, `a:bottom`,
4052
+ * `a:insideH`, `a:insideV`, `a:tl2br`, `a:bl2tr` (each a
4053
+ * `CT_ThemeableLineStyle` wrapping an `a:ln`).
4054
+ *
4055
+ * @example
4056
+ * ```ts
4057
+ * const side: ParsedTableStyleBorder = {
4058
+ * width: 1,
4059
+ * dash: 'solid',
4060
+ * fill: { schemeColor: 'lt1' },
4061
+ * };
4062
+ * // => satisfies ParsedTableStyleBorder
4063
+ * ```
4064
+ */
4065
+ interface ParsedTableStyleBorder {
4066
+ /** Line width in px (converted from the `a:ln@w` EMU value). */
4067
+ width?: number;
4068
+ /** OOXML `a:prstDash@val` (e.g. `solid`, `dash`, `sysDot`). */
4069
+ dash?: string;
4070
+ /** Border colour as a theme scheme fill (from `a:ln/a:solidFill/a:schemeClr`). */
4071
+ fill?: ParsedTableStyleFill;
4072
+ /** Explicit hex colour when the line used `a:srgbClr` (e.g. `#808080`). */
4073
+ color?: string;
4074
+ /** The line was `a:noFill` — an explicit "no border" that clears lower layers. */
4075
+ noFill?: boolean;
4076
+ }
4077
+ /**
4078
+ * The set of border sides parsed from a table style section's
4079
+ * `a:tcStyle/a:tcBdr` element.
4080
+ */
4081
+ interface ParsedTableStyleBorders {
4082
+ left?: ParsedTableStyleBorder;
4083
+ right?: ParsedTableStyleBorder;
4084
+ top?: ParsedTableStyleBorder;
4085
+ bottom?: ParsedTableStyleBorder;
4086
+ /** Interior horizontal borders between rows in the region. */
4087
+ insideH?: ParsedTableStyleBorder;
4088
+ /** Interior vertical borders between columns in the region. */
4089
+ insideV?: ParsedTableStyleBorder;
4090
+ /** Top-left to bottom-right diagonal. */
4091
+ tl2br?: ParsedTableStyleBorder;
4092
+ /** Bottom-left to top-right diagonal. */
4093
+ bl2tr?: ParsedTableStyleBorder;
3804
4094
  }
3805
4095
  /**
3806
4096
  * Table background style (CT_TableBackgroundStyle, ECMA-376 §21.1.3.7).
@@ -3836,6 +4126,24 @@ interface ParsedTableStyleEntry {
3836
4126
  swCellFill?: ParsedTableStyleFill;
3837
4127
  neCellFill?: ParsedTableStyleFill;
3838
4128
  nwCellFill?: ParsedTableStyleFill;
4129
+ /**
4130
+ * Per-role border styling from `a:tcStyle/a:tcBdr`. These supply the
4131
+ * gridlines/edges a styled table inherits from its table style when the
4132
+ * cells carry no explicit per-cell `a:lnX` overrides.
4133
+ */
4134
+ wholeTblBorders?: ParsedTableStyleBorders;
4135
+ firstRowBorders?: ParsedTableStyleBorders;
4136
+ lastRowBorders?: ParsedTableStyleBorders;
4137
+ firstColBorders?: ParsedTableStyleBorders;
4138
+ lastColBorders?: ParsedTableStyleBorders;
4139
+ band1HBorders?: ParsedTableStyleBorders;
4140
+ band2HBorders?: ParsedTableStyleBorders;
4141
+ band1VBorders?: ParsedTableStyleBorders;
4142
+ band2VBorders?: ParsedTableStyleBorders;
4143
+ seCellBorders?: ParsedTableStyleBorders;
4144
+ swCellBorders?: ParsedTableStyleBorders;
4145
+ neCellBorders?: ParsedTableStyleBorders;
4146
+ nwCellBorders?: ParsedTableStyleBorders;
3839
4147
  /** Per-role text styling from a:tcTxStyle. */
3840
4148
  wholeTblText?: ParsedTableStyleText;
3841
4149
  firstRowText?: ParsedTableStyleText;
@@ -4643,10 +4951,30 @@ interface PptxNativeAnimation {
4643
4951
  presetClass?: 'entr' | 'exit' | 'emph' | 'path';
4644
4952
  /** Effect preset sub-type identifier. */
4645
4953
  presetId?: number;
4954
+ /**
4955
+ * Effect preset direction/variant code from `p:cTn/@presetSubtype`
4956
+ * (ECMA-376 CT_TLCommonTimeNodeData). For Fly In/Out this encodes the
4957
+ * edge/corner the object travels from as a bitmask (1=top, 2=right,
4958
+ * 4=bottom, 8=left; corners combine bits). Absent means the preset default.
4959
+ */
4960
+ presetSubtype?: number;
4646
4961
  /** Duration in milliseconds. */
4647
4962
  durationMs?: number;
4648
4963
  /** Delay in milliseconds. */
4649
4964
  delayMs?: number;
4965
+ /**
4966
+ * Acceleration fraction in the range 0..1, parsed from `p:cTn/@accel`
4967
+ * (ST_PositiveFixedPercentage, stored as 1000ths of a percent). A non-zero
4968
+ * value means the effect eases in (starts slow). Absent means no easing-in.
4969
+ */
4970
+ accel?: number;
4971
+ /**
4972
+ * Deceleration fraction in the range 0..1, parsed from `p:cTn/@decel`.
4973
+ * A non-zero value means the effect eases out (ends slow). Absent means no
4974
+ * easing-out. When both {@link accel} and {@link decel} are set, the effect
4975
+ * eases in and out.
4976
+ */
4977
+ decel?: number;
4650
4978
  /** Trigger delay in milliseconds (for afterDelay). */
4651
4979
  triggerDelayMs?: number;
4652
4980
  /** SVG path string for motion path animations (`p:animMotion/@path`). */
@@ -5518,7 +5846,7 @@ interface PptxTheme {
5518
5846
  * // => "morph" — one of 40+ transition effects
5519
5847
  * ```
5520
5848
  */
5521
- type PptxTransitionType = 'none' | 'cut' | 'fade' | 'push' | 'wipe' | 'split' | 'randomBar' | 'blinds' | 'checker' | 'circle' | 'comb' | 'cover' | 'diamond' | 'dissolve' | 'plus' | 'pull' | 'random' | 'strips' | 'uncover' | 'wedge' | 'wheel' | 'zoom' | 'newsflash' | 'morph' | 'conveyor' | 'doors' | 'ferris' | 'flash' | 'flythrough' | 'gallery' | 'glitter' | 'honeycomb' | 'pan' | 'prism' | 'reveal' | 'ripple' | 'shred' | 'switch' | 'vortex' | 'warp' | 'wheelReverse' | 'window' | 'cube' | 'flip' | 'rotate' | 'orbit';
5849
+ type PptxTransitionType = 'none' | 'cut' | 'fade' | 'push' | 'wipe' | 'split' | 'randomBar' | 'blinds' | 'checker' | 'circle' | 'comb' | 'cover' | 'diamond' | 'dissolve' | 'plus' | 'pull' | 'random' | 'strips' | 'uncover' | 'wedge' | 'wheel' | 'zoom' | 'newsflash' | 'morph' | 'conveyor' | 'doors' | 'ferris' | 'flash' | 'flythrough' | 'gallery' | 'glitter' | 'honeycomb' | 'pan' | 'prism' | 'reveal' | 'ripple' | 'shred' | 'switch' | 'vortex' | 'warp' | 'wheelReverse' | 'window' | 'cube' | 'flip' | 'rotate' | 'orbit' | 'fallOver' | 'drape' | 'curtains' | 'wind' | 'prestige' | 'fracture' | 'crush' | 'peelOff' | 'pageCurlDouble' | 'pageCurlSingle' | 'airplane' | 'origami';
5522
5850
  /** Split orientation from OOXML `@_orient`. */
5523
5851
  type PptxSplitOrientation = 'horz' | 'vert';
5524
5852
  /** Schema-defined `ST_TransitionSpeed` values. */
@@ -8413,6 +8741,16 @@ interface PowerPointViewerHandle extends FileViewerHandle, PowerPointViewerAPI {
8413
8741
  }
8414
8742
 
8415
8743
  //#region src/viewer/hooks/presentation-mode/types.d.ts
8744
+ /**
8745
+ * How a forward/backward slide advance was requested.
8746
+ *
8747
+ * - `'click'`: a click/tap on the slide surface (PowerPoint's "On Mouse Click"
8748
+ * advance). This is the only trigger governed by `advanceOnClick`.
8749
+ * - `'explicit'`: keyboard, navigation buttons, action triggers, and timed
8750
+ * auto-advance. These always navigate regardless of `advanceOnClick`, matching
8751
+ * PowerPoint (arrow keys / Next always work even when click-advance is off).
8752
+ */
8753
+ type SlideAdvanceTrigger = 'click' | 'explicit';
8416
8754
  /**
8417
8755
  * State describing the transition overlay that plays while advancing into a
8418
8756
  * slide that carries a `p:transition`. The outgoing slide is snapshotted into
@@ -8439,7 +8777,14 @@ interface UsePresentationModeInput {
8439
8777
  content?: ArrayBuffer | Uint8Array | null;
8440
8778
  onSetMode: (mode: ViewerMode) => void;
8441
8779
  onSetActiveSlideIndex: (index: number) => void;
8442
- onPlayActionSound?: (soundPath: string) => void;
8780
+ /**
8781
+ * Play a sound file for an action/transition. When `options.loop` is true the
8782
+ * audio repeats until the next animation sound plays or the show exits
8783
+ * (used for transition sounds flagged with `soundLoop`).
8784
+ */
8785
+ onPlayActionSound?: (soundPath: string, options?: {
8786
+ loop?: boolean;
8787
+ }) => void;
8443
8788
  /** Called when L key is pressed during presentation. */
8444
8789
  onToggleLaser?: () => void;
8445
8790
  /** Called when P key is pressed during presentation. */
@@ -8479,7 +8824,7 @@ interface UsePresentationModeResult {
8479
8824
  runPresentationEntranceAnimations: (slideIndex: number) => void;
8480
8825
  /** True while the black "End of slide show" screen is displayed. */
8481
8826
  endOfShowVisible: boolean;
8482
- movePresentationSlide: (direction: 1 | -1) => void;
8827
+ movePresentationSlide: (direction: 1 | -1, trigger?: SlideAdvanceTrigger) => void;
8483
8828
  navigateToSlide: (slideIndex: number) => void;
8484
8829
  handlePresentationAction: (action: PptxAction) => void;
8485
8830
  /**
@@ -9008,7 +9353,7 @@ interface UseSlideNavigationInput {
9008
9353
  setShowRehearsalSummary: (value: boolean) => void;
9009
9354
  }
9010
9355
  interface UseSlideNavigationResult {
9011
- movePresentationSlide: (direction: 1 | -1) => void;
9356
+ movePresentationSlide: (direction: 1 | -1, trigger?: SlideAdvanceTrigger) => void;
9012
9357
  navigateToSlide: (slideIndex: number) => void;
9013
9358
  handlePresentationAction: (action: PptxAction) => void;
9014
9359
  scheduleAutoAdvanceForSlide: (slideIndex: number) => void;