pptx-react-viewer 4.17.0 → 4.18.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 (136) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/{AiChatPanel-BVWU7HDV.js → AiChatPanel-4RAGQKFE.js} +28 -28
  3. package/dist/AiChatPanel-4RAGQKFE.js.br +0 -0
  4. package/dist/AiChatPanel-4RAGQKFE.js.gz +0 -0
  5. package/dist/{AiChatPanel-2VX4EF2E.mjs → AiChatPanel-BIS3OYZ2.mjs} +4 -4
  6. package/dist/AiChatPanel-BIS3OYZ2.mjs.br +0 -0
  7. package/dist/AiChatPanel-BIS3OYZ2.mjs.gz +0 -0
  8. package/dist/{Model3DScene-6FW74F37.js → Model3DScene-KJBH5LFE.js} +2 -2
  9. package/dist/Model3DScene-KJBH5LFE.js.br +0 -0
  10. package/dist/Model3DScene-KJBH5LFE.js.gz +0 -0
  11. package/dist/{Model3DScene-PR3MSU7A.mjs → Model3DScene-ZVXXKGMO.mjs} +1 -1
  12. package/dist/Model3DScene-ZVXXKGMO.mjs.br +0 -0
  13. package/dist/Model3DScene-ZVXXKGMO.mjs.gz +0 -0
  14. package/dist/{chunk-QWQADOJZ.js → chunk-2GRLCBMP.js} +1 -9
  15. package/dist/chunk-2GRLCBMP.js.br +0 -0
  16. package/dist/chunk-2GRLCBMP.js.gz +0 -0
  17. package/dist/{chunk-PU6X5LPR.mjs → chunk-5OYCO5WW.mjs} +1 -1
  18. package/dist/chunk-5OYCO5WW.mjs.br +0 -0
  19. package/dist/chunk-5OYCO5WW.mjs.gz +0 -0
  20. package/dist/{chunk-XUT6KCC4.js → chunk-7T64DQTQ.js} +197 -197
  21. package/dist/chunk-7T64DQTQ.js.br +0 -0
  22. package/dist/chunk-7T64DQTQ.js.gz +0 -0
  23. package/dist/{chunk-UN4FCEZI.js → chunk-CJ3GYPF6.js} +3192 -4602
  24. package/dist/chunk-CJ3GYPF6.js.br +0 -0
  25. package/dist/chunk-CJ3GYPF6.js.gz +0 -0
  26. package/dist/{chunk-NMYQ4XT2.mjs → chunk-EDQ436NK.mjs} +5593 -1711
  27. package/dist/chunk-EDQ436NK.mjs.br +0 -0
  28. package/dist/chunk-EDQ436NK.mjs.gz +0 -0
  29. package/dist/{chunk-GLLEZR4U.mjs → chunk-IDZ7S2O3.mjs} +2 -9
  30. package/dist/chunk-IDZ7S2O3.mjs.br +0 -0
  31. package/dist/chunk-IDZ7S2O3.mjs.gz +0 -0
  32. package/dist/{chunk-Y5JCGX5P.mjs → chunk-NWWE7I6R.mjs} +1292 -2702
  33. package/dist/chunk-NWWE7I6R.mjs.br +0 -0
  34. package/dist/chunk-NWWE7I6R.mjs.gz +0 -0
  35. package/dist/{chunk-7KKE5JM3.js → chunk-SJJ4AOLI.js} +831 -831
  36. package/dist/chunk-SJJ4AOLI.js.br +0 -0
  37. package/dist/chunk-SJJ4AOLI.js.gz +0 -0
  38. package/dist/{chunk-AC4V4C43.mjs → chunk-SJJY4B4V.mjs} +5 -5
  39. package/dist/chunk-SJJY4B4V.mjs.br +0 -0
  40. package/dist/chunk-SJJY4B4V.mjs.gz +0 -0
  41. package/dist/{chunk-N5EJL7SU.js → chunk-UWRUG37I.js} +5 -5
  42. package/dist/chunk-UWRUG37I.js.br +0 -0
  43. package/dist/chunk-UWRUG37I.js.gz +0 -0
  44. package/dist/{chunk-CRHNHNQL.mjs → chunk-X5O53JPT.mjs} +2 -2
  45. package/dist/chunk-X5O53JPT.mjs.br +0 -0
  46. package/dist/chunk-X5O53JPT.mjs.gz +0 -0
  47. package/dist/{chunk-A56VH5AT.js → chunk-XZQNOZA6.js} +5621 -1723
  48. package/dist/chunk-XZQNOZA6.js.br +0 -0
  49. package/dist/chunk-XZQNOZA6.js.gz +0 -0
  50. package/dist/i18n/de.cjs +1 -0
  51. package/dist/i18n/de.cjs.br +0 -0
  52. package/dist/i18n/de.cjs.gz +0 -0
  53. package/dist/i18n/de.mjs +1 -0
  54. package/dist/i18n/de.mjs.br +0 -0
  55. package/dist/i18n/de.mjs.gz +0 -0
  56. package/dist/i18n/es.cjs +1 -0
  57. package/dist/i18n/es.cjs.br +0 -0
  58. package/dist/i18n/es.cjs.gz +0 -0
  59. package/dist/i18n/es.mjs +1 -0
  60. package/dist/i18n/es.mjs.br +0 -0
  61. package/dist/i18n/es.mjs.gz +0 -0
  62. package/dist/i18n/fr.cjs +1 -0
  63. package/dist/i18n/fr.cjs.br +0 -0
  64. package/dist/i18n/fr.cjs.gz +0 -0
  65. package/dist/i18n/fr.mjs +1 -0
  66. package/dist/i18n/fr.mjs.br +0 -0
  67. package/dist/i18n/fr.mjs.gz +0 -0
  68. package/dist/i18n/zh-CN.cjs +1 -0
  69. package/dist/i18n/zh-CN.cjs.br +0 -0
  70. package/dist/i18n/zh-CN.cjs.gz +0 -0
  71. package/dist/i18n/zh-CN.mjs +1 -0
  72. package/dist/i18n/zh-CN.mjs.br +0 -0
  73. package/dist/i18n/zh-CN.mjs.gz +0 -0
  74. package/dist/i18n.js +4 -4
  75. package/dist/i18n.js.br +0 -0
  76. package/dist/i18n.js.gz +0 -0
  77. package/dist/i18n.mjs +1 -1
  78. package/dist/i18n.mjs.br +0 -0
  79. package/dist/i18n.mjs.gz +0 -0
  80. package/dist/index.d.ts +436 -1
  81. package/dist/index.js +63 -63
  82. package/dist/index.js.br +0 -0
  83. package/dist/index.js.gz +0 -0
  84. package/dist/index.mjs +6 -6
  85. package/dist/index.mjs.br +0 -0
  86. package/dist/index.mjs.gz +0 -0
  87. package/dist/internals.d.ts +391 -1
  88. package/dist/internals.js +105 -105
  89. package/dist/internals.js.br +0 -0
  90. package/dist/internals.js.gz +0 -0
  91. package/dist/internals.mjs +4 -4
  92. package/dist/internals.mjs.br +0 -0
  93. package/dist/internals.mjs.gz +0 -0
  94. package/dist/pptx-viewer.css +1 -1
  95. package/dist/pptx-viewer.css.br +0 -0
  96. package/dist/pptx-viewer.css.gz +0 -0
  97. package/dist/viewer/index.d.ts +436 -1
  98. package/dist/viewer/index.js +27 -27
  99. package/dist/viewer/index.js.br +0 -0
  100. package/dist/viewer/index.js.gz +0 -0
  101. package/dist/viewer/index.mjs +6 -6
  102. package/dist/viewer/index.mjs.br +0 -0
  103. package/dist/viewer/index.mjs.gz +0 -0
  104. package/package.json +2 -2
  105. package/dist/AiChatPanel-2VX4EF2E.mjs.br +0 -0
  106. package/dist/AiChatPanel-2VX4EF2E.mjs.gz +0 -0
  107. package/dist/AiChatPanel-BVWU7HDV.js.br +0 -0
  108. package/dist/AiChatPanel-BVWU7HDV.js.gz +0 -0
  109. package/dist/Model3DScene-6FW74F37.js.br +0 -0
  110. package/dist/Model3DScene-6FW74F37.js.gz +0 -0
  111. package/dist/Model3DScene-PR3MSU7A.mjs.br +0 -2
  112. package/dist/Model3DScene-PR3MSU7A.mjs.gz +0 -0
  113. package/dist/chunk-7KKE5JM3.js.br +0 -0
  114. package/dist/chunk-7KKE5JM3.js.gz +0 -0
  115. package/dist/chunk-A56VH5AT.js.br +0 -0
  116. package/dist/chunk-A56VH5AT.js.gz +0 -0
  117. package/dist/chunk-AC4V4C43.mjs.br +0 -0
  118. package/dist/chunk-AC4V4C43.mjs.gz +0 -0
  119. package/dist/chunk-CRHNHNQL.mjs.br +0 -0
  120. package/dist/chunk-CRHNHNQL.mjs.gz +0 -0
  121. package/dist/chunk-GLLEZR4U.mjs.br +0 -0
  122. package/dist/chunk-GLLEZR4U.mjs.gz +0 -0
  123. package/dist/chunk-N5EJL7SU.js.br +0 -0
  124. package/dist/chunk-N5EJL7SU.js.gz +0 -0
  125. package/dist/chunk-NMYQ4XT2.mjs.br +0 -0
  126. package/dist/chunk-NMYQ4XT2.mjs.gz +0 -0
  127. package/dist/chunk-PU6X5LPR.mjs.br +0 -0
  128. package/dist/chunk-PU6X5LPR.mjs.gz +0 -0
  129. package/dist/chunk-QWQADOJZ.js.br +0 -0
  130. package/dist/chunk-QWQADOJZ.js.gz +0 -0
  131. package/dist/chunk-UN4FCEZI.js.br +0 -0
  132. package/dist/chunk-UN4FCEZI.js.gz +0 -0
  133. package/dist/chunk-XUT6KCC4.js.br +0 -0
  134. package/dist/chunk-XUT6KCC4.js.gz +0 -0
  135. package/dist/chunk-Y5JCGX5P.mjs.br +0 -0
  136. package/dist/chunk-Y5JCGX5P.mjs.gz +0 -0
@@ -2617,10 +2617,127 @@ interface PresentationInkStroke {
2617
2617
  points: PresentationInkPoint[];
2618
2618
  }
2619
2619
  //#endregion
2620
+ //#region src/render/presentation-blackboard.d.ts
2621
+ /** Blackout state, as carried by {@link PresentationSnapshot}. */
2622
+ type PresentationBlackout = PresentationSnapshot['blackout'];
2623
+ //#endregion
2620
2624
  //#region src/render/paste-special.d.ts
2621
2625
  /** The four paste formats PowerPoint's Paste Options / Paste Special offer. */
2622
2626
  type PasteSpecialFormat = 'keep-source-formatting' | 'use-destination-theme' | 'picture' | 'keep-text-only';
2623
2627
  //#endregion
2628
+ //#region src/render/chrome-controls-state.d.ts
2629
+ type ChromeTranslate = (key: string, params?: Record<string, string | number>) => string;
2630
+ type ReadOnlyBannerPasswordError = 'wrong-password' | 'unsupported-algorithm';
2631
+ interface ReadOnlyBannerViewState {
2632
+ /** `ReadOnlyRecommendation.kind`; mirrored onto the host's `data-kind`. */
2633
+ kind: string | null;
2634
+ /** `ReadOnlyRecommendation.messageKey`, translated by `translate`. */
2635
+ messageKey: string;
2636
+ /** Swap the Edit anyway / Dismiss pair for the inline password form. */
2637
+ passwordPromptOpen?: boolean;
2638
+ passwordError?: ReadOnlyBannerPasswordError | null;
2639
+ /** Disables the form while a submitted password is being checked. */
2640
+ checkingPassword?: boolean;
2641
+ translate?: ChromeTranslate;
2642
+ }
2643
+ interface PasteOptionsViewState {
2644
+ /** Right edge of the pasted element in viewport pixels. */
2645
+ left: number;
2646
+ /** Bottom edge of the pasted element in viewport pixels. */
2647
+ top: number;
2648
+ translate?: ChromeTranslate;
2649
+ }
2650
+ interface CompatToastViewItem {
2651
+ readonly id: string;
2652
+ readonly code: string;
2653
+ readonly severity: 'info' | 'warning';
2654
+ readonly messageKey: string;
2655
+ readonly params?: Readonly<Record<string, string>>;
2656
+ }
2657
+ interface CompatToastsViewState {
2658
+ /** Dismiss-filtered toasts. The element shows the first {@link COMPAT_TOAST_VISIBLE_LIMIT}. */
2659
+ toasts: readonly CompatToastViewItem[];
2660
+ /** Extra toasts a host already trimmed off the list it passes. */
2661
+ overflowCount?: number;
2662
+ /** Width of the open right-docked panel (see `compatToastStackStyle`). */
2663
+ rightInset?: number;
2664
+ /** Live height of the docked notes strip (see `compatToastStackStyle`). */
2665
+ bottomInset?: number;
2666
+ translate?: ChromeTranslate;
2667
+ }
2668
+ type DialogFooterVariant = 'secondary' | 'primary' | 'warning';
2669
+ type DialogFooterIcon = 'trash' | 'pen' | 'restore' | 'print' | 'check';
2670
+ interface DialogFooterAction {
2671
+ /** Stable id echoed back in the `dialog-footer-request` intent. */
2672
+ id: string;
2673
+ /** Already-translated visible label and accessible name. */
2674
+ label: string;
2675
+ variant?: DialogFooterVariant;
2676
+ icon?: DialogFooterIcon;
2677
+ disabled?: boolean;
2678
+ /** Optional `data-testid` stamped on the button. */
2679
+ testId?: string;
2680
+ }
2681
+ interface DialogFooterViewState {
2682
+ actions: readonly DialogFooterAction[];
2683
+ }
2684
+ type MobileBarId = 'slides' | 'insert' | 'inspector' | 'comments' | 'notes';
2685
+ interface MobileBarViewState {
2686
+ /** Every button disables at 0 (see `buildBarActions`). */
2687
+ slideCount: number;
2688
+ /** The button whose sheet is open; reflected as `aria-pressed` and a top pill. */
2689
+ activeSheet?: MobileBarId | null;
2690
+ /** Comment count on the badge of Comments (`99+` above 99). */
2691
+ commentCount?: number;
2692
+ /** Buttons dropped entirely, such as Notes when `hiddenActions` hides it. */
2693
+ hidden?: readonly MobileBarId[];
2694
+ /** Buttons disabled beyond the no-slides rule, such as edit-only ones in view mode. */
2695
+ disabled?: readonly MobileBarId[];
2696
+ translate?: ChromeTranslate;
2697
+ }
2698
+ type MobileToolbarId = 'menu' | 'undo' | 'redo' | 'ai' | 'save' | 'present' | 'share';
2699
+ interface MobileToolbarViewState {
2700
+ /** Menu, Undo, Redo, AI and Share only show while editing. */
2701
+ editable: boolean;
2702
+ canUndo: boolean;
2703
+ canRedo: boolean;
2704
+ /** Host opted into the AI assistant; the element draws its toggle. */
2705
+ aiVisible?: boolean;
2706
+ aiActive?: boolean;
2707
+ /** Reflected as `aria-expanded` on Menu when given. */
2708
+ menuOpen?: boolean;
2709
+ /** Buttons dropped entirely (`hiddenActions`, or Share when the host has none). */
2710
+ hidden?: readonly MobileToolbarId[];
2711
+ /** Buttons disabled, such as Present while there is nothing to present. */
2712
+ disabled?: readonly MobileToolbarId[];
2713
+ translate?: ChromeTranslate;
2714
+ }
2715
+ interface PresentToolbarViewState {
2716
+ /** Zero-based slide on screen. */
2717
+ current: number;
2718
+ total: number;
2719
+ /** The armed annotation tool; `none` leaves every tool unpressed. */
2720
+ tool: PresentationPointerTool;
2721
+ penColor: string;
2722
+ highlighterColor: string;
2723
+ hasAnnotations: boolean;
2724
+ /** With the pen, marks the Blackboard toggle active (`isBlackboardActive`). */
2725
+ blackout: PresentationBlackout;
2726
+ /** Show the presenter-view toggle (default false). */
2727
+ presenterViewVisible?: boolean;
2728
+ presenterViewActive?: boolean;
2729
+ /** Epoch ms the show started. The element ticks the readout; null shows 00:00. */
2730
+ startTime: number | null;
2731
+ translate?: ChromeTranslate;
2732
+ }
2733
+ interface PresenterConsoleViewState {
2734
+ /** Ids of toggles that read as on (and the resume / close-window variants). */
2735
+ active: readonly string[];
2736
+ /** Ids of controls that are disabled. */
2737
+ disabled: readonly string[];
2738
+ translate?: ChromeTranslate;
2739
+ }
2740
+ //#endregion
2624
2741
  //#region src/render/find-replace.d.ts
2625
2742
  /** Identifies a single match of the find query at segment-level precision. */
2626
2743
  interface FindResult {
@@ -2724,6 +2841,24 @@ interface ZoomExcursion {
2724
2841
  /** The zoom's own `transitionDur`, applied to the jump INTO the target and to the return jump. */
2725
2842
  transitionDurationMs?: number;
2726
2843
  }
2844
+ //#endregion
2845
+ //#region src/render/command-search.d.ts
2846
+ /**
2847
+ * Command-search data for the PowerPoint-style "Tell me what you want to do"
2848
+ * search bar. Provides searchable command entries grouped by category, each
2849
+ * mapping a label translation key to a command identifier that bindings can
2850
+ * dispatch.
2851
+ */
2852
+ interface CommandSearchEntry {
2853
+ /** Translation key for the display label. */
2854
+ labelKey: string;
2855
+ /** Command identifier dispatched to the host binding. */
2856
+ command: string;
2857
+ /** Optional icon hint (binding resolves to framework icon component). */
2858
+ icon?: string;
2859
+ /** Category grouping key; hosts with their own short list may omit it. */
2860
+ category?: 'format' | 'insert' | 'view' | 'slideShow' | 'design' | 'arrange';
2861
+ }
2727
2862
  /** Everything a binding needs to render the recovery dialog, and nothing else. */
2728
2863
  interface AutosaveRecoveryPrompt {
2729
2864
  /** IndexedDB key the snapshot is stored under (the deck's file path/name). */
@@ -3152,11 +3287,15 @@ interface RibbonHomeControlState {
3152
3287
  disabled?: boolean;
3153
3288
  /** Omit for ordinary commands; a boolean reflects `aria-pressed`. */
3154
3289
  pressed?: boolean;
3290
+ /** Popover triggers only: reflects `aria-expanded` while the native popover is open. */
3291
+ expanded?: boolean;
3155
3292
  hidden?: boolean;
3156
3293
  }
3294
+ /** State key of a control: its id, or `id#part` when several buttons share one id. */
3295
+ type RibbonHomeKey = RibbonControlId | `${RibbonControlId}#${string}`;
3157
3296
  interface RibbonHomeViewState {
3158
3297
  /** Missing entries are enabled, unpressed and visible. */
3159
- controls: Readonly<Partial<Record<RibbonControlId, RibbonHomeControlState>>>;
3298
+ controls: Readonly<Partial<Record<RibbonHomeKey, RibbonHomeControlState>>>;
3160
3299
  translate?: (key: string) => string;
3161
3300
  }
3162
3301
  /** Controlled View tab state. Native viewers own the values and every side effect. */
@@ -3189,6 +3328,113 @@ interface RibbonTransitionsViewState {
3189
3328
  translate?: RibbonTransitionsTranslate;
3190
3329
  }
3191
3330
  //#endregion
3331
+ //#region src/render/status-bar-state.d.ts
3332
+ /**
3333
+ * Shared model for the bottom status bar (`pptx-ui-status-bar`).
3334
+ *
3335
+ * The slide counter, save indicator, notes toggle, view-mode buttons and zoom
3336
+ * cluster were hand-built five times. The view owns the markup, pressed state
3337
+ * and gating; hosts own every effect (notes panel, view switching, zoom).
3338
+ */
3339
+ type StatusBarTranslate = (key: string, params?: Record<string, string | number>) => string;
3340
+ type StatusBarSaveKind = 'idle' | 'saving' | 'error';
3341
+ type StatusBarViewMode = 'normal' | 'sorter' | 'slideShow';
3342
+ interface StatusBarViewState {
3343
+ slideCount: number;
3344
+ /** Zero-based active slide; clamped into range for display. */
3345
+ activeSlideIndex: number;
3346
+ /** Already-translated save indicator, see {@link resolveStatusBarSave}. */
3347
+ saveText: string;
3348
+ saveKind?: StatusBarSaveKind;
3349
+ /** Omit to hide the whole zoom cluster. */
3350
+ zoomPercent?: number;
3351
+ showNotes?: boolean;
3352
+ notesExpanded?: boolean;
3353
+ /** Default true. False drops the Normal / Sorter / Slide Show cluster. */
3354
+ showViewModes?: boolean;
3355
+ /** Default true. */
3356
+ showSorter?: boolean;
3357
+ /** Default true. */
3358
+ showSlideShow?: boolean;
3359
+ /** The pressed view button; omit when none is active. */
3360
+ viewMode?: StatusBarViewMode;
3361
+ translate?: StatusBarTranslate;
3362
+ }
3363
+ //#endregion
3364
+ //#region src/render/notes-toolbar-state.d.ts
3365
+ /**
3366
+ * Shared model for the speaker-notes formatting toolbar (`pptx-ui-notes-toolbar`).
3367
+ *
3368
+ * The toolbar owns the buttons, their order, icons, labels, enabled state and
3369
+ * the hyperlink popover. Hosts own the contenteditable editor, selection-based
3370
+ * edits, history, printing and persistence, and route typed intents to them.
3371
+ */
3372
+ type NotesToolbarTranslate = (key: string, params?: Record<string, string | number>) => string;
3373
+ interface NotesToolbarViewState {
3374
+ /** True while the rich (contenteditable) surface is active. Drives the mode button label. */
3375
+ rich: boolean;
3376
+ /** Enables the formatting buttons. False in the plain editor, where they cannot act. */
3377
+ canFormat: boolean;
3378
+ /** Shows the Print button. */
3379
+ showPrint: boolean;
3380
+ /** Disables every button, for example while no slide is selected. */
3381
+ disabled?: boolean;
3382
+ /** Host translator; keys are the canonical `pptx.notes.*` set. Omitted: keys are shown. */
3383
+ translate?: NotesToolbarTranslate;
3384
+ }
3385
+ //#endregion
3386
+ //#region src/render/title-bar-state.d.ts
3387
+ type TitleBarTranslate = (key: string, params?: Record<string, string | number>) => string;
3388
+ type TitleBarPlacement = 'titleBar' | 'belowRibbon';
3389
+ type TitleBarTone = 'idle' | 'saving' | 'error';
3390
+ interface TitleBarAutosaveView {
3391
+ enabled: boolean;
3392
+ /** Default true. False renders the switch inert (host policy `autosave: false`). */
3393
+ toggleAvailable?: boolean;
3394
+ /** Translation key from `resolveTitleBarStatusKey`. */
3395
+ statusKey: string;
3396
+ /** Colour of the status text; only meaningful while `enabled`. */
3397
+ tone?: TitleBarTone;
3398
+ }
3399
+ interface TitleBarHistoryState {
3400
+ canUndo: boolean;
3401
+ canRedo: boolean;
3402
+ /** Description of the pending action, e.g. "Delete shape". */
3403
+ undoLabel?: string | null;
3404
+ redoLabel?: string | null;
3405
+ /** Default true. Maps to `hiddenActions: ['undo']`. */
3406
+ showUndo?: boolean;
3407
+ /** Default true. Maps to `hiddenActions: ['redo']`. */
3408
+ showRedo?: boolean;
3409
+ }
3410
+ interface TitleBarQuickAccessView {
3411
+ visible: boolean;
3412
+ position: QuickAccessPosition;
3413
+ showCommandLabels: boolean;
3414
+ /** Ordered catalog ids (File > Options > Quick Access Toolbar). */
3415
+ commandIds: readonly string[];
3416
+ }
3417
+ interface TitleBarViewState {
3418
+ /** Edit mode with an editable deck. Gates AutoSave, the strip, status and search. */
3419
+ editing: boolean;
3420
+ /** Whether the command search shows; hosts pass `editing`. */
3421
+ searchVisible: boolean;
3422
+ /** Display name; the translated default shows when empty. */
3423
+ fileName?: string;
3424
+ autosave: TitleBarAutosaveView;
3425
+ history: TitleBarHistoryState;
3426
+ /** Default true. */
3427
+ showSave?: boolean;
3428
+ quickAccess: TitleBarQuickAccessView;
3429
+ /** Search catalogue; defaults to the shared `COMMAND_SEARCH_ENTRIES`. */
3430
+ commands?: readonly CommandSearchEntry[];
3431
+ /** Default true. False drops the "Find in Slides" fallback row. */
3432
+ contentSearch?: boolean;
3433
+ /** ScreenTip rule (Options > General); returning undefined suppresses the title. */
3434
+ screenTip?: (label: string) => string | undefined;
3435
+ translate?: TitleBarTranslate;
3436
+ }
3437
+ //#endregion
3192
3438
  //#region src/web-components/theme-editor.d.ts
3193
3439
  interface PptxUiThemeEditorElement extends HTMLElement {
3194
3440
  theme: PptxTheme | undefined;
@@ -3200,6 +3446,74 @@ declare global {
3200
3446
  'pptx-ui-theme-editor': PptxUiThemeEditorElement;
3201
3447
  }
3202
3448
  }
3449
+ interface PptxUiCompatToastsElement extends HTMLElement {
3450
+ state: CompatToastsViewState;
3451
+ }
3452
+ declare global {
3453
+ interface HTMLElementTagNameMap {
3454
+ 'pptx-ui-compat-toasts': PptxUiCompatToastsElement;
3455
+ }
3456
+ }
3457
+ interface PptxUiDialogFooterElement extends HTMLElement {
3458
+ state: DialogFooterViewState;
3459
+ /** Move keyboard focus to an action, e.g. the primary one when a dialog opens. */
3460
+ focusAction(id: string): void;
3461
+ }
3462
+ declare global {
3463
+ interface HTMLElementTagNameMap {
3464
+ 'pptx-ui-dialog-footer': PptxUiDialogFooterElement;
3465
+ }
3466
+ }
3467
+ interface PptxUiMobileBarElement extends HTMLElement {
3468
+ state: MobileBarViewState;
3469
+ }
3470
+ declare global {
3471
+ interface HTMLElementTagNameMap {
3472
+ 'pptx-ui-mobile-bar': PptxUiMobileBarElement;
3473
+ }
3474
+ }
3475
+ interface PptxUiMobileToolbarElement extends HTMLElement {
3476
+ state: MobileToolbarViewState;
3477
+ }
3478
+ declare global {
3479
+ interface HTMLElementTagNameMap {
3480
+ 'pptx-ui-mobile-toolbar': PptxUiMobileToolbarElement;
3481
+ }
3482
+ }
3483
+ interface PptxUiPasteOptionsElement extends HTMLElement {
3484
+ state: PasteOptionsViewState;
3485
+ }
3486
+ declare global {
3487
+ interface HTMLElementTagNameMap {
3488
+ 'pptx-ui-paste-options': PptxUiPasteOptionsElement;
3489
+ }
3490
+ }
3491
+ interface PptxUiPresentToolbarElement extends HTMLElement {
3492
+ state: PresentToolbarViewState;
3493
+ /** Close an open colour palette, e.g. when the host auto-hides the bar. */
3494
+ closePalettes(): void;
3495
+ }
3496
+ declare global {
3497
+ interface HTMLElementTagNameMap {
3498
+ 'pptx-ui-present-toolbar': PptxUiPresentToolbarElement;
3499
+ }
3500
+ }
3501
+ interface PptxUiPresenterConsoleElement extends HTMLElement {
3502
+ state: PresenterConsoleViewState;
3503
+ }
3504
+ declare global {
3505
+ interface HTMLElementTagNameMap {
3506
+ 'pptx-ui-presenter-console': PptxUiPresenterConsoleElement;
3507
+ }
3508
+ }
3509
+ interface PptxUiReadOnlyBannerElement extends HTMLElement {
3510
+ state: ReadOnlyBannerViewState;
3511
+ }
3512
+ declare global {
3513
+ interface HTMLElementTagNameMap {
3514
+ 'pptx-ui-read-only-banner': PptxUiReadOnlyBannerElement;
3515
+ }
3516
+ }
3203
3517
  interface PptxUiRibbonAnimationsElement extends HTMLElement {
3204
3518
  state: RibbonAnimationsViewState;
3205
3519
  }
@@ -3218,6 +3532,8 @@ declare global {
3218
3532
  }
3219
3533
  interface PptxUiRibbonHomeElement extends HTMLElement {
3220
3534
  state: RibbonHomeViewState;
3535
+ /** Wrapper (or button) of a control id, where a host mounts or anchors its native popover. */
3536
+ anchor(id: string): HTMLElement | undefined;
3221
3537
  }
3222
3538
  declare global {
3223
3539
  interface HTMLElementTagNameMap {
@@ -3225,6 +3541,12 @@ declare global {
3225
3541
  'pptx-ui-ribbon-home-font': PptxUiRibbonHomeElement;
3226
3542
  'pptx-ui-ribbon-home-paragraph': PptxUiRibbonHomeElement;
3227
3543
  'pptx-ui-ribbon-home-editing': PptxUiRibbonHomeElement;
3544
+ 'pptx-ui-ribbon-home-slides': PptxUiRibbonHomeElement;
3545
+ 'pptx-ui-ribbon-home-drawing': PptxUiRibbonHomeElement;
3546
+ 'pptx-ui-ribbon-home-arrange-align': PptxUiRibbonHomeElement;
3547
+ 'pptx-ui-ribbon-home-arrange-flip': PptxUiRibbonHomeElement;
3548
+ 'pptx-ui-ribbon-home-arrange-order': PptxUiRibbonHomeElement;
3549
+ 'pptx-ui-ribbon-home-arrange-edit': PptxUiRibbonHomeElement;
3228
3550
  }
3229
3551
  }
3230
3552
  interface PptxUiRibbonTransitionsElement extends HTMLElement {
@@ -3292,6 +3614,74 @@ declare global {
3292
3614
  'pptx-ui-subtitle-settings': PptxUiSubtitleSettingsElement;
3293
3615
  }
3294
3616
  }
3617
+ interface PptxUiStatusBarElement extends HTMLElement {
3618
+ state: StatusBarViewState;
3619
+ }
3620
+ declare global {
3621
+ interface HTMLElementTagNameMap {
3622
+ 'pptx-ui-status-bar': PptxUiStatusBarElement;
3623
+ }
3624
+ }
3625
+ interface PptxUiNotesToolbarElement extends HTMLElement {
3626
+ state: NotesToolbarViewState;
3627
+ }
3628
+ declare global {
3629
+ interface HTMLElementTagNameMap {
3630
+ 'pptx-ui-notes-toolbar': PptxUiNotesToolbarElement;
3631
+ }
3632
+ }
3633
+ interface PptxUiTitleBarElement extends HTMLElement {
3634
+ state: TitleBarViewState | undefined;
3635
+ placement: TitleBarPlacement;
3636
+ }
3637
+ declare global {
3638
+ interface HTMLElementTagNameMap {
3639
+ 'pptx-ui-title-bar': PptxUiTitleBarElement;
3640
+ }
3641
+ }
3642
+ /** One row of a context menu. Hosts decide `id`, wording, gating and what activation does. */
3643
+ interface ContextMenuViewItem {
3644
+ /** Stable command id, echoed by `menu-request`. */
3645
+ id: string;
3646
+ /** Already-translated visible label. */
3647
+ label: string;
3648
+ /** Draw a rule before this row. */
3649
+ separatorBefore?: boolean;
3650
+ /** Group heading shown before this row; the row and the ones after it join that group. */
3651
+ heading?: string;
3652
+ /** Destructive command (Delete): tinted. */
3653
+ danger?: boolean;
3654
+ /** Offered but unavailable: announced and drawn dim, skipped by arrow keys. */
3655
+ disabled?: boolean;
3656
+ /** A toggle (Grid and Guides, Ruler) in this state; omitted for one-shot commands. */
3657
+ checked?: boolean;
3658
+ }
3659
+ /** Everything the controlled element needs to draw one menu. */
3660
+ interface ContextMenuViewState {
3661
+ /** Pointer position, in viewport pixels. The element clamps it into the window. */
3662
+ x: number;
3663
+ y: number;
3664
+ /** Accessible name of the menu. */
3665
+ label: string;
3666
+ items: readonly ContextMenuViewItem[];
3667
+ /**
3668
+ * Test-hook attributes copied onto the host element (`data-pptx-context-menu`,
3669
+ * `data-pptx-canvas-context-menu`, ...). Only `data-pptx-*` names are accepted.
3670
+ */
3671
+ markers?: readonly string[];
3672
+ /** Stacking order; defaults to {@link CONTEXT_MENU_EDITOR_LAYER}. */
3673
+ zIndex?: number;
3674
+ /** Move focus onto the first command on open. Default true. */
3675
+ autoFocus?: boolean;
3676
+ }
3677
+ interface PptxUiContextMenuElement extends HTMLElement {
3678
+ state: ContextMenuViewState;
3679
+ }
3680
+ declare global {
3681
+ interface HTMLElementTagNameMap {
3682
+ 'pptx-ui-context-menu': PptxUiContextMenuElement;
3683
+ }
3684
+ }
3295
3685
  //#endregion
3296
3686
  //#region src/web-components/select-value.d.ts
3297
3687
  /** Public DOM shape used by all bindings; the element is not a native select. */