pptx-react-viewer 2.16.9 → 2.17.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 (127) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/{AiChatPanel-EPMBL6EA.js → AiChatPanel-HCHCVQN2.js} +24 -24
  3. package/dist/AiChatPanel-HCHCVQN2.js.br +0 -0
  4. package/dist/AiChatPanel-HCHCVQN2.js.gz +0 -0
  5. package/dist/{AiChatPanel-XHKYPYPH.mjs → AiChatPanel-RZ4A7P4H.mjs} +4 -4
  6. package/dist/AiChatPanel-RZ4A7P4H.mjs.br +0 -0
  7. package/dist/AiChatPanel-RZ4A7P4H.mjs.gz +0 -0
  8. package/dist/{Model3DScene-YMIAGRPG.mjs → Model3DScene-I7FR74AD.mjs} +1 -1
  9. package/dist/Model3DScene-I7FR74AD.mjs.br +0 -0
  10. package/dist/Model3DScene-I7FR74AD.mjs.gz +0 -0
  11. package/dist/{Model3DScene-DUJOZA2B.js → Model3DScene-LK7LSQNH.js} +2 -2
  12. package/dist/Model3DScene-LK7LSQNH.js.br +0 -0
  13. package/dist/Model3DScene-LK7LSQNH.js.gz +0 -0
  14. package/dist/PowerPointViewer-Du7u4INi.d.ts.map +1 -1
  15. package/dist/{SurfaceChart3DScene-Q47OEJXS.mjs → SurfaceChart3DScene-DEQP5O3U.mjs} +1 -1
  16. package/dist/SurfaceChart3DScene-DEQP5O3U.mjs.br +0 -0
  17. package/dist/SurfaceChart3DScene-DEQP5O3U.mjs.gz +0 -0
  18. package/dist/{SurfaceChart3DScene-TNCHWQAK.js → SurfaceChart3DScene-ODQY77SZ.js} +2 -2
  19. package/dist/SurfaceChart3DScene-ODQY77SZ.js.br +0 -0
  20. package/dist/SurfaceChart3DScene-ODQY77SZ.js.gz +0 -0
  21. package/dist/{chunk-3KIKPDAJ.mjs → chunk-422DF424.mjs} +742 -2294
  22. package/dist/chunk-422DF424.mjs.br +0 -0
  23. package/dist/chunk-422DF424.mjs.gz +0 -0
  24. package/dist/{chunk-WK22Z7PK.js → chunk-5BXATG54.js} +520 -868
  25. package/dist/chunk-5BXATG54.js.br +0 -0
  26. package/dist/chunk-5BXATG54.js.gz +0 -0
  27. package/dist/{chunk-Y2KIB3QH.js → chunk-7JPLVECA.js} +44829 -39322
  28. package/dist/chunk-7JPLVECA.js.br +0 -0
  29. package/dist/chunk-7JPLVECA.js.gz +0 -0
  30. package/dist/{chunk-DVZF4ARG.js → chunk-AONFHTTJ.js} +22 -0
  31. package/dist/chunk-AONFHTTJ.js.br +0 -0
  32. package/dist/chunk-AONFHTTJ.js.gz +0 -0
  33. package/dist/{chunk-PI5SFTDC.js → chunk-ATOUVRRQ.js} +3 -3
  34. package/dist/chunk-ATOUVRRQ.js.br +0 -0
  35. package/dist/chunk-ATOUVRRQ.js.gz +0 -0
  36. package/dist/{chunk-EL2YF26P.mjs → chunk-FXJOTEPO.mjs} +1 -1
  37. package/dist/chunk-FXJOTEPO.mjs.br +0 -0
  38. package/dist/chunk-FXJOTEPO.mjs.gz +0 -0
  39. package/dist/{chunk-YWKUIUQX.mjs → chunk-K2QU73KB.mjs} +44784 -39286
  40. package/dist/chunk-K2QU73KB.mjs.br +0 -0
  41. package/dist/chunk-K2QU73KB.mjs.gz +0 -0
  42. package/dist/{chunk-VHME5BE6.mjs → chunk-MQHC5TXI.mjs} +318 -665
  43. package/dist/chunk-MQHC5TXI.mjs.br +0 -0
  44. package/dist/chunk-MQHC5TXI.mjs.gz +0 -0
  45. package/dist/{chunk-VL7ZT3ID.js → chunk-NQJPPIVH.js} +1681 -3233
  46. package/dist/chunk-NQJPPIVH.js.br +0 -0
  47. package/dist/chunk-NQJPPIVH.js.gz +0 -0
  48. package/dist/{chunk-5IUEPQTK.mjs → chunk-S64T7C4V.mjs} +22 -0
  49. package/dist/chunk-S64T7C4V.mjs.br +0 -0
  50. package/dist/chunk-S64T7C4V.mjs.gz +0 -0
  51. package/dist/{chunk-FSVE6WUY.js → chunk-TCGXGD6E.js} +550 -463
  52. package/dist/chunk-TCGXGD6E.js.br +0 -0
  53. package/dist/chunk-TCGXGD6E.js.gz +0 -0
  54. package/dist/{chunk-J7EFC3GS.mjs → chunk-ZA5JONCW.mjs} +210 -123
  55. package/dist/chunk-ZA5JONCW.mjs.br +0 -0
  56. package/dist/chunk-ZA5JONCW.mjs.gz +0 -0
  57. package/dist/i18n.js +4 -4
  58. package/dist/i18n.js.br +0 -0
  59. package/dist/i18n.js.gz +0 -0
  60. package/dist/i18n.mjs +1 -1
  61. package/dist/i18n.mjs.br +0 -0
  62. package/dist/i18n.mjs.gz +0 -0
  63. package/dist/index.d.ts +205 -21
  64. package/dist/index.js +41 -41
  65. package/dist/index.js.br +0 -0
  66. package/dist/index.js.gz +0 -0
  67. package/dist/index.mjs +6 -6
  68. package/dist/index.mjs.br +0 -0
  69. package/dist/index.mjs.gz +0 -0
  70. package/dist/internals.d.ts +380 -22
  71. package/dist/internals.d.ts.map +1 -1
  72. package/dist/internals.js +79 -79
  73. package/dist/internals.js.br +0 -0
  74. package/dist/internals.js.gz +0 -0
  75. package/dist/internals.mjs +4 -4
  76. package/dist/internals.mjs.br +0 -0
  77. package/dist/internals.mjs.gz +0 -0
  78. package/dist/pptx-viewer.css +1 -1
  79. package/dist/pptx-viewer.css.br +0 -0
  80. package/dist/pptx-viewer.css.gz +0 -0
  81. package/dist/{useViewerBuildingBlocks-Xddn6SFj.d.ts → useViewerBuildingBlocks-C9-prKYB.d.ts} +32 -6
  82. package/dist/useViewerBuildingBlocks-C9-prKYB.d.ts.map +1 -0
  83. package/dist/viewer/index.d.ts +166 -17
  84. package/dist/viewer/index.js +27 -27
  85. package/dist/viewer/index.js.br +0 -0
  86. package/dist/viewer/index.js.gz +0 -0
  87. package/dist/viewer/index.mjs +6 -6
  88. package/dist/viewer/index.mjs.br +0 -0
  89. package/dist/viewer/index.mjs.gz +0 -0
  90. package/package.json +1 -1
  91. package/dist/AiChatPanel-EPMBL6EA.js.br +0 -0
  92. package/dist/AiChatPanel-EPMBL6EA.js.gz +0 -0
  93. package/dist/AiChatPanel-XHKYPYPH.mjs.br +0 -0
  94. package/dist/AiChatPanel-XHKYPYPH.mjs.gz +0 -0
  95. package/dist/Model3DScene-DUJOZA2B.js.br +0 -0
  96. package/dist/Model3DScene-DUJOZA2B.js.gz +0 -0
  97. package/dist/Model3DScene-YMIAGRPG.mjs.br +0 -0
  98. package/dist/Model3DScene-YMIAGRPG.mjs.gz +0 -0
  99. package/dist/SurfaceChart3DScene-Q47OEJXS.mjs.br +0 -0
  100. package/dist/SurfaceChart3DScene-Q47OEJXS.mjs.gz +0 -0
  101. package/dist/SurfaceChart3DScene-TNCHWQAK.js.br +0 -0
  102. package/dist/SurfaceChart3DScene-TNCHWQAK.js.gz +0 -0
  103. package/dist/chunk-3KIKPDAJ.mjs.br +0 -0
  104. package/dist/chunk-3KIKPDAJ.mjs.gz +0 -0
  105. package/dist/chunk-5IUEPQTK.mjs.br +0 -0
  106. package/dist/chunk-5IUEPQTK.mjs.gz +0 -0
  107. package/dist/chunk-DVZF4ARG.js.br +0 -0
  108. package/dist/chunk-DVZF4ARG.js.gz +0 -0
  109. package/dist/chunk-EL2YF26P.mjs.br +0 -0
  110. package/dist/chunk-EL2YF26P.mjs.gz +0 -0
  111. package/dist/chunk-FSVE6WUY.js.br +0 -0
  112. package/dist/chunk-FSVE6WUY.js.gz +0 -0
  113. package/dist/chunk-J7EFC3GS.mjs.br +0 -0
  114. package/dist/chunk-J7EFC3GS.mjs.gz +0 -0
  115. package/dist/chunk-PI5SFTDC.js.br +0 -0
  116. package/dist/chunk-PI5SFTDC.js.gz +0 -0
  117. package/dist/chunk-VHME5BE6.mjs.br +0 -0
  118. package/dist/chunk-VHME5BE6.mjs.gz +0 -0
  119. package/dist/chunk-VL7ZT3ID.js.br +0 -0
  120. package/dist/chunk-VL7ZT3ID.js.gz +0 -0
  121. package/dist/chunk-WK22Z7PK.js.br +0 -0
  122. package/dist/chunk-WK22Z7PK.js.gz +0 -0
  123. package/dist/chunk-Y2KIB3QH.js.br +0 -0
  124. package/dist/chunk-Y2KIB3QH.js.gz +0 -0
  125. package/dist/chunk-YWKUIUQX.mjs.br +0 -0
  126. package/dist/chunk-YWKUIUQX.mjs.gz +0 -0
  127. package/dist/useViewerBuildingBlocks-Xddn6SFj.d.ts.map +0 -1
package/dist/i18n.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export { LOCALE_CATALOG, keyToLabel, translationsEn } from './chunk-5IUEPQTK.mjs';
1
+ export { LOCALE_CATALOG, keyToLabel, translationsEn } from './chunk-S64T7C4V.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
@@ -1660,7 +1660,28 @@ interface BulletInfo {
1660
1660
  autoNumType?: string;
1661
1661
  /** Auto-numbering start value. */
1662
1662
  autoNumStartAt?: number;
1663
- /** Zero-based paragraph index within the text body (for auto-numbering). */
1663
+ /**
1664
+ * Auto-numbering ORDINAL OFFSET: the zero-based distance of this paragraph
1665
+ * within its own numbered list, such that
1666
+ * `autoNumStartAt + paragraphIndex` is the ordinal to render. Despite the
1667
+ * name it is NOT the paragraph's position in the text body; the two agree
1668
+ * only for a list that starts at the first paragraph and is never
1669
+ * interrupted.
1670
+ *
1671
+ * It has to be the offset rather than the raw position because every
1672
+ * consumer that re-derives a marker from `BulletInfo` alone (the renderer's
1673
+ * `resolveParagraphBullet`, the Markdown converter's `resolveListMarker`)
1674
+ * computes `autoNumStartAt + paragraphIndex`. The load path resolves the
1675
+ * real sequence itself, restarting the count after any paragraph that
1676
+ * interrupts the list, and publishes the offset here so those consumers
1677
+ * land on the same number. With the raw position they did not, and BOTH
1678
+ * markers were painted ("3.1. Item"), because the paragraph builder drops
1679
+ * the parsed marker segment only when the two strings agree.
1680
+ *
1681
+ * Runtime-only: derived at parse time and never serialized. OOXML has no
1682
+ * counterpart (`a:buAutoNum` carries only `@type` and `@startAt`), so the
1683
+ * writer neither reads nor emits it.
1684
+ */
1664
1685
  paragraphIndex?: number;
1665
1686
  /** Bullet font family from `a:buFont`. */
1666
1687
  fontFamily?: string;
@@ -3955,6 +3976,11 @@ interface PptxTableCellStyle {
3955
3976
  italic?: boolean;
3956
3977
  underline?: boolean;
3957
3978
  color?: string;
3979
+ /**
3980
+ * Font family from the first run's `a:rPr/a:latin@typeface` (falling back to
3981
+ * `a:ea` / `a:cs`). Per-run families live on {@link PptxTableCellTextRun}.
3982
+ */
3983
+ fontFamily?: string;
3958
3984
  /**
3959
3985
  * Raw XML colour-choice node preserved from `a:tc/a:txBody/.../a:rPr/a:solidFill`
3960
3986
  * for round-trip serialisation. Currently unused by the cell-level writer
@@ -4110,6 +4136,45 @@ interface PptxTableCell3D {
4110
4136
  /** Light rig direction (`a:lightRig@dir`, e.g. `tl`, `t`, `tr`). */
4111
4137
  lightRigDirection?: string;
4112
4138
  }
4139
+ /**
4140
+ * One styled text run inside a table cell's `a:txBody`.
4141
+ *
4142
+ * `PptxTableCell.text` is a flat string and `PptxTableCell.style` describes
4143
+ * only the FIRST run, so a cell mixing formats ("Revenue **grew 42%** last
4144
+ * year") cannot be represented by those two alone. {@link PptxTableCell.runs}
4145
+ * carries the full sequence, with paragraph and line breaks as marker entries
4146
+ * so a renderer can walk it linearly.
4147
+ *
4148
+ * Structurally identical to `pptx-viewer-shared`'s `CellTextRun`, which every
4149
+ * binding's table renderer already consumes.
4150
+ *
4151
+ * @example
4152
+ * ```ts
4153
+ * const runs: PptxTableCellTextRun[] = [
4154
+ * { text: "Revenue " },
4155
+ * { text: "grew 42%", bold: true, color: "#C00000" },
4156
+ * ];
4157
+ * // => satisfies PptxTableCellTextRun[]
4158
+ * ```
4159
+ */
4160
+ interface PptxTableCellTextRun {
4161
+ /** Run text. Empty for the break markers below. */
4162
+ text: string;
4163
+ /** This entry starts a new paragraph (`a:p` boundary) rather than carrying text. */
4164
+ isParagraphBreak?: boolean;
4165
+ /** This entry is a soft line break (`a:br`) rather than carrying text. */
4166
+ isLineBreak?: boolean;
4167
+ bold?: boolean;
4168
+ italic?: boolean;
4169
+ underline?: boolean;
4170
+ strikethrough?: boolean;
4171
+ /** Resolved run colour as a CSS colour string. */
4172
+ color?: string;
4173
+ /** Run font size in points (`a:rPr@sz` / 100). */
4174
+ fontSize?: number;
4175
+ /** Run font family from `a:rPr/a:latin@typeface` (or `a:ea` / `a:cs`). */
4176
+ fontFamily?: string;
4177
+ }
4113
4178
  /**
4114
4179
  * A single table cell with text content, optional style, and merge info.
4115
4180
  *
@@ -4126,6 +4191,15 @@ interface PptxTableCell3D {
4126
4191
  interface PptxTableCell {
4127
4192
  text: string;
4128
4193
  style?: PptxTableCellStyle;
4194
+ /**
4195
+ * Per-run formatting for the cell's text, when it has any beyond what
4196
+ * {@link style} can express. Present only for cells whose `a:txBody`
4197
+ * actually carries runs; renderers fall back to {@link text} when absent.
4198
+ *
4199
+ * Editing a cell's text invalidates these (the editor produces a plain
4200
+ * string), so an edit path must clear them alongside setting `text`.
4201
+ */
4202
+ textRuns?: PptxTableCellTextRun[];
4129
4203
  /** Column span (defaults to 1). */
4130
4204
  gridSpan?: number;
4131
4205
  /** Row span (defaults to 1). */
@@ -4905,6 +4979,35 @@ interface UnknownPptxElement extends PptxElementBase {
4905
4979
  type PptxElement = TextPptxElement | ShapePptxElement | ConnectorPptxElement | ImagePptxElement | PicturePptxElement | TablePptxElement | ChartPptxElement | SmartArtPptxElement | OlePptxElement | MediaPptxElement | GroupPptxElement | InkPptxElement | ContentPartPptxElement | ZoomPptxElement | Model3DPptxElement | UnknownPptxElement;
4906
4980
  //#endregion
4907
4981
  //#region src/core/types/masters.d.ts
4982
+ /**
4983
+ * A placeholder slot declared on a master or layout.
4984
+ *
4985
+ * The geometry fields are in CSS pixels (EMU / {@link EMU_PER_PX}) and are only
4986
+ * present when the shape carried an explicit `a:xfrm`. Placeholders that
4987
+ * inherit their frame from the master leave them undefined, so consumers that
4988
+ * draw placeholder outlines (the layout gallery) must skip those entries
4989
+ * rather than assume a zero-sized box at the origin.
4990
+ *
4991
+ * @example
4992
+ * ```ts
4993
+ * const frame: PptxPlaceholderFrame = { type: "body", idx: "1", x: 63, y: 130 };
4994
+ * // => satisfies PptxPlaceholderFrame
4995
+ * ```
4996
+ */
4997
+ interface PptxPlaceholderFrame {
4998
+ /** `p:ph/@type`, lower-cased by the parser; defaults to `body` when omitted. */
4999
+ type: string;
5000
+ /** `p:ph/@idx`, when present. */
5001
+ idx?: string;
5002
+ /** Left offset in CSS pixels, when the shape declares `a:off`. */
5003
+ x?: number;
5004
+ /** Top offset in CSS pixels, when the shape declares `a:off`. */
5005
+ y?: number;
5006
+ /** Width in CSS pixels, when the shape declares `a:ext`. */
5007
+ width?: number;
5008
+ /** Height in CSS pixels, when the shape declares `a:ext`. */
5009
+ height?: number;
5010
+ }
4908
5011
  /**
4909
5012
  * Parsed notes master from `ppt/notesMasters/notesMaster1.xml`.
4910
5013
  *
@@ -4926,10 +5029,7 @@ interface PptxNotesMaster {
4926
5029
  /** Background image data URL. */
4927
5030
  backgroundImage?: string;
4928
5031
  /** Placeholder shapes found on the notes master. */
4929
- placeholders?: Array<{
4930
- type: string;
4931
- idx?: string;
4932
- }>;
5032
+ placeholders?: PptxPlaceholderFrame[];
4933
5033
  /** Editable elements on the notes master (header, footer, date, page number, slide image, notes body). */
4934
5034
  elements?: PptxElement[];
4935
5035
  /** Header/footer flags from `<p:hf>` on the notes master (P-H3). */
@@ -4957,10 +5057,7 @@ interface PptxHandoutMaster {
4957
5057
  /** Background image data URL. */
4958
5058
  backgroundImage?: string;
4959
5059
  /** Placeholder shapes found on the handout master. */
4960
- placeholders?: Array<{
4961
- type: string;
4962
- idx?: string;
4963
- }>;
5060
+ placeholders?: PptxPlaceholderFrame[];
4964
5061
  /** Editable elements on the handout master (header, footer, date, page number, slide placeholders). */
4965
5062
  elements?: PptxElement[];
4966
5063
  /** Number of slides per page for handout print layout (1, 2, 3, 4, 6, or 9). */
@@ -4998,10 +5095,7 @@ interface PptxSlideMaster {
4998
5095
  /** Layout paths associated with this master. */
4999
5096
  layoutPaths?: string[];
5000
5097
  /** Placeholder shapes on the master. */
5001
- placeholders?: Array<{
5002
- type: string;
5003
- idx?: string;
5004
- }>;
5098
+ placeholders?: PptxPlaceholderFrame[];
5005
5099
  /** Parsed element shapes on the master slide (for master view rendering). */
5006
5100
  elements?: PptxElement[];
5007
5101
  /** Parsed slide layout objects associated with this master. */
@@ -5073,10 +5167,7 @@ interface PptxSlideLayout {
5073
5167
  /** Parsed element shapes on the layout. */
5074
5168
  elements?: PptxElement[];
5075
5169
  /** Placeholder shapes on the layout. */
5076
- placeholders?: Array<{
5077
- type: string;
5078
- idx?: string;
5079
- }>;
5170
+ placeholders?: PptxPlaceholderFrame[];
5080
5171
  /** Matching name attribute for layout identification (`@matchingName`). */
5081
5172
  matchingName?: string;
5082
5173
  /** Whether the layout is marked as preserved (prevent deletion, `@preserve`). */
@@ -5090,6 +5181,42 @@ interface PptxSlideLayout {
5090
5181
  /** Header/footer flags from `<p:hf>` on this layout (P-H3). */
5091
5182
  headerFooter?: PptxHeaderFooterFlags;
5092
5183
  }
5184
+ /**
5185
+ * Rendered content of a single layout, used to draw gallery thumbnails.
5186
+ *
5187
+ * Produced on demand rather than during load: materialising every layout's
5188
+ * artwork (and decoding its images) up front costs a noticeable amount of time
5189
+ * on decks with many masters, and most sessions never open the layout gallery
5190
+ * at all.
5191
+ *
5192
+ * @example
5193
+ * ```ts
5194
+ * const preview: PptxLayoutPreview = {
5195
+ * path: "ppt/slideLayouts/slideLayout2.xml",
5196
+ * width: 960,
5197
+ * height: 540,
5198
+ * elements: [],
5199
+ * placeholders: [{ type: "title" }],
5200
+ * };
5201
+ * // => satisfies PptxLayoutPreview
5202
+ * ```
5203
+ */
5204
+ interface PptxLayoutPreview {
5205
+ /** ZIP path of the layout this preview belongs to. */
5206
+ path: string;
5207
+ /** Slide width in CSS pixels, so a thumbnail can compute its own scale. */
5208
+ width: number;
5209
+ /** Slide height in CSS pixels. */
5210
+ height: number;
5211
+ /** Background resolved from the layout, falling back to its master's. */
5212
+ backgroundColor?: string;
5213
+ /** Background image data URL, when the layout or master declares one. */
5214
+ backgroundImage?: string;
5215
+ /** The layout's own artwork (pictures, shapes and static text). */
5216
+ elements: PptxElement[];
5217
+ /** Placeholder slots, drawn as outlined frames in the gallery. */
5218
+ placeholders: PptxPlaceholderFrame[];
5219
+ }
5093
5220
  /**
5094
5221
  * A theme part available in the presentation package.
5095
5222
  *
@@ -7709,6 +7836,8 @@ interface IPptxHandlerRuntime {
7709
7836
  revokeBlobUrls(): void;
7710
7837
  getCompatibilityWarnings(): PptxCompatibilityWarning[];
7711
7838
  getLayoutOptions(): PptxLayoutOption[];
7839
+ getLayoutPreview(layoutPath: string): Promise<PptxLayoutPreview | null>;
7840
+ getLayoutPreviews(layoutPaths?: readonly string[]): Promise<PptxLayoutPreview[]>;
7712
7841
  createXmlBuilder(data: PptxData): PptxXmlBuilder;
7713
7842
  Builder(data: PptxData): PptxXmlBuilder;
7714
7843
  setTemplateBackground(path: string, backgroundColor: string | undefined): void;
@@ -7897,6 +8026,26 @@ declare class PptxHandlerCore {
7897
8026
  * @returns Array of {@link PptxLayoutOption} entries.
7898
8027
  */
7899
8028
  getLayoutOptions(): PptxLayoutOption[];
8029
+ /**
8030
+ * Build the artwork thumbnails backing the New Slide / Layout galleries.
8031
+ *
8032
+ * Parsing happens on first request and is memoised afterwards, so opening
8033
+ * the gallery costs one pass over the layout parts and reopening it costs
8034
+ * nothing. Callers that only need one entry should prefer
8035
+ * {@link getLayoutPreview}.
8036
+ *
8037
+ * @param layoutPaths - Restrict the result to these layouts; defaults to
8038
+ * every layout in the presentation.
8039
+ * @returns One {@link PptxLayoutPreview} per resolvable layout.
8040
+ */
8041
+ getLayoutPreviews(layoutPaths?: readonly string[]): Promise<PptxLayoutPreview[]>;
8042
+ /**
8043
+ * Build the artwork thumbnail for a single layout.
8044
+ *
8045
+ * @param layoutPath - Archive path of the `p:sldLayout` part.
8046
+ * @returns The preview, or `null` when the presentation has no such layout.
8047
+ */
8048
+ getLayoutPreview(layoutPath: string): Promise<PptxLayoutPreview | null>;
7900
8049
  /**
7901
8050
  * Create a fluent XML builder scoped to the given presentation data.
7902
8051
  *
@@ -8943,6 +9092,15 @@ interface ViewerGeneralOptions {
8943
9092
  userName: string;
8944
9093
  userInitials: string;
8945
9094
  showStartScreen: boolean;
9095
+ /**
9096
+ * Lets the user hand a local font file to the viewer so decks authored
9097
+ * with a font the browser lacks render with the real face.
9098
+ *
9099
+ * Off by default. The registration reads a file the user picks and adds it
9100
+ * to the page's font set for the session, which is a capability a host
9101
+ * embedding the viewer should opt into rather than inherit.
9102
+ */
9103
+ enableCustomFontUpload: boolean;
8946
9104
  }
8947
9105
  interface ViewerProofingOptions {
8948
9106
  autoCorrectTwoInitialCapitals: boolean;
@@ -9708,10 +9866,20 @@ interface ToolbarProps {
9708
9866
  onTransformTextCase: (mode: ChangeCaseMode) => void;
9709
9867
  isOverflowMenuOpen: boolean;
9710
9868
  onSetOverflowMenuOpen: (open: boolean) => void;
9711
- layoutOptions: Array<{
9712
- path: string;
9713
- name: string;
9714
- }>;
9869
+ layoutOptions: PptxLayoutOption[];
9870
+ /** `layoutPath` of the active slide, marking the current gallery tile. */
9871
+ currentLayoutPath?: string;
9872
+ /** Supplies gallery artwork; without it the menus stay name-only. */
9873
+ loadLayoutPreviews?: () => Promise<PptxLayoutPreview[]>;
9874
+ /** Theme major/minor latin faces, leading the font dropdown. */
9875
+ themeFonts?: {
9876
+ heading?: string;
9877
+ body?: string;
9878
+ };
9879
+ /** Families the deck embeds, offered as their own dropdown group. */
9880
+ embeddedFontFamilies?: readonly string[];
9881
+ /** Families registered this session via File > Options > Fonts. */
9882
+ customFontFamilies?: readonly string[];
9715
9883
  onInsertSlideFromLayout: (path: string, name?: string) => void;
9716
9884
  /** Re-map the active slide onto another of its master's layouts. */
9717
9885
  onApplyLayout?: (path: string) => void;
@@ -9763,6 +9931,22 @@ interface ToolbarProps {
9763
9931
  activeSlide?: PptxSlide;
9764
9932
  onTransitionChange: (updates: Partial<PptxSlideTransition>) => void;
9765
9933
  onApplyTransitionToAll: () => void;
9934
+ /**
9935
+ * Home > Slides > Reset: re-apply the active slide's own layout, restoring
9936
+ * inherited placeholder geometry. Undeclared until now, which is why
9937
+ * `SlidesGroup` bound `undefined` and the button did nothing.
9938
+ */
9939
+ onResetSlide?: () => void;
9940
+ /** Home > Slides > Section: start a new section at the active slide. */
9941
+ onAddSection?: () => void;
9942
+ /** Home > Editing > Select > Select All (every element on the active slide). */
9943
+ onSelectAll?: () => void;
9944
+ /**
9945
+ * Slide Show > Options: what the four checkboxes read, and how a tick is
9946
+ * committed. See shared `ribbon-slide-show-options`.
9947
+ */
9948
+ presentationProperties?: PptxPresentationProperties;
9949
+ onPresentationPropertiesChange?: (updates: Partial<PptxPresentationProperties>) => void;
9766
9950
  /** Host-supplied list of toolbar buttons/ribbon tabs to hide. See `PowerPointViewerProps.hiddenActions`. */
9767
9951
  hiddenActions?: readonly ToolbarActionId[];
9768
9952
  /** Whether the AI assistant is available (the host passed the `ai` prop). */
package/dist/index.js CHANGED
@@ -1,152 +1,152 @@
1
1
  'use strict';
2
2
 
3
- var chunkVL7ZT3ID_js = require('./chunk-VL7ZT3ID.js');
4
- require('./chunk-PI5SFTDC.js');
5
- var chunkFSVE6WUY_js = require('./chunk-FSVE6WUY.js');
6
- var chunkWK22Z7PK_js = require('./chunk-WK22Z7PK.js');
7
- var chunkDVZF4ARG_js = require('./chunk-DVZF4ARG.js');
8
- var chunkY2KIB3QH_js = require('./chunk-Y2KIB3QH.js');
3
+ var chunkNQJPPIVH_js = require('./chunk-NQJPPIVH.js');
4
+ require('./chunk-ATOUVRRQ.js');
5
+ var chunkTCGXGD6E_js = require('./chunk-TCGXGD6E.js');
6
+ var chunk5BXATG54_js = require('./chunk-5BXATG54.js');
7
+ var chunkAONFHTTJ_js = require('./chunk-AONFHTTJ.js');
8
+ var chunk7JPLVECA_js = require('./chunk-7JPLVECA.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 chunkVL7ZT3ID_js.PowerPointViewer; }
15
+ get: function () { return chunkNQJPPIVH_js.PowerPointViewer; }
16
16
  });
17
17
  Object.defineProperty(exports, "SlideCanvas", {
18
18
  enumerable: true,
19
- get: function () { return chunkVL7ZT3ID_js.SlideCanvas; }
19
+ get: function () { return chunkNQJPPIVH_js.SlideCanvas; }
20
20
  });
21
21
  Object.defineProperty(exports, "SlideTemplateGalleryDialog", {
22
22
  enumerable: true,
23
- get: function () { return chunkVL7ZT3ID_js.SlideTemplateGalleryDialog; }
23
+ get: function () { return chunkNQJPPIVH_js.SlideTemplateGalleryDialog; }
24
24
  });
25
25
  Object.defineProperty(exports, "SlideTemplatePreview", {
26
26
  enumerable: true,
27
- get: function () { return chunkVL7ZT3ID_js.SlideTemplatePreview; }
27
+ get: function () { return chunkNQJPPIVH_js.SlideTemplatePreview; }
28
28
  });
29
29
  Object.defineProperty(exports, "Toolbar", {
30
30
  enumerable: true,
31
- get: function () { return chunkVL7ZT3ID_js.Toolbar; }
31
+ get: function () { return chunkNQJPPIVH_js.Toolbar; }
32
32
  });
33
33
  Object.defineProperty(exports, "ViewerThemeProvider", {
34
34
  enumerable: true,
35
- get: function () { return chunkVL7ZT3ID_js.ViewerThemeProvider; }
35
+ get: function () { return chunkNQJPPIVH_js.ViewerThemeProvider; }
36
36
  });
37
37
  Object.defineProperty(exports, "useViewerTheme", {
38
38
  enumerable: true,
39
- get: function () { return chunkVL7ZT3ID_js.useViewerTheme; }
39
+ get: function () { return chunkNQJPPIVH_js.useViewerTheme; }
40
40
  });
41
41
  Object.defineProperty(exports, "renderToCanvas", {
42
42
  enumerable: true,
43
- get: function () { return chunkFSVE6WUY_js.renderToCanvas; }
43
+ get: function () { return chunkTCGXGD6E_js.renderToCanvas; }
44
44
  });
45
45
  Object.defineProperty(exports, "useViewerBuildingBlocks", {
46
46
  enumerable: true,
47
- get: function () { return chunkFSVE6WUY_js.useViewerBuildingBlocks; }
47
+ get: function () { return chunkTCGXGD6E_js.useViewerBuildingBlocks; }
48
48
  });
49
49
  Object.defineProperty(exports, "getAnimationInitialStyle", {
50
50
  enumerable: true,
51
- get: function () { return chunkWK22Z7PK_js.getAnimationInitialStyle; }
51
+ get: function () { return chunk5BXATG54_js.getAnimationInitialStyle; }
52
52
  });
53
53
  Object.defineProperty(exports, "LOCALE_CATALOG", {
54
54
  enumerable: true,
55
- get: function () { return chunkDVZF4ARG_js.LOCALE_CATALOG; }
55
+ get: function () { return chunkAONFHTTJ_js.LOCALE_CATALOG; }
56
56
  });
57
57
  Object.defineProperty(exports, "AVATAR_COLOR_SWATCHES", {
58
58
  enumerable: true,
59
- get: function () { return chunkY2KIB3QH_js.AVATAR_COLOR_SWATCHES; }
59
+ get: function () { return chunk7JPLVECA_js.AVATAR_COLOR_SWATCHES; }
60
60
  });
61
61
  Object.defineProperty(exports, "DEFAULT_VIEWER_PROFILE", {
62
62
  enumerable: true,
63
- get: function () { return chunkY2KIB3QH_js.DEFAULT_VIEWER_PROFILE; }
63
+ get: function () { return chunk7JPLVECA_js.DEFAULT_VIEWER_PROFILE; }
64
64
  });
65
65
  Object.defineProperty(exports, "SLIDE_TEMPLATES", {
66
66
  enumerable: true,
67
- get: function () { return chunkY2KIB3QH_js.SLIDE_TEMPLATES; }
67
+ get: function () { return chunk7JPLVECA_js.SLIDE_TEMPLATES; }
68
68
  });
69
69
  Object.defineProperty(exports, "THEME_CATALOG", {
70
70
  enumerable: true,
71
- get: function () { return chunkY2KIB3QH_js.THEME_CATALOG; }
71
+ get: function () { return chunk7JPLVECA_js.THEME_CATALOG; }
72
72
  });
73
73
  Object.defineProperty(exports, "VIEWER_PREFS_STORAGE_KEY", {
74
74
  enumerable: true,
75
- get: function () { return chunkY2KIB3QH_js.VIEWER_PREFS_STORAGE_KEY; }
75
+ get: function () { return chunk7JPLVECA_js.VIEWER_PREFS_STORAGE_KEY; }
76
76
  });
77
77
  Object.defineProperty(exports, "buildSlideTemplateContent", {
78
78
  enumerable: true,
79
- get: function () { return chunkY2KIB3QH_js.buildSlideTemplateContent; }
79
+ get: function () { return chunk7JPLVECA_js.buildSlideTemplateContent; }
80
80
  });
81
81
  Object.defineProperty(exports, "buildSlideTemplateSlide", {
82
82
  enumerable: true,
83
- get: function () { return chunkY2KIB3QH_js.buildSlideTemplateSlide; }
83
+ get: function () { return chunk7JPLVECA_js.buildSlideTemplateSlide; }
84
84
  });
85
85
  Object.defineProperty(exports, "clearAllLocalViewerData", {
86
86
  enumerable: true,
87
- get: function () { return chunkY2KIB3QH_js.clearAllLocalViewerData; }
87
+ get: function () { return chunk7JPLVECA_js.clearAllLocalViewerData; }
88
88
  });
89
89
  Object.defineProperty(exports, "clearStoredViewerPrefs", {
90
90
  enumerable: true,
91
- get: function () { return chunkY2KIB3QH_js.clearStoredViewerPrefs; }
91
+ get: function () { return chunk7JPLVECA_js.clearStoredViewerPrefs; }
92
92
  });
93
93
  Object.defineProperty(exports, "defaultCssVars", {
94
94
  enumerable: true,
95
- get: function () { return chunkY2KIB3QH_js.defaultCssVars; }
95
+ get: function () { return chunk7JPLVECA_js.defaultCssVars; }
96
96
  });
97
97
  Object.defineProperty(exports, "defaultRadius", {
98
98
  enumerable: true,
99
- get: function () { return chunkY2KIB3QH_js.defaultRadius; }
99
+ get: function () { return chunk7JPLVECA_js.defaultRadius; }
100
100
  });
101
101
  Object.defineProperty(exports, "defaultThemeColors", {
102
102
  enumerable: true,
103
- get: function () { return chunkY2KIB3QH_js.defaultThemeColors; }
103
+ get: function () { return chunk7JPLVECA_js.defaultThemeColors; }
104
104
  });
105
105
  Object.defineProperty(exports, "getLocalStorageUsageSummary", {
106
106
  enumerable: true,
107
- get: function () { return chunkY2KIB3QH_js.getLocalStorageUsageSummary; }
107
+ get: function () { return chunk7JPLVECA_js.getLocalStorageUsageSummary; }
108
108
  });
109
109
  Object.defineProperty(exports, "readStoredViewerPrefs", {
110
110
  enumerable: true,
111
- get: function () { return chunkY2KIB3QH_js.readStoredViewerPrefs; }
111
+ get: function () { return chunk7JPLVECA_js.readStoredViewerPrefs; }
112
112
  });
113
113
  Object.defineProperty(exports, "resolveProfileInitial", {
114
114
  enumerable: true,
115
- get: function () { return chunkY2KIB3QH_js.resolveProfileInitial; }
115
+ get: function () { return chunk7JPLVECA_js.resolveProfileInitial; }
116
116
  });
117
117
  Object.defineProperty(exports, "resolveThemeCatalogEntry", {
118
118
  enumerable: true,
119
- get: function () { return chunkY2KIB3QH_js.resolveThemeCatalogEntry; }
119
+ get: function () { return chunk7JPLVECA_js.resolveThemeCatalogEntry; }
120
120
  });
121
121
  Object.defineProperty(exports, "saveViewerProfile", {
122
122
  enumerable: true,
123
- get: function () { return chunkY2KIB3QH_js.saveViewerProfile; }
123
+ get: function () { return chunk7JPLVECA_js.saveViewerProfile; }
124
124
  });
125
125
  Object.defineProperty(exports, "themeToCssVars", {
126
126
  enumerable: true,
127
- get: function () { return chunkY2KIB3QH_js.themeToCssVars; }
127
+ get: function () { return chunk7JPLVECA_js.themeToCssVars; }
128
128
  });
129
129
  Object.defineProperty(exports, "vermilionDarkColors", {
130
130
  enumerable: true,
131
- get: function () { return chunkY2KIB3QH_js.vermilionDarkColors; }
131
+ get: function () { return chunk7JPLVECA_js.vermilionDarkColors; }
132
132
  });
133
133
  Object.defineProperty(exports, "vermilionDarkTheme", {
134
134
  enumerable: true,
135
- get: function () { return chunkY2KIB3QH_js.vermilionDarkTheme; }
135
+ get: function () { return chunk7JPLVECA_js.vermilionDarkTheme; }
136
136
  });
137
137
  Object.defineProperty(exports, "vermilionLightColors", {
138
138
  enumerable: true,
139
- get: function () { return chunkY2KIB3QH_js.vermilionLightColors; }
139
+ get: function () { return chunk7JPLVECA_js.vermilionLightColors; }
140
140
  });
141
141
  Object.defineProperty(exports, "vermilionLightTheme", {
142
142
  enumerable: true,
143
- get: function () { return chunkY2KIB3QH_js.vermilionLightTheme; }
143
+ get: function () { return chunk7JPLVECA_js.vermilionLightTheme; }
144
144
  });
145
145
  Object.defineProperty(exports, "vermilionRadius", {
146
146
  enumerable: true,
147
- get: function () { return chunkY2KIB3QH_js.vermilionRadius; }
147
+ get: function () { return chunk7JPLVECA_js.vermilionRadius; }
148
148
  });
149
149
  Object.defineProperty(exports, "writeStoredViewerPrefs", {
150
150
  enumerable: true,
151
- get: function () { return chunkY2KIB3QH_js.writeStoredViewerPrefs; }
151
+ get: function () { return chunk7JPLVECA_js.writeStoredViewerPrefs; }
152
152
  });
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-3KIKPDAJ.mjs';
2
- import './chunk-EL2YF26P.mjs';
3
- export { renderToCanvas, useViewerBuildingBlocks } from './chunk-J7EFC3GS.mjs';
4
- export { getAnimationInitialStyle } from './chunk-VHME5BE6.mjs';
5
- export { LOCALE_CATALOG } from './chunk-5IUEPQTK.mjs';
6
- export { AVATAR_COLOR_SWATCHES, DEFAULT_VIEWER_PROFILE, SLIDE_TEMPLATES, THEME_CATALOG, VIEWER_PREFS_STORAGE_KEY, buildSlideTemplateContent, buildSlideTemplateSlide, clearAllLocalViewerData, clearStoredViewerPrefs, defaultCssVars, defaultRadius, defaultThemeColors, getLocalStorageUsageSummary, readStoredViewerPrefs, resolveProfileInitial, resolveThemeCatalogEntry, saveViewerProfile, themeToCssVars, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, writeStoredViewerPrefs } from './chunk-YWKUIUQX.mjs';
1
+ export { PowerPointViewer, SlideCanvas, SlideTemplateGalleryDialog, SlideTemplatePreview, Toolbar, ViewerThemeProvider, useViewerTheme } from './chunk-422DF424.mjs';
2
+ import './chunk-FXJOTEPO.mjs';
3
+ export { renderToCanvas, useViewerBuildingBlocks } from './chunk-ZA5JONCW.mjs';
4
+ export { getAnimationInitialStyle } from './chunk-MQHC5TXI.mjs';
5
+ export { LOCALE_CATALOG } from './chunk-S64T7C4V.mjs';
6
+ export { AVATAR_COLOR_SWATCHES, DEFAULT_VIEWER_PROFILE, SLIDE_TEMPLATES, THEME_CATALOG, VIEWER_PREFS_STORAGE_KEY, buildSlideTemplateContent, buildSlideTemplateSlide, clearAllLocalViewerData, clearStoredViewerPrefs, defaultCssVars, defaultRadius, defaultThemeColors, getLocalStorageUsageSummary, readStoredViewerPrefs, resolveProfileInitial, resolveThemeCatalogEntry, saveViewerProfile, themeToCssVars, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, writeStoredViewerPrefs } from './chunk-K2QU73KB.mjs';
7
7
  import './chunk-XGB3TDIC.mjs';
package/dist/index.mjs.br CHANGED
Binary file
package/dist/index.mjs.gz CHANGED
Binary file