pptx-vue-viewer 4.46.0 → 4.47.1

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 (65) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/{AiChatPanel-DFuzQuJU.js → AiChatPanel-DCNyY6ip.js} +2 -2
  3. package/dist/AiChatPanel-DCNyY6ip.js.br +0 -0
  4. package/dist/AiChatPanel-DCNyY6ip.js.gz +0 -0
  5. package/dist/{AiChatPanel-D_Q17Wtu.cjs → AiChatPanel-DL_x2P2A.cjs} +1 -1
  6. package/dist/AiChatPanel-DL_x2P2A.cjs.br +0 -0
  7. package/dist/AiChatPanel-DL_x2P2A.cjs.gz +0 -0
  8. package/dist/index.cjs +1 -1
  9. package/dist/index.cjs.br +0 -0
  10. package/dist/index.cjs.gz +0 -0
  11. package/dist/index.d.ts +57 -0
  12. package/dist/index.js +2 -2
  13. package/dist/index.js.br +0 -0
  14. package/dist/index.js.gz +0 -0
  15. package/dist/internals.cjs +1 -1
  16. package/dist/internals.cjs.br +0 -0
  17. package/dist/internals.cjs.gz +0 -0
  18. package/dist/internals.d.ts +23 -1
  19. package/dist/internals.js +1 -1
  20. package/dist/internals.js.br +0 -0
  21. package/dist/internals.js.gz +0 -0
  22. package/dist/pptx-vue-viewer.css +5 -5
  23. package/dist/pptx-vue-viewer.css.br +0 -0
  24. package/dist/pptx-vue-viewer.css.gz +0 -0
  25. package/dist/{useViewerSettingsDialog-CJMF2f_L.js → useViewerSettingsDialog-CXbWkqSq.js} +2436 -2415
  26. package/dist/useViewerSettingsDialog-CXbWkqSq.js.br +0 -0
  27. package/dist/useViewerSettingsDialog-CXbWkqSq.js.gz +0 -0
  28. package/dist/{useViewerSettingsDialog-CWoUSatY.cjs → useViewerSettingsDialog-jAbWHh3J.cjs} +58 -37
  29. package/dist/useViewerSettingsDialog-jAbWHh3J.cjs.br +0 -0
  30. package/dist/{useViewerSettingsDialog-CWoUSatY.cjs.gz → useViewerSettingsDialog-jAbWHh3J.cjs.gz} +0 -0
  31. package/dist/viewer/index.cjs +1 -1
  32. package/dist/viewer/index.cjs.br +0 -0
  33. package/dist/viewer/index.cjs.gz +0 -0
  34. package/dist/viewer/index.d.ts +61 -0
  35. package/dist/viewer/index.js +2 -2
  36. package/dist/viewer/index.js.br +0 -0
  37. package/dist/viewer/index.js.gz +0 -0
  38. package/dist/{viewer-Yk-sYgUA.cjs → viewer-DIeoRrqK.cjs} +3477 -3422
  39. package/dist/viewer-DIeoRrqK.cjs.br +0 -0
  40. package/dist/viewer-DIeoRrqK.cjs.gz +0 -0
  41. package/dist/{viewer-eKX1MZ4K.js → viewer-otc0mMwo.js} +6804 -6749
  42. package/dist/viewer-otc0mMwo.js.br +0 -0
  43. package/dist/viewer-otc0mMwo.js.gz +0 -0
  44. package/dist/{y-webrtc-Bswp1Y3G.cjs → y-webrtc-B7OSkf8u.cjs} +1 -1
  45. package/dist/y-webrtc-B7OSkf8u.cjs.br +0 -0
  46. package/dist/y-webrtc-B7OSkf8u.cjs.gz +0 -0
  47. package/dist/{y-webrtc-6M09Lxxx.js → y-webrtc-BHTCM7ok.js} +1 -1
  48. package/dist/y-webrtc-BHTCM7ok.js.br +0 -0
  49. package/dist/y-webrtc-BHTCM7ok.js.gz +0 -0
  50. package/package.json +3 -3
  51. package/dist/AiChatPanel-DFuzQuJU.js.br +0 -0
  52. package/dist/AiChatPanel-DFuzQuJU.js.gz +0 -0
  53. package/dist/AiChatPanel-D_Q17Wtu.cjs.br +0 -0
  54. package/dist/AiChatPanel-D_Q17Wtu.cjs.gz +0 -0
  55. package/dist/useViewerSettingsDialog-CJMF2f_L.js.br +0 -0
  56. package/dist/useViewerSettingsDialog-CJMF2f_L.js.gz +0 -0
  57. package/dist/useViewerSettingsDialog-CWoUSatY.cjs.br +0 -0
  58. package/dist/viewer-Yk-sYgUA.cjs.br +0 -0
  59. package/dist/viewer-Yk-sYgUA.cjs.gz +0 -0
  60. package/dist/viewer-eKX1MZ4K.js.br +0 -0
  61. package/dist/viewer-eKX1MZ4K.js.gz +0 -0
  62. package/dist/y-webrtc-6M09Lxxx.js.br +0 -0
  63. package/dist/y-webrtc-6M09Lxxx.js.gz +0 -0
  64. package/dist/y-webrtc-Bswp1Y3G.cjs.br +0 -0
  65. package/dist/y-webrtc-Bswp1Y3G.cjs.gz +0 -0
package/CHANGELOG.md CHANGED
@@ -7,6 +7,35 @@ A release listed with no entries carried no Conventional Commit in this package'
7
7
  scope: scripts/release-plan.mjs releases whenever any published file changes, not only on
8
8
  conventional commits.
9
9
 
10
+ ## [4.47.1](https://github.com/ChristopherVR/ooxml/releases/tag/pptx-vue-viewer@4.47.1) - 2026-10-22
11
+
12
+ ### Bug Fixes
13
+
14
+ - **ui:** Fit the pptx slide to sub-pixel viewport sizes ([#165](https://github.com/ChristopherVR/ooxml/issues/165)) ([d09a71d](https://github.com/ChristopherVR/ooxml/commit/d09a71d1e478eebc28edec2af309e7f4b0a69dbb))
15
+ - **pptx:** Inject the .ppt svg rasteriser and move it to pptx/node ([be73b10](https://github.com/ChristopherVR/ooxml/commit/be73b10464c4629ebffa86d631b086e46a42fbe3))
16
+
17
+ ## [4.47.0](https://github.com/ChristopherVR/ooxml/releases/tag/pptx-vue-viewer@4.47.0) - 2026-10-22
18
+
19
+ ### Features
20
+
21
+ - **pptx:** Route saves and recovery through host-owned storage ([4ad5655](https://github.com/ChristopherVR/ooxml/commit/4ad565525269ef0284114efad6d5e4a7bed756e4))
22
+ - **pptx:** Add readOnly to the five viewer bindings ([4aadd67](https://github.com/ChristopherVR/ooxml/commit/4aadd678969d4b2d4811d86880b91c79ba7ca3b6))
23
+ - **pptx:** Report the missing host events from the vue viewer ([37167d2](https://github.com/ChristopherVR/ooxml/commit/37167d234b435780fcfe63bd4733a413ff84f11a))
24
+ - **pptx:** Report inspector and AI property edits, emit vue dirty-change ([83d879d](https://github.com/ChristopherVR/ooxml/commit/83d879d4e27dec236e32af86064afebac21c6af9))
25
+ - **embedding:** Land the host customization, read-only and storage contracts ([822a6a0](https://github.com/ChristopherVR/ooxml/commit/822a6a073840b9e9d1671476542322b28332dc42))
26
+ - **automation:** Run the document tools against open editors ([6a45ebc](https://github.com/ChristopherVR/ooxml/commit/6a45ebc3651a21739b5e18e7758395c866656198))
27
+
28
+ ### Bug Fixes
29
+
30
+ - **pptx:** Scope the viewer stylesheet reset to the viewer roots ([c390b2b](https://github.com/ChristopherVR/ooxml/commit/c390b2ba2f0ec7811c3554b9989346c6e8cd927d))
31
+ - **pptx:** Report host save failures and use host recovery everywhere ([8e982c8](https://github.com/ChristopherVR/ooxml/commit/8e982c8576f656d10200a45cc1708a5ac8e14ed6))
32
+
33
+ ### Other
34
+
35
+ - Integrate the customization contract into host storage ([629554b](https://github.com/ChristopherVR/ooxml/commit/629554b3030728bfe16e11ac8ae5b2530bb28a17))
36
+ - Integrate the pptx binding events into host storage ([08272a2](https://github.com/ChristopherVR/ooxml/commit/08272a298c8b249aa0bf143b689ff01f66663309))
37
+ - Bring origin/main into the embedding work ([a3711a1](https://github.com/ChristopherVR/ooxml/commit/a3711a14049a2cd11b994e76eafec039db2dc2de))
38
+
10
39
  ## [Unreleased]
11
40
 
12
41
  ### Documentation
@@ -1,5 +1,5 @@
1
- import { Hr as e } from "./useViewerSettingsDialog-CJMF2f_L.js";
2
- import { l as t, x as a } from "./viewer-eKX1MZ4K.js";
1
+ import { Hr as e } from "./useViewerSettingsDialog-CXbWkqSq.js";
2
+ import { l as t, x as a } from "./viewer-otc0mMwo.js";
3
3
  import { Fragment as r, Suspense as s, computed as l, createBlock as o, createCommentVNode as i, createElementBlock as n, createElementVNode as p, createTextVNode as d, createVNode as c, defineComponent as u, nextTick as m, normalizeClass as x, normalizeStyle as g, onBeforeUnmount as f, onMounted as b, openBlock as v, ref as y, renderList as h, resolveDynamicComponent as k, shallowRef as w, toDisplayString as C, unref as P, vModelText as T, watch as S, withAsyncContext as I, withCtx as j, withDirectives as _ } from "vue";
4
4
  import { Bot as A, ChartColumn as E, Check as M, Crosshair as F, Eye as B, Film as D, GitMerge as N, History as H, LayoutTemplate as L, LoaderCircle as R, MessageSquare as W, MessageSquarePlus as z, Move as V, Navigation as K, Palette as O, Pin as U, PinOff as $, Plus as q, Search as G, Send as J, Shapes as Q, Sparkles as X, Square as Y, StickyNote as Z, Table as ee, Trash2 as te, TriangleAlert as ae, Type as re, User as se, Wrench as le, X as oe } from "lucide-vue-next";
5
5
  import { createAiChatHistoryController as ie, createAiChatSession as ne, deckIdFromBridge as pe, describeToolActivity as de, extractReadyToolCalls as ce, focusTargetChips as ue, humanizeDiffLine as me, isAiAvailable as xe, isTwoTableFocus as ge, mergeTablesDirective as fe, summarizeToolArgs as be, toRenderableParts as ve, toolCanvasTarget as ye, toolLabel as he } from "ooxml-ui/pptx/ai";
Binary file
Binary file
@@ -1,4 +1,4 @@
1
- const e = require("./useViewerSettingsDialog-CWoUSatY.cjs"), t = require("./viewer-Yk-sYgUA.cjs");
1
+ const e = require("./useViewerSettingsDialog-jAbWHh3J.cjs"), t = require("./viewer-DIeoRrqK.cjs");
2
2
  let r = require("vue"), a = require("lucide-vue-next"), n = require("ooxml-ui/pptx/ai");
3
3
  var o = { class: "border-t border-border p-2" }, l = { class: "flex items-end gap-1.5 rounded-md border border-input bg-background px-2 py-1.5 focus-within:border-ring" }, s = ["placeholder", "aria-label"], i = ["title", "aria-label"], c = [
4
4
  "disabled",
Binary file
Binary file
package/dist/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const e = require("./useViewerSettingsDialog-CWoUSatY.cjs"), r = require("./viewer-Yk-sYgUA.cjs");
2
+ const e = require("./useViewerSettingsDialog-jAbWHh3J.cjs"), r = require("./viewer-DIeoRrqK.cjs");
3
3
  let t = require("ooxml-ui/pptx");
4
4
  Object.defineProperty(exports, "AUDIENCE_HASH", {
5
5
  enumerable: !0,
package/dist/index.cjs.br CHANGED
Binary file
package/dist/index.cjs.gz CHANGED
Binary file
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { AccountAuthConfig } from 'ooxml-ui/pptx';
2
2
  import { AnimationApplyGroup } from 'ooxml-ui/pptx';
3
3
  import { AUDIENCE_HASH } from 'ooxml-ui/pptx';
4
+ import { AutosaveRecord } from 'ooxml-ui/pptx';
4
5
  import { BACKSTAGE_CARD_IDS } from 'ooxml-ui/pptx';
5
6
  import { BACKSTAGE_PAGE_IDS } from 'ooxml-ui/pptx';
6
7
  import { BackstageCustomization } from 'ooxml-ui/pptx';
@@ -28,6 +29,7 @@ import { defaultRadius } from 'ooxml-ui/pptx';
28
29
  import { defaultThemeColors } from 'ooxml-ui/pptx';
29
30
  import { DefineComponent } from 'vue';
30
31
  import { describeCollaborationShellState } from 'ooxml-ui/pptx';
32
+ import { DocumentStorage } from 'ooxml-ui/pptx';
31
33
  import { EDITOR_SHORTCUT_ACTION_IDS } from 'ooxml-ui/pptx';
32
34
  import { ELEMENT_CONTEXT_MENU_COMMAND_IDS } from 'ooxml-ui/pptx';
33
35
  import { ElementUpdate } from 'ooxml-ui/pptx';
@@ -70,6 +72,7 @@ import { PptxAiContextStrategy } from 'ooxml-ui/pptx/ai';
70
72
  import { PptxAiToolName } from 'ooxml-ui/pptx/ai';
71
73
  import { PptxAiUIMessage } from 'ooxml-ui/pptx/ai';
72
74
  import { PptxAiWritePolicy } from 'ooxml-ui/pptx/ai';
75
+ import { PptxCoreProperties } from 'ooxml-core/pptx';
73
76
  import { PptxCustomShow } from 'ooxml-core/pptx';
74
77
  import { PptxData } from 'ooxml-core/pptx';
75
78
  import { PptxElement } from 'ooxml-core/pptx';
@@ -116,6 +119,7 @@ import { VIEWER_DIALOG_IDS } from 'ooxml-ui/pptx';
116
119
  import { VIEWER_EXPORT_FORMAT_IDS } from 'ooxml-ui/pptx';
117
120
  import { VIEWER_FEATURE_IDS } from 'ooxml-ui/pptx';
118
121
  import { VIEWER_PANEL_IDS } from 'ooxml-ui/pptx';
122
+ import { ViewerAutosaveStatus } from 'ooxml-ui/pptx';
119
123
  import { ViewerCustomization } from 'ooxml-ui/pptx';
120
124
  import { ViewerCustomizationApi } from 'ooxml-ui/pptx';
121
125
  import { ViewerDialogId } from 'ooxml-ui/pptx';
@@ -145,8 +149,10 @@ declare const __VLS_base_2: DefineComponent<__VLS_Props_2, {}, {}, {}, {}, Compo
145
149
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
146
150
 
147
151
  declare const __VLS_export: DefineComponent<PowerPointViewerProps, PowerPointViewerExpose, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
152
+ change: () => any;
148
153
  error: (message: string) => any;
149
154
  load: (detail: ViewerLoadDetail) => any;
155
+ "collaboration-status": (status: ConnectionStatus) => any;
150
156
  "dirty-change": (isDirty: boolean) => any;
151
157
  "content-change": (content: Uint8Array<ArrayBufferLike>) => any;
152
158
  autosave: (content: Uint8Array<ArrayBufferLike>) => any;
@@ -158,9 +164,17 @@ declare const __VLS_export: DefineComponent<PowerPointViewerProps, PowerPointVie
158
164
  "start-collaboration": (config: CollaborationConfig) => any;
159
165
  "stop-collaboration": () => any;
160
166
  "collaboration-change": (state: CollaborationState) => any;
167
+ "autosave-toggle": (enabled: boolean) => any;
168
+ "autosave-status": (status: ViewerAutosaveStatus) => any;
169
+ "autosave-recovery": (record: AutosaveRecord) => any;
170
+ "properties-change": (updates: Partial< PptxCoreProperties>) => any;
171
+ "notes-update": (notes: string) => any;
172
+ "presentation-change": (presenting: boolean) => any;
161
173
  }, string, PublicProps, Readonly<PowerPointViewerProps> & Readonly<{
174
+ onChange?: (() => any) | undefined;
162
175
  onError?: ((message: string) => any) | undefined;
163
176
  onLoad?: ((detail: ViewerLoadDetail) => any) | undefined;
177
+ "onCollaboration-status"?: ((status: ConnectionStatus) => any) | undefined;
164
178
  "onDirty-change"?: ((isDirty: boolean) => any) | undefined;
165
179
  "onContent-change"?: ((content: Uint8Array<ArrayBufferLike>) => any) | undefined;
166
180
  onAutosave?: ((content: Uint8Array<ArrayBufferLike>) => any) | undefined;
@@ -172,8 +186,16 @@ declare const __VLS_export: DefineComponent<PowerPointViewerProps, PowerPointVie
172
186
  "onStart-collaboration"?: ((config: CollaborationConfig) => any) | undefined;
173
187
  "onStop-collaboration"?: (() => any) | undefined;
174
188
  "onCollaboration-change"?: ((state: CollaborationState) => any) | undefined;
189
+ "onAutosave-toggle"?: ((enabled: boolean) => any) | undefined;
190
+ "onAutosave-status"?: ((status: ViewerAutosaveStatus) => any) | undefined;
191
+ "onAutosave-recovery"?: ((record: AutosaveRecord) => any) | undefined;
192
+ "onProperties-change"?: ((updates: Partial< PptxCoreProperties>) => any) | undefined;
193
+ "onNotes-update"?: ((notes: string) => any) | undefined;
194
+ "onPresentation-change"?: ((presenting: boolean) => any) | undefined;
175
195
  }>, {
176
196
  canEdit: boolean;
197
+ readOnly: boolean;
198
+ autosave: boolean;
177
199
  barChart3D: boolean;
178
200
  lineChart3D: boolean;
179
201
  areaChart3D: boolean;
@@ -643,6 +665,25 @@ export declare interface PowerPointViewerEmits {
643
665
  (e: 'load', detail: ViewerLoadDetail): void;
644
666
  /** Fired once per distinct load failure, with a human-readable message. */
645
667
  (e: 'error', message: string): void;
668
+ /** Fired when the user enables or disables autosave (title bar or File > Options). */
669
+ (e: 'autosave-toggle', enabled: boolean): void;
670
+ /** Fired on every autosave lifecycle transition (`idle`, `saving`, `saved`, `error`). */
671
+ (e: 'autosave-status', status: ViewerAutosaveStatus): void;
672
+ /**
673
+ * Fired when a recovery snapshot left by a previous session is found for this deck. The
674
+ * built-in recovery prompt is shown as well.
675
+ */
676
+ (e: 'autosave-recovery', record: AutosaveRecord): void;
677
+ /** Fired after any committed document edit (move, resize, text, undo, redo, ...). */
678
+ (e: 'change'): void;
679
+ /** Fired with the changed fields when the user edits the document properties. */
680
+ (e: 'properties-change', updates: Partial<PptxCoreProperties>): void;
681
+ /** Fired with the new speaker-notes text when the user edits the notes of a slide. */
682
+ (e: 'notes-update', notes: string): void;
683
+ /** Fired when presentation (slide show) mode is entered (`true`) or left (`false`). */
684
+ (e: 'presentation-change', presenting: boolean): void;
685
+ /** Fired on every collaboration connection-status transition. */
686
+ (e: 'collaboration-status', status: ConnectionStatus): void;
646
687
  }
647
688
 
648
689
  /**
@@ -682,6 +723,12 @@ export declare interface PowerPointViewerProps {
682
723
  fileName?: string;
683
724
  /** Whether editing actions are enabled. */
684
725
  canEdit?: boolean;
726
+ /**
727
+ * Makes the deck read-only (default `false`). It is the inverse of the edit switch: true wins
728
+ * over it, false only lifts this restriction, so editing still needs the edit switch and
729
+ * is never granted over a collaboration `viewer` role or `capabilities.edit`.
730
+ */
731
+ readOnly?: boolean;
685
732
  /** Fired before following a link; return false to cancel its default action. */
686
733
  onHyperlinkClick?: HyperlinkClickHandler;
687
734
  /**
@@ -709,6 +756,14 @@ export declare interface PowerPointViewerProps {
709
756
  * were brought onto one rule.
710
757
  */
711
758
  autosaveIntervalMs?: number;
759
+ /**
760
+ * Host-owned storage (`DocumentStorage` from `ooxml-core/embedding`). When set,
761
+ * Save and Save As hand the bytes to `storage.save()` instead of downloading
762
+ * them, and recovery autosave snapshots go to the storage's recovery methods
763
+ * (`readRecovery` / `writeRecovery` / `clearRecovery`) instead of IndexedDB
764
+ * when it provides them.
765
+ */
766
+ storage?: DocumentStorage;
712
767
  /** Optional class name applied to the root element. */
713
768
  class?: string;
714
769
  /**
@@ -1203,6 +1258,8 @@ export declare interface RibbonProps {
1203
1258
  /** Serialise the deck to pptx-viewer-json and download it (Export page card). */
1204
1259
  onExportJson: () => void;
1205
1260
  onOpenShareDialog?: () => void;
1261
+ /** File > Save (backstage Save item): reported to host storage as `save`, not Save As. */
1262
+ onSave?: () => void;
1206
1263
  onSaveAsPptx: () => void;
1207
1264
  onSaveAsPpsx: () => void;
1208
1265
  onSaveAsPptm: () => void;
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { Bn as a, C as s, S as o, Vn as e, it as r, lt as i, w as t, x as l } from "./useViewerSettingsDialog-CJMF2f_L.js";
2
- import { A as n, D as m, E as p, F as w, I as S, M as b, N as d, O as u, P as x, T as C, _ as f, a as g, b as v, c, d as j, f as P, g as R, h as V, i as y, j as B, k as D, m as E, o as F, p as I, s as M, u as O, v as T, w as h, x as k, y as A } from "./viewer-eKX1MZ4K.js";
1
+ import { Bn as a, C as s, S as o, Vn as e, it as r, lt as i, w as t, x as l } from "./useViewerSettingsDialog-CXbWkqSq.js";
2
+ import { A as n, D as m, E as p, F as w, I as S, M as b, N as d, O as u, P as x, T as C, _ as f, a as g, b as v, c, d as j, f as P, g as R, h as V, i as y, j as B, k as D, m as E, o as F, p as I, s as M, u as O, v as T, w as h, x as k, y as A } from "./viewer-otc0mMwo.js";
3
3
  import { BACKSTAGE_CARD_IDS as N, BACKSTAGE_PAGE_IDS as _, CANVAS_CONTEXT_MENU_COMMAND_IDS as q, EDITOR_SHORTCUT_ACTION_IDS as z, ELEMENT_CONTEXT_MENU_COMMAND_IDS as G, OPTIONS_PAGE_IDS as H, OPTIONS_SECTION_IDS as J, OPTIONS_SETTING_IDS as K, PPTX_OPEN_ACCEPT as L, PRESENTATION_OPEN_EXTENSIONS as Q, RIBBON_TAB_IDS as U, TOOLBAR_BUTTON_IDS as W, VIEWER_DIALOG_IDS as X, VIEWER_EXPORT_FORMAT_IDS as Y, VIEWER_FEATURE_IDS as Z, VIEWER_PANEL_IDS as $, createImageElementFromFile as aa, describeCollaborationShellState as sa, forgetSessionDeck as oa, getSessionTabId as ea, isLegacyBinaryPresentation as ra, isSupportedPresentationFile as ia, loadSessionDeck as ta, parsePresentationSessionId as la, presentationBaseName as na, rememberSessionDeck as ma, restoreSessionDeck as pa, savedPresentationFileName as wa } from "ooxml-ui/pptx";
4
4
  export { j as AUDIENCE_HASH, N as BACKSTAGE_CARD_IDS, _ as BACKSTAGE_PAGE_IDS, q as CANVAS_CONTEXT_MENU_COMMAND_IDS, T as CollaborationCursors, h as CollaborationStatusIndicator, z as EDITOR_SHORTCUT_ACTION_IDS, G as ELEMENT_CONTEXT_MENU_COMMAND_IDS, e as ElementRenderer, O as FollowModeBar, H as OPTIONS_PAGE_IDS, J as OPTIONS_SECTION_IDS, K as OPTIONS_SETTING_IDS, L as PPTX_OPEN_ACCEPT, Q as PRESENTATION_OPEN_EXTENSIONS, c as PowerPointViewer, U as RIBBON_TAB_IDS, f as RemoteSelectionOverlay, v as RibbonToolbar, A as SlideCanvas, a as SlideStage, W as TOOLBAR_BUTTON_IDS, X as VIEWER_DIALOG_IDS, Y as VIEWER_EXPORT_FORMAT_IDS, Z as VIEWER_FEATURE_IDS, $ as VIEWER_PANEL_IDS, P as clearAudienceContent, k as cn, aa as createImageElementFromFile, u as defaultCssVars, w as defaultRadius, S as defaultThemeColors, sa as describeCollaborationShellState, l as exportAllSlidesToSvg, o as exportAllSlidesToSvgBlobs, s as exportSlideToSvg, t as exportSlideToSvgBlob, oa as forgetSessionDeck, ea as getSessionTabId, I as isAudienceTab, ra as isLegacyBinaryPresentation, ia as isSupportedPresentationFile, E as loadAudienceContent, ta as loadSessionDeck, V as parseAudienceNonce, la as parsePresentationSessionId, na as presentationBaseName, C as provideViewerTheme, ma as rememberSessionDeck, r as renderToCanvas, pa as restoreSessionDeck, wa as savedPresentationFileName, R as storeAudienceContent, D as themeToCssVars, i as useCollaboration, y as useCollaborativeHistory, g as useCollaborativeState, F as usePresenceTracking, p as useThemeStyle, m as useViewerTheme, M as useYjsProvider, n as vermilionDarkColors, B as vermilionDarkTheme, b as vermilionLightColors, d as vermilionLightTheme, x as vermilionRadius };
package/dist/index.js.br CHANGED
Binary file
package/dist/index.js.gz CHANGED
Binary file
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const e = require("./useViewerSettingsDialog-CWoUSatY.cjs");
2
+ const e = require("./useViewerSettingsDialog-jAbWHh3J.cjs");
3
3
  let t = require("ooxml-ui/pptx");
4
4
  Object.defineProperty(exports, "CINEMATIC_TRANSITION_KEYFRAMES", {
5
5
  enumerable: !0,
Binary file
Binary file
@@ -35,7 +35,9 @@ import { DEFAULT_TRANSITION_DURATION_MS } from 'ooxml-ui/pptx';
35
35
  import { DefineComponent } from 'vue';
36
36
  import { DeviceOrientation } from 'ooxml-ui/pptx';
37
37
  import { DistributeAxis } from 'ooxml-ui/pptx';
38
+ import { DocumentSaveReason } from 'ooxml-ui/pptx';
38
39
  import { DocumentStatistics } from 'ooxml-ui/pptx';
40
+ import { DocumentStorage } from 'ooxml-ui/pptx';
39
41
  import { EASE } from 'ooxml-ui/pptx';
40
42
  import { EditorKeyActionName } from 'ooxml-ui/pptx';
41
43
  import { ElementAnimationState } from 'ooxml-ui/pptx';
@@ -1159,6 +1161,8 @@ declare interface RibbonProps {
1159
1161
  /** Serialise the deck to pptx-viewer-json and download it (Export page card). */
1160
1162
  onExportJson: () => void;
1161
1163
  onOpenShareDialog?: () => void;
1164
+ /** File > Save (backstage Save item): reported to host storage as `save`, not Save As. */
1165
+ onSave?: () => void;
1162
1166
  onSaveAsPptx: () => void;
1163
1167
  onSaveAsPpsx: () => void;
1164
1168
  onSaveAsPptm: () => void;
@@ -2263,6 +2267,8 @@ export declare interface UseDocumentPropertiesDialogInput {
2263
2267
  coreProperties: Ref<PptxCoreProperties | undefined>;
2264
2268
  customProperties: Ref<PptxCustomProperty[]>;
2265
2269
  appProperties: Ref<PptxAppProperties | undefined>;
2270
+ /** The host's `properties-change` event: the core fields the dialog saved. */
2271
+ onCorePropertiesChanged?: (updates: Partial<PptxCoreProperties>) => void;
2266
2272
  }
2267
2273
 
2268
2274
  export declare interface UseDocumentPropertiesDialogResult {
@@ -2297,6 +2303,11 @@ export declare interface UseEditorHistoryOptions {
2297
2303
  * Without it the stage pointed past the end of the deck and drew nothing.
2298
2304
  */
2299
2305
  activeSlideIndex?: Ref<number>;
2306
+ /**
2307
+ * Called once per tick after an edit is recorded, undone or redone: the host's `change`
2308
+ * event. Deferred a tick so a listener reads the committed deck, not the one before it.
2309
+ */
2310
+ onChange?: () => void;
2300
2311
  }
2301
2312
 
2302
2313
  /**
@@ -2688,6 +2699,10 @@ export declare interface UseExportWiringInput {
2688
2699
  getOptions?: () => ViewerOptions;
2689
2700
  /** IndexedDB key for this deck's AutoRecover snapshot, read at the same time. */
2690
2701
  filePath?: () => string | undefined;
2702
+ /** Host `storage` prop: Save / Save As go to `storage.save()` instead of a download. */
2703
+ storage?: () => DocumentStorage | undefined;
2704
+ /** A Save / Save As failed (serialising, or the host's storage rejected). */
2705
+ onSaveError?: (error: unknown) => void;
2691
2706
  }
2692
2707
 
2693
2708
  export declare interface UseExportWiringResult {
@@ -2705,7 +2720,10 @@ export declare interface UseExportWiringResult {
2705
2720
  onExportGif: () => void;
2706
2721
  onExportWebm: () => void;
2707
2722
  onExportJson: () => void;
2708
- downloadAs: (format: PptxSaveFormat) => Promise<void>;
2723
+ /** Save As `format` (`reason` is the command; Save As unless given). */
2724
+ downloadAs: (format: PptxSaveFormat, reason?: DocumentSaveReason) => Promise<void>;
2725
+ /** File > Save: `.pptx`, reported to host storage as `save`. */
2726
+ save: () => Promise<void>;
2709
2727
  onCopySlideAsImage: () => Promise<void>;
2710
2728
  }
2711
2729
 
@@ -3791,6 +3809,8 @@ export declare interface UseRibbonPropsActionsInput {
3791
3809
  onExportGif: () => void;
3792
3810
  onExportJson: () => void;
3793
3811
  downloadAs: (format: PptxSaveFormat) => Promise<void>;
3812
+ /** File > Save: `.pptx`, reported to host storage as `save`. */
3813
+ save: () => Promise<void>;
3794
3814
  onCopySlideAsImage: () => Promise<void>;
3795
3815
  openPrintDialog: () => void;
3796
3816
  ribbonUpdateTextStyle: RibbonProps['onUpdateTextStyle'];
@@ -4116,6 +4136,8 @@ export declare interface UseSlideMutationsInput {
4116
4136
  activeSlide: ComputedRef<PptxSlide | undefined>;
4117
4137
  pushHistory: () => void;
4118
4138
  selectedElements: ComputedRef<PptxElement[]>;
4139
+ /** The host's `notes-update` event: called with the new notes text after the edit lands. */
4140
+ onNotesChanged?: (notes: string) => void;
4119
4141
  }
4120
4142
 
4121
4143
  export declare function useSlideOperations(input: UseSlideOperationsInput): UseSlideOperationsResult;
package/dist/internals.js CHANGED
@@ -1,2 +1,2 @@
1
- import { $ as a, $n as s, $t as t, A as n, An as r, At as e, B as i, Bt as o, Ct as g, D as m, Dr as p, Dt as y, E as l, Er as v, Et as T, F as c, Fn as d, Ft as f, G as h, Gt as j, H as D, Ht as E, I as F, It as L, J as O, Jt as V, K as b, Kt as k, L as u, Lt as x, Mn as A, Mt as M, Nn as P, Nt as Q, O as $, On as _, Ot as q, Pn as w, Pt as z, Q as B, Qn as G, Qt as H, Rn as I, Rt as J, St as K, T as N, Tr as R, Tt as S, U, Ut as W, V as X, Vr as Y, Vt as Z, W as C, Wt as aa, X as sa, Xt as ta, Y as na, Yt as ra, Z as ea, Zt as ia, _ as oa, _n as ga, _t as ma, a as pa, ar as ya, at as la, b as va, bn as Ta, bt as ca, c as da, cn as fa, cr as ha, ct as ja, d as Da, dn as Ea, dr as Fa, en as La, er as Oa, et as Va, f as ba, fn as ka, ft as ua, g as xa, gn as Aa, gt as Ma, h as Pa, hn as Qa, ht as $a, i as _a, ir as qa, j as wa, jn as za, jt as Ba, k as Ga, kn as Ha, kt as Ia, l as Ja, ln as Ka, lt as Na, m as Ra, mn as Sa, mt as Ua, n as Wa, nr as Xa, nt as Ya, o as Za, or as Ca, ot as as, p as ss, pn as ts, pt as ns, q as rs, qt as es, r as is, rt as os, s as gs, sn as ms, sr as ps, st as ys, t as ls, tn as vs, tr as Ts, tt as cs, u as ds, un as fs, v as hs, vn as js, vr as Ds, vt as Es, wt as Fs, xt as Ls, y as Os, yn as Vs, yt as bs, z as ks, zt as us } from "./useViewerSettingsDialog-CJMF2f_L.js";
1
+ import { $ as a, $n as s, $t as t, A as n, An as r, At as e, B as i, Bt as o, Ct as g, D as m, Dr as p, Dt as y, E as l, Er as v, Et as T, F as c, Fn as d, Ft as f, G as h, Gt as j, H as D, Ht as E, I as F, It as L, J as O, Jt as V, K as b, Kt as k, L as u, Lt as x, Mn as A, Mt as M, Nn as P, Nt as Q, O as $, On as _, Ot as q, Pn as w, Pt as z, Q as B, Qn as G, Qt as H, Rn as I, Rt as J, St as K, T as N, Tr as R, Tt as S, U, Ut as W, V as X, Vr as Y, Vt as Z, W as C, Wt as aa, X as sa, Xt as ta, Y as na, Yt as ra, Z as ea, Zt as ia, _ as oa, _n as ga, _t as ma, a as pa, ar as ya, at as la, b as va, bn as Ta, bt as ca, c as da, cn as fa, cr as ha, ct as ja, d as Da, dn as Ea, dr as Fa, en as La, er as Oa, et as Va, f as ba, fn as ka, ft as ua, g as xa, gn as Aa, gt as Ma, h as Pa, hn as Qa, ht as $a, i as _a, ir as qa, j as wa, jn as za, jt as Ba, k as Ga, kn as Ha, kt as Ia, l as Ja, ln as Ka, lt as Na, m as Ra, mn as Sa, mt as Ua, n as Wa, nr as Xa, nt as Ya, o as Za, or as Ca, ot as as, p as ss, pn as ts, pt as ns, q as rs, qt as es, r as is, rt as os, s as gs, sn as ms, sr as ps, st as ys, t as ls, tn as vs, tr as Ts, tt as cs, u as ds, un as fs, v as hs, vn as js, vr as Ds, vt as Es, wt as Fs, xt as Ls, y as Os, yn as Vs, yt as bs, z as ks, zt as us } from "./useViewerSettingsDialog-CXbWkqSq.js";
2
2
  export { g as CINEMATIC_TRANSITION_KEYFRAMES, _a as DEFAULT_MAX_VERSIONS, Fs as DEFAULT_MORPH_DURATION_MS, R as DEFAULT_RENDERING_3D_FLAGS, S as DEFAULT_TRANSITION_DURATION_MS, T as EASE, es as ERASER_RADIUS, Ls as FragmentedTransitionLayer, V as HIGHLIGHTER_OPACITY, ra as HIGHLIGHTER_WIDTH, y as INSTANT, za as MOBILE_BREAKPOINT, A as MOBILE_LANDSCAPE_MAX_HEIGHT, ca as MorphExtraLayers, Sa as NUDGE_LARGE, Qa as NUDGE_SMALL, q as P14_TRANSITION_KEYFRAMES, Ia as P14_TRANSITION_KEYFRAMES_2, e as P14_TRANSITION_KEYFRAMES_ALL, ta as PEN_WIDTH, bs as PresentationTransitionOverlay, Ba as RANDOM_ELIGIBLE_TYPES, oa as RIBBON_ALIGN, v as Rendering3DFlagsKey, js as SHORTCUT_CATALOG, Vs as SHORTCUT_GROUP_LABEL_KEYS, M as SLIDE_TRANSITION_KEYFRAMES, Q as SLIDE_TRANSITION_KEYFRAMES_CSS, fa as SMARTART_COLOR_SCHEMES, Ka as SMARTART_STYLE_OPTIONS, P as TABLET_BREAKPOINT, z as TRANSITION_SPEED_DURATION_MS, G as TableSelectionKey, f as WHEEL_SPOKE_COUNTS, La as buildClickGroups, s as computeCellSelection, _ as computeDocumentStatistics, Ma as computeElapsed, Ha as countWords, ia as createStroke, H as eraseStrokesAtPoint, ma as formatRehearseMs, as as generateCommentId, L as getCinematicTransitionAnimations, x as getP14TransitionAnimations, J as getSlideTransitionAnimations, Ta as groupShortcutCatalog, Oa as injectTableSelection, ya as inlineEditorRect, w as isMobileViewport, Ca as nodeIdsInRenderOrder, n as parseSignaturesFromBuffer, Ts as provideTableSelection, us as resolveDirection, o as resolveDirection8, Z as resolveOrientation, Aa as resolveShortcutAction, E as resolveSlideTransition, W as resolveTransitionDurationMs, aa as resolveWheelSpokeCount, fs as smartArtLayoutLabel, ps as textNodeIdsInRenderOrder, hs as toShapePreset, Ua as useAccessibility, ns as useAlignGroup, vs as useAnimationPlayback, ua as useAutosave, ts as useChartEditing, Na as useCollaboration, ja as useCollaborationWiring, Ds as useColorChangeImage, ys as useComments, la as useCommentsWiring, os as useContextMenu, Ya as useCustomShows, cs as useCustomShowsWiring, ka as useDebouncedCallback, Va as useDocumentPropertiesDialog, r as useDocumentStatistics, a as useEditorHistory, B as useEditorKeyboard, ea as useEditorOperations, sa as useElementDrag, na as useElementInsertion, O as useEmbeddedFonts, rs as useExport, b as useExportProgress, C as useExportWiring, U as useFindReplace, D as useFontEmbedding, X as useFormatPainter, i as useHeaderFooterDialog, ks as useInkDrawing, u as useInlineEditing, F as useInsertElementDialogs, d as useIsMobile, c as useKeyboardInsets, ga as useKeyboardShortcuts, wa as useLoadContent, Ga as useMasterViewState, h as useMediaExport, $ as useMobileChrome, Fa as useModel3dScene, K as useMorphTransitionOverlay, m as useMultiSelectOps, l as usePasswordProtection, t as usePresentationAnnotations, N as usePresentationModeWiring, va as usePrint, Es as useRehearseTimings, p as useRendering3DFlags, Os as useRibbonActions, Wa as useRibbonProps, xa as useRibbonUiState, Pa as useSectionOperations, Ra as useSelectionPaneWiring, Y as useSheetDismissDrag, ss as useSignatureWorkflow, $a as useSignatures, ba as useSlideMutations, Da as useSlideOperations, ds as useSlideShowSettings, Ja as useSlideTemplateInsertion, ms as useSmartArtEditing, Ea as useSmartArtFocus, qa as useSmartArtHoverRect, ha as useSmartArtInlineEditState, da as useSmartArtNodeEditContext, gs as useTableCellEditingContext, Xa as useTableCellSelection, Za as useThemeEditing, k as useToolbarAutoHide, I as useToolbarVisibility, j as useTouchGestures, pa as useVersionHistory, is as useVersionHistoryWiring, ls as useViewerSettingsDialog };
Binary file
Binary file