pptx-svelte-viewer 4.3.0 → 4.5.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.
@@ -1119,6 +1119,7 @@ var n = {
1119
1119
  "pptx.media.startAutomatically": "Automatically",
1120
1120
  "pptx.media.playAcrossSlides": "Play across slides",
1121
1121
  "pptx.media.fullScreen": "Full screen",
1122
+ "pptx.media.onlineVideoTitle": "Online video",
1122
1123
  "pptx.media.hideWhenNotPlaying": "Hide when not playing",
1123
1124
  "pptx.media.bookmarks": "Bookmarks",
1124
1125
  "pptx.media.bookmark": "Bookmark",
@@ -1186,6 +1187,12 @@ var n = {
1186
1187
  "pptx.compare.noDifferences": "No differences",
1187
1188
  "pptx.compare.summary": "{{added}} added, {{removed}} removed, {{changed}} changed",
1188
1189
  "pptx.compare.title": "Compare",
1190
+ "pptx.canvasContextMenu.ariaLabel": "Canvas context menu",
1191
+ "pptx.canvasContextMenu.formatBackground": "Format Background...",
1192
+ "pptx.canvasContextMenu.gridAndGuides": "Grid and Guides",
1193
+ "pptx.canvasContextMenu.layout": "Layout",
1194
+ "pptx.canvasContextMenu.resetSlide": "Reset Slide",
1195
+ "pptx.canvasContextMenu.ruler": "Ruler",
1189
1196
  "pptx.contextMenu.addComment": "Add Comment",
1190
1197
  "pptx.contextMenu.bringForward": "Bring Forward",
1191
1198
  "pptx.contextMenu.bringToFront": "Bring to Front",
@@ -1195,7 +1202,10 @@ var n = {
1195
1202
  "pptx.contextMenu.deleteColumn": "Delete Column",
1196
1203
  "pptx.contextMenu.deleteRow": "Delete Row",
1197
1204
  "pptx.contextMenu.duplicate": "Duplicate",
1205
+ "pptx.contextMenu.editAltText": "Edit Alt Text...",
1198
1206
  "pptx.contextMenu.editHyperlink": "Edit Hyperlink",
1207
+ "pptx.contextMenu.editText": "Edit Text",
1208
+ "pptx.contextMenu.formatShape": "Format Shape...",
1199
1209
  "pptx.contextMenu.group": "Group",
1200
1210
  "pptx.contextMenu.insertColumnLeft": "Insert Column Left",
1201
1211
  "pptx.contextMenu.insertColumnRight": "Insert Column Right",
@@ -1204,10 +1214,18 @@ var n = {
1204
1214
  "pptx.contextMenu.mergeCells": "Merge Right",
1205
1215
  "pptx.contextMenu.mergeSelectedCells": "Merge Selected Cells",
1206
1216
  "pptx.contextMenu.paste": "Paste",
1217
+ "pptx.contextMenu.saveAsPicture": "Save as Picture...",
1207
1218
  "pptx.contextMenu.sendBackward": "Send Backward",
1208
1219
  "pptx.contextMenu.sendToBack": "Send to Back",
1220
+ "pptx.contextMenu.sizeAndPosition": "Size and Position...",
1209
1221
  "pptx.contextMenu.splitCell": "Split Cell",
1210
1222
  "pptx.contextMenu.ungroup": "Ungroup",
1223
+ "pptx.pasteSpecial.dialogTitle": "Paste Special",
1224
+ "pptx.pasteSpecial.keepSourceFormatting": "Keep Source Formatting",
1225
+ "pptx.pasteSpecial.keepTextOnly": "Keep Text Only",
1226
+ "pptx.pasteSpecial.optionsLabel": "Paste Options",
1227
+ "pptx.pasteSpecial.picture": "Picture",
1228
+ "pptx.pasteSpecial.useDestinationTheme": "Use Destination Theme",
1211
1229
  "pptx.digitalSignatures.badge": "Signed",
1212
1230
  "pptx.digitalSignatures.editWarning": "Editing this presentation will invalidate its digital signatures.",
1213
1231
  "pptx.digitalSignatures.signed": "This presentation is digitally signed.",
@@ -1450,6 +1468,15 @@ var n = {
1450
1468
  "pptx.slideSorter.contextMenu.hideSlides": "Hide Slides",
1451
1469
  "pptx.slideSorter.contextMenu.paste": "Paste",
1452
1470
  "pptx.slideSorter.contextMenu.showSlides": "Show Slides",
1471
+ "pptx.slidesPane.contextMenu.newSlide": "New Slide",
1472
+ "pptx.slidesPane.contextMenu.duplicate": "Duplicate Slide",
1473
+ "pptx.slidesPane.contextMenu.duplicateCount": "Duplicate {{count}} Slides",
1474
+ "pptx.slidesPane.contextMenu.delete": "Delete Slide",
1475
+ "pptx.slidesPane.contextMenu.deleteCount": "Delete {{count}} Slides",
1476
+ "pptx.slidesPane.contextMenu.layout": "Layout",
1477
+ "pptx.slidesPane.contextMenu.hide": "Hide Slide",
1478
+ "pptx.slidesPane.contextMenu.show": "Show Slide",
1479
+ "pptx.slidesPane.contextMenu.addSection": "Add Section",
1453
1480
  "pptx.smartart.cancel": "Cancel",
1454
1481
  "pptx.smartart.close": "Close",
1455
1482
  "pptx.smartart.insert": "Insert",
@@ -1521,6 +1548,12 @@ var n = {
1521
1548
  "pptx.transition.morphOption.byObject": "By Object",
1522
1549
  "pptx.transition.morphOption.byWord": "By Word",
1523
1550
  "pptx.transition.morphOption.byChar": "By Character",
1551
+ "pptx.transition.pattern": "Pattern",
1552
+ "pptx.transition.pattern.diamond": "Diamond",
1553
+ "pptx.transition.pattern.hexagon": "Hexagon",
1554
+ "pptx.transition.pattern.strip": "Strips",
1555
+ "pptx.transition.pattern.rectangle": "Rectangles",
1556
+ "pptx.transition.thruBlk": "Through black",
1524
1557
  "pptx.contextMenu.ariaLabel": "Context menu",
1525
1558
  "pptx.editorToolbar.ariaLabel": "Editor toolbar",
1526
1559
  "pptx.editorToolbar.insert": "Insert",
@@ -1693,6 +1693,16 @@ interface TextStyle {
1693
1693
  hyperlinkHighlightClick?: boolean;
1694
1694
  /** Whether hyperlink ends a sound (`a:hlinkClick/@endSnd`). */
1695
1695
  hyperlinkEndSound?: boolean;
1696
+ /**
1697
+ * Raw `a:hlinkClick/a:extLst` child, preserved verbatim for round-trip.
1698
+ * Carries vendor extensions this engine does not interpret, most commonly
1699
+ * `ahyp:hlinkClr` (Microsoft's "hyperlink color" extension,
1700
+ * `{A12FA001-AC4F-418D-AE19-62706E023703}`), which records whether a
1701
+ * hyperlink run should paint with the theme's text colour instead of the
1702
+ * hyperlink colour. Dropping the whole `a:extLst` silently reverted such a
1703
+ * run to the default (themed) hyperlink colour on save.
1704
+ */
1705
+ hyperlinkExtensionXml?: XmlObject;
1696
1706
  /** Kumimoji (ideographic text combining) flag for vertical CJK text (`a:rPr/@kumimoji`). */
1697
1707
  kumimoji?: boolean;
1698
1708
  /** Normalize height flag (`a:rPr/@normalizeH`). */
@@ -1795,6 +1805,15 @@ interface TextStyle {
1795
1805
  textInnerShadowOffsetX?: number;
1796
1806
  /** Text inner shadow vertical offset in px. */
1797
1807
  textInnerShadowOffsetY?: number;
1808
+ /**
1809
+ * Original inner-shadow colour-choice XML (`a:innerShdw`'s
1810
+ * `a:prstClr`/`a:schemeClr`/`a:srgbClr`/… child), preserved verbatim so an
1811
+ * authored preset or theme colour round-trips instead of always being
1812
+ * re-serialized as a resolved `a:srgbClr`. Mirrors {@link textGlowColorXml}.
1813
+ */
1814
+ textInnerShadowColorXml?: XmlObject;
1815
+ /** Theme colour slot the inner shadow colour resolved from, when it is `a:schemeClr`. */
1816
+ textInnerShadowColorRef?: PptxThemeColorRef;
1798
1817
  /** Preset shadow type from `a:prstShdw/@prst` (e.g. "shdw1"..."shdw20"). */
1799
1818
  textPresetShadowName?: string;
1800
1819
  /** Preset shadow colour as hex string. */
@@ -1807,6 +1826,18 @@ interface TextStyle {
1807
1826
  textPresetShadowDirection?: number;
1808
1827
  /** Text blur effect radius in px (`a:blur`). */
1809
1828
  textBlurRadius?: number;
1829
+ /**
1830
+ * Text soft-edge radius in px (`a:softEdge/@rad`).
1831
+ *
1832
+ * Feathers the glyph's own edges (a uniform blur of the alpha silhouette,
1833
+ * the same effect a shape's `a:softEdge` gives its fill), unrelated to
1834
+ * `a:blur` (which blurs the whole run, colour included) or a shadow. Never
1835
+ * parsed before this field existed, so `a:softEdge` on a run was silently
1836
+ * dropped: PowerPoint fades the glyphs to near-transparent at their
1837
+ * outline (COM-verified, `audit-text` slide 14's "SOFTEDGE" run), while
1838
+ * the viewer painted them fully crisp.
1839
+ */
1840
+ textSoftEdgeRadius?: number;
1810
1841
  /**
1811
1842
  * Raw `a:effectDag` XML node from `a:rPr`, preserved verbatim for
1812
1843
  * round-trip serialisation. Mirrors the shape-level
@@ -1846,6 +1877,15 @@ interface TextStyle {
1846
1877
  textGlowRadius?: number;
1847
1878
  /** Text glow opacity (0-1). */
1848
1879
  textGlowOpacity?: number;
1880
+ /**
1881
+ * Original glow colour-choice XML (`a:glow`'s `a:schemeClr`/`a:srgbClr`/…
1882
+ * child), preserved verbatim so a theme colour reference round-trips
1883
+ * instead of always being re-serialized as a resolved `a:srgbClr` (which
1884
+ * cuts the glow off from theme/Recolor changes).
1885
+ */
1886
+ textGlowColorXml?: XmlObject;
1887
+ /** Theme colour slot the glow colour resolved from, when it is `a:schemeClr`. */
1888
+ textGlowColorRef?: PptxThemeColorRef;
1849
1889
  /** Text reflection enabled flag. */
1850
1890
  textReflection?: boolean;
1851
1891
  /** Text reflection blur radius in px. */
@@ -1982,6 +2022,18 @@ interface BulletInfo {
1982
2022
  paragraphIndex?: number;
1983
2023
  /** Bullet font family from `a:buFont`. */
1984
2024
  fontFamily?: string;
2025
+ /**
2026
+ * PANOSE font-matching hint from `a:buFont/@panose`. `a:buFont` is a
2027
+ * CT_TextFont, the same complex type as `a:latin`/`a:ea`/`a:cs`/`a:sym`
2028
+ * (which carry the equivalent `TextStyle.latinFontPanose` etc.), so a
2029
+ * bullet's own PANOSE/pitch-family/charset decide the fallback glyph
2030
+ * PowerPoint substitutes when the named typeface is missing.
2031
+ */
2032
+ fontPanose?: string;
2033
+ /** Font pitch-and-family byte from `a:buFont/@pitchFamily`. */
2034
+ fontPitchFamily?: number;
2035
+ /** Font character-set byte from `a:buFont/@charset`. */
2036
+ fontCharset?: number;
1985
2037
  /** Bullet size as percentage of text font size from `a:buSzPct`. */
1986
2038
  sizePercent?: number;
1987
2039
  /** Bullet size in points from `a:buSzPts`. */
@@ -3418,6 +3470,15 @@ interface PptxChartHistogramOptions {
3418
3470
  intervalClosed?: 'l' | 'r';
3419
3471
  underflow?: number | 'auto';
3420
3472
  overflow?: number | 'auto';
3473
+ /**
3474
+ * `c:layoutPr/cx:aggregation` was authored instead of `cx:binning`: the
3475
+ * raw rows are CATEGORICAL (a Pareto chart's `clusteredColumn` series
3476
+ * counting occurrences of each authored category, COM-verified against
3477
+ * charts-com.pptx slide 31 / chartEx6.xml), not a numeric range to bin.
3478
+ * Mutually exclusive with `binSize`/`binCount`/`intervalClosed`, which
3479
+ * only apply to a true numeric-value histogram.
3480
+ */
3481
+ aggregateByCategory?: boolean;
3421
3482
  }
3422
3483
  /** Office 2016 ChartEx waterfall series layout options. */
3423
3484
  interface PptxChartWaterfallOptions {
@@ -4082,6 +4143,18 @@ interface PptxChartData {
4082
4143
  * the source" and callers should treat it as `true`. Surface only.
4083
4144
  */
4084
4145
  wireframe?: boolean;
4146
+ /**
4147
+ * Whether the surface chart is the 2-D "top view" projection
4148
+ * (`c:surfaceChart`, PowerPoint's "Contour" / "Wireframe Contour" types)
4149
+ * rather than the 3-D isometric one (`c:surface3DChart`, "3-D Surface" /
4150
+ * "3-D Surface (Wireframe)"). Both element names map to chart type
4151
+ * `"surface"`; this bit is the only thing that tells the renderer which
4152
+ * of the two projections PowerPoint actually drew, since a top-view
4153
+ * surface has no Z-axis at all (only category and series axes) while the
4154
+ * 3-D one draws all three. Surface only; `undefined` for every other
4155
+ * chart type.
4156
+ */
4157
+ surfaceTopView?: boolean;
4085
4158
  /**
4086
4159
  * Scatter presentation mode (`c:scatterChart/c:scatterStyle/@val`).
4087
4160
  *
@@ -7271,11 +7344,17 @@ interface ZoomPptxElement extends PptxElementBase, PptxImageProperties {
7271
7344
  * `zmPr/@returnToParent` (MS-PPTX `CT_ZoomObjectProperties`, shared by all
7272
7345
  * three Zoom kinds): whether continuing forward from the destination slide
7273
7346
  * during a live show returns to this Zoom's origin slide instead of
7274
- * advancing linearly through the deck. OOXML default is `true` when the
7275
- * attribute is present but this codebase leaves it `undefined` when the
7276
- * source XML omits it, so a round-trip never fabricates the attribute.
7277
- * For `zoomType: 'summary'`, this mirrors the first tile's own value; see
7278
- * {@link SummaryZoomTarget.returnToParent} for the per-tile value.
7347
+ * advancing linearly through the deck. The schema declares `<xsd:attribute
7348
+ * name="returnToParent" type="xsd:boolean" use="optional" default="true"/>`,
7349
+ * so an ABSENT attribute means `true`, not `false`. This codebase still
7350
+ * leaves the field `undefined` (rather than fabricating `true`) when the
7351
+ * source XML omits it, so a round-trip never invents an attribute the
7352
+ * source never had; a CONSUMER of this field (playback, e.g.
7353
+ * `pptx-viewer-shared`'s `resolveZoomNavigationTarget`) must read
7354
+ * `returnToParent !== false`, not `Boolean(returnToParent)`, to get the
7355
+ * spec-correct effective value. For `zoomType: 'summary'`, this mirrors the
7356
+ * first tile's own value; see {@link SummaryZoomTarget.returnToParent} for
7357
+ * the per-tile value.
7279
7358
  */
7280
7359
  returnToParent?: boolean;
7281
7360
  /**
@@ -9285,7 +9364,12 @@ interface PptxSlideTransition {
9285
9364
  spokes?: number;
9286
9365
  /** Pattern type for shred transition. */
9287
9366
  pattern?: string;
9288
- /** Through-black flag for blinds/checker (OOXML `@_thruBlk`). */
9367
+ /**
9368
+ * Through-black flag (OOXML `@_thruBlk`). COM-verified to actually apply to
9369
+ * `cut` and `fade` (see {@link TRANSITION_THRUBLK_TYPES}); parsed generically
9370
+ * off any standard transition child so an unexpected authored value still
9371
+ * round-trips.
9372
+ */
9289
9373
  thruBlk?: boolean;
9290
9374
  /** Split orientation (horz/vert) parsed from `@_orient`. */
9291
9375
  orient?: PptxSplitOrientation;
@@ -12152,7 +12236,7 @@ interface ReflectionWrapperStyle {
12152
12236
  top: string;
12153
12237
  width: string;
12154
12238
  height: string;
12155
- /** Mirror (`scaleY(-1)`) composed with `@sx`/`@sy`/`@kx`/`@ky`/`@rot`. */
12239
+ /** `scale(@sx, @sy)` (the sign of `@sy` IS the mirror) composed with `@kx`/`@ky`/`@rot`. */
12156
12240
  transform: string;
12157
12241
  /** Anchor point for the transform above, from `@algn` (default `center top`). */
12158
12242
  transformOrigin: string;
@@ -13191,6 +13275,10 @@ interface PresentationInkStroke {
13191
13275
  points: PresentationInkPoint[];
13192
13276
  }
13193
13277
  //#endregion
13278
+ //#region src/render/paste-special.d.ts
13279
+ /** The four paste formats PowerPoint's Paste Options / Paste Special offer. */
13280
+ type PasteSpecialFormat = 'keep-source-formatting' | 'use-destination-theme' | 'picture' | 'keep-text-only';
13281
+ //#endregion
13194
13282
  //#region src/render/alignment-guides.d.ts
13195
13283
  /** A single alignment guide, positioned in authored slide pixels. */
13196
13284
  interface Guide {
@@ -13336,6 +13424,28 @@ interface FontEmbeddingDescriptor {
13336
13424
  /** Present only when `interactive` is false. */
13337
13425
  disabledReasonKey?: string;
13338
13426
  }
13427
+ //#endregion
13428
+ //#region src/render/zoom-return-navigation.d.ts
13429
+ /**
13430
+ * The navigation-relevant fields of a Zoom click target, independent of
13431
+ * `zoomType`.
13432
+ *
13433
+ * `returnToParent` is already resolved to its EFFECTIVE value here (not the
13434
+ * raw, possibly-`undefined` `ZoomPptxElement`/`SummaryZoomTarget` field):
13435
+ * `CT_ZoomObjectProperties/@returnToParent` (MS-PPTX) is `<xsd:attribute
13436
+ * name="returnToParent" type="xsd:boolean" use="optional" default="true"/>`,
13437
+ * so an ABSENT attribute means true, not false. Core deliberately stores
13438
+ * `undefined` rather than fabricating `true` (so a round-trip never invents
13439
+ * an attribute the source never had), which makes `Boolean(x)` the wrong way
13440
+ * to read it; the two `resolve*NavigationTarget` functions below are the only
13441
+ * place that distinction should be made.
13442
+ */
13443
+ interface ZoomNavigationTarget {
13444
+ targetSlideIndex: number;
13445
+ targetSectionId?: string;
13446
+ returnToParent: boolean;
13447
+ transitionDurationMs?: number;
13448
+ }
13339
13449
  /** The percentage one zoom-in press moves to, clamped. */
13340
13450
  declare function zoomInPercent(percent: number): number;
13341
13451
  /** The percentage one zoom-out press moves to, clamped. */
@@ -15237,6 +15347,21 @@ declare class EditorClipboardController {
15237
15347
  cutSelected(): void;
15238
15348
  /** Paste the clipboard payload onto the current slide (fresh id, offset, selects it). */
15239
15349
  pasteClipboard(): string | null;
15350
+ /**
15351
+ * Paste Special (Ctrl+Alt+V) / the dialog's OK: paste the clipboard with
15352
+ * `format` already applied.
15353
+ */
15354
+ pasteWithFormat(format: PasteSpecialFormat): string | null;
15355
+ /**
15356
+ * Re-derive an already-pasted element (the Paste Options toolbar) from its
15357
+ * own pristine source clone. Non-cumulative: every choice starts over from
15358
+ * the clone `pasteClipboard`/`pasteWithFormat` recorded, matching
15359
+ * PowerPoint's own toolbar. "Picture" is handled by the caller (it needs a
15360
+ * DOM rasterize step this controller does not perform) via `replaceElement`.
15361
+ */
15362
+ reformatPasted(elementId: string, sourceClone: PptxElement, format: PasteSpecialFormat): void;
15363
+ /** Replace one element by id, e.g. after rasterizing it to a picture. */
15364
+ replaceElement(elementId: string, next: PptxElement): void;
15240
15365
  }
15241
15366
 
15242
15367
  interface EditorSnapshot {
@@ -15577,6 +15702,13 @@ declare class EditorSlidesController {
15577
15702
  constructor(editor: EditorState);
15578
15703
  /** Insert a blank slide after the current one. Returns its new index, or null when not editable. */
15579
15704
  insertSlideAfterCurrent(): number | null;
15705
+ /**
15706
+ * Insert a blank slide after `index` (the thumbnail context menu's New
15707
+ * Slide, and Enter on a focused thumbnail, both of which may target a slide
15708
+ * other than the currently active one). Returns the new index, or null
15709
+ * when not editable.
15710
+ */
15711
+ insertSlideAfter(index: number): number | null;
15580
15712
  /**
15581
15713
  * Insert a shared-catalogue template slide after the current one, as one
15582
15714
  * undoable step (Home > Slide Templates gallery). The caller (the gallery
@@ -15605,6 +15737,12 @@ declare class EditorSlidesController {
15605
15737
  deleteSlideAtIndex(index: number): number | null;
15606
15738
  /** Toggle the hidden flag on the slide at `index` (the sorter's context-menu target). */
15607
15739
  toggleSlideHidden(index: number): void;
15740
+ /** Duplicate every selected slide (the thumbnail context menu's multi-select bulk Duplicate). */
15741
+ duplicateSlides(indexes: readonly number[]): void;
15742
+ /** Delete every selected slide (the thumbnail context menu's multi-select bulk Delete). */
15743
+ deleteSlides(indexes: readonly number[]): void;
15744
+ /** Toggle hidden on every selected slide (the thumbnail context menu's multi-select bulk Hide/Show). */
15745
+ toggleSlidesHidden(indexes: readonly number[]): void;
15608
15746
  /**
15609
15747
  * The layouts available for the current slide (its master's layouts),
15610
15748
  * resolved via the core `getAvailableLayoutsForSlide` API. Empty when no
@@ -15872,6 +16010,13 @@ declare class EditorState {
15872
16010
  editTemplateMode: boolean;
15873
16011
  interactionActive: boolean;
15874
16012
  clipboard: ElementClipboardPayload | null;
16013
+ /** Ctrl/Cmd+Alt+V dialog visibility. */
16014
+ pasteSpecialDialogOpen: boolean;
16015
+ /** The Paste Options toolbar's target: the elements a normal paste just inserted. */
16016
+ pasteOptionsToolbar: {
16017
+ id: string;
16018
+ sourceClone: PptxElement;
16019
+ }[] | null;
15875
16020
  /**
15876
16021
  * File ▸ Info ▸ Protect Presentation state. Deliberately NOT part of
15877
16022
  * {@link EditorSnapshot}: the secret is session state, not document content,
@@ -16078,6 +16223,12 @@ interface EditorControllerDeps {
16078
16223
  * model, so the cell under the pointer is the target.
16079
16224
  */
16080
16225
  onContextMenu?(x: number, y: number, cell: ContextMenuCellTarget | null): void;
16226
+ /**
16227
+ * Open the EMPTY-CANVAS context menu at viewport `x`/`y` (no element under
16228
+ * the cursor). Mutually exclusive with {@link onContextMenu}: opening one
16229
+ * closes the other.
16230
+ */
16231
+ onCanvasContextMenu?(x: number, y: number): void;
16081
16232
  getSnapToGrid?(): boolean;
16082
16233
  /**
16083
16234
  * Grid spacing in CSS px for snap-to-grid, derived from the deck's
@@ -16268,6 +16419,11 @@ interface StageContextMenu {
16268
16419
  y: number;
16269
16420
  cell: ContextMenuCellTarget | null;
16270
16421
  }
16422
+ /** Where the empty-canvas (no element hit) context menu opened. */
16423
+ interface StageCanvasContextMenu {
16424
+ x: number;
16425
+ y: number;
16426
+ }
16271
16427
 
16272
16428
  /**
16273
16429
  * Reactive Find & Replace panel state for the Home tab's Editing group.
@@ -17176,6 +17332,15 @@ declare class PresentationController {
17176
17332
  firstSlide(): void;
17177
17333
  /** End: the show's last slide, skipping trailing hidden slides. */
17178
17334
  lastSlide(): void;
17335
+ /**
17336
+ * Handle a Slide Zoom / Section Zoom / Summary Zoom tile click: navigates
17337
+ * to the target slide, playing the zoom's own `zmPr/@transitionDur` when
17338
+ * authored, and (when `returnToParent` is set) arms an excursion so the
17339
+ * next forward {@link advance} past the target's range returns to the
17340
+ * slide the zoom was clicked from instead of continuing linearly through
17341
+ * the deck.
17342
+ */
17343
+ navigateToZoomTarget(target: ZoomNavigationTarget): void;
17179
17344
  /**
17180
17345
  * Raise the black end-of-slide-show screen without ending anything.
17181
17346
  *
@@ -17858,6 +18023,7 @@ interface ViewerStateBag {
17858
18023
  /** `Date.now()` timestamp of the last `enterPresenterView()` call; the presenter view's elapsed-time display. */
17859
18024
  readonly presenterStartedAt: number;
17860
18025
  stageContextMenu: StageContextMenu | null;
18026
+ stageCanvasContextMenu: StageCanvasContextMenu | null;
17861
18027
  readonly activeMobileSheet: MobileSheetKey;
17862
18028
  setActiveMobileSheet(next: MobileSheetKey): void;
17863
18029
  readonly notesExpanded: boolean;
@@ -1,26 +1,26 @@
1
- import { Bh as l, zh as S } from "../transition-overlay-BmUNA9xJ.js";
2
- import { A as e, I as a, M as o, N as r, P as s, c as n, d, f as b, i as m, j as t, l as p, m as c, n as g, o as x, p as w, r as C, s as P, t as T, u as $ } from "../export-CVIAWQ_T.js";
3
- var y = a, A = s, V = o, f = t, u = e, B = r;
1
+ import { ng as l, rg as S } from "../transition-overlay-BfpjfjU4.js";
2
+ import { A as e, I as a, N as o, P as r, a as v, c as d, d as b, f as p, i as c, j as s, k as t, l as g, n as m, o as x, p as w, r as C, s as P, t as T, u as $ } from "../export-Bln1wHMQ.js";
3
+ var y = a, A = r, V = s, f = e, u = t, R = o;
4
4
  export {
5
5
  f as CollaborationCursors,
6
- B as EditorLayer,
6
+ R as EditorLayer,
7
7
  T as PowerPointViewer,
8
- m as PresentationLoader,
8
+ c as PresentationLoader,
9
9
  u as RemoteSelectionOverlay,
10
10
  y as Ribbon,
11
11
  V as SlideCanvas,
12
12
  C as ViewerState,
13
13
  A as ViewerToolbar,
14
- d as clampSlideIndex,
15
- c as createSvelteAiBridge,
16
- g as createViewerState,
17
- x as exportAllSlidesToSvg,
18
- P as exportAllSlidesToSvgBlobs,
19
- n as exportSlideAsSvg,
20
- p as exportSlideToSvg,
21
- $ as exportSlideToSvgBlob,
14
+ $ as clampSlideIndex,
15
+ w as createSvelteAiBridge,
16
+ m as createViewerState,
17
+ v as exportAllSlidesToSvg,
18
+ x as exportAllSlidesToSvgBlobs,
19
+ P as exportSlideAsSvg,
20
+ d as exportSlideToSvg,
21
+ g as exportSlideToSvgBlob,
22
22
  b as fitScale,
23
- w as resolveNavigationKey,
24
- S as zoomInPercent,
25
- l as zoomOutPercent
23
+ p as resolveNavigationKey,
24
+ l as zoomInPercent,
25
+ S as zoomOutPercent
26
26
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pptx-svelte-viewer",
3
- "version": "4.3.0",
3
+ "version": "4.5.0",
4
4
  "description": "Svelte 5 PowerPoint viewer and editor component: render, edit, present, and export PPTX slides in the browser.",
5
5
  "keywords": [
6
6
  "office",