pptx-vanilla-viewer 2.2.0 → 2.4.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.
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import "jszip";
3
3
  import { ChatTransport, LanguageModel, ToolSet, UIMessage } from "ai";
4
4
  import "pptx-viewer-mcp";
5
5
  import { Options } from "html2canvas-pro";
6
- //#region ../core/dist/text-operations-Dxy1YFgs.d.ts
6
+ //#region ../core/dist/text-operations-CCau8x-H.d.ts
7
7
  //#region src/core/types/actions.d.ts
8
8
  /**
9
9
  * Action types: hyperlinks, slide jumps, macros, and action buttons.
@@ -53,10 +53,22 @@ interface PptxAction {
53
53
  * @example
54
54
  * ```ts
55
55
  * const type: ElementActionType = "slide";
56
- * // => "slide" one of: "none" | "url" | "slide" | "firstSlide" | "lastSlide" | "prevSlide" | "nextSlide" | "endShow"
57
- * ```
58
- */
59
- type ElementActionType = 'none' | 'url' | 'slide' | 'firstSlide' | 'lastSlide' | 'prevSlide' | 'nextSlide' | 'endShow';
56
+ * // => "slide": one of: "none" | "url" | "slide" | "firstSlide" | "lastSlide" | "prevSlide" | "nextSlide" | "endShow" | "lastViewed" | "customShow" | "openFile" | "openPresentation" | "playMedia" | "oleVerb"
57
+ * ```
58
+ */
59
+ type ElementActionType = 'none' | 'url' | 'slide' | 'firstSlide' | 'lastSlide' | 'prevSlide' | 'nextSlide' | 'endShow' |
60
+ /** `ppaction://hlinkshowjump?jump=lastslideviewed` - back to the last slide the audience saw. */
61
+ 'lastViewed' |
62
+ /** `ppaction://customshow?id=N[&return=true]` - jump into a named custom show. */
63
+ 'customShow' |
64
+ /** `ppaction://hlinkfile` - open an external file via the action's `r:id`. */
65
+ 'openFile' |
66
+ /** `ppaction://hlinkpres` - open another presentation via the action's `r:id`. */
67
+ 'openPresentation' |
68
+ /** `ppaction://media` - play (or toggle) the element's own embedded media. */
69
+ 'playMedia' |
70
+ /** `ppaction://ole?verb=N` - run a numbered OLE verb on an embedded object. */
71
+ 'oleVerb';
60
72
  /**
61
73
  * User-facing action configuration stored on an element.
62
74
  * This is a convenience wrapper around the lower-level `PptxAction` that maps
@@ -83,10 +95,16 @@ interface ElementAction {
83
95
  trigger: 'click' | 'hover';
84
96
  /** What kind of action to perform. */
85
97
  type: ElementActionType;
86
- /** External URL (for 'url' type). */
98
+ /** External URL (for 'url' type), or the resolved external target (for 'openFile' / 'openPresentation'). */
87
99
  url?: string;
88
100
  /** Zero-based slide index (for 'slide' type). */
89
101
  slideIndex?: number;
102
+ /** Custom show identifier (for 'customShow' type), from `ppaction://customshow?id=`. */
103
+ customShowId?: string;
104
+ /** Whether the show returns to its origin after the custom show ends (`&return=true`), for 'customShow'. */
105
+ returnAfter?: boolean;
106
+ /** OLE verb number (for 'oleVerb' type), from `ppaction://ole?verb=`. */
107
+ oleVerb?: number;
90
108
  }
91
109
  //#endregion
92
110
  //#region src/core/types/common.d.ts
@@ -8339,7 +8357,7 @@ interface PptxEmbeddedFont {
8339
8357
  originalPartBytes?: Uint8Array;
8340
8358
  }
8341
8359
  //#endregion
8342
- //#region ../core/dist/index-mqQTixoV.d.ts
8360
+ //#region ../core/dist/index-CcItPDSd.d.ts
8343
8361
  //#region src/core/types/theme-presets.d.ts
8344
8362
  /**
8345
8363
  * A complete theme preset that can be applied to a presentation.
@@ -10613,6 +10631,19 @@ interface AutosaveRecord {
10613
10631
  timestamp: number;
10614
10632
  size: number;
10615
10633
  }
10634
+ //#endregion
10635
+ //#region src/render/master-view-crud.d.ts
10636
+ /** One Slide Master view sidebar command. */
10637
+ type MasterViewCrudActionId = 'addLayout' | 'duplicateLayout' | 'deleteLayout' | 'renameLayout' | 'addMaster' | 'duplicateMaster' | 'deleteMaster' | 'renameMaster';
10638
+ /** A framework-neutral descriptor for one sidebar button. */
10639
+ interface MasterViewCrudAction {
10640
+ id: MasterViewCrudActionId;
10641
+ /** i18n key for the button label (`pptx.masterView.<id>`). */
10642
+ labelKey: string;
10643
+ enabled: boolean;
10644
+ /** i18n key explaining why the button is disabled, set only when it is. */
10645
+ disabledReasonKey?: string;
10646
+ }
10616
10647
  /**
10617
10648
  * Optional hook point for hosts that want to wire a real sign-in flow into
10618
10649
  * File > Account. Disabled by default: the Account page renders nothing
@@ -10706,26 +10737,25 @@ interface PrintSettings {
10706
10737
  scaleToFit?: boolean;
10707
10738
  }
10708
10739
  //#endregion
10709
- //#region src/viewer/state/store.d.ts
10710
- /**
10711
- * A tiny framework-free reactive store: `get` / `set(patch)` / `subscribe`.
10712
- *
10713
- * This is deliberately minimal (a few dozen lines, no external deps). It only
10714
- * carries the vanilla binding's *view state*; all domain logic (parsing,
10715
- * styles, geometry, text building) stays in `pptx-viewer-core` and
10716
- * `pptx-viewer-shared`.
10717
- */
10718
- /** Listener invoked after every state change with the next and previous state. */
10719
- type StoreListener<T> = (state: T, previous: T) => void;
10720
- interface Store<T extends object> {
10721
- /** Current state snapshot (do not mutate). */
10722
- get(): T;
10723
- /** Shallow-merge a partial patch into the state and notify subscribers. */
10724
- set(patch: Partial<T>): void;
10725
- /** Subscribe to state changes; returns an unsubscribe function. */
10726
- subscribe(listener: StoreListener<T>): () => void;
10740
+ //#region src/render/slide-size-rescale.d.ts
10741
+ type SlideSizeRescaleMode = 'maximize' | 'ensureFit';
10742
+ type ReadOnlyRecommendationKind = 'modifyVerifier' | 'markedFinal' | null;
10743
+ interface ReadOnlyRecommendation {
10744
+ readonly kind: ReadOnlyRecommendationKind;
10745
+ /** i18n key for the banner/toast a binding shows for this recommendation. */
10746
+ readonly messageKey: string;
10747
+ /** Whether a binding's "read-only" toggle should default to on. */
10748
+ readonly defaultReadOnly: boolean;
10749
+ }
10750
+ interface CompatibilityWarningToast {
10751
+ /** Stable per-code id, since toasts are deduped by code (see module docs). */
10752
+ readonly id: string;
10753
+ readonly code: string;
10754
+ readonly severity: 'info' | 'warning';
10755
+ readonly messageKey: string;
10756
+ /** `{{code}}` for the generic fallback key; `undefined` for a mapped code. */
10757
+ readonly params?: Readonly<Record<string, string>>;
10727
10758
  }
10728
- declare function createStore<T extends object>(initial: T): Store<T>;
10729
10759
  //#endregion
10730
10760
  //#region src/viewer/i18n/translator.d.ts
10731
10761
  /**
@@ -10751,6 +10781,27 @@ type TranslationMessages = Record<string, Record<string, string>>;
10751
10781
  */
10752
10782
  declare function createTranslator(locale?: string, messages?: TranslationMessages): Translator;
10753
10783
  //#endregion
10784
+ //#region src/viewer/state/store.d.ts
10785
+ /**
10786
+ * A tiny framework-free reactive store: `get` / `set(patch)` / `subscribe`.
10787
+ *
10788
+ * This is deliberately minimal (a few dozen lines, no external deps). It only
10789
+ * carries the vanilla binding's *view state*; all domain logic (parsing,
10790
+ * styles, geometry, text building) stays in `pptx-viewer-core` and
10791
+ * `pptx-viewer-shared`.
10792
+ */
10793
+ /** Listener invoked after every state change with the next and previous state. */
10794
+ type StoreListener<T> = (state: T, previous: T) => void;
10795
+ interface Store<T extends object> {
10796
+ /** Current state snapshot (do not mutate). */
10797
+ get(): T;
10798
+ /** Shallow-merge a partial patch into the state and notify subscribers. */
10799
+ set(patch: Partial<T>): void;
10800
+ /** Subscribe to state changes; returns an unsubscribe function. */
10801
+ subscribe(listener: StoreListener<T>): () => void;
10802
+ }
10803
+ declare function createStore<T extends object>(initial: T): Store<T>;
10804
+ //#endregion
10754
10805
  //#region src/viewer/render/types.d.ts
10755
10806
  /** Discriminant values of the {@link PptxElement} union (`'text'`, `'chart'`, ...). */
10756
10807
  type PptxElementType = PptxElement['type'];
@@ -10897,6 +10948,16 @@ interface ElementRenderContext {
10897
10948
  * every non-authoring surface, matching `onChartPointChange`.
10898
10949
  */
10899
10950
  readonly onChartPartSelect?: (element: PptxElement, part: ChartPartRef) => void;
10951
+ /**
10952
+ * Ids of the currently selected elements (the store's `selectedElementIds`).
10953
+ * A chart renderer arms its on-canvas mark hit-testing
10954
+ * (`chart-editable.ts`'s `CHART_INTERACTIVE_CLASS`) only while ITS OWN id is
10955
+ * in this set: an unselected chart must let a mark click bubble up and
10956
+ * select the chart like any other element, exactly as a bare click on any
10957
+ * other element type does. Absent on every non-authoring surface, matching
10958
+ * `onChartPointChange`.
10959
+ */
10960
+ readonly selectedElementIds?: ReadonlySet<string>;
10900
10961
  /**
10901
10962
  * Per-element native-animation playback state, keyed by element id, present
10902
10963
  * only during a running presentation. Chart / SmartArt renderers read their
@@ -11043,6 +11104,8 @@ interface SlideStageOptions {
11043
11104
  readonly chartPartSelection?: ChartPartSelection | null;
11044
11105
  /** See `ElementRenderContext.onChartPartSelect`. */
11045
11106
  readonly onChartPartSelect?: (element: PptxElement, part: ChartPartRef) => void;
11107
+ /** See `ElementRenderContext.selectedElementIds`. */
11108
+ readonly selectedElementIds?: ReadonlySet<string>;
11046
11109
  /**
11047
11110
  * True only for the main (interactive) canvas, never the thumbnail rail.
11048
11111
  * Marks every rendered element (recursively, including group children) with
@@ -11117,6 +11180,10 @@ interface ViewerState {
11117
11180
  appProperties?: PptxAppProperties;
11118
11181
  customProperties: PptxCustomProperty[];
11119
11182
  customShows: PptxCustomShow[];
11183
+ /** Office 2021 (p188) comment authors, for the `@`-mention typeahead. */
11184
+ modernCommentAuthors: PptxModernCommentAuthor[];
11185
+ /** Legacy `ppt/commentAuthors.xml` authors, mapped into the typeahead too. */
11186
+ commentAuthors: PptxCommentAuthor[];
11120
11187
  /**
11121
11188
  * The custom show a started slide show is restricted to, or null for the
11122
11189
  * whole deck. Custom shows were definable here but nothing could select one,
@@ -11306,6 +11373,28 @@ interface ViewerState {
11306
11373
  guides: Guide[];
11307
11374
  eyedropperActive: boolean;
11308
11375
  spellCheckEnabled: boolean;
11376
+ /**
11377
+ * Whether the loaded deck recommends opening read-only (`p:modifyVerifier`
11378
+ * or `docProps/custom.xml`'s "Mark as Final"), and why; null when it does
11379
+ * not. See `readOnlyRecommendation` in `pptx-viewer-shared`. Reset on every
11380
+ * load.
11381
+ */
11382
+ readOnlyRecommendation: ReadOnlyRecommendation | null;
11383
+ /**
11384
+ * Whether the read-only recommendation banner has been closed for this
11385
+ * load, by either "Edit anyway" or the plain dismiss button. Independent
11386
+ * from whether editing is actually locked: "Dismiss" hides the banner but
11387
+ * keeps the lock, only "Edit anyway" lifts it too.
11388
+ */
11389
+ readOnlyBannerDismissed: boolean;
11390
+ /**
11391
+ * Compatibility-warning toasts for the current load (deck-level
11392
+ * `data.warnings` concatenated with every slide's own `warnings`, deduped
11393
+ * by code through the shared `compatibilityWarningToasts`). Load
11394
+ * diagnostics, not auto-hiding; cleared on the next load. Dismissing a
11395
+ * toast (or all of them) removes it from this list.
11396
+ */
11397
+ compatToasts: CompatibilityWarningToast[];
11309
11398
  }
11310
11399
  declare function createInitialViewerState(): ViewerState;
11311
11400
  //#endregion
@@ -11420,13 +11509,13 @@ interface ClipboardActions {
11420
11509
  //#endregion
11421
11510
  //#region src/viewer/editor/editor-comment-actions.d.ts
11422
11511
  interface CommentActions {
11423
- addComment(text: string, elementId?: string): string | null;
11512
+ addComment(text: string, elementId?: string, mentions?: PptxCommentMention[]): string | null;
11424
11513
  /**
11425
11514
  * Append a reply under a top-level comment (React's `handleSubmitReply`
11426
11515
  * nested-`replies` model: the reply carries `threadId` = parent id and
11427
11516
  * inherits the parent's `elementId` anchor).
11428
11517
  */
11429
- addCommentReply(parentId: string, text: string): string | null;
11518
+ addCommentReply(parentId: string, text: string, mentions?: PptxCommentMention[]): string | null;
11430
11519
  /** Update a comment's text in place; recurses into `replies` so nested rows are editable too. */
11431
11520
  editComment(id: string, text: string): void;
11432
11521
  deleteComment(id: string): void;
@@ -11475,6 +11564,15 @@ interface DeckActions {
11475
11564
  * exact authored dimensions.
11476
11565
  */
11477
11566
  updateSlideSize(size: SlideSizeEmu): void;
11567
+ /**
11568
+ * Adopt an EMU slide size AND rescale every slide's content for it in one
11569
+ * undoable step (PowerPoint's Design > Slide Size "Maximize" / "Ensure Fit"
11570
+ * prompt, shown when the deck has content and the new size does not match
11571
+ * the old one). Unlike {@link updateSlideSize}, this also repositions and
11572
+ * resizes every element (and scales font sizes) through the shared
11573
+ * `scaleSlidesForSizeChange`.
11574
+ */
11575
+ applySlideSizeRescale(size: SlideSizeEmu, mode: SlideSizeRescaleMode): void;
11478
11576
  }
11479
11577
  //#endregion
11480
11578
  //#region src/viewer/editor/editor-ink-actions.d.ts
@@ -11585,6 +11683,19 @@ interface InspectorActions {
11585
11683
  setSmartArtColorScheme(scheme: SmartArtColorScheme): void;
11586
11684
  }
11587
11685
  //#endregion
11686
+ //#region src/viewer/editor/editor-master-view-crud-actions.d.ts
11687
+ interface MasterViewCrudActions {
11688
+ /**
11689
+ * Run one sidebar command (`addLayout` / `duplicateLayout` / `deleteLayout` /
11690
+ * `renameLayout` / `addMaster` / `duplicateMaster` / `deleteMaster` /
11691
+ * `renameMaster`) against the CURRENT master-view target. A no-op outside
11692
+ * master view, when the deck is read-only, or when the action is disabled
11693
+ * for the current target (mirrors the sidebar's own gating, so a stray call
11694
+ * through the public API cannot bypass it).
11695
+ */
11696
+ runMasterViewCrudAction(id: MasterViewCrudActionId): Promise<void>;
11697
+ }
11698
+ //#endregion
11588
11699
  //#region src/viewer/editor/editor-section-actions.d.ts
11589
11700
  /** History-aware slide section actions exposed to the rail and Home ribbon. */
11590
11701
  interface SectionActions {
@@ -11725,6 +11836,8 @@ interface GeometryPatch {
11725
11836
  interface EditActions extends TextActions, ArrangeActions, ClipboardActions, SlideActions, SlideBackgroundActions, TransitionActions, AnimationActions, InspectorActions, InkActions, DeckActions {
11726
11837
  /** Slide section CRUD and ordering actions. */
11727
11838
  sections: SectionActions;
11839
+ /** Slide Master view sidebar CRUD (Insert/Duplicate/Delete/Rename Layout/Master). */
11840
+ masterView: MasterViewCrudActions;
11728
11841
  comments: CommentActions;
11729
11842
  toggleFormatPainter(): void;
11730
11843
  setShapeFill(color: string): void;
@@ -11732,6 +11845,8 @@ interface EditActions extends TextActions, ArrangeActions, ClipboardActions, Sli
11732
11845
  setShapeStrokeWidth(width: number): void;
11733
11846
  setShapeStyle(patch: Partial<ShapeStyle>): void;
11734
11847
  setShapeType(shapeType: string): void;
11848
+ /** B6: fold a colour into the deck's "Recent colours" MRU list; see `InspectorHandlers.pushRecentColor`. */
11849
+ pushRecentColor(hex: string): void;
11735
11850
  /** Commit an inspector geometry edit (X/Y/W/H/rotation). */
11736
11851
  setGeometry(patch: GeometryPatch): void;
11737
11852
  insert(kind: InsertKind, shapeType?: ShapePresetType): void;
@@ -11897,6 +12012,11 @@ interface InspectorState {
11897
12012
  tableRowHeights: number[];
11898
12013
  /** The selected table element itself, feeding the inspector data grid. */
11899
12014
  tableElement?: TablePptxElement;
12015
+ /**
12016
+ * B6: the deck's `p:clrMru`, most-recent-first, feeding the "Recent
12017
+ * colours" row under the fill/stroke/text colour pickers.
12018
+ */
12019
+ recentColors: readonly string[];
11900
12020
  }
11901
12021
  /**
11902
12022
  * Deck/slide-level state for the inspector's Elements and Comments tabs plus
@@ -11911,11 +12031,21 @@ interface InspectorDeckState {
11911
12031
  };
11912
12032
  /** The deck's `p:sldSz` in EMU, which is what a save persists. */
11913
12033
  slideSize: SlideSizeEmu | undefined;
12034
+ /**
12035
+ * Whether ANY slide in the deck has at least one element (not just the
12036
+ * active one). Gates the SLIDE SIZE card's rescale prompt: PowerPoint only
12037
+ * offers Maximize/Ensure Fit when there is content to rescale.
12038
+ */
12039
+ hasDeckElements: boolean;
11914
12040
  elements: readonly PptxElement[];
11915
12041
  selectedIds: readonly string[];
11916
12042
  /** Primary selected element id (docked Animation panel target), if any. */
11917
12043
  selectedElementId?: string;
11918
12044
  comments: readonly PptxComment[];
12045
+ /** Authors offered by the Comments tab's `@`-mention typeahead. */
12046
+ commentMentionAuthors: readonly PptxModernCommentAuthor[];
12047
+ /** Named custom shows, for the Action Settings panel's `customShow` picker. */
12048
+ customShows: readonly PptxCustomShow[];
11919
12049
  docTitle: string | undefined;
11920
12050
  docAuthor: string | undefined;
11921
12051
  editable: boolean;
@@ -11979,6 +12109,9 @@ interface MasterViewSidebarOptions {
11979
12109
  handoutSlidesPerPage: number;
11980
12110
  /** Editing affordances are offered only on an editable deck. */
11981
12111
  editable?: boolean;
12112
+ /** B4: the sidebar's CRUD command list for the current target (`[]` when there is none). */
12113
+ crudActions: readonly MasterViewCrudAction[];
12114
+ onCrudAction(id: MasterViewCrudActionId): void;
11982
12115
  renderStage(slide: PptxSlide, scale: number): HTMLElement;
11983
12116
  onSelect(masterIndex: number, layoutIndex: number | null): void;
11984
12117
  onTabChange(tab: MasterViewTab): void;
@@ -12150,6 +12283,8 @@ interface RibbonDrawState {
12150
12283
  tool: DrawTool;
12151
12284
  color: string;
12152
12285
  width: number;
12286
+ /** B6: the deck's `p:clrMru`, most-recent-first. */
12287
+ recentColors?: readonly string[];
12153
12288
  }
12154
12289
  /** Insert tab handler: build + insert an element of the given kind/shape preset. */
12155
12290
  interface RibbonInsertHandlers {
@@ -12223,6 +12358,8 @@ interface RibbonSelectionState {
12223
12358
  embeddedFontFamilies?: readonly string[];
12224
12359
  /** Families registered this session via File > Options > Fonts. */
12225
12360
  customFontFamilies?: readonly string[];
12361
+ /** B6: the deck's `p:clrMru`, most-recent-first; feeds every swatch picker's row. */
12362
+ recentColors?: readonly string[];
12226
12363
  }
12227
12364
  //#endregion
12228
12365
  //#region src/viewer/ui/mobile-action-sheets.d.ts
@@ -12494,6 +12631,10 @@ interface ViewerChrome {
12494
12631
  setQuickAccessPosition(position: 'above' | 'below'): void;
12495
12632
  /** Show/hide the Protected View "Enable Editing" banner. */
12496
12633
  setProtectedView(active: boolean): void;
12634
+ /** Show/hide + populate the read-only recommendation banner. */
12635
+ setReadOnlyRecommendation(recommendation: ReadOnlyRecommendation | null, dismissed: boolean): void;
12636
+ /** Replace the compatibility-warning toast stack. */
12637
+ setCompatToasts(toasts: readonly CompatibilityWarningToast[]): void;
12497
12638
  }
12498
12639
  //#endregion
12499
12640
  //#region src/viewer/editor/editor-controller.d.ts
@@ -13531,6 +13672,14 @@ interface ChromeHost {
13531
13672
  quickAccessScreenTip(label: string): string | undefined;
13532
13673
  /** Trust Center > Protected View's "Enable Editing" banner button. */
13533
13674
  enableEditingFromProtectedView(): void;
13675
+ /** The read-only recommendation banner's "Edit anyway" button. */
13676
+ editAnywayFromReadOnlyRecommendation(): void;
13677
+ /** The read-only recommendation banner's plain close button. */
13678
+ dismissReadOnlyBanner(): void;
13679
+ /** One compatibility toast's own dismiss button. */
13680
+ dismissCompatToast(id: string): void;
13681
+ /** The compatibility toast stack's "Dismiss all" button. */
13682
+ dismissAllCompatToasts(): void;
13534
13683
  /** Trust Center > "Confirm before opening external hyperlinks" gate + prompt. */
13535
13684
  confirmExternalHyperlink(url: string): boolean;
13536
13685
  toggleAutosave(): boolean;
@@ -13546,6 +13695,12 @@ interface ChromeHost {
13546
13695
  goToFirstSlide(): void;
13547
13696
  /** End: the show's last slide (skips trailing hidden slides while presenting). */
13548
13697
  goToLastSlide(): void;
13698
+ /**
13699
+ * The deck index "Present From Beginning" should land on (skips a hidden
13700
+ * slide 1 and honours the authored `p:showPr/p:sldRg` range / custom show),
13701
+ * unconditionally unlike {@link goToFirstSlide}.
13702
+ */
13703
+ firstShowSlideIndex(): number;
13549
13704
  getSlideCount(): number;
13550
13705
  enterPresentation(): Promise<void>;
13551
13706
  openPresenterView(): void;
@@ -13698,7 +13853,7 @@ declare class PptxViewer extends ViewerExportHost implements PptxViewerInstance,
13698
13853
  private userFontsStyle;
13699
13854
  private signatureWarningAcknowledged;
13700
13855
  private detachSignatureWarning;
13701
- /** Tags in-flight webfont probes; only the newest deck may apply its result. */
13856
+ /** Tags in-flight webfont resolutions; only the newest deck may apply its result. */
13702
13857
  private webfontsToken;
13703
13858
  private annotations;
13704
13859
  private parityWorkflows;
@@ -13747,6 +13902,8 @@ declare class PptxViewer extends ViewerExportHost implements PptxViewerInstance,
13747
13902
  goToFirstSlide: () => void;
13748
13903
  /** End: the show's last slide (skips trailing hidden slides while presenting). */
13749
13904
  goToLastSlide: () => void;
13905
+ /** "Present From Beginning"'s target deck index (skips a hidden slide 1 / honours the authored range). */
13906
+ firstShowSlideIndex: () => number;
13750
13907
  getSlideCount: () => number;
13751
13908
  getCurrentSlide: () => number;
13752
13909
  getZoom: () => number;
@@ -13922,6 +14079,18 @@ declare class PptxViewer extends ViewerExportHost implements PptxViewerInstance,
13922
14079
  setEditable(editable: boolean): void;
13923
14080
  /** Trust Center > Protected View's "Enable Editing" banner button. */
13924
14081
  enableEditingFromProtectedView(): void;
14082
+ /**
14083
+ * The read-only recommendation banner's "Edit anyway" button
14084
+ * (`p:modifyVerifier` / "Mark as Final"): lifts the lock and hides the
14085
+ * banner, unlike plain dismiss which only hides it.
14086
+ */
14087
+ editAnywayFromReadOnlyRecommendation(): void;
14088
+ /** The read-only recommendation banner's plain close button: hides the banner, keeps the lock. */
14089
+ dismissReadOnlyBanner(): void;
14090
+ /** One compatibility toast's own dismiss button. */
14091
+ dismissCompatToast(id: string): void;
14092
+ /** The compatibility toast stack's "Dismiss all" button. */
14093
+ dismissAllCompatToasts(): void;
13925
14094
  /**
13926
14095
  * Trust Center > "Confirm before opening external hyperlinks": both a
13927
14096
  * run-level text hyperlink click and an on-slide Action Setting's