pptx-svelte-viewer 1.4.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 (111) hide show
  1. package/CHANGELOG.md +440 -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-DZ-fjucV.js → dist-AHWCPEmj.js} +44226 -40236
  6. package/dist/export-DplwT6FC.js +96087 -0
  7. package/dist/i18n.js +1 -1
  8. package/dist/index.d.ts +2193 -99
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +22 -22
  11. package/dist/pptx-svelte-viewer.css +1 -1
  12. package/dist/rolldown-runtime--_vEcKDh.js +29 -0
  13. package/dist/{translator-D4a_pxY4.js → translator-Ddi-liGk.js} +251 -7
  14. package/dist/viewer/ai/ai-bridge.d.ts +61 -0
  15. package/dist/viewer/ai/ai-bridge.d.ts.map +1 -0
  16. package/dist/viewer/ai/ai-history-persist.d.ts +13 -0
  17. package/dist/viewer/ai/ai-history-persist.d.ts.map +1 -0
  18. package/dist/viewer/ai/ai-log-export.d.ts +71 -0
  19. package/dist/viewer/ai/ai-log-export.d.ts.map +1 -0
  20. package/dist/viewer/ai/ai-panel-controller.svelte.d.ts +77 -0
  21. package/dist/viewer/ai/ai-panel-controller.svelte.d.ts.map +1 -0
  22. package/dist/viewer/ai/chat.svelte.d.ts +43 -0
  23. package/dist/viewer/ai/chat.svelte.d.ts.map +1 -0
  24. package/dist/viewer/ai/focus-targets.d.ts +36 -0
  25. package/dist/viewer/ai/focus-targets.d.ts.map +1 -0
  26. package/dist/viewer/ai/index.d.ts +11 -0
  27. package/dist/viewer/ai/index.d.ts.map +1 -0
  28. package/dist/viewer/collab/collaboration-deps.d.ts +23 -0
  29. package/dist/viewer/collab/collaboration-deps.d.ts.map +1 -0
  30. package/dist/viewer/collab/collaboration-remote-sync.d.ts +13 -0
  31. package/dist/viewer/collab/collaboration-remote-sync.d.ts.map +1 -1
  32. package/dist/viewer/collab/collaboration.svelte.d.ts +9 -21
  33. package/dist/viewer/collab/collaboration.svelte.d.ts.map +1 -1
  34. package/dist/viewer/collab/components/props.d.ts +12 -0
  35. package/dist/viewer/collab/components/props.d.ts.map +1 -1
  36. package/dist/viewer/collab/components/remote-selection.d.ts +29 -0
  37. package/dist/viewer/collab/components/remote-selection.d.ts.map +1 -0
  38. package/dist/viewer/collab/components/share-helpers.d.ts +7 -28
  39. package/dist/viewer/collab/components/share-helpers.d.ts.map +1 -1
  40. package/dist/viewer/collab/index.d.ts +1 -1
  41. package/dist/viewer/collab/index.d.ts.map +1 -1
  42. package/dist/viewer/components/props.d.ts +66 -2
  43. package/dist/viewer/components/props.d.ts.map +1 -1
  44. package/dist/viewer/components/ribbon/ribbon-types.d.ts +7 -0
  45. package/dist/viewer/components/ribbon/ribbon-types.d.ts.map +1 -1
  46. package/dist/viewer/components/typed-exports.d.ts +19 -0
  47. package/dist/viewer/components/typed-exports.d.ts.map +1 -0
  48. package/dist/viewer/editor/editor-controller-deps.d.ts +5 -0
  49. package/dist/viewer/editor/editor-controller-deps.d.ts.map +1 -1
  50. package/dist/viewer/editor/editor-state.svelte.d.ts +6 -0
  51. package/dist/viewer/editor/editor-state.svelte.d.ts.map +1 -1
  52. package/dist/viewer/export/export-ui.svelte.d.ts +5 -0
  53. package/dist/viewer/export/export-ui.svelte.d.ts.map +1 -1
  54. package/dist/viewer/index.d.ts +2781 -31
  55. package/dist/viewer/index.d.ts.map +1 -1
  56. package/dist/viewer/index.js +392 -14
  57. package/dist/viewer/presentation/animation-playback-helpers.d.ts +43 -0
  58. package/dist/viewer/presentation/animation-playback-helpers.d.ts.map +1 -0
  59. package/dist/viewer/presentation/animation-playback.svelte.d.ts +50 -40
  60. package/dist/viewer/presentation/animation-playback.svelte.d.ts.map +1 -1
  61. package/dist/viewer/presentation/animation-sound.d.ts +20 -0
  62. package/dist/viewer/presentation/animation-sound.d.ts.map +1 -0
  63. package/dist/viewer/presentation/apply-animation-styles.d.ts +6 -5
  64. package/dist/viewer/presentation/apply-animation-styles.d.ts.map +1 -1
  65. package/dist/viewer/presentation/index.d.ts +2 -1
  66. package/dist/viewer/presentation/index.d.ts.map +1 -1
  67. package/dist/viewer/presentation/keyframes.d.ts +9 -0
  68. package/dist/viewer/presentation/keyframes.d.ts.map +1 -1
  69. package/dist/viewer/presentation/presentation-controller.svelte.d.ts +32 -10
  70. package/dist/viewer/presentation/presentation-controller.svelte.d.ts.map +1 -1
  71. package/dist/viewer/presentation/presentation-effects.svelte.d.ts +6 -2
  72. package/dist/viewer/presentation/presentation-effects.svelte.d.ts.map +1 -1
  73. package/dist/viewer/presentation/presentation-triggers.d.ts +18 -0
  74. package/dist/viewer/presentation/presentation-triggers.d.ts.map +1 -0
  75. package/dist/viewer/presentation/transition-overlay.d.ts +23 -0
  76. package/dist/viewer/presentation/transition-overlay.d.ts.map +1 -0
  77. package/dist/viewer/render/smartart-view.d.ts +7 -2
  78. package/dist/viewer/render/smartart-view.d.ts.map +1 -1
  79. package/dist/viewer/state/create-viewer-state-collab.svelte.d.ts +37 -0
  80. package/dist/viewer/state/create-viewer-state-collab.svelte.d.ts.map +1 -0
  81. package/dist/viewer/state/create-viewer-state-editor-ui.svelte.d.ts +42 -0
  82. package/dist/viewer/state/create-viewer-state-editor-ui.svelte.d.ts.map +1 -0
  83. package/dist/viewer/state/create-viewer-state-export-notes.svelte.d.ts +36 -0
  84. package/dist/viewer/state/create-viewer-state-export-notes.svelte.d.ts.map +1 -0
  85. package/dist/viewer/state/create-viewer-state-presentation.svelte.d.ts +30 -0
  86. package/dist/viewer/state/create-viewer-state-presentation.svelte.d.ts.map +1 -0
  87. package/dist/viewer/state/create-viewer-state-types.d.ts +134 -0
  88. package/dist/viewer/state/create-viewer-state-types.d.ts.map +1 -0
  89. package/dist/viewer/state/create-viewer-state.svelte.d.ts +30 -0
  90. package/dist/viewer/state/create-viewer-state.svelte.d.ts.map +1 -0
  91. package/dist/viewer/state/index.d.ts +2 -0
  92. package/dist/viewer/state/index.d.ts.map +1 -1
  93. package/dist/viewer/state/presentation-element-states-context.d.ts +37 -0
  94. package/dist/viewer/state/presentation-element-states-context.d.ts.map +1 -0
  95. package/dist/viewer/state/render-context.d.ts +3 -1
  96. package/dist/viewer/state/render-context.d.ts.map +1 -1
  97. package/dist/viewer/state/viewer-effects.svelte.d.ts +8 -0
  98. package/dist/viewer/state/viewer-effects.svelte.d.ts.map +1 -1
  99. package/dist/viewer/state/viewer-options-context.d.ts +10 -0
  100. package/dist/viewer/state/viewer-options-context.d.ts.map +1 -0
  101. package/dist/viewer/state/viewer-options-wiring.svelte.d.ts +31 -0
  102. package/dist/viewer/state/viewer-options-wiring.svelte.d.ts.map +1 -0
  103. package/dist/viewer/state/viewer-options.svelte.d.ts +55 -0
  104. package/dist/viewer/state/viewer-options.svelte.d.ts.map +1 -0
  105. package/dist/viewer/style/element-style.d.ts +3 -3
  106. package/dist/viewer/style/element-style.d.ts.map +1 -1
  107. package/dist/viewer/types.d.ts +16 -5
  108. package/dist/viewer/types.d.ts.map +1 -1
  109. package/dist/{y-webrtc-BdH40MC6.js → y-webrtc-BiViqyU2.js} +1079 -1101
  110. package/package.json +18 -5
  111. package/dist/export-N-hrLHrd.js +0 -38592
@@ -0,0 +1,1110 @@
1
+ import { $ as te, F as se, I as R, J as ae, K as ie, L as re, N as Q, P as Y, Q as le, X as ne, Y as oe, Z as pe, et as ce, i as de, n as ve, ot as B, q as ue, r as he, tt as S } from "./export-DplwT6FC.js";
2
+ import "svelte/internal/disclose-version";
3
+ import * as e from "svelte/internal/client";
4
+ import { onMount as ge, untrack as O } from "svelte";
5
+ import { Chat as _e } from "@ai-sdk/svelte";
6
+ var me = /* @__PURE__ */ new Set([
7
+ "$$slots",
8
+ "$$events",
9
+ "$$legacy"
10
+ ]);
11
+ function ee(a, t) {
12
+ let s = e.rest_props(t, me);
13
+ const i = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56" }]];
14
+ S(a, e.spread_props({ name: "loader-circle" }, () => s, { get iconNode() {
15
+ return i;
16
+ } }));
17
+ }
18
+ var fe = /* @__PURE__ */ new Set([
19
+ "$$slots",
20
+ "$$events",
21
+ "$$legacy"
22
+ ]);
23
+ function X(a, t) {
24
+ let s = e.rest_props(t, fe);
25
+ const i = [
26
+ ["path", { d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3" }],
27
+ ["path", { d: "M12 9v4" }],
28
+ ["path", { d: "M12 17h.01" }]
29
+ ];
30
+ S(a, e.spread_props({ name: "triangle-alert" }, () => s, { get iconNode() {
31
+ return i;
32
+ } }));
33
+ }
34
+ var U = 40;
35
+ function xe() {
36
+ return `chat-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
37
+ }
38
+ function be(a) {
39
+ const t = a.getDeckMeta();
40
+ return `${(t.title ?? "deck").trim().toLowerCase().replace(/\s+/gu, "-").slice(0, 60) || "deck"}::${t.slideCount}`;
41
+ }
42
+ function ye(a) {
43
+ for (const t of a) {
44
+ if (t.role !== "user") continue;
45
+ const s = t.parts.filter((i) => i.type === "text").map((i) => i.text).join(" ").trim();
46
+ if (s) return s.length > U ? `${s.slice(0, U).trimEnd()}…` : s;
47
+ }
48
+ return "";
49
+ }
50
+ var ke = class {
51
+ #a = e.state("checking");
52
+ get initState() {
53
+ return e.get(this.#a);
54
+ }
55
+ set initState(a) {
56
+ e.set(this.#a, a, !0);
57
+ }
58
+ #i = e.state(void 0);
59
+ get initError() {
60
+ return e.get(this.#i);
61
+ }
62
+ set initError(a) {
63
+ e.set(this.#i, a, !0);
64
+ }
65
+ #r = e.state(e.proxy([]));
66
+ get proposals() {
67
+ return e.get(this.#r);
68
+ }
69
+ set proposals(a) {
70
+ e.set(this.#r, a, !0);
71
+ }
72
+ #e = e.state(void 0);
73
+ #s = e.state(void 0);
74
+ #t;
75
+ constructor(a) {
76
+ this.#t = a;
77
+ }
78
+ get messages() {
79
+ return e.get(this.#e)?.messages ?? [];
80
+ }
81
+ get status() {
82
+ return e.get(this.#e)?.status ?? "ready";
83
+ }
84
+ get error() {
85
+ return e.get(this.#e)?.error;
86
+ }
87
+ get isStreaming() {
88
+ return this.status === "submitted" || this.status === "streaming";
89
+ }
90
+ get session() {
91
+ return e.get(this.#s);
92
+ }
93
+ async init() {
94
+ this.initState = "checking", this.initError = void 0;
95
+ try {
96
+ if (!await (this.#t.checkAvailable ?? ne)()) {
97
+ this.initState = "unavailable";
98
+ return;
99
+ }
100
+ const a = await (this.#t.createSession ?? ie)(this.#t.bridge, this.#t.config);
101
+ e.set(this.#s, a), e.set(this.#e, new _e({
102
+ transport: a.transport,
103
+ sendAutomaticallyWhen: a.sendAutomaticallyWhen,
104
+ onError: (t) => this.#t.config.onError?.(t),
105
+ onToolCall: async ({ toolCall: t }) => {
106
+ const { toolName: s, toolCallId: i, input: n } = t, h = e.get(this.#e);
107
+ if (!h) return;
108
+ this.#t.onToolTarget?.(te(s, n));
109
+ const M = h.addToolOutput;
110
+ try {
111
+ M({
112
+ tool: s,
113
+ toolCallId: i,
114
+ output: await a.executeToolCall(s, n)
115
+ });
116
+ } catch (y) {
117
+ M({
118
+ tool: s,
119
+ toolCallId: i,
120
+ state: "output-error",
121
+ errorText: y instanceof Error ? y.message : String(y)
122
+ });
123
+ }
124
+ this.refreshProposals();
125
+ }
126
+ })), this.initState = "ready";
127
+ } catch (a) {
128
+ this.initError = a instanceof Error ? a : new Error(String(a)), this.initState = "error";
129
+ }
130
+ }
131
+ send(a) {
132
+ const t = a.trim();
133
+ t.length === 0 || !e.get(this.#e) || e.get(this.#e).sendMessage({ text: t });
134
+ }
135
+ stop() {
136
+ e.get(this.#e)?.stop();
137
+ }
138
+ clearError() {
139
+ e.get(this.#e)?.clearError();
140
+ }
141
+ refreshProposals() {
142
+ this.proposals = e.get(this.#s)?.proposals.list() ?? [];
143
+ }
144
+ applyProposal(a) {
145
+ e.get(this.#s)?.proposals.apply(a), this.refreshProposals();
146
+ }
147
+ rejectProposal(a) {
148
+ e.get(this.#s)?.proposals.revert(a), this.refreshProposals();
149
+ }
150
+ acceptAllProposals() {
151
+ e.get(this.#s)?.proposals.acceptAll(), this.refreshProposals();
152
+ }
153
+ }, Se = /* @__PURE__ */ new Set([
154
+ "$$slots",
155
+ "$$events",
156
+ "$$legacy"
157
+ ]);
158
+ function we(a, t) {
159
+ let s = e.rest_props(t, Se);
160
+ const i = [["path", { d: "M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z" }], ["path", { d: "m21.854 2.147-10.94 10.939" }]];
161
+ S(a, e.spread_props({ name: "send" }, () => s, { get iconNode() {
162
+ return i;
163
+ } }));
164
+ }
165
+ var Ne = /* @__PURE__ */ new Set([
166
+ "$$slots",
167
+ "$$events",
168
+ "$$legacy"
169
+ ]);
170
+ function Pe(a, t) {
171
+ let s = e.rest_props(t, Ne);
172
+ const i = [["rect", {
173
+ width: "18",
174
+ height: "18",
175
+ x: "3",
176
+ y: "3",
177
+ rx: "2"
178
+ }]];
179
+ S(a, e.spread_props({ name: "square" }, () => s, { get iconNode() {
180
+ return i;
181
+ } }));
182
+ }
183
+ var Me = e.from_html('<button type="button" class="pptx-svelte-ai-send svelte-1tm1p3e"><!></button>'), Te = e.from_html('<button type="button"><!></button>'), qe = e.from_html('<div class="pptx-svelte-ai-composer svelte-1tm1p3e"><div class="pptx-svelte-ai-composer-box svelte-1tm1p3e"><textarea class="pptx-svelte-ai-input svelte-1tm1p3e" rows="1"></textarea> <!></div></div>');
184
+ function Ce(a, t) {
185
+ e.push(t, !0);
186
+ const s = e.prop(t, "prefillText", 3, ""), i = e.prop(t, "prefillNonce", 3, 0), n = B();
187
+ let h = e.state("");
188
+ const M = e.derived(() => e.get(h).trim().length > 0);
189
+ let y = e.state(void 0), q = 0;
190
+ e.user_effect(() => {
191
+ i() !== q && (q = i(), s() && e.set(h, s()), e.get(y)?.focus());
192
+ });
193
+ function w() {
194
+ const p = e.get(h).trim();
195
+ p.length === 0 || t.isStreaming || (t.onsend(p), e.set(h, ""));
196
+ }
197
+ function C(p) {
198
+ p.key === "Enter" && !p.shiftKey && (p.preventDefault(), w());
199
+ }
200
+ var f = qe(), x = e.child(f), g = e.child(x);
201
+ e.remove_textarea_child(g), e.bind_this(g, (p) => e.set(y, p), () => e.get(y));
202
+ var _ = e.sibling(g, 2), v = (p) => {
203
+ var d = Me();
204
+ Pe(e.child(d), {
205
+ size: 16,
206
+ "aria-hidden": "true"
207
+ }), e.reset(d), e.template_effect((N, A) => {
208
+ e.set_attribute(d, "title", N), e.set_attribute(d, "aria-label", A);
209
+ }, [() => n("pptx.ai.stop"), () => n("pptx.ai.stop")]), e.delegated("click", d, function(...N) {
210
+ t.onstop?.apply(this, N);
211
+ }), e.append(p, d);
212
+ }, P = (p) => {
213
+ var d = Te();
214
+ let N;
215
+ we(e.child(d), {
216
+ size: 16,
217
+ "aria-hidden": "true"
218
+ }), e.reset(d), e.template_effect((A, $) => {
219
+ N = e.set_class(d, 1, "pptx-svelte-ai-send svelte-1tm1p3e", null, N, { "is-ready": e.get(M) }), d.disabled = !e.get(M), e.set_attribute(d, "title", A), e.set_attribute(d, "aria-label", $);
220
+ }, [() => n("pptx.ai.send"), () => n("pptx.ai.send")]), e.delegated("click", d, w), e.append(p, d);
221
+ };
222
+ e.if(_, (p) => {
223
+ t.isStreaming ? p(v) : p(P, -1);
224
+ }), e.reset(x), e.reset(f), e.template_effect((p, d) => {
225
+ e.set_attribute(g, "placeholder", p), e.set_attribute(g, "aria-label", d);
226
+ }, [() => n("pptx.ai.placeholder"), () => n("pptx.ai.placeholder")]), e.delegated("keydown", g, C), e.bind_value(g, () => e.get(h), (p) => e.set(h, p)), e.append(a, f), e.pop();
227
+ }
228
+ e.delegate(["keydown", "click"]);
229
+ var je = /* @__PURE__ */ new Set([
230
+ "$$slots",
231
+ "$$events",
232
+ "$$legacy"
233
+ ]);
234
+ function Z(a, t) {
235
+ let s = e.rest_props(t, je);
236
+ const i = [
237
+ ["circle", {
238
+ cx: "12",
239
+ cy: "12",
240
+ r: "10"
241
+ }],
242
+ ["line", {
243
+ x1: "22",
244
+ x2: "18",
245
+ y1: "12",
246
+ y2: "12"
247
+ }],
248
+ ["line", {
249
+ x1: "6",
250
+ x2: "2",
251
+ y1: "12",
252
+ y2: "12"
253
+ }],
254
+ ["line", {
255
+ x1: "12",
256
+ x2: "12",
257
+ y1: "6",
258
+ y2: "2"
259
+ }],
260
+ ["line", {
261
+ x1: "12",
262
+ x2: "12",
263
+ y1: "22",
264
+ y2: "18"
265
+ }]
266
+ ];
267
+ S(a, e.spread_props({ name: "crosshair" }, () => s, { get iconNode() {
268
+ return i;
269
+ } }));
270
+ }
271
+ var Ae = /* @__PURE__ */ new Set([
272
+ "$$slots",
273
+ "$$events",
274
+ "$$legacy"
275
+ ]);
276
+ function $e(a, t) {
277
+ let s = e.rest_props(t, Ae);
278
+ const i = [
279
+ ["circle", {
280
+ cx: "18",
281
+ cy: "18",
282
+ r: "3"
283
+ }],
284
+ ["circle", {
285
+ cx: "6",
286
+ cy: "6",
287
+ r: "3"
288
+ }],
289
+ ["path", { d: "M6 21V9a9 9 0 0 0 9 9" }]
290
+ ];
291
+ S(a, e.spread_props({ name: "git-merge" }, () => s, { get iconNode() {
292
+ return i;
293
+ } }));
294
+ }
295
+ var ze = /* @__PURE__ */ new Set([
296
+ "$$slots",
297
+ "$$events",
298
+ "$$legacy"
299
+ ]);
300
+ function Ee(a, t) {
301
+ let s = e.rest_props(t, ze);
302
+ const i = [["path", { d: "M12 17v5" }], ["path", { d: "M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z" }]];
303
+ S(a, e.spread_props({ name: "pin" }, () => s, { get iconNode() {
304
+ return i;
305
+ } }));
306
+ }
307
+ var Ie = /* @__PURE__ */ new Set([
308
+ "$$slots",
309
+ "$$events",
310
+ "$$legacy"
311
+ ]);
312
+ function Fe(a, t) {
313
+ let s = e.rest_props(t, Ie);
314
+ const i = [
315
+ ["path", { d: "M12 17v5" }],
316
+ ["path", { d: "M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89" }],
317
+ ["path", { d: "m2 2 20 20" }],
318
+ ["path", { d: "M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11" }]
319
+ ];
320
+ S(a, e.spread_props({ name: "pin-off" }, () => s, { get iconNode() {
321
+ return i;
322
+ } }));
323
+ }
324
+ var Le = e.from_html('<span><span class="pptx-svelte-ai-focus-chip-label svelte-kjj0i7"> </span></span>'), De = e.from_html('<span class="pptx-svelte-ai-focus-pinned svelte-kjj0i7"> </span>'), He = e.from_html('<button type="button" class="pptx-svelte-ai-focus-merge svelte-kjj0i7"><!> </button>'), G = e.from_html('<button type="button" class="pptx-svelte-ai-focus-btn svelte-kjj0i7"><!></button>'), Ve = e.from_html('<div class="pptx-svelte-ai-focus-hint svelte-kjj0i7"><!> <span class="svelte-kjj0i7"> </span> <button type="button" class="pptx-svelte-ai-focus-done svelte-kjj0i7"> </button></div>'), Be = e.from_html('<div class="pptx-svelte-ai-focus svelte-kjj0i7"><div class="pptx-svelte-ai-focus-row svelte-kjj0i7"><span class="pptx-svelte-ai-focus-scope svelte-kjj0i7"> </span> <!> <!> <div class="pptx-svelte-ai-focus-actions svelte-kjj0i7"><!> <button type="button"><!></button> <!></div></div> <!></div>');
325
+ function Ke(a, t) {
326
+ e.push(t, !0);
327
+ const s = B(), i = e.derived(() => ve(t.targets, t.slides)), n = e.derived(() => he(t.targets, t.slides));
328
+ var h = Be(), M = e.child(h), y = e.child(M), q = e.child(y, !0);
329
+ e.reset(y);
330
+ var w = e.sibling(y, 2);
331
+ e.each(w, 17, () => e.get(i), (r) => r.key, (r, l) => {
332
+ var c = Le();
333
+ let u;
334
+ var T = e.child(c), m = e.child(T, !0);
335
+ e.reset(T), e.reset(c), e.template_effect(() => {
336
+ u = e.set_class(c, 1, "pptx-svelte-ai-focus-chip svelte-kjj0i7", null, u, { "is-active": t.hasPicks || t.isPinned }), e.set_attribute(c, "title", e.get(l).title), e.set_text(m, e.get(l).label);
337
+ }), e.append(r, c);
338
+ });
339
+ var C = e.sibling(w, 2), f = (r) => {
340
+ var l = De(), c = e.child(l, !0);
341
+ e.reset(l), e.template_effect((u) => e.set_text(c, u), [() => s("pptx.ai.pinnedFocus")]), e.append(r, l);
342
+ };
343
+ e.if(C, (r) => {
344
+ t.isPinned && r(f);
345
+ });
346
+ var x = e.sibling(C, 2), g = e.child(x), _ = (r) => {
347
+ var l = He(), c = e.child(l);
348
+ $e(c, {
349
+ size: 12,
350
+ "aria-hidden": "true"
351
+ });
352
+ var u = e.sibling(c);
353
+ e.reset(l), e.template_effect((T) => e.set_text(u, ` ${T ?? ""}`), [() => s("pptx.ai.mergeSelectedTables")]), e.delegated("click", l, () => t.onsenddirective(de(e.get(n).slideIndex, e.get(n).elementIdA, e.get(n).elementIdB))), e.append(r, l);
354
+ };
355
+ e.if(g, (r) => {
356
+ e.get(n) && r(_);
357
+ });
358
+ var v = e.sibling(g, 2);
359
+ let P;
360
+ Z(e.child(v), {
361
+ size: 14,
362
+ "aria-hidden": "true"
363
+ }), e.reset(v);
364
+ var p = e.sibling(v, 2), d = (r) => {
365
+ var l = G();
366
+ R(e.child(l), {
367
+ size: 14,
368
+ "aria-hidden": "true"
369
+ }), e.reset(l), e.template_effect((c, u) => {
370
+ e.set_attribute(l, "title", c), e.set_attribute(l, "aria-label", u);
371
+ }, [() => s("pptx.ai.pickClear"), () => s("pptx.ai.pickClear")]), e.delegated("click", l, function(...c) {
372
+ t.onclearpicks?.apply(this, c);
373
+ }), e.append(r, l);
374
+ }, N = (r) => {
375
+ var l = G(), c = e.child(l), u = (m) => {
376
+ Fe(m, {
377
+ size: 14,
378
+ "aria-hidden": "true"
379
+ });
380
+ }, T = (m) => {
381
+ Ee(m, {
382
+ size: 14,
383
+ "aria-hidden": "true"
384
+ });
385
+ };
386
+ e.if(c, (m) => {
387
+ t.isPinned ? m(u) : m(T, -1);
388
+ }), e.reset(l), e.template_effect((m, z) => {
389
+ e.set_attribute(l, "title", m), e.set_attribute(l, "aria-label", z);
390
+ }, [() => t.isPinned ? s("pptx.ai.clearFocus") : s("pptx.ai.pinFocus"), () => t.isPinned ? s("pptx.ai.clearFocus") : s("pptx.ai.pinFocus")]), e.delegated("click", l, function(...m) {
391
+ (t.isPinned ? t.onclearpin : t.onpin)?.apply(this, m);
392
+ }), e.append(r, l);
393
+ };
394
+ e.if(p, (r) => {
395
+ t.hasPicks ? r(d) : r(N, -1);
396
+ }), e.reset(x), e.reset(M);
397
+ var A = e.sibling(M, 2), $ = (r) => {
398
+ var l = Ve(), c = e.child(l);
399
+ Z(c, {
400
+ size: 14,
401
+ class: "pptx-svelte-ai-focus-hint-ic",
402
+ "aria-hidden": "true"
403
+ });
404
+ var u = e.sibling(c, 2), T = e.child(u, !0);
405
+ e.reset(u);
406
+ var m = e.sibling(u, 2), z = e.child(m, !0);
407
+ e.reset(m), e.reset(l), e.template_effect((b, o) => {
408
+ e.set_text(T, b), e.set_text(z, o);
409
+ }, [() => s("pptx.ai.pickElementHint"), () => s("pptx.ai.pickDone")]), e.delegated("click", m, function(...b) {
410
+ t.onstoppick?.apply(this, b);
411
+ }), e.append(r, l);
412
+ };
413
+ e.if(A, (r) => {
414
+ t.pickMode && r($);
415
+ }), e.reset(h), e.template_effect((r, l, c) => {
416
+ e.set_text(q, r), P = e.set_class(v, 1, "pptx-svelte-ai-focus-btn svelte-kjj0i7", null, P, { "is-active": t.pickMode }), e.set_attribute(v, "title", l), e.set_attribute(v, "aria-label", c), e.set_attribute(v, "aria-pressed", t.pickMode);
417
+ }, [
418
+ () => s("pptx.ai.focusScope"),
419
+ () => s("pptx.ai.pickElement"),
420
+ () => s("pptx.ai.pickAria")
421
+ ]), e.delegated("click", v, function(...r) {
422
+ (t.pickMode ? t.onstoppick : t.onstartpick)?.apply(this, r);
423
+ }), e.append(a, h), e.pop();
424
+ }
425
+ e.delegate(["click"]);
426
+ var Oe = /* @__PURE__ */ new Set([
427
+ "$$slots",
428
+ "$$events",
429
+ "$$legacy"
430
+ ]);
431
+ function We(a, t) {
432
+ let s = e.rest_props(t, Oe);
433
+ const i = [
434
+ ["path", { d: "M12 8V4H8" }],
435
+ ["rect", {
436
+ width: "16",
437
+ height: "12",
438
+ x: "4",
439
+ y: "8",
440
+ rx: "2"
441
+ }],
442
+ ["path", { d: "M2 14h2" }],
443
+ ["path", { d: "M20 14h2" }],
444
+ ["path", { d: "M15 13v2" }],
445
+ ["path", { d: "M9 13v2" }]
446
+ ];
447
+ S(a, e.spread_props({ name: "bot" }, () => s, { get iconNode() {
448
+ return i;
449
+ } }));
450
+ }
451
+ var Xe = /* @__PURE__ */ new Set([
452
+ "$$slots",
453
+ "$$events",
454
+ "$$legacy"
455
+ ]);
456
+ function Re(a, t) {
457
+ let s = e.rest_props(t, Xe);
458
+ const i = [["path", { d: "M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2" }], ["circle", {
459
+ cx: "12",
460
+ cy: "7",
461
+ r: "4"
462
+ }]];
463
+ S(a, e.spread_props({ name: "user" }, () => s, { get iconNode() {
464
+ return i;
465
+ } }));
466
+ }
467
+ var Ue = /* @__PURE__ */ new Set([
468
+ "$$slots",
469
+ "$$events",
470
+ "$$legacy"
471
+ ]);
472
+ function Ze(a, t) {
473
+ let s = e.rest_props(t, Ue);
474
+ const i = [
475
+ ["path", { d: "M3 3v16a2 2 0 0 0 2 2h16" }],
476
+ ["path", { d: "M18 17V9" }],
477
+ ["path", { d: "M13 17V5" }],
478
+ ["path", { d: "M8 17v-3" }]
479
+ ];
480
+ S(a, e.spread_props({ name: "chart-column" }, () => s, { get iconNode() {
481
+ return i;
482
+ } }));
483
+ }
484
+ var Ge = /* @__PURE__ */ new Set([
485
+ "$$slots",
486
+ "$$events",
487
+ "$$legacy"
488
+ ]);
489
+ function Je(a, t) {
490
+ let s = e.rest_props(t, Ge);
491
+ const i = [["path", { d: "M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0" }], ["circle", {
492
+ cx: "12",
493
+ cy: "12",
494
+ r: "3"
495
+ }]];
496
+ S(a, e.spread_props({ name: "eye" }, () => s, { get iconNode() {
497
+ return i;
498
+ } }));
499
+ }
500
+ var Qe = /* @__PURE__ */ new Set([
501
+ "$$slots",
502
+ "$$events",
503
+ "$$legacy"
504
+ ]);
505
+ function Ye(a, t) {
506
+ let s = e.rest_props(t, Qe);
507
+ const i = [
508
+ ["rect", {
509
+ width: "18",
510
+ height: "18",
511
+ x: "3",
512
+ y: "3",
513
+ rx: "2"
514
+ }],
515
+ ["path", { d: "M7 3v18" }],
516
+ ["path", { d: "M3 7.5h4" }],
517
+ ["path", { d: "M3 12h18" }],
518
+ ["path", { d: "M3 16.5h4" }],
519
+ ["path", { d: "M17 3v18" }],
520
+ ["path", { d: "M17 7.5h4" }],
521
+ ["path", { d: "M17 16.5h4" }]
522
+ ];
523
+ S(a, e.spread_props({ name: "film" }, () => s, { get iconNode() {
524
+ return i;
525
+ } }));
526
+ }
527
+ var et = /* @__PURE__ */ new Set([
528
+ "$$slots",
529
+ "$$events",
530
+ "$$legacy"
531
+ ]);
532
+ function tt(a, t) {
533
+ let s = e.rest_props(t, et);
534
+ const i = [
535
+ ["rect", {
536
+ width: "18",
537
+ height: "7",
538
+ x: "3",
539
+ y: "3",
540
+ rx: "1"
541
+ }],
542
+ ["rect", {
543
+ width: "9",
544
+ height: "7",
545
+ x: "3",
546
+ y: "14",
547
+ rx: "1"
548
+ }],
549
+ ["rect", {
550
+ width: "5",
551
+ height: "7",
552
+ x: "16",
553
+ y: "14",
554
+ rx: "1"
555
+ }]
556
+ ];
557
+ S(a, e.spread_props({ name: "layout-template" }, () => s, { get iconNode() {
558
+ return i;
559
+ } }));
560
+ }
561
+ var st = /* @__PURE__ */ new Set([
562
+ "$$slots",
563
+ "$$events",
564
+ "$$legacy"
565
+ ]);
566
+ function at(a, t) {
567
+ let s = e.rest_props(t, st);
568
+ const i = [
569
+ ["path", { d: "M12 2v20" }],
570
+ ["path", { d: "m15 19-3 3-3-3" }],
571
+ ["path", { d: "m19 9 3 3-3 3" }],
572
+ ["path", { d: "M2 12h20" }],
573
+ ["path", { d: "m5 9-3 3 3 3" }],
574
+ ["path", { d: "m9 5 3-3 3 3" }]
575
+ ];
576
+ S(a, e.spread_props({ name: "move" }, () => s, { get iconNode() {
577
+ return i;
578
+ } }));
579
+ }
580
+ var it = /* @__PURE__ */ new Set([
581
+ "$$slots",
582
+ "$$events",
583
+ "$$legacy"
584
+ ]);
585
+ function rt(a, t) {
586
+ let s = e.rest_props(t, it);
587
+ const i = [["polygon", { points: "3 11 22 2 13 21 11 13 3 11" }]];
588
+ S(a, e.spread_props({ name: "navigation" }, () => s, { get iconNode() {
589
+ return i;
590
+ } }));
591
+ }
592
+ var lt = /* @__PURE__ */ new Set([
593
+ "$$slots",
594
+ "$$events",
595
+ "$$legacy"
596
+ ]);
597
+ function nt(a, t) {
598
+ let s = e.rest_props(t, lt);
599
+ const i = [
600
+ ["path", { d: "M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z" }],
601
+ ["circle", {
602
+ cx: "13.5",
603
+ cy: "6.5",
604
+ r: ".5",
605
+ fill: "currentColor"
606
+ }],
607
+ ["circle", {
608
+ cx: "17.5",
609
+ cy: "10.5",
610
+ r: ".5",
611
+ fill: "currentColor"
612
+ }],
613
+ ["circle", {
614
+ cx: "6.5",
615
+ cy: "12.5",
616
+ r: ".5",
617
+ fill: "currentColor"
618
+ }],
619
+ ["circle", {
620
+ cx: "8.5",
621
+ cy: "7.5",
622
+ r: ".5",
623
+ fill: "currentColor"
624
+ }]
625
+ ];
626
+ S(a, e.spread_props({ name: "palette" }, () => s, { get iconNode() {
627
+ return i;
628
+ } }));
629
+ }
630
+ var ot = /* @__PURE__ */ new Set([
631
+ "$$slots",
632
+ "$$events",
633
+ "$$legacy"
634
+ ]);
635
+ function pt(a, t) {
636
+ let s = e.rest_props(t, ot);
637
+ const i = [["path", { d: "m21 21-4.34-4.34" }], ["circle", {
638
+ cx: "11",
639
+ cy: "11",
640
+ r: "8"
641
+ }]];
642
+ S(a, e.spread_props({ name: "search" }, () => s, { get iconNode() {
643
+ return i;
644
+ } }));
645
+ }
646
+ var ct = /* @__PURE__ */ new Set([
647
+ "$$slots",
648
+ "$$events",
649
+ "$$legacy"
650
+ ]);
651
+ function dt(a, t) {
652
+ let s = e.rest_props(t, ct);
653
+ const i = [
654
+ ["path", { d: "M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z" }],
655
+ ["rect", {
656
+ x: "3",
657
+ y: "14",
658
+ width: "7",
659
+ height: "7",
660
+ rx: "1"
661
+ }],
662
+ ["circle", {
663
+ cx: "17.5",
664
+ cy: "17.5",
665
+ r: "3.5"
666
+ }]
667
+ ];
668
+ S(a, e.spread_props({ name: "shapes" }, () => s, { get iconNode() {
669
+ return i;
670
+ } }));
671
+ }
672
+ var vt = /* @__PURE__ */ new Set([
673
+ "$$slots",
674
+ "$$events",
675
+ "$$legacy"
676
+ ]);
677
+ function ut(a, t) {
678
+ let s = e.rest_props(t, vt);
679
+ const i = [["path", { d: "M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z" }], ["path", { d: "M15 3v5a1 1 0 0 0 1 1h5" }]];
680
+ S(a, e.spread_props({ name: "sticky-note" }, () => s, { get iconNode() {
681
+ return i;
682
+ } }));
683
+ }
684
+ var ht = /* @__PURE__ */ new Set([
685
+ "$$slots",
686
+ "$$events",
687
+ "$$legacy"
688
+ ]);
689
+ function gt(a, t) {
690
+ let s = e.rest_props(t, ht);
691
+ const i = [
692
+ ["path", { d: "M12 3v18" }],
693
+ ["rect", {
694
+ width: "18",
695
+ height: "18",
696
+ x: "3",
697
+ y: "3",
698
+ rx: "2"
699
+ }],
700
+ ["path", { d: "M3 9h18" }],
701
+ ["path", { d: "M3 15h18" }]
702
+ ];
703
+ S(a, e.spread_props({ name: "table" }, () => s, { get iconNode() {
704
+ return i;
705
+ } }));
706
+ }
707
+ var _t = /* @__PURE__ */ new Set([
708
+ "$$slots",
709
+ "$$events",
710
+ "$$legacy"
711
+ ]);
712
+ function J(a, t) {
713
+ let s = e.rest_props(t, _t);
714
+ const i = [["path", { d: "M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z" }]];
715
+ S(a, e.spread_props({ name: "wrench" }, () => s, { get iconNode() {
716
+ return i;
717
+ } }));
718
+ }
719
+ var mt = e.from_html('<div class="pptx-svelte-ai-tool-error svelte-1878924"> </div>'), ft = e.from_html('<details class="pptx-svelte-ai-tool-details svelte-1878924"><summary class="svelte-1878924"> </summary> <div class="pptx-svelte-ai-tool-raw svelte-1878924"> </div></details>'), xt = e.from_html('<div class="pptx-svelte-ai-tool svelte-1878924"><div class="pptx-svelte-ai-tool-head svelte-1878924"><!> <span> </span> <span><!> <!> <!> </span></div> <!> <!></div>');
720
+ function bt(a, t) {
721
+ e.push(t, !0);
722
+ const s = B(), i = {
723
+ view: Je,
724
+ text: re,
725
+ shape: dt,
726
+ theme: nt,
727
+ table: gt,
728
+ slide: tt,
729
+ chart: Ze,
730
+ move: at,
731
+ delete: se,
732
+ search: pt,
733
+ nav: rt,
734
+ animation: Ye,
735
+ notes: ut,
736
+ tool: J
737
+ }, n = e.derived(() => t.part.state === "output-error"), h = e.derived(() => t.part.state === "output-available"), M = e.derived(() => !e.get(n) && !e.get(h)), y = e.derived(() => ae(t.part.toolName, t.part.input, e.get(M) ? "present" : "past")), q = e.derived(() => i[e.get(y).icon] ?? J), w = e.derived(() => pe(t.part.input)), C = e.derived(() => e.get(n) ? s("pptx.ai.toolFailed") : e.get(h) ? s("pptx.ai.toolDone") : s("pptx.ai.toolRunning"));
738
+ var f = xt(), x = e.child(f), g = e.child(x);
739
+ {
740
+ let o = e.derived(() => e.get(n) ? "pptx-svelte-ai-tool-ic is-error" : "pptx-svelte-ai-tool-ic");
741
+ e.component(g, () => e.get(q), (k, j) => {
742
+ j(k, {
743
+ size: 14,
744
+ get class() {
745
+ return e.get(o);
746
+ },
747
+ "aria-hidden": "true"
748
+ });
749
+ });
750
+ }
751
+ var _ = e.sibling(g, 2);
752
+ let v;
753
+ var P = e.child(_, !0);
754
+ e.reset(_);
755
+ var p = e.sibling(_, 2);
756
+ let d;
757
+ var N = e.child(p), A = (o) => {
758
+ ee(o, {
759
+ size: 11,
760
+ class: "pptx-svelte-ai-spin",
761
+ "aria-hidden": "true"
762
+ });
763
+ };
764
+ e.if(N, (o) => {
765
+ e.get(M) && o(A);
766
+ });
767
+ var $ = e.sibling(N, 2), r = (o) => {
768
+ Y(o, {
769
+ size: 11,
770
+ "aria-hidden": "true"
771
+ });
772
+ };
773
+ e.if($, (o) => {
774
+ e.get(h) && o(r);
775
+ });
776
+ var l = e.sibling($, 2), c = (o) => {
777
+ X(o, {
778
+ size: 11,
779
+ "aria-hidden": "true"
780
+ });
781
+ };
782
+ e.if(l, (o) => {
783
+ e.get(n) && o(c);
784
+ });
785
+ var u = e.sibling(l);
786
+ e.reset(p), e.reset(x);
787
+ var T = e.sibling(x, 2), m = (o) => {
788
+ var k = mt(), j = e.child(k, !0);
789
+ e.reset(k), e.template_effect(() => e.set_text(j, t.part.errorText)), e.append(o, k);
790
+ };
791
+ e.if(T, (o) => {
792
+ e.get(n) && t.part.errorText && o(m);
793
+ });
794
+ var z = e.sibling(T, 2), b = (o) => {
795
+ var k = ft(), j = e.child(k), F = e.child(j, !0);
796
+ e.reset(j);
797
+ var D = e.sibling(j, 2), I = e.child(D);
798
+ e.reset(D), e.reset(k), e.template_effect((L, V) => {
799
+ e.set_text(F, L), e.set_text(I, `${V ?? ""}: ${e.get(w) ?? ""}`);
800
+ }, [() => s("pptx.ai.toolDetails"), () => ce(t.part.toolName)]), e.append(o, k);
801
+ };
802
+ e.if(z, (o) => {
803
+ e.get(w) && o(b);
804
+ }), e.reset(f), e.template_effect(() => {
805
+ v = e.set_class(_, 1, "pptx-svelte-ai-tool-label svelte-1878924", null, v, { "is-error": e.get(n) }), e.set_text(P, e.get(y).label), d = e.set_class(p, 1, "pptx-svelte-ai-tool-chip svelte-1878924", null, d, {
806
+ "is-error": e.get(n),
807
+ "is-done": e.get(h)
808
+ }), e.set_text(u, ` ${e.get(C) ?? ""}`);
809
+ }), e.append(a, f), e.pop();
810
+ }
811
+ var yt = e.from_html('<div class="pptx-svelte-ai-empty svelte-16qhgfb"><!> <p class="pptx-svelte-ai-empty-title svelte-16qhgfb"> </p> <p class="pptx-svelte-ai-empty-hint svelte-16qhgfb"> </p></div>'), kt = e.from_html('<p class="pptx-svelte-ai-msg-text svelte-16qhgfb"> </p>'), St = e.from_html('<div class="pptx-svelte-ai-msg svelte-16qhgfb"><div><!></div> <div class="pptx-svelte-ai-msg-body svelte-16qhgfb"></div></div>'), wt = e.from_html('<div class="pptx-svelte-ai-thinking svelte-16qhgfb"><span class="pptx-svelte-ai-dots svelte-16qhgfb"><span class="svelte-16qhgfb"></span><span class="svelte-16qhgfb"></span><span class="svelte-16qhgfb"></span></span> </div>'), Nt = e.from_html('<div class="pptx-svelte-ai-messages svelte-16qhgfb" role="log" aria-live="polite"><!> <!> <div class="svelte-16qhgfb"></div></div>');
812
+ function Pt(a, t) {
813
+ e.push(t, !0);
814
+ const s = B();
815
+ let i = e.state(void 0);
816
+ e.user_effect(() => {
817
+ t.messages, t.isStreaming, e.get(i)?.scrollIntoView({ block: "end" });
818
+ });
819
+ var n = e.comment(), h = e.first_child(n), M = (q) => {
820
+ var w = yt(), C = e.child(w);
821
+ Q(C, {
822
+ size: 26,
823
+ "aria-hidden": "true"
824
+ });
825
+ var f = e.sibling(C, 2), x = e.child(f, !0);
826
+ e.reset(f);
827
+ var g = e.sibling(f, 2), _ = e.child(g, !0);
828
+ e.reset(g), e.reset(w), e.template_effect((v, P) => {
829
+ e.set_text(x, v), e.set_text(_, P);
830
+ }, [() => s("pptx.ai.emptyTitle"), () => s("pptx.ai.emptyHint")]), e.append(q, w);
831
+ }, y = (q) => {
832
+ var w = Nt(), C = e.child(w);
833
+ e.each(C, 17, () => t.messages, (_) => _.id, (_, v) => {
834
+ const P = e.derived(() => e.get(v).role === "user"), p = e.derived(() => le(e.get(v)));
835
+ var d = e.comment(), N = e.first_child(d), A = ($) => {
836
+ var r = St(), l = e.child(r);
837
+ let c;
838
+ var u = e.child(l), T = (b) => {
839
+ Re(b, {
840
+ size: 14,
841
+ "aria-hidden": "true"
842
+ });
843
+ }, m = (b) => {
844
+ We(b, {
845
+ size: 14,
846
+ "aria-hidden": "true"
847
+ });
848
+ };
849
+ e.if(u, (b) => {
850
+ e.get(P) ? b(T) : b(m, -1);
851
+ }), e.reset(l);
852
+ var z = e.sibling(l, 2);
853
+ e.each(z, 23, () => e.get(p), (b, o) => b.kind === "tool" && b.toolCallId || o, (b, o) => {
854
+ var k = e.comment(), j = e.first_child(k), F = (I) => {
855
+ var L = kt(), V = e.child(L, !0);
856
+ e.reset(L), e.template_effect(() => e.set_text(V, e.get(o).text)), e.append(I, L);
857
+ }, D = (I) => {
858
+ bt(I, { get part() {
859
+ return e.get(o);
860
+ } });
861
+ };
862
+ e.if(j, (I) => {
863
+ e.get(o).kind === "text" ? I(F) : I(D, -1);
864
+ }), e.append(b, k);
865
+ }), e.reset(z), e.reset(r), e.template_effect((b) => {
866
+ c = e.set_class(l, 1, "pptx-svelte-ai-avatar svelte-16qhgfb", null, c, { "is-user": e.get(P) }), e.set_attribute(l, "aria-label", b);
867
+ }, [() => e.get(P) ? s("pptx.ai.you") : s("pptx.ai.assistant")]), e.append($, r);
868
+ };
869
+ e.if(N, ($) => {
870
+ (e.get(P) || e.get(p).length > 0) && $(A);
871
+ }), e.append(_, d);
872
+ });
873
+ var f = e.sibling(C, 2), x = (_) => {
874
+ var v = wt(), P = e.sibling(e.child(v));
875
+ e.reset(v), e.template_effect((p) => e.set_text(P, ` ${p ?? ""}`), [() => s("pptx.ai.thinking")]), e.append(_, v);
876
+ };
877
+ e.if(f, (_) => {
878
+ t.isStreaming && _(x);
879
+ });
880
+ var g = e.sibling(f, 2);
881
+ e.bind_this(g, (_) => e.set(i, _), () => e.get(i)), e.reset(w), e.append(q, w);
882
+ };
883
+ e.if(h, (q) => {
884
+ t.messages.length === 0 ? q(M) : q(y, -1);
885
+ }), e.append(a, n), e.pop();
886
+ }
887
+ var Mt = e.from_html('<li class="svelte-15p5728"> </li>'), Tt = e.from_html('<ul class="pptx-svelte-ai-proposal-summary svelte-15p5728"></ul>'), qt = e.from_html('<div class="pptx-svelte-ai-proposal svelte-15p5728"><div class="pptx-svelte-ai-proposal-tag svelte-15p5728"> </div> <div class="pptx-svelte-ai-proposal-label svelte-15p5728"> </div> <!> <div class="pptx-svelte-ai-proposal-actions svelte-15p5728"><button type="button" class="pptx-svelte-ai-proposal-btn is-accept svelte-15p5728"><!> </button> <button type="button" class="pptx-svelte-ai-proposal-btn is-reject svelte-15p5728"><!> </button></div></div>');
888
+ function Ct(a, t) {
889
+ e.push(t, !0);
890
+ const s = B(), i = e.derived(() => t.proposal.summary.map(oe));
891
+ var n = qt(), h = e.child(n), M = e.child(h, !0);
892
+ e.reset(h);
893
+ var y = e.sibling(h, 2), q = e.child(y, !0);
894
+ e.reset(y);
895
+ var w = e.sibling(y, 2), C = (d) => {
896
+ var N = Tt();
897
+ e.each(N, 21, () => e.get(i), e.index, (A, $) => {
898
+ var r = Mt(), l = e.child(r, !0);
899
+ e.reset(r), e.template_effect(() => e.set_text(l, e.get($))), e.append(A, r);
900
+ }), e.reset(N), e.append(d, N);
901
+ };
902
+ e.if(w, (d) => {
903
+ e.get(i).length > 0 && d(C);
904
+ });
905
+ var f = e.sibling(w, 2), x = e.child(f), g = e.child(x);
906
+ Y(g, {
907
+ size: 13,
908
+ "aria-hidden": "true"
909
+ });
910
+ var _ = e.sibling(g);
911
+ e.reset(x);
912
+ var v = e.sibling(x, 2), P = e.child(v);
913
+ R(P, {
914
+ size: 13,
915
+ "aria-hidden": "true"
916
+ });
917
+ var p = e.sibling(P);
918
+ e.reset(v), e.reset(f), e.reset(n), e.template_effect((d, N, A) => {
919
+ e.set_attribute(n, "data-proposal-id", t.proposal.id), e.set_text(M, d), e.set_text(q, t.proposal.label), e.set_text(_, ` ${N ?? ""}`), e.set_text(p, ` ${A ?? ""}`);
920
+ }, [
921
+ () => s("pptx.ai.proposedChange"),
922
+ () => s("pptx.ai.accept"),
923
+ () => s("pptx.ai.reject")
924
+ ]), e.delegated("click", x, () => t.onaccept(t.proposal.id)), e.delegated("click", v, () => t.onreject(t.proposal.id)), e.append(a, n), e.pop();
925
+ }
926
+ e.delegate(["click"]);
927
+ var jt = e.from_html('<div class="pptx-svelte-ai-state svelte-nmv6mg"><!></div>'), At = e.from_html('<div class="pptx-svelte-ai-state svelte-nmv6mg"><!> <p class="pptx-svelte-ai-state-title svelte-nmv6mg"> </p> <p class="pptx-svelte-ai-state-hint svelte-nmv6mg"> </p></div>'), $t = e.from_html('<div class="pptx-svelte-ai-error svelte-nmv6mg" role="alert"><!> <div class="pptx-svelte-ai-error-body svelte-nmv6mg"><div class="pptx-svelte-ai-error-title svelte-nmv6mg"> </div> <div class="pptx-svelte-ai-error-msg svelte-nmv6mg"> </div></div> <button type="button" class="pptx-svelte-ai-error-retry svelte-nmv6mg"> </button></div>'), zt = e.from_html('<button type="button" class="pptx-svelte-ai-accept-all svelte-nmv6mg"> </button>'), Et = e.from_html('<div class="pptx-svelte-ai-proposals svelte-nmv6mg"><div class="pptx-svelte-ai-proposals-head svelte-nmv6mg"><span class="pptx-svelte-ai-proposals-title svelte-nmv6mg"> </span> <!></div> <!></div>'), It = e.from_html('<div class="pptx-svelte-ai-body svelte-nmv6mg"><!> <!> <!> <!> <!></div>'), Ft = e.from_html('<aside class="pptx-svelte-ai-panel svelte-nmv6mg" data-pptx-ai-panel=""><div class="pptx-svelte-ai-header svelte-nmv6mg"><!> <span class="pptx-svelte-ai-title svelte-nmv6mg"> </span> <button type="button" class="pptx-svelte-ai-close svelte-nmv6mg"><!></button></div> <!></aside>');
928
+ function Bt(a, t) {
929
+ e.push(t, !0);
930
+ const s = B();
931
+ function i(r) {
932
+ r && r.slideIndex !== void 0 && t.bridge.goToSlide(r.slideIndex), t.aiPanel.flashToolTarget(r);
933
+ }
934
+ const n = O(() => new ke({
935
+ bridge: t.bridge,
936
+ config: t.config,
937
+ onToolTarget: i
938
+ }));
939
+ e.user_effect(() => {
940
+ const r = n.session;
941
+ if (r)
942
+ return r.changeAnimator.subscribe((l) => {
943
+ l && t.bridge.goToSlide(l.slideIndex), t.aiPanel.showChangeBatch(l);
944
+ });
945
+ });
946
+ function h(r) {
947
+ t.aiPanel.flashToolTarget(null), n.applyProposal(r);
948
+ }
949
+ function M() {
950
+ t.aiPanel.flashToolTarget(null), n.acceptAllProposals();
951
+ }
952
+ const y = O(() => ue()), q = O(() => be(t.bridge)), w = O(() => xe()), C = Date.now();
953
+ let f;
954
+ e.user_effect(() => {
955
+ const r = n.messages;
956
+ if (r.length !== 0)
957
+ return clearTimeout(f), f = setTimeout(() => {
958
+ y.saveChat({
959
+ id: w,
960
+ title: ye(r) || s("pptx.ai.untitledChat"),
961
+ deckId: q,
962
+ messages: r,
963
+ createdAt: C,
964
+ updatedAt: Date.now()
965
+ });
966
+ }, 800), () => clearTimeout(f);
967
+ }), ge(() => {
968
+ n.init();
969
+ });
970
+ var x = Ft(), g = e.child(x), _ = e.child(g);
971
+ Q(_, {
972
+ size: 16,
973
+ class: "pptx-svelte-ai-header-icon",
974
+ "aria-hidden": "true"
975
+ });
976
+ var v = e.sibling(_, 2), P = e.child(v, !0);
977
+ e.reset(v);
978
+ var p = e.sibling(v, 2);
979
+ R(e.child(p), {
980
+ size: 16,
981
+ "aria-hidden": "true"
982
+ }), e.reset(p), e.reset(g);
983
+ var d = e.sibling(g, 2), N = (r) => {
984
+ var l = jt();
985
+ ee(e.child(l), {
986
+ size: 20,
987
+ class: "pptx-svelte-ai-spin",
988
+ "aria-hidden": "true"
989
+ }), e.reset(l), e.append(r, l);
990
+ }, A = (r) => {
991
+ var l = At(), c = e.child(l);
992
+ X(c, {
993
+ size: 24,
994
+ "aria-hidden": "true"
995
+ });
996
+ var u = e.sibling(c, 2), T = e.child(u, !0);
997
+ e.reset(u);
998
+ var m = e.sibling(u, 2), z = e.child(m, !0);
999
+ e.reset(m), e.reset(l), e.template_effect((b, o) => {
1000
+ e.set_text(T, b), e.set_text(z, o);
1001
+ }, [() => s("pptx.ai.unavailableTitle"), () => n.initError?.message ?? s("pptx.ai.unavailableHint")]), e.append(r, l);
1002
+ }, $ = (r) => {
1003
+ var l = It(), c = e.child(l);
1004
+ {
1005
+ let o = e.derived(() => t.bridge.getSlides());
1006
+ Ke(c, {
1007
+ get targets() {
1008
+ return t.aiPanel.effectiveTargets;
1009
+ },
1010
+ get slides() {
1011
+ return e.get(o);
1012
+ },
1013
+ get isPinned() {
1014
+ return t.aiPanel.isPinned;
1015
+ },
1016
+ get hasPicks() {
1017
+ return t.aiPanel.hasPicks;
1018
+ },
1019
+ get pickMode() {
1020
+ return t.aiPanel.pickMode;
1021
+ },
1022
+ onpin: () => t.aiPanel.pinFocus(),
1023
+ onclearpin: () => t.aiPanel.clearPinnedFocus(),
1024
+ onsenddirective: (k) => n.send(k),
1025
+ onstartpick: () => t.aiPanel.startPicking(),
1026
+ onstoppick: () => t.aiPanel.stopPicking(),
1027
+ onclearpicks: () => t.aiPanel.clearPicks()
1028
+ });
1029
+ }
1030
+ var u = e.sibling(c, 2);
1031
+ Pt(u, {
1032
+ get messages() {
1033
+ return n.messages;
1034
+ },
1035
+ get isStreaming() {
1036
+ return n.isStreaming;
1037
+ }
1038
+ });
1039
+ var T = e.sibling(u, 2), m = (o) => {
1040
+ var k = $t(), j = e.child(k);
1041
+ X(j, {
1042
+ size: 14,
1043
+ "aria-hidden": "true"
1044
+ });
1045
+ var F = e.sibling(j, 2), D = e.child(F), I = e.child(D, !0);
1046
+ e.reset(D);
1047
+ var L = e.sibling(D, 2), V = e.child(L, !0);
1048
+ e.reset(L), e.reset(F);
1049
+ var E = e.sibling(F, 2), H = e.child(E, !0);
1050
+ e.reset(E), e.reset(k), e.template_effect((K, W) => {
1051
+ e.set_text(I, K), e.set_attribute(L, "title", n.error.message), e.set_text(V, n.error.message), e.set_text(H, W);
1052
+ }, [() => s("pptx.ai.errorPrefix"), () => s("pptx.ai.retry")]), e.delegated("click", E, () => n.clearError()), e.append(o, k);
1053
+ };
1054
+ e.if(T, (o) => {
1055
+ n.error && o(m);
1056
+ });
1057
+ var z = e.sibling(T, 2), b = (o) => {
1058
+ var k = Et(), j = e.child(k), F = e.child(j), D = e.child(F, !0);
1059
+ e.reset(F);
1060
+ var I = e.sibling(F, 2), L = (E) => {
1061
+ var H = zt(), K = e.child(H, !0);
1062
+ e.reset(H), e.template_effect((W) => e.set_text(K, W), [() => s("pptx.ai.acceptAll")]), e.delegated("click", H, M), e.append(E, H);
1063
+ };
1064
+ e.if(I, (E) => {
1065
+ n.proposals.length > 1 && E(L);
1066
+ }), e.reset(j);
1067
+ var V = e.sibling(j, 2);
1068
+ e.each(V, 17, () => n.proposals, (E) => E.id, (E, H) => {
1069
+ Ct(E, {
1070
+ get proposal() {
1071
+ return e.get(H);
1072
+ },
1073
+ onaccept: h,
1074
+ onreject: (K) => n.rejectProposal(K)
1075
+ });
1076
+ }), e.reset(k), e.template_effect((E) => e.set_text(D, E), [() => s("pptx.ai.pendingChanges", { count: n.proposals.length })]), e.append(o, k);
1077
+ };
1078
+ e.if(z, (o) => {
1079
+ n.proposals.length > 0 && o(b);
1080
+ }), Ce(e.sibling(z, 2), {
1081
+ get isStreaming() {
1082
+ return n.isStreaming;
1083
+ },
1084
+ onsend: (o) => n.send(o),
1085
+ onstop: () => n.stop(),
1086
+ get prefillText() {
1087
+ return t.aiPanel.prefill.text;
1088
+ },
1089
+ get prefillNonce() {
1090
+ return t.aiPanel.prefill.nonce;
1091
+ }
1092
+ }), e.reset(l), e.append(r, l);
1093
+ };
1094
+ e.if(d, (r) => {
1095
+ n.initState === "checking" ? r(N) : n.initState === "unavailable" || n.initState === "error" ? r(A, 1) : n.initState === "ready" && r($, 2);
1096
+ }), e.reset(x), e.template_effect((r, l, c, u) => {
1097
+ e.set_attribute(x, "aria-label", r), e.set_text(P, l), e.set_attribute(p, "title", c), e.set_attribute(p, "aria-label", u);
1098
+ }, [
1099
+ () => s("pptx.ai.title"),
1100
+ () => s("pptx.ai.title"),
1101
+ () => s("pptx.ai.close"),
1102
+ () => s("pptx.ai.close")
1103
+ ]), e.delegated("click", p, function(...r) {
1104
+ t.onclose?.apply(this, r);
1105
+ }), e.append(a, x), e.pop();
1106
+ }
1107
+ e.delegate(["click"]);
1108
+ export {
1109
+ Bt as default
1110
+ };