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