pptx-react-viewer 3.11.0 → 3.12.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 (156) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/{AiChatPanel-L5H455NZ.mjs → AiChatPanel-SCA4RLFI.mjs} +4 -4
  3. package/dist/AiChatPanel-SCA4RLFI.mjs.br +0 -0
  4. package/dist/AiChatPanel-SCA4RLFI.mjs.gz +0 -0
  5. package/dist/{AiChatPanel-A3ZMMVUA.js → AiChatPanel-TXCDQDHD.js} +25 -25
  6. package/dist/AiChatPanel-TXCDQDHD.js.br +0 -0
  7. package/dist/AiChatPanel-TXCDQDHD.js.gz +0 -0
  8. package/dist/{Area3DChartScene-OAD36KIX.mjs → Area3DChartScene-NSV5AIMM.mjs} +1 -1
  9. package/dist/{Area3DChartScene-OAD36KIX.mjs.br → Area3DChartScene-NSV5AIMM.mjs.br} +0 -0
  10. package/dist/Area3DChartScene-NSV5AIMM.mjs.gz +0 -0
  11. package/dist/{Area3DChartScene-R2CKCYCB.js → Area3DChartScene-YAK6W2J5.js} +2 -2
  12. package/dist/Area3DChartScene-YAK6W2J5.js.br +0 -0
  13. package/dist/Area3DChartScene-YAK6W2J5.js.gz +0 -0
  14. package/dist/{Bar3DChartScene-XNNXF26T.mjs → Bar3DChartScene-DFJ7XK3Q.mjs} +1 -1
  15. package/dist/{Bar3DChartScene-XNNXF26T.mjs.br → Bar3DChartScene-DFJ7XK3Q.mjs.br} +0 -0
  16. package/dist/Bar3DChartScene-DFJ7XK3Q.mjs.gz +0 -0
  17. package/dist/{Bar3DChartScene-CRRPMXGQ.js → Bar3DChartScene-WNBEX3TN.js} +2 -2
  18. package/dist/Bar3DChartScene-WNBEX3TN.js.br +0 -0
  19. package/dist/Bar3DChartScene-WNBEX3TN.js.gz +0 -0
  20. package/dist/{Line3DChartScene-44PLZML2.js → Line3DChartScene-PXA6WAQG.js} +2 -2
  21. package/dist/Line3DChartScene-PXA6WAQG.js.br +0 -0
  22. package/dist/Line3DChartScene-PXA6WAQG.js.gz +0 -0
  23. package/dist/{Line3DChartScene-MNNPB3LZ.mjs → Line3DChartScene-TK6RPGET.mjs} +1 -1
  24. package/dist/{Line3DChartScene-MNNPB3LZ.mjs.br → Line3DChartScene-TK6RPGET.mjs.br} +0 -0
  25. package/dist/Line3DChartScene-TK6RPGET.mjs.gz +0 -0
  26. package/dist/{Model3DScene-5MUREFLY.mjs → Model3DScene-7FZSQ3SP.mjs} +1 -1
  27. package/dist/Model3DScene-7FZSQ3SP.mjs.br +0 -0
  28. package/dist/Model3DScene-7FZSQ3SP.mjs.gz +0 -0
  29. package/dist/{Model3DScene-RYPYQPJH.js → Model3DScene-FJQOUWCV.js} +2 -2
  30. package/dist/{Model3DScene-RYPYQPJH.js.br → Model3DScene-FJQOUWCV.js.br} +0 -0
  31. package/dist/Model3DScene-FJQOUWCV.js.gz +0 -0
  32. package/dist/{PieChart3DScene-KYZSSG5X.mjs → PieChart3DScene-KKZTAIFB.mjs} +1 -1
  33. package/dist/PieChart3DScene-KKZTAIFB.mjs.br +0 -0
  34. package/dist/PieChart3DScene-KKZTAIFB.mjs.gz +0 -0
  35. package/dist/{PieChart3DScene-GACYCSSQ.js → PieChart3DScene-P25IGVT6.js} +2 -2
  36. package/dist/PieChart3DScene-P25IGVT6.js.br +0 -0
  37. package/dist/PieChart3DScene-P25IGVT6.js.gz +0 -0
  38. package/dist/PowerPointViewer-Cl6jBPNw.d.ts.map +1 -1
  39. package/dist/{SurfaceChart3DScene-RI5G4BHS.js → SurfaceChart3DScene-36MT6QAK.js} +2 -2
  40. package/dist/SurfaceChart3DScene-36MT6QAK.js.br +0 -0
  41. package/dist/SurfaceChart3DScene-36MT6QAK.js.gz +0 -0
  42. package/dist/{SurfaceChart3DScene-ZUP4PRUZ.mjs → SurfaceChart3DScene-LWJCERTR.mjs} +1 -1
  43. package/dist/SurfaceChart3DScene-LWJCERTR.mjs.br +0 -0
  44. package/dist/SurfaceChart3DScene-LWJCERTR.mjs.gz +0 -0
  45. package/dist/{chunk-SUEZMQRT.mjs → chunk-2FSNTJVI.mjs} +1 -1
  46. package/dist/chunk-2FSNTJVI.mjs.br +0 -0
  47. package/dist/{chunk-SUEZMQRT.mjs.gz → chunk-2FSNTJVI.mjs.gz} +0 -0
  48. package/dist/{chunk-Y6GG2OOW.js → chunk-3AJ54EAB.js} +5 -0
  49. package/dist/chunk-3AJ54EAB.js.br +0 -0
  50. package/dist/chunk-3AJ54EAB.js.gz +0 -0
  51. package/dist/{chunk-LY5535CF.js → chunk-3WK4AE52.js} +5364 -1513
  52. package/dist/chunk-3WK4AE52.js.br +0 -0
  53. package/dist/chunk-3WK4AE52.js.gz +0 -0
  54. package/dist/{chunk-BX4XVY5X.js → chunk-45AVHO7M.js} +5 -5
  55. package/dist/chunk-45AVHO7M.js.br +0 -0
  56. package/dist/chunk-45AVHO7M.js.gz +0 -0
  57. package/dist/{chunk-MRBHJ26I.js → chunk-AARQTIMN.js} +489 -456
  58. package/dist/chunk-AARQTIMN.js.br +0 -0
  59. package/dist/chunk-AARQTIMN.js.gz +0 -0
  60. package/dist/{chunk-6BNPHEEX.mjs → chunk-C2BDHCL2.mjs} +5359 -1514
  61. package/dist/chunk-C2BDHCL2.mjs.br +0 -0
  62. package/dist/chunk-C2BDHCL2.mjs.gz +0 -0
  63. package/dist/{chunk-TAGG5YNA.mjs → chunk-HMX3MQR7.mjs} +5 -0
  64. package/dist/chunk-HMX3MQR7.mjs.br +0 -0
  65. package/dist/chunk-HMX3MQR7.mjs.gz +0 -0
  66. package/dist/{chunk-5T4Y4QPV.mjs → chunk-HXDNYDRJ.mjs} +22 -8
  67. package/dist/chunk-HXDNYDRJ.mjs.br +0 -0
  68. package/dist/chunk-HXDNYDRJ.mjs.gz +0 -0
  69. package/dist/{chunk-IK25LY4C.js → chunk-O27KNZLJ.js} +195 -181
  70. package/dist/chunk-O27KNZLJ.js.br +0 -0
  71. package/dist/chunk-O27KNZLJ.js.gz +0 -0
  72. package/dist/{chunk-4PL3GBSD.js → chunk-T7MY5L3O.js} +1607 -1388
  73. package/dist/chunk-T7MY5L3O.js.br +0 -0
  74. package/dist/chunk-T7MY5L3O.js.gz +0 -0
  75. package/dist/{chunk-VHFPZBUW.mjs → chunk-WRHPPTYF.mjs} +53 -20
  76. package/dist/chunk-WRHPPTYF.mjs.br +0 -0
  77. package/dist/chunk-WRHPPTYF.mjs.gz +0 -0
  78. package/dist/{chunk-N75WRHON.mjs → chunk-ZOEKVSSU.mjs} +361 -142
  79. package/dist/chunk-ZOEKVSSU.mjs.br +0 -0
  80. package/dist/chunk-ZOEKVSSU.mjs.gz +0 -0
  81. package/dist/i18n.js +4 -4
  82. package/dist/i18n.js.br +0 -0
  83. package/dist/i18n.js.gz +0 -0
  84. package/dist/i18n.mjs +1 -1
  85. package/dist/i18n.mjs.br +0 -0
  86. package/dist/i18n.mjs.gz +0 -0
  87. package/dist/index.d.ts +92 -0
  88. package/dist/index.js +47 -47
  89. package/dist/index.js.br +0 -0
  90. package/dist/index.js.gz +0 -0
  91. package/dist/index.mjs +6 -6
  92. package/dist/index.mjs.br +0 -0
  93. package/dist/index.mjs.gz +0 -0
  94. package/dist/internals.d.ts +157 -0
  95. package/dist/internals.d.ts.map +1 -1
  96. package/dist/internals.js +79 -79
  97. package/dist/internals.js.br +0 -0
  98. package/dist/internals.js.gz +0 -0
  99. package/dist/internals.mjs +4 -4
  100. package/dist/internals.mjs.br +0 -0
  101. package/dist/internals.mjs.gz +0 -0
  102. package/dist/viewer/index.d.ts +81 -0
  103. package/dist/viewer/index.js +27 -27
  104. package/dist/viewer/index.js.br +0 -0
  105. package/dist/viewer/index.js.gz +0 -0
  106. package/dist/viewer/index.mjs +6 -6
  107. package/dist/viewer/index.mjs.br +0 -0
  108. package/dist/viewer/index.mjs.gz +0 -0
  109. package/package.json +1 -1
  110. package/dist/AiChatPanel-A3ZMMVUA.js.br +0 -0
  111. package/dist/AiChatPanel-A3ZMMVUA.js.gz +0 -0
  112. package/dist/AiChatPanel-L5H455NZ.mjs.br +0 -0
  113. package/dist/AiChatPanel-L5H455NZ.mjs.gz +0 -0
  114. package/dist/Area3DChartScene-OAD36KIX.mjs.gz +0 -0
  115. package/dist/Area3DChartScene-R2CKCYCB.js.br +0 -0
  116. package/dist/Area3DChartScene-R2CKCYCB.js.gz +0 -0
  117. package/dist/Bar3DChartScene-CRRPMXGQ.js.br +0 -0
  118. package/dist/Bar3DChartScene-CRRPMXGQ.js.gz +0 -0
  119. package/dist/Bar3DChartScene-XNNXF26T.mjs.gz +0 -0
  120. package/dist/Line3DChartScene-44PLZML2.js.br +0 -0
  121. package/dist/Line3DChartScene-44PLZML2.js.gz +0 -0
  122. package/dist/Line3DChartScene-MNNPB3LZ.mjs.gz +0 -0
  123. package/dist/Model3DScene-5MUREFLY.mjs.br +0 -0
  124. package/dist/Model3DScene-5MUREFLY.mjs.gz +0 -0
  125. package/dist/Model3DScene-RYPYQPJH.js.gz +0 -0
  126. package/dist/PieChart3DScene-GACYCSSQ.js.br +0 -0
  127. package/dist/PieChart3DScene-GACYCSSQ.js.gz +0 -0
  128. package/dist/PieChart3DScene-KYZSSG5X.mjs.br +0 -0
  129. package/dist/PieChart3DScene-KYZSSG5X.mjs.gz +0 -0
  130. package/dist/SurfaceChart3DScene-RI5G4BHS.js.br +0 -0
  131. package/dist/SurfaceChart3DScene-RI5G4BHS.js.gz +0 -0
  132. package/dist/SurfaceChart3DScene-ZUP4PRUZ.mjs.br +0 -0
  133. package/dist/SurfaceChart3DScene-ZUP4PRUZ.mjs.gz +0 -0
  134. package/dist/chunk-4PL3GBSD.js.br +0 -0
  135. package/dist/chunk-4PL3GBSD.js.gz +0 -0
  136. package/dist/chunk-5T4Y4QPV.mjs.br +0 -0
  137. package/dist/chunk-5T4Y4QPV.mjs.gz +0 -0
  138. package/dist/chunk-6BNPHEEX.mjs.br +0 -0
  139. package/dist/chunk-6BNPHEEX.mjs.gz +0 -0
  140. package/dist/chunk-BX4XVY5X.js.br +0 -0
  141. package/dist/chunk-BX4XVY5X.js.gz +0 -0
  142. package/dist/chunk-IK25LY4C.js.br +0 -0
  143. package/dist/chunk-IK25LY4C.js.gz +0 -0
  144. package/dist/chunk-LY5535CF.js.br +0 -0
  145. package/dist/chunk-LY5535CF.js.gz +0 -0
  146. package/dist/chunk-MRBHJ26I.js.br +0 -0
  147. package/dist/chunk-MRBHJ26I.js.gz +0 -0
  148. package/dist/chunk-N75WRHON.mjs.br +0 -0
  149. package/dist/chunk-N75WRHON.mjs.gz +0 -0
  150. package/dist/chunk-SUEZMQRT.mjs.br +0 -0
  151. package/dist/chunk-TAGG5YNA.mjs.br +0 -0
  152. package/dist/chunk-TAGG5YNA.mjs.gz +0 -0
  153. package/dist/chunk-VHFPZBUW.mjs.br +0 -0
  154. package/dist/chunk-VHFPZBUW.mjs.gz +0 -0
  155. package/dist/chunk-Y6GG2OOW.js.br +0 -0
  156. package/dist/chunk-Y6GG2OOW.js.gz +0 -0
Binary file
Binary file
package/dist/i18n.js CHANGED
@@ -1,19 +1,19 @@
1
1
  'use strict';
2
2
 
3
- var chunkY6GG2OOW_js = require('./chunk-Y6GG2OOW.js');
3
+ var chunk3AJ54EAB_js = require('./chunk-3AJ54EAB.js');
4
4
  require('./chunk-4VNS5WPM.js');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "LOCALE_CATALOG", {
9
9
  enumerable: true,
10
- get: function () { return chunkY6GG2OOW_js.LOCALE_CATALOG; }
10
+ get: function () { return chunk3AJ54EAB_js.LOCALE_CATALOG; }
11
11
  });
12
12
  Object.defineProperty(exports, "keyToLabel", {
13
13
  enumerable: true,
14
- get: function () { return chunkY6GG2OOW_js.keyToLabel; }
14
+ get: function () { return chunk3AJ54EAB_js.keyToLabel; }
15
15
  });
16
16
  Object.defineProperty(exports, "translationsEn", {
17
17
  enumerable: true,
18
- get: function () { return chunkY6GG2OOW_js.translationsEn; }
18
+ get: function () { return chunk3AJ54EAB_js.translationsEn; }
19
19
  });
package/dist/i18n.js.br CHANGED
Binary file
package/dist/i18n.js.gz CHANGED
Binary file
package/dist/i18n.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export { LOCALE_CATALOG, keyToLabel, translationsEn } from './chunk-TAGG5YNA.mjs';
1
+ export { LOCALE_CATALOG, keyToLabel, translationsEn } from './chunk-HMX3MQR7.mjs';
2
2
  import './chunk-XGB3TDIC.mjs';
package/dist/i18n.mjs.br CHANGED
Binary file
package/dist/i18n.mjs.gz CHANGED
Binary file
package/dist/index.d.ts CHANGED
@@ -4872,6 +4872,87 @@ interface PptxSmartArtLayoutNode {
4872
4872
  * interpreter-when.ts`'s `evaluateWhen`, once per entry, ANDed.
4873
4873
  */
4874
4874
  chooseGuard?: PptxSmartArtWhen[];
4875
+ /**
4876
+ * The chain of every enclosing `dgm:choose`'s own GROUP identity + this
4877
+ * node's ordinal position within it + THAT branch's own condition,
4878
+ * outermost first - identifies WHICH `dgm:choose` instance and WHERE
4879
+ * within its own `dgm:if`/`dgm:else` list this node's branch sits, unlike
4880
+ * {@link chooseGuard} (a flat AND-chain of every condition with no group/
4881
+ * position identity, and no entry at all for a `dgm:else` branch, which
4882
+ * has no condition of its own - see that field's doc comment). `id` is a
4883
+ * synthetic, process-unique identifier assigned per `dgm:choose` instance
4884
+ * during flattening (`smartart-layout-definition-nesting.ts`'s
4885
+ * `nestedLayoutNodes`, a monotonic counter - NOT round-tripped, NOT the
4886
+ * choose's own `@_name`, which is not guaranteed unique across a whole
4887
+ * layoutDef); `ordinal` is 0-based document order within that ONE choose
4888
+ * (every `dgm:if` in order, then `dgm:else` last, if present); `guard` is
4889
+ * that branch's OWN condition (`undefined` for a `dgm:else` entry, which
4890
+ * has none - deliberately kept PER-ENTRY rather than cross-referenced by
4891
+ * index against {@link chooseGuard}, whose own length can diverge from
4892
+ * this chain's whenever an ancestor `dgm:else` contributed a group
4893
+ * position but no guard).
4894
+ *
4895
+ * Lets a consumer recover ECMA-376's real `dgm:choose` semantics - "the
4896
+ * FIRST branch whose condition holds wins, siblings never coexist" -
4897
+ * from the flattened `.children` array, where that grouping would
4898
+ * otherwise be lost: `balance--hier5.pptx`'s `balance_NN`/`left_NN_M`/
4899
+ * `right_NN_M` family (127 members across ~30 NESTED `dgm:choose`
4900
+ * instances, not one flat 127-branch choose) needs first-match-wins
4901
+ * WITHIN each individual choose to resolve to the single genuinely-live
4902
+ * arrangement, not the "every guard-true node is an independent
4903
+ * candidate" reading `smartart-layout-interpreter-composite-choose.ts`'s
4904
+ * `collectRawCandidates` used before this field existed - see that
4905
+ * module's own consumer of this field for the actual selection rule.
4906
+ * `undefined` (or an empty array) for a node reached without any
4907
+ * enclosing choose (a direct child, or a `dgm:forEach`-only path) -
4908
+ * every PRE-EXISTING caller that does not consult this field is
4909
+ * unaffected by its mere presence.
4910
+ */
4911
+ chooseGroups?: {
4912
+ id: string;
4913
+ ordinal: number;
4914
+ guard?: PptxSmartArtWhen;
4915
+ }[];
4916
+ /**
4917
+ * Every `dgm:presOf` candidate reachable through a `dgm:choose`/`dgm:if`/
4918
+ * `dgm:else` wrapping THIS node's OWN presOf (as opposed to
4919
+ * {@link chooseGuard}, which gates the layoutNode's own EXISTENCE), each
4920
+ * tagged with the FULL chain of enclosing `dgm:if` conditions that select
4921
+ * it (`guard`, empty for an unconditional or `dgm:else`-reached
4922
+ * candidate), in document order (every `dgm:if` then `dgm:else` last).
4923
+ * `undefined` when this node's presOf is not choose-guarded at all (the
4924
+ * overwhelmingly common case) - {@link presentationOf} already carries
4925
+ * the one-and-only value then. Exists for a genuinely conditional presOf
4926
+ * where TWO OR MORE branches each declare a real, DIFFERENT axis
4927
+ * (`funnel--flat3.pptx`'s `item1`/`item2`/`item3`, one literal axis per
4928
+ * data-point count): `smartart-layout-definition-constraints.ts`'s
4929
+ * `choosePresentationOf` (feeding {@link presentationOf}) can only ever
4930
+ * guess ONE branch statically, at parse time, with no diagram to
4931
+ * evaluate against; this field lets an interpret-time caller with the
4932
+ * actual diagram (`smartart-layout-interpreter-when.ts`'s
4933
+ * `resolvePresentationOf`, the one consumer) pick the branch PowerPoint's
4934
+ * own runtime would, first-match-wins.
4935
+ */
4936
+ presentationOfCandidates?: {
4937
+ guard: PptxSmartArtWhen[];
4938
+ presentationOf: PptxSmartArtIteratorAttributes;
4939
+ }[];
4940
+ /**
4941
+ * SESSION 17: every `dgm:rule` reachable through a `dgm:choose`/`dgm:if`/
4942
+ * `dgm:else` wrapping THIS node's `ruleLst` (a genuinely count-gated rule
4943
+ * set, e.g. `diverging-radial`'s own `w for="ch" forName="node"` ceiling:
4944
+ * 6 `dgm:if cnt<=N` branches, each its own `fact`), tagged with its guard
4945
+ * chain - the SAME shape {@link presentationOfCandidates} uses for
4946
+ * choose-guarded `presOf`, applied to `dgm:rule`. `undefined` when not
4947
+ * choose-guarded (`rules` above then carries the one set, the common
4948
+ * case). See `smartart-layout-interpreter-cycle-hub-ratio.ts`'s
4949
+ * `resolveHubToNodeRatio` (COM-verified live mechanism, not a guess) for
4950
+ * how the guard is evaluated against the real satellite count.
4951
+ */
4952
+ ruleCandidates?: {
4953
+ guard: PptxSmartArtWhen[];
4954
+ rule: PptxSmartArtNumericRule;
4955
+ }[];
4875
4956
  }
4876
4957
  /** Metadata and root node from DiagramML CT_DiagramDefinition. */
4877
4958
  interface PptxSmartArtLayoutDefinition {
@@ -12211,6 +12292,17 @@ interface ViewerAdvancedOptions {
12211
12292
  * for their machine. See `resolve3DRenderingFlags`.
12212
12293
  */
12213
12294
  disable3DRendering: boolean;
12295
+ /**
12296
+ * `p:animEffect/@filter="pixelate"` defaults to snapping the element to
12297
+ * its end state (`cutIn`/`cutOut`), matching PowerPoint's own behaviour
12298
+ * (COM `CreateVideo` frame-diffing shows PowerPoint performs no animation
12299
+ * at all for this filter value). This turns on the blocky mosaic reveal
12300
+ * this renderer can build instead, for a viewer that would rather show
12301
+ * something animating than PowerPoint's own instant swap. See
12302
+ * `resolveFilterEffect` in `animation-filter-effects.ts` and
12303
+ * `docs/guide/visual-effects.md`.
12304
+ */
12305
+ pixelateMosaicAnimation: boolean;
12214
12306
  openDocumentsView: OpenDocumentsView;
12215
12307
  slideShowShowMenuOnRightClick: boolean;
12216
12308
  slideShowShowPopupToolbar: boolean;
package/dist/index.js CHANGED
@@ -1,176 +1,176 @@
1
1
  'use strict';
2
2
 
3
- var chunk4PL3GBSD_js = require('./chunk-4PL3GBSD.js');
4
- require('./chunk-BX4XVY5X.js');
5
- var chunkMRBHJ26I_js = require('./chunk-MRBHJ26I.js');
6
- var chunkIK25LY4C_js = require('./chunk-IK25LY4C.js');
7
- var chunkLY5535CF_js = require('./chunk-LY5535CF.js');
8
- var chunkY6GG2OOW_js = require('./chunk-Y6GG2OOW.js');
3
+ var chunkT7MY5L3O_js = require('./chunk-T7MY5L3O.js');
4
+ require('./chunk-45AVHO7M.js');
5
+ var chunkAARQTIMN_js = require('./chunk-AARQTIMN.js');
6
+ var chunkO27KNZLJ_js = require('./chunk-O27KNZLJ.js');
7
+ var chunk3WK4AE52_js = require('./chunk-3WK4AE52.js');
8
+ var chunk3AJ54EAB_js = require('./chunk-3AJ54EAB.js');
9
9
  require('./chunk-4VNS5WPM.js');
10
10
 
11
11
 
12
12
 
13
13
  Object.defineProperty(exports, "PowerPointViewer", {
14
14
  enumerable: true,
15
- get: function () { return chunk4PL3GBSD_js.PowerPointViewer; }
15
+ get: function () { return chunkT7MY5L3O_js.PowerPointViewer; }
16
16
  });
17
17
  Object.defineProperty(exports, "SlideCanvas", {
18
18
  enumerable: true,
19
- get: function () { return chunk4PL3GBSD_js.SlideCanvas; }
19
+ get: function () { return chunkT7MY5L3O_js.SlideCanvas; }
20
20
  });
21
21
  Object.defineProperty(exports, "SlideTemplateGalleryDialog", {
22
22
  enumerable: true,
23
- get: function () { return chunk4PL3GBSD_js.SlideTemplateGalleryDialog; }
23
+ get: function () { return chunkT7MY5L3O_js.SlideTemplateGalleryDialog; }
24
24
  });
25
25
  Object.defineProperty(exports, "SlideTemplatePreview", {
26
26
  enumerable: true,
27
- get: function () { return chunk4PL3GBSD_js.SlideTemplatePreview; }
27
+ get: function () { return chunkT7MY5L3O_js.SlideTemplatePreview; }
28
28
  });
29
29
  Object.defineProperty(exports, "Toolbar", {
30
30
  enumerable: true,
31
- get: function () { return chunk4PL3GBSD_js.Toolbar; }
31
+ get: function () { return chunkT7MY5L3O_js.Toolbar; }
32
32
  });
33
33
  Object.defineProperty(exports, "ViewerThemeProvider", {
34
34
  enumerable: true,
35
- get: function () { return chunk4PL3GBSD_js.ViewerThemeProvider; }
35
+ get: function () { return chunkT7MY5L3O_js.ViewerThemeProvider; }
36
36
  });
37
37
  Object.defineProperty(exports, "useViewerTheme", {
38
38
  enumerable: true,
39
- get: function () { return chunk4PL3GBSD_js.useViewerTheme; }
39
+ get: function () { return chunkT7MY5L3O_js.useViewerTheme; }
40
40
  });
41
41
  Object.defineProperty(exports, "renderToCanvas", {
42
42
  enumerable: true,
43
- get: function () { return chunkMRBHJ26I_js.renderToCanvas; }
43
+ get: function () { return chunkAARQTIMN_js.renderToCanvas; }
44
44
  });
45
45
  Object.defineProperty(exports, "useViewerBuildingBlocks", {
46
46
  enumerable: true,
47
- get: function () { return chunkMRBHJ26I_js.useViewerBuildingBlocks; }
47
+ get: function () { return chunkAARQTIMN_js.useViewerBuildingBlocks; }
48
48
  });
49
49
  Object.defineProperty(exports, "getAnimationInitialStyle", {
50
50
  enumerable: true,
51
- get: function () { return chunkIK25LY4C_js.getAnimationInitialStyle; }
51
+ get: function () { return chunkO27KNZLJ_js.getAnimationInitialStyle; }
52
52
  });
53
53
  Object.defineProperty(exports, "AVATAR_COLOR_SWATCHES", {
54
54
  enumerable: true,
55
- get: function () { return chunkLY5535CF_js.AVATAR_COLOR_SWATCHES; }
55
+ get: function () { return chunk3WK4AE52_js.AVATAR_COLOR_SWATCHES; }
56
56
  });
57
57
  Object.defineProperty(exports, "DEFAULT_VIEWER_PROFILE", {
58
58
  enumerable: true,
59
- get: function () { return chunkLY5535CF_js.DEFAULT_VIEWER_PROFILE; }
59
+ get: function () { return chunk3WK4AE52_js.DEFAULT_VIEWER_PROFILE; }
60
60
  });
61
61
  Object.defineProperty(exports, "PPTX_OPEN_ACCEPT", {
62
62
  enumerable: true,
63
- get: function () { return chunkLY5535CF_js.PPTX_OPEN_ACCEPT; }
63
+ get: function () { return chunk3WK4AE52_js.PPTX_OPEN_ACCEPT; }
64
64
  });
65
65
  Object.defineProperty(exports, "PRESENTATION_OPEN_EXTENSIONS", {
66
66
  enumerable: true,
67
- get: function () { return chunkLY5535CF_js.PRESENTATION_OPEN_EXTENSIONS; }
67
+ get: function () { return chunk3WK4AE52_js.PRESENTATION_OPEN_EXTENSIONS; }
68
68
  });
69
69
  Object.defineProperty(exports, "SLIDE_TEMPLATES", {
70
70
  enumerable: true,
71
- get: function () { return chunkLY5535CF_js.SLIDE_TEMPLATES; }
71
+ get: function () { return chunk3WK4AE52_js.SLIDE_TEMPLATES; }
72
72
  });
73
73
  Object.defineProperty(exports, "THEME_CATALOG", {
74
74
  enumerable: true,
75
- get: function () { return chunkLY5535CF_js.THEME_CATALOG; }
75
+ get: function () { return chunk3WK4AE52_js.THEME_CATALOG; }
76
76
  });
77
77
  Object.defineProperty(exports, "VIEWER_PREFS_STORAGE_KEY", {
78
78
  enumerable: true,
79
- get: function () { return chunkLY5535CF_js.VIEWER_PREFS_STORAGE_KEY; }
79
+ get: function () { return chunk3WK4AE52_js.VIEWER_PREFS_STORAGE_KEY; }
80
80
  });
81
81
  Object.defineProperty(exports, "buildSlideTemplateContent", {
82
82
  enumerable: true,
83
- get: function () { return chunkLY5535CF_js.buildSlideTemplateContent; }
83
+ get: function () { return chunk3WK4AE52_js.buildSlideTemplateContent; }
84
84
  });
85
85
  Object.defineProperty(exports, "buildSlideTemplateSlide", {
86
86
  enumerable: true,
87
- get: function () { return chunkLY5535CF_js.buildSlideTemplateSlide; }
87
+ get: function () { return chunk3WK4AE52_js.buildSlideTemplateSlide; }
88
88
  });
89
89
  Object.defineProperty(exports, "clearAllLocalViewerData", {
90
90
  enumerable: true,
91
- get: function () { return chunkLY5535CF_js.clearAllLocalViewerData; }
91
+ get: function () { return chunk3WK4AE52_js.clearAllLocalViewerData; }
92
92
  });
93
93
  Object.defineProperty(exports, "clearStoredViewerPrefs", {
94
94
  enumerable: true,
95
- get: function () { return chunkLY5535CF_js.clearStoredViewerPrefs; }
95
+ get: function () { return chunk3WK4AE52_js.clearStoredViewerPrefs; }
96
96
  });
97
97
  Object.defineProperty(exports, "defaultCssVars", {
98
98
  enumerable: true,
99
- get: function () { return chunkLY5535CF_js.defaultCssVars; }
99
+ get: function () { return chunk3WK4AE52_js.defaultCssVars; }
100
100
  });
101
101
  Object.defineProperty(exports, "defaultRadius", {
102
102
  enumerable: true,
103
- get: function () { return chunkLY5535CF_js.defaultRadius; }
103
+ get: function () { return chunk3WK4AE52_js.defaultRadius; }
104
104
  });
105
105
  Object.defineProperty(exports, "defaultThemeColors", {
106
106
  enumerable: true,
107
- get: function () { return chunkLY5535CF_js.defaultThemeColors; }
107
+ get: function () { return chunk3WK4AE52_js.defaultThemeColors; }
108
108
  });
109
109
  Object.defineProperty(exports, "getLocalStorageUsageSummary", {
110
110
  enumerable: true,
111
- get: function () { return chunkLY5535CF_js.getLocalStorageUsageSummary; }
111
+ get: function () { return chunk3WK4AE52_js.getLocalStorageUsageSummary; }
112
112
  });
113
113
  Object.defineProperty(exports, "isLegacyBinaryPresentation", {
114
114
  enumerable: true,
115
- get: function () { return chunkLY5535CF_js.isLegacyBinaryPresentation; }
115
+ get: function () { return chunk3WK4AE52_js.isLegacyBinaryPresentation; }
116
116
  });
117
117
  Object.defineProperty(exports, "isSupportedPresentationFile", {
118
118
  enumerable: true,
119
- get: function () { return chunkLY5535CF_js.isSupportedPresentationFile; }
119
+ get: function () { return chunk3WK4AE52_js.isSupportedPresentationFile; }
120
120
  });
121
121
  Object.defineProperty(exports, "presentationBaseName", {
122
122
  enumerable: true,
123
- get: function () { return chunkLY5535CF_js.presentationBaseName; }
123
+ get: function () { return chunk3WK4AE52_js.presentationBaseName; }
124
124
  });
125
125
  Object.defineProperty(exports, "readStoredViewerPrefs", {
126
126
  enumerable: true,
127
- get: function () { return chunkLY5535CF_js.readStoredViewerPrefs; }
127
+ get: function () { return chunk3WK4AE52_js.readStoredViewerPrefs; }
128
128
  });
129
129
  Object.defineProperty(exports, "resolveProfileInitial", {
130
130
  enumerable: true,
131
- get: function () { return chunkLY5535CF_js.resolveProfileInitial; }
131
+ get: function () { return chunk3WK4AE52_js.resolveProfileInitial; }
132
132
  });
133
133
  Object.defineProperty(exports, "resolveThemeCatalogEntry", {
134
134
  enumerable: true,
135
- get: function () { return chunkLY5535CF_js.resolveThemeCatalogEntry; }
135
+ get: function () { return chunk3WK4AE52_js.resolveThemeCatalogEntry; }
136
136
  });
137
137
  Object.defineProperty(exports, "saveViewerProfile", {
138
138
  enumerable: true,
139
- get: function () { return chunkLY5535CF_js.saveViewerProfile; }
139
+ get: function () { return chunk3WK4AE52_js.saveViewerProfile; }
140
140
  });
141
141
  Object.defineProperty(exports, "savedPresentationFileName", {
142
142
  enumerable: true,
143
- get: function () { return chunkLY5535CF_js.savedPresentationFileName; }
143
+ get: function () { return chunk3WK4AE52_js.savedPresentationFileName; }
144
144
  });
145
145
  Object.defineProperty(exports, "themeToCssVars", {
146
146
  enumerable: true,
147
- get: function () { return chunkLY5535CF_js.themeToCssVars; }
147
+ get: function () { return chunk3WK4AE52_js.themeToCssVars; }
148
148
  });
149
149
  Object.defineProperty(exports, "vermilionDarkColors", {
150
150
  enumerable: true,
151
- get: function () { return chunkLY5535CF_js.vermilionDarkColors; }
151
+ get: function () { return chunk3WK4AE52_js.vermilionDarkColors; }
152
152
  });
153
153
  Object.defineProperty(exports, "vermilionDarkTheme", {
154
154
  enumerable: true,
155
- get: function () { return chunkLY5535CF_js.vermilionDarkTheme; }
155
+ get: function () { return chunk3WK4AE52_js.vermilionDarkTheme; }
156
156
  });
157
157
  Object.defineProperty(exports, "vermilionLightColors", {
158
158
  enumerable: true,
159
- get: function () { return chunkLY5535CF_js.vermilionLightColors; }
159
+ get: function () { return chunk3WK4AE52_js.vermilionLightColors; }
160
160
  });
161
161
  Object.defineProperty(exports, "vermilionLightTheme", {
162
162
  enumerable: true,
163
- get: function () { return chunkLY5535CF_js.vermilionLightTheme; }
163
+ get: function () { return chunk3WK4AE52_js.vermilionLightTheme; }
164
164
  });
165
165
  Object.defineProperty(exports, "vermilionRadius", {
166
166
  enumerable: true,
167
- get: function () { return chunkLY5535CF_js.vermilionRadius; }
167
+ get: function () { return chunk3WK4AE52_js.vermilionRadius; }
168
168
  });
169
169
  Object.defineProperty(exports, "writeStoredViewerPrefs", {
170
170
  enumerable: true,
171
- get: function () { return chunkLY5535CF_js.writeStoredViewerPrefs; }
171
+ get: function () { return chunk3WK4AE52_js.writeStoredViewerPrefs; }
172
172
  });
173
173
  Object.defineProperty(exports, "LOCALE_CATALOG", {
174
174
  enumerable: true,
175
- get: function () { return chunkY6GG2OOW_js.LOCALE_CATALOG; }
175
+ get: function () { return chunk3AJ54EAB_js.LOCALE_CATALOG; }
176
176
  });
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-N75WRHON.mjs';
2
- import './chunk-SUEZMQRT.mjs';
3
- export { renderToCanvas, useViewerBuildingBlocks } from './chunk-VHFPZBUW.mjs';
4
- export { getAnimationInitialStyle } from './chunk-5T4Y4QPV.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, defaultCssVars, defaultRadius, defaultThemeColors, getLocalStorageUsageSummary, isLegacyBinaryPresentation, isSupportedPresentationFile, presentationBaseName, readStoredViewerPrefs, resolveProfileInitial, resolveThemeCatalogEntry, saveViewerProfile, savedPresentationFileName, themeToCssVars, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, writeStoredViewerPrefs } from './chunk-6BNPHEEX.mjs';
6
- export { LOCALE_CATALOG } from './chunk-TAGG5YNA.mjs';
1
+ export { PowerPointViewer, SlideCanvas, SlideTemplateGalleryDialog, SlideTemplatePreview, Toolbar, ViewerThemeProvider, useViewerTheme } from './chunk-ZOEKVSSU.mjs';
2
+ import './chunk-2FSNTJVI.mjs';
3
+ export { renderToCanvas, useViewerBuildingBlocks } from './chunk-WRHPPTYF.mjs';
4
+ export { getAnimationInitialStyle } from './chunk-HXDNYDRJ.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, defaultCssVars, defaultRadius, defaultThemeColors, getLocalStorageUsageSummary, isLegacyBinaryPresentation, isSupportedPresentationFile, presentationBaseName, readStoredViewerPrefs, resolveProfileInitial, resolveThemeCatalogEntry, saveViewerProfile, savedPresentationFileName, themeToCssVars, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, writeStoredViewerPrefs } from './chunk-C2BDHCL2.mjs';
6
+ export { LOCALE_CATALOG } from './chunk-HMX3MQR7.mjs';
7
7
  import './chunk-XGB3TDIC.mjs';
package/dist/index.mjs.br CHANGED
Binary file
package/dist/index.mjs.gz CHANGED
Binary file
@@ -4852,6 +4852,87 @@ interface PptxSmartArtLayoutNode {
4852
4852
  * interpreter-when.ts`'s `evaluateWhen`, once per entry, ANDed.
4853
4853
  */
4854
4854
  chooseGuard?: PptxSmartArtWhen[];
4855
+ /**
4856
+ * The chain of every enclosing `dgm:choose`'s own GROUP identity + this
4857
+ * node's ordinal position within it + THAT branch's own condition,
4858
+ * outermost first - identifies WHICH `dgm:choose` instance and WHERE
4859
+ * within its own `dgm:if`/`dgm:else` list this node's branch sits, unlike
4860
+ * {@link chooseGuard} (a flat AND-chain of every condition with no group/
4861
+ * position identity, and no entry at all for a `dgm:else` branch, which
4862
+ * has no condition of its own - see that field's doc comment). `id` is a
4863
+ * synthetic, process-unique identifier assigned per `dgm:choose` instance
4864
+ * during flattening (`smartart-layout-definition-nesting.ts`'s
4865
+ * `nestedLayoutNodes`, a monotonic counter - NOT round-tripped, NOT the
4866
+ * choose's own `@_name`, which is not guaranteed unique across a whole
4867
+ * layoutDef); `ordinal` is 0-based document order within that ONE choose
4868
+ * (every `dgm:if` in order, then `dgm:else` last, if present); `guard` is
4869
+ * that branch's OWN condition (`undefined` for a `dgm:else` entry, which
4870
+ * has none - deliberately kept PER-ENTRY rather than cross-referenced by
4871
+ * index against {@link chooseGuard}, whose own length can diverge from
4872
+ * this chain's whenever an ancestor `dgm:else` contributed a group
4873
+ * position but no guard).
4874
+ *
4875
+ * Lets a consumer recover ECMA-376's real `dgm:choose` semantics - "the
4876
+ * FIRST branch whose condition holds wins, siblings never coexist" -
4877
+ * from the flattened `.children` array, where that grouping would
4878
+ * otherwise be lost: `balance--hier5.pptx`'s `balance_NN`/`left_NN_M`/
4879
+ * `right_NN_M` family (127 members across ~30 NESTED `dgm:choose`
4880
+ * instances, not one flat 127-branch choose) needs first-match-wins
4881
+ * WITHIN each individual choose to resolve to the single genuinely-live
4882
+ * arrangement, not the "every guard-true node is an independent
4883
+ * candidate" reading `smartart-layout-interpreter-composite-choose.ts`'s
4884
+ * `collectRawCandidates` used before this field existed - see that
4885
+ * module's own consumer of this field for the actual selection rule.
4886
+ * `undefined` (or an empty array) for a node reached without any
4887
+ * enclosing choose (a direct child, or a `dgm:forEach`-only path) -
4888
+ * every PRE-EXISTING caller that does not consult this field is
4889
+ * unaffected by its mere presence.
4890
+ */
4891
+ chooseGroups?: {
4892
+ id: string;
4893
+ ordinal: number;
4894
+ guard?: PptxSmartArtWhen;
4895
+ }[];
4896
+ /**
4897
+ * Every `dgm:presOf` candidate reachable through a `dgm:choose`/`dgm:if`/
4898
+ * `dgm:else` wrapping THIS node's OWN presOf (as opposed to
4899
+ * {@link chooseGuard}, which gates the layoutNode's own EXISTENCE), each
4900
+ * tagged with the FULL chain of enclosing `dgm:if` conditions that select
4901
+ * it (`guard`, empty for an unconditional or `dgm:else`-reached
4902
+ * candidate), in document order (every `dgm:if` then `dgm:else` last).
4903
+ * `undefined` when this node's presOf is not choose-guarded at all (the
4904
+ * overwhelmingly common case) - {@link presentationOf} already carries
4905
+ * the one-and-only value then. Exists for a genuinely conditional presOf
4906
+ * where TWO OR MORE branches each declare a real, DIFFERENT axis
4907
+ * (`funnel--flat3.pptx`'s `item1`/`item2`/`item3`, one literal axis per
4908
+ * data-point count): `smartart-layout-definition-constraints.ts`'s
4909
+ * `choosePresentationOf` (feeding {@link presentationOf}) can only ever
4910
+ * guess ONE branch statically, at parse time, with no diagram to
4911
+ * evaluate against; this field lets an interpret-time caller with the
4912
+ * actual diagram (`smartart-layout-interpreter-when.ts`'s
4913
+ * `resolvePresentationOf`, the one consumer) pick the branch PowerPoint's
4914
+ * own runtime would, first-match-wins.
4915
+ */
4916
+ presentationOfCandidates?: {
4917
+ guard: PptxSmartArtWhen[];
4918
+ presentationOf: PptxSmartArtIteratorAttributes;
4919
+ }[];
4920
+ /**
4921
+ * SESSION 17: every `dgm:rule` reachable through a `dgm:choose`/`dgm:if`/
4922
+ * `dgm:else` wrapping THIS node's `ruleLst` (a genuinely count-gated rule
4923
+ * set, e.g. `diverging-radial`'s own `w for="ch" forName="node"` ceiling:
4924
+ * 6 `dgm:if cnt<=N` branches, each its own `fact`), tagged with its guard
4925
+ * chain - the SAME shape {@link presentationOfCandidates} uses for
4926
+ * choose-guarded `presOf`, applied to `dgm:rule`. `undefined` when not
4927
+ * choose-guarded (`rules` above then carries the one set, the common
4928
+ * case). See `smartart-layout-interpreter-cycle-hub-ratio.ts`'s
4929
+ * `resolveHubToNodeRatio` (COM-verified live mechanism, not a guess) for
4930
+ * how the guard is evaluated against the real satellite count.
4931
+ */
4932
+ ruleCandidates?: {
4933
+ guard: PptxSmartArtWhen[];
4934
+ rule: PptxSmartArtNumericRule;
4935
+ }[];
4855
4936
  }
4856
4937
  /** Metadata and root node from DiagramML CT_DiagramDefinition. */
4857
4938
  interface PptxSmartArtLayoutDefinition {
@@ -12378,6 +12459,17 @@ interface ViewerAdvancedOptions {
12378
12459
  * for their machine. See `resolve3DRenderingFlags`.
12379
12460
  */
12380
12461
  disable3DRendering: boolean;
12462
+ /**
12463
+ * `p:animEffect/@filter="pixelate"` defaults to snapping the element to
12464
+ * its end state (`cutIn`/`cutOut`), matching PowerPoint's own behaviour
12465
+ * (COM `CreateVideo` frame-diffing shows PowerPoint performs no animation
12466
+ * at all for this filter value). This turns on the blocky mosaic reveal
12467
+ * this renderer can build instead, for a viewer that would rather show
12468
+ * something animating than PowerPoint's own instant swap. See
12469
+ * `resolveFilterEffect` in `animation-filter-effects.ts` and
12470
+ * `docs/guide/visual-effects.md`.
12471
+ */
12472
+ pixelateMosaicAnimation: boolean;
12381
12473
  openDocumentsView: OpenDocumentsView;
12382
12474
  slideShowShowMenuOnRightClick: boolean;
12383
12475
  slideShowShowPopupToolbar: boolean;
@@ -12537,6 +12629,37 @@ interface CompatibilityWarningToast {
12537
12629
  /** `{{code}}` for the generic fallback key; `undefined` for a mapped code. */
12538
12630
  readonly params?: Readonly<Record<string, string>>;
12539
12631
  }
12632
+ //#endregion
12633
+ //#region src/render/run-program-notice.d.ts
12634
+ /**
12635
+ * run-program-notice.ts: turn a resolved `ppaction://program` command string
12636
+ * into the non-blocking notice a binding should show during a running show.
12637
+ *
12638
+ * PowerPoint's "Run program" action (`a:hlinkClick` -> `ppaction://program`,
12639
+ * `packages/shared/src/render/presentation-action.ts`'s `runProgram` intent)
12640
+ * names a free-text "Program to run:" command the author typed, e.g.
12641
+ * `notepad.exe C:\temp\notes.txt`. Path and arguments are ONE unstructured
12642
+ * string; OOXML has no separate arguments field, so this module does not try
12643
+ * to split one out.
12644
+ *
12645
+ * A browser cannot launch a local executable, so the honest behavior on
12646
+ * click is: show the presenter a small, dismissible notice naming the exact
12647
+ * command PowerPoint would have run, with a Copy button, rather than doing
12648
+ * nothing (silently) or blocking the show with a modal dialog.
12649
+ *
12650
+ * Framework-agnostic: no React, Vue, Angular, Svelte or DOM imports.
12651
+ */
12652
+ /** A run-program notice ready for a binding's toast/notice UI to render. */
12653
+ interface RunProgramNotice {
12654
+ /** Stable id for this invocation, so a binding can dedupe/key a toast list. */
12655
+ readonly id: string;
12656
+ /** The exact resolved command string (path plus whatever arguments the author typed). */
12657
+ readonly target: string;
12658
+ /** i18n key for the notice body. Interpolates `{{target}}`. */
12659
+ readonly messageKey: string;
12660
+ /** i18n key for the Copy button label. */
12661
+ readonly copyLabelKey: string;
12662
+ }
12540
12663
 
12541
12664
  //#region src/viewer/types-core.d.ts
12542
12665
  /**
@@ -13820,6 +13943,14 @@ interface UsePresentationModeInput {
13820
13943
  };
13821
13944
  /** The deck's resolved theme colour map, for a scheme-colour (`a:schemeClr`) animation stop. */
13822
13945
  themeColorMap?: Readonly<Record<string, string>>;
13946
+ /**
13947
+ * `viewerOptions.advanced.pixelateMosaicAnimation`. `true` plays the
13948
+ * blocky mosaic reveal for `p:animEffect/@filter="pixelate"`; omitted or
13949
+ * `false` (the default, matching PowerPoint's own behaviour) snaps the
13950
+ * element to its end state. See `resolveFilterEffect`'s doc in
13951
+ * `pptx-viewer-shared`'s `animation-filter-effects.ts`.
13952
+ */
13953
+ pixelateMosaicAnimation?: boolean;
13823
13954
  activeSlideIndex: number;
13824
13955
  containerRef: React.RefObject<HTMLElement | null>;
13825
13956
  /** Raw PPTX bytes: forwarded to audience window for content sharing. */
@@ -13872,6 +14003,13 @@ interface UsePresentationModeInput {
13872
14003
  activeCustomShowId?: string | null;
13873
14004
  /** Switch the active custom show (does not itself navigate). */
13874
14005
  onSetActiveCustomShowId?: (id: string | null) => void;
14006
+ /**
14007
+ * Push a `ppaction://program` ("Run program") notice onto the running
14008
+ * show's toast stack, naming the command PowerPoint would have run since
14009
+ * a browser cannot launch it. Fire-and-forget: the click still counts as
14010
+ * handled regardless of whether this is wired up.
14011
+ */
14012
+ onAddRunProgramNotice?: (notice: RunProgramNotice) => void;
13875
14013
  }
13876
14014
  interface UsePresentationModeResult {
13877
14015
  presentationSlideIndex: number;
@@ -15649,6 +15787,13 @@ interface UsePresentationSetupInput {
15649
15787
  onSetActiveCustomShowId?: (id: string | null) => void;
15650
15788
  /** Options > Advanced > "End with black slide" (default true). */
15651
15789
  endWithBlackSlide?: boolean;
15790
+ /**
15791
+ * Options > Advanced > "Show a mosaic effect for Pixelate transitions"
15792
+ * (default false, matching PowerPoint's own instant-swap behaviour for
15793
+ * `p:animEffect/@filter="pixelate"`). See `resolveFilterEffect`'s doc in
15794
+ * `pptx-viewer-shared`'s `animation-filter-effects.ts`.
15795
+ */
15796
+ pixelateMosaicAnimation?: boolean;
15652
15797
  /**
15653
15798
  * Options > Advanced > "Prompt to keep ink annotations when exiting"
15654
15799
  * (default true). When false, exits skip the keep/discard dialog.
@@ -15662,6 +15807,8 @@ interface UsePresentationSetupInput {
15662
15807
  * without this callback the key is mapped and then lands nowhere.
15663
15808
  */
15664
15809
  onToggleSubtitles?: () => void;
15810
+ /** `ppaction://program`: push a non-blocking "cannot launch this" notice. */
15811
+ onAddRunProgramNotice?: (notice: RunProgramNotice) => void;
15665
15812
  }
15666
15813
  interface PresentationSetupResult {
15667
15814
  presentation: UsePresentationModeResult;
@@ -16387,6 +16534,14 @@ interface UseAnimationPlaybackInput {
16387
16534
  };
16388
16535
  /** The deck's resolved theme colour map, for a scheme-colour (`a:schemeClr`) animation stop. */
16389
16536
  themeColorMap?: Readonly<Record<string, string>>;
16537
+ /**
16538
+ * `viewerOptions.advanced.pixelateMosaicAnimation`. `true` plays the
16539
+ * blocky mosaic reveal for `p:animEffect/@filter="pixelate"`; omitted or
16540
+ * `false` (the default, matching PowerPoint's own behaviour) snaps the
16541
+ * element to its end state. See `resolveFilterEffect`'s doc in
16542
+ * `pptx-viewer-shared`'s `animation-filter-effects.ts`.
16543
+ */
16544
+ pixelateMosaicAnimation?: boolean;
16390
16545
  }
16391
16546
  /** How a slide's animation timeline should be seeded when it becomes active. */
16392
16547
  interface SeedSlideAnimationOptions {
@@ -16551,6 +16706,8 @@ interface UseSlideNavigationInput {
16551
16706
  onPlayMedia?: (elementId: string | undefined) => void;
16552
16707
  /** `ppaction://ole?verb=<n>`. */
16553
16708
  onOleVerb?: (verb: number, elementId: string | undefined) => void;
16709
+ /** `ppaction://program`. */
16710
+ onRunProgram?: (target: string) => void;
16554
16711
  }
16555
16712
  interface UseSlideNavigationResult {
16556
16713
  movePresentationSlide: (direction: 1 | -1, trigger?: SlideAdvanceTrigger) => void;