pptx-svelte-viewer 1.3.0 → 2.0.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 (116) hide show
  1. package/CHANGELOG.md +446 -0
  2. package/README.md +175 -17
  3. package/dist/AiChatPanel-CssmoLYL.js +1110 -0
  4. package/dist/__vite-browser-external-DOmiXdGM.js +7 -0
  5. package/dist/{dist-JuzVOe21.js → dist-AHWCPEmj.js} +44997 -40276
  6. package/dist/export-DplwT6FC.js +96087 -0
  7. package/dist/i18n.d.ts +9 -7
  8. package/dist/i18n.js +1 -1
  9. package/dist/index.d.ts +6102 -4099
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +22 -22
  12. package/dist/pptx-svelte-viewer.css +1 -1
  13. package/dist/rolldown-runtime--_vEcKDh.js +29 -0
  14. package/dist/{translator-D4a_pxY4.js → translator-Ddi-liGk.js} +251 -7
  15. package/dist/viewer/ai/ai-bridge.d.ts +61 -0
  16. package/dist/viewer/ai/ai-bridge.d.ts.map +1 -0
  17. package/dist/viewer/ai/ai-history-persist.d.ts +13 -0
  18. package/dist/viewer/ai/ai-history-persist.d.ts.map +1 -0
  19. package/dist/viewer/ai/ai-log-export.d.ts +71 -0
  20. package/dist/viewer/ai/ai-log-export.d.ts.map +1 -0
  21. package/dist/viewer/ai/ai-panel-controller.svelte.d.ts +77 -0
  22. package/dist/viewer/ai/ai-panel-controller.svelte.d.ts.map +1 -0
  23. package/dist/viewer/ai/chat.svelte.d.ts +43 -0
  24. package/dist/viewer/ai/chat.svelte.d.ts.map +1 -0
  25. package/dist/viewer/ai/focus-targets.d.ts +36 -0
  26. package/dist/viewer/ai/focus-targets.d.ts.map +1 -0
  27. package/dist/viewer/ai/index.d.ts +11 -0
  28. package/dist/viewer/ai/index.d.ts.map +1 -0
  29. package/dist/viewer/collab/collaboration-deps.d.ts +23 -0
  30. package/dist/viewer/collab/collaboration-deps.d.ts.map +1 -0
  31. package/dist/viewer/collab/collaboration-remote-sync.d.ts +13 -0
  32. package/dist/viewer/collab/collaboration-remote-sync.d.ts.map +1 -1
  33. package/dist/viewer/collab/collaboration.svelte.d.ts +9 -21
  34. package/dist/viewer/collab/collaboration.svelte.d.ts.map +1 -1
  35. package/dist/viewer/collab/components/props.d.ts +12 -0
  36. package/dist/viewer/collab/components/props.d.ts.map +1 -1
  37. package/dist/viewer/collab/components/remote-selection.d.ts +29 -0
  38. package/dist/viewer/collab/components/remote-selection.d.ts.map +1 -0
  39. package/dist/viewer/collab/components/share-helpers.d.ts +7 -28
  40. package/dist/viewer/collab/components/share-helpers.d.ts.map +1 -1
  41. package/dist/viewer/collab/index.d.ts +1 -1
  42. package/dist/viewer/collab/index.d.ts.map +1 -1
  43. package/dist/viewer/components/props.d.ts +72 -2
  44. package/dist/viewer/components/props.d.ts.map +1 -1
  45. package/dist/viewer/components/ribbon/anchored-popup.d.ts +21 -0
  46. package/dist/viewer/components/ribbon/anchored-popup.d.ts.map +1 -0
  47. package/dist/viewer/components/ribbon/ribbon-types.d.ts +7 -0
  48. package/dist/viewer/components/ribbon/ribbon-types.d.ts.map +1 -1
  49. package/dist/viewer/components/typed-exports.d.ts +19 -0
  50. package/dist/viewer/components/typed-exports.d.ts.map +1 -0
  51. package/dist/viewer/editor/editor-controller-deps.d.ts +5 -0
  52. package/dist/viewer/editor/editor-controller-deps.d.ts.map +1 -1
  53. package/dist/viewer/editor/editor-slides-controller.d.ts +15 -0
  54. package/dist/viewer/editor/editor-slides-controller.d.ts.map +1 -1
  55. package/dist/viewer/editor/editor-state.svelte.d.ts +9 -0
  56. package/dist/viewer/editor/editor-state.svelte.d.ts.map +1 -1
  57. package/dist/viewer/export/export-ui.svelte.d.ts +5 -0
  58. package/dist/viewer/export/export-ui.svelte.d.ts.map +1 -1
  59. package/dist/viewer/index.d.ts +7893 -5277
  60. package/dist/viewer/index.d.ts.map +1 -1
  61. package/dist/viewer/index.js +392 -14
  62. package/dist/viewer/presentation/animation-playback-helpers.d.ts +43 -0
  63. package/dist/viewer/presentation/animation-playback-helpers.d.ts.map +1 -0
  64. package/dist/viewer/presentation/animation-playback.svelte.d.ts +50 -40
  65. package/dist/viewer/presentation/animation-playback.svelte.d.ts.map +1 -1
  66. package/dist/viewer/presentation/animation-sound.d.ts +20 -0
  67. package/dist/viewer/presentation/animation-sound.d.ts.map +1 -0
  68. package/dist/viewer/presentation/apply-animation-styles.d.ts +6 -5
  69. package/dist/viewer/presentation/apply-animation-styles.d.ts.map +1 -1
  70. package/dist/viewer/presentation/index.d.ts +2 -1
  71. package/dist/viewer/presentation/index.d.ts.map +1 -1
  72. package/dist/viewer/presentation/keyframes.d.ts +9 -0
  73. package/dist/viewer/presentation/keyframes.d.ts.map +1 -1
  74. package/dist/viewer/presentation/presentation-controller.svelte.d.ts +32 -10
  75. package/dist/viewer/presentation/presentation-controller.svelte.d.ts.map +1 -1
  76. package/dist/viewer/presentation/presentation-effects.svelte.d.ts +6 -2
  77. package/dist/viewer/presentation/presentation-effects.svelte.d.ts.map +1 -1
  78. package/dist/viewer/presentation/presentation-triggers.d.ts +18 -0
  79. package/dist/viewer/presentation/presentation-triggers.d.ts.map +1 -0
  80. package/dist/viewer/presentation/transition-overlay.d.ts +23 -0
  81. package/dist/viewer/presentation/transition-overlay.d.ts.map +1 -0
  82. package/dist/viewer/render/smartart-view.d.ts +7 -2
  83. package/dist/viewer/render/smartart-view.d.ts.map +1 -1
  84. package/dist/viewer/state/create-viewer-state-collab.svelte.d.ts +37 -0
  85. package/dist/viewer/state/create-viewer-state-collab.svelte.d.ts.map +1 -0
  86. package/dist/viewer/state/create-viewer-state-editor-ui.svelte.d.ts +42 -0
  87. package/dist/viewer/state/create-viewer-state-editor-ui.svelte.d.ts.map +1 -0
  88. package/dist/viewer/state/create-viewer-state-export-notes.svelte.d.ts +36 -0
  89. package/dist/viewer/state/create-viewer-state-export-notes.svelte.d.ts.map +1 -0
  90. package/dist/viewer/state/create-viewer-state-presentation.svelte.d.ts +30 -0
  91. package/dist/viewer/state/create-viewer-state-presentation.svelte.d.ts.map +1 -0
  92. package/dist/viewer/state/create-viewer-state-types.d.ts +134 -0
  93. package/dist/viewer/state/create-viewer-state-types.d.ts.map +1 -0
  94. package/dist/viewer/state/create-viewer-state.svelte.d.ts +30 -0
  95. package/dist/viewer/state/create-viewer-state.svelte.d.ts.map +1 -0
  96. package/dist/viewer/state/index.d.ts +2 -0
  97. package/dist/viewer/state/index.d.ts.map +1 -1
  98. package/dist/viewer/state/presentation-element-states-context.d.ts +37 -0
  99. package/dist/viewer/state/presentation-element-states-context.d.ts.map +1 -0
  100. package/dist/viewer/state/render-context.d.ts +3 -1
  101. package/dist/viewer/state/render-context.d.ts.map +1 -1
  102. package/dist/viewer/state/viewer-effects.svelte.d.ts +8 -0
  103. package/dist/viewer/state/viewer-effects.svelte.d.ts.map +1 -1
  104. package/dist/viewer/state/viewer-options-context.d.ts +10 -0
  105. package/dist/viewer/state/viewer-options-context.d.ts.map +1 -0
  106. package/dist/viewer/state/viewer-options-wiring.svelte.d.ts +31 -0
  107. package/dist/viewer/state/viewer-options-wiring.svelte.d.ts.map +1 -0
  108. package/dist/viewer/state/viewer-options.svelte.d.ts +55 -0
  109. package/dist/viewer/state/viewer-options.svelte.d.ts.map +1 -0
  110. package/dist/viewer/style/element-style.d.ts +3 -3
  111. package/dist/viewer/style/element-style.d.ts.map +1 -1
  112. package/dist/viewer/types.d.ts +16 -5
  113. package/dist/viewer/types.d.ts.map +1 -1
  114. package/dist/{y-webrtc-BdH40MC6.js → y-webrtc-BiViqyU2.js} +1079 -1101
  115. package/package.json +18 -5
  116. package/dist/export-D7pIn3W2.js +0 -38286
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/viewer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EACX,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACnB,2BAA2B,GAC3B,MAAM,UAAU,CAAC;AAClB,OAAO,EACN,oBAAoB,EACpB,yBAAyB,EACzB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACpB,MAAM,UAAU,CAAC;AAClB,YAAY,EACX,UAAU,EACV,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,GACX,MAAM,SAAS,CAAC;AACjB,OAAO,EACN,eAAe,EACf,QAAQ,EACR,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,cAAc,GACd,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/viewer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAI/C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChF,YAAY,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,YAAY,EACX,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACnB,2BAA2B,GAC3B,MAAM,UAAU,CAAC;AAClB,OAAO,EACN,oBAAoB,EACpB,yBAAyB,EACzB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACpB,MAAM,UAAU,CAAC;AAClB,YAAY,EACX,UAAU,EACV,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,GACX,MAAM,SAAS,CAAC;AACjB,YAAY,EACX,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,iBAAiB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,EACN,eAAe,EACf,iBAAiB,EACjB,QAAQ,EACR,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,cAAc,GACd,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC"}
@@ -1,16 +1,394 @@
1
- import { a as o, c as a, d as s, f as t, i as r, l, n as i, o as S, p as d, r as n, s as p, t as v, u as x } from "../export-D7pIn3W2.js";
1
+ import { A as M, B as T, C as ge, D as P, E as F, G as R, H as U, M as H, O, R as W, S as ce, T as D, U as V, V as I, W as N, _, a as de, at as z, b as ue, c as B, d as Se, f as ve, g as k, h as G, it as K, j as $, k as q, l as pe, m as L, nt as Z, o as j, p as fe, rt as J, s as Q, t as he, u as X, v as Y, w as me, x as be, y as ee, z as te } from "../export-DplwT6FC.js";
2
+ import * as e from "svelte/internal/client";
3
+ import { onDestroy as re, onMount as ne } from "svelte";
4
+ var Ce = H, Ee = P, Ae = O;
5
+ function oe(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 K({
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
+ Z({
22
+ collab: c,
23
+ getCurrentSlide: () => r.current,
24
+ getSelectedElementId: () => i.selectedElementId,
25
+ goTo: (u) => r.goTo(u)
26
+ });
27
+ const l = new J(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 D({
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 ae(t) {
80
+ const { loader: a, editor: r, viewer: i, collab: n, options: g } = t, c = new L(r), l = new G();
81
+ V({
82
+ navigateToZoomTarget: (o) => i.goTo(o),
83
+ getSlides: () => r.renderedSlides
84
+ });
85
+ let s = e.state(null);
86
+ const d = new U(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 T({
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 se(t) {
136
+ const { editor: a, loader: r, viewer: i } = t, n = ee({
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 ie(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 } = j({
199
+ getRootEl: t.getRootEl,
200
+ viewer: r,
201
+ controller: g,
202
+ getEditingActive: t.getEditingActive,
203
+ presentation: c
204
+ });
205
+ return {
206
+ presentation: c,
207
+ onFullscreenToggle: s,
208
+ onFullscreenChange: d,
209
+ onKeydown: v
210
+ };
211
+ }
212
+ function xe(t) {
213
+ z(t.t), R(t.getSmartArt3D);
214
+ const a = new k();
215
+ N({
216
+ getColorScheme: () => a.colorScheme,
217
+ getTableStyleMap: () => a.tableStyleMap,
218
+ getFontScheme: () => a.presentationTheme?.fontScheme
219
+ });
220
+ const r = new B();
221
+ let i = e.state(!1), n = e.state(e.proxy(Date.now()));
222
+ const g = new M({
223
+ getSource: t.getSource,
224
+ getSlideIndex: () => r.current,
225
+ onAudienceSlide: (f) => r.goTo(f),
226
+ onAudienceExit: () => r.isFullscreen = !1
227
+ });
228
+ ne(() => {
229
+ g.connect(), g.isAudience && (r.isFullscreen = !0);
230
+ }), re(() => g.dispose()), e.user_effect(() => {
231
+ g.sync(r.current);
232
+ });
233
+ function c() {
234
+ e.set(n, Date.now(), !0), e.set(i, !0);
235
+ }
236
+ const l = new I({
237
+ getCurrent: () => r.current,
238
+ getHandler: () => a.handler,
239
+ onChange: () => {
240
+ t.onchange?.(), l.save().then((f) => t.oncontentchange?.(f));
241
+ }
242
+ });
243
+ te(W({
244
+ loader: a,
245
+ editor: l
246
+ }));
247
+ const s = oe({
248
+ loader: a,
249
+ viewer: r,
250
+ editor: l,
251
+ options: t
252
+ }), d = ae({
253
+ loader: a,
254
+ editor: l,
255
+ viewer: r,
256
+ collab: s.collab,
257
+ options: t,
258
+ getScale: () => e.get(o)
259
+ }), v = e.derived(() => X(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), w = 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");
260
+ 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));
261
+ const m = ie({
262
+ editor: l,
263
+ viewer: r,
264
+ loader: a,
265
+ parityUi: d.parityUi,
266
+ controller: d.controller,
267
+ getEditingActive: () => e.get(w),
268
+ getStageHolderEl: t.getStageHolderEl,
269
+ getRootEl: t.getRootEl
270
+ }), p = se({
271
+ editor: l,
272
+ loader: a,
273
+ viewer: r,
274
+ t: t.t,
275
+ getSmartArt3D: t.getSmartArt3D,
276
+ getRootEl: t.getRootEl,
277
+ getEditable: t.getEditable,
278
+ onnotesupdate: t.onnotesupdate
279
+ }), b = F(l), x = Y(p.exportWiring.controller);
280
+ function y() {
281
+ d.controller.destroy(), s.collab.stop(), p.exportWiring.destroy(), a.dispose();
282
+ }
283
+ return {
284
+ loader: a,
285
+ viewer: r,
286
+ editor: l,
287
+ controller: d.controller,
288
+ parityUi: d.parityUi,
289
+ chromeUi: d.chromeUi,
290
+ findReplace: d.findReplace,
291
+ collab: s.collab,
292
+ dialogs: s.dialogs,
293
+ autosaveCtl: s.autosaveCtl,
294
+ presentation: m.presentation,
295
+ presenterSession: g,
296
+ exportWiring: p.exportWiring,
297
+ exportUi: p.exportUi,
298
+ t: t.t,
299
+ editingApi: b,
300
+ exportingApi: x,
301
+ get scale() {
302
+ return e.get(o);
303
+ },
304
+ get effectivePercent() {
305
+ return e.get(S);
306
+ },
307
+ get displaySlides() {
308
+ return e.get(h);
309
+ },
310
+ get activeSlide() {
311
+ return e.get(u);
312
+ },
313
+ get chromeVisible() {
314
+ return e.get(E);
315
+ },
316
+ get editingActive() {
317
+ return e.get(w);
318
+ },
319
+ get showRibbon() {
320
+ return e.get(A);
321
+ },
322
+ get viewerMode() {
323
+ return e.get(C);
324
+ },
325
+ get autosaveActive() {
326
+ return s.autosaveActive;
327
+ },
328
+ get autosaveEnabled() {
329
+ return s.autosaveEnabled;
330
+ },
331
+ setAutosaveEnabled: s.setAutosaveEnabled,
332
+ get presenterMode() {
333
+ return e.get(i);
334
+ },
335
+ set presenterMode(f) {
336
+ e.set(i, f, !0);
337
+ },
338
+ get presenterStartedAt() {
339
+ return e.get(n);
340
+ },
341
+ get stageContextMenu() {
342
+ return d.stageContextMenu;
343
+ },
344
+ set stageContextMenu(f) {
345
+ d.stageContextMenu = f;
346
+ },
347
+ get activeMobileSheet() {
348
+ return p.activeMobileSheet;
349
+ },
350
+ setActiveMobileSheet: p.setActiveMobileSheet,
351
+ get notesExpanded() {
352
+ return p.notesExpanded;
353
+ },
354
+ get versionHistoryOpen() {
355
+ return s.versionHistoryOpen;
356
+ },
357
+ set versionHistoryOpen(f) {
358
+ s.versionHistoryOpen = f;
359
+ },
360
+ get signatureWarningOpen() {
361
+ return s.signatureWarningOpen;
362
+ },
363
+ enterPresenterView: c,
364
+ closeSignatureWarning: s.closeSignatureWarning,
365
+ onNotesToggle: p.onNotesToggle,
366
+ onNotesCommit: p.onNotesCommit,
367
+ onFullscreenToggle: m.onFullscreenToggle,
368
+ onFullscreenChange: m.onFullscreenChange,
369
+ onKeydown: m.onKeydown,
370
+ downloadPptx: b.downloadPptx,
371
+ downloadAs: b.downloadAs,
372
+ destroy: y
373
+ };
374
+ }
2
375
  export {
3
- v as PowerPointViewer,
4
- a as PresentationLoader,
5
- i as ViewerState,
6
- n as clampSlideIndex,
7
- l as exportAllSlidesToSvg,
8
- x as exportAllSlidesToSvgBlobs,
9
- s as exportSlideAsSvg,
10
- t as exportSlideToSvg,
11
- d as exportSlideToSvgBlob,
12
- r as fitScale,
13
- o as resolveNavigationKey,
14
- S as zoomInPercent,
15
- p as zoomOutPercent
376
+ he as PowerPointViewer,
377
+ k as PresentationLoader,
378
+ Ce as Ribbon,
379
+ Ae as SlideCanvas,
380
+ B as ViewerState,
381
+ Ee as ViewerToolbar,
382
+ pe as clampSlideIndex,
383
+ de as createSvelteAiBridge,
384
+ xe as createViewerState,
385
+ ue as exportAllSlidesToSvg,
386
+ be as exportAllSlidesToSvgBlobs,
387
+ ce as exportSlideAsSvg,
388
+ ge as exportSlideToSvg,
389
+ me as exportSlideToSvgBlob,
390
+ X as fitScale,
391
+ Se as resolveNavigationKey,
392
+ ve as zoomInPercent,
393
+ fe as zoomOutPercent
16
394
  };
@@ -0,0 +1,43 @@
1
+ import { PresentationAnimationController, ElementAnimationState, TimelineClickGroup } from 'pptx-viewer-shared';
2
+ /** Updater over the element-state map (React `setState`-compatible signature). */
3
+ export type StatesSetter = (updater: (prev: Map<string, ElementAnimationState>) => Map<string, ElementAnimationState>) => void;
4
+ /** Mutable handle holding the in-flight `requestAnimationFrame` id (or null). */
5
+ export interface BuildRafHandle {
6
+ current: number | null;
7
+ }
8
+ /** Everything the step / build / auto-advance helpers need from the playback. */
9
+ export interface PlaybackContext {
10
+ setStates: StatesSetter;
11
+ /** Timer ids collected here so the playback can clear them on slide change. */
12
+ timers: number[];
13
+ buildHandle: BuildRafHandle;
14
+ /** Host-provided action-sound player; falls back to the local audio element. */
15
+ onPlayActionSound?: (soundPath: string) => void;
16
+ /** Root element to scope media-command target lookups to (the slide frame). */
17
+ frameRoot?: () => HTMLElement | null;
18
+ }
19
+ /**
20
+ * Apply a click-group's steps onto the element-state map: fire sound / media
21
+ * commands, set each step's initial visibility + CSS animation, then schedule
22
+ * cleanup timers to clear the animation (and hide exits) once each step ends.
23
+ * Mirrors the Vue / React `applyAnimationGroupSteps`.
24
+ */
25
+ export declare function applyAnimationGroupSteps(group: TimelineClickGroup, ctx: PlaybackContext): void;
26
+ /** Cancel any in-flight build RAF and clear the handle. */
27
+ export declare function cancelBuildReveal(handle: BuildRafHandle): void;
28
+ /**
29
+ * Ramp a click-group's staged-build `progress` from 0 -> 1 via
30
+ * requestAnimationFrame, merging each build element's `build` descriptor onto the
31
+ * element states each frame. No-op when the group carries no build step, so
32
+ * ordinary click-advance is unchanged. Mirrors the Vue / React `driveBuildReveal`.
33
+ */
34
+ export declare function driveBuildReveal(controller: PresentationAnimationController, group: TimelineClickGroup, ctx: PlaybackContext): void;
35
+ /** Apply a group's steps and start its staged-build reveal (if any). */
36
+ export declare function playGroup(controller: PresentationAnimationController, group: TimelineClickGroup, ctx: PlaybackContext): void;
37
+ /**
38
+ * After a click-group plays, schedule the next group when it should auto-advance
39
+ * (withPrevious / afterPrevious), chaining through consecutive auto-advance
40
+ * groups. Mirrors the Vue / React `scheduleAutoAdvanceChain`.
41
+ */
42
+ export declare function scheduleAutoAdvanceChain(controller: PresentationAnimationController, ctx: PlaybackContext): void;
43
+ //# sourceMappingURL=animation-playback-helpers.d.ts.map
@@ -0,0 +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,59 +1,69 @@
1
- import { PptxElementAnimation } from 'pptx-viewer-core';
2
- import { AnimationClickGroup, CSSProperties } from 'pptx-viewer-shared';
1
+ import { PptxSlide } from 'pptx-viewer-core';
2
+ import { ElementAnimationState } from 'pptx-viewer-shared';
3
3
  /**
4
- * `AnimationPlayback`: reactive, click-stepped element-animation playback for
5
- * the Svelte binding's presentation mode. The Svelte-runes analogue of the Vue
6
- * `useAnimationPlayback` composable, kept out of the SFC so it is unit-testable
7
- * without a DOM.
4
+ * `AnimationPlayback`: native-timing (`p:timing`) animation playback for the
5
+ * Svelte binding's presentation mode, driven by the shared, framework-agnostic
6
+ * {@link PresentationAnimationController}. The runes analogue of the Vue
7
+ * `useAnimationPlayback` composable, kept out of the SFC so it is unit-testable.
8
8
  *
9
- * A slide carries an ordered list of {@link PptxElementAnimation}s. PowerPoint
10
- * groups them into "click groups": an `onClick` / `onShapeClick` / `onHover`
11
- * animation starts a new group, while `withPrevious` / `afterPrevious` fold
12
- * into the group in progress. Advancing the presentation one step reveals one
13
- * more click group; only when every group is revealed does the slide advance.
9
+ * This replaces the older preset (`PptxElementAnimation`) click-group model for
10
+ * the slide show: the controller builds a timeline engine from the slide's
11
+ * `nativeAnimations` (expanding staged text builds), which can represent native
12
+ * staged chart / SmartArt builds (`p:bldChart` / `p:bldDgm`) and colour
13
+ * animations (`p:animClr`) that the preset model could not. It mirrors the Vue /
14
+ * React bindings.
14
15
  *
15
- * All of the preset -> CSS mapping and delay chaining is delegated to the
16
- * framework-agnostic {@link buildClickGroups} / {@link revealedElementStyles} /
17
- * {@link pendingElementStyles} helpers in `pptx-viewer-shared`; this class only
18
- * owns the reactive step and exposes the resolved styles as plain getters
19
- * (reactive when read inside a `$derived` / `$effect` / template).
16
+ * The class owns the reactive per-element state map, the keyframes CSS, and the
17
+ * interactive / hover trigger-shape id sets; the controller stays pure. The
18
+ * clock (timers, requestAnimationFrame) + DOM effects live in
19
+ * {@link module:presentation/animation-playback-helpers}.
20
+ *
21
+ * NOTE: the editor / inspector animation PREVIEW still uses the older shared
22
+ * `buildClickGroups` model (see `AnimationsTab` / `editor-animation-controller`);
23
+ * this class is only the running slide show.
20
24
  */
21
25
  export interface AnimationPlaybackDeps {
22
- /** The current slide's animations, in document/timeline order. */
23
- getAnimations(): PptxElementAnimation[];
26
+ /** The current slide to build the native-animation timeline for. */
27
+ getSlide(): PptxSlide | undefined;
24
28
  /** Presentation-level switch parsed from `p:showPr`. */
25
29
  getShowWithAnimation?(): boolean | undefined;
30
+ /** Host-provided action-sound player (resolves + plays embedded sounds). */
31
+ onPlayActionSound?: (soundPath: string) => void;
32
+ /** Root element to scope media-command (`p:cmd`) target lookups to. */
33
+ frameRoot?: () => HTMLElement | null;
26
34
  }
27
35
  export declare class AnimationPlayback {
28
36
  #private;
29
37
  constructor(deps: AnimationPlaybackDeps);
30
- /** The current slide's click groups (recomputed from the live animations). */
31
- get groups(): AnimationClickGroup[];
32
- /** Number of click groups on the current slide (i.e. how many advance steps). */
33
- get groupCount(): number;
34
- /** The current playback step (revealed click-group count). */
35
- get step(): number;
36
- /** True once every click group has been revealed. */
38
+ /** Reactive per-element native-animation state (visibility, build, colour). */
39
+ get elementStates(): Map<string, ElementAnimationState>;
40
+ /** The per-slide `@keyframes` CSS to inject once per slide. */
41
+ get keyframesCss(): string;
42
+ /** Shape ids that trigger an interactive (`onShapeClick`) sequence. */
43
+ get interactiveTriggerShapeIds(): ReadonlySet<string>;
44
+ /** Shape ids that trigger a hover (`onHover`) sequence. */
45
+ get hoverTriggerShapeIds(): ReadonlySet<string>;
46
+ /** True once every main-timeline click-group has been revealed. */
37
47
  get isComplete(): boolean;
48
+ /** Clear all pending timers + the in-flight staged-build RAF. */
49
+ clearTimers(): void;
38
50
  /**
39
- * `elementId -> CSS` for every animation in the revealed groups (with the
40
- * correct cumulative delay for sequential `afterPrevious` chains).
41
- */
42
- get elementStyles(): Map<string, CSSProperties>;
43
- /**
44
- * `elementId -> hidden CSS` for entrances not yet revealed, so the host can
45
- * pre-seed them (hide until their group plays) without a flash.
51
+ * Rebuild the controller for the current slide and replay from the start. The
52
+ * controller builds the timeline engine (expanding text-build animations) and
53
+ * derives keyframes CSS, trigger-shape ids, and the tracked element id list.
46
54
  */
47
- get pendingStyles(): Map<string, CSSProperties>;
55
+ reset(): void;
48
56
  /**
49
- * Reveal the next click group. Returns `true` if a group was revealed,
50
- * `false` when playback was already complete (so the caller can fall through
51
- * to slide navigation).
57
+ * Reveal the next click-group. Returns `true` if a group was revealed, `false`
58
+ * when playback is complete or animations are disabled (so the caller can fall
59
+ * through to slide navigation).
52
60
  */
53
61
  advance(): boolean;
54
- /** Reveal every click group at once (jump to the slide's final build state). */
55
- play(): void;
56
- /** Reset playback to before the first click group. */
57
- reset(): void;
62
+ /** Play an interactive shape's sequence; `true` when it triggered one. */
63
+ handleInteractiveShapeClick(shapeId: string): boolean;
64
+ /** Play a hover shape's sequence; `true` when it triggered one. */
65
+ handleHoverStart(shapeId: string): boolean;
66
+ /** Reset a hover shape's sequence so the next hover replays it. */
67
+ handleHoverEnd(shapeId: string): void;
58
68
  }
59
69
  //# sourceMappingURL=animation-playback.svelte.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"animation-playback.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/presentation/animation-playback.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAO7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE7E;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,qBAAqB;IACrC,kEAAkE;IAClE,aAAa,IAAI,oBAAoB,EAAE,CAAC;IACxC,wDAAwD;IACxD,oBAAoB,CAAC,IAAI,OAAO,GAAG,SAAS,CAAC;CAC7C;AAED,qBAAa,iBAAiB;;gBAKjB,IAAI,EAAE,qBAAqB;IAIvC,8EAA8E;IAC9E,IAAI,MAAM,IAAI,mBAAmB,EAAE,CAKlC;IAED,iFAAiF;IACjF,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,8DAA8D;IAC9D,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,qDAAqD;IACrD,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;;OAGG;IACH,IAAI,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAE9C;IAED;;;OAGG;IACH,IAAI,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAE9C;IAED;;;;OAIG;IACH,OAAO,IAAI,OAAO;IASlB,gFAAgF;IAChF,IAAI,IAAI,IAAI;IAIZ,sDAAsD;IACtD,KAAK,IAAI,IAAI;CAGb"}
1
+ {"version":3,"file":"animation-playback.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/presentation/animation-playback.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAShE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,qBAAqB;IACrC,oEAAoE;IACpE,QAAQ,IAAI,SAAS,GAAG,SAAS,CAAC;IAClC,wDAAwD;IACxD,oBAAoB,CAAC,IAAI,OAAO,GAAG,SAAS,CAAC;IAC7C,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;CACrC;AAED,qBAAa,iBAAiB;;gBAkBjB,IAAI,EAAE,qBAAqB;IAavC,+EAA+E;IAC/E,IAAI,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAEtD;IAED,+DAA+D;IAC/D,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,uEAAuE;IACvE,IAAI,0BAA0B,IAAI,WAAW,CAAC,MAAM,CAAC,CAEpD;IAED,2DAA2D;IAC3D,IAAI,oBAAoB,IAAI,WAAW,CAAC,MAAM,CAAC,CAE9C;IAED,mEAAmE;IACnE,IAAI,UAAU,IAAI,OAAO,CAExB;IAUD,iEAAiE;IACjE,WAAW,IAAI,IAAI;IAQnB;;;;OAIG;IACH,KAAK,IAAI,IAAI;IAuCb;;;;OAIG;IACH,OAAO,IAAI,OAAO;IAclB,0EAA0E;IAC1E,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAYrD,mEAAmE;IACnE,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAkB1C,mEAAmE;IACnE,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAKrC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * HTML5 audio playback for native-animation sound actions (`p:snd` / `p:stSnd`),
3
+ * ported from the Vue / React bindings' `animation-sound`.
4
+ *
5
+ * A single shared audio element means only one animation sound plays at a time,
6
+ * matching PowerPoint: a new sound replaces any in-progress animation sound.
7
+ *
8
+ * @module presentation/animation-sound
9
+ */
10
+ /**
11
+ * Play a sound file during animation. Stops any previously playing animation
12
+ * sound first. Silently ignores autoplay restrictions and unplayable sources.
13
+ *
14
+ * @param soundUrl - Blob URL or data URL of the sound file.
15
+ * @param loop - When true, repeat the sound until it is stopped or replaced.
16
+ */
17
+ export declare function playAnimationSound(soundUrl: string, loop?: boolean): void;
18
+ /** Stop any currently playing animation sound. */
19
+ export declare function stopAnimationSound(): void;
20
+ //# sourceMappingURL=animation-sound.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animation-sound.d.ts","sourceRoot":"","sources":["../../../src/viewer/presentation/animation-sound.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,IAAI,CAUvE;AAED,kDAAkD;AAClD,wBAAgB,kBAAkB,IAAI,IAAI,CAMzC"}
@@ -1,8 +1,9 @@
1
- import { CSSProperties } from 'pptx-viewer-shared';
1
+ import { ElementAnimationState } from 'pptx-viewer-shared';
2
2
  /**
3
- * Apply the revealed / pending build styles to every element under `root`.
4
- * `revealed` wins over `pending` for a given id (a revealed group's running
5
- * effect supersedes a not-yet-played entrance's hidden state).
3
+ * Apply the tracked element states to every `[data-element-id]` node under
4
+ * `root`. Elements without a state get their managed properties cleared, so a
5
+ * previously-hidden entrance becomes visible once its state is dropped (e.g. on
6
+ * slide change / reset).
6
7
  */
7
- export declare function applyAnimationStyles(root: HTMLElement, revealed: Map<string, CSSProperties>, pending: Map<string, CSSProperties>): void;
8
+ export declare function applyAnimationStyles(root: HTMLElement, states: Map<string, ElementAnimationState>, interactiveIds?: ReadonlySet<string>, hoverIds?: ReadonlySet<string>): void;
8
9
  //# sourceMappingURL=apply-animation-styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"apply-animation-styles.d.ts","sourceRoot":"","sources":["../../../src/viewer/presentation/apply-animation-styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA6CxD;;;;GAIG;AACH,wBAAgB,oBAAoB,CACnC,IAAI,EAAE,WAAW,EACjB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EACpC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GACjC,IAAI,CAQN"}
1
+ {"version":3,"file":"apply-animation-styles.d.ts","sourceRoot":"","sources":["../../../src/viewer/presentation/apply-animation-styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAsBhE;;;;;GAKG;AACH,wBAAgB,oBAAoB,CACnC,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAC1C,cAAc,GAAE,WAAW,CAAC,MAAM,CAAa,EAC/C,QAAQ,GAAE,WAAW,CAAC,MAAM,CAAa,GACvC,IAAI,CAWN"}
@@ -7,5 +7,6 @@ export type { PresentationControllerDeps, TransitionState } from './presentation
7
7
  export { PresenterSession } from './presenter-session.svelte';
8
8
  export { usePresentationEffects } from './presentation-effects.svelte';
9
9
  export type { PresentationEffectsDeps } from './presentation-effects.svelte';
10
- export { default as PresentationTransitionOverlay } from './PresentationTransitionOverlay.svelte';
10
+ export { PresentationTransitionOverlay } from './transition-overlay';
11
+ export type { PresentationTransitionOverlayProps } from './transition-overlay';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/viewer/presentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,YAAY,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,YAAY,EAAE,0BAA0B,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,wCAAwC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/viewer/presentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,YAAY,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,YAAY,EAAE,0BAA0B,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAG7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AACrE,YAAY,EAAE,kCAAkC,EAAE,MAAM,sBAAsB,CAAC"}