@vc-shell/framework 2.4.0-pr295.d5bed36 → 2.4.0-pr296.cd94f75

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 (23) hide show
  1. package/dist/ai-agent/index.js +2 -2
  2. package/dist/chunks/{VcAiAgentPanel.vue_vue_type_script_setup_true_lang-DKRyBR_M.js → VcAiAgentPanel.vue_vue_type_script_setup_true_lang-bvyt-Rtf.js} +375 -366
  3. package/dist/chunks/VcAiAgentPanel.vue_vue_type_script_setup_true_lang-bvyt-Rtf.js.map +1 -0
  4. package/dist/chunks/{VcScheduler.vue_vue_type_script_setup_true_lang-D73V_F2S.js → VcScheduler.vue_vue_type_script_setup_true_lang-CKYQL237.js} +4 -1
  5. package/dist/chunks/VcScheduler.vue_vue_type_script_setup_true_lang-CKYQL237.js.map +1 -0
  6. package/dist/chunks/{index-Cp8w9Q3q.js → index-DYMV0pFy.js} +1 -1
  7. package/dist/chunks/{index-Cp8w9Q3q.js.map → index-DYMV0pFy.js.map} +1 -1
  8. package/dist/core/plugins/ai-agent/services/ai-agent-service.d.ts.map +1 -1
  9. package/dist/core/plugins/ai-agent/services/message-transport.d.ts +2 -0
  10. package/dist/core/plugins/ai-agent/services/message-transport.d.ts.map +1 -1
  11. package/dist/core/plugins/ai-agent/types.d.ts +1 -1
  12. package/dist/core/plugins/ai-agent/types.d.ts.map +1 -1
  13. package/dist/framework.js +17 -9
  14. package/dist/framework.js.map +1 -1
  15. package/dist/shell/auth/ChangePasswordPage/components/change-password/ChangePassword.vue.d.ts.map +1 -1
  16. package/dist/shell/auth/InvitePage/components/invite/Invite.vue.d.ts.map +1 -1
  17. package/dist/shell/auth/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts.map +1 -1
  18. package/dist/shell/components/change-password/change-password.vue.d.ts.map +1 -1
  19. package/dist/tsconfig.tsbuildinfo +1 -1
  20. package/dist/ui/index.js +1 -1
  21. package/package.json +4 -4
  22. package/dist/chunks/VcAiAgentPanel.vue_vue_type_script_setup_true_lang-DKRyBR_M.js.map +0 -1
  23. package/dist/chunks/VcScheduler.vue_vue_type_script_setup_true_lang-D73V_F2S.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { ref as D, computed as E, shallowRef as Ge, watch as q, getCurrentInstance as ee, inject as N, isRef as Ve, provide as ke, defineComponent as H, openBlock as y, createElementBlock as x, createElementVNode as A, createCommentVNode as z, createStaticVNode as Ke, Fragment as Ae, renderList as qe, toDisplayString as K, createVNode as O, createBlock as se, unref as T, withCtx as F, withKeys as U, withModifiers as G, createTextVNode as Ce, Transition as Pe, normalizeClass as Me, onUnmounted as ze, normalizeStyle as He } from "vue";
1
+ import { ref as D, computed as b, shallowRef as Ge, watch as q, getCurrentInstance as ee, inject as N, isRef as Ve, provide as Pe, defineComponent as H, openBlock as B, createElementBlock as S, createElementVNode as A, createCommentVNode as z, createStaticVNode as Ke, Fragment as Ae, renderList as qe, toDisplayString as K, createVNode as P, createBlock as se, unref as x, withCtx as $, withKeys as U, withModifiers as G, createTextVNode as Ce, Transition as ke, normalizeClass as Me, onUnmounted as ze, normalizeStyle as He } from "vue";
2
2
  import { c as W, b as De, d as We, B as Ze, e as Xe, f as Ye, A as be, L as je, g as Qe, T as Je, a as me, _ as ie, E as et } from "./VcAiAgentPanel.vue_vue_type_style_index_0_lang-CZdY18Hq.js";
3
3
  import { c as te } from "./vendor-lodash-es-D2n90GJy.js";
4
4
  import { u as tt } from "./vendor-vueuse-core-BFa9je5E.js";
@@ -20,7 +20,7 @@ const at = {
20
20
  AI_CHAT_MESSAGE: "AI_CHAT_MESSAGE"
21
21
  }, ot = "ai-agent-toggle", rt = "lucide-sparkles", it = "AI Assistant", ne = W("ai-agent-panel");
22
22
  function st() {
23
- const e = D("closed"), o = D(!1), t = E(() => e.value !== "closed"), s = E(() => e.value === "expanded"), n = () => {
23
+ const e = D("closed"), o = D(!1), t = b(() => e.value !== "closed"), s = b(() => e.value === "expanded"), n = () => {
24
24
  e.value === "closed" && (e.value = "open", ne.debug("Panel opened"));
25
25
  }, c = () => {
26
26
  e.value = "closed", o.value = !1, ne.debug("Panel closed, reset initialized state");
@@ -57,8 +57,8 @@ function we(e) {
57
57
  }
58
58
  function lt(e) {
59
59
  const { userGetter: o, bladeGetter: t, localeGetter: s, tokenGetter: n } = e, c = D(/* @__PURE__ */ new Map()), f = () => {
60
- const v = t();
61
- return v ? c.value.get(v.id) ?? {
60
+ const E = t();
61
+ return E ? c.value.get(E.id) ?? {
62
62
  items: [],
63
63
  type: "list",
64
64
  suggestions: void 0
@@ -67,166 +67,174 @@ function lt(e) {
67
67
  type: "list",
68
68
  suggestions: void 0
69
69
  };
70
- }, d = E(() => f().items), u = E(() => f().type), g = E(() => f().suggestions), m = E(() => d.value.length);
70
+ }, l = b(() => f().items), d = b(() => f().type), u = b(() => f().suggestions), h = b(() => l.value.length);
71
71
  return {
72
- contextItems: d,
73
- contextType: u,
74
- contextSuggestions: g,
75
- totalItemsCount: m,
76
- setContextData: (v, I, P, $) => {
77
- const M = t()?.id || $;
78
- return M ? v.length === 0 && !P ? (c.value.delete(M), he.debug(`Context cleared for blade: ${M}`), { cleared: !0 }) : (c.value.set(M, { items: v, type: I, suggestions: P }), he.debug(`Context set for blade: ${M}, items: ${v.length}, type: ${I}`), { cleared: !1 }) : (he.warn("Cannot set context data: no blade id available"), { cleared: !1 });
72
+ contextItems: l,
73
+ contextType: d,
74
+ contextSuggestions: u,
75
+ totalItemsCount: h,
76
+ setContextData: (E, w, T, F) => {
77
+ const M = t()?.id || F;
78
+ return M ? E.length === 0 && !T ? (c.value.delete(M), he.debug(`Context cleared for blade: ${M}`), { cleared: !0 }) : (c.value.set(M, { items: E, type: w, suggestions: T }), he.debug(`Context set for blade: ${M}, items: ${E.length}, type: ${w}`), { cleared: !1 }) : (he.warn("Cannot set context data: no blade id available"), { cleared: !1 });
79
79
  },
80
80
  buildInitPayload: async () => {
81
- const v = n ? await n() ?? void 0 : void 0;
81
+ const E = n ? await n() ?? void 0 : void 0;
82
82
  return {
83
83
  userId: o()?.id || "",
84
84
  locale: s(),
85
85
  blade: we(t()),
86
- contextType: u.value,
87
- items: te(d.value),
88
- suggestions: g.value ? te(g.value) : void 0,
89
- accessToken: v
86
+ contextType: d.value,
87
+ items: te(l.value),
88
+ suggestions: u.value ? te(u.value) : void 0,
89
+ accessToken: E
90
90
  };
91
91
  },
92
92
  buildUpdatePayload: async () => {
93
- const v = n ? await n() ?? void 0 : void 0;
93
+ const E = n ? await n() ?? void 0 : void 0;
94
94
  return {
95
95
  blade: we(t()),
96
- contextType: u.value,
97
- items: te(d.value),
98
- suggestions: g.value ? te(g.value) : void 0,
96
+ contextType: d.value,
97
+ items: te(l.value),
98
+ suggestions: u.value ? te(u.value) : void 0,
99
99
  locale: s(),
100
- accessToken: v
100
+ accessToken: E
101
101
  };
102
102
  }
103
103
  };
104
104
  }
105
- const S = W("ai-agent-transport");
106
- function dt(e) {
107
- const { getConfig: o, isEmbedded: t, navigateToBlade: s } = e, n = Ge(null), c = D(!1), f = D(!1), d = /* @__PURE__ */ new Set(), u = /* @__PURE__ */ new Set();
108
- function g(l, b) {
109
- switch (l) {
105
+ const O = W("ai-agent-transport");
106
+ function ct(e) {
107
+ const { getConfig: o, isEmbedded: t, navigateToBlade: s, closePanel: n } = e, c = Ge(null), f = D(!1), l = D(!1), d = /* @__PURE__ */ new Set(), u = /* @__PURE__ */ new Set();
108
+ function h(g, C) {
109
+ switch (g) {
110
110
  case "NAVIGATE_TO_APP": {
111
- const v = b;
112
- s && v?.bladeName && (s(v.bladeName, v.param, v.options), S.debug(`Navigation requested to: ${v.bladeName}`));
111
+ const w = C;
112
+ s && w?.bladeName && (s(w.bladeName, w.param, w.options), O.debug(`Navigation requested to: ${w.bladeName}`));
113
+ break;
114
+ }
115
+ // The panel's own Escape handler listens on the host document, which never sees a
116
+ // keystroke delivered to a cross-origin iframe. So while the chatbot holds focus the
117
+ // only route back is the chatbot relaying it here (VCST-5673). Closing a panel exposes
118
+ // nothing, and the sender's origin is already checked before this runs.
119
+ case "CLOSE_PANEL": {
120
+ n && (n(), O.debug("Panel close requested by the chatbot"));
113
121
  break;
114
122
  }
115
123
  }
116
- const _ = {
117
- type: l,
118
- payload: b,
124
+ const E = {
125
+ type: g,
126
+ payload: C,
119
127
  timestamp: Date.now()
120
128
  };
121
- d.forEach((v) => {
129
+ d.forEach((w) => {
122
130
  try {
123
- v(_);
124
- } catch (I) {
125
- S.error("Handler error:", I);
131
+ w(E);
132
+ } catch (T) {
133
+ O.error("Handler error:", T);
126
134
  }
127
135
  });
128
136
  }
129
- function m(l) {
130
- const _ = o().allowedOrigins ?? [];
131
- if (_.length === 0) {
132
- S.warn(
137
+ function v(g) {
138
+ const E = o().allowedOrigins ?? [];
139
+ if (E.length === 0) {
140
+ O.warn(
133
141
  "Ignoring postMessage: aiAgentConfig.allowedOrigins is empty. Configure explicit origins to enable the AI agent bridge.",
134
- { origin: l.origin, type: l.data?.type }
142
+ { origin: g.origin, type: g.data?.type }
135
143
  );
136
144
  return;
137
145
  }
138
- if (_.includes("*")) {
139
- S.error(
146
+ if (E.includes("*")) {
147
+ O.error(
140
148
  'Refusing postMessage with wildcard allowedOrigins. Replace "*" with explicit origins (e.g. ["https://chat.example.com"]).'
141
149
  );
142
150
  return;
143
151
  }
144
- if (!_.includes(l.origin))
152
+ if (!E.includes(g.origin))
145
153
  return;
146
- const v = l.data;
147
- if (!(!v?.type || typeof v.type != "string"))
148
- switch (S.debug(`Message received: ${v.type}`), v.type) {
154
+ const w = g.data;
155
+ if (!(!w?.type || typeof w.type != "string"))
156
+ switch (O.debug(`Message received: ${w.type}`), w.type) {
149
157
  // Embedded: parent forwards chat messages wrapped in AI_CHAT_MESSAGE
150
158
  case "AI_CHAT_MESSAGE": {
151
159
  if (t) {
152
- const I = v.payload;
153
- I?.type && g(I.type, I.payload);
160
+ const T = w.payload;
161
+ T?.type && h(T.type, T.payload);
154
162
  }
155
163
  return;
156
164
  }
157
165
  // Normal: chatbot signals it's ready
158
166
  case "CHAT_READY":
159
- u.forEach((I) => {
167
+ u.forEach((T) => {
160
168
  try {
161
- I();
162
- } catch (P) {
163
- S.error("ChatReady handler error:", P);
169
+ T();
170
+ } catch (F) {
171
+ O.error("ChatReady handler error:", F);
164
172
  }
165
173
  });
166
174
  break;
167
175
  // Normal: direct chat protocol messages
168
176
  default:
169
- g(v.type, v.payload);
177
+ h(w.type, w.payload);
170
178
  break;
171
179
  }
172
180
  }
173
181
  return {
174
- iframeRef: n,
175
- pendingInitContext: c,
176
- isListenerRegistered: f,
177
- setIframeRef(l) {
178
- n.value = l, S.debug("Iframe ref set:", l ? "available" : "null");
182
+ iframeRef: c,
183
+ pendingInitContext: f,
184
+ isListenerRegistered: l,
185
+ setIframeRef(g) {
186
+ c.value = g, O.debug("Iframe ref set:", g ? "available" : "null");
179
187
  },
180
- sendToIframe(l) {
181
- if (!n.value?.contentWindow) {
182
- S.warn("Cannot send message: iframe not available");
188
+ sendToIframe(g) {
189
+ if (!c.value?.contentWindow) {
190
+ O.warn("Cannot send message: iframe not available");
183
191
  return;
184
192
  }
185
- const b = o().allowedOrigins?.[0];
186
- if (!b || b === "*") {
187
- S.error(
193
+ const C = o().allowedOrigins?.[0];
194
+ if (!C || C === "*") {
195
+ O.error(
188
196
  "Refusing to send to iframe: aiAgentConfig.allowedOrigins must contain an explicit origin. Message dropped to avoid leaking data (including access tokens) to arbitrary origins.",
189
- { type: l.type }
197
+ { type: g.type }
190
198
  );
191
199
  return;
192
200
  }
193
- n.value.contentWindow.postMessage(l, b), S.debug(`Sent to iframe: ${l.type}`);
201
+ c.value.contentWindow.postMessage(g, C), O.debug(`Sent to iframe: ${g.type}`);
194
202
  },
195
- sendToParent(l) {
203
+ sendToParent(g) {
196
204
  if (!window.parent || window.parent === window) {
197
- S.warn("Cannot send to parent: not in iframe");
205
+ O.warn("Cannot send to parent: not in iframe");
198
206
  return;
199
207
  }
200
- const b = o().parentOrigin;
201
- if (!b || b === "*") {
202
- S.error(
208
+ const C = o().parentOrigin;
209
+ if (!C || C === "*") {
210
+ O.error(
203
211
  "Refusing to send to parent: aiAgentConfig.parentOrigin must be an explicit origin. Message dropped to avoid leaking data (including access tokens) to arbitrary origins.",
204
- { type: l.type }
212
+ { type: g.type }
205
213
  );
206
214
  return;
207
215
  }
208
- window.parent.postMessage(l, b), S.debug(`Sent to parent: ${l.type}`);
216
+ window.parent.postMessage(g, C), O.debug(`Sent to parent: ${g.type}`);
209
217
  },
210
218
  startListening() {
211
- f.value || (window.addEventListener("message", m), f.value = !0);
219
+ l.value || (window.addEventListener("message", v), l.value = !0);
212
220
  },
213
221
  stopListening() {
214
- f.value && (window.removeEventListener("message", m), f.value = !1);
222
+ l.value && (window.removeEventListener("message", v), l.value = !1);
215
223
  },
216
- onChatReady(l) {
217
- return u.add(l), () => {
218
- u.delete(l);
224
+ onChatReady(g) {
225
+ return u.add(g), () => {
226
+ u.delete(g);
219
227
  };
220
228
  },
221
- onMessage(l) {
222
- return d.add(l), () => {
223
- d.delete(l);
229
+ onMessage(g) {
230
+ return d.add(g), () => {
231
+ d.delete(g);
224
232
  };
225
233
  }
226
234
  };
227
235
  }
228
236
  const ae = W("ai-agent-service");
229
- function ct(e) {
237
+ function dt(e) {
230
238
  const {
231
239
  userGetter: o,
232
240
  bladeGetter: t,
@@ -234,83 +242,84 @@ function ct(e) {
234
242
  tokenGetter: n,
235
243
  navigateToBlade: c,
236
244
  initialConfig: f,
237
- isEmbedded: d = !1
238
- } = e, u = D({ ...at, ...f }), g = st(), m = lt({
245
+ isEmbedded: l = !1
246
+ } = e, d = D({ ...at, ...f }), u = st(), h = lt({
239
247
  userGetter: o,
240
248
  bladeGetter: t,
241
249
  localeGetter: s,
242
250
  tokenGetter: n
243
- }), l = dt({
244
- getConfig: () => u.value,
245
- isEmbedded: d,
246
- navigateToBlade: c
247
- }), b = E(() => ({
251
+ }), v = ct({
252
+ getConfig: () => d.value,
253
+ isEmbedded: l,
254
+ navigateToBlade: c,
255
+ closePanel: () => u.close()
256
+ }), g = b(() => ({
248
257
  user: o(),
249
258
  currentBlade: t(),
250
- items: m.contextItems.value
251
- })), _ = async () => {
252
- if (l.pendingInitContext.value && l.iframeRef.value?.contentWindow) {
253
- l.pendingInitContext.value = !1, g.isInitialized.value = !0;
254
- const B = await m.buildInitPayload();
255
- l.sendToIframe({ type: "INIT_CONTEXT", payload: B }), ae.debug("Flushed pending INIT_CONTEXT");
259
+ items: h.contextItems.value
260
+ })), C = async () => {
261
+ if (v.pendingInitContext.value && v.iframeRef.value?.contentWindow) {
262
+ v.pendingInitContext.value = !1, u.isInitialized.value = !0;
263
+ const I = await h.buildInitPayload();
264
+ v.sendToIframe({ type: "INIT_CONTEXT", payload: I }), ae.debug("Flushed pending INIT_CONTEXT");
256
265
  }
257
266
  };
258
- l.onChatReady(() => {
259
- l.iframeRef.value?.contentWindow ? (g.isInitialized.value = !0, m.buildInitPayload().then((B) => {
260
- l.sendToIframe({ type: "INIT_CONTEXT", payload: B }), ae.info("Chatbot ready, sent INIT_CONTEXT");
261
- })) : (l.pendingInitContext.value = !0, ae.info("Chatbot ready, iframe ref not available yet — pending INIT_CONTEXT"));
262
- }), q(l.iframeRef, () => _()), q(
263
- () => ({ currentBlade: b.value.currentBlade, items: b.value.items }),
267
+ v.onChatReady(() => {
268
+ v.iframeRef.value?.contentWindow ? (u.isInitialized.value = !0, h.buildInitPayload().then((I) => {
269
+ v.sendToIframe({ type: "INIT_CONTEXT", payload: I }), ae.info("Chatbot ready, sent INIT_CONTEXT");
270
+ })) : (v.pendingInitContext.value = !0, ae.info("Chatbot ready, iframe ref not available yet — pending INIT_CONTEXT"));
271
+ }), q(v.iframeRef, () => C()), q(
272
+ () => ({ currentBlade: g.value.currentBlade, items: g.value.items }),
264
273
  async () => {
265
- if (d) {
266
- const B = await m.buildInitPayload();
267
- l.sendToParent({ type: "AI_CONTEXT_UPDATE", payload: B });
274
+ if (l) {
275
+ const I = await h.buildInitPayload();
276
+ v.sendToParent({ type: "AI_CONTEXT_UPDATE", payload: I });
268
277
  return;
269
278
  }
270
- if (g.isOpen.value && g.isInitialized.value && l.iframeRef.value?.contentWindow) {
271
- const B = await m.buildUpdatePayload();
272
- l.sendToIframe({ type: "UPDATE_CONTEXT", payload: B });
279
+ if (u.isOpen.value && u.isInitialized.value && v.iframeRef.value?.contentWindow) {
280
+ const I = await h.buildUpdatePayload();
281
+ v.sendToIframe({ type: "UPDATE_CONTEXT", payload: I });
273
282
  }
274
283
  },
275
284
  { deep: !0 }
276
285
  );
277
- const v = () => d ? l.sendToParent({ type: "AI_TOGGLE_PANEL" }) : g.open(), I = () => d ? l.sendToParent({ type: "AI_TOGGLE_PANEL" }) : g.close(), P = () => d ? l.sendToParent({ type: "AI_TOGGLE_PANEL" }) : g.toggle(), $ = (B) => {
278
- l.setIframeRef(B), _();
279
- }, M = (B, R, Z, X) => {
280
- const { cleared: Y } = m.setContextData(B, R, Z, X);
281
- d && Y && l.sendToParent({ type: "AI_CONTEXT_CLEAR" });
286
+ const E = () => l ? v.sendToParent({ type: "AI_TOGGLE_PANEL" }) : u.open(), w = () => l ? v.sendToParent({ type: "AI_TOGGLE_PANEL" }) : u.close(), T = () => l ? v.sendToParent({ type: "AI_TOGGLE_PANEL" }) : u.toggle(), F = (I) => {
287
+ v.setIframeRef(I), C();
288
+ }, M = (I, R, Z, X) => {
289
+ const { cleared: Y } = h.setContextData(I, R, Z, X);
290
+ l && Y && v.sendToParent({ type: "AI_CONTEXT_CLEAR" });
282
291
  };
283
- return l.startListening(), d && (l.sendToParent({
292
+ return v.startListening(), l && (v.sendToParent({
284
293
  type: "EMBEDDED_APP_READY",
285
294
  payload: { supportedFeatures: ["ai-agent"] }
286
295
  }), ae.info("Embedded mode: sent EMBEDDED_APP_READY to parent")), {
287
296
  // State
288
- panelState: g.panelState,
289
- config: u,
290
- context: b,
291
- isOpen: E(() => !d && g.isOpen.value),
292
- isExpanded: g.isExpanded,
293
- totalItemsCount: m.totalItemsCount,
297
+ panelState: u.panelState,
298
+ config: d,
299
+ context: g,
300
+ isOpen: b(() => !l && u.isOpen.value),
301
+ isExpanded: u.isExpanded,
302
+ totalItemsCount: h.totalItemsCount,
294
303
  // Panel control
295
- openPanel: v,
296
- closePanel: I,
297
- togglePanel: P,
298
- expandPanel: () => g.expand(),
299
- collapsePanel: () => g.collapse(),
304
+ openPanel: E,
305
+ closePanel: w,
306
+ togglePanel: T,
307
+ expandPanel: () => u.expand(),
308
+ collapsePanel: () => u.collapse(),
300
309
  // Configuration
301
- setConfig: (B) => {
302
- u.value = { ...u.value, ...B };
310
+ setConfig: (I) => {
311
+ d.value = { ...d.value, ...I };
303
312
  },
304
313
  // Communication
305
- sendMessage: (B, R) => {
306
- l.sendToIframe({ type: B, payload: R });
314
+ sendMessage: (I, R) => {
315
+ v.sendToIframe({ type: I, payload: R });
307
316
  },
308
- onMessage: l.onMessage,
317
+ onMessage: v.onMessage,
309
318
  // Internal API
310
- iframeRef: l.iframeRef,
311
- _setIframeRef: $,
312
- _startListening: l.startListening,
313
- _stopListening: l.stopListening,
319
+ iframeRef: v.iframeRef,
320
+ _setIframeRef: F,
321
+ _startListening: v.startListening,
322
+ _stopListening: v.stopListening,
314
323
  _setContextData: M
315
324
  };
316
325
  }
@@ -463,19 +472,19 @@ function xe(e, o) {
463
472
  return { path: e ? `/${e}` : "/", query: {} };
464
473
  const t = o[0], s = Se(t.url);
465
474
  let n;
466
- for (let d = o.length - 1; d >= 1; d--)
467
- if (o[d].visible) {
468
- n = o[d];
475
+ for (let l = o.length - 1; l >= 1; l--)
476
+ if (o[l].visible) {
477
+ n = o[l];
469
478
  break;
470
479
  }
471
480
  let c = e ? `/${e}` : "";
472
481
  if (s && (c += `/${s}`), n) {
473
- const d = Se(n.url);
474
- d && (c += `/${d}`), n.param && (c += `/${n.param}`);
482
+ const l = Se(n.url);
483
+ l && (c += `/${l}`), n.param && (c += `/${n.param}`);
475
484
  }
476
485
  const f = {};
477
- for (const d of o)
478
- d.visible && d.query && Object.assign(f, d.query);
486
+ for (const l of o)
487
+ l.visible && l.query && Object.assign(f, l.query);
479
488
  return { path: c || "/", query: f };
480
489
  }
481
490
  function Bn(e, o) {
@@ -506,7 +515,7 @@ function yt(e, o) {
506
515
  return { syncUrlPush: t, syncUrlReplace: s };
507
516
  }
508
517
  const Bt = "useBlade() was called outside a blade. Navigation methods (openBlade) work everywhere, but blade-specific methods require the component to be rendered inside VcBladeSlot.";
509
- function w(e) {
518
+ function y(e) {
510
519
  throw new Error(`[vc-shell] ${e} requires blade context.
511
520
  ${Bt}`);
512
521
  }
@@ -518,129 +527,129 @@ function It() {
518
527
  );
519
528
  const t = e, s = o, n = ee() ? N(Ze, void 0) : void 0, c = ee() ? N(Xe, void 0) : void 0;
520
529
  let f;
521
- function d() {
530
+ function l() {
522
531
  if (f) return f;
523
532
  const r = Fe?.router;
524
533
  return r && (f = yt(r, t)), f;
525
534
  }
526
- const u = E(() => (n || w("id"), n.value.id)), g = E(() => (n || w("param"), n.value.param)), m = E(() => (n || w("options"), n.value.options)), l = E(() => (n || w("query"), n.value.query)), b = E(() => (n || w("closable"), n.value.parentId !== void 0)), _ = E(() => (n || w("expanded"), t.activeBlade.value?.id === n.value.id)), v = E(() => (n || w("name"), n.value.name)), I = E(() => {
535
+ const d = b(() => (n || y("id"), n.value.id)), u = b(() => (n || y("param"), n.value.param)), h = b(() => (n || y("options"), n.value.options)), v = b(() => (n || y("query"), n.value.query)), g = b(() => (n || y("closable"), n.value.parentId !== void 0)), C = b(() => (n || y("expanded"), t.activeBlade.value?.id === n.value.id)), E = b(() => (n || y("name"), n.value.name)), w = b(() => {
527
536
  if (!n) return;
528
537
  const r = n.value.id;
529
- return t.blades.value.find((C) => C.parentId === r)?.param;
538
+ return t.blades.value.find((m) => m.parentId === r)?.param;
530
539
  });
531
- let P = !1;
532
- function $(r) {
533
- if (P) {
540
+ let T = !1;
541
+ function F(r) {
542
+ if (T) {
534
543
  console.warn(
535
544
  "[vc-shell] provideBladeData() called more than once in the same blade. Only the first call takes effect."
536
545
  );
537
546
  return;
538
547
  }
539
- P = !0;
540
- const C = Ve(r) ? r : D(r);
541
- ke(Ye, C);
548
+ T = !0;
549
+ const m = Ve(r) ? r : D(r);
550
+ Pe(Ye, m);
542
551
  }
543
552
  async function M(r) {
544
- const { isWorkspace: C, ...k } = r;
545
- if (C)
553
+ const { isWorkspace: m, ...k } = r;
554
+ if (m)
546
555
  await t.openWorkspace(k);
547
556
  else {
548
557
  const L = n?.value.id;
549
558
  L ? await t.openBlade({ ...k, parentId: L }) : await t.openBlade(k);
550
559
  }
551
- t.activeBlade.value?.url && d()?.syncUrlPush();
560
+ t.activeBlade.value?.url && l()?.syncUrlPush();
552
561
  }
553
- async function B() {
554
- n || w("closeSelf()");
562
+ async function I() {
563
+ n || y("closeSelf()");
555
564
  const r = await t.closeBlade(n.value.id);
556
- return r || d()?.syncUrlReplace(), r;
565
+ return r || l()?.syncUrlReplace(), r;
557
566
  }
558
567
  async function R() {
559
- n || w("closeChildren()"), await t.closeChildren(n.value.id), d()?.syncUrlReplace();
568
+ n || y("closeChildren()"), await t.closeChildren(n.value.id), l()?.syncUrlReplace();
560
569
  }
561
570
  async function Z(r) {
562
- n || w("replaceWith()"), await t.replaceCurrentBlade({
571
+ n || y("replaceWith()"), await t.replaceCurrentBlade({
563
572
  ...r,
564
573
  parentId: n.value.parentId
565
- }), t.activeBlade.value?.url && d()?.syncUrlReplace();
574
+ }), t.activeBlade.value?.url && l()?.syncUrlReplace();
566
575
  }
567
576
  async function X(r) {
568
- n || w("coverWith()"), await t.coverCurrentBlade({
577
+ n || y("coverWith()"), await t.coverCurrentBlade({
569
578
  ...r,
570
579
  parentId: n.value.parentId
571
- }), t.activeBlade.value?.url && d()?.syncUrlPush();
580
+ }), t.activeBlade.value?.url && l()?.syncUrlPush();
572
581
  }
573
- async function Y(r, C) {
574
- return n || w("callParent()"), s.callParent(n.value.id, r, C);
582
+ async function Y(r, m) {
583
+ return n || y("callParent()"), s.callParent(n.value.id, r, m);
575
584
  }
576
585
  function le(r) {
577
- n || w("exposeToChildren()"), s.exposeToChildren(n.value.id, r);
578
- }
579
- function de(r) {
580
- n || w("onBeforeClose()"), t.registerBeforeClose(n.value.id, r);
586
+ n || y("exposeToChildren()"), s.exposeToChildren(n.value.id, r);
581
587
  }
582
588
  function ce(r) {
583
- n || w("setError()"), t.setBladeError(n.value.id, r);
589
+ n || y("onBeforeClose()"), t.registerBeforeClose(n.value.id, r);
590
+ }
591
+ function de(r) {
592
+ n || y("setError()"), t.setBladeError(n.value.id, r);
584
593
  }
585
594
  function j() {
586
- n || w("clearError()"), t.clearBladeError(n.value.id);
595
+ n || y("clearError()"), t.clearBladeError(n.value.id);
587
596
  }
588
597
  let ue = 0;
589
598
  function pe(r) {
590
- c || w("addBanner()");
591
- const C = `banner-${n.value.id}-${++ue}`;
599
+ c || y("addBanner()");
600
+ const m = `banner-${n.value.id}-${++ue}`;
592
601
  return c.value.push({
593
602
  ...r,
594
- id: C,
603
+ id: m,
595
604
  dismissible: r.dismissible ?? !1
596
- }), C;
605
+ }), m;
597
606
  }
598
607
  function fe(r) {
599
- c || w("removeBanner()"), c.value = c.value.filter((C) => C.id !== r);
608
+ c || y("removeBanner()"), c.value = c.value.filter((m) => m.id !== r);
600
609
  }
601
610
  function ge() {
602
- c || w("clearBanners()"), c.value = c.value.filter((r) => r._system);
611
+ c || y("clearBanners()"), c.value = c.value.filter((r) => r._system);
603
612
  }
604
613
  let a = !1, i = !1;
605
614
  function p(r) {
606
- if (n || w("onActivated()"), a) {
615
+ if (n || y("onActivated()"), a) {
607
616
  console.warn("[useBlade] onActivated() already registered in this blade.");
608
617
  return;
609
618
  }
610
- a = !0, q(_, (C) => {
611
- C && r();
619
+ a = !0, q(C, (m) => {
620
+ m && r();
612
621
  });
613
622
  }
614
- function h(r) {
615
- if (n || w("onDeactivated()"), i) {
623
+ function _(r) {
624
+ if (n || y("onDeactivated()"), i) {
616
625
  console.warn("[useBlade] onDeactivated() already registered in this blade.");
617
626
  return;
618
627
  }
619
- i = !0, q(_, (C) => {
620
- C || r();
628
+ i = !0, q(C, (m) => {
629
+ m || r();
621
630
  });
622
631
  }
623
632
  return {
624
- id: u,
625
- param: g,
626
- activeChildParam: I,
627
- options: m,
628
- query: l,
629
- closable: b,
630
- expanded: _,
631
- name: v,
632
- provideBladeData: $,
633
+ id: d,
634
+ param: u,
635
+ activeChildParam: w,
636
+ options: h,
637
+ query: v,
638
+ closable: g,
639
+ expanded: C,
640
+ name: E,
641
+ provideBladeData: F,
633
642
  openBlade: M,
634
- closeSelf: B,
643
+ closeSelf: I,
635
644
  closeChildren: R,
636
645
  replaceWith: Z,
637
646
  coverWith: X,
638
647
  callParent: Y,
639
648
  exposeToChildren: le,
640
- onBeforeClose: de,
649
+ onBeforeClose: ce,
641
650
  onActivated: p,
642
- onDeactivated: h,
643
- setError: ce,
651
+ onDeactivated: _,
652
+ setError: de,
644
653
  clearError: j,
645
654
  addBanner: pe,
646
655
  removeBanner: fe,
@@ -694,28 +703,28 @@ function Ot(e, o, t) {
694
703
  visible: !0
695
704
  };
696
705
  }
697
- let kt = 0;
698
- function Pt() {
699
- return `blade_${++kt}_${Math.random().toString(36).slice(2, 8)}`;
706
+ let Pt = 0;
707
+ function kt() {
708
+ return `blade_${++Pt}_${Math.random().toString(36).slice(2, 8)}`;
700
709
  }
701
710
  function In(e, o) {
702
- const t = D([]), s = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Map(), f = /* @__PURE__ */ new Map(), d = E(() => t.value[0]), u = E(() => t.value), g = E(() => {
711
+ const t = D([]), s = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Map(), f = /* @__PURE__ */ new Map(), l = b(() => t.value[0]), d = b(() => t.value), u = b(() => {
703
712
  for (let a = t.value.length - 1; a >= 0; a--)
704
713
  if (t.value[a].visible) return t.value[a];
705
714
  });
706
- function m(a) {
715
+ function h(a) {
707
716
  s.delete(a), n.delete(a), c.delete(a), f.delete(a);
708
717
  }
709
- function l(a) {
718
+ function v(a) {
710
719
  const i = e.getBlade(a);
711
720
  if (i)
712
721
  return i.route;
713
722
  }
714
- const b = {
715
- generateId: Pt,
716
- resolveUrl: l
723
+ const g = {
724
+ generateId: kt,
725
+ resolveUrl: v
717
726
  };
718
- async function _(a) {
727
+ async function C(a) {
719
728
  for (let i = a.length - 1; i >= 0; i--) {
720
729
  const p = s.get(a[i].id);
721
730
  if (p && await p())
@@ -723,12 +732,12 @@ function In(e, o) {
723
732
  }
724
733
  return !1;
725
734
  }
726
- function v(a) {
735
+ function E(a) {
727
736
  for (const i of a)
728
- c.get(i.id)?.(), m(i.id);
737
+ c.get(i.id)?.(), h(i.id);
729
738
  }
730
- async function I(a) {
731
- if (d.value?.name === a.name) return;
739
+ async function w(a) {
740
+ if (l.value?.name === a.name) return;
732
741
  const p = e.getBlade(a.name);
733
742
  if (!p)
734
743
  throw new Error(`[BladeStack] Blade '${a.name}' not found in registry`);
@@ -736,41 +745,41 @@ function In(e, o) {
736
745
  console.warn(`[BladeStack] Access denied to workspace '${a.name}'`);
737
746
  return;
738
747
  }
739
- v([...t.value]);
740
- const h = Tt(a, b);
741
- t.value = [h], a.onOpen && n.set(h.id, a.onOpen), a.onClose && c.set(h.id, a.onClose), a.onOpen?.();
748
+ E([...t.value]);
749
+ const _ = Tt(a, g);
750
+ t.value = [_], a.onOpen && n.set(_.id, a.onOpen), a.onClose && c.set(_.id, a.onClose), a.onOpen?.();
742
751
  }
743
- async function P(a) {
752
+ async function T(a) {
744
753
  if (!e.getBlade(a.name))
745
754
  throw new Error(`[BladeStack] Blade '${a.name}' not found in registry`);
746
- const i = a.parentId ?? g.value?.id ?? d.value?.id;
755
+ const i = a.parentId ?? u.value?.id ?? l.value?.id;
747
756
  if (!i)
748
757
  throw new Error("[BladeStack] Cannot open blade: no parent blade found");
749
- const p = t.value.findIndex((C) => C.id === i);
758
+ const p = t.value.findIndex((m) => m.id === i);
750
759
  if (p === -1)
751
760
  throw new Error(`[BladeStack] Parent blade '${i}' not found in stack`);
752
- const h = t.value.slice(p + 1);
753
- if (h.length > 0 && await _(h))
761
+ const _ = t.value.slice(p + 1);
762
+ if (_.length > 0 && await C(_))
754
763
  return;
755
- v(h);
756
- const r = xt(a, i, b);
764
+ E(_);
765
+ const r = xt(a, i, g);
757
766
  t.value = [...t.value.slice(0, p + 1), r], a.onOpen && n.set(r.id, a.onOpen), a.onClose && c.set(r.id, a.onClose), a.onOpen?.();
758
767
  }
759
- async function $(a) {
760
- const i = t.value.findIndex((C) => C.id === a);
768
+ async function F(a) {
769
+ const i = t.value.findIndex((m) => m.id === a);
761
770
  if (i === -1 || i === 0) return !1;
762
771
  const p = t.value.slice(i);
763
- if (await _(p)) return !0;
764
- v(p), t.value = t.value.slice(0, i);
772
+ if (await C(p)) return !0;
773
+ E(p), t.value = t.value.slice(0, i);
765
774
  const r = t.value.length - 1;
766
775
  if (r > 0 && !t.value[r].visible) {
767
- const C = [...t.value];
768
- C[r] = { ...C[r], visible: !0 }, t.value = C;
776
+ const m = [...t.value];
777
+ m[r] = { ...m[r], visible: !0 }, t.value = m;
769
778
  }
770
779
  return !1;
771
780
  }
772
781
  async function M(a) {
773
- const i = g.value;
782
+ const i = u.value;
774
783
  if (!i)
775
784
  throw new Error("[BladeStack] No active blade to replace");
776
785
  if (!e.getBlade(a.name))
@@ -778,18 +787,18 @@ function In(e, o) {
778
787
  const p = t.value.findIndex((k) => k.id === i.id);
779
788
  if (p === -1)
780
789
  throw new Error(`[BladeStack] Active blade '${i.id}' not found in stack`);
781
- const h = t.value.slice(p + 1);
782
- if (h.length > 0) {
783
- if (await _(h)) return;
784
- v(h);
790
+ const _ = t.value.slice(p + 1);
791
+ if (_.length > 0) {
792
+ if (await C(_)) return;
793
+ E(_);
785
794
  }
786
- const r = St(a, i.parentId, b);
787
- v([i]);
788
- const C = [...t.value.slice(0, p), r, ...t.value.slice(p + 1)];
789
- t.value = C, a.onOpen && n.set(r.id, a.onOpen), a.onClose && c.set(r.id, a.onClose), a.onOpen?.();
795
+ const r = St(a, i.parentId, g);
796
+ E([i]);
797
+ const m = [...t.value.slice(0, p), r, ...t.value.slice(p + 1)];
798
+ t.value = m, a.onOpen && n.set(r.id, a.onOpen), a.onClose && c.set(r.id, a.onClose), a.onOpen?.();
790
799
  }
791
- async function B(a) {
792
- const i = g.value;
800
+ async function I(a) {
801
+ const i = u.value;
793
802
  if (!i)
794
803
  throw new Error("[BladeStack] No active blade to cover");
795
804
  if (!e.getBlade(a.name))
@@ -797,19 +806,19 @@ function In(e, o) {
797
806
  const p = t.value.findIndex((k) => k.id === i.id);
798
807
  if (p === -1)
799
808
  throw new Error(`[BladeStack] Active blade '${i.id}' not found in stack`);
800
- const h = t.value.slice(p + 1);
801
- if (h.length > 0) {
802
- if (await _(h)) return;
803
- v(h);
809
+ const _ = t.value.slice(p + 1);
810
+ if (_.length > 0) {
811
+ if (await C(_)) return;
812
+ E(_);
804
813
  }
805
- const r = Ot(a, i.id, b), C = t.value.slice(0, p);
806
- C.push({ ...i, visible: !1 }), C.push(r), t.value = C, a.onOpen && n.set(r.id, a.onOpen), a.onClose && c.set(r.id, a.onClose), a.onOpen?.();
814
+ const r = Ot(a, i.id, g), m = t.value.slice(0, p);
815
+ m.push({ ...i, visible: !1 }), m.push(r), t.value = m, a.onOpen && n.set(r.id, a.onOpen), a.onClose && c.set(r.id, a.onClose), a.onOpen?.();
807
816
  }
808
817
  async function R(a) {
809
818
  const i = t.value.findIndex((r) => r.id === a);
810
819
  if (i === -1) return;
811
820
  const p = t.value.slice(i + 1);
812
- p.length === 0 || await _(p) || (v(p), t.value = t.value.slice(0, i + 1));
821
+ p.length === 0 || await C(p) || (E(p), t.value = t.value.slice(0, i + 1));
813
822
  }
814
823
  function Z(a, i) {
815
824
  s.set(a, i);
@@ -820,29 +829,29 @@ function In(e, o) {
820
829
  function Y(a, i) {
821
830
  const p = t.value.findIndex((r) => r.id === a);
822
831
  if (p === -1) return;
823
- const h = [...t.value];
824
- h[p] = { ...h[p], error: i }, t.value = h;
832
+ const _ = [...t.value];
833
+ _[p] = { ..._[p], error: i }, t.value = _;
825
834
  }
826
835
  function le(a) {
827
- const i = t.value.findIndex((h) => h.id === a);
836
+ const i = t.value.findIndex((_) => _.id === a);
828
837
  if (i === -1) return;
829
838
  const p = [...t.value];
830
839
  p[i] = { ...p[i], error: void 0 }, t.value = p;
831
840
  }
832
- function de(a, i) {
841
+ function ce(a, i) {
833
842
  const p = t.value.findIndex((r) => r.id === a);
834
843
  if (p === -1 || t.value[p].title === i) return;
835
- const h = [...t.value];
836
- h[p] = { ...h[p], title: i }, t.value = h;
844
+ const _ = [...t.value];
845
+ _[p] = { ..._[p], title: i }, t.value = _;
837
846
  }
838
- function ce(a, i) {
847
+ function de(a, i) {
839
848
  const p = t.value.findIndex((L) => L.id === a);
840
849
  if (p === -1) return;
841
- const h = t.value[p].query ?? {}, r = { ...h };
850
+ const _ = t.value[p].query ?? {}, r = { ..._ };
842
851
  for (const [L, ve] of Object.entries(i))
843
852
  ve === "" || ve == null ? delete r[L] : r[L] = ve;
844
- const C = Object.keys(h), k = Object.keys(r);
845
- if (C.length === k.length && k.every((L) => h[L] === r[L]))
853
+ const m = Object.keys(_), k = Object.keys(r);
854
+ if (m.length === k.length && k.every((L) => _[L] === r[L]))
846
855
  return;
847
856
  const J = [...t.value];
848
857
  J[p] = { ...J[p], query: r }, t.value = J;
@@ -863,25 +872,25 @@ function In(e, o) {
863
872
  }
864
873
  function ge(a) {
865
874
  for (const i of t.value)
866
- m(i.id);
875
+ h(i.id);
867
876
  t.value = a;
868
877
  }
869
878
  return {
870
- workspace: d,
871
- blades: u,
872
- activeBlade: g,
873
- openWorkspace: I,
874
- openBlade: P,
875
- closeBlade: $,
879
+ workspace: l,
880
+ blades: d,
881
+ activeBlade: u,
882
+ openWorkspace: w,
883
+ openBlade: T,
884
+ closeBlade: F,
876
885
  closeChildren: R,
877
886
  replaceCurrentBlade: M,
878
- coverCurrentBlade: B,
887
+ coverCurrentBlade: I,
879
888
  registerBeforeClose: Z,
880
889
  unregisterBeforeClose: X,
881
890
  setBladeError: Y,
882
891
  clearBladeError: le,
883
- setBladeTitle: de,
884
- updateBladeQuery: ce,
892
+ setBladeTitle: ce,
893
+ updateBladeQuery: de,
885
894
  getMaximizedRef: j,
886
895
  isMaximized: ue,
887
896
  setMaximized: pe,
@@ -897,7 +906,7 @@ function Mt() {
897
906
  }
898
907
  const V = W("use-ai-agent");
899
908
  function Tn(e) {
900
- const o = N(je), { user: t, getAccessToken: s } = Qe(), { openBlade: n } = It(), { blades: c, activeBlade: f } = Mt(), d = e?.isEmbedded, u = ct({
909
+ const o = N(je), { user: t, getAccessToken: s } = Qe(), { openBlade: n } = It(), { blades: c, activeBlade: f } = Mt(), l = e?.isEmbedded, d = dt({
901
910
  userGetter: () => {
902
911
  if (t.value)
903
912
  return {
@@ -908,44 +917,44 @@ function Tn(e) {
908
917
  };
909
918
  },
910
919
  bladeGetter: () => {
911
- const m = f.value ?? c.value[c.value.length - 1];
912
- return m ? {
913
- id: m.id,
914
- name: m.name,
915
- title: m.title,
916
- param: m.param,
917
- options: m.options
920
+ const h = f.value ?? c.value[c.value.length - 1];
921
+ return h ? {
922
+ id: h.id,
923
+ name: h.name,
924
+ title: h.title,
925
+ param: h.param,
926
+ options: h.options
918
927
  } : null;
919
928
  },
920
929
  localeGetter: () => o?.currentLocale.value ?? "en",
921
930
  tokenGetter: s,
922
- navigateToBlade: (m, l, b) => {
923
- n({ name: m, param: l, options: b }).then(() => {
924
- V.debug(`Navigated to blade: ${m}`);
925
- }).catch((_) => {
926
- V.warn(`Blade not found or cannot be opened: ${m}`, _);
931
+ navigateToBlade: (h, v, g) => {
932
+ n({ name: h, param: v, options: g }).then(() => {
933
+ V.debug(`Navigated to blade: ${h}`);
934
+ }).catch((C) => {
935
+ V.warn(`Blade not found or cannot be opened: ${h}`, C);
927
936
  });
928
937
  },
929
938
  initialConfig: e?.config,
930
- isEmbedded: d
939
+ isEmbedded: l
931
940
  });
932
- if (ke(be, u), V.debug("AiAgentService provided"), e?.addGlobalToolbarButton ?? !0) {
933
- const m = N(Je, null);
934
- m ? (m.registerToolbarItem(
941
+ if (Pe(be, d), V.debug("AiAgentService provided"), e?.addGlobalToolbarButton ?? !0) {
942
+ const h = N(Je, null);
943
+ h ? (h.registerToolbarItem(
935
944
  {
936
945
  id: ot,
937
946
  icon: rt,
938
947
  title: it,
939
948
  shortcut: Q.mod.i,
940
949
  clickHandler: () => {
941
- u.togglePanel();
950
+ d.togglePanel();
942
951
  }
943
952
  },
944
953
  "*"
945
954
  // Wildcard for all blades
946
955
  ), V.debug("Global AI toolbar button registered with wildcard '*'")) : V.warn("Toolbar service not available, AI button not registered");
947
956
  }
948
- return u;
957
+ return d;
949
958
  }
950
959
  function xn() {
951
960
  const e = N(be);
@@ -1004,8 +1013,8 @@ const Dt = ["width", "height"], Lt = ["clip-path"], Nt = {
1004
1013
  animated: { type: Boolean, default: !1 }
1005
1014
  },
1006
1015
  setup(e) {
1007
- const o = E(() => `virto-oz-clip-${Math.random().toString(36).substring(2, 11)}`);
1008
- return (t, s) => (y(), x("svg", {
1016
+ const o = b(() => `virto-oz-clip-${Math.random().toString(36).substring(2, 11)}`);
1017
+ return (t, s) => (B(), S("svg", {
1009
1018
  width: e.width,
1010
1019
  height: e.height,
1011
1020
  viewBox: "0 0 99 108",
@@ -1017,7 +1026,7 @@ const Dt = ["width", "height"], Lt = ["clip-path"], Nt = {
1017
1026
  d: "M40.1199 2.41576C45.6989 -0.805254 52.5724 -0.805253 58.1514 2.41576L89.2556 20.3738C94.8345 23.5948 98.2713 29.5475 98.2713 35.9895V71.9055C98.2713 78.3475 94.8345 84.3002 89.2556 87.5212L58.1514 105.479C52.5724 108.7 45.6989 108.7 40.1199 105.479L9.01574 87.5212C3.43678 84.3002 0 78.3475 0 71.9055V35.9895C0 29.5475 3.43678 23.5948 9.01574 20.3738L40.1199 2.41576Z",
1018
1027
  fill: "white"
1019
1028
  }, null, -1)),
1020
- e.animated ? (y(), x("path", Nt)) : (y(), x("g", {
1029
+ e.animated ? (B(), S("path", Nt)) : (B(), S("g", {
1021
1030
  key: 0,
1022
1031
  "clip-path": `url(#${o.value})`
1023
1032
  }, [...s[0] || (s[0] = [
@@ -1069,13 +1078,13 @@ const Dt = ["width", "height"], Lt = ["clip-path"], Nt = {
1069
1078
  fill: "#6C6C6C"
1070
1079
  }, null, -1)),
1071
1080
  A("defs", null, [
1072
- e.animated ? z("", !0) : (y(), x("clipPath", {
1081
+ e.animated ? z("", !0) : (B(), S("clipPath", {
1073
1082
  key: 0,
1074
1083
  id: o.value
1075
1084
  }, [...s[1] || (s[1] = [
1076
1085
  A("path", { d: "M72.9199 46.4165C73.2527 46.9495 73.5831 47.4996 73.9092 48.0679C78.4022 55.8976 79.0605 66.3551 76.7793 76.6079C74.5635 86.5668 69.6096 96.1504 62.9795 102.692L58.1514 105.48C52.5725 108.701 45.699 108.701 40.1201 105.48L21.665 94.8247C29.1398 95.4723 37.0781 94.4072 44.3848 91.9233C54.5984 88.4512 63.7463 82.1497 68.6807 73.6548C75.124 62.5619 75.4351 53.2694 72.9199 46.4165ZM56.5205 29.5093C65.5697 29.5331 75.1259 33.9964 83.0215 40.8853C89.9848 46.9608 95.5441 54.8286 98.2715 62.9478V71.9058C98.2715 78.3478 94.8348 84.301 89.2559 87.522L69.4658 98.9468C74.0688 92.6731 77.4601 84.9996 79.207 77.1479C81.5723 66.517 80.9666 55.3703 76.0654 46.8296C69.6817 35.7054 61.7917 30.789 54.6006 29.5396C55.2271 29.5179 55.867 29.5076 56.5205 29.5093ZM0 50.688C3.16812 57.476 8.04614 63.7935 13.8389 68.853C21.9305 75.9204 31.9368 80.6465 41.7578 80.6724C54.5833 80.706 62.7851 76.3308 67.4629 70.728C67.1684 71.2812 66.8584 71.8408 66.5303 72.4058C61.9844 80.2318 53.417 86.2251 43.584 89.5679C34.4355 92.6779 24.3375 93.4401 15.6328 91.3423L9.01562 87.522C3.43667 84.301 0 78.3478 0 71.9058V50.688ZM26.7559 10.1313C22.5672 16.2131 19.6599 23.483 18.2695 30.9126C16.3077 41.3962 17.3358 52.3558 22.2188 60.8647C28.6034 71.9905 36.4946 76.9061 43.6865 78.1548C43.0594 78.1765 42.4188 78.1868 41.7646 78.1851C32.7113 78.1612 23.2602 73.7801 15.4746 66.98C8.2197 60.6434 2.52684 52.3035 0 43.7075V35.9897C6.33247e-05 29.5479 3.43687 23.5955 9.01562 20.3745L26.7559 10.1313ZM51.2432 31.6978C54.0287 31.7659 57.0796 32.4389 60.1875 33.9976C58.8529 33.7029 57.5584 33.677 56.3965 33.9722L57.0088 36.3833C58.4774 36.0102 60.6741 36.4134 63.0332 37.8237C65.3553 39.212 67.6865 41.4953 69.375 44.5923C70.7081 47.0376 71.6489 50.015 71.8535 53.4839C71.4414 52.1828 70.818 51.0505 69.9824 50.1929L68.2012 51.9282C69.2585 53.0135 70.0076 55.1176 69.9658 57.8657C69.9246 60.5708 69.1121 63.731 67.2744 66.7417C65.8225 69.1203 63.7129 71.4251 60.8086 73.3374C61.7311 72.329 62.4012 71.2217 62.7266 70.0679L60.333 69.3931C59.9218 70.8514 58.4742 72.5523 56.0732 73.8901C53.71 75.207 50.5672 76.0837 47.041 75.9976C44.2551 75.9294 41.204 75.2549 38.0957 73.6958C39.4307 73.9907 40.7254 74.0184 41.8877 73.7231L41.2754 71.312C39.8069 71.6851 37.6101 71.2818 35.251 69.8716C32.9289 68.4834 30.5977 66.2 28.9092 63.103C27.5754 60.6565 26.6337 57.6775 26.4297 54.2065C26.8418 55.5096 27.4661 56.6438 28.3027 57.5024L30.084 55.7661C29.0267 54.6807 28.2775 52.5767 28.3193 49.8286C28.3606 47.1236 29.173 43.9633 31.0107 40.9526C32.4621 38.5751 34.5702 36.2706 37.4727 34.3589C36.5514 35.3666 35.8827 36.4736 35.5576 37.6265L37.9512 38.3013C38.3625 36.8429 39.8101 35.142 42.2109 33.8042C44.5742 32.4874 47.717 31.6116 51.2432 31.6978ZM40.1201 2.4165C45.6991 -0.804509 52.5724 -0.804509 58.1514 2.4165L75.6777 12.5356C68.4683 12.0708 60.8765 13.1991 53.8691 15.6333C43.6671 19.1774 34.5353 25.5492 29.6035 34.0396C23.1612 45.1305 22.8486 54.4223 25.3623 61.2749C25.0301 60.7429 24.7004 60.1936 24.375 59.6265C19.8639 51.765 18.8286 41.4457 20.7139 31.3706C22.4486 22.1007 26.633 13.1734 32.6709 6.71631L40.1201 2.4165ZM54.6855 17.9829C63.3703 14.966 72.9092 14.0715 81.3008 15.7817L89.2559 20.3745C94.8346 23.5955 98.2714 29.5479 98.2715 35.9897V56.4692C95.0606 49.9731 90.2759 43.9144 84.6562 39.0112C76.4636 31.8632 66.3524 27.0488 56.5273 27.0229C43.6978 26.9893 35.4935 31.3659 30.8164 36.9712C31.1117 36.4161 31.4247 35.8554 31.7539 35.2886C36.3024 27.4582 44.8633 21.395 54.6855 17.9829Z" }, null, -1)
1077
1086
  ])], 8, Ft)),
1078
- e.animated ? (y(), x("linearGradient", $t, [...s[2] || (s[2] = [
1087
+ e.animated ? (B(), S("linearGradient", $t, [...s[2] || (s[2] = [
1079
1088
  Ke('<stop offset="0%" stop-color="#FF9533"><animate attributeName="stop-color" values="#FF9533;#FF4FBB;#EAFF4F;#1C91FC;#9A2DF8;#FF9533" dur="4s" repeatCount="indefinite"></animate></stop><stop offset="25%" stop-color="#FF4FBB"><animate attributeName="stop-color" values="#FF4FBB;#EAFF4F;#1C91FC;#9A2DF8;#FF9533;#FF4FBB" dur="4s" repeatCount="indefinite"></animate></stop><stop offset="50%" stop-color="#EAFF4F"><animate attributeName="stop-color" values="#EAFF4F;#1C91FC;#9A2DF8;#FF9533;#FF4FBB;#EAFF4F" dur="4s" repeatCount="indefinite"></animate></stop><stop offset="75%" stop-color="#1C91FC"><animate attributeName="stop-color" values="#1C91FC;#9A2DF8;#FF9533;#FF4FBB;#EAFF4F;#1C91FC" dur="4s" repeatCount="indefinite"></animate></stop><stop offset="100%" stop-color="#9A2DF8"><animate attributeName="stop-color" values="#9A2DF8;#FF9533;#FF4FBB;#EAFF4F;#1C91FC;#9A2DF8" dur="4s" repeatCount="indefinite"></animate></stop>', 5)
1080
1089
  ])])) : z("", !0)
1081
1090
  ])
@@ -1091,9 +1100,9 @@ const Dt = ["width", "height"], Lt = ["clip-path"], Nt = {
1091
1100
  separated: { type: Boolean, default: !1 }
1092
1101
  },
1093
1102
  setup(e) {
1094
- return (o, t) => (y(), x("span", Rt, [
1095
- (y(!0), x(Ae, null, qe(e.parts, (s, n) => (y(), x(Ae, { key: n }, [
1096
- e.separated && n > 0 ? (y(), x("span", Ut, "+")) : z("", !0),
1103
+ return (o, t) => (B(), S("span", Rt, [
1104
+ (B(!0), S(Ae, null, qe(e.parts, (s, n) => (B(), S(Ae, { key: n }, [
1105
+ e.separated && n > 0 ? (B(), S("span", Ut, "+")) : z("", !0),
1097
1106
  A("kbd", Gt, K(s), 1)
1098
1107
  ], 64))), 128))
1099
1108
  ]));
@@ -1107,10 +1116,10 @@ const Dt = ["width", "height"], Lt = ["clip-path"], Nt = {
1107
1116
  },
1108
1117
  emits: ["close", "expand", "collapse"],
1109
1118
  setup(e) {
1110
- const { t: o } = nt(), { isMac: t } = Ne(), s = E(() => Ee(Q.escape, t)), n = E(() => Ee(Q.mod.backslash, t)), c = E(() => s.value.aria), f = E(() => n.value.aria);
1111
- return (d, u) => (y(), x("div", Vt, [
1119
+ const { t: o } = nt(), { isMac: t } = Ne(), s = b(() => Ee(Q.escape, t)), n = b(() => Ee(Q.mod.backslash, t)), c = b(() => s.value.aria), f = b(() => n.value.aria);
1120
+ return (l, d) => (B(), S("div", Vt, [
1112
1121
  A("div", Kt, [
1113
- O(Ue, {
1122
+ P(Ue, {
1114
1123
  width: 22,
1115
1124
  height: 24,
1116
1125
  "show-dots": ""
@@ -1122,91 +1131,91 @@ const Dt = ["width", "height"], Lt = ["clip-path"], Nt = {
1122
1131
  ])
1123
1132
  ]),
1124
1133
  A("div", Wt, [
1125
- e.isExpanded ? (y(), se(T(me), {
1134
+ e.isExpanded ? (B(), se(x(me), {
1126
1135
  key: 0,
1127
1136
  placement: "bottom"
1128
1137
  }, {
1129
- tooltip: F(() => [
1138
+ tooltip: $(() => [
1130
1139
  A("span", Xt, [
1131
- Ce(K(T(o)("COMPONENTS.ORGANISMS.VC_BLADE_HEADER.RESTORE")) + " ", 1),
1132
- O(_e, {
1140
+ Ce(K(x(o)("COMPONENTS.ORGANISMS.VC_BLADE_HEADER.RESTORE")) + " ", 1),
1141
+ P(_e, {
1133
1142
  parts: n.value.parts,
1134
- separated: !T(t)
1143
+ separated: !x(t)
1135
1144
  }, null, 8, ["parts", "separated"])
1136
1145
  ])
1137
1146
  ]),
1138
- default: F(() => [
1147
+ default: $(() => [
1139
1148
  A("div", {
1140
1149
  class: "vc-ai-agent-header__button",
1141
1150
  role: "button",
1142
1151
  tabindex: "0",
1143
- "aria-label": T(o)("COMPONENTS.ORGANISMS.VC_BLADE_HEADER.RESTORE"),
1152
+ "aria-label": x(o)("COMPONENTS.ORGANISMS.VC_BLADE_HEADER.RESTORE"),
1144
1153
  "aria-keyshortcuts": f.value,
1145
- onClick: u[0] || (u[0] = (g) => d.$emit("collapse")),
1154
+ onClick: d[0] || (d[0] = (u) => l.$emit("collapse")),
1146
1155
  onKeydown: [
1147
- u[1] || (u[1] = U(G((g) => d.$emit("collapse"), ["prevent"]), ["enter"])),
1148
- u[2] || (u[2] = U(G((g) => d.$emit("collapse"), ["prevent"]), ["space"]))
1156
+ d[1] || (d[1] = U(G((u) => l.$emit("collapse"), ["prevent"]), ["enter"])),
1157
+ d[2] || (d[2] = U(G((u) => l.$emit("collapse"), ["prevent"]), ["space"]))
1149
1158
  ]
1150
1159
  }, [
1151
- O(T(ie), { icon: "lucide-minus" })
1160
+ P(x(ie), { icon: "lucide-minus" })
1152
1161
  ], 40, Zt)
1153
1162
  ]),
1154
1163
  _: 1
1155
- })) : (y(), se(T(me), {
1164
+ })) : (B(), se(x(me), {
1156
1165
  key: 1,
1157
1166
  placement: "bottom"
1158
1167
  }, {
1159
- tooltip: F(() => [
1168
+ tooltip: $(() => [
1160
1169
  A("span", jt, [
1161
- Ce(K(T(o)("COMPONENTS.ORGANISMS.VC_BLADE_HEADER.MAXIMIZE")) + " ", 1),
1162
- O(_e, {
1170
+ Ce(K(x(o)("COMPONENTS.ORGANISMS.VC_BLADE_HEADER.MAXIMIZE")) + " ", 1),
1171
+ P(_e, {
1163
1172
  parts: n.value.parts,
1164
- separated: !T(t)
1173
+ separated: !x(t)
1165
1174
  }, null, 8, ["parts", "separated"])
1166
1175
  ])
1167
1176
  ]),
1168
- default: F(() => [
1177
+ default: $(() => [
1169
1178
  A("div", {
1170
1179
  class: "vc-ai-agent-header__button",
1171
1180
  role: "button",
1172
1181
  tabindex: "0",
1173
- "aria-label": T(o)("COMPONENTS.ORGANISMS.VC_BLADE_HEADER.MAXIMIZE"),
1182
+ "aria-label": x(o)("COMPONENTS.ORGANISMS.VC_BLADE_HEADER.MAXIMIZE"),
1174
1183
  "aria-keyshortcuts": f.value,
1175
- onClick: u[3] || (u[3] = (g) => d.$emit("expand")),
1184
+ onClick: d[3] || (d[3] = (u) => l.$emit("expand")),
1176
1185
  onKeydown: [
1177
- u[4] || (u[4] = U(G((g) => d.$emit("expand"), ["prevent"]), ["enter"])),
1178
- u[5] || (u[5] = U(G((g) => d.$emit("expand"), ["prevent"]), ["space"]))
1186
+ d[4] || (d[4] = U(G((u) => l.$emit("expand"), ["prevent"]), ["enter"])),
1187
+ d[5] || (d[5] = U(G((u) => l.$emit("expand"), ["prevent"]), ["space"]))
1179
1188
  ]
1180
1189
  }, [
1181
- O(T(ie), { icon: "lucide-panel-top" })
1190
+ P(x(ie), { icon: "lucide-panel-top" })
1182
1191
  ], 40, Yt)
1183
1192
  ]),
1184
1193
  _: 1
1185
1194
  })),
1186
- O(T(me), { placement: "bottom" }, {
1187
- tooltip: F(() => [
1195
+ P(x(me), { placement: "bottom" }, {
1196
+ tooltip: $(() => [
1188
1197
  A("span", Jt, [
1189
- Ce(K(T(o)("COMPONENTS.ORGANISMS.VC_BLADE_HEADER.CLOSE")) + " ", 1),
1190
- O(_e, {
1198
+ Ce(K(x(o)("COMPONENTS.ORGANISMS.VC_BLADE_HEADER.CLOSE")) + " ", 1),
1199
+ P(_e, {
1191
1200
  parts: s.value.parts,
1192
- separated: !T(t)
1201
+ separated: !x(t)
1193
1202
  }, null, 8, ["parts", "separated"])
1194
1203
  ])
1195
1204
  ]),
1196
- default: F(() => [
1205
+ default: $(() => [
1197
1206
  A("div", {
1198
1207
  class: "vc-ai-agent-header__button",
1199
1208
  role: "button",
1200
1209
  tabindex: "0",
1201
- "aria-label": T(o)("COMPONENTS.ORGANISMS.VC_BLADE_HEADER.CLOSE"),
1210
+ "aria-label": x(o)("COMPONENTS.ORGANISMS.VC_BLADE_HEADER.CLOSE"),
1202
1211
  "aria-keyshortcuts": c.value,
1203
- onClick: u[6] || (u[6] = (g) => d.$emit("close")),
1212
+ onClick: d[6] || (d[6] = (u) => l.$emit("close")),
1204
1213
  onKeydown: [
1205
- u[7] || (u[7] = U(G((g) => d.$emit("close"), ["prevent"]), ["enter"])),
1206
- u[8] || (u[8] = U(G((g) => d.$emit("close"), ["prevent"]), ["space"]))
1214
+ d[7] || (d[7] = U(G((u) => l.$emit("close"), ["prevent"]), ["enter"])),
1215
+ d[8] || (d[8] = U(G((u) => l.$emit("close"), ["prevent"]), ["space"]))
1207
1216
  ]
1208
1217
  }, [
1209
- O(T(ie), { icon: "lucide-x" })
1218
+ P(x(ie), { icon: "lucide-x" })
1210
1219
  ], 40, Qt)
1211
1220
  ]),
1212
1221
  _: 1
@@ -1223,23 +1232,23 @@ const Dt = ["width", "height"], Lt = ["clip-path"], Nt = {
1223
1232
  text: {}
1224
1233
  },
1225
1234
  setup(e) {
1226
- return (o, t) => (y(), x("div", tn, [
1235
+ return (o, t) => (B(), S("div", tn, [
1227
1236
  A("div", nn, [
1228
1237
  A("div", an, [
1229
- O(Ue, {
1238
+ P(Ue, {
1230
1239
  width: 80,
1231
1240
  height: 87,
1232
1241
  animated: ""
1233
1242
  })
1234
1243
  ]),
1235
- e.text ? (y(), x("p", on, K(e.text), 1)) : z("", !0)
1244
+ e.text ? (B(), S("p", on, K(e.text), 1)) : z("", !0)
1236
1245
  ])
1237
1246
  ]));
1238
1247
  }
1239
- }), sn = { class: "vc-ai-agent-iframe" }, ln = ["src"], dn = {
1248
+ }), sn = { class: "vc-ai-agent-iframe" }, ln = ["src"], cn = {
1240
1249
  key: 1,
1241
1250
  class: "vc-ai-agent-iframe__placeholder"
1242
- }, cn = /* @__PURE__ */ H({
1251
+ }, dn = /* @__PURE__ */ H({
1243
1252
  __name: "VcAiAgentIframe",
1244
1253
  props: {
1245
1254
  url: {}
@@ -1249,12 +1258,12 @@ const Dt = ["width", "height"], Lt = ["clip-path"], Nt = {
1249
1258
  const t = W("ai-agent-iframe"), s = e, n = o, c = D(null), f = D(!0);
1250
1259
  q(
1251
1260
  c,
1252
- (u) => {
1253
- u && n("iframe-ready", u);
1261
+ (d) => {
1262
+ d && n("iframe-ready", d);
1254
1263
  },
1255
1264
  { immediate: !0 }
1256
1265
  );
1257
- const d = () => {
1266
+ const l = () => {
1258
1267
  f.value = !1, t.debug("Iframe loaded");
1259
1268
  };
1260
1269
  return q(
@@ -1262,17 +1271,17 @@ const Dt = ["width", "height"], Lt = ["clip-path"], Nt = {
1262
1271
  () => {
1263
1272
  f.value = !0;
1264
1273
  }
1265
- ), (u, g) => (y(), x("div", sn, [
1266
- O(Pe, { name: "fade" }, {
1267
- default: F(() => [
1268
- f.value && e.url ? (y(), se(rn, {
1274
+ ), (d, u) => (B(), S("div", sn, [
1275
+ P(ke, { name: "fade" }, {
1276
+ default: $(() => [
1277
+ f.value && e.url ? (B(), se(rn, {
1269
1278
  key: 0,
1270
- text: u.$t("AI_AGENT.LOADING")
1279
+ text: d.$t("AI_AGENT.LOADING")
1271
1280
  }, null, 8, ["text"])) : z("", !0)
1272
1281
  ]),
1273
1282
  _: 1
1274
1283
  }),
1275
- e.url ? (y(), x("iframe", {
1284
+ e.url ? (B(), S("iframe", {
1276
1285
  key: 0,
1277
1286
  ref_key: "iframeRef",
1278
1287
  ref: c,
@@ -1280,14 +1289,14 @@ const Dt = ["width", "height"], Lt = ["clip-path"], Nt = {
1280
1289
  class: Me(["vc-ai-agent-iframe__frame", { "vc-ai-agent-iframe__frame--loading": f.value }]),
1281
1290
  sandbox: "allow-scripts allow-same-origin allow-forms allow-popups allow-popups-to-escape-sandbox",
1282
1291
  allow: "clipboard-read; clipboard-write",
1283
- onLoad: d
1284
- }, null, 42, ln)) : (y(), x("div", dn, [
1285
- O(T(ie), {
1292
+ onLoad: l
1293
+ }, null, 42, ln)) : (B(), S("div", cn, [
1294
+ P(x(ie), {
1286
1295
  icon: "lucide-sparkles",
1287
1296
  size: "xl",
1288
1297
  class: "vc-ai-agent-iframe__placeholder-icon"
1289
1298
  }),
1290
- g[0] || (g[0] = A("p", { class: "vc-ai-agent-iframe__placeholder-text" }, "AI Agent URL not configured", -1))
1299
+ u[0] || (u[0] = A("p", { class: "vc-ai-agent-iframe__placeholder-text" }, "AI Agent URL not configured", -1))
1291
1300
  ]))
1292
1301
  ]));
1293
1302
  }
@@ -1296,46 +1305,46 @@ const Dt = ["width", "height"], Lt = ["clip-path"], Nt = {
1296
1305
  setup(e) {
1297
1306
  const { isMac: o } = Ne(), t = N(be), s = N(et, !1);
1298
1307
  t || console.error("[VcAiAgentPanel] AiAgentService not provided");
1299
- const n = E(
1308
+ const n = b(
1300
1309
  () => t?.config.value ?? { url: "", title: "AI Assistant", width: 362, expandedWidth: 500 }
1301
- ), c = E(() => !s && (t?.isOpen.value ?? !1)), f = E(() => t?.isExpanded.value ?? !1), d = E(() => t?.totalItemsCount.value ?? 0), u = E(() => ({
1310
+ ), c = b(() => !s && (t?.isOpen.value ?? !1)), f = b(() => t?.isExpanded.value ?? !1), l = b(() => t?.totalItemsCount.value ?? 0), d = b(() => ({
1302
1311
  width: f.value ? `${n.value.expandedWidth ?? 500}px` : `${n.value.width ?? 362}px`
1303
- })), g = () => t?.closePanel(), m = () => t?.expandPanel(), l = () => t?.collapsePanel();
1304
- tt(document, "keydown", (_) => {
1305
- if (c.value && !_.isComposing && !_.defaultPrevented) {
1306
- if (_.key === "Escape") {
1307
- _.preventDefault(), g();
1312
+ })), u = () => t?.closePanel(), h = () => t?.expandPanel(), v = () => t?.collapsePanel();
1313
+ tt(document, "keydown", (C) => {
1314
+ if (c.value && !C.isComposing && !C.defaultPrevented) {
1315
+ if (C.key === "Escape") {
1316
+ C.preventDefault(), u();
1308
1317
  return;
1309
1318
  }
1310
- Et(Q.mod.backslash, _, o) && (_.preventDefault(), f.value ? l() : m());
1319
+ Et(Q.mod.backslash, C, o) && (C.preventDefault(), f.value ? v() : h());
1311
1320
  }
1312
1321
  });
1313
- const b = (_) => {
1314
- t?._setIframeRef(_);
1322
+ const g = (C) => {
1323
+ t?._setIframeRef(C);
1315
1324
  };
1316
1325
  return ze(() => {
1317
1326
  t?._setIframeRef(null);
1318
- }), (_, v) => (y(), se(Pe, { name: "ai-panel-slide" }, {
1319
- default: F(() => [
1320
- c.value ? (y(), x("div", {
1327
+ }), (C, E) => (B(), se(ke, { name: "ai-panel-slide" }, {
1328
+ default: $(() => [
1329
+ c.value ? (B(), S("div", {
1321
1330
  key: 0,
1322
1331
  class: Me(["vc-ai-agent-panel", {
1323
1332
  "vc-ai-agent-panel--expanded": f.value
1324
1333
  }]),
1325
- style: He(u.value)
1334
+ style: He(d.value)
1326
1335
  }, [
1327
- O(en, {
1336
+ P(en, {
1328
1337
  title: n.value.title,
1329
1338
  "is-expanded": f.value,
1330
- "items-count": d.value,
1331
- onClose: g,
1332
- onExpand: m,
1333
- onCollapse: l
1339
+ "items-count": l.value,
1340
+ onClose: u,
1341
+ onExpand: h,
1342
+ onCollapse: v
1334
1343
  }, null, 8, ["title", "is-expanded", "items-count"]),
1335
1344
  A("div", un, [
1336
- O(cn, {
1345
+ P(dn, {
1337
1346
  url: n.value.url,
1338
- onIframeReady: b
1347
+ onIframeReady: g
1339
1348
  }, null, 8, ["url"])
1340
1349
  ])
1341
1350
  ], 6)) : z("", !0)