pptx-react-viewer 4.8.0 → 4.10.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 (135) hide show
  1. package/CHANGELOG.md +139 -0
  2. package/dist/{AiChatPanel-4LMJIJUU.js → AiChatPanel-RBQFM6JK.js} +28 -28
  3. package/dist/AiChatPanel-RBQFM6JK.js.br +0 -0
  4. package/dist/AiChatPanel-RBQFM6JK.js.gz +0 -0
  5. package/dist/{AiChatPanel-XWYLYN26.mjs → AiChatPanel-SIEMT43N.mjs} +4 -4
  6. package/dist/AiChatPanel-SIEMT43N.mjs.br +0 -0
  7. package/dist/AiChatPanel-SIEMT43N.mjs.gz +0 -0
  8. package/dist/{Model3DScene-N6IZ7Q57.mjs → Model3DScene-HZ7SOUFQ.mjs} +1 -1
  9. package/dist/{Model3DScene-N6IZ7Q57.mjs.br → Model3DScene-HZ7SOUFQ.mjs.br} +0 -0
  10. package/dist/Model3DScene-HZ7SOUFQ.mjs.gz +0 -0
  11. package/dist/{Model3DScene-YAPQ5BCI.js → Model3DScene-ITAVIIVY.js} +2 -2
  12. package/dist/Model3DScene-ITAVIIVY.js.br +0 -0
  13. package/dist/Model3DScene-ITAVIIVY.js.gz +0 -0
  14. package/dist/{chunk-KHEJXP4I.mjs → chunk-3UZYGG6W.mjs} +2547 -1856
  15. package/dist/chunk-3UZYGG6W.mjs.br +0 -0
  16. package/dist/chunk-3UZYGG6W.mjs.gz +0 -0
  17. package/dist/{chunk-SOMUGI3Y.mjs → chunk-A5A6B2PA.mjs} +18 -14
  18. package/dist/chunk-A5A6B2PA.mjs.br +0 -0
  19. package/dist/chunk-A5A6B2PA.mjs.gz +0 -0
  20. package/dist/{chunk-YF2BQIW3.js → chunk-E5565MDK.js} +11989 -4273
  21. package/dist/chunk-E5565MDK.js.br +0 -0
  22. package/dist/chunk-E5565MDK.js.gz +0 -0
  23. package/dist/{chunk-YPDPSXPK.mjs → chunk-HDH4KFDK.mjs} +259 -0
  24. package/dist/chunk-HDH4KFDK.mjs.br +0 -0
  25. package/dist/chunk-HDH4KFDK.mjs.gz +0 -0
  26. package/dist/{chunk-LTBTG2QB.js → chunk-KPKO2ELT.js} +259 -0
  27. package/dist/chunk-KPKO2ELT.js.br +0 -0
  28. package/dist/chunk-KPKO2ELT.js.gz +0 -0
  29. package/dist/{chunk-SSXGPYBF.mjs → chunk-LMJU46E5.mjs} +34 -16
  30. package/dist/chunk-LMJU46E5.mjs.br +0 -0
  31. package/dist/chunk-LMJU46E5.mjs.gz +0 -0
  32. package/dist/{chunk-SAYZSUNQ.js → chunk-NTMJSTXL.js} +221 -203
  33. package/dist/chunk-NTMJSTXL.js.br +0 -0
  34. package/dist/chunk-NTMJSTXL.js.gz +0 -0
  35. package/dist/{chunk-UTP22QYH.js → chunk-PPDIZ3XP.js} +5 -5
  36. package/dist/chunk-PPDIZ3XP.js.br +0 -0
  37. package/dist/chunk-PPDIZ3XP.js.gz +0 -0
  38. package/dist/{chunk-Q4XJSJYI.mjs → chunk-WM33FDLD.mjs} +1 -1
  39. package/dist/chunk-WM33FDLD.mjs.br +0 -0
  40. package/dist/chunk-WM33FDLD.mjs.gz +0 -0
  41. package/dist/{chunk-NPZOVIHG.mjs → chunk-ZBFDEYLQ.mjs} +11968 -4273
  42. package/dist/chunk-ZBFDEYLQ.mjs.br +0 -0
  43. package/dist/chunk-ZBFDEYLQ.mjs.gz +0 -0
  44. package/dist/{chunk-NV2H57Q4.js → chunk-ZEQVK2FT.js} +4565 -3874
  45. package/dist/chunk-ZEQVK2FT.js.br +0 -0
  46. package/dist/chunk-ZEQVK2FT.js.gz +0 -0
  47. package/dist/{chunk-Q7NWWIPQ.js → chunk-ZI57KREY.js} +830 -826
  48. package/dist/chunk-ZI57KREY.js.br +0 -0
  49. package/dist/chunk-ZI57KREY.js.gz +0 -0
  50. package/dist/i18n/de.cjs +276 -9
  51. package/dist/i18n/de.cjs.br +0 -0
  52. package/dist/i18n/de.cjs.gz +0 -0
  53. package/dist/i18n/de.mjs +276 -9
  54. package/dist/i18n/de.mjs.br +0 -0
  55. package/dist/i18n/de.mjs.gz +0 -0
  56. package/dist/i18n/es.cjs +276 -9
  57. package/dist/i18n/es.cjs.br +0 -0
  58. package/dist/i18n/es.cjs.gz +0 -0
  59. package/dist/i18n/es.mjs +276 -9
  60. package/dist/i18n/es.mjs.br +0 -0
  61. package/dist/i18n/es.mjs.gz +0 -0
  62. package/dist/i18n/fr.cjs +276 -9
  63. package/dist/i18n/fr.cjs.br +0 -0
  64. package/dist/i18n/fr.cjs.gz +0 -0
  65. package/dist/i18n/fr.mjs +276 -9
  66. package/dist/i18n/fr.mjs.br +0 -0
  67. package/dist/i18n/fr.mjs.gz +0 -0
  68. package/dist/i18n/zh-CN.cjs +279 -12
  69. package/dist/i18n/zh-CN.cjs.br +0 -0
  70. package/dist/i18n/zh-CN.cjs.gz +0 -0
  71. package/dist/i18n/zh-CN.mjs +279 -12
  72. package/dist/i18n/zh-CN.mjs.br +0 -0
  73. package/dist/i18n/zh-CN.mjs.gz +0 -0
  74. package/dist/i18n.js +4 -4
  75. package/dist/i18n.js.br +0 -0
  76. package/dist/i18n.js.gz +0 -0
  77. package/dist/i18n.mjs +1 -1
  78. package/dist/i18n.mjs.br +0 -0
  79. package/dist/i18n.mjs.gz +0 -0
  80. package/dist/index.d.ts +683 -23
  81. package/dist/index.js +63 -63
  82. package/dist/index.js.br +0 -0
  83. package/dist/index.js.gz +0 -0
  84. package/dist/index.mjs +6 -6
  85. package/dist/index.mjs.br +0 -0
  86. package/dist/index.mjs.gz +0 -0
  87. package/dist/internals.d.ts +677 -14
  88. package/dist/internals.js +105 -105
  89. package/dist/internals.js.br +0 -0
  90. package/dist/internals.js.gz +0 -0
  91. package/dist/internals.mjs +4 -4
  92. package/dist/internals.mjs.br +0 -0
  93. package/dist/internals.mjs.gz +0 -0
  94. package/dist/pptx-viewer.css +1 -1
  95. package/dist/pptx-viewer.css.br +0 -0
  96. package/dist/pptx-viewer.css.gz +0 -0
  97. package/dist/viewer/index.d.ts +677 -23
  98. package/dist/viewer/index.js +27 -27
  99. package/dist/viewer/index.js.br +0 -0
  100. package/dist/viewer/index.js.gz +0 -0
  101. package/dist/viewer/index.mjs +6 -6
  102. package/dist/viewer/index.mjs.br +0 -0
  103. package/dist/viewer/index.mjs.gz +0 -0
  104. package/package.json +4 -3
  105. package/dist/AiChatPanel-4LMJIJUU.js.br +0 -0
  106. package/dist/AiChatPanel-4LMJIJUU.js.gz +0 -0
  107. package/dist/AiChatPanel-XWYLYN26.mjs.br +0 -0
  108. package/dist/AiChatPanel-XWYLYN26.mjs.gz +0 -0
  109. package/dist/Model3DScene-N6IZ7Q57.mjs.gz +0 -0
  110. package/dist/Model3DScene-YAPQ5BCI.js.br +0 -0
  111. package/dist/Model3DScene-YAPQ5BCI.js.gz +0 -0
  112. package/dist/chunk-KHEJXP4I.mjs.br +0 -0
  113. package/dist/chunk-KHEJXP4I.mjs.gz +0 -0
  114. package/dist/chunk-LTBTG2QB.js.br +0 -0
  115. package/dist/chunk-LTBTG2QB.js.gz +0 -0
  116. package/dist/chunk-NPZOVIHG.mjs.br +0 -0
  117. package/dist/chunk-NPZOVIHG.mjs.gz +0 -0
  118. package/dist/chunk-NV2H57Q4.js.br +0 -0
  119. package/dist/chunk-NV2H57Q4.js.gz +0 -0
  120. package/dist/chunk-Q4XJSJYI.mjs.br +0 -0
  121. package/dist/chunk-Q4XJSJYI.mjs.gz +0 -0
  122. package/dist/chunk-Q7NWWIPQ.js.br +0 -0
  123. package/dist/chunk-Q7NWWIPQ.js.gz +0 -0
  124. package/dist/chunk-SAYZSUNQ.js.br +0 -0
  125. package/dist/chunk-SAYZSUNQ.js.gz +0 -0
  126. package/dist/chunk-SOMUGI3Y.mjs.br +0 -0
  127. package/dist/chunk-SOMUGI3Y.mjs.gz +0 -0
  128. package/dist/chunk-SSXGPYBF.mjs.br +0 -0
  129. package/dist/chunk-SSXGPYBF.mjs.gz +0 -0
  130. package/dist/chunk-UTP22QYH.js.br +0 -0
  131. package/dist/chunk-UTP22QYH.js.gz +0 -0
  132. package/dist/chunk-YF2BQIW3.js.br +0 -0
  133. package/dist/chunk-YF2BQIW3.js.gz +0 -0
  134. package/dist/chunk-YPDPSXPK.mjs.br +0 -0
  135. package/dist/chunk-YPDPSXPK.mjs.gz +0 -0
package/dist/index.d.ts CHANGED
@@ -1971,6 +1971,16 @@ interface TextStyle {
1971
1971
  textReflectionEndOpacity?: number;
1972
1972
  /** Text reflection offset distance in px. */
1973
1973
  textReflectionOffset?: number;
1974
+ /**
1975
+ * Text reflection end position (`@endPos`) as a 0-1 fraction of the text
1976
+ * height the fade reaches. Mirrors `ShapeStyle.reflectionEndPosition`.
1977
+ */
1978
+ textReflectionEndPosition?: number;
1979
+ /**
1980
+ * Text reflection offset direction (`@dir`) in degrees. Mirrors
1981
+ * `ShapeStyle.reflectionDirection`.
1982
+ */
1983
+ textReflectionDirection?: number;
1974
1984
  /**
1975
1985
  * Text reflection fade direction (`a:rPr/a:effectLst/a:reflection/@fadeDir`)
1976
1986
  * in degrees. Mirrors `ShapeStyle.reflectionFadeDirection`.
@@ -2289,6 +2299,21 @@ interface TextSegment {
2289
2299
  * populated; unrelated fields fall back to the shape-level style.
2290
2300
  */
2291
2301
  paragraphProperties?: TextStyle;
2302
+ /**
2303
+ * The paragraph this segment starts authored an EMPTY `<a:pPr/>`. Only
2304
+ * meaningful on the first segment of a paragraph. The writer re-emits the
2305
+ * empty element when it has no paragraph property of its own to write, so
2306
+ * a rewritten slide keeps the markup PowerPoint wrote.
2307
+ */
2308
+ emptyParagraphPropertiesAuthored?: boolean;
2309
+ /**
2310
+ * The paragraph this segment starts has no run content and authored no
2311
+ * `a:endParaRPr` (a bare `<a:p/>`, possibly with an `a:pPr`). Only
2312
+ * meaningful on the first segment of a paragraph. It stops the writer
2313
+ * inventing an empty run or an `<a:endParaRPr lang="en-US"/>` stub for a
2314
+ * paragraph that still has no content when saved.
2315
+ */
2316
+ bareParagraph?: boolean;
2292
2317
  /**
2293
2318
  * Phonetic annotation text from `a:ruby > a:rt` (e.g. furigana, pinyin).
2294
2319
  * When present, the renderer should wrap the base text with an HTML `<ruby>` tag.
@@ -5778,10 +5803,17 @@ interface PptxSmartArtColorTransform extends PptxSmartArtDefinitionMetadata {
5778
5803
  * palette (see `PptxSmartArtNode.styleRole` and `applySmartArtRoleColors`)
5779
5804
  * instead of a generic cycled colour.
5780
5805
  */
5781
- roleColors?: Record<string, {
5782
- fill: string[];
5783
- line: string[];
5784
- }>;
5806
+ roleColors?: Record<string, SmartArtRoleColorList>;
5807
+ }
5808
+ /** One colour-transform `styleLbl`'s resolved colour lists. */
5809
+ interface SmartArtRoleColorList {
5810
+ fill: string[];
5811
+ line: string[];
5812
+ /**
5813
+ * `txFillClrLst`, when the label declares one (`revTx` -> `tx1`). A text
5814
+ * node's colour comes from here; see `smartart-merged-text-label`.
5815
+ */
5816
+ textFill?: string[];
5785
5817
  }
5786
5818
  /** Typed CT_StyleDefinition metadata and legacy rendering hint. */
5787
5819
  interface PptxSmartArtQuickStyle extends PptxSmartArtDefinitionMetadata {
@@ -6031,6 +6063,13 @@ interface PptxSmartArtDrawingShape extends PptxCustomPathProperties {
6031
6063
  * shape body.
6032
6064
  */
6033
6065
  text3d?: Text3DStyle;
6066
+ /**
6067
+ * The presentation style label (`presStyleLbl`: `node1`, `revTx`,
6068
+ * `sibTrans2D1`, ...) of the layout node a REGENERATED shape was laid out
6069
+ * from, when the layout engine reports it. Picks the quick-style label
6070
+ * whose 3D the shape takes; `undefined` on cached (parsed) shapes.
6071
+ */
6072
+ styleLabel?: string;
6034
6073
  }
6035
6074
  /**
6036
6075
  * Presentation layout variables from `dgm:prSet/dgm:presLayoutVars` (data model)
@@ -7883,6 +7922,84 @@ interface PptxThemeOption {
7883
7922
  name?: string;
7884
7923
  }
7885
7924
  //#endregion
7925
+ //#region src/core/types/animation-behavior.d.ts
7926
+ /** Timing of one behaviour, from its own `p:cBhvr/p:cTn`. */
7927
+ interface PptxAnimationBehaviorTiming {
7928
+ /** `p:cTn/@dur` in ms; absent when `indefinite` or unset. */
7929
+ durationMs?: number;
7930
+ /** Start offset in ms from `p:stCondLst/p:cond/@delay`, relative to the effect start. */
7931
+ delayMs?: number;
7932
+ /** `p:cTn/@accel` as a 0..1 fraction of the behaviour's duration. */
7933
+ accel?: number;
7934
+ /** `p:cTn/@decel` as a 0..1 fraction of the behaviour's duration. */
7935
+ decel?: number;
7936
+ /** `p:cTn/@autoRev`: play forward, then backward, doubling the active time. */
7937
+ autoReverse?: boolean;
7938
+ /** `p:cTn/@repeatCount` in plain iterations (OOXML stores thousandths). */
7939
+ repeatCount?: number;
7940
+ /** `p:cTn/@tmFilter`: the raw `"t,v; t,v; ..."` time remapping list. */
7941
+ tmFilter?: string;
7942
+ }
7943
+ interface BehaviorBase {
7944
+ /** Lower-cased `p:attrNameLst` entries, in document order. */
7945
+ attrNames: string[];
7946
+ /** `p:cBhvr/@additive` (`base`, `sum`, `repl`, `mult`, `none`). */
7947
+ additive?: string;
7948
+ timing: PptxAnimationBehaviorTiming;
7949
+ }
7950
+ /** `p:set`: a discrete value held from the behaviour's start. */
7951
+ interface PptxSetBehavior extends BehaviorBase {
7952
+ kind: 'set';
7953
+ value: string | number | boolean;
7954
+ }
7955
+ /** `p:anim`: a `p:tavLst` ramp or a `from`/`to`/`by` formula ramp. */
7956
+ interface PptxAnimBehavior extends BehaviorBase {
7957
+ kind: 'anim';
7958
+ calcMode?: 'discrete' | 'lin' | 'fmla';
7959
+ valueType?: string;
7960
+ from?: string;
7961
+ to?: string;
7962
+ by?: string;
7963
+ keyframes: PptxAnimationKeyframe[];
7964
+ }
7965
+ /** `p:animEffect`: a filter transition (`fade`, `wipe(down)`...). */
7966
+ interface PptxAnimEffectBehavior extends BehaviorBase {
7967
+ kind: 'animEffect';
7968
+ filter?: string;
7969
+ transition?: 'in' | 'out' | 'none';
7970
+ }
7971
+ /** A `p:animScale` factor pair (1 = unscaled) or a `p:animMotion` offset (slide fractions). */
7972
+ interface PptxBehaviorPoint {
7973
+ x: number;
7974
+ y: number;
7975
+ }
7976
+ /** `p:animScale`: scale factors as fractions (OOXML stores percent*1000, so `100000` = 1). */
7977
+ interface PptxAnimScaleBehavior extends BehaviorBase {
7978
+ kind: 'animScale';
7979
+ from?: PptxBehaviorPoint;
7980
+ to?: PptxBehaviorPoint;
7981
+ by?: PptxBehaviorPoint;
7982
+ zoomContents?: boolean;
7983
+ }
7984
+ /** `p:animRot`: rotation in degrees (OOXML stores 60000ths). */
7985
+ interface PptxAnimRotBehavior extends BehaviorBase {
7986
+ kind: 'animRot';
7987
+ from?: number;
7988
+ to?: number;
7989
+ by?: number;
7990
+ }
7991
+ /** `p:animMotion`: a path (slide fractions) or a `from`/`to`/`by` offset. */
7992
+ interface PptxAnimMotionBehavior extends BehaviorBase {
7993
+ kind: 'animMotion';
7994
+ path?: string;
7995
+ origin?: string;
7996
+ from?: PptxBehaviorPoint;
7997
+ to?: PptxBehaviorPoint;
7998
+ by?: PptxBehaviorPoint;
7999
+ }
8000
+ /** One behaviour child of an effect, tagged by its OOXML element. */
8001
+ type PptxAnimationBehavior = PptxSetBehavior | PptxAnimBehavior | PptxAnimEffectBehavior | PptxAnimScaleBehavior | PptxAnimRotBehavior | PptxAnimMotionBehavior;
8002
+ //#endregion
7886
8003
  //#region src/core/types/animation.d.ts
7887
8004
  /**
7888
8005
  * Built-in animation preset names used for entrance, exit, and emphasis effects.
@@ -8434,6 +8551,14 @@ interface PptxNativeAnimation {
8434
8551
  * shared playback (round-trip/typed-model only so far).
8435
8552
  */
8436
8553
  setAnimations?: PptxSetAnimation[];
8554
+ /**
8555
+ * Every behaviour child of this effect (`p:set`, `p:anim`, `p:animEffect`,
8556
+ * `p:animScale`, `p:animRot`, `p:animMotion`) with its own timing, as
8557
+ * authored. The single-valued fields above flatten a composed preset;
8558
+ * this keeps the whole tree so playback can follow what PowerPoint wrote
8559
+ * (see `animation-behavior-player` in `pptx-viewer-shared`).
8560
+ */
8561
+ behaviors?: PptxAnimationBehavior[];
8437
8562
  }
8438
8563
  /**
8439
8564
  * One `p:set` discrete (non-interpolated) attribute assignment composed
@@ -13403,6 +13528,8 @@ declare function presentationBaseName(sourceName: string | null | undefined, fal
13403
13528
  * bytes either way.
13404
13529
  */
13405
13530
  declare function savedPresentationFileName(sourceName: string | null | undefined, format?: SavedPresentationFormat): string;
13531
+ //#endregion
13532
+ //#region src/render/editor-keymap.d.ts
13406
13533
  /** A logical editor command produced by one key press. */
13407
13534
  type EditorKeyActionName = 'undo' | 'redo' | 'copy' | 'cut' | 'paste' | 'duplicate' | 'delete' | 'selectAll' | 'group' | 'ungroup' | 'nudge' | 'prevSlide' | 'nextSlide' | 'escape' | 'find' | 'findReplace' | 'toggleShortcuts' | 'alignLeft' | 'alignCenter' | 'alignRight' | 'alignJustify' | 'increaseFontSize' | 'decreaseFontSize' | 'copyFormat' | 'pasteFormat' | 'newSlide' | 'hyperlink' | 'clearFormatting' | 'cycleSelectionNext' | 'cycleSelectionPrev' | 'pasteSpecial';
13408
13535
  //#endregion
@@ -13580,6 +13707,13 @@ type ToolbarButtonId = 'share' | 'broadcast' | 'export' | 'undo' | 'redo' | 'rec
13580
13707
  /** A top-level ribbon tab. `record` intentionally shares its id with the quick-access Record button above: both surface the same recording feature, so hiding one hides the other. */
13581
13708
  type ToolbarTabId = 'file' | 'home' | 'insert' | 'draw' | 'design' | 'transitions' | 'animations' | 'slideShow' | 'record' | 'review' | 'view' | 'help';
13582
13709
  type ToolbarActionId = ToolbarButtonId | ToolbarTabId;
13710
+ /**
13711
+ * PowerPoint's contextual tabs: they join the tab row only while the
13712
+ * selection is of their kind (see `contextualTabsForElement` in
13713
+ * `ribbon-galleries/`). Kept apart from `ToolbarTabId` because they are not
13714
+ * part of the fixed tab order every binding renders.
13715
+ */
13716
+ type RibbonContextualTabId = 'shapeFormat' | 'pictureFormat' | 'tableDesign' | 'chartDesign' | 'smartArtDesign';
13583
13717
  //#endregion
13584
13718
  //#region src/render/options/viewer-options.d.ts
13585
13719
  /**
@@ -13783,6 +13917,511 @@ type FreeformToolKind = 'freeformShape' | 'curve';
13783
13917
  */
13784
13918
  type ViewerOptionsTabId = 'general' | 'proofing' | 'save' | 'language' | 'accessibility' | 'advanced' | 'ribbon' | 'quickAccess' | 'addIns' | 'trust';
13785
13919
  //#endregion
13920
+ //#region src/render/customization/ribbon-control-catalog.d.ts
13921
+ declare const RIBBON_CONTROL_CATALOG: {
13922
+ readonly home: {
13923
+ readonly clipboard: {
13924
+ readonly label: 'Clipboard';
13925
+ readonly controls: {
13926
+ readonly paste: 'Paste';
13927
+ readonly cut: 'Cut';
13928
+ readonly copy: 'Copy';
13929
+ readonly formatPainter: 'Format Painter';
13930
+ };
13931
+ };
13932
+ readonly slides: {
13933
+ readonly label: 'Slides';
13934
+ readonly controls: {
13935
+ readonly newSlide: 'New Slide';
13936
+ readonly layout: 'Layout';
13937
+ readonly reset: 'Reset';
13938
+ readonly section: 'Section';
13939
+ readonly slideTemplates: 'Slide templates';
13940
+ };
13941
+ };
13942
+ readonly font: {
13943
+ readonly label: 'Font';
13944
+ readonly controls: {
13945
+ readonly fontFamily: 'Font';
13946
+ readonly fontSize: 'Font Size';
13947
+ readonly increaseFontSize: 'Increase Font Size';
13948
+ readonly decreaseFontSize: 'Decrease Font Size';
13949
+ readonly clearFormatting: 'Clear All Formatting';
13950
+ readonly bold: 'Bold';
13951
+ readonly italic: 'Italic';
13952
+ readonly underline: 'Underline';
13953
+ readonly strikethrough: 'Strikethrough';
13954
+ readonly shadow: 'Text Shadow';
13955
+ readonly characterSpacing: 'Character Spacing';
13956
+ readonly changeCase: 'Change Case';
13957
+ readonly fontColor: 'Font Color';
13958
+ readonly highlightColor: 'Text Highlight Color';
13959
+ readonly superscript: 'Superscript';
13960
+ readonly subscript: 'Subscript';
13961
+ };
13962
+ };
13963
+ readonly paragraph: {
13964
+ readonly label: 'Paragraph';
13965
+ readonly controls: {
13966
+ readonly bullets: 'Bullets (toggle and gallery)';
13967
+ readonly numbering: 'Numbering (toggle and gallery)';
13968
+ readonly decreaseIndent: 'Decrease List Level';
13969
+ readonly increaseIndent: 'Increase List Level';
13970
+ readonly lineSpacing: 'Line Spacing';
13971
+ readonly alignLeft: 'Align Left';
13972
+ readonly alignCenter: 'Center';
13973
+ readonly alignRight: 'Align Right';
13974
+ readonly justify: 'Justify';
13975
+ readonly columns: 'Columns';
13976
+ readonly textDirection: 'Text Direction';
13977
+ readonly alignText: 'Align Text';
13978
+ };
13979
+ };
13980
+ readonly drawing: {
13981
+ readonly label: 'Drawing';
13982
+ readonly controls: {
13983
+ readonly shapes: 'Shapes';
13984
+ readonly arrange: 'Arrange';
13985
+ readonly quickStyles: 'Quick Styles (Shape Styles gallery)';
13986
+ readonly shapeFill: 'Shape Fill';
13987
+ readonly shapeOutline: 'Shape Outline';
13988
+ readonly shapeEffects: 'Shape Effects gallery';
13989
+ };
13990
+ };
13991
+ readonly arrange: {
13992
+ readonly label: 'Arrange';
13993
+ readonly controls: {
13994
+ readonly bringForward: 'Bring Forward';
13995
+ readonly sendBackward: 'Send Backward';
13996
+ readonly bringToFront: 'Bring to Front';
13997
+ readonly sendToBack: 'Send to Back';
13998
+ readonly flipHorizontal: 'Flip Horizontal';
13999
+ readonly flipVertical: 'Flip Vertical';
14000
+ readonly duplicate: 'Duplicate';
14001
+ readonly delete: 'Delete';
14002
+ readonly group: 'Group';
14003
+ readonly ungroup: 'Ungroup';
14004
+ readonly align: 'Align';
14005
+ readonly mergeShapes: 'Merge Shapes';
14006
+ readonly crop: 'Crop';
14007
+ readonly outlineWidth: 'Outline width';
14008
+ };
14009
+ };
14010
+ readonly editing: {
14011
+ readonly label: 'Editing';
14012
+ readonly controls: {
14013
+ readonly find: 'Find';
14014
+ readonly replace: 'Replace';
14015
+ readonly select: 'Select';
14016
+ };
14017
+ };
14018
+ };
14019
+ readonly insert: {
14020
+ readonly slides: {
14021
+ readonly label: 'Slides';
14022
+ readonly controls: {
14023
+ readonly newSlide: 'New Slide';
14024
+ };
14025
+ };
14026
+ readonly tables: {
14027
+ readonly label: 'Tables';
14028
+ readonly controls: {
14029
+ readonly table: 'Table';
14030
+ };
14031
+ };
14032
+ readonly images: {
14033
+ readonly label: 'Images';
14034
+ readonly controls: {
14035
+ readonly pictures: 'Pictures';
14036
+ };
14037
+ };
14038
+ readonly illustrations: {
14039
+ readonly label: 'Illustrations';
14040
+ readonly controls: {
14041
+ readonly shapes: 'Shapes';
14042
+ readonly smartArt: 'SmartArt';
14043
+ readonly chart: 'Chart';
14044
+ };
14045
+ };
14046
+ readonly links: {
14047
+ readonly label: 'Links';
14048
+ readonly controls: {
14049
+ readonly link: 'Link';
14050
+ readonly action: 'Action button';
14051
+ };
14052
+ };
14053
+ readonly comments: {
14054
+ readonly label: 'Comments';
14055
+ readonly controls: {
14056
+ readonly comment: 'Comment';
14057
+ };
14058
+ };
14059
+ readonly text: {
14060
+ readonly label: 'Text';
14061
+ readonly controls: {
14062
+ readonly textBox: 'Text Box';
14063
+ readonly field: 'Header, date, slide number field';
14064
+ };
14065
+ };
14066
+ readonly symbols: {
14067
+ readonly label: 'Symbols';
14068
+ readonly controls: {
14069
+ readonly equation: 'Equation';
14070
+ readonly symbol: 'Symbol';
14071
+ };
14072
+ };
14073
+ readonly media: {
14074
+ readonly label: 'Media';
14075
+ readonly controls: {
14076
+ readonly media: 'Video / Audio';
14077
+ };
14078
+ };
14079
+ };
14080
+ readonly draw: {
14081
+ readonly tools: {
14082
+ readonly label: 'Drawing Tools';
14083
+ readonly controls: {
14084
+ readonly select: 'Select';
14085
+ readonly pen: 'Pen';
14086
+ readonly highlighter: 'Highlighter';
14087
+ readonly eraser: 'Eraser';
14088
+ readonly penColor: 'Pen colour';
14089
+ readonly penWidth: 'Pen width';
14090
+ };
14091
+ };
14092
+ readonly convert: {
14093
+ readonly label: 'Convert';
14094
+ readonly controls: {
14095
+ readonly inkToShape: 'Ink to Shape';
14096
+ };
14097
+ };
14098
+ };
14099
+ readonly design: {
14100
+ readonly themes: {
14101
+ readonly label: 'Themes';
14102
+ readonly controls: {
14103
+ readonly browseThemes: 'Themes gallery';
14104
+ readonly editTheme: 'Edit theme';
14105
+ };
14106
+ };
14107
+ readonly variants: {
14108
+ readonly label: 'Variants';
14109
+ readonly controls: {
14110
+ readonly colors: 'Variants: Colors gallery';
14111
+ readonly fonts: 'Variants: Fonts gallery';
14112
+ };
14113
+ };
14114
+ readonly customize: {
14115
+ readonly label: 'Customize';
14116
+ readonly controls: {
14117
+ readonly slideSize: 'Slide Size';
14118
+ readonly formatBackground: 'Format Background';
14119
+ };
14120
+ };
14121
+ };
14122
+ readonly transitions: {
14123
+ readonly preview: {
14124
+ readonly label: 'Preview';
14125
+ readonly controls: {
14126
+ readonly preview: 'Preview';
14127
+ };
14128
+ };
14129
+ readonly transitionToThisSlide: {
14130
+ readonly label: 'Transition to This Slide';
14131
+ readonly controls: {
14132
+ readonly gallery: 'Transition gallery';
14133
+ readonly effectOptions: 'Effect Options';
14134
+ };
14135
+ };
14136
+ readonly timing: {
14137
+ readonly label: 'Timing';
14138
+ readonly controls: {
14139
+ readonly sound: 'Sound';
14140
+ readonly duration: 'Duration';
14141
+ readonly applyToAll: 'Apply To All';
14142
+ readonly advanceOnClick: 'On Mouse Click';
14143
+ readonly advanceAfter: 'After';
14144
+ };
14145
+ };
14146
+ };
14147
+ readonly animations: {
14148
+ readonly preview: {
14149
+ readonly label: 'Preview';
14150
+ readonly controls: {
14151
+ readonly preview: 'Preview';
14152
+ };
14153
+ };
14154
+ readonly animation: {
14155
+ readonly label: 'Animation';
14156
+ readonly controls: {
14157
+ readonly gallery: 'Animation gallery';
14158
+ readonly effectOptions: 'Effect Options';
14159
+ };
14160
+ };
14161
+ readonly motionPath: {
14162
+ readonly label: 'Motion Paths';
14163
+ readonly controls: {
14164
+ readonly gallery: 'Motion path gallery';
14165
+ };
14166
+ };
14167
+ readonly advancedAnimation: {
14168
+ readonly label: 'Advanced Animation';
14169
+ readonly controls: {
14170
+ readonly addAnimation: 'Add Animation';
14171
+ readonly animationPane: 'Animation Pane';
14172
+ readonly trigger: 'Trigger';
14173
+ readonly animationPainter: 'Animation Painter';
14174
+ readonly remove: 'Remove animation';
14175
+ };
14176
+ };
14177
+ readonly timing: {
14178
+ readonly label: 'Timing';
14179
+ readonly controls: {
14180
+ readonly start: 'Start';
14181
+ readonly duration: 'Duration';
14182
+ readonly delay: 'Delay';
14183
+ readonly reorder: 'Reorder';
14184
+ };
14185
+ };
14186
+ };
14187
+ readonly slideShow: {
14188
+ readonly startSlideShow: {
14189
+ readonly label: 'Start Slide Show';
14190
+ readonly controls: {
14191
+ readonly fromBeginning: 'From Beginning';
14192
+ readonly fromCurrent: 'From Current Slide';
14193
+ readonly customShow: 'Custom Slide Show';
14194
+ };
14195
+ };
14196
+ readonly present: {
14197
+ readonly label: 'Present';
14198
+ readonly controls: {
14199
+ readonly presenterView: 'Presenter View';
14200
+ readonly broadcast: 'Present Online';
14201
+ };
14202
+ };
14203
+ readonly setUp: {
14204
+ readonly label: 'Set Up';
14205
+ readonly controls: {
14206
+ readonly setUpSlideShow: 'Set Up Slide Show';
14207
+ readonly hideSlide: 'Hide Slide';
14208
+ readonly rehearseTimings: 'Rehearse Timings';
14209
+ readonly record: 'Record';
14210
+ readonly rehearseWithCoach: 'Rehearse with Coach';
14211
+ };
14212
+ };
14213
+ readonly captions: {
14214
+ readonly label: 'Captions & Subtitles';
14215
+ readonly controls: {
14216
+ readonly subtitles: 'Always Use Subtitles';
14217
+ readonly subtitleSettings: 'Subtitle Settings';
14218
+ };
14219
+ };
14220
+ };
14221
+ readonly record: {
14222
+ readonly camera: {
14223
+ readonly label: 'Camera';
14224
+ readonly controls: {
14225
+ readonly cameo: 'Cameo';
14226
+ };
14227
+ };
14228
+ readonly record: {
14229
+ readonly label: 'Record';
14230
+ readonly controls: {
14231
+ readonly fromBeginning: 'From Beginning';
14232
+ readonly fromCurrent: 'From Current Slide';
14233
+ };
14234
+ };
14235
+ readonly manage: {
14236
+ readonly label: 'Manage';
14237
+ readonly controls: {
14238
+ readonly clear: 'Clear';
14239
+ readonly reset: 'Reset to Cameo';
14240
+ };
14241
+ };
14242
+ readonly help: {
14243
+ readonly label: 'Help';
14244
+ readonly controls: {
14245
+ readonly learnMore: 'Learn more';
14246
+ };
14247
+ };
14248
+ };
14249
+ readonly review: {
14250
+ readonly proofing: {
14251
+ readonly label: 'Proofing';
14252
+ readonly controls: {
14253
+ readonly spelling: 'Spelling';
14254
+ readonly thesaurus: 'Thesaurus';
14255
+ };
14256
+ };
14257
+ readonly accessibility: {
14258
+ readonly label: 'Accessibility';
14259
+ readonly controls: {
14260
+ readonly check: 'Check Accessibility';
14261
+ };
14262
+ };
14263
+ readonly language: {
14264
+ readonly label: 'Language';
14265
+ readonly controls: {
14266
+ readonly translate: 'Translate';
14267
+ };
14268
+ };
14269
+ readonly comments: {
14270
+ readonly label: 'Comments';
14271
+ readonly controls: {
14272
+ readonly newComment: 'New Comment';
14273
+ readonly delete: 'Delete';
14274
+ readonly previous: 'Previous';
14275
+ readonly next: 'Next';
14276
+ readonly showComments: 'Show Comments';
14277
+ };
14278
+ };
14279
+ readonly compare: {
14280
+ readonly label: 'Compare';
14281
+ readonly controls: {
14282
+ readonly compare: 'Compare';
14283
+ readonly markAllRead: 'Mark all read';
14284
+ };
14285
+ };
14286
+ readonly protect: {
14287
+ readonly label: 'Protect';
14288
+ readonly controls: {
14289
+ readonly readOnly: 'Read-only';
14290
+ readonly restrictPermission: 'Restrict Permission';
14291
+ };
14292
+ };
14293
+ readonly ink: {
14294
+ readonly label: 'Ink';
14295
+ readonly controls: {
14296
+ readonly hideInk: 'Hide Ink';
14297
+ };
14298
+ };
14299
+ };
14300
+ readonly view: {
14301
+ readonly presentationViews: {
14302
+ readonly label: 'Presentation Views';
14303
+ readonly controls: {
14304
+ readonly normal: 'Normal';
14305
+ readonly outline: 'Outline View';
14306
+ readonly slideSorter: 'Slide Sorter';
14307
+ readonly notesPage: 'Notes Page';
14308
+ readonly readingView: 'Reading View';
14309
+ };
14310
+ };
14311
+ readonly masterViews: {
14312
+ readonly label: 'Master Views';
14313
+ readonly controls: {
14314
+ readonly slideMaster: 'Slide Master';
14315
+ readonly handoutMaster: 'Handout Master';
14316
+ readonly notesMaster: 'Notes Master';
14317
+ };
14318
+ };
14319
+ readonly show: {
14320
+ readonly label: 'Show';
14321
+ readonly controls: {
14322
+ readonly ruler: 'Ruler';
14323
+ readonly gridlines: 'Gridlines';
14324
+ readonly guides: 'Guides';
14325
+ readonly snapToGrid: 'Snap to Grid';
14326
+ readonly snapToShape: 'Snap to Shape';
14327
+ readonly addGuide: 'Add horizontal / vertical guide';
14328
+ readonly selectionPane: 'Selection Pane';
14329
+ readonly eyedropper: 'Eyedropper';
14330
+ readonly notes: 'Notes';
14331
+ };
14332
+ };
14333
+ readonly zoom: {
14334
+ readonly label: 'Zoom';
14335
+ readonly controls: {
14336
+ readonly zoom: 'Zoom';
14337
+ readonly fitToWindow: 'Fit to Window';
14338
+ };
14339
+ };
14340
+ readonly window: {
14341
+ readonly label: 'Window';
14342
+ readonly controls: {
14343
+ readonly templateEditing: 'Edit template elements';
14344
+ readonly macros: 'Macros';
14345
+ };
14346
+ };
14347
+ };
14348
+ readonly help: {
14349
+ readonly help: {
14350
+ readonly label: 'Help';
14351
+ readonly controls: {
14352
+ readonly options: 'Options';
14353
+ readonly keyboardShortcuts: 'Keyboard shortcuts';
14354
+ readonly accessibility: 'Accessibility checker';
14355
+ };
14356
+ };
14357
+ };
14358
+ readonly shapeFormat: {
14359
+ readonly shapeStyles: {
14360
+ readonly label: 'Shape Styles';
14361
+ readonly controls: {
14362
+ readonly gallery: 'Shape Styles gallery';
14363
+ readonly shapeEffects: 'Shape Effects gallery';
14364
+ };
14365
+ };
14366
+ readonly wordArtStyles: {
14367
+ readonly label: 'WordArt Styles';
14368
+ readonly controls: {
14369
+ readonly gallery: 'WordArt Styles gallery';
14370
+ };
14371
+ };
14372
+ };
14373
+ readonly pictureFormat: {
14374
+ readonly pictureStyles: {
14375
+ readonly label: 'Picture Styles';
14376
+ readonly controls: {
14377
+ readonly gallery: 'Picture Styles gallery';
14378
+ readonly pictureEffects: 'Picture Effects gallery';
14379
+ };
14380
+ };
14381
+ };
14382
+ readonly tableDesign: {
14383
+ readonly tableStyles: {
14384
+ readonly label: 'Table Styles';
14385
+ readonly controls: {
14386
+ readonly gallery: 'Table Styles gallery';
14387
+ };
14388
+ };
14389
+ };
14390
+ readonly chartDesign: {
14391
+ readonly chartLayouts: {
14392
+ readonly label: 'Chart Layouts';
14393
+ readonly controls: {
14394
+ readonly quickLayout: 'Quick Layout gallery';
14395
+ };
14396
+ };
14397
+ readonly chartStyles: {
14398
+ readonly label: 'Chart Styles';
14399
+ readonly controls: {
14400
+ readonly changeColors: 'Change Colors gallery';
14401
+ readonly gallery: 'Chart Styles gallery';
14402
+ };
14403
+ };
14404
+ };
14405
+ readonly smartArtDesign: {
14406
+ readonly smartArtStyles: {
14407
+ readonly label: 'SmartArt Styles';
14408
+ readonly controls: {
14409
+ readonly changeColors: 'Change Colors gallery';
14410
+ readonly gallery: 'SmartArt Styles gallery';
14411
+ };
14412
+ };
14413
+ };
14414
+ };
14415
+ //#endregion
14416
+ //#region src/render/customization/ribbon-control-ids.d.ts
14417
+ type Catalog = typeof RIBBON_CONTROL_CATALOG;
14418
+ /** `<tab>.<group>`, for example `home.font`. */
14419
+ type RibbonGroupId = { [T in keyof Catalog]: { [G in keyof Catalog[T]]: `${T & string}.${G & string}`; }[keyof Catalog[T]]; }[keyof Catalog];
14420
+ /** `<tab>.<group>.<control>`, for example `home.font.bold`. */
14421
+ type RibbonControlId = { [T in keyof Catalog]: { [G in keyof Catalog[T]]: Catalog[T][G] extends {
14422
+ controls: infer C;
14423
+ } ? `${T & string}.${G & string}.${keyof C & string}` : never; }[keyof Catalog[T]]; }[keyof Catalog];
14424
+ //#endregion
13786
14425
  //#region src/render/customization/customization-types.d.ts
13787
14426
  /** Keys of an options group whose value is a primitive (not an array). */
13788
14427
  type PrimitiveKeys<T> = { [K in keyof T]: T[K] extends ViewerOptionPrimitive ? K : never; }[keyof T] & string;
@@ -13807,10 +14446,20 @@ type OptionsSectionId = `${ViewerOptionsTabId}.${string}`;
13807
14446
  type OptionsSettingValues = Partial<Record<OptionsSettingId, ViewerOptionPrimitive>>;
13808
14447
  /** Ribbon and toolbar customisation. */
13809
14448
  interface RibbonCustomization {
13810
- /** Ribbon tabs to remove (the File tab included, unlike Customize Ribbon). */
13811
- hiddenTabs?: readonly ToolbarTabId[];
13812
- /** Top-level toolbar buttons / control clusters to remove. */
13813
- hiddenButtons?: readonly ToolbarButtonId[];
14449
+ /**
14450
+ * Ribbon tabs to remove (the File tab included, unlike Customize Ribbon),
14451
+ * and contextual tabs (`shapeFormat`, `pictureFormat`, ...) that should
14452
+ * never appear.
14453
+ */
14454
+ hiddenTabs?: readonly (ToolbarTabId | RibbonContextualTabId)[];
14455
+ /** Groups inside a tab to remove, as `<tab>.<group>` (`home.font`). */
14456
+ hiddenGroups?: readonly RibbonGroupId[];
14457
+ /**
14458
+ * Controls to remove: a top-level toolbar button / control cluster
14459
+ * (`share`, `zoom`, ...) or any ribbon control as
14460
+ * `<tab>.<group>.<control>` (`home.font.bold`).
14461
+ */
14462
+ hiddenButtons?: readonly (ToolbarButtonId | RibbonControlId)[];
13814
14463
  }
13815
14464
  /** File > Options (the Settings dialog) customisation. */
13816
14465
  interface OptionsCustomization {
@@ -13948,6 +14597,12 @@ interface ResolvedKeyboardCustomization {
13948
14597
  /** The normalised, set-based view of a customisation. Treat as immutable. */
13949
14598
  interface ResolvedCustomization {
13950
14599
  hiddenActions: ReadonlySet<ToolbarActionId>;
14600
+ /** Contextual tabs (`shapeFormat`, ...) the host never wants shown. */
14601
+ hiddenContextualTabs: ReadonlySet<RibbonContextualTabId>;
14602
+ /** Catalogued ribbon groups to hide (`ribbon.hiddenGroups`). */
14603
+ hiddenRibbonGroups: ReadonlySet<RibbonGroupId>;
14604
+ /** Catalogued ribbon controls to hide (the `<tab>.<group>.<control>` part of `ribbon.hiddenButtons`). */
14605
+ hiddenRibbonControls: ReadonlySet<RibbonControlId>;
13951
14606
  hiddenOptionsPages: ReadonlySet<OptionsPageId>;
13952
14607
  hiddenOptionsSections: ReadonlySet<OptionsSectionId>;
13953
14608
  hiddenSettings: ReadonlySet<OptionsSettingId>;
@@ -13978,10 +14633,18 @@ interface ViewerCustomizationApi {
13978
14633
  updateCustomization(patch: ViewerCustomization): void;
13979
14634
  /** Drop every customisation, back to the stock UI. */
13980
14635
  resetCustomization(): void;
13981
- hideRibbonTab(tab: ToolbarTabId): void;
13982
- showRibbonTab(tab: ToolbarTabId): void;
13983
- hideToolbarButton(button: ToolbarButtonId): void;
13984
- showToolbarButton(button: ToolbarButtonId): void;
14636
+ /** Hide a fixed tab, or stop a contextual tab (`shapeFormat`, ...) from appearing. */
14637
+ hideRibbonTab(tab: ToolbarTabId | RibbonContextualTabId): void;
14638
+ showRibbonTab(tab: ToolbarTabId | RibbonContextualTabId): void;
14639
+ /** Hide a group inside a tab (`home.font`). */
14640
+ hideRibbonGroup(group: RibbonGroupId): void;
14641
+ showRibbonGroup(group: RibbonGroupId): void;
14642
+ /** Hide a top-level toolbar button or any ribbon control (`home.font.bold`). */
14643
+ hideToolbarButton(button: ToolbarButtonId | RibbonControlId): void;
14644
+ showToolbarButton(button: ToolbarButtonId | RibbonControlId): void;
14645
+ /** Alias of `hideToolbarButton` for a ribbon control id. */
14646
+ hideRibbonControl(control: RibbonControlId): void;
14647
+ showRibbonControl(control: RibbonControlId): void;
13985
14648
  hideOptionsPage(page: OptionsPageId): void;
13986
14649
  showOptionsPage(page: OptionsPageId): void;
13987
14650
  hideOptionsSection(section: OptionsSectionId): void;
@@ -14580,8 +15243,8 @@ interface PowerPointViewerProps extends ViewportFitOptions {
14580
15243
  smartArt3D?: boolean;
14581
15244
  /**
14582
15245
  * Opt in to the interactive Three.js surface-chart renderer. When `true`,
14583
- * `surface`/`surface3D` charts render as a camera-orbitable WebGL mesh
14584
- * (drag to rotate, scroll to zoom) instead of the static SVG isometric
15246
+ * `surface`/`surface3D` charts render as a WebGL mesh
15247
+ * instead of the static SVG isometric
14585
15248
  * projection. Chart marks are not selectable/draggable in this mode.
14586
15249
  * Requires the optional `three` peer dependency; when it is not installed
14587
15250
  * (or the chart has no plottable grid), the viewer transparently falls back
@@ -14590,8 +15253,7 @@ interface PowerPointViewerProps extends ViewportFitOptions {
14590
15253
  surfaceChart3D?: boolean;
14591
15254
  /**
14592
15255
  * Opt in to the interactive Three.js bar3D-chart renderer. When `true`,
14593
- * `bar3D` charts render as camera-orbitable real box meshes (drag to
14594
- * rotate, scroll to zoom) instead of the flat SVG oblique-projection
15256
+ * `bar3D` charts render as real box meshes instead of the flat SVG oblique-projection
14595
15257
  * illusion. Chart marks are not selectable/draggable in this mode.
14596
15258
  * Requires the optional `three` peer dependency; when it is not installed
14597
15259
  * (or the chart has no plottable grid, or it is a horizontal 3-D Bar), the
@@ -14601,8 +15263,8 @@ interface PowerPointViewerProps extends ViewportFitOptions {
14601
15263
  barChart3D?: boolean;
14602
15264
  /**
14603
15265
  * Opt in to the interactive Three.js line3D-chart renderer. When `true`,
14604
- * `line3D` charts render as a camera-orbitable real tube-path mesh per
14605
- * series, one per depth ("series") plane (drag to rotate, scroll to zoom),
15266
+ * `line3D` charts render as a real tube-path mesh per
15267
+ * series, one per depth ("series") plane,
14606
15268
  * instead of the flat SVG oblique-projection illusion. Chart marks are not
14607
15269
  * selectable/draggable in this mode. Requires the optional `three` peer
14608
15270
  * dependency; when it is not installed (or the chart has no plottable
@@ -14612,9 +15274,8 @@ interface PowerPointViewerProps extends ViewportFitOptions {
14612
15274
  lineChart3D?: boolean;
14613
15275
  /**
14614
15276
  * Opt in to the interactive Three.js area3D-chart renderer. When `true`,
14615
- * `area3D` charts render as a camera-orbitable real tube path + filled
14616
- * ribbon mesh per series, one per depth ("series") plane (drag to rotate,
14617
- * scroll to zoom), instead of the flat SVG oblique-projection illusion.
15277
+ * `area3D` charts render as a real tube path + filled
15278
+ * ribbon mesh per series, one per depth ("series") plane, instead of the flat SVG oblique-projection illusion.
14618
15279
  * Chart marks are not selectable/draggable in this mode. Requires the
14619
15280
  * optional `three` peer dependency; when it is not installed (or the chart
14620
15281
  * has no plottable grid), the viewer transparently falls back to the flat
@@ -14623,8 +15284,7 @@ interface PowerPointViewerProps extends ViewportFitOptions {
14623
15284
  areaChart3D?: boolean;
14624
15285
  /**
14625
15286
  * Opt in to the interactive Three.js pie3D-chart renderer. When `true`,
14626
- * `pie3D` charts render as camera-orbitable real wedge meshes (drag to
14627
- * rotate, scroll to zoom) instead of the flat SVG oblique-projection
15287
+ * `pie3D` charts render as real wedge meshes instead of the flat SVG oblique-projection
14628
15288
  * illusion. Chart marks are not selectable/draggable in this mode.
14629
15289
  * Requires the optional `three` peer dependency; when it is not installed
14630
15290
  * (or the chart has no plottable series), the viewer transparently falls