pptx-react-viewer 1.25.5 → 2.0.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 (230) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +1 -1
  3. package/dist/AiChatPanel-BRGQCYZM.mjs +1087 -0
  4. package/dist/AiChatPanel-BRGQCYZM.mjs.br +0 -0
  5. package/dist/AiChatPanel-BRGQCYZM.mjs.gz +0 -0
  6. package/dist/AiChatPanel-PW5OT25Z.js +1089 -0
  7. package/dist/AiChatPanel-PW5OT25Z.js.br +0 -0
  8. package/dist/AiChatPanel-PW5OT25Z.js.gz +0 -0
  9. package/dist/{GLTFLoader-NMAS6VRH.mjs → GLTFLoader-374ZNTXW.mjs} +1 -1
  10. package/dist/GLTFLoader-374ZNTXW.mjs.br +0 -0
  11. package/dist/GLTFLoader-374ZNTXW.mjs.gz +0 -0
  12. package/dist/{GLTFLoader-GP55DVVS.js → GLTFLoader-Q7BHCGAW.js} +1 -1
  13. package/dist/GLTFLoader-Q7BHCGAW.js.br +0 -0
  14. package/dist/GLTFLoader-Q7BHCGAW.js.gz +0 -0
  15. package/dist/{Model3DScene-Y5ABLO7K.js → Model3DScene-JCGYRKXM.js} +4 -4
  16. package/dist/Model3DScene-JCGYRKXM.js.br +0 -0
  17. package/dist/Model3DScene-JCGYRKXM.js.gz +0 -0
  18. package/dist/{Model3DScene-XVYOISVJ.mjs → Model3DScene-TEF362W2.mjs} +3 -3
  19. package/dist/Model3DScene-TEF362W2.mjs.br +0 -0
  20. package/dist/Model3DScene-TEF362W2.mjs.gz +0 -0
  21. package/dist/{OrbitControls-VH6KILH7.js → OrbitControls-SMYCPLXO.js} +1 -1
  22. package/dist/OrbitControls-SMYCPLXO.js.br +3 -0
  23. package/dist/OrbitControls-SMYCPLXO.js.gz +0 -0
  24. package/dist/{OrbitControls-F5XPYD2Z.mjs → OrbitControls-ZTGHPI5G.mjs} +1 -1
  25. package/dist/OrbitControls-ZTGHPI5G.mjs.br +0 -0
  26. package/dist/{OrbitControls-F5XPYD2Z.mjs.gz → OrbitControls-ZTGHPI5G.mjs.gz} +0 -0
  27. package/dist/{PowerPointViewer-CnADroqZ.d.ts → PowerPointViewer-gmU5rc7K.d.ts} +2 -2
  28. package/dist/PowerPointViewer-gmU5rc7K.d.ts.map +1 -0
  29. package/dist/{SmartArt3DScene-WQIDFZ7X.mjs → SmartArt3DScene-XCFVGCXE.mjs} +1 -1
  30. package/dist/SmartArt3DScene-XCFVGCXE.mjs.br +0 -0
  31. package/dist/SmartArt3DScene-XCFVGCXE.mjs.gz +0 -0
  32. package/dist/{SmartArt3DScene-HCQBDRAM.js → SmartArt3DScene-ZO3KFDI2.js} +1 -1
  33. package/dist/SmartArt3DScene-ZO3KFDI2.js.br +0 -0
  34. package/dist/SmartArt3DScene-ZO3KFDI2.js.gz +0 -0
  35. package/dist/{SurfaceChart3DScene-WMY5JTW4.js → SurfaceChart3DScene-2SHCYZVC.js} +4 -4
  36. package/dist/{SurfaceChart3DScene-WMY5JTW4.js.br → SurfaceChart3DScene-2SHCYZVC.js.br} +0 -0
  37. package/dist/SurfaceChart3DScene-2SHCYZVC.js.gz +0 -0
  38. package/dist/{SurfaceChart3DScene-RXZADECL.mjs → SurfaceChart3DScene-UPDCIMJM.mjs} +3 -3
  39. package/dist/SurfaceChart3DScene-UPDCIMJM.mjs.br +0 -0
  40. package/dist/SurfaceChart3DScene-UPDCIMJM.mjs.gz +0 -0
  41. package/dist/{animation-timeline-CEJJLFqK.d.ts → animation-timeline-eb5z0SHW.d.ts} +250 -8
  42. package/dist/animation-timeline-eb5z0SHW.d.ts.map +1 -0
  43. package/dist/{chunk-M3SIFXWD.mjs → chunk-2X72MOPZ.mjs} +65 -0
  44. package/dist/chunk-2X72MOPZ.mjs.br +0 -0
  45. package/dist/chunk-2X72MOPZ.mjs.gz +0 -0
  46. package/dist/{chunk-QGM4M3NI.js → chunk-4VNS5WPM.js} +5 -0
  47. package/dist/chunk-4VNS5WPM.js.br +0 -0
  48. package/dist/chunk-4VNS5WPM.js.gz +0 -0
  49. package/dist/{chunk-F4WPQRZU.mjs → chunk-5XLLRPMV.mjs} +6901 -14355
  50. package/dist/chunk-5XLLRPMV.mjs.br +0 -0
  51. package/dist/chunk-5XLLRPMV.mjs.gz +0 -0
  52. package/dist/{chunk-FOMF7POV.mjs → chunk-6YXLGMTN.mjs} +2493 -1588
  53. package/dist/chunk-6YXLGMTN.mjs.br +0 -0
  54. package/dist/chunk-6YXLGMTN.mjs.gz +0 -0
  55. package/dist/chunk-B6NRDUHJ.mjs +8029 -0
  56. package/dist/chunk-B6NRDUHJ.mjs.br +0 -0
  57. package/dist/chunk-B6NRDUHJ.mjs.gz +0 -0
  58. package/dist/chunk-BHVCED34.mjs +16664 -0
  59. package/dist/chunk-BHVCED34.mjs.br +0 -0
  60. package/dist/chunk-BHVCED34.mjs.gz +0 -0
  61. package/dist/{chunk-IPYAN574.js → chunk-CLNGAVNH.js} +2495 -1587
  62. package/dist/chunk-CLNGAVNH.js.br +0 -0
  63. package/dist/chunk-CLNGAVNH.js.gz +0 -0
  64. package/dist/{chunk-2EFVXYNA.js → chunk-CUUYYYC5.js} +65 -0
  65. package/dist/chunk-CUUYYYC5.js.br +0 -0
  66. package/dist/chunk-CUUYYYC5.js.gz +0 -0
  67. package/dist/{chunk-L4ZADJOM.mjs → chunk-L63RAVM7.mjs} +1285 -150
  68. package/dist/chunk-L63RAVM7.mjs.br +0 -0
  69. package/dist/chunk-L63RAVM7.mjs.gz +0 -0
  70. package/dist/{chunk-7CSBUYRN.js → chunk-LFXG7SGG.js} +2073 -938
  71. package/dist/chunk-LFXG7SGG.js.br +0 -0
  72. package/dist/chunk-LFXG7SGG.js.gz +0 -0
  73. package/dist/{chunk-TEN35NUX.js → chunk-OKOJVSKJ.js} +3512 -403
  74. package/dist/chunk-OKOJVSKJ.js.br +0 -0
  75. package/dist/chunk-OKOJVSKJ.js.gz +0 -0
  76. package/dist/{chunk-FVQDRA5N.mjs → chunk-R2N2UYT7.mjs} +3455 -362
  77. package/dist/chunk-R2N2UYT7.mjs.br +0 -0
  78. package/dist/chunk-R2N2UYT7.mjs.gz +0 -0
  79. package/dist/chunk-SYPHGLIB.js +16701 -0
  80. package/dist/chunk-SYPHGLIB.js.br +0 -0
  81. package/dist/chunk-SYPHGLIB.js.gz +0 -0
  82. package/dist/{chunk-6DZX6EAA.mjs → chunk-XGB3TDIC.mjs} +5 -1
  83. package/dist/chunk-XGB3TDIC.mjs.br +0 -0
  84. package/dist/chunk-XGB3TDIC.mjs.gz +0 -0
  85. package/dist/chunk-ZB4NZRCI.js +11111 -0
  86. package/dist/chunk-ZB4NZRCI.js.br +0 -0
  87. package/dist/chunk-ZB4NZRCI.js.gz +0 -0
  88. package/dist/chunk-ZKDE3HJI.js +8121 -0
  89. package/dist/chunk-ZKDE3HJI.js.br +0 -0
  90. package/dist/chunk-ZKDE3HJI.js.gz +0 -0
  91. package/dist/{dist-755SJ3ZH.js → dist-4LUVI3SW.js} +578 -566
  92. package/dist/dist-4LUVI3SW.js.br +0 -0
  93. package/dist/dist-4LUVI3SW.js.gz +0 -0
  94. package/dist/dist-J6PC54PZ.mjs +2 -0
  95. package/dist/dist-J6PC54PZ.mjs.br +0 -0
  96. package/dist/dist-J6PC54PZ.mjs.gz +0 -0
  97. package/dist/i18n.js +5 -5
  98. package/dist/i18n.js.br +0 -0
  99. package/dist/i18n.js.gz +0 -0
  100. package/dist/i18n.mjs +2 -2
  101. package/dist/i18n.mjs.br +0 -0
  102. package/dist/i18n.mjs.gz +0 -0
  103. package/dist/{index-J6IuHQ2_.d.ts → index-a8wcFjRJ.d.ts} +4 -4
  104. package/dist/{index-J6IuHQ2_.d.ts.map → index-a8wcFjRJ.d.ts.map} +1 -1
  105. package/dist/index.d.ts +3030 -220
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js +41 -39
  108. package/dist/index.js.br +0 -0
  109. package/dist/index.js.gz +0 -0
  110. package/dist/index.mjs +8 -6
  111. package/dist/index.mjs.br +0 -0
  112. package/dist/index.mjs.gz +0 -0
  113. package/dist/{hooks-unstable.d.ts → internals.d.ts} +1238 -974
  114. package/dist/internals.d.ts.map +1 -0
  115. package/dist/{hooks-unstable.js → internals.js} +81 -80
  116. package/dist/internals.js.br +0 -0
  117. package/dist/internals.js.gz +0 -0
  118. package/dist/{hooks-unstable.mjs → internals.mjs} +6 -5
  119. package/dist/internals.mjs.br +0 -0
  120. package/dist/internals.mjs.gz +0 -0
  121. package/dist/pptx-viewer.css +1 -1
  122. package/dist/pptx-viewer.css.br +0 -0
  123. package/dist/pptx-viewer.css.gz +0 -0
  124. package/dist/{three.module-7CXEVRKB.mjs → three.module-AC7ESV4W.mjs} +1 -1
  125. package/dist/three.module-AC7ESV4W.mjs.br +0 -0
  126. package/dist/three.module-AC7ESV4W.mjs.gz +0 -0
  127. package/dist/{three.module-CPZZFD2Q.js → three.module-GNNNRIMK.js} +1 -1
  128. package/dist/three.module-GNNNRIMK.js.br +0 -0
  129. package/dist/three.module-GNNNRIMK.js.gz +0 -0
  130. package/dist/{useViewerBuildingBlocks-ll3_ncCH.d.ts → useViewerBuildingBlocks-CjureTRf.d.ts} +185 -174
  131. package/dist/useViewerBuildingBlocks-CjureTRf.d.ts.map +1 -0
  132. package/dist/viewer/index.d.ts +469 -52
  133. package/dist/viewer/index.d.ts.map +1 -1
  134. package/dist/viewer/index.js +35 -33
  135. package/dist/viewer/index.js.br +0 -0
  136. package/dist/viewer/index.js.gz +0 -0
  137. package/dist/viewer/index.mjs +8 -6
  138. package/dist/viewer/index.mjs.br +0 -0
  139. package/dist/viewer/index.mjs.gz +0 -0
  140. package/dist/{y-webrtc-6CRYHAXH.mjs → y-webrtc-DGVURJIF.mjs} +1 -1
  141. package/dist/y-webrtc-DGVURJIF.mjs.br +0 -0
  142. package/dist/y-webrtc-DGVURJIF.mjs.gz +0 -0
  143. package/dist/{y-webrtc-QCZF75JW.js → y-webrtc-YN53KW3J.js} +5 -5
  144. package/dist/y-webrtc-YN53KW3J.js.br +0 -0
  145. package/dist/y-webrtc-YN53KW3J.js.gz +0 -0
  146. package/dist/{y-websocket-QJEM6VOB.js → y-websocket-HZCIQLM6.js} +1 -1
  147. package/dist/y-websocket-HZCIQLM6.js.br +0 -0
  148. package/dist/y-websocket-HZCIQLM6.js.gz +0 -0
  149. package/dist/{y-websocket-57Q3RNHC.mjs → y-websocket-P5LTAJ5T.mjs} +1 -1
  150. package/dist/y-websocket-P5LTAJ5T.mjs.br +0 -0
  151. package/dist/y-websocket-P5LTAJ5T.mjs.gz +0 -0
  152. package/dist/{yjs-Y7IYUWOG.mjs → yjs-FKGX4QHS.mjs} +1 -1
  153. package/dist/yjs-FKGX4QHS.mjs.br +0 -0
  154. package/dist/yjs-FKGX4QHS.mjs.gz +0 -0
  155. package/dist/{yjs-UH3EPF3C.js → yjs-HBLSEMHP.js} +1 -1
  156. package/dist/yjs-HBLSEMHP.js.br +0 -0
  157. package/dist/yjs-HBLSEMHP.js.gz +0 -0
  158. package/package.json +19 -7
  159. package/dist/GLTFLoader-GP55DVVS.js.br +0 -0
  160. package/dist/GLTFLoader-GP55DVVS.js.gz +0 -0
  161. package/dist/GLTFLoader-NMAS6VRH.mjs.br +0 -0
  162. package/dist/GLTFLoader-NMAS6VRH.mjs.gz +0 -0
  163. package/dist/Model3DScene-XVYOISVJ.mjs.br +0 -0
  164. package/dist/Model3DScene-XVYOISVJ.mjs.gz +0 -0
  165. package/dist/Model3DScene-Y5ABLO7K.js.br +0 -0
  166. package/dist/Model3DScene-Y5ABLO7K.js.gz +0 -0
  167. package/dist/OrbitControls-F5XPYD2Z.mjs.br +0 -0
  168. package/dist/OrbitControls-VH6KILH7.js.br +0 -2
  169. package/dist/OrbitControls-VH6KILH7.js.gz +0 -0
  170. package/dist/PowerPointViewer-CnADroqZ.d.ts.map +0 -1
  171. package/dist/SmartArt3DScene-HCQBDRAM.js.br +0 -0
  172. package/dist/SmartArt3DScene-HCQBDRAM.js.gz +0 -0
  173. package/dist/SmartArt3DScene-WQIDFZ7X.mjs.br +0 -0
  174. package/dist/SmartArt3DScene-WQIDFZ7X.mjs.gz +0 -0
  175. package/dist/SurfaceChart3DScene-RXZADECL.mjs.br +0 -0
  176. package/dist/SurfaceChart3DScene-RXZADECL.mjs.gz +0 -0
  177. package/dist/SurfaceChart3DScene-WMY5JTW4.js.gz +0 -0
  178. package/dist/animation-timeline-CEJJLFqK.d.ts.map +0 -1
  179. package/dist/chunk-2EFVXYNA.js.br +0 -0
  180. package/dist/chunk-2EFVXYNA.js.gz +0 -0
  181. package/dist/chunk-6DZX6EAA.mjs.br +0 -0
  182. package/dist/chunk-6DZX6EAA.mjs.gz +0 -0
  183. package/dist/chunk-7CSBUYRN.js.br +0 -0
  184. package/dist/chunk-7CSBUYRN.js.gz +0 -0
  185. package/dist/chunk-E55Q4AC7.js +0 -18639
  186. package/dist/chunk-E55Q4AC7.js.br +0 -0
  187. package/dist/chunk-E55Q4AC7.js.gz +0 -0
  188. package/dist/chunk-F4WPQRZU.mjs.br +0 -0
  189. package/dist/chunk-F4WPQRZU.mjs.gz +0 -0
  190. package/dist/chunk-FOMF7POV.mjs.br +0 -0
  191. package/dist/chunk-FOMF7POV.mjs.gz +0 -0
  192. package/dist/chunk-FVQDRA5N.mjs.br +0 -0
  193. package/dist/chunk-FVQDRA5N.mjs.gz +0 -0
  194. package/dist/chunk-IPYAN574.js.br +0 -0
  195. package/dist/chunk-IPYAN574.js.gz +0 -0
  196. package/dist/chunk-L4ZADJOM.mjs.br +0 -0
  197. package/dist/chunk-L4ZADJOM.mjs.gz +0 -0
  198. package/dist/chunk-M3SIFXWD.mjs.br +0 -0
  199. package/dist/chunk-M3SIFXWD.mjs.gz +0 -0
  200. package/dist/chunk-QGM4M3NI.js.br +0 -0
  201. package/dist/chunk-QGM4M3NI.js.gz +0 -0
  202. package/dist/chunk-TEN35NUX.js.br +0 -0
  203. package/dist/chunk-TEN35NUX.js.gz +0 -0
  204. package/dist/dist-755SJ3ZH.js.br +0 -0
  205. package/dist/dist-755SJ3ZH.js.gz +0 -0
  206. package/dist/dist-FFWP5NQZ.mjs +0 -2
  207. package/dist/dist-FFWP5NQZ.mjs.br +0 -0
  208. package/dist/dist-FFWP5NQZ.mjs.gz +0 -0
  209. package/dist/hooks-unstable.d.ts.map +0 -1
  210. package/dist/hooks-unstable.js.br +0 -0
  211. package/dist/hooks-unstable.js.gz +0 -0
  212. package/dist/hooks-unstable.mjs.br +0 -0
  213. package/dist/hooks-unstable.mjs.gz +0 -0
  214. package/dist/three.module-7CXEVRKB.mjs.br +0 -0
  215. package/dist/three.module-7CXEVRKB.mjs.gz +0 -0
  216. package/dist/three.module-CPZZFD2Q.js.br +0 -0
  217. package/dist/three.module-CPZZFD2Q.js.gz +0 -0
  218. package/dist/useViewerBuildingBlocks-ll3_ncCH.d.ts.map +0 -1
  219. package/dist/y-webrtc-6CRYHAXH.mjs.br +0 -0
  220. package/dist/y-webrtc-6CRYHAXH.mjs.gz +0 -0
  221. package/dist/y-webrtc-QCZF75JW.js.br +0 -0
  222. package/dist/y-webrtc-QCZF75JW.js.gz +0 -0
  223. package/dist/y-websocket-57Q3RNHC.mjs.br +0 -0
  224. package/dist/y-websocket-57Q3RNHC.mjs.gz +0 -0
  225. package/dist/y-websocket-QJEM6VOB.js.br +0 -0
  226. package/dist/y-websocket-QJEM6VOB.js.gz +0 -0
  227. package/dist/yjs-UH3EPF3C.js.br +0 -0
  228. package/dist/yjs-UH3EPF3C.js.gz +0 -0
  229. package/dist/yjs-Y7IYUWOG.mjs.br +0 -0
  230. package/dist/yjs-Y7IYUWOG.mjs.gz +0 -0
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import React__default, { RefObject } from 'react';
3
+ import { LanguageModel, ChatTransport, UIMessage, ToolSet } from 'ai';
3
4
  import * as Y from 'yjs';
4
5
  import { Doc } from 'yjs';
5
6
 
@@ -1024,6 +1025,14 @@ interface ShapeStyle {
1024
1025
  };
1025
1026
  /** Fill overlay blend mode from effectDag `a:fillOverlay/@blend`. */
1026
1027
  dagFillOverlayBlend?: 'over' | 'mult' | 'screen' | 'darken' | 'lighten';
1028
+ /**
1029
+ * Fill overlay tint colour (hex `#RRGGBB`) from effectDag `a:fillOverlay`'s
1030
+ * `a:solidFill`/`a:gradFill`. Painted as a blended overlay layer over the
1031
+ * element; the blend mode comes from {@link dagFillOverlayBlend}.
1032
+ */
1033
+ dagFillOverlayColor?: string;
1034
+ /** Fill overlay tint opacity (0-1), from the overlay fill colour's alpha. */
1035
+ dagFillOverlayOpacity?: number;
1027
1036
  /** `<a:lnRef @idx>` — 1-based index into the theme's lnStyleLst. */
1028
1037
  lnRefIdx?: number;
1029
1038
  /** Raw XML colour child of `<a:lnRef>` (e.g. `<a:schemeClr>` with transforms). */
@@ -1956,6 +1965,75 @@ interface PptxChartProtection {
1956
1965
  rawXml?: XmlObject;
1957
1966
  }
1958
1967
  //#endregion
1968
+ //#region src/core/types/chart-user-shapes.d.ts
1969
+ /**
1970
+ * Types for chart drawing-overlay shapes (`c:userShapes`).
1971
+ *
1972
+ * A chart's `c:userShapes` element carries an `r:id` that references a
1973
+ * separate drawing part (`ppt/drawings/drawingN.xml`) whose root is a
1974
+ * `c:userShapes` element populated with `cdr:relSizeAnchor` /
1975
+ * `cdr:absSizeAnchor` wrappers around `sp` / `pic` / `cxnSp` shapes drawn on
1976
+ * top of the chart plot. These interfaces describe the parsed, renderable
1977
+ * overlay model. The raw reference is preserved separately on
1978
+ * {@link PptxChartData.userShapesXml} for verbatim round-trip save; this model
1979
+ * is render-only.
1980
+ *
1981
+ * @module pptx-types/chart-user-shapes
1982
+ */
1983
+ /** A single paragraph of overlay-shape text with light formatting. */
1984
+ interface PptxChartUserShapeParagraph {
1985
+ /** Joined run text of the paragraph. */
1986
+ text: string;
1987
+ /** Font size in points (`a:rPr/@sz` divided by 100), when present. */
1988
+ fontSize?: number;
1989
+ /** Whether the first run is bold (`a:rPr/@b`). */
1990
+ bold?: boolean;
1991
+ /** Whether the first run is italic (`a:rPr/@i`). */
1992
+ italic?: boolean;
1993
+ /** Resolved run colour hex (e.g. `"#FF0000"`), when present. */
1994
+ color?: string;
1995
+ /** Paragraph alignment (`a:pPr/@algn`): left / centre / right. */
1996
+ align?: 'l' | 'ctr' | 'r';
1997
+ }
1998
+ /**
1999
+ * A parsed chart-overlay shape positioned by a drawing anchor.
2000
+ *
2001
+ * Position is expressed as chart-relative fractions in {@link from}. For a
2002
+ * `relSizeAnchor` the opposite corner is {@link to} (also fractional); for an
2003
+ * `absSizeAnchor` the extent is {@link ext} in EMU.
2004
+ */
2005
+ interface PptxChartUserShape {
2006
+ /** Shape kind: text/preset shape, connector, or picture. */
2007
+ kind: 'sp' | 'cxnSp' | 'pic';
2008
+ /** Anchor kind that positioned the shape. */
2009
+ anchor: 'rel' | 'abs';
2010
+ /** Top-left corner as chart-relative fractions (0-1). */
2011
+ from: {
2012
+ x: number;
2013
+ y: number;
2014
+ };
2015
+ /** Bottom-right corner as chart-relative fractions (0-1); relSizeAnchor only. */
2016
+ to?: {
2017
+ x: number;
2018
+ y: number;
2019
+ };
2020
+ /** Extent in EMU (cx, cy); absSizeAnchor only. */
2021
+ ext?: {
2022
+ cx: number;
2023
+ cy: number;
2024
+ };
2025
+ /** Preset geometry name (`a:prstGeom/@prst`), defaulting to `"rect"`. */
2026
+ prst?: string;
2027
+ /** Resolved solid-fill hex colour, when present. */
2028
+ fill?: string;
2029
+ /** Resolved line/stroke hex colour, when present. */
2030
+ stroke?: string;
2031
+ /** Line width in points (`a:ln/@w` divided by 12700), when present. */
2032
+ strokeWidth?: number;
2033
+ /** Text paragraphs of the shape's `txBody`, when present. */
2034
+ paragraphs?: PptxChartUserShapeParagraph[];
2035
+ }
2036
+ //#endregion
1959
2037
  //#region src/core/types/chart.d.ts
1960
2038
  /**
1961
2039
  * Supported chart type discriminators.
@@ -2289,6 +2367,15 @@ interface PptxChartTreemapOptions {
2289
2367
  interface PptxChartSeries {
2290
2368
  name: string;
2291
2369
  values: number[];
2370
+ /**
2371
+ * Blank-value mask aligned index-for-index with {@link values}: `true` marks
2372
+ * a category whose numeric cache point (`c:numCache/c:pt`) was absent or
2373
+ * empty, i.e. a genuine blank rather than a real `0`. Present only when the
2374
+ * source series actually contains blanks; when set, blank slots in
2375
+ * {@link values} carry `0` as a placeholder. Renderers honour
2376
+ * `c:dispBlanksAs` (gap / zero / span) using this mask.
2377
+ */
2378
+ blanks?: boolean[];
2292
2379
  color?: string;
2293
2380
  trendlines?: PptxChartTrendline[];
2294
2381
  errBars?: PptxChartErrBars[];
@@ -2510,6 +2597,14 @@ interface PptxChartManualLayout {
2510
2597
  y?: number;
2511
2598
  width?: number;
2512
2599
  height?: number;
2600
+ /**
2601
+ * Raw `c:extLst` (CT_ExtensionList) of the `c:manualLayout`, captured
2602
+ * verbatim so it round-trips through the typed model. Without this, a dirty
2603
+ * write of an edited layout would drop the extension list (the manual node
2604
+ * is rebuilt from the typed fields). Emitted as the trailing child, matching
2605
+ * the CT_ManualLayout schema order.
2606
+ */
2607
+ ext?: XmlObject;
2513
2608
  }
2514
2609
  /**
2515
2610
  * Typed manual layouts for chart regions that accept `c:layout`.
@@ -2701,6 +2796,15 @@ interface PptxChartData {
2701
2796
  * attempting to parse the nested drawing tree.
2702
2797
  */
2703
2798
  userShapesXml?: unknown;
2799
+ /**
2800
+ * Parsed, renderable drawing-overlay shapes resolved from the separate
2801
+ * drawing part referenced by `c:userShapes/@r:id`
2802
+ * (`ppt/drawings/drawingN.xml`). Each entry carries chart-relative anchor
2803
+ * geometry plus light shape/text formatting so the viewer can render an
2804
+ * overlay on top of the chart plot. Render-only: {@link userShapesXml}
2805
+ * remains the source of truth for round-trip save.
2806
+ */
2807
+ userShapes?: PptxChartUserShape[];
2704
2808
  /**
2705
2809
  * Raw `c:pivotFmts` XML subtree preserved verbatim.
2706
2810
  *
@@ -3721,7 +3825,7 @@ interface PptxSmartArtData {
3721
3825
  /**
3722
3826
  * Per-cell visual style for a table cell.
3723
3827
  *
3724
- * All fields are optional unset values inherit from the table style.
3828
+ * All fields are optional - unset values inherit from the table style.
3725
3829
  *
3726
3830
  * @example
3727
3831
  * ```ts
@@ -3849,6 +3953,52 @@ interface PptxTableCellStyle {
3849
3953
  patternFillForeground?: string;
3850
3954
  /** Pattern fill background colour. */
3851
3955
  patternFillBackground?: string;
3956
+ /**
3957
+ * Cell 3D bevel + lighting from `a:tcPr/a:cell3D` (CT_Cell3D,
3958
+ * ECMA-376 §21.1.3.1). Rendered as a CSS bevel treatment.
3959
+ */
3960
+ cell3D?: PptxTableCell3D;
3961
+ /**
3962
+ * `a:tcPr/@anchorCtr` - centre the text block in the direction
3963
+ * perpendicular to the text flow (horizontal centring for horizontal text).
3964
+ */
3965
+ anchorCtr?: boolean;
3966
+ /**
3967
+ * `a:tcPr/@horzOverflow` (ST_TextHorzOverflowType): `clip` clips text at
3968
+ * the cell edge, `overflow` (the default) lets it spill.
3969
+ */
3970
+ horzOverflow?: 'clip' | 'overflow';
3971
+ }
3972
+ /**
3973
+ * Cell 3D bevel + lighting parsed from `a:tcPr/a:cell3D` (CT_Cell3D).
3974
+ *
3975
+ * Only the fields needed to render a plausible bevel treatment are captured;
3976
+ * verbatim round-trip of the full node is handled separately by the save path.
3977
+ *
3978
+ * @example
3979
+ * ```ts
3980
+ * const c3d: PptxTableCell3D = {
3981
+ * bevelWidth: 8,
3982
+ * bevelHeight: 8,
3983
+ * bevelPreset: 'circle',
3984
+ * material: 'plastic',
3985
+ * };
3986
+ * // => satisfies PptxTableCell3D
3987
+ * ```
3988
+ */
3989
+ interface PptxTableCell3D {
3990
+ /** Bevel width in px (from `a:bevel@w`, EMU converted). */
3991
+ bevelWidth?: number;
3992
+ /** Bevel height in px (from `a:bevel@h`, EMU converted). */
3993
+ bevelHeight?: number;
3994
+ /** Bevel preset name (`a:bevel@prst`, e.g. `circle`, `relaxedInset`). */
3995
+ bevelPreset?: string;
3996
+ /** Preset material (`a:cell3D@prstMaterial`, e.g. `plastic`, `metal`). */
3997
+ material?: string;
3998
+ /** Light rig type (`a:lightRig@rig`, e.g. `threePt`, `soft`). */
3999
+ lightRig?: string;
4000
+ /** Light rig direction (`a:lightRig@dir`, e.g. `tl`, `t`, `tr`). */
4001
+ lightRigDirection?: string;
3852
4002
  }
3853
4003
  /**
3854
4004
  * A single table cell with text content, optional style, and merge info.
@@ -4072,7 +4222,7 @@ interface ParsedTableStyleBorder {
4072
4222
  fill?: ParsedTableStyleFill;
4073
4223
  /** Explicit hex colour when the line used `a:srgbClr` (e.g. `#808080`). */
4074
4224
  color?: string;
4075
- /** The line was `a:noFill` an explicit "no border" that clears lower layers. */
4225
+ /** The line was `a:noFill` - an explicit "no border" that clears lower layers. */
4076
4226
  noFill?: boolean;
4077
4227
  }
4078
4228
  /**
@@ -5058,6 +5208,14 @@ interface PptxNativeAnimation {
5058
5208
  * that aren't OLE charts).
5059
5209
  */
5060
5210
  graphicBuild?: string;
5211
+ /**
5212
+ * OLE-embedded chart build attribute (`p:bldOleChart/@bld`) when this
5213
+ * animation stages an OLE chart graphic frame. Values follow
5214
+ * ST_TLOleChartBuildType: `allAtOnce`, `series`, `category`, `seriesEl`,
5215
+ * `categoryEl`. Lets a staged-reveal renderer build the chart by series /
5216
+ * category / element to match PowerPoint, rather than as one whole element.
5217
+ */
5218
+ oleChartBuild?: string;
5061
5219
  /** Schema-accurate `p:bldGraphic/p:bldAsOne|p:bldSub` representation. */
5062
5220
  graphicBuildProperties?: PptxGraphicBuild;
5063
5221
  /**
@@ -5547,6 +5705,18 @@ interface PptxAppProperties {
5547
5705
  template?: string;
5548
5706
  /** Hyperlink base URL. */
5549
5707
  hyperlinkBase?: string;
5708
+ /** Document security bitmask (`<DocSecurity>`). */
5709
+ docSecurity?: number;
5710
+ /** Number of multimedia clips (`<MMClips>`). */
5711
+ mmClips?: number;
5712
+ /** Whether thumbnail images were scaled to fit (`<ScaleCrop>`). */
5713
+ scaleCrop?: boolean;
5714
+ /** Whether hyperlinks are current (`<LinksUpToDate>`). */
5715
+ linksUpToDate?: boolean;
5716
+ /** Whether the document is shared (`<SharedDoc>`). */
5717
+ sharedDoc?: boolean;
5718
+ /** Whether hyperlinks changed since last save (`<HyperlinksChanged>`). */
5719
+ hyperlinksChanged?: boolean;
5550
5720
  }
5551
5721
  //#endregion
5552
5722
  //#region src/core/types/presentation-print-properties.d.ts
@@ -6051,6 +6221,21 @@ interface PptxActiveXControl {
6051
6221
  name?: string;
6052
6222
  /** Shape ID this control is linked to (from @spid). */
6053
6223
  shapeId?: string;
6224
+ /** X position (px) of the control's fallback picture, if present. */
6225
+ x?: number;
6226
+ /** Y position (px) of the control's fallback picture, if present. */
6227
+ y?: number;
6228
+ /** Width (px) of the control's fallback picture, if present. */
6229
+ width?: number;
6230
+ /** Height (px) of the control's fallback picture, if present. */
6231
+ height?: number;
6232
+ /**
6233
+ * Relationship ID of the control's static fallback picture
6234
+ * (`mc:AlternateContent > mc:Fallback > p:pic > p:blipFill > a:blip@r:embed`).
6235
+ * Renderers resolve this to an image so a control shows its last static
6236
+ * frame instead of a blank area (the live ActiveX cannot run in a viewer).
6237
+ */
6238
+ fallbackImageRelId?: string;
6054
6239
  /** Raw XML for round-trip preservation. */
6055
6240
  rawXml?: XmlObject;
6056
6241
  }
@@ -6177,6 +6362,13 @@ interface PptxSlide {
6177
6362
  customerData?: PptxCustomerData[];
6178
6363
  /** ActiveX control references from `p:controls` on this slide. */
6179
6364
  activeXControls?: PptxActiveXControl[];
6365
+ /**
6366
+ * Shapes parsed from a referenced legacy VML drawing part
6367
+ * (`ppt/drawings/vmlDrawing*.vml`, linked via a `legacyDrawing`
6368
+ * relationship). These are read-only render hints: the VML part itself is
6369
+ * preserved verbatim on save, so this field is not re-serialized.
6370
+ */
6371
+ legacyVmlElements?: PptxElement[];
6180
6372
  /** Per-slide header/footer flags from `<p:hf>` (P-H3). */
6181
6373
  headerFooterFlags?: PptxHeaderFooterFlags;
6182
6374
  /** Server-backed slide synchronization metadata stored in a related OPC part. */
@@ -6285,12 +6477,6 @@ interface PptxPresentationProperties {
6285
6477
  showSubtitles?: boolean;
6286
6478
  /** Typed `p:prnPr` settings. Set to null during save to remove the element. */
6287
6479
  printProperties?: PptxPresentationPrintProperties | null;
6288
- /** @deprecated Use `printProperties.printWhat`; retained as a handout compatibility alias. */
6289
- printSlidesPerPage?: number;
6290
- /** @deprecated Use `printProperties.frameSlides`. */
6291
- printFrameSlides?: boolean;
6292
- /** @deprecated Use `printProperties.colorMode`. */
6293
- printColorMode?: 'clr' | 'gray' | 'bw';
6294
6480
  /** Most-recently-used colours from the presentation palette. */
6295
6481
  mruColors?: string[];
6296
6482
  /** Grid spacing in EMUs (cx, cy). Default is 914400 / 8 = 114300. */
@@ -8232,6 +8418,20 @@ interface ViewerFontSource {
8232
8418
  weight?: string | number;
8233
8419
  style?: 'normal' | 'italic';
8234
8420
  }
8421
+ /**
8422
+ * Store PPTX content bytes so the audience tab can retrieve them.
8423
+ * Called by the presenter before opening the audience window.
8424
+ */
8425
+ declare function storeAudienceContent(content: ArrayBuffer | Uint8Array, sessionId?: string): Promise<void>;
8426
+ /**
8427
+ * Load PPTX content bytes stored by the presenter tab.
8428
+ * Returns `null` if nothing is stored.
8429
+ */
8430
+ declare function loadAudienceContent(sessionId?: string): Promise<Uint8Array | null>;
8431
+ /**
8432
+ * Remove stored audience content (cleanup).
8433
+ */
8434
+ declare function clearAudienceContent(sessionId?: string): Promise<void>;
8235
8435
  /** In-memory clipboard payload stored when an element is copied or cut. */
8236
8436
  interface ElementClipboardPayload {
8237
8437
  element: PptxElement;
@@ -8440,6 +8640,228 @@ interface ShapeQuickStyle {
8440
8640
  style: Partial<ShapeStyle>;
8441
8641
  }
8442
8642
  //#endregion
8643
+ //#region ../shared/dist/ai/index.d.ts
8644
+ //#endregion
8645
+ //#region src/ai/change-animator.d.ts
8646
+ /** Host-tunable options for how AI edits are animated on the canvas. */
8647
+ interface AiChangeAnimationConfig {
8648
+ /** Master switch. Default true. */
8649
+ enabled?: boolean;
8650
+ /** How long the motion + glow plays, in ms. Default 900. */
8651
+ durationMs?: number;
8652
+ /** Draw the pulsing glow highlight on changed elements. Default true. */
8653
+ glow?: boolean;
8654
+ /** Glide old->new bounds and cross-fade colours. Default true. */
8655
+ tween?: boolean;
8656
+ /** Accent colour (any CSS colour) for the glow/ghosts. Default a blue. */
8657
+ color?: string;
8658
+ }
8659
+ //#endregion
8660
+ //#region src/ai/config.d.ts
8661
+ /** The UI message shape exchanged with the assistant. Alias of the SDK type. */
8662
+ type PptxAiUIMessage = UIMessage;
8663
+ /**
8664
+ * Canonical name of every tool the assistant can call. Document tools mirror the
8665
+ * `pptx-viewer-mcp` server exactly (they ARE the same functions, run against the
8666
+ * live deck); the viewer-only tools (navigation, deck outline, element/notes
8667
+ * readers, table merge) have no MCP counterpart.
8668
+ */
8669
+ type PptxAiToolName = 'get_deck_overview' | 'get_slide' | 'get_element' | 'get_speaker_notes' | 'find_text' | 'get_theme' | 'go_to_slide' | 'select_elements' | 'merge_tables' | 'get_metadata' | 'get_layouts' | 'find_placeholders' | 'get_presentation_properties' | 'run_accessibility_check' | 'convert_to_markdown' | 'add_element' | 'update_element' | 'delete_elements' | 'arrange_elements' | 'clone_element' | 'set_element_animation' | 'group_elements' | 'ungroup_elements' | 'batch_update_elements' | 'update_element_style' | 'replace_geometry' | 'set_element_lock' | 'manage_hyperlinks' | 'replace_text' | 'manage_comments' | 'update_table_cells' | 'manage_table_structure' | 'create_chart' | 'update_chart' | 'add_chart_series' | 'remove_chart_series' | 'update_chart_series_data' | 'manage_smart_art' | 'apply_template' | 'add_slide' | 'duplicate_slide' | 'delete_slides' | 'reorder_slides' | 'update_slide_properties' | 'set_slide_transition' | 'apply_theme_preset' | 'update_theme_colors' | 'update_theme_fonts' | 'set_canvas_size' | 'update_metadata' | 'manage_sections' | 'update_presentation_properties' | 'apply_layout';
8670
+ type Resolvable<T> = T | (() => T | Promise<T>);
8671
+ /** How the assistant reaches a language model. */
8672
+ type PptxAiConnection =
8673
+ /**
8674
+ * Post messages to a host backend route (recommended for production so the
8675
+ * provider API key stays server-side). Maps to `DefaultChatTransport`.
8676
+ */
8677
+ {
8678
+ kind: 'endpoint';
8679
+ api: string;
8680
+ headers?: Resolvable<Record<string, string>>;
8681
+ body?: Resolvable<Record<string, unknown>>;
8682
+ credentials?: RequestCredentials;
8683
+ fetch?: typeof globalThis.fetch;
8684
+ } |
8685
+ /**
8686
+ * Run a language model in-process in the browser (bring-your-own key /
8687
+ * local model). Maps to a `ToolLoopAgent` behind a `DirectChatTransport`.
8688
+ */
8689
+ {
8690
+ kind: 'model';
8691
+ model: LanguageModel;
8692
+ system?: string;
8693
+ maxSteps?: number;
8694
+ } |
8695
+ /** Provide a fully-constructed transport (advanced / testing escape hatch). */
8696
+ {
8697
+ kind: 'transport';
8698
+ transport: ChatTransport<PptxAiUIMessage>;
8699
+ };
8700
+ /** How writes proposed by the assistant reach the document. */
8701
+ type PptxAiWritePolicy = 'stage' | 'approve' | 'auto';
8702
+ /** Which deck context is fed to the model with each turn. */
8703
+ type PptxAiContextStrategy = 'outline' | 'current-slide' | 'none';
8704
+ /** Optional per-session history persistence hooks. */
8705
+ interface PptxAiHistoryHooks {
8706
+ load?(id: string): Promise<PptxAiUIMessage[]>;
8707
+ save?(id: string, messages: PptxAiUIMessage[]): Promise<void>;
8708
+ }
8709
+ /** Complete host configuration for an AI chat session. */
8710
+ interface PptxAiConfig {
8711
+ connection: PptxAiConnection;
8712
+ /** Extra host instructions appended to the base system prompt. */
8713
+ systemPromptExtras?: string;
8714
+ tools?: {
8715
+ /** Allowlist. When set, only these tools are exposed. */
8716
+ enabled?: PptxAiToolName[];
8717
+ /** Denylist, applied after `enabled`. */
8718
+ disabled?: PptxAiToolName[];
8719
+ /** Additional host-defined tools merged into the tool set. */
8720
+ extra?: ToolSet;
8721
+ };
8722
+ /** Default `'stage'`. */
8723
+ writePolicy?: PptxAiWritePolicy;
8724
+ /** Default `'outline'`. */
8725
+ contextStrategy?: PptxAiContextStrategy;
8726
+ history?: PptxAiHistoryHooks;
8727
+ /**
8728
+ * How AI edits are animated on the canvas so the user can watch them land
8729
+ * (glide old->new, fade/scale in-out, glow-pulse). Omit for the defaults;
8730
+ * set `{ enabled: false }` to turn it off.
8731
+ */
8732
+ changeAnimation?: AiChangeAnimationConfig;
8733
+ onError?(error: Error): void;
8734
+ }
8735
+ //#endregion
8736
+ //#region src/ai/bridge.d.ts
8737
+ /** Lightweight, model-friendly summary of the whole deck. */
8738
+ interface PptxAiDeckMeta {
8739
+ /** Total number of slides. */
8740
+ slideCount: number;
8741
+ /** Zero-based index of the currently active slide. */
8742
+ activeSlideIndex: number;
8743
+ /** Deck title, when known (first slide title / core properties). */
8744
+ title?: string;
8745
+ /** Slide canvas width in CSS pixels. */
8746
+ width: number;
8747
+ /** Slide canvas height in CSS pixels. */
8748
+ height: number;
8749
+ }
8750
+ /** Severity hint for {@link PptxAiBridge.notify}. */
8751
+ type PptxAiNotifyLevel = 'info' | 'success' | 'warning' | 'error';
8752
+ /**
8753
+ * A target the user has scoped the assistant to: either a whole slide or a
8754
+ * single element on a slide. Returned by {@link PptxAiBridge.getFocusedTargets}
8755
+ * so the context builder can tell the model exactly what to focus on.
8756
+ */
8757
+ type PptxAiFocusedTarget = {
8758
+ kind: 'slide';
8759
+ slideIndex: number;
8760
+ } | {
8761
+ kind: 'element';
8762
+ slideIndex: number;
8763
+ elementId: string;
8764
+ };
8765
+ /**
8766
+ * A pure updater over the deck's slides. It receives a deep clone of the
8767
+ * current slides (mutation-safe) and returns the next slides array. The bridge
8768
+ * commits the returned array as ONE history entry.
8769
+ */
8770
+ type PptxAiSlidesUpdater = (slides: PptxSlide[]) => PptxSlide[];
8771
+ /**
8772
+ * A pure updater over the whole parsed deck ({@link PptxData}). Mirrors the
8773
+ * `pptx-viewer-mcp` tool model (data in, mutated data out) so presentation-level
8774
+ * MCP tools (metadata, sections, canvas size, presentation properties, layouts)
8775
+ * can be committed as ONE undoable history entry through {@link
8776
+ * PptxAiBridge.applyDeckData}. Optional: bindings that only track slide/theme
8777
+ * state can omit it, in which case those presentation-level tools report that
8778
+ * they are unavailable in this viewer while every slide/theme tool still works.
8779
+ */
8780
+ type PptxAiDataUpdater = (data: PptxData) => PptxData;
8781
+ /** Field-level updates for a single element, mirroring the MCP update vocab. */
8782
+ interface PptxAiElementUpdate {
8783
+ x?: number;
8784
+ y?: number;
8785
+ width?: number;
8786
+ height?: number;
8787
+ rotation?: number;
8788
+ opacity?: number;
8789
+ hidden?: boolean;
8790
+ flipHorizontal?: boolean;
8791
+ flipVertical?: boolean;
8792
+ text?: string;
8793
+ fontSize?: number;
8794
+ fontFamily?: string;
8795
+ fontColor?: string;
8796
+ bold?: boolean;
8797
+ italic?: boolean;
8798
+ underline?: boolean;
8799
+ align?: 'left' | 'center' | 'right' | 'justify';
8800
+ fillColor?: string;
8801
+ strokeColor?: string;
8802
+ strokeWidth?: number;
8803
+ }
8804
+ /**
8805
+ * Implemented by each binding to expose its live editor to the AI core.
8806
+ *
8807
+ * Read methods must be cheap and synchronous. Write methods must route through
8808
+ * the binding's editor-history layer so AI edits are undoable like manual ones.
8809
+ */
8810
+ interface PptxAiBridge {
8811
+ /** Return a summary of the whole deck. */
8812
+ getDeckMeta(): PptxAiDeckMeta;
8813
+ /** Return the deck's slides. Callers must not mutate the returned array. */
8814
+ getSlides(): PptxSlide[];
8815
+ /** Return the zero-based index of the active slide. */
8816
+ getActiveSlideIndex(): number;
8817
+ /** Return the resolved presentation theme, when available. */
8818
+ getTheme(): PptxTheme | undefined;
8819
+ /** Return the underlying core handler, when the binding exposes one. */
8820
+ getHandler(): PptxHandler | undefined;
8821
+ /** Navigate the viewer to a slide by zero-based index. */
8822
+ goToSlide(index: number): void;
8823
+ /** Select the given elements on a slide (empty array clears selection). */
8824
+ selectElements(slideIndex: number, elementIds: string[]): void;
8825
+ /**
8826
+ * Apply a slides updater as a single, atomic, undoable history entry. The
8827
+ * binding is responsible for cloning current slides before calling
8828
+ * `updater` and for installing the result.
8829
+ */
8830
+ applySlidesUpdate(updater: PptxAiSlidesUpdater, label: string): void;
8831
+ /** Apply field updates to one element as a single history entry. */
8832
+ updateElement(slideIndex: number, elementId: string, updates: PptxAiElementUpdate): void;
8833
+ /** Apply partial theme updates as a single history entry. */
8834
+ applyTheme(updates: Partial<PptxTheme>): void;
8835
+ /**
8836
+ * Return the full parsed {@link PptxData} for the open deck, with the live
8837
+ * (edited) slides and theme overlaid. Enables `pptx-viewer-mcp` tools that
8838
+ * read presentation-level state (metadata, sections, layouts, presentation
8839
+ * properties). Optional: when absent, the AI core synthesises a minimal
8840
+ * PptxData from slides + dimensions, which is enough for every slide/theme
8841
+ * tool but not for presentation-level reads.
8842
+ */
8843
+ getDeckData?(): PptxData | undefined;
8844
+ /**
8845
+ * Commit a whole-deck {@link PptxData} mutation as one undoable history entry.
8846
+ * Used to apply presentation-level MCP tool results (metadata, sections,
8847
+ * canvas size, presentation properties, layouts). Optional: when absent,
8848
+ * those tools report they are not supported in this viewer; slide/theme tools
8849
+ * are unaffected (they route through {@link PptxAiBridge.applySlidesUpdate}
8850
+ * and {@link PptxAiBridge.applyTheme}).
8851
+ */
8852
+ applyDeckData?(updater: PptxAiDataUpdater, label: string): void;
8853
+ /**
8854
+ * Return the slides / elements the user has scoped the assistant to, if any.
8855
+ * When present and non-empty, the context builder tells the model to focus on
8856
+ * exactly these targets. Optional so existing bridges satisfy the contract
8857
+ * without change; a bridge that does not implement it behaves as before (no
8858
+ * focus scoping).
8859
+ */
8860
+ getFocusedTargets?(): PptxAiFocusedTarget[];
8861
+ /** Surface a transient message in the host UI (toast / status line). */
8862
+ notify?(message: string, level?: PptxAiNotifyLevel): void;
8863
+ }
8864
+ //#endregion
8443
8865
  //#region src/viewer/hooks/collaboration/types.d.ts
8444
8866
  /** Connection lifecycle states for the Yjs WebSocket provider. */
8445
8867
  type ConnectionStatus = 'disconnected' | 'connecting' | 'connected' | 'error';
@@ -8780,11 +9202,11 @@ interface PowerPointViewerProps {
8780
9202
  serverUrl?: string;
8781
9203
  };
8782
9204
  /**
8783
- * Opt in to the experimental Three.js SmartArt renderer. When `true`,
8784
- * SmartArt diagrams render as extruded 3D blocks on a WebGL canvas instead
8785
- * of flat SVG. Requires the optional `three` peer dependency; when it is not
8786
- * installed (or the diagram has no geometry), the viewer transparently falls
8787
- * back to the SVG `SmartArtRenderer`. Default `false`.
9205
+ * Opt in to the Three.js SmartArt renderer. When `true`, SmartArt diagrams
9206
+ * render as extruded 3D blocks on a WebGL canvas instead of flat SVG.
9207
+ * Requires the optional `three` peer dependency; when it is not installed
9208
+ * (or the diagram has no geometry), the viewer transparently falls back to
9209
+ * the SVG `SmartArtRenderer`. Default `false`.
8788
9210
  */
8789
9211
  smartArt3D?: boolean;
8790
9212
  /**
@@ -8805,11 +9227,44 @@ interface PowerPointViewerProps {
8805
9227
  * ```
8806
9228
  */
8807
9229
  hiddenActions?: ToolbarActionId[];
9230
+ /**
9231
+ * Opt in to the built-in AI assistant. When provided, a Sparkles toggle
9232
+ * appears in the toolbar and opens a chat panel wired to this config; when
9233
+ * omitted, no AI icon renders and no AI code is loaded (the panel and its
9234
+ * `@ai-sdk/react` dependency are `React.lazy`-imported only on first open).
9235
+ *
9236
+ * The host supplies the model connection (a backend `endpoint`, an in-browser
9237
+ * `model`, or a custom `transport`) plus optional tool allow/deny lists and a
9238
+ * write policy. Requires the optional `ai` and `@ai-sdk/react` peers.
9239
+ *
9240
+ * @example
9241
+ * ```tsx
9242
+ * <PowerPointViewer content={bytes} ai={{ connection: { kind: 'model', model } }} />
9243
+ * ```
9244
+ *
9245
+ * @see {@link PptxAiConfig}
9246
+ */
9247
+ ai?: PptxAiConfig;
8808
9248
  }
8809
9249
  interface PowerPointViewerHandle extends FileViewerHandle, PowerPointViewerAPI {
8810
9250
  getContent: () => Promise<Uint8Array>;
8811
9251
  }
8812
9252
 
9253
+ //#region src/viewer/utils/animation-effects.d.ts
9254
+ declare function getAnimationInitialStyle(preset: PptxAnimationPreset | undefined, nativeAnimation?: PptxNativeAnimation): React__default.CSSProperties;
9255
+ //#endregion
9256
+ //#region src/viewer/PowerPointViewer.d.ts
9257
+ /**
9258
+ * Root React component for the PowerPoint viewer/editor.
9259
+ *
9260
+ * Accepts binary `.pptx` content and renders a full-featured editor with
9261
+ * slide canvas, toolbar, inspector panels, presentation mode, and more.
9262
+ *
9263
+ * Uses `forwardRef` to expose a `PowerPointViewerHandle` for imperative
9264
+ * access (e.g. serialising the current content for saving).
9265
+ */
9266
+ declare const PowerPointViewer: React.ForwardRefExoticComponent<PowerPointViewerProps & React.RefAttributes<PowerPointViewerHandle>>;
9267
+
8813
9268
  //#endregion
8814
9269
  //#region src/viewer/hooks/useThemeSwitching.d.ts
8815
9270
  interface UseThemeSwitchingInput {
@@ -9099,44 +9554,6 @@ declare function parseAudienceNonce(): string | null;
9099
9554
  /** Returns true if the current page was opened as an audience tab. */
9100
9555
  declare function isAudienceTab(): boolean;
9101
9556
 
9102
- //#region src/viewer/utils/animation-effects.d.ts
9103
- declare function getAnimationInitialStyle(preset: PptxAnimationPreset | undefined, nativeAnimation?: PptxNativeAnimation): React__default.CSSProperties;
9104
- //#endregion
9105
- //#region src/viewer/PowerPointViewer.d.ts
9106
- /**
9107
- * Root React component for the PowerPoint viewer/editor.
9108
- *
9109
- * Accepts binary `.pptx` content and renders a full-featured editor with
9110
- * slide canvas, toolbar, inspector panels, presentation mode, and more.
9111
- *
9112
- * Uses `forwardRef` to expose a `PowerPointViewerHandle` for imperative
9113
- * access (e.g. serialising the current content for saving).
9114
- */
9115
- declare const PowerPointViewer: React.ForwardRefExoticComponent<PowerPointViewerProps & React.RefAttributes<PowerPointViewerHandle>>;
9116
-
9117
- //#region src/viewer/hooks/presentation-mode/audience-content-store.d.ts
9118
- /**
9119
- * audience-content-store: IndexedDB-based storage for sharing PPTX content
9120
- * between the presenter tab and audience tab.
9121
- *
9122
- * When the presenter opens an audience window, the PPTX bytes are stored in
9123
- * IndexedDB. The audience tab retrieves them on load and then cleans up.
9124
- */
9125
- /**
9126
- * Store PPTX content bytes so the audience tab can retrieve them.
9127
- * Called by the presenter before opening the audience window.
9128
- */
9129
- declare function storeAudienceContent(content: ArrayBuffer | Uint8Array, sessionId?: string): Promise<void>;
9130
- /**
9131
- * Load PPTX content bytes stored by the presenter tab.
9132
- * Returns `null` if nothing is stored.
9133
- */
9134
- declare function loadAudienceContent(sessionId?: string): Promise<Uint8Array | null>;
9135
- /**
9136
- * Remove stored audience content (cleanup).
9137
- */
9138
- declare function clearAudienceContent(sessionId?: string): Promise<void>;
9139
- //#endregion
9140
9557
  //#region src/viewer/components/collaboration/CollaborationProvider.d.ts
9141
9558
  interface CollaborationProviderProps {
9142
9559
  /** Collaboration config, or `undefined`/omitted while no session is active. */
@@ -9189,4 +9606,4 @@ interface CollaborationStatusIndicatorProps {
9189
9606
  declare function CollaborationStatusIndicator({ status, connectedCount, onRetry }: CollaborationStatusIndicatorProps): React__default.ReactElement;
9190
9607
 
9191
9608
  export { CollaborationProvider, CollaborationStatusIndicator, PowerPointViewer, RemoteUserCursors, UserAvatarBar, clearAudienceContent, getAnimationInitialStyle, isAudienceTab, loadAudienceContent, parseAudienceNonce, storeAudienceContent, useCollaborativeHistory, useCollaborativeState, usePresenceTracking, useThemeSwitching, useYjsProvider };
9192
- export type { AccessibilityIssue, AnimationPresetOption, CanvasSize, CollaborationConfig, CollaborationContextValue, CollaborationRole, CollaborationStatusIndicatorProps, ConnectionStatus, ConnectorArrowOption, ConnectorGeometryOption, ConnectorGeometryType, ConnectorPathGeometry, DragState, DrawingTool, EditorHistorySnapshot, ElementBounds, ElementClipboardPayload, ElementContextMenuAction, ElementContextMenuState, FileViewerHandle, MarqueeSelectionState, ParsedTableCell, ParsedTableData, PowerPointViewerHandle, PowerPointViewerProps, PresentationAnimationRuntime, RemoteUserCursorsProps, ResizeHandle, ResizeState, ShapeAdjustmentDragState, ShapeAdjustmentHandleDescriptor, ShapePreset, ShapeQuickStyle, ShortcutReferenceItem, SlideAlignment, SlideSectionGroup, SlideTransitionOption, StrokeDashOption, SupportedShapeType, TableCellEditorState, ThemeSwitchingResult, ToolbarSection, UseCollaborativeHistoryResult, UseCollaborativeStateInput, UsePresenceTrackingResult, UseThemeSwitchingInput, UserAvatarBarProps, UserPresence, ViewerMode };
9609
+ export type { AccessibilityIssue, AnimationPresetOption, CanvasSize, CollaborationConfig, CollaborationContextValue, CollaborationRole, CollaborationStatusIndicatorProps, ConnectionStatus, ConnectorArrowOption, ConnectorGeometryOption, ConnectorGeometryType, ConnectorPathGeometry, DragState, DrawingTool, EditorHistorySnapshot, ElementBounds, ElementClipboardPayload, ElementContextMenuAction, ElementContextMenuState, FileViewerHandle, MarqueeSelectionState, ParsedTableCell, ParsedTableData, PowerPointViewerHandle, PowerPointViewerProps, PptxAiBridge, PptxAiConfig, PptxAiConnection, PptxAiContextStrategy, PptxAiToolName, PptxAiWritePolicy, PresentationAnimationRuntime, RemoteUserCursorsProps, ResizeHandle, ResizeState, ShapeAdjustmentDragState, ShapeAdjustmentHandleDescriptor, ShapePreset, ShapeQuickStyle, ShortcutReferenceItem, SlideAlignment, SlideSectionGroup, SlideTransitionOption, StrokeDashOption, SupportedShapeType, TableCellEditorState, ThemeSwitchingResult, ToolbarSection, UseCollaborativeHistoryResult, UseCollaborativeStateInput, UsePresenceTrackingResult, UseThemeSwitchingInput, UserAvatarBarProps, UserPresence, ViewerMode };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/viewer/hooks/presentation-mode/audience-content-store.ts","../../src/viewer/components/collaboration/CollaborationProvider.tsx","../../src/viewer/components/collaboration/RemoteUserCursors.tsx","../../src/viewer/components/collaboration/UserAvatarBar.tsx","../../src/viewer/components/collaboration/CollaborationStatusIndicator.tsx"],"mappings":";;;;;;;;;;;;;;;;;iBAqDsB,qBACrB,SAAS,cAAc,YACvB,qBACE;;;;;iBA2BmB,oBAAoB,qBAAqB,QAAQ;;;;iBA+CjD,qBAAqB,qBAAqB;;;UCvF/C;;EAEhB,SAAS;EACT;EACA;EACA,UAAU,MAAM;;iBAGD,wBACf,QACA,aACA,cACA,YACE,6BAA6B,MAAM;;;UCtCrB;;EAEhB,aAAa;;EAEb;;EAEA;;EAEA;;iBAOe,oBACf,aACA,kBACA,aACA,gBACE,yBAAyB,MAAM;;;UCRjB;;EAEhB,aAAa;;EAEb;;EAEA;;EAEA;;EAEA,QAAQ;;EAER;;iBAqDe,gBACf,aACA,eACA,gBACA,iBACA,QACA,cACE,qBAAqB,MAAM;;;UCrFb;;EAEhB,QAAQ;;EAER;;EAEA;;iBAkCe,+BACf,QACA,gBACA,WACE,oCAAoC,MAAM"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/viewer/components/collaboration/CollaborationProvider.tsx","../../src/viewer/components/collaboration/RemoteUserCursors.tsx","../../src/viewer/components/collaboration/UserAvatarBar.tsx","../../src/viewer/components/collaboration/CollaborationStatusIndicator.tsx"],"mappings":";;;;;;UA2CiB;;EAEhB,SAAS;EACT;EACA;EACA,UAAU,MAAM;;iBAGD,wBACf,QACA,aACA,cACA,YACE,6BAA6B,MAAM;;;UCtCrB;;EAEhB,aAAa;;EAEb;;EAEA;;EAEA;;iBAOe,oBACf,aACA,kBACA,aACA,gBACE,yBAAyB,MAAM;;;UCRjB;;EAEhB,aAAa;;EAEb;;EAEA;;EAEA;;EAEA,QAAQ;;EAER;;iBAqDe,gBACf,aACA,eACA,gBACA,iBACA,QACA,cACE,qBAAqB,MAAM;;;UCrFb;;EAEhB,QAAQ;;EAER;;EAEA;;iBAkCe,+BACf,QACA,gBACA,WACE,oCAAoC,MAAM"}