pptx-react-viewer 3.19.1 → 3.20.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 (186) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/{AiChatPanel-DLADHD56.js → AiChatPanel-NBKG2CWE.js} +25 -25
  3. package/dist/AiChatPanel-NBKG2CWE.js.br +0 -0
  4. package/dist/AiChatPanel-NBKG2CWE.js.gz +0 -0
  5. package/dist/{AiChatPanel-MSALNPYW.mjs → AiChatPanel-OXCJVBUS.mjs} +4 -4
  6. package/dist/AiChatPanel-OXCJVBUS.mjs.br +0 -0
  7. package/dist/AiChatPanel-OXCJVBUS.mjs.gz +0 -0
  8. package/dist/{Area3DChartScene-53ZVPYKG.mjs → Area3DChartScene-5M3LEY6M.mjs} +1 -1
  9. package/dist/Area3DChartScene-5M3LEY6M.mjs.br +0 -0
  10. package/dist/Area3DChartScene-5M3LEY6M.mjs.gz +0 -0
  11. package/dist/{Area3DChartScene-BQQHOYRS.js → Area3DChartScene-7QPDPVR6.js} +2 -2
  12. package/dist/Area3DChartScene-7QPDPVR6.js.br +0 -0
  13. package/dist/Area3DChartScene-7QPDPVR6.js.gz +0 -0
  14. package/dist/{Bar3DChartScene-IN67ZH3P.mjs → Bar3DChartScene-NNSTLO4V.mjs} +1 -1
  15. package/dist/Bar3DChartScene-NNSTLO4V.mjs.br +0 -0
  16. package/dist/Bar3DChartScene-NNSTLO4V.mjs.gz +0 -0
  17. package/dist/{Bar3DChartScene-PNQOIOIH.js → Bar3DChartScene-TAMPS6ZS.js} +2 -2
  18. package/dist/Bar3DChartScene-TAMPS6ZS.js.br +0 -0
  19. package/dist/Bar3DChartScene-TAMPS6ZS.js.gz +0 -0
  20. package/dist/{Line3DChartScene-4SQUUAOW.mjs → Line3DChartScene-7S2DD45T.mjs} +1 -1
  21. package/dist/Line3DChartScene-7S2DD45T.mjs.br +0 -0
  22. package/dist/Line3DChartScene-7S2DD45T.mjs.gz +0 -0
  23. package/dist/{Line3DChartScene-CFSTMTFH.js → Line3DChartScene-T4SH37NU.js} +2 -2
  24. package/dist/Line3DChartScene-T4SH37NU.js.br +0 -0
  25. package/dist/Line3DChartScene-T4SH37NU.js.gz +0 -0
  26. package/dist/{Model3DScene-TA55BJY7.mjs → Model3DScene-CXRM7D3J.mjs} +1 -1
  27. package/dist/Model3DScene-CXRM7D3J.mjs.br +0 -0
  28. package/dist/Model3DScene-CXRM7D3J.mjs.gz +0 -0
  29. package/dist/{Model3DScene-DXNAYZ6P.js → Model3DScene-IDRM7EZD.js} +2 -2
  30. package/dist/Model3DScene-IDRM7EZD.js.br +0 -0
  31. package/dist/Model3DScene-IDRM7EZD.js.gz +0 -0
  32. package/dist/{PieChart3DScene-NCBKTWAO.js → PieChart3DScene-66Y5UP64.js} +2 -2
  33. package/dist/PieChart3DScene-66Y5UP64.js.br +0 -0
  34. package/dist/PieChart3DScene-66Y5UP64.js.gz +0 -0
  35. package/dist/{PieChart3DScene-TQOCHJOY.mjs → PieChart3DScene-VSCSEY2G.mjs} +1 -1
  36. package/dist/PieChart3DScene-VSCSEY2G.mjs.br +0 -0
  37. package/dist/PieChart3DScene-VSCSEY2G.mjs.gz +0 -0
  38. package/dist/{SurfaceChart3DScene-VA6IRLFG.js → SurfaceChart3DScene-6J4A6XUH.js} +2 -2
  39. package/dist/SurfaceChart3DScene-6J4A6XUH.js.br +0 -0
  40. package/dist/SurfaceChart3DScene-6J4A6XUH.js.gz +0 -0
  41. package/dist/{SurfaceChart3DScene-7CSF2GPT.mjs → SurfaceChart3DScene-NSHDK657.mjs} +1 -1
  42. package/dist/SurfaceChart3DScene-NSHDK657.mjs.br +0 -0
  43. package/dist/SurfaceChart3DScene-NSHDK657.mjs.gz +0 -0
  44. package/dist/{chunk-Z3KMGLXL.mjs → chunk-2IBDKMY2.mjs} +506 -325
  45. package/dist/chunk-2IBDKMY2.mjs.br +0 -0
  46. package/dist/chunk-2IBDKMY2.mjs.gz +0 -0
  47. package/dist/{chunk-DNQ3PGGU.mjs → chunk-5PDGHTRJ.mjs} +32 -28
  48. package/dist/chunk-5PDGHTRJ.mjs.br +0 -0
  49. package/dist/chunk-5PDGHTRJ.mjs.gz +0 -0
  50. package/dist/{chunk-ZHPBQVBK.js → chunk-7SFA4A2E.js} +1515 -1334
  51. package/dist/chunk-7SFA4A2E.js.br +0 -0
  52. package/dist/chunk-7SFA4A2E.js.gz +0 -0
  53. package/dist/{chunk-MQUTXOET.mjs → chunk-AVTH627G.mjs} +11 -0
  54. package/dist/chunk-AVTH627G.mjs.br +0 -0
  55. package/dist/chunk-AVTH627G.mjs.gz +0 -0
  56. package/dist/{chunk-LBKKSCVS.mjs → chunk-AYH6XSE7.mjs} +1 -1
  57. package/dist/chunk-AYH6XSE7.mjs.br +0 -0
  58. package/dist/chunk-AYH6XSE7.mjs.gz +0 -0
  59. package/dist/{chunk-4WUGOCYU.js → chunk-DW66NEST.js} +191 -186
  60. package/dist/chunk-DW66NEST.js.br +0 -0
  61. package/dist/chunk-DW66NEST.js.gz +0 -0
  62. package/dist/{chunk-RCUPQJVY.mjs → chunk-FE4L26FT.mjs} +12 -7
  63. package/dist/chunk-FE4L26FT.mjs.br +0 -0
  64. package/dist/chunk-FE4L26FT.mjs.gz +0 -0
  65. package/dist/{chunk-BRJN3ZMG.js → chunk-I5LPYESF.js} +11 -0
  66. package/dist/chunk-I5LPYESF.js.br +0 -0
  67. package/dist/chunk-I5LPYESF.js.gz +0 -0
  68. package/dist/{chunk-3KVLOKA6.mjs → chunk-N4FLKADC.mjs} +721 -279
  69. package/dist/chunk-N4FLKADC.mjs.br +0 -0
  70. package/dist/chunk-N4FLKADC.mjs.gz +0 -0
  71. package/dist/{chunk-EJSRXEXA.js → chunk-NGWA6L3N.js} +726 -278
  72. package/dist/chunk-NGWA6L3N.js.br +0 -0
  73. package/dist/chunk-NGWA6L3N.js.gz +0 -0
  74. package/dist/{chunk-AZEDCITO.js → chunk-W3RBIIZW.js} +816 -812
  75. package/dist/chunk-W3RBIIZW.js.br +0 -0
  76. package/dist/chunk-W3RBIIZW.js.gz +0 -0
  77. package/dist/{chunk-YVZKXCML.js → chunk-WRXXPCZ7.js} +5 -5
  78. package/dist/chunk-WRXXPCZ7.js.br +0 -0
  79. package/dist/chunk-WRXXPCZ7.js.gz +0 -0
  80. package/dist/i18n/de.cjs +11 -0
  81. package/dist/i18n/de.cjs.br +0 -0
  82. package/dist/i18n/de.cjs.gz +0 -0
  83. package/dist/i18n/de.mjs +11 -0
  84. package/dist/i18n/de.mjs.br +0 -0
  85. package/dist/i18n/de.mjs.gz +0 -0
  86. package/dist/i18n/es.cjs +11 -0
  87. package/dist/i18n/es.cjs.br +0 -0
  88. package/dist/i18n/es.cjs.gz +0 -0
  89. package/dist/i18n/es.mjs +11 -0
  90. package/dist/i18n/es.mjs.br +0 -0
  91. package/dist/i18n/es.mjs.gz +0 -0
  92. package/dist/i18n/fr.cjs +11 -0
  93. package/dist/i18n/fr.cjs.br +0 -0
  94. package/dist/i18n/fr.cjs.gz +0 -0
  95. package/dist/i18n/fr.mjs +11 -0
  96. package/dist/i18n/fr.mjs.br +0 -0
  97. package/dist/i18n/fr.mjs.gz +0 -0
  98. package/dist/i18n/zh-CN.cjs +11 -0
  99. package/dist/i18n/zh-CN.cjs.br +0 -0
  100. package/dist/i18n/zh-CN.cjs.gz +0 -0
  101. package/dist/i18n/zh-CN.mjs +11 -0
  102. package/dist/i18n/zh-CN.mjs.br +0 -0
  103. package/dist/i18n/zh-CN.mjs.gz +0 -0
  104. package/dist/i18n.js +4 -4
  105. package/dist/i18n.js.br +0 -0
  106. package/dist/i18n.js.gz +0 -0
  107. package/dist/i18n.mjs +1 -1
  108. package/dist/i18n.mjs.br +0 -0
  109. package/dist/i18n.mjs.gz +0 -0
  110. package/dist/index.d.ts +75 -0
  111. package/dist/index.js +48 -48
  112. package/dist/index.js.br +0 -0
  113. package/dist/index.js.gz +0 -0
  114. package/dist/index.mjs +6 -6
  115. package/dist/index.mjs.br +0 -0
  116. package/dist/index.mjs.gz +0 -0
  117. package/dist/internals.d.ts +75 -0
  118. package/dist/internals.js +105 -105
  119. package/dist/internals.js.br +0 -0
  120. package/dist/internals.js.gz +0 -0
  121. package/dist/internals.mjs +4 -4
  122. package/dist/internals.mjs.br +0 -0
  123. package/dist/internals.mjs.gz +0 -0
  124. package/dist/pptx-viewer.css +1 -1
  125. package/dist/pptx-viewer.css.br +0 -0
  126. package/dist/pptx-viewer.css.gz +0 -0
  127. package/dist/viewer/index.d.ts +75 -0
  128. package/dist/viewer/index.js +27 -27
  129. package/dist/viewer/index.js.br +0 -0
  130. package/dist/viewer/index.js.gz +0 -0
  131. package/dist/viewer/index.mjs +6 -6
  132. package/dist/viewer/index.mjs.br +0 -0
  133. package/dist/viewer/index.mjs.gz +0 -0
  134. package/package.json +1 -1
  135. package/dist/AiChatPanel-DLADHD56.js.br +0 -0
  136. package/dist/AiChatPanel-DLADHD56.js.gz +0 -0
  137. package/dist/AiChatPanel-MSALNPYW.mjs.br +0 -0
  138. package/dist/AiChatPanel-MSALNPYW.mjs.gz +0 -0
  139. package/dist/Area3DChartScene-53ZVPYKG.mjs.br +0 -0
  140. package/dist/Area3DChartScene-53ZVPYKG.mjs.gz +0 -0
  141. package/dist/Area3DChartScene-BQQHOYRS.js.br +0 -0
  142. package/dist/Area3DChartScene-BQQHOYRS.js.gz +0 -0
  143. package/dist/Bar3DChartScene-IN67ZH3P.mjs.br +0 -0
  144. package/dist/Bar3DChartScene-IN67ZH3P.mjs.gz +0 -0
  145. package/dist/Bar3DChartScene-PNQOIOIH.js.br +0 -0
  146. package/dist/Bar3DChartScene-PNQOIOIH.js.gz +0 -0
  147. package/dist/Line3DChartScene-4SQUUAOW.mjs.br +0 -0
  148. package/dist/Line3DChartScene-4SQUUAOW.mjs.gz +0 -0
  149. package/dist/Line3DChartScene-CFSTMTFH.js.br +0 -0
  150. package/dist/Line3DChartScene-CFSTMTFH.js.gz +0 -0
  151. package/dist/Model3DScene-DXNAYZ6P.js.br +0 -0
  152. package/dist/Model3DScene-DXNAYZ6P.js.gz +0 -0
  153. package/dist/Model3DScene-TA55BJY7.mjs.br +0 -0
  154. package/dist/Model3DScene-TA55BJY7.mjs.gz +0 -0
  155. package/dist/PieChart3DScene-NCBKTWAO.js.br +0 -0
  156. package/dist/PieChart3DScene-NCBKTWAO.js.gz +0 -0
  157. package/dist/PieChart3DScene-TQOCHJOY.mjs.br +0 -0
  158. package/dist/PieChart3DScene-TQOCHJOY.mjs.gz +0 -0
  159. package/dist/SurfaceChart3DScene-7CSF2GPT.mjs.br +0 -0
  160. package/dist/SurfaceChart3DScene-7CSF2GPT.mjs.gz +0 -0
  161. package/dist/SurfaceChart3DScene-VA6IRLFG.js.br +0 -0
  162. package/dist/SurfaceChart3DScene-VA6IRLFG.js.gz +0 -0
  163. package/dist/chunk-3KVLOKA6.mjs.br +0 -0
  164. package/dist/chunk-3KVLOKA6.mjs.gz +0 -0
  165. package/dist/chunk-4WUGOCYU.js.br +0 -0
  166. package/dist/chunk-4WUGOCYU.js.gz +0 -0
  167. package/dist/chunk-AZEDCITO.js.br +0 -0
  168. package/dist/chunk-AZEDCITO.js.gz +0 -0
  169. package/dist/chunk-BRJN3ZMG.js.br +0 -0
  170. package/dist/chunk-BRJN3ZMG.js.gz +0 -0
  171. package/dist/chunk-DNQ3PGGU.mjs.br +0 -0
  172. package/dist/chunk-DNQ3PGGU.mjs.gz +0 -0
  173. package/dist/chunk-EJSRXEXA.js.br +0 -0
  174. package/dist/chunk-EJSRXEXA.js.gz +0 -0
  175. package/dist/chunk-LBKKSCVS.mjs.br +0 -0
  176. package/dist/chunk-LBKKSCVS.mjs.gz +0 -0
  177. package/dist/chunk-MQUTXOET.mjs.br +0 -0
  178. package/dist/chunk-MQUTXOET.mjs.gz +0 -0
  179. package/dist/chunk-RCUPQJVY.mjs.br +0 -0
  180. package/dist/chunk-RCUPQJVY.mjs.gz +0 -0
  181. package/dist/chunk-YVZKXCML.js.br +0 -0
  182. package/dist/chunk-YVZKXCML.js.gz +0 -0
  183. package/dist/chunk-Z3KMGLXL.mjs.br +0 -0
  184. package/dist/chunk-Z3KMGLXL.mjs.gz +0 -0
  185. package/dist/chunk-ZHPBQVBK.js.br +0 -0
  186. package/dist/chunk-ZHPBQVBK.js.gz +0 -0
package/dist/index.js.br CHANGED
Binary file
package/dist/index.js.gz CHANGED
Binary file
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
- export { PowerPointViewer, SlideCanvas, SlideTemplateGalleryDialog, SlideTemplatePreview, Toolbar, ViewerThemeProvider, useViewerTheme } from './chunk-Z3KMGLXL.mjs';
2
- import './chunk-LBKKSCVS.mjs';
3
- export { renderToCanvas, useViewerBuildingBlocks } from './chunk-DNQ3PGGU.mjs';
4
- export { getAnimationInitialStyle } from './chunk-RCUPQJVY.mjs';
5
- export { AVATAR_COLOR_SWATCHES, DEFAULT_VIEWER_PROFILE, PPTX_OPEN_ACCEPT, PRESENTATION_OPEN_EXTENSIONS, SLIDE_TEMPLATES, THEME_CATALOG, VIEWER_PREFS_STORAGE_KEY, buildSlideTemplateContent, buildSlideTemplateSlide, clearAllLocalViewerData, clearStoredViewerPrefs, createImageElementFromFile, defaultCssVars, defaultRadius, defaultThemeColors, getLocalStorageUsageSummary, isLegacyBinaryPresentation, isSupportedPresentationFile, presentationBaseName, readStoredViewerPrefs, resolveProfileInitial, resolveThemeCatalogEntry, saveViewerProfile, savedPresentationFileName, themeToCssVars, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, writeStoredViewerPrefs } from './chunk-3KVLOKA6.mjs';
6
- export { LOCALE_CATALOG } from './chunk-MQUTXOET.mjs';
1
+ export { PowerPointViewer, SlideCanvas, SlideTemplateGalleryDialog, SlideTemplatePreview, Toolbar, ViewerThemeProvider, useViewerTheme } from './chunk-2IBDKMY2.mjs';
2
+ import './chunk-AYH6XSE7.mjs';
3
+ export { renderToCanvas, useViewerBuildingBlocks } from './chunk-5PDGHTRJ.mjs';
4
+ export { getAnimationInitialStyle } from './chunk-FE4L26FT.mjs';
5
+ export { AVATAR_COLOR_SWATCHES, DEFAULT_VIEWER_PROFILE, PPTX_OPEN_ACCEPT, PRESENTATION_OPEN_EXTENSIONS, SLIDE_TEMPLATES, THEME_CATALOG, VIEWER_PREFS_STORAGE_KEY, buildSlideTemplateContent, buildSlideTemplateSlide, clearAllLocalViewerData, clearStoredViewerPrefs, createImageElementFromFile, defaultCssVars, defaultRadius, defaultThemeColors, getLocalStorageUsageSummary, isLegacyBinaryPresentation, isSupportedPresentationFile, presentationBaseName, readStoredViewerPrefs, resolveProfileInitial, resolveThemeCatalogEntry, saveViewerProfile, savedPresentationFileName, themeToCssVars, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, writeStoredViewerPrefs } from './chunk-N4FLKADC.mjs';
6
+ export { LOCALE_CATALOG } from './chunk-AVTH627G.mjs';
7
7
  import './chunk-XGB3TDIC.mjs';
package/dist/index.mjs.br CHANGED
Binary file
package/dist/index.mjs.gz CHANGED
Binary file
@@ -935,6 +935,13 @@ interface ShapeStyle {
935
935
  fillImageUrl?: string;
936
936
  /** How the image is sized within the shape: stretch to fill, or tile/repeat. */
937
937
  fillImageMode?: 'stretch' | 'tile';
938
+ /** Whether the image fill rotates/flips with the shape (`a:blipFill/@rotWithShape`).
939
+ * Defaults to true per the schema; preserved for round-trip when the source
940
+ * authored the attribute explicitly. When false, the shape's own geometry
941
+ * (clip-path/outline) still carries the shape's rotation/flip, but the
942
+ * picture content inside stays fixed to the page frame (upright), matching
943
+ * PowerPoint. See `pptx-viewer-shared`'s `getImageFillCounterTransform`. */
944
+ fillImageRotWithShape?: boolean;
938
945
  fillGradientStops?: Array<{
939
946
  color: string;
940
947
  position: number;
@@ -2395,6 +2402,13 @@ type PptxChartPictureFormat = 'stretch' | 'stack' | 'stackScale';
2395
2402
  * "Picture or texture fill" with "Stack"/"Stretch" semantics on a bar/column
2396
2403
  * data point, distinct from the point's plain `c:spPr` solid/gradient fill.
2397
2404
  *
2405
+ * `c:pictureOptions` is optional: a point/series whose `c:spPr` carries a bare
2406
+ * `a:blipFill` with NO `c:pictureOptions` sibling at all is still a fully
2407
+ * legal, common picture fill (PowerPoint's own default "stretch, no stack"
2408
+ * when the format pane never touched the stack settings); `parseChartDataPointPicture`
2409
+ * synthesizes this descriptor (`pictureFormat: 'stretch'`) in that case so the
2410
+ * SAME render pipeline resolves it, rather than silently dropping the fill.
2411
+ *
2398
2412
  * The flags parse purely (`parseChartDataPointPicture` in
2399
2413
  * `utils/chart-datapoint-serializer.ts`); {@link imageUrl} is a separate,
2400
2414
  * later addition populated by the runtime (`PptxHandlerRuntimeChartParsing.ts`)
@@ -2420,6 +2434,12 @@ interface PptxChartDataPointPicture {
2420
2434
  * when the point has no picture fill or the image could not be resolved.
2421
2435
  */
2422
2436
  imageUrl?: string;
2437
+ /**
2438
+ * Effective opacity (0-1) from the blip's `a:alphaModFix/@amt` (a
2439
+ * thousandths-of-a-percent value, so `amt="60000"` is `0.6`). `undefined`
2440
+ * when the blip carries no `alphaModFix`, meaning fully opaque.
2441
+ */
2442
+ opacity?: number;
2423
2443
  }
2424
2444
  //#endregion
2425
2445
  //#region src/core/types/chart-pivot-format.d.ts
@@ -3073,6 +3093,17 @@ interface PptxChartDataPoint {
3073
3093
  bubble3D?: boolean;
3074
3094
  /** Per-point picture-fill flags (`c:dPt/c:pictureOptions`). */
3075
3095
  picture?: PptxChartDataPointPicture;
3096
+ /**
3097
+ * A picture fill implied by a bare `c:dPt/c:spPr/a:blipFill` with NO
3098
+ * sibling `c:pictureOptions` at all: still a fully legal "stretch, no
3099
+ * stack" picture fill, just one PowerPoint's format pane never touched the
3100
+ * stack settings for. Render-derived only: unlike {@link picture}, this is
3101
+ * never written back on save (the original, untouched `c:spPr` already
3102
+ * round-trips verbatim), so populating it can never desync the saved file
3103
+ * from what was authored. See `chart-datapoint-picture.ts`'s
3104
+ * `parseImplicitBlipPictureFill`.
3105
+ */
3106
+ impliedPicture?: PptxChartDataPointPicture;
3076
3107
  /**
3077
3108
  * This point's identity GUID (`c:dPt/c:extLst/c:ext/c16:uniqueId/@val`,
3078
3109
  * the Office 2014+ `{C3380CC4-5D6E-409C-BE32-E72D297353CC}` chart
@@ -3334,6 +3365,17 @@ interface PptxChartTreemapOptions {
3334
3365
  */
3335
3366
  interface PptxChartSeries {
3336
3367
  name: string;
3368
+ /**
3369
+ * This series' own `c:ser/c:idx/@val`. PowerPoint keys per-series identity
3370
+ * (data-point picking, and the automatic marker-symbol cycle when no
3371
+ * `c:marker/c:symbol` is authored) off this value, NOT off the series'
3372
+ * position in this array: a series can be reordered (`c:order`) without its
3373
+ * `idx` changing, and a chart with a deleted/filtered series leaves a gap
3374
+ * (e.g. idx 1, 2 with no idx 0). Absent only for chart kinds this parser
3375
+ * does not tag (rare); render code that needs it should fall back to the
3376
+ * array position.
3377
+ */
3378
+ idx?: number;
3337
3379
  values: number[];
3338
3380
  /**
3339
3381
  * Per-series x values from `c:ser/c:xVal` (scatter and bubble series only).
@@ -3439,6 +3481,13 @@ interface PptxChartSeries {
3439
3481
  * when the point has none of its own.
3440
3482
  */
3441
3483
  picture?: PptxChartDataPointPicture;
3484
+ /**
3485
+ * A picture fill implied by a bare `c:ser/c:spPr/a:blipFill` with NO
3486
+ * sibling `c:pictureOptions` at all. See
3487
+ * {@link PptxChartDataPoint.impliedPicture}'s doc comment: same
3488
+ * render-only, never-serialized-back convention, at the series level.
3489
+ */
3490
+ impliedPicture?: PptxChartDataPointPicture;
3442
3491
  /**
3443
3492
  * This series' identity GUID (`c:ser/c:extLst/c:ext/c16:uniqueId/@val`,
3444
3493
  * the Office 2014+ `{C3380CC4-5D6E-409C-BE32-E72D297353CC}` chart
@@ -3477,6 +3526,24 @@ interface PptxChartFilteredSeries {
3477
3526
  values?: number[];
3478
3527
  /** This hidden series' own identity GUID (`c16:uniqueId`), when present. */
3479
3528
  uniqueId?: string;
3529
+ /**
3530
+ * A full snapshot of the series as it looked the moment it was hidden
3531
+ * (`render/chart-ext-editor-actions.ts`'s `hideChartSeries`), so
3532
+ * `restoreFilteredSeries` can bring it back exactly as it was: full fill/
3533
+ * line formatting, marker, data-label options, everything, not just the
3534
+ * bare name/values/idx the other fields above capture.
3535
+ *
3536
+ * NOT derived from XML and NEVER written to disk (the save writer,
3537
+ * `chart-filtered-series-writer.ts`, only reads the named fields above):
3538
+ * this exists purely for the live "Chart Filters" hide/show round-trip
3539
+ * within one editing session. A filtered series read from an actually
3540
+ * parsed file (one that was already hidden when opened) has no snapshot
3541
+ * to draw on, since real PowerPoint's `c15:ser` node is parsed only for
3542
+ * the fields above (`chart-filtered-series.ts`'s `parseOneFilteredSeries`);
3543
+ * `restoreFilteredSeries` falls back to reconstructing a bare series from
3544
+ * those for that case, same as before this field existed.
3545
+ */
3546
+ originalSeries?: PptxChartSeries;
3480
3547
  }
3481
3548
  /**
3482
3549
  * Chart-level data-label options (`c:dLbls` directly under a chart-type
@@ -3587,6 +3654,14 @@ interface PptxChartStyle {
3587
3654
  legendPosition?: string;
3588
3655
  /** Per-series visibility and text-style overrides. */
3589
3656
  legendEntries?: PptxChartLegendEntry[];
3657
+ /**
3658
+ * The legend's own default text style (`c:legend/c:txPr`), falling back to
3659
+ * the chart-wide default (`c:chartSpace/c:txPr`) when the legend has none
3660
+ * of its own. Applies to every legend entry that has no per-entry
3661
+ * `c:legendEntry/c:txPr` override (see {@link PptxChartLegendEntry.textStyle}),
3662
+ * which always wins over this chart-level default.
3663
+ */
3664
+ legendTextStyle?: PptxChartLegendTextStyle;
3590
3665
  /** Whether the chart has a title. */
3591
3666
  hasTitle?: boolean;
3592
3667
  /** Whether gridlines are visible. */