pptx-svelte-viewer 1.4.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/CHANGELOG.md +470 -0
  2. package/README.md +175 -17
  3. package/dist/AiChatPanel-CkC2py3J.js +1082 -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-CtfwVh4-.js +97263 -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-effects.svelte.d.ts +17 -0
  31. package/dist/viewer/collab/collaboration-effects.svelte.d.ts.map +1 -0
  32. package/dist/viewer/collab/collaboration-provider.d.ts.map +1 -1
  33. package/dist/viewer/collab/collaboration-remote-sync.d.ts +32 -1
  34. package/dist/viewer/collab/collaboration-remote-sync.d.ts.map +1 -1
  35. package/dist/viewer/collab/collaboration.svelte.d.ts +12 -22
  36. package/dist/viewer/collab/collaboration.svelte.d.ts.map +1 -1
  37. package/dist/viewer/collab/components/props.d.ts +12 -0
  38. package/dist/viewer/collab/components/props.d.ts.map +1 -1
  39. package/dist/viewer/collab/components/remote-selection.d.ts +29 -0
  40. package/dist/viewer/collab/components/remote-selection.d.ts.map +1 -0
  41. package/dist/viewer/collab/components/share-helpers.d.ts +7 -28
  42. package/dist/viewer/collab/components/share-helpers.d.ts.map +1 -1
  43. package/dist/viewer/collab/index.d.ts +1 -1
  44. package/dist/viewer/collab/index.d.ts.map +1 -1
  45. package/dist/viewer/components/props.d.ts +68 -2
  46. package/dist/viewer/components/props.d.ts.map +1 -1
  47. package/dist/viewer/components/ribbon/ribbon-types.d.ts +7 -0
  48. package/dist/viewer/components/ribbon/ribbon-types.d.ts.map +1 -1
  49. package/dist/viewer/components/typed-exports.d.ts +19 -0
  50. package/dist/viewer/components/typed-exports.d.ts.map +1 -0
  51. package/dist/viewer/editor/editor-controller-deps.d.ts +15 -0
  52. package/dist/viewer/editor/editor-controller-deps.d.ts.map +1 -1
  53. package/dist/viewer/editor/editor-controller.svelte.d.ts +5 -0
  54. package/dist/viewer/editor/editor-controller.svelte.d.ts.map +1 -1
  55. package/dist/viewer/editor/editor-state.svelte.d.ts +6 -0
  56. package/dist/viewer/editor/editor-state.svelte.d.ts.map +1 -1
  57. package/dist/viewer/export/export-ui.svelte.d.ts +5 -0
  58. package/dist/viewer/export/export-ui.svelte.d.ts.map +1 -1
  59. package/dist/viewer/index.d.ts +2816 -22
  60. package/dist/viewer/index.d.ts.map +1 -1
  61. package/dist/viewer/index.js +392 -14
  62. package/dist/viewer/presentation/animation-playback-helpers.d.ts +43 -0
  63. package/dist/viewer/presentation/animation-playback-helpers.d.ts.map +1 -0
  64. package/dist/viewer/presentation/animation-playback.svelte.d.ts +50 -40
  65. package/dist/viewer/presentation/animation-playback.svelte.d.ts.map +1 -1
  66. package/dist/viewer/presentation/animation-sound.d.ts +20 -0
  67. package/dist/viewer/presentation/animation-sound.d.ts.map +1 -0
  68. package/dist/viewer/presentation/apply-animation-styles.d.ts +6 -5
  69. package/dist/viewer/presentation/apply-animation-styles.d.ts.map +1 -1
  70. package/dist/viewer/presentation/index.d.ts +2 -1
  71. package/dist/viewer/presentation/index.d.ts.map +1 -1
  72. package/dist/viewer/presentation/keyframes.d.ts +9 -0
  73. package/dist/viewer/presentation/keyframes.d.ts.map +1 -1
  74. package/dist/viewer/presentation/presentation-controller.svelte.d.ts +32 -10
  75. package/dist/viewer/presentation/presentation-controller.svelte.d.ts.map +1 -1
  76. package/dist/viewer/presentation/presentation-effects.svelte.d.ts +6 -2
  77. package/dist/viewer/presentation/presentation-effects.svelte.d.ts.map +1 -1
  78. package/dist/viewer/presentation/presentation-triggers.d.ts +18 -0
  79. package/dist/viewer/presentation/presentation-triggers.d.ts.map +1 -0
  80. package/dist/viewer/presentation/transition-overlay.d.ts +23 -0
  81. package/dist/viewer/presentation/transition-overlay.d.ts.map +1 -0
  82. package/dist/viewer/render/smartart-view.d.ts +7 -2
  83. package/dist/viewer/render/smartart-view.d.ts.map +1 -1
  84. package/dist/viewer/state/create-viewer-state-collab.svelte.d.ts +37 -0
  85. package/dist/viewer/state/create-viewer-state-collab.svelte.d.ts.map +1 -0
  86. package/dist/viewer/state/create-viewer-state-editor-ui.svelte.d.ts +42 -0
  87. package/dist/viewer/state/create-viewer-state-editor-ui.svelte.d.ts.map +1 -0
  88. package/dist/viewer/state/create-viewer-state-export-notes.svelte.d.ts +36 -0
  89. package/dist/viewer/state/create-viewer-state-export-notes.svelte.d.ts.map +1 -0
  90. package/dist/viewer/state/create-viewer-state-presentation.svelte.d.ts +30 -0
  91. package/dist/viewer/state/create-viewer-state-presentation.svelte.d.ts.map +1 -0
  92. package/dist/viewer/state/create-viewer-state-types.d.ts +134 -0
  93. package/dist/viewer/state/create-viewer-state-types.d.ts.map +1 -0
  94. package/dist/viewer/state/create-viewer-state.svelte.d.ts +30 -0
  95. package/dist/viewer/state/create-viewer-state.svelte.d.ts.map +1 -0
  96. package/dist/viewer/state/index.d.ts +2 -0
  97. package/dist/viewer/state/index.d.ts.map +1 -1
  98. package/dist/viewer/state/presentation-element-states-context.d.ts +37 -0
  99. package/dist/viewer/state/presentation-element-states-context.d.ts.map +1 -0
  100. package/dist/viewer/state/render-context.d.ts +3 -1
  101. package/dist/viewer/state/render-context.d.ts.map +1 -1
  102. package/dist/viewer/state/viewer-effects.svelte.d.ts +8 -0
  103. package/dist/viewer/state/viewer-effects.svelte.d.ts.map +1 -1
  104. package/dist/viewer/state/viewer-options-context.d.ts +10 -0
  105. package/dist/viewer/state/viewer-options-context.d.ts.map +1 -0
  106. package/dist/viewer/state/viewer-options-wiring.svelte.d.ts +31 -0
  107. package/dist/viewer/state/viewer-options-wiring.svelte.d.ts.map +1 -0
  108. package/dist/viewer/state/viewer-options.svelte.d.ts +55 -0
  109. package/dist/viewer/state/viewer-options.svelte.d.ts.map +1 -0
  110. package/dist/viewer/style/element-style.d.ts +3 -3
  111. package/dist/viewer/style/element-style.d.ts.map +1 -1
  112. package/dist/viewer/types.d.ts +16 -5
  113. package/dist/viewer/types.d.ts.map +1 -1
  114. package/dist/{y-webrtc-BdH40MC6.js → y-webrtc-BiViqyU2.js} +1079 -1101
  115. package/package.json +18 -5
  116. package/dist/export-N-hrLHrd.js +0 -38592
@@ -0,0 +1,1082 @@
1
+ import { $ as te, F as se, G as ae, J as ie, K as re, N as Q, P as le, Q as ne, V as oe, X as pe, Y as ce, Z as de, ct as B, et as ve, i as ue, n as he, nt as Y, q as ge, r as _e, rt as N, tt as G } from "./export-CtfwVh4-.js";
2
+ import "svelte/internal/disclose-version";
3
+ import * as e from "svelte/internal/client";
4
+ import { onMount as fe, untrack as O } from "svelte";
5
+ import { Chat as me } from "@ai-sdk/svelte";
6
+ var xe = /* @__PURE__ */ new Set([
7
+ "$$slots",
8
+ "$$events",
9
+ "$$legacy"
10
+ ]);
11
+ function ee(a, t) {
12
+ let s = e.rest_props(t, xe);
13
+ const r = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56" }]];
14
+ N(a, e.spread_props({ name: "loader-circle" }, () => s, { get iconNode() {
15
+ return r;
16
+ } }));
17
+ }
18
+ var be = /* @__PURE__ */ new Set([
19
+ "$$slots",
20
+ "$$events",
21
+ "$$legacy"
22
+ ]);
23
+ function X(a, t) {
24
+ let s = e.rest_props(t, be);
25
+ const r = [
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
+ N(a, e.spread_props({ name: "triangle-alert" }, () => s, { get iconNode() {
31
+ return r;
32
+ } }));
33
+ }
34
+ var R = 40;
35
+ function ye() {
36
+ return `chat-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
37
+ }
38
+ function ke(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 Se(a) {
43
+ for (const t of a) {
44
+ if (t.role !== "user") continue;
45
+ const s = t.parts.filter((r) => r.type === "text").map((r) => r.text).join(" ").trim();
46
+ if (s) return s.length > R ? `${s.slice(0, R).trimEnd()}…` : s;
47
+ }
48
+ return "";
49
+ }
50
+ var we = 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 ?? ce)()) {
97
+ this.initState = "unavailable";
98
+ return;
99
+ }
100
+ const a = await (this.#t.createSession ?? ae)(this.#t.bridge, this.#t.config);
101
+ e.set(this.#s, a), e.set(this.#e, new me({
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: r, input: n } = t, h = e.get(this.#e);
107
+ if (!h) return;
108
+ this.#t.onToolTarget?.(ne(s, n));
109
+ const M = h.addToolOutput;
110
+ try {
111
+ M({
112
+ tool: s,
113
+ toolCallId: r,
114
+ output: await a.executeToolCall(s, n)
115
+ });
116
+ } catch (y) {
117
+ M({
118
+ tool: s,
119
+ toolCallId: r,
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
+ }, Pe = /* @__PURE__ */ new Set([
154
+ "$$slots",
155
+ "$$events",
156
+ "$$legacy"
157
+ ]);
158
+ function Ne(a, t) {
159
+ let s = e.rest_props(t, Pe);
160
+ const r = [["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
+ N(a, e.spread_props({ name: "send" }, () => s, { get iconNode() {
162
+ return r;
163
+ } }));
164
+ }
165
+ var Me = /* @__PURE__ */ new Set([
166
+ "$$slots",
167
+ "$$events",
168
+ "$$legacy"
169
+ ]);
170
+ function Te(a, t) {
171
+ let s = e.rest_props(t, Me);
172
+ const r = [["rect", {
173
+ width: "18",
174
+ height: "18",
175
+ x: "3",
176
+ y: "3",
177
+ rx: "2"
178
+ }]];
179
+ N(a, e.spread_props({ name: "square" }, () => s, { get iconNode() {
180
+ return r;
181
+ } }));
182
+ }
183
+ var qe = e.from_html('<button type="button" class="pptx-svelte-ai-send svelte-1tm1p3e"><!></button>'), Ce = e.from_html('<button type="button"><!></button>'), je = 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 Ae(a, t) {
185
+ e.push(t, !0);
186
+ const s = e.prop(t, "prefillText", 3, ""), r = 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
+ r() !== q && (q = r(), s() && e.set(h, s()), e.get(y)?.focus());
192
+ });
193
+ function S() {
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(), S());
199
+ }
200
+ var m = je(), x = e.child(m), 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 = qe();
204
+ Te(e.child(d), {
205
+ size: 16,
206
+ "aria-hidden": "true"
207
+ }), e.reset(d), e.template_effect((w, A) => {
208
+ e.set_attribute(d, "title", w), e.set_attribute(d, "aria-label", A);
209
+ }, [() => n("pptx.ai.stop"), () => n("pptx.ai.stop")]), e.delegated("click", d, function(...w) {
210
+ t.onstop?.apply(this, w);
211
+ }), e.append(p, d);
212
+ }, P = (p) => {
213
+ var d = Ce();
214
+ let w;
215
+ Ne(e.child(d), {
216
+ size: 16,
217
+ "aria-hidden": "true"
218
+ }), e.reset(d), e.template_effect((A, z) => {
219
+ w = e.set_class(d, 1, "pptx-svelte-ai-send svelte-1tm1p3e", null, w, { "is-ready": e.get(M) }), d.disabled = !e.get(M), e.set_attribute(d, "title", A), e.set_attribute(d, "aria-label", z);
220
+ }, [() => n("pptx.ai.send"), () => n("pptx.ai.send")]), e.delegated("click", d, S), e.append(p, d);
221
+ };
222
+ e.if(_, (p) => {
223
+ t.isStreaming ? p(v) : p(P, -1);
224
+ }), e.reset(x), e.reset(m), 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, m), e.pop();
227
+ }
228
+ e.delegate(["keydown", "click"]);
229
+ var ze = /* @__PURE__ */ new Set([
230
+ "$$slots",
231
+ "$$events",
232
+ "$$legacy"
233
+ ]);
234
+ function U(a, t) {
235
+ let s = e.rest_props(t, ze);
236
+ const r = [
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
+ N(a, e.spread_props({ name: "crosshair" }, () => s, { get iconNode() {
268
+ return r;
269
+ } }));
270
+ }
271
+ var Ee = /* @__PURE__ */ new Set([
272
+ "$$slots",
273
+ "$$events",
274
+ "$$legacy"
275
+ ]);
276
+ function Ie(a, t) {
277
+ let s = e.rest_props(t, Ee);
278
+ const r = [
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
+ N(a, e.spread_props({ name: "git-merge" }, () => s, { get iconNode() {
292
+ return r;
293
+ } }));
294
+ }
295
+ var $e = /* @__PURE__ */ new Set([
296
+ "$$slots",
297
+ "$$events",
298
+ "$$legacy"
299
+ ]);
300
+ function Fe(a, t) {
301
+ let s = e.rest_props(t, $e);
302
+ const r = [["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
+ N(a, e.spread_props({ name: "pin" }, () => s, { get iconNode() {
304
+ return r;
305
+ } }));
306
+ }
307
+ var De = /* @__PURE__ */ new Set([
308
+ "$$slots",
309
+ "$$events",
310
+ "$$legacy"
311
+ ]);
312
+ function Le(a, t) {
313
+ let s = e.rest_props(t, De);
314
+ const r = [
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
+ N(a, e.spread_props({ name: "pin-off" }, () => s, { get iconNode() {
321
+ return r;
322
+ } }));
323
+ }
324
+ var Ve = e.from_html('<span><span class="pptx-svelte-ai-focus-chip-label svelte-kjj0i7"> </span></span>'), He = e.from_html('<span class="pptx-svelte-ai-focus-pinned svelte-kjj0i7"> </span>'), Be = e.from_html('<button type="button" class="pptx-svelte-ai-focus-merge svelte-kjj0i7"><!> </button>'), Z = e.from_html('<button type="button" class="pptx-svelte-ai-focus-btn svelte-kjj0i7"><!></button>'), Ke = 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>'), Oe = 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 We(a, t) {
326
+ e.push(t, !0);
327
+ const s = B(), r = e.derived(() => he(t.targets, t.slides)), n = e.derived(() => _e(t.targets, t.slides));
328
+ var h = Oe(), M = e.child(h), y = e.child(M), q = e.child(y, !0);
329
+ e.reset(y);
330
+ var S = e.sibling(y, 2);
331
+ e.each(S, 17, () => e.get(r), (i) => i.key, (i, l) => {
332
+ var c = Ve();
333
+ let u;
334
+ var T = e.child(c), f = 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(f, e.get(l).label);
337
+ }), e.append(i, c);
338
+ });
339
+ var C = e.sibling(S, 2), m = (i) => {
340
+ var l = He(), c = e.child(l, !0);
341
+ e.reset(l), e.template_effect((u) => e.set_text(c, u), [() => s("pptx.ai.pinnedFocus")]), e.append(i, l);
342
+ };
343
+ e.if(C, (i) => {
344
+ t.isPinned && i(m);
345
+ });
346
+ var x = e.sibling(C, 2), g = e.child(x), _ = (i) => {
347
+ var l = Be(), c = e.child(l);
348
+ Ie(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(ue(e.get(n).slideIndex, e.get(n).elementIdA, e.get(n).elementIdB))), e.append(i, l);
354
+ };
355
+ e.if(g, (i) => {
356
+ e.get(n) && i(_);
357
+ });
358
+ var v = e.sibling(g, 2);
359
+ let P;
360
+ U(e.child(v), {
361
+ size: 14,
362
+ "aria-hidden": "true"
363
+ }), e.reset(v);
364
+ var p = e.sibling(v, 2), d = (i) => {
365
+ var l = Z();
366
+ G(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(i, l);
374
+ }, w = (i) => {
375
+ var l = Z(), c = e.child(l), u = (f) => {
376
+ Le(f, {
377
+ size: 14,
378
+ "aria-hidden": "true"
379
+ });
380
+ }, T = (f) => {
381
+ Fe(f, {
382
+ size: 14,
383
+ "aria-hidden": "true"
384
+ });
385
+ };
386
+ e.if(c, (f) => {
387
+ t.isPinned ? f(u) : f(T, -1);
388
+ }), e.reset(l), e.template_effect((f, E) => {
389
+ e.set_attribute(l, "title", f), e.set_attribute(l, "aria-label", E);
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(...f) {
391
+ (t.isPinned ? t.onclearpin : t.onpin)?.apply(this, f);
392
+ }), e.append(i, l);
393
+ };
394
+ e.if(p, (i) => {
395
+ t.hasPicks ? i(d) : i(w, -1);
396
+ }), e.reset(x), e.reset(M);
397
+ var A = e.sibling(M, 2), z = (i) => {
398
+ var l = Ke(), c = e.child(l);
399
+ U(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 f = e.sibling(u, 2), E = e.child(f, !0);
407
+ e.reset(f), e.reset(l), e.template_effect((b, o) => {
408
+ e.set_text(T, b), e.set_text(E, o);
409
+ }, [() => s("pptx.ai.pickElementHint"), () => s("pptx.ai.pickDone")]), e.delegated("click", f, function(...b) {
410
+ t.onstoppick?.apply(this, b);
411
+ }), e.append(i, l);
412
+ };
413
+ e.if(A, (i) => {
414
+ t.pickMode && i(z);
415
+ }), e.reset(h), e.template_effect((i, l, c) => {
416
+ e.set_text(q, i), 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(...i) {
422
+ (t.pickMode ? t.onstoppick : t.onstartpick)?.apply(this, i);
423
+ }), e.append(a, h), e.pop();
424
+ }
425
+ e.delegate(["click"]);
426
+ var Xe = /* @__PURE__ */ new Set([
427
+ "$$slots",
428
+ "$$events",
429
+ "$$legacy"
430
+ ]);
431
+ function Ge(a, t) {
432
+ let s = e.rest_props(t, Xe);
433
+ const r = [
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
+ N(a, e.spread_props({ name: "bot" }, () => s, { get iconNode() {
448
+ return r;
449
+ } }));
450
+ }
451
+ var Re = /* @__PURE__ */ new Set([
452
+ "$$slots",
453
+ "$$events",
454
+ "$$legacy"
455
+ ]);
456
+ function Ue(a, t) {
457
+ let s = e.rest_props(t, Re);
458
+ const r = [["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
+ N(a, e.spread_props({ name: "user" }, () => s, { get iconNode() {
464
+ return r;
465
+ } }));
466
+ }
467
+ var Ze = /* @__PURE__ */ new Set([
468
+ "$$slots",
469
+ "$$events",
470
+ "$$legacy"
471
+ ]);
472
+ function Je(a, t) {
473
+ let s = e.rest_props(t, Ze);
474
+ const r = [
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
+ N(a, e.spread_props({ name: "chart-column" }, () => s, { get iconNode() {
481
+ return r;
482
+ } }));
483
+ }
484
+ var Qe = /* @__PURE__ */ new Set([
485
+ "$$slots",
486
+ "$$events",
487
+ "$$legacy"
488
+ ]);
489
+ function Ye(a, t) {
490
+ let s = e.rest_props(t, Qe);
491
+ const r = [["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
+ N(a, e.spread_props({ name: "eye" }, () => s, { get iconNode() {
497
+ return r;
498
+ } }));
499
+ }
500
+ var et = /* @__PURE__ */ new Set([
501
+ "$$slots",
502
+ "$$events",
503
+ "$$legacy"
504
+ ]);
505
+ function tt(a, t) {
506
+ let s = e.rest_props(t, et);
507
+ const r = [
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
+ N(a, e.spread_props({ name: "film" }, () => s, { get iconNode() {
524
+ return r;
525
+ } }));
526
+ }
527
+ var st = /* @__PURE__ */ new Set([
528
+ "$$slots",
529
+ "$$events",
530
+ "$$legacy"
531
+ ]);
532
+ function at(a, t) {
533
+ let s = e.rest_props(t, st);
534
+ const r = [
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
+ N(a, e.spread_props({ name: "layout-template" }, () => s, { get iconNode() {
558
+ return r;
559
+ } }));
560
+ }
561
+ var it = /* @__PURE__ */ new Set([
562
+ "$$slots",
563
+ "$$events",
564
+ "$$legacy"
565
+ ]);
566
+ function rt(a, t) {
567
+ let s = e.rest_props(t, it);
568
+ const r = [
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
+ N(a, e.spread_props({ name: "move" }, () => s, { get iconNode() {
577
+ return r;
578
+ } }));
579
+ }
580
+ var lt = /* @__PURE__ */ new Set([
581
+ "$$slots",
582
+ "$$events",
583
+ "$$legacy"
584
+ ]);
585
+ function nt(a, t) {
586
+ let s = e.rest_props(t, lt);
587
+ const r = [["polygon", { points: "3 11 22 2 13 21 11 13 3 11" }]];
588
+ N(a, e.spread_props({ name: "navigation" }, () => s, { get iconNode() {
589
+ return r;
590
+ } }));
591
+ }
592
+ var ot = /* @__PURE__ */ new Set([
593
+ "$$slots",
594
+ "$$events",
595
+ "$$legacy"
596
+ ]);
597
+ function pt(a, t) {
598
+ let s = e.rest_props(t, ot);
599
+ const r = [
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
+ N(a, e.spread_props({ name: "palette" }, () => s, { get iconNode() {
627
+ return r;
628
+ } }));
629
+ }
630
+ var ct = /* @__PURE__ */ new Set([
631
+ "$$slots",
632
+ "$$events",
633
+ "$$legacy"
634
+ ]);
635
+ function dt(a, t) {
636
+ let s = e.rest_props(t, ct);
637
+ const r = [
638
+ ["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" }],
639
+ ["rect", {
640
+ x: "3",
641
+ y: "14",
642
+ width: "7",
643
+ height: "7",
644
+ rx: "1"
645
+ }],
646
+ ["circle", {
647
+ cx: "17.5",
648
+ cy: "17.5",
649
+ r: "3.5"
650
+ }]
651
+ ];
652
+ N(a, e.spread_props({ name: "shapes" }, () => s, { get iconNode() {
653
+ return r;
654
+ } }));
655
+ }
656
+ var vt = /* @__PURE__ */ new Set([
657
+ "$$slots",
658
+ "$$events",
659
+ "$$legacy"
660
+ ]);
661
+ function ut(a, t) {
662
+ let s = e.rest_props(t, vt);
663
+ const r = [
664
+ ["path", { d: "M12 3v18" }],
665
+ ["rect", {
666
+ width: "18",
667
+ height: "18",
668
+ x: "3",
669
+ y: "3",
670
+ rx: "2"
671
+ }],
672
+ ["path", { d: "M3 9h18" }],
673
+ ["path", { d: "M3 15h18" }]
674
+ ];
675
+ N(a, e.spread_props({ name: "table" }, () => s, { get iconNode() {
676
+ return r;
677
+ } }));
678
+ }
679
+ var ht = /* @__PURE__ */ new Set([
680
+ "$$slots",
681
+ "$$events",
682
+ "$$legacy"
683
+ ]);
684
+ function J(a, t) {
685
+ let s = e.rest_props(t, ht);
686
+ const r = [["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" }]];
687
+ N(a, e.spread_props({ name: "wrench" }, () => s, { get iconNode() {
688
+ return r;
689
+ } }));
690
+ }
691
+ var gt = e.from_html('<div class="pptx-svelte-ai-tool-error svelte-1878924"> </div>'), _t = 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>'), ft = 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>');
692
+ function mt(a, t) {
693
+ e.push(t, !0);
694
+ const s = B(), r = {
695
+ view: Ye,
696
+ text: le,
697
+ shape: dt,
698
+ theme: pt,
699
+ table: ut,
700
+ slide: at,
701
+ chart: Je,
702
+ move: rt,
703
+ delete: ve,
704
+ search: se,
705
+ nav: nt,
706
+ animation: tt,
707
+ notes: oe,
708
+ tool: J
709
+ }, 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(() => ge(t.part.toolName, t.part.input, e.get(M) ? "present" : "past")), q = e.derived(() => r[e.get(y).icon] ?? J), S = 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"));
710
+ var m = ft(), x = e.child(m), g = e.child(x);
711
+ {
712
+ let o = e.derived(() => e.get(n) ? "pptx-svelte-ai-tool-ic is-error" : "pptx-svelte-ai-tool-ic");
713
+ e.component(g, () => e.get(q), (k, j) => {
714
+ j(k, {
715
+ size: 14,
716
+ get class() {
717
+ return e.get(o);
718
+ },
719
+ "aria-hidden": "true"
720
+ });
721
+ });
722
+ }
723
+ var _ = e.sibling(g, 2);
724
+ let v;
725
+ var P = e.child(_, !0);
726
+ e.reset(_);
727
+ var p = e.sibling(_, 2);
728
+ let d;
729
+ var w = e.child(p), A = (o) => {
730
+ ee(o, {
731
+ size: 11,
732
+ class: "pptx-svelte-ai-spin",
733
+ "aria-hidden": "true"
734
+ });
735
+ };
736
+ e.if(w, (o) => {
737
+ e.get(M) && o(A);
738
+ });
739
+ var z = e.sibling(w, 2), i = (o) => {
740
+ Y(o, {
741
+ size: 11,
742
+ "aria-hidden": "true"
743
+ });
744
+ };
745
+ e.if(z, (o) => {
746
+ e.get(h) && o(i);
747
+ });
748
+ var l = e.sibling(z, 2), c = (o) => {
749
+ X(o, {
750
+ size: 11,
751
+ "aria-hidden": "true"
752
+ });
753
+ };
754
+ e.if(l, (o) => {
755
+ e.get(n) && o(c);
756
+ });
757
+ var u = e.sibling(l);
758
+ e.reset(p), e.reset(x);
759
+ var T = e.sibling(x, 2), f = (o) => {
760
+ var k = gt(), j = e.child(k, !0);
761
+ e.reset(k), e.template_effect(() => e.set_text(j, t.part.errorText)), e.append(o, k);
762
+ };
763
+ e.if(T, (o) => {
764
+ e.get(n) && t.part.errorText && o(f);
765
+ });
766
+ var E = e.sibling(T, 2), b = (o) => {
767
+ var k = _t(), j = e.child(k), F = e.child(j, !0);
768
+ e.reset(j);
769
+ var L = e.sibling(j, 2), $ = e.child(L);
770
+ e.reset(L), e.reset(k), e.template_effect((D, H) => {
771
+ e.set_text(F, D), e.set_text($, `${H ?? ""}: ${e.get(S) ?? ""}`);
772
+ }, [() => s("pptx.ai.toolDetails"), () => te(t.part.toolName)]), e.append(o, k);
773
+ };
774
+ e.if(E, (o) => {
775
+ e.get(S) && o(b);
776
+ }), e.reset(m), e.template_effect(() => {
777
+ 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, {
778
+ "is-error": e.get(n),
779
+ "is-done": e.get(h)
780
+ }), e.set_text(u, ` ${e.get(C) ?? ""}`);
781
+ }), e.append(a, m), e.pop();
782
+ }
783
+ 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>'), bt = e.from_html('<p class="pptx-svelte-ai-msg-text svelte-16qhgfb"> </p>'), yt = e.from_html('<div class="pptx-svelte-ai-msg svelte-16qhgfb"><div><!></div> <div class="pptx-svelte-ai-msg-body svelte-16qhgfb"></div></div>'), kt = 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>'), St = e.from_html('<div class="pptx-svelte-ai-messages svelte-16qhgfb" role="log" aria-live="polite"><!> <!> <div class="svelte-16qhgfb"></div></div>');
784
+ function wt(a, t) {
785
+ e.push(t, !0);
786
+ const s = B();
787
+ let r = e.state(void 0);
788
+ e.user_effect(() => {
789
+ t.messages, t.isStreaming, e.get(r)?.scrollIntoView({ block: "end" });
790
+ });
791
+ var n = e.comment(), h = e.first_child(n), M = (q) => {
792
+ var S = xt(), C = e.child(S);
793
+ Q(C, {
794
+ size: 26,
795
+ "aria-hidden": "true"
796
+ });
797
+ var m = e.sibling(C, 2), x = e.child(m, !0);
798
+ e.reset(m);
799
+ var g = e.sibling(m, 2), _ = e.child(g, !0);
800
+ e.reset(g), e.reset(S), e.template_effect((v, P) => {
801
+ e.set_text(x, v), e.set_text(_, P);
802
+ }, [() => s("pptx.ai.emptyTitle"), () => s("pptx.ai.emptyHint")]), e.append(q, S);
803
+ }, y = (q) => {
804
+ var S = St(), C = e.child(S);
805
+ e.each(C, 17, () => t.messages, (_) => _.id, (_, v) => {
806
+ const P = e.derived(() => e.get(v).role === "user"), p = e.derived(() => de(e.get(v)));
807
+ var d = e.comment(), w = e.first_child(d), A = (z) => {
808
+ var i = yt(), l = e.child(i);
809
+ let c;
810
+ var u = e.child(l), T = (b) => {
811
+ Ue(b, {
812
+ size: 14,
813
+ "aria-hidden": "true"
814
+ });
815
+ }, f = (b) => {
816
+ Ge(b, {
817
+ size: 14,
818
+ "aria-hidden": "true"
819
+ });
820
+ };
821
+ e.if(u, (b) => {
822
+ e.get(P) ? b(T) : b(f, -1);
823
+ }), e.reset(l);
824
+ var E = e.sibling(l, 2);
825
+ e.each(E, 23, () => e.get(p), (b, o) => b.kind === "tool" && b.toolCallId || o, (b, o) => {
826
+ var k = e.comment(), j = e.first_child(k), F = ($) => {
827
+ var D = bt(), H = e.child(D, !0);
828
+ e.reset(D), e.template_effect(() => e.set_text(H, e.get(o).text)), e.append($, D);
829
+ }, L = ($) => {
830
+ mt($, { get part() {
831
+ return e.get(o);
832
+ } });
833
+ };
834
+ e.if(j, ($) => {
835
+ e.get(o).kind === "text" ? $(F) : $(L, -1);
836
+ }), e.append(b, k);
837
+ }), e.reset(E), e.reset(i), e.template_effect((b) => {
838
+ 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);
839
+ }, [() => e.get(P) ? s("pptx.ai.you") : s("pptx.ai.assistant")]), e.append(z, i);
840
+ };
841
+ e.if(w, (z) => {
842
+ (e.get(P) || e.get(p).length > 0) && z(A);
843
+ }), e.append(_, d);
844
+ });
845
+ var m = e.sibling(C, 2), x = (_) => {
846
+ var v = kt(), P = e.sibling(e.child(v));
847
+ e.reset(v), e.template_effect((p) => e.set_text(P, ` ${p ?? ""}`), [() => s("pptx.ai.thinking")]), e.append(_, v);
848
+ };
849
+ e.if(m, (_) => {
850
+ t.isStreaming && _(x);
851
+ });
852
+ var g = e.sibling(m, 2);
853
+ e.bind_this(g, (_) => e.set(r, _), () => e.get(r)), e.reset(S), e.append(q, S);
854
+ };
855
+ e.if(h, (q) => {
856
+ t.messages.length === 0 ? q(M) : q(y, -1);
857
+ }), e.append(a, n), e.pop();
858
+ }
859
+ var Pt = e.from_html('<li class="svelte-15p5728"> </li>'), Nt = 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>');
860
+ function Tt(a, t) {
861
+ e.push(t, !0);
862
+ const s = B(), r = e.derived(() => t.proposal.summary.map(ie));
863
+ var n = Mt(), h = e.child(n), M = e.child(h, !0);
864
+ e.reset(h);
865
+ var y = e.sibling(h, 2), q = e.child(y, !0);
866
+ e.reset(y);
867
+ var S = e.sibling(y, 2), C = (d) => {
868
+ var w = Nt();
869
+ e.each(w, 21, () => e.get(r), e.index, (A, z) => {
870
+ var i = Pt(), l = e.child(i, !0);
871
+ e.reset(i), e.template_effect(() => e.set_text(l, e.get(z))), e.append(A, i);
872
+ }), e.reset(w), e.append(d, w);
873
+ };
874
+ e.if(S, (d) => {
875
+ e.get(r).length > 0 && d(C);
876
+ });
877
+ var m = e.sibling(S, 2), x = e.child(m), g = e.child(x);
878
+ Y(g, {
879
+ size: 13,
880
+ "aria-hidden": "true"
881
+ });
882
+ var _ = e.sibling(g);
883
+ e.reset(x);
884
+ var v = e.sibling(x, 2), P = e.child(v);
885
+ G(P, {
886
+ size: 13,
887
+ "aria-hidden": "true"
888
+ });
889
+ var p = e.sibling(P);
890
+ e.reset(v), e.reset(m), e.reset(n), e.template_effect((d, w, A) => {
891
+ 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(_, ` ${w ?? ""}`), e.set_text(p, ` ${A ?? ""}`);
892
+ }, [
893
+ () => s("pptx.ai.proposedChange"),
894
+ () => s("pptx.ai.accept"),
895
+ () => s("pptx.ai.reject")
896
+ ]), e.delegated("click", x, () => t.onaccept(t.proposal.id)), e.delegated("click", v, () => t.onreject(t.proposal.id)), e.append(a, n), e.pop();
897
+ }
898
+ e.delegate(["click"]);
899
+ var qt = e.from_html('<div class="pptx-svelte-ai-state svelte-nmv6mg"><!></div>'), Ct = 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>'), jt = 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>'), At = e.from_html('<button type="button" class="pptx-svelte-ai-accept-all svelte-nmv6mg"> </button>'), zt = 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>'), Et = e.from_html('<div class="pptx-svelte-ai-body svelte-nmv6mg"><!> <!> <!> <!> <!></div>'), It = 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>');
900
+ function Vt(a, t) {
901
+ e.push(t, !0);
902
+ const s = B();
903
+ function r(i) {
904
+ i && i.slideIndex !== void 0 && t.bridge.goToSlide(i.slideIndex), t.aiPanel.flashToolTarget(i);
905
+ }
906
+ const n = O(() => new we({
907
+ bridge: t.bridge,
908
+ config: t.config,
909
+ onToolTarget: r
910
+ }));
911
+ e.user_effect(() => {
912
+ const i = n.session;
913
+ if (i)
914
+ return i.changeAnimator.subscribe((l) => {
915
+ l && t.bridge.goToSlide(l.slideIndex), t.aiPanel.showChangeBatch(l);
916
+ });
917
+ });
918
+ function h(i) {
919
+ t.aiPanel.flashToolTarget(null), n.applyProposal(i);
920
+ }
921
+ function M() {
922
+ t.aiPanel.flashToolTarget(null), n.acceptAllProposals();
923
+ }
924
+ const y = O(() => re()), q = O(() => ke(t.bridge)), S = O(() => ye()), C = Date.now();
925
+ let m;
926
+ e.user_effect(() => {
927
+ const i = n.messages;
928
+ if (i.length !== 0)
929
+ return clearTimeout(m), m = setTimeout(() => {
930
+ y.saveChat({
931
+ id: S,
932
+ title: Se(i) || s("pptx.ai.untitledChat"),
933
+ deckId: q,
934
+ messages: i,
935
+ createdAt: C,
936
+ updatedAt: Date.now()
937
+ });
938
+ }, 800), () => clearTimeout(m);
939
+ }), fe(() => {
940
+ n.init();
941
+ });
942
+ var x = It(), g = e.child(x), _ = e.child(g);
943
+ Q(_, {
944
+ size: 16,
945
+ class: "pptx-svelte-ai-header-icon",
946
+ "aria-hidden": "true"
947
+ });
948
+ var v = e.sibling(_, 2), P = e.child(v, !0);
949
+ e.reset(v);
950
+ var p = e.sibling(v, 2);
951
+ G(e.child(p), {
952
+ size: 16,
953
+ "aria-hidden": "true"
954
+ }), e.reset(p), e.reset(g);
955
+ var d = e.sibling(g, 2), w = (i) => {
956
+ var l = qt();
957
+ ee(e.child(l), {
958
+ size: 20,
959
+ class: "pptx-svelte-ai-spin",
960
+ "aria-hidden": "true"
961
+ }), e.reset(l), e.append(i, l);
962
+ }, A = (i) => {
963
+ var l = Ct(), c = e.child(l);
964
+ X(c, {
965
+ size: 24,
966
+ "aria-hidden": "true"
967
+ });
968
+ var u = e.sibling(c, 2), T = e.child(u, !0);
969
+ e.reset(u);
970
+ var f = e.sibling(u, 2), E = e.child(f, !0);
971
+ e.reset(f), e.reset(l), e.template_effect((b, o) => {
972
+ e.set_text(T, b), e.set_text(E, o);
973
+ }, [() => s("pptx.ai.unavailableTitle"), () => n.initError?.message ?? s("pptx.ai.unavailableHint")]), e.append(i, l);
974
+ }, z = (i) => {
975
+ var l = Et(), c = e.child(l);
976
+ {
977
+ let o = e.derived(() => t.bridge.getSlides());
978
+ We(c, {
979
+ get targets() {
980
+ return t.aiPanel.effectiveTargets;
981
+ },
982
+ get slides() {
983
+ return e.get(o);
984
+ },
985
+ get isPinned() {
986
+ return t.aiPanel.isPinned;
987
+ },
988
+ get hasPicks() {
989
+ return t.aiPanel.hasPicks;
990
+ },
991
+ get pickMode() {
992
+ return t.aiPanel.pickMode;
993
+ },
994
+ onpin: () => t.aiPanel.pinFocus(),
995
+ onclearpin: () => t.aiPanel.clearPinnedFocus(),
996
+ onsenddirective: (k) => n.send(k),
997
+ onstartpick: () => t.aiPanel.startPicking(),
998
+ onstoppick: () => t.aiPanel.stopPicking(),
999
+ onclearpicks: () => t.aiPanel.clearPicks()
1000
+ });
1001
+ }
1002
+ var u = e.sibling(c, 2);
1003
+ wt(u, {
1004
+ get messages() {
1005
+ return n.messages;
1006
+ },
1007
+ get isStreaming() {
1008
+ return n.isStreaming;
1009
+ }
1010
+ });
1011
+ var T = e.sibling(u, 2), f = (o) => {
1012
+ var k = jt(), j = e.child(k);
1013
+ X(j, {
1014
+ size: 14,
1015
+ "aria-hidden": "true"
1016
+ });
1017
+ var F = e.sibling(j, 2), L = e.child(F), $ = e.child(L, !0);
1018
+ e.reset(L);
1019
+ var D = e.sibling(L, 2), H = e.child(D, !0);
1020
+ e.reset(D), e.reset(F);
1021
+ var I = e.sibling(F, 2), V = e.child(I, !0);
1022
+ e.reset(I), e.reset(k), e.template_effect((K, W) => {
1023
+ e.set_text($, K), e.set_attribute(D, "title", n.error.message), e.set_text(H, n.error.message), e.set_text(V, W);
1024
+ }, [() => s("pptx.ai.errorPrefix"), () => s("pptx.ai.retry")]), e.delegated("click", I, () => n.clearError()), e.append(o, k);
1025
+ };
1026
+ e.if(T, (o) => {
1027
+ n.error && o(f);
1028
+ });
1029
+ var E = e.sibling(T, 2), b = (o) => {
1030
+ var k = zt(), j = e.child(k), F = e.child(j), L = e.child(F, !0);
1031
+ e.reset(F);
1032
+ var $ = e.sibling(F, 2), D = (I) => {
1033
+ var V = At(), K = e.child(V, !0);
1034
+ e.reset(V), e.template_effect((W) => e.set_text(K, W), [() => s("pptx.ai.acceptAll")]), e.delegated("click", V, M), e.append(I, V);
1035
+ };
1036
+ e.if($, (I) => {
1037
+ n.proposals.length > 1 && I(D);
1038
+ }), e.reset(j);
1039
+ var H = e.sibling(j, 2);
1040
+ e.each(H, 17, () => n.proposals, (I) => I.id, (I, V) => {
1041
+ Tt(I, {
1042
+ get proposal() {
1043
+ return e.get(V);
1044
+ },
1045
+ onaccept: h,
1046
+ onreject: (K) => n.rejectProposal(K)
1047
+ });
1048
+ }), e.reset(k), e.template_effect((I) => e.set_text(L, I), [() => s("pptx.ai.pendingChanges", { count: n.proposals.length })]), e.append(o, k);
1049
+ };
1050
+ e.if(E, (o) => {
1051
+ n.proposals.length > 0 && o(b);
1052
+ }), Ae(e.sibling(E, 2), {
1053
+ get isStreaming() {
1054
+ return n.isStreaming;
1055
+ },
1056
+ onsend: (o) => n.send(o),
1057
+ onstop: () => n.stop(),
1058
+ get prefillText() {
1059
+ return t.aiPanel.prefill.text;
1060
+ },
1061
+ get prefillNonce() {
1062
+ return t.aiPanel.prefill.nonce;
1063
+ }
1064
+ }), e.reset(l), e.append(i, l);
1065
+ };
1066
+ e.if(d, (i) => {
1067
+ n.initState === "checking" ? i(w) : n.initState === "unavailable" || n.initState === "error" ? i(A, 1) : n.initState === "ready" && i(z, 2);
1068
+ }), e.reset(x), e.template_effect((i, l, c, u) => {
1069
+ e.set_attribute(x, "aria-label", i), e.set_text(P, l), e.set_attribute(p, "title", c), e.set_attribute(p, "aria-label", u);
1070
+ }, [
1071
+ () => s("pptx.ai.title"),
1072
+ () => s("pptx.ai.title"),
1073
+ () => s("pptx.ai.close"),
1074
+ () => s("pptx.ai.close")
1075
+ ]), e.delegated("click", p, function(...i) {
1076
+ t.onclose?.apply(this, i);
1077
+ }), e.append(a, x), e.pop();
1078
+ }
1079
+ e.delegate(["click"]);
1080
+ export {
1081
+ Vt as default
1082
+ };