pptx-svelte-viewer 2.7.1 → 2.9.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 (112) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/AiChatPanel-CWB7jYUa.js +1108 -0
  3. package/dist/{export-Dggu1blu.js → export-CAW_l1TQ.js} +44625 -39074
  4. package/dist/i18n.js +1 -1
  5. package/dist/index.d.ts +21 -0
  6. package/dist/index.js +20 -20
  7. package/dist/pptx-svelte-viewer.css +1 -1
  8. package/dist/{translator-DL83W_OP.js → translator-0iRuc5gX.js} +240 -19
  9. package/dist/viewer/ai/ai-chat-persistence.svelte.d.ts +23 -0
  10. package/dist/viewer/ai/ai-chat-persistence.svelte.d.ts.map +1 -0
  11. package/dist/viewer/components/inspector/theme-editor-state.svelte.d.ts +47 -0
  12. package/dist/viewer/components/inspector/theme-editor-state.svelte.d.ts.map +1 -0
  13. package/dist/viewer/components/props-chrome.d.ts +104 -0
  14. package/dist/viewer/components/props-chrome.d.ts.map +1 -0
  15. package/dist/viewer/components/props-editing.d.ts +86 -0
  16. package/dist/viewer/components/props-editing.d.ts.map +1 -0
  17. package/dist/viewer/components/props-elements.d.ts +65 -0
  18. package/dist/viewer/components/props-elements.d.ts.map +1 -0
  19. package/dist/viewer/components/props-stage.d.ts +84 -0
  20. package/dist/viewer/components/props-stage.d.ts.map +1 -0
  21. package/dist/viewer/components/props.d.ts +10 -283
  22. package/dist/viewer/components/props.d.ts.map +1 -1
  23. package/dist/viewer/components/ribbon/insert/equation-latex-preview.d.ts +23 -0
  24. package/dist/viewer/components/ribbon/insert/equation-latex-preview.d.ts.map +1 -0
  25. package/dist/viewer/components/ribbon/ribbon-types.d.ts +2 -0
  26. package/dist/viewer/components/ribbon/ribbon-types.d.ts.map +1 -1
  27. package/dist/viewer/components/viewer-body-commits.d.ts +18 -0
  28. package/dist/viewer/components/viewer-body-commits.d.ts.map +1 -0
  29. package/dist/viewer/components/viewer-body-props.d.ts +125 -0
  30. package/dist/viewer/components/viewer-body-props.d.ts.map +1 -0
  31. package/dist/viewer/editor/context-menu-dispatch.d.ts +45 -0
  32. package/dist/viewer/editor/context-menu-dispatch.d.ts.map +1 -0
  33. package/dist/viewer/editor/deck-api.d.ts +31 -0
  34. package/dist/viewer/editor/deck-api.d.ts.map +1 -0
  35. package/dist/viewer/editor/editor-controller-deps.d.ts +21 -1
  36. package/dist/viewer/editor/editor-controller-deps.d.ts.map +1 -1
  37. package/dist/viewer/editor/editor-controller-wiring.d.ts +35 -0
  38. package/dist/viewer/editor/editor-controller-wiring.d.ts.map +1 -0
  39. package/dist/viewer/editor/editor-controller.svelte.d.ts.map +1 -1
  40. package/dist/viewer/editor/editor-document-lifecycle.d.ts +68 -0
  41. package/dist/viewer/editor/editor-document-lifecycle.d.ts.map +1 -0
  42. package/dist/viewer/editor/editor-document-state.d.ts +3 -1
  43. package/dist/viewer/editor/editor-document-state.d.ts.map +1 -1
  44. package/dist/viewer/editor/editor-freeform.d.ts +4 -0
  45. package/dist/viewer/editor/editor-freeform.d.ts.map +1 -0
  46. package/dist/viewer/editor/editor-history-state.svelte.d.ts +31 -0
  47. package/dist/viewer/editor/editor-history-state.svelte.d.ts.map +1 -0
  48. package/dist/viewer/editor/editor-ink-controller.svelte.d.ts +10 -6
  49. package/dist/viewer/editor/editor-ink-controller.svelte.d.ts.map +1 -1
  50. package/dist/viewer/editor/editor-keyboard.d.ts +18 -11
  51. package/dist/viewer/editor/editor-keyboard.d.ts.map +1 -1
  52. package/dist/viewer/editor/editor-selection.svelte.d.ts +10 -10
  53. package/dist/viewer/editor/editor-selection.svelte.d.ts.map +1 -1
  54. package/dist/viewer/editor/editor-state.svelte.d.ts +26 -19
  55. package/dist/viewer/editor/editor-state.svelte.d.ts.map +1 -1
  56. package/dist/viewer/editor/editor-text-body-mutations.d.ts +17 -0
  57. package/dist/viewer/editor/editor-text-body-mutations.d.ts.map +1 -0
  58. package/dist/viewer/editor/element-hit.d.ts +8 -26
  59. package/dist/viewer/editor/element-hit.d.ts.map +1 -1
  60. package/dist/viewer/editor/index.d.ts +2 -0
  61. package/dist/viewer/editor/index.d.ts.map +1 -1
  62. package/dist/viewer/export/export-wiring.svelte.d.ts +8 -1
  63. package/dist/viewer/export/export-wiring.svelte.d.ts.map +1 -1
  64. package/dist/viewer/export/rasterize-slide.d.ts +8 -1
  65. package/dist/viewer/export/rasterize-slide.d.ts.map +1 -1
  66. package/dist/viewer/index.d.ts +897 -342
  67. package/dist/viewer/index.js +20 -398
  68. package/dist/viewer/presentation/animation-media-commands.d.ts +4 -0
  69. package/dist/viewer/presentation/animation-media-commands.d.ts.map +1 -0
  70. package/dist/viewer/presentation/animation-playback-helpers.d.ts.map +1 -1
  71. package/dist/viewer/state/create-viewer-state-ai.svelte.d.ts +42 -0
  72. package/dist/viewer/state/create-viewer-state-ai.svelte.d.ts.map +1 -0
  73. package/dist/viewer/state/create-viewer-state-collab.svelte.d.ts +13 -0
  74. package/dist/viewer/state/create-viewer-state-collab.svelte.d.ts.map +1 -1
  75. package/dist/viewer/state/create-viewer-state-derived.svelte.d.ts +38 -0
  76. package/dist/viewer/state/create-viewer-state-derived.svelte.d.ts.map +1 -0
  77. package/dist/viewer/state/create-viewer-state-editor-ui.svelte.d.ts +21 -13
  78. package/dist/viewer/state/create-viewer-state-editor-ui.svelte.d.ts.map +1 -1
  79. package/dist/viewer/state/create-viewer-state-export-notes.svelte.d.ts +6 -1
  80. package/dist/viewer/state/create-viewer-state-export-notes.svelte.d.ts.map +1 -1
  81. package/dist/viewer/state/create-viewer-state-presentation.svelte.d.ts +3 -1
  82. package/dist/viewer/state/create-viewer-state-presentation.svelte.d.ts.map +1 -1
  83. package/dist/viewer/state/create-viewer-state-presenter.svelte.d.ts +31 -0
  84. package/dist/viewer/state/create-viewer-state-presenter.svelte.d.ts.map +1 -0
  85. package/dist/viewer/state/create-viewer-state-types.d.ts +43 -6
  86. package/dist/viewer/state/create-viewer-state-types.d.ts.map +1 -1
  87. package/dist/viewer/state/create-viewer-state.svelte.d.ts +17 -16
  88. package/dist/viewer/state/create-viewer-state.svelte.d.ts.map +1 -1
  89. package/dist/viewer/state/field-context.d.ts +38 -0
  90. package/dist/viewer/state/field-context.d.ts.map +1 -0
  91. package/dist/viewer/state/index.d.ts +4 -0
  92. package/dist/viewer/state/index.d.ts.map +1 -1
  93. package/dist/viewer/state/navigation.d.ts +9 -7
  94. package/dist/viewer/state/navigation.d.ts.map +1 -1
  95. package/dist/viewer/state/open-file.d.ts +15 -0
  96. package/dist/viewer/state/open-file.d.ts.map +1 -0
  97. package/dist/viewer/state/presentation-loader.svelte.d.ts +3 -1
  98. package/dist/viewer/state/presentation-loader.svelte.d.ts.map +1 -1
  99. package/dist/viewer/state/quick-access-commands.d.ts +19 -0
  100. package/dist/viewer/state/quick-access-commands.d.ts.map +1 -0
  101. package/dist/viewer/state/slide-elements.d.ts +51 -0
  102. package/dist/viewer/state/slide-elements.d.ts.map +1 -0
  103. package/dist/viewer/state/theme-locale.svelte.d.ts +68 -0
  104. package/dist/viewer/state/theme-locale.svelte.d.ts.map +1 -0
  105. package/dist/viewer/state/viewer-effects.svelte.d.ts.map +1 -1
  106. package/dist/viewer/state/viewer-state-options.d.ts +31 -0
  107. package/dist/viewer/state/viewer-state-options.d.ts.map +1 -0
  108. package/dist/viewer/style/element-style.d.ts.map +1 -1
  109. package/dist/viewer/style/text-style.d.ts +15 -0
  110. package/dist/viewer/style/text-style.d.ts.map +1 -1
  111. package/package.json +1 -1
  112. package/dist/AiChatPanel-BbVtEzOo.js +0 -1082
@@ -1,400 +1,22 @@
1
- import { A as M, B as T, C as ce, D as P, E as O, H as R, I as U, L as F, M as H, O as D, R as W, S as de, T as I, U as V, W as N, _, a as ue, at as z, b as Se, c as B, d as ve, f as pe, g as k, h as K, it as L, j as $, k as q, l as fe, m as G, o as Z, ot as j, p as he, pt as J, s as Q, st as X, t as we, u as Y, v as ee, w as me, x as be, y as te, z as re } from "../export-Dggu1blu.js";
2
- import * as e from "svelte/internal/client";
3
- import { onDestroy as ne, onMount as oe } from "svelte";
4
- var Ee = H, Ae = P, ye = D;
5
- function ae(t) {
6
- const { loader: a, viewer: r, editor: i, options: n } = t;
7
- function g() {
8
- const u = n.getSource();
9
- return u ? u instanceof Uint8Array ? u : new Uint8Array(u) : null;
10
- }
11
- const c = new j({
12
- getSlides: () => i.renderedSlides,
13
- applyRemoteSlides: (u) => i.applyRemoteSlides(u),
14
- getConfig: () => n.collaboration,
15
- getSourceBytes: g,
16
- getCanvasWidth: () => a.canvasSize.width,
17
- getCanvasHeight: () => a.canvasSize.height,
18
- onStart: (u) => n.onstartcollaboration?.(u),
19
- onStop: () => n.onstopcollaboration?.()
20
- });
21
- L({
22
- collab: c,
23
- getCurrentSlide: () => r.current,
24
- getSelectedElementId: () => i.selectedElementId,
25
- goTo: (u) => r.goTo(u)
26
- });
27
- const l = new z(c, () => n.shareDefaults);
28
- let s = e.state(!1), d = e.state(!1), v = e.state(!1);
29
- e.user_effect(() => {
30
- a.loadCount, e.set(v, !1), e.set(d, !1);
31
- }), e.user_effect(() => {
32
- i.dirty && a.hasDigitalSignatures && !e.get(v) && e.set(d, !0);
33
- });
34
- function o() {
35
- e.set(v, !0), e.set(d, !1);
36
- }
37
- let S = e.state(!1);
38
- e.user_effect(() => {
39
- e.set(S, n.getAutosave(), !0);
40
- });
41
- const h = e.derived(() => n.getEditable() && e.get(S) && !!n.getFilePath() && !c.readOnly);
42
- return {
43
- collab: c,
44
- dialogs: l,
45
- autosaveCtl: new I({
46
- getEnabled: () => e.get(h),
47
- getIntervalMs: () => n.autosaveIntervalMs ?? 2e3,
48
- getFilePath: n.getFilePath,
49
- getSlides: () => i.renderedSlides,
50
- getSlideMasters: () => i.slideMasters,
51
- getNotesMaster: () => i.notesMaster,
52
- getHandoutMaster: () => i.handoutMaster,
53
- getSections: () => i.sections,
54
- getHandler: () => a.handler,
55
- getLoadCount: () => a.loadCount,
56
- onSaved: (u) => n.onautosave?.(u)
57
- }),
58
- get autosaveEnabled() {
59
- return e.get(S);
60
- },
61
- setAutosaveEnabled(u) {
62
- e.set(S, u, !0), n.onautosavetoggle?.(u);
63
- },
64
- get autosaveActive() {
65
- return e.get(h);
66
- },
67
- get versionHistoryOpen() {
68
- return e.get(s);
69
- },
70
- set versionHistoryOpen(u) {
71
- e.set(s, u, !0);
72
- },
73
- get signatureWarningOpen() {
74
- return e.get(d);
75
- },
76
- closeSignatureWarning: o
77
- };
78
- }
79
- function se(t) {
80
- const { loader: a, editor: r, viewer: i, collab: n, options: g } = t, c = new G(r), l = new K();
81
- R({
82
- navigateToZoomTarget: (o) => i.goTo(o),
83
- getSlides: () => r.renderedSlides
84
- });
85
- let s = e.state(null);
86
- const d = new T(r, {
87
- getScale: () => r.masterViewTarget ? g.getMasterScale() : t.getScale(),
88
- getCurrent: () => i.current,
89
- getPresenting: () => i.isFullscreen,
90
- getStageRoot: () => g.getStageHolderEl()?.querySelector(".pptx-svelte-stage") ?? null,
91
- getHolderEl: () => g.getStageHolderEl() ?? null,
92
- onCursorMove: (o, S) => n.setCursor(o, S, i.current),
93
- onContextMenu: (o, S) => {
94
- e.set(s, {
95
- x: o,
96
- y: S
97
- }, !0);
98
- },
99
- getSnapToGrid: () => c.preferences.snapToGrid,
100
- getSnapToShape: () => c.snapToShape,
101
- getGuides: () => c.guides
102
- }), v = new W({
103
- getSlides: () => r.slides,
104
- commitSlides: (o) => r.commitSlides(o),
105
- onNavigate: (o, S) => {
106
- i.goTo(o), r.select(S);
107
- }
108
- });
109
- return Q({
110
- getSource: g.getSource,
111
- getEditable: () => g.getEditable() && !n.readOnly,
112
- getInitialSlide: g.getInitialSlide,
113
- getTranslator: () => g.t,
114
- loader: a,
115
- viewer: i,
116
- editor: r,
117
- controller: d,
118
- getOnload: () => g.onload,
119
- getOnerror: () => g.onerror,
120
- getOnslidechange: () => g.onslidechange,
121
- onContentApplied: () => n.adoptDocAfterLoad()
122
- }), {
123
- parityUi: c,
124
- chromeUi: l,
125
- controller: d,
126
- findReplace: v,
127
- get stageContextMenu() {
128
- return e.get(s);
129
- },
130
- set stageContextMenu(o) {
131
- e.set(s, o, !0);
132
- }
133
- };
134
- }
135
- function ie(t) {
136
- const { editor: a, loader: r, viewer: i } = t, n = te({
137
- getContainer: t.getRootEl,
138
- getSlides: () => a.renderedSlides,
139
- getCanvasSize: () => r.canvasSize,
140
- getMediaDataUrls: () => r.mediaDataUrls,
141
- getCurrent: () => i.current,
142
- getTranslator: () => t.t,
143
- getSmartArt3D: t.getSmartArt3D
144
- }), g = new _({
145
- controller: n.controller,
146
- getTranslator: () => t.t
147
- });
148
- let c = e.state(!1), l = e.state(null);
149
- function s() {
150
- e.set(c, !e.get(c)), e.set(l, e.get(c) ? "notes" : null, !0);
151
- }
152
- function d(o) {
153
- o === "notes" ? e.set(c, !0) : e.get(l) === "notes" && e.set(c, !1), e.set(l, o, !0);
154
- }
155
- function v(o, S) {
156
- t.getEditable() && a.commitNotes(o, S), t.onnotesupdate?.(o);
157
- }
158
- return {
159
- exportWiring: n,
160
- exportUi: g,
161
- get notesExpanded() {
162
- return e.get(c);
163
- },
164
- get activeMobileSheet() {
165
- return e.get(l);
166
- },
167
- onNotesToggle: s,
168
- setActiveMobileSheet: d,
169
- onNotesCommit: v
170
- };
171
- }
172
- function le(t) {
173
- const { editor: a, viewer: r, loader: i, parityUi: n, controller: g } = t, c = new $({
174
- getSlides: () => a.renderedSlides,
175
- getCurrentIndex: () => r.current,
176
- navigate: (o) => r.goTo(o),
177
- getShowWithAnimation: () => i.presentationProperties.showWithAnimation,
178
- getFrameRoot: () => t.getStageHolderEl()?.querySelector(".pptx-svelte-stage") ?? null
179
- });
180
- q({
181
- controller: c,
182
- getPresenting: () => r.isFullscreen,
183
- getCurrentIndex: () => r.current,
184
- getActiveSlide: () => a.renderedSlides[r.current],
185
- getStageRoot: () => t.getStageHolderEl()?.querySelector(".pptx-svelte-stage") ?? null
186
- });
187
- let l = !1;
188
- e.user_effect(() => {
189
- const o = r.isFullscreen;
190
- l && !o && n.annotations.count > 0 && (n.keepAnnotationsOpen = !0), l = o, !o && n.rehearse.active && n.rehearse.finish();
191
- }), e.user_effect(() => {
192
- n.rehearse.move(r.current);
193
- }), e.user_effect(() => {
194
- if (!n.rehearse.active || n.rehearse.paused) return;
195
- const o = window.setInterval(() => n.rehearse.tick(), 250);
196
- return () => window.clearInterval(o);
197
- });
198
- const { onFullscreenToggle: s, onFullscreenChange: d, onKeydown: v } = Z({
199
- getRootEl: t.getRootEl,
200
- viewer: r,
201
- controller: g,
202
- getEditingActive: t.getEditingActive,
203
- presentation: c,
204
- setPointerTool: (o) => {
205
- n.annotations.tool = o;
206
- },
207
- eraseAnnotations: () => n.annotations.clear()
208
- });
209
- return {
210
- presentation: c,
211
- onFullscreenToggle: s,
212
- onFullscreenChange: d,
213
- onKeydown: v
214
- };
215
- }
216
- function xe(t) {
217
- X(t.t), N(t.getSmartArt3D);
218
- const a = new k();
219
- V({
220
- getColorScheme: () => a.colorScheme,
221
- getTableStyleMap: () => a.tableStyleMap,
222
- getFontScheme: () => a.presentationTheme?.fontScheme
223
- });
224
- const r = new B();
225
- let i = e.state(!1), n = e.state(e.proxy(Date.now()));
226
- const g = new M({
227
- getSource: t.getSource,
228
- getSlideIndex: () => r.current,
229
- onAudienceSlide: (f) => r.goTo(f),
230
- onAudienceExit: () => {
231
- J(window) && w.presentation.showEndOfShow();
232
- }
233
- });
234
- oe(() => {
235
- g.connect(), g.isAudience && (r.isFullscreen = !0);
236
- }), ne(() => g.dispose()), e.user_effect(() => {
237
- g.sync(r.current);
238
- });
239
- function c() {
240
- e.set(n, Date.now(), !0), e.set(i, !0);
241
- }
242
- const l = new re({
243
- getCurrent: () => r.current,
244
- getHandler: () => a.handler,
245
- onChange: () => {
246
- t.onchange?.(), l.save().then((f) => t.oncontentchange?.(f));
247
- }
248
- });
249
- F(U({
250
- loader: a,
251
- editor: l
252
- }));
253
- const s = ae({
254
- loader: a,
255
- viewer: r,
256
- editor: l,
257
- options: t
258
- }), d = se({
259
- loader: a,
260
- editor: l,
261
- viewer: r,
262
- collab: s.collab,
263
- options: t,
264
- getScale: () => e.get(o)
265
- }), v = e.derived(() => Y(t.getViewportWidth(), t.getViewportHeight(), a.canvasSize.width, a.canvasSize.height, r.isFullscreen ? 0 : 24)), o = e.derived(() => r.isFullscreen ? e.get(v) : e.get(v) * ((r.zoomPercent ?? 100) / 100)), S = e.derived(() => Math.max(1, Math.round(r.zoomPercent ?? 100))), h = e.derived(() => l.renderedSlides), u = e.derived(() => e.get(h)[r.current]), E = e.derived(() => !r.isFullscreen), b = e.derived(() => t.getEditable() && !r.isFullscreen && !s.collab.readOnly), A = e.derived(() => t.getEditable() && !s.collab.readOnly && a.slides.length > 0), C = e.derived(() => l.masterViewTarget ? "master" : r.isFullscreen ? "present" : t.getEditable() ? "edit" : "preview");
266
- e.user_effect(() => t.ondirtychange?.(l.dirty)), e.user_effect(() => t.onmodechange?.(e.get(C))), e.user_effect(() => t.onzoomchange?.(e.get(S) / 100)), e.user_effect(() => t.onselectionchange?.([...l.selection.ids])), e.user_effect(() => t.onslidecountchange?.(e.get(h).length));
267
- const w = le({
268
- editor: l,
269
- viewer: r,
270
- loader: a,
271
- parityUi: d.parityUi,
272
- controller: d.controller,
273
- getEditingActive: () => e.get(b),
274
- getStageHolderEl: t.getStageHolderEl,
275
- getRootEl: t.getRootEl
276
- }), p = ie({
277
- editor: l,
278
- loader: a,
279
- viewer: r,
280
- t: t.t,
281
- getSmartArt3D: t.getSmartArt3D,
282
- getRootEl: t.getRootEl,
283
- getEditable: t.getEditable,
284
- onnotesupdate: t.onnotesupdate
285
- }), m = O(l), y = ee(p.exportWiring.controller);
286
- function x() {
287
- d.controller.destroy(), s.collab.stop(), p.exportWiring.destroy(), a.dispose();
288
- }
289
- return {
290
- loader: a,
291
- viewer: r,
292
- editor: l,
293
- controller: d.controller,
294
- parityUi: d.parityUi,
295
- chromeUi: d.chromeUi,
296
- findReplace: d.findReplace,
297
- collab: s.collab,
298
- dialogs: s.dialogs,
299
- autosaveCtl: s.autosaveCtl,
300
- presentation: w.presentation,
301
- presenterSession: g,
302
- exportWiring: p.exportWiring,
303
- exportUi: p.exportUi,
304
- t: t.t,
305
- editingApi: m,
306
- exportingApi: y,
307
- get scale() {
308
- return e.get(o);
309
- },
310
- get effectivePercent() {
311
- return e.get(S);
312
- },
313
- get displaySlides() {
314
- return e.get(h);
315
- },
316
- get activeSlide() {
317
- return e.get(u);
318
- },
319
- get chromeVisible() {
320
- return e.get(E);
321
- },
322
- get editingActive() {
323
- return e.get(b);
324
- },
325
- get showRibbon() {
326
- return e.get(A);
327
- },
328
- get viewerMode() {
329
- return e.get(C);
330
- },
331
- get autosaveActive() {
332
- return s.autosaveActive;
333
- },
334
- get autosaveEnabled() {
335
- return s.autosaveEnabled;
336
- },
337
- setAutosaveEnabled: s.setAutosaveEnabled,
338
- get presenterMode() {
339
- return e.get(i);
340
- },
341
- set presenterMode(f) {
342
- e.set(i, f, !0);
343
- },
344
- get presenterStartedAt() {
345
- return e.get(n);
346
- },
347
- get stageContextMenu() {
348
- return d.stageContextMenu;
349
- },
350
- set stageContextMenu(f) {
351
- d.stageContextMenu = f;
352
- },
353
- get activeMobileSheet() {
354
- return p.activeMobileSheet;
355
- },
356
- setActiveMobileSheet: p.setActiveMobileSheet,
357
- get notesExpanded() {
358
- return p.notesExpanded;
359
- },
360
- get versionHistoryOpen() {
361
- return s.versionHistoryOpen;
362
- },
363
- set versionHistoryOpen(f) {
364
- s.versionHistoryOpen = f;
365
- },
366
- get signatureWarningOpen() {
367
- return s.signatureWarningOpen;
368
- },
369
- enterPresenterView: c,
370
- closeSignatureWarning: s.closeSignatureWarning,
371
- onNotesToggle: p.onNotesToggle,
372
- onNotesCommit: p.onNotesCommit,
373
- onFullscreenToggle: w.onFullscreenToggle,
374
- onFullscreenChange: w.onFullscreenChange,
375
- onKeydown: w.onKeydown,
376
- downloadPptx: m.downloadPptx,
377
- downloadAs: m.downloadAs,
378
- destroy: x
379
- };
380
- }
1
+ import { $ as s, D as e, O as a, a as i, c as t, d as l, et as S, f as n, g as v, i as d, k as o, l as b, n as g, o as p, r as c, s as x, t as w, u as T } from "../export-CAW_l1TQ.js";
2
+ var m = o, P = a, V = e;
381
3
  export {
382
- we as PowerPointViewer,
383
- k as PresentationLoader,
384
- Ee as Ribbon,
385
- ye as SlideCanvas,
386
- B as ViewerState,
387
- Ae as ViewerToolbar,
388
- fe as clampSlideIndex,
389
- ue as createSvelteAiBridge,
390
- xe as createViewerState,
391
- Se as exportAllSlidesToSvg,
392
- be as exportAllSlidesToSvgBlobs,
393
- de as exportSlideAsSvg,
394
- ce as exportSlideToSvg,
395
- me as exportSlideToSvgBlob,
396
- Y as fitScale,
397
- ve as resolveNavigationKey,
398
- pe as zoomInPercent,
399
- he as zoomOutPercent
4
+ w as PowerPointViewer,
5
+ d as PresentationLoader,
6
+ m as Ribbon,
7
+ V as SlideCanvas,
8
+ c as ViewerState,
9
+ P as ViewerToolbar,
10
+ T as clampSlideIndex,
11
+ v as createSvelteAiBridge,
12
+ g as createViewerState,
13
+ i as exportAllSlidesToSvg,
14
+ p as exportAllSlidesToSvgBlobs,
15
+ x as exportSlideAsSvg,
16
+ t as exportSlideToSvg,
17
+ b as exportSlideToSvgBlob,
18
+ l as fitScale,
19
+ n as resolveNavigationKey,
20
+ s as zoomInPercent,
21
+ S as zoomOutPercent
400
22
  };
@@ -0,0 +1,4 @@
1
+ import { TimelineStepCommand } from 'pptx-viewer-shared';
2
+ /** Apply a parsed `p:cmd` media verb to the target's `<video>` / `<audio>`. */
3
+ export declare function executeMediaCommand(command: TimelineStepCommand, frameRoot?: () => HTMLElement | null): void;
4
+ //# sourceMappingURL=animation-media-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animation-media-commands.d.ts","sourceRoot":"","sources":["../../../src/viewer/presentation/animation-media-commands.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AA4C9D,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAClC,OAAO,EAAE,mBAAmB,EAC5B,SAAS,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,GAClC,IAAI,CA6CN"}
@@ -1 +1 @@
1
- {"version":3,"file":"animation-playback-helpers.d.ts","sourceRoot":"","sources":["../../../src/viewer/presentation/animation-playback-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAqB,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,KAAK,EACX,qBAAqB,EACrB,kBAAkB,EAElB,MAAM,oBAAoB,CAAC;AAI5B,kFAAkF;AAClF,MAAM,MAAM,YAAY,GAAG,CAC1B,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,KACrF,IAAI,CAAC;AAEV,iFAAiF;AACjF,MAAM,WAAW,cAAc;IAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,iFAAiF;AACjF,MAAM,WAAW,eAAe;IAC/B,SAAS,EAAE,YAAY,CAAC;IACxB,+EAA+E;IAC/E,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,cAAc,CAAC;IAC5B,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;CACrC;AAwFD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,eAAe,GAAG,IAAI,CA+D9F;AAMD,2DAA2D;AAC3D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAK9D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC/B,UAAU,EAAE,+BAA+B,EAC3C,KAAK,EAAE,kBAAkB,EACzB,GAAG,EAAE,eAAe,GAClB,IAAI,CAsCN;AAMD,wEAAwE;AACxE,wBAAgB,SAAS,CACxB,UAAU,EAAE,+BAA+B,EAC3C,KAAK,EAAE,kBAAkB,EACzB,GAAG,EAAE,eAAe,GAClB,IAAI,CAGN;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACvC,UAAU,EAAE,+BAA+B,EAC3C,GAAG,EAAE,eAAe,GAClB,IAAI,CAqBN"}
1
+ {"version":3,"file":"animation-playback-helpers.d.ts","sourceRoot":"","sources":["../../../src/viewer/presentation/animation-playback-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAKpF,kFAAkF;AAClF,MAAM,MAAM,YAAY,GAAG,CAC1B,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,KACrF,IAAI,CAAC;AAEV,iFAAiF;AACjF,MAAM,WAAW,cAAc;IAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,iFAAiF;AACjF,MAAM,WAAW,eAAe;IAC/B,SAAS,EAAE,YAAY,CAAC;IACxB,+EAA+E;IAC/E,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,cAAc,CAAC;IAC5B,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;CACrC;AAMD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,eAAe,GAAG,IAAI,CA+D9F;AAMD,2DAA2D;AAC3D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAK9D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC/B,UAAU,EAAE,+BAA+B,EAC3C,KAAK,EAAE,kBAAkB,EACzB,GAAG,EAAE,eAAe,GAClB,IAAI,CAsCN;AAMD,wEAAwE;AACxE,wBAAgB,SAAS,CACxB,UAAU,EAAE,+BAA+B,EAC3C,KAAK,EAAE,kBAAkB,EACzB,GAAG,EAAE,eAAe,GAClB,IAAI,CAGN;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACvC,UAAU,EAAE,+BAA+B,EAC3C,GAAG,EAAE,eAAe,GAClB,IAAI,CAqBN"}
@@ -0,0 +1,42 @@
1
+ import { PptxAiBridge } from 'pptx-viewer-shared/ai';
2
+ import { AiPanelController, AiCanvasHighlight } from '../ai/ai-panel-controller.svelte';
3
+ import { CollaborationController } from '../collab';
4
+ import { EditorState } from '../editor/editor-state.svelte';
5
+ import { CreateViewerStateOptions } from './create-viewer-state-types';
6
+ import { PresentationLoader } from './presentation-loader.svelte';
7
+ import { ViewerState } from './viewer-state.svelte';
8
+ export interface AiClusterDeps {
9
+ loader: PresentationLoader;
10
+ viewer: ViewerState;
11
+ editor: EditorState;
12
+ collab: CollaborationController;
13
+ options: CreateViewerStateOptions;
14
+ /** Flip the viewer's `editable` flag: an AI write implies editing. */
15
+ setEditable(editable: boolean): void;
16
+ }
17
+ export interface AiCluster {
18
+ /** The SDK-free bridge handed to the (lazily imported) chat panel. */
19
+ readonly bridge: PptxAiBridge;
20
+ /** On-canvas scope: focus targets, pick mode, live tool-focus highlights. */
21
+ readonly panel: AiPanelController;
22
+ /** Whether the right-side chat panel is open (ribbon Sparkles toggle). */
23
+ panelOpen: boolean;
24
+ /** Element rings to draw on the active slide; empty when AI is disabled. */
25
+ readonly canvasHighlights: readonly AiCanvasHighlight[];
26
+ }
27
+ /**
28
+ * AI assistant wiring: the editor/deck bridge, the on-canvas focus controller,
29
+ * and the panel's open flag. Split out of `createViewerState` to keep that file
30
+ * under the repo's file-size budget.
31
+ *
32
+ * The bridge is built eagerly (it has no `ai`-SDK dependency, by design), but
33
+ * the panel component and the `@ai-sdk/svelte` + `ai` peers it pulls are only
34
+ * imported when the panel first opens. Every AI write funnels through
35
+ * `editor.commitSlides` so one proposal is ONE undoable history entry, exactly
36
+ * like a manual edit.
37
+ *
38
+ * Named `use*`, not `build*`: it registers a teardown `$effect` for the panel
39
+ * controller, so it must be called during component initialization.
40
+ */
41
+ export declare function useAiCluster(deps: AiClusterDeps): AiCluster;
42
+ //# sourceMappingURL=create-viewer-state-ai.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-viewer-state-ai.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/state/create-viewer-state-ai.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,uBAAuB,CAAC;IAChC,OAAO,EAAE,wBAAwB,CAAC;IAClC,sEAAsE;IACtE,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,SAAS;IACzB,sEAAsE;IACtE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,0EAA0E;IAC1E,SAAS,EAAE,OAAO,CAAC;IACnB,4EAA4E;IAC5E,QAAQ,CAAC,gBAAgB,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACxD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,CAmG3D"}
@@ -9,6 +9,12 @@ export interface CollabClusterDeps {
9
9
  viewer: ViewerState;
10
10
  editor: EditorState;
11
11
  options: CreateViewerStateOptions;
12
+ /**
13
+ * The live editable flag (not the raw host prop): autosave must disarm the
14
+ * moment an AI edit or Protected View flips editing, not only when the host
15
+ * re-renders with a new `editable`.
16
+ */
17
+ getEditable(): boolean;
12
18
  }
13
19
  export interface CollabCluster {
14
20
  collab: CollaborationController;
@@ -16,6 +22,13 @@ export interface CollabCluster {
16
22
  autosaveCtl: AutosaveController;
17
23
  readonly autosaveEnabled: boolean;
18
24
  setAutosaveEnabled(enabled: boolean): void;
25
+ /**
26
+ * Set the flag WITHOUT firing `onautosavetoggle`. The File > Options wiring
27
+ * needs this: it owns its own (mount-hydration-suppressed) notification, so
28
+ * routing through {@link setAutosaveEnabled} would double-fire the host
29
+ * callback on every dialog edit.
30
+ */
31
+ setAutosaveFlag(enabled: boolean): void;
19
32
  readonly autosaveActive: boolean;
20
33
  versionHistoryOpen: boolean;
21
34
  readonly signatureWarningOpen: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"create-viewer-state-collab.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/state/create-viewer-state-collab.svelte.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAE/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,wBAAwB,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,uBAAuB,CAAC;IAChC,OAAO,EAAE,yBAAyB,CAAC;IACnC,WAAW,EAAE,kBAAkB,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACvC,qBAAqB,IAAI,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,GAAG,aAAa,CA4FvE"}
1
+ {"version":3,"file":"create-viewer-state-collab.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/state/create-viewer-state-collab.svelte.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAE/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,wBAAwB,CAAC;IAClC;;;;OAIG;IACH,WAAW,IAAI,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,uBAAuB,CAAC;IAChC,OAAO,EAAE,yBAAyB,CAAC;IACnC,WAAW,EAAE,kBAAkB,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3C;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACvC,qBAAqB,IAAI,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,GAAG,aAAa,CA+FvE"}
@@ -0,0 +1,38 @@
1
+ import { ViewerMode } from 'pptx-viewer-shared';
2
+ import { CollaborationController } from '../collab';
3
+ import { EditorState } from '../editor/editor-state.svelte';
4
+ import { CreateViewerStateOptions } from './create-viewer-state-types';
5
+ import { PresentationLoader } from './presentation-loader.svelte';
6
+ import { ViewerState } from './viewer-state.svelte';
7
+ export interface ViewerDerivedDeps {
8
+ loader: PresentationLoader;
9
+ viewer: ViewerState;
10
+ editor: EditorState;
11
+ collab: CollaborationController;
12
+ options: CreateViewerStateOptions;
13
+ /** The live editable flag (not the raw host prop). */
14
+ getEditable(): boolean;
15
+ }
16
+ /** Layout / zoom / mode values every part of the chrome reads, as live getters. */
17
+ export interface ViewerDerived {
18
+ readonly scale: number;
19
+ readonly effectivePercent: number;
20
+ readonly displaySlides: EditorState['renderedSlides'];
21
+ readonly activeSlide: EditorState['renderedSlides'][number] | undefined;
22
+ readonly chromeVisible: boolean;
23
+ readonly editingActive: boolean;
24
+ readonly showRibbon: boolean;
25
+ readonly viewerMode: ViewerMode;
26
+ }
27
+ /**
28
+ * The viewer's derived view state (canvas scale, zoom percent, the rendered
29
+ * slide array, chrome/editing/ribbon visibility, the resolved mode) plus the
30
+ * `$effect`s that report the ones the host subscribes to. Split out of
31
+ * `createViewerState` to keep that file under the repo's file-size budget.
32
+ *
33
+ * Every value is returned as a getter, not a snapshot, so a consumer reading
34
+ * `derived.scale` outside an effect still tracks it. Named `use*`, not
35
+ * `build*`: it registers the host-notification effects.
36
+ */
37
+ export declare function useViewerDerived(deps: ViewerDerivedDeps): ViewerDerived;
38
+ //# sourceMappingURL=create-viewer-state-derived.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-viewer-state-derived.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/state/create-viewer-state-derived.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAE5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,uBAAuB,CAAC;IAChC,OAAO,EAAE,wBAAwB,CAAC;IAClC,sDAAsD;IACtD,WAAW,IAAI,OAAO,CAAC;CACvB;AAED,mFAAmF;AACnF,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;IACtD,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACxE,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CAChC;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,GAAG,aAAa,CAuEvE"}
@@ -1,10 +1,12 @@
1
1
  import { CollaborationController } from '../collab';
2
+ import { StageContextMenu } from '../components/props';
2
3
  import { EditorController } from '../editor/editor-controller.svelte';
3
4
  import { FindReplaceState } from '../editor/editor-find-replace.svelte';
4
5
  import { EditorState } from '../editor/editor-state.svelte';
5
6
  import { ChromeUiState } from './chrome-ui.svelte';
6
7
  import { CreateViewerStateOptions } from './create-viewer-state-types';
7
8
  import { PresentationLoader } from './presentation-loader.svelte';
9
+ import { ViewerOptionsState } from './viewer-options.svelte';
8
10
  import { ViewerParityUiState } from './viewer-parity-ui.svelte';
9
11
  import { ViewerState } from './viewer-state.svelte';
10
12
  export interface EditorUiClusterDeps {
@@ -15,28 +17,34 @@ export interface EditorUiClusterDeps {
15
17
  options: CreateViewerStateOptions;
16
18
  /** Effective canvas scale (main stage), or master-view scale when applicable. */
17
19
  getScale(): number;
20
+ /** The live editable flag (not the raw host prop). */
21
+ getEditable(): boolean;
22
+ /** Flip the live editable flag (Trust Center's Protected View on load). */
23
+ setEditable(editable: boolean): void;
24
+ /** Autosave flag + toggle, owned by the collaboration cluster built before this one. */
25
+ getAutosaveEnabled(): boolean;
26
+ setAutosaveEnabled(enabled: boolean): void;
18
27
  }
19
28
  export interface EditorUiCluster {
20
29
  parityUi: ViewerParityUiState;
21
30
  chromeUi: ChromeUiState;
31
+ optionsState: ViewerOptionsState;
22
32
  controller: EditorController;
23
33
  findReplace: FindReplaceState;
24
- stageContextMenu: {
25
- x: number;
26
- y: number;
27
- } | null;
34
+ stageContextMenu: StageContextMenu | null;
28
35
  }
29
36
  /**
30
37
  * The editing chrome cluster: view/print/annotation preferences
31
- * (`ViewerParityUiState`), side-panel open state (`ChromeUiState`), the
32
- * pointer/keyboard/history controller (`EditorController`), the ribbon's
33
- * Find & Replace panel state, and the load-pipeline wiring
34
- * (`useViewerEffects`, which needs `controller` to close open selections/
35
- * inline edits when `editable` flips off). Split out of `createViewerState`
36
- * to keep that file under the repo's file-size budget; built after the
37
- * collaboration cluster because `controller` reports cursor moves to
38
- * `collab.setCursor`. Named `use*`, not `build*`, because of the
39
- * `useViewerEffects` call.
38
+ * (`ViewerParityUiState`), the full File > Options model (`ViewerOptionsState`,
39
+ * published via context for the quick-access bar / ribbon / Options dialog),
40
+ * side-panel open state (`ChromeUiState`), the pointer/keyboard/history
41
+ * controller (`EditorController`), the ribbon's Find & Replace panel state, and
42
+ * the load-pipeline wiring (`useViewerEffects`, which needs `controller` to
43
+ * close open selections/inline edits when `editable` flips off). Split out of
44
+ * `createViewerState` to keep that file under the repo's file-size budget;
45
+ * built after the collaboration cluster because `controller` reports cursor
46
+ * moves to `collab.setCursor` and the options wiring drives its autosave flag.
47
+ * Named `use*`, not `build*`, because of the `use*` calls it makes.
40
48
  */
41
49
  export declare function useEditorUiCluster(deps: EditorUiClusterDeps): EditorUiCluster;
42
50
  //# sourceMappingURL=create-viewer-state-editor-ui.svelte.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-viewer-state-editor-ui.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/state/create-viewer-state-editor-ui.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,MAAM,WAAW,mBAAmB;IACnC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,uBAAuB,CAAC;IAChC,OAAO,EAAE,wBAAwB,CAAC;IAClC,iFAAiF;IACjF,QAAQ,IAAI,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,QAAQ,EAAE,aAAa,CAAC;IACxB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,gBAAgB,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAClD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG,eAAe,CA8D7E"}
1
+ {"version":3,"file":"create-viewer-state-editor-ui.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/state/create-viewer-state-editor-ui.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAIvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,MAAM,WAAW,mBAAmB;IACnC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,uBAAuB,CAAC;IAChC,OAAO,EAAE,wBAAwB,CAAC;IAClC,iFAAiF;IACjF,QAAQ,IAAI,MAAM,CAAC;IACnB,sDAAsD;IACtD,WAAW,IAAI,OAAO,CAAC;IACvB,2EAA2E;IAC3E,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACrC,wFAAwF;IACxF,kBAAkB,IAAI,OAAO,CAAC;IAC9B,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,QAAQ,EAAE,aAAa,CAAC;IACxB,YAAY,EAAE,kBAAkB,CAAC;IACjC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAC1C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG,eAAe,CAkG7E"}
@@ -1,5 +1,5 @@
1
1
  import { TextSegment } from 'pptx-viewer-core';
2
- import { MobileSheetKey } from 'pptx-viewer-shared';
2
+ import { FieldSubstitutionContext, MobileSheetKey } from 'pptx-viewer-shared';
3
3
  import { Translator } from '../../i18n/translator';
4
4
  import { EditorState } from '../editor/editor-state.svelte';
5
5
  import { ExportUiState } from '../export/export-ui.svelte';
@@ -15,6 +15,11 @@ export interface ExportNotesClusterDeps {
15
15
  getRootEl(): HTMLDivElement | undefined;
16
16
  /** Whether in-place editing is on (gates whether notes edits are history-tracked). */
17
17
  getEditable(): boolean;
18
+ /**
19
+ * Deck-level field-substitution context, so an exported slide resolves its
20
+ * slide-number / date / footer runs exactly like the on-screen stage does.
21
+ */
22
+ getFieldContext?(): FieldSubstitutionContext;
18
23
  onnotesupdate?: (notes: string) => void;
19
24
  }
20
25
  export interface ExportNotesCluster {
@@ -1 +1 @@
1
- {"version":3,"file":"create-viewer-state-export-notes.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/state/create-viewer-state-export-notes.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,sBAAsB;IACtC,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,CAAC,EAAE,UAAU,CAAC;IACd,aAAa,IAAI,OAAO,CAAC;IACzB,SAAS,IAAI,cAAc,GAAG,SAAS,CAAC;IACxC,sFAAsF;IACtF,WAAW,IAAI,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,kBAAkB;IAClC,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,iBAAiB,EAAE,cAAc,CAAC;IAC3C,aAAa,IAAI,IAAI,CAAC;IACtB,oBAAoB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IACjD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;CAC7D;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,sBAAsB,GAAG,kBAAkB,CAmDxF"}
1
+ {"version":3,"file":"create-viewer-state-export-notes.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/state/create-viewer-state-export-notes.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,sBAAsB;IACtC,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,CAAC,EAAE,UAAU,CAAC;IACd,aAAa,IAAI,OAAO,CAAC;IACzB,SAAS,IAAI,cAAc,GAAG,SAAS,CAAC;IACxC,sFAAsF;IACtF,WAAW,IAAI,OAAO,CAAC;IACvB;;;OAGG;IACH,eAAe,CAAC,IAAI,wBAAwB,CAAC;IAC7C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,kBAAkB;IAClC,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,iBAAiB,EAAE,cAAc,CAAC;IAC3C,aAAa,IAAI,IAAI,CAAC;IACtB,oBAAoB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IACjD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;CAC7D;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,sBAAsB,GAAG,kBAAkB,CAoDxF"}