@vc-shell/framework 2.6.0-pr373.38b0925 → 2.6.0-pr373.a9460b9

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 (21) hide show
  1. package/dist/ai-agent/index.js +2 -2
  2. package/dist/chunks/{VcAiAgentPanel.vue_vue_type_script_setup_true_lang-CMRryvQd.js → VcAiAgentPanel.vue_vue_type_script_setup_true_lang-4u2O1RBo.js} +556 -555
  3. package/dist/chunks/VcAiAgentPanel.vue_vue_type_script_setup_true_lang-4u2O1RBo.js.map +1 -0
  4. package/dist/chunks/{VcScheduler.vue_vue_type_script_setup_true_lang-DLu3i4Km.js → VcScheduler.vue_vue_type_script_setup_true_lang-BYWrVW1j.js} +3687 -3723
  5. package/dist/chunks/VcScheduler.vue_vue_type_script_setup_true_lang-BYWrVW1j.js.map +1 -0
  6. package/dist/chunks/{index-C8gcYcme.js → index-CnqnhUNt.js} +1 -1
  7. package/dist/chunks/{index-C8gcYcme.js.map → index-CnqnhUNt.js.map} +1 -1
  8. package/dist/core/plugins/ai-agent/components/_internal/VcAiAgentHeader.vue.d.ts.map +1 -1
  9. package/dist/framework.js +9 -9
  10. package/dist/tsconfig.tsbuildinfo +1 -1
  11. package/dist/ui/components/organisms/vc-blade/_internal/BladeHeader.vue.d.ts.map +1 -1
  12. package/dist/ui/components/organisms/vc-blade/_internal/toolbar/ShortcutKbd.vue.d.ts +5 -9
  13. package/dist/ui/components/organisms/vc-blade/_internal/toolbar/ShortcutKbd.vue.d.ts.map +1 -1
  14. package/dist/ui/components/organisms/vc-blade/_internal/toolbar/ShortcutTooltip.vue.d.ts +21 -0
  15. package/dist/ui/components/organisms/vc-blade/_internal/toolbar/ShortcutTooltip.vue.d.ts.map +1 -0
  16. package/dist/ui/components/organisms/vc-blade/_internal/toolbar/ToolbarBaseButton.vue.d.ts.map +1 -1
  17. package/dist/ui/components/organisms/vc-data-table/components/VcColumn.vue.d.ts +1 -1
  18. package/dist/ui/index.js +1 -1
  19. package/package.json +4 -4
  20. package/dist/chunks/VcAiAgentPanel.vue_vue_type_script_setup_true_lang-CMRryvQd.js.map +0 -1
  21. package/dist/chunks/VcScheduler.vue_vue_type_script_setup_true_lang-DLu3i4Km.js.map +0 -1
@@ -1,9 +1,9 @@
1
- import { ref as N, computed as E, shallowRef as qe, watch as Z, getCurrentInstance as ie, inject as F, isRef as Ze, provide as Me, defineComponent as Y, openBlock as B, createElementBlock as k, createElementVNode as b, createCommentVNode as X, createStaticVNode as Xe, Fragment as Se, renderList as Ye, toDisplayString as q, createVNode as M, createBlock as pe, unref as T, withCtx as G, withKeys as H, withModifiers as W, createTextVNode as Ae, Transition as Ne, normalizeClass as Fe, onUnmounted as je, normalizeStyle as Qe } from "vue";
2
- import { c as j, b as $e, d as Je, B as et, e as tt, f as nt, N as at, A as xe, L as ot, g as it, T as rt, a as be, _ as ue, E as st } from "./VcAiAgentPanel.vue_vue_type_style_index_0_lang-JB7OKRk6.js";
3
- import { c as re } from "./vendor-lodash-es-D2n90GJy.js";
1
+ import { ref as M, computed as A, shallowRef as He, watch as X, getCurrentInstance as re, inject as F, isRef as We, provide as ke, defineComponent as H, openBlock as B, createElementBlock as O, createElementVNode as w, createCommentVNode as Y, createStaticVNode as ze, Fragment as Be, renderList as qe, toDisplayString as fe, createBlock as ee, unref as k, withCtx as K, renderSlot as Ze, createTextVNode as Xe, createVNode as N, withKeys as W, withModifiers as z, Transition as Pe, normalizeClass as De, onUnmounted as Ye, normalizeStyle as je } from "vue";
2
+ import { c as j, b as Le, d as Qe, B as Je, e as et, f as tt, N as nt, A as ye, L as at, g as ot, T as rt, a as it, _ as ue, E as st } from "./VcAiAgentPanel.vue_vue_type_style_index_0_lang-JB7OKRk6.js";
3
+ import { c as ie } from "./vendor-lodash-es-D2n90GJy.js";
4
4
  import { u as lt } from "./vendor-vueuse-core-_wFDcFkI.js";
5
- import { u as dt } from "./vendor-vue-i18n-LO-EJStU.js";
6
- const ct = {
5
+ import { u as ct } from "./vendor-vue-i18n-LO-EJStU.js";
6
+ const dt = {
7
7
  url: "",
8
8
  title: "Virto OZ",
9
9
  width: 362,
@@ -18,11 +18,11 @@ const ct = {
18
18
  }, Tn = {
19
19
  EMBEDDED_HOST_READY: "EMBEDDED_HOST_READY",
20
20
  AI_CHAT_MESSAGE: "AI_CHAT_MESSAGE"
21
- }, ut = "ai-agent-toggle", pt = "lucide-sparkles", ft = "AI Assistant", se = j("ai-agent-panel");
21
+ }, ut = "ai-agent-toggle", ft = "lucide-sparkles", pt = "AI Assistant", se = j("ai-agent-panel");
22
22
  function gt() {
23
- const e = N("closed"), r = N(!1), a = E(() => e.value !== "closed"), t = E(() => e.value === "expanded"), o = () => {
23
+ const e = M("closed"), r = M(!1), a = A(() => e.value !== "closed"), t = A(() => e.value === "expanded"), o = () => {
24
24
  e.value === "closed" && (e.value = "open", se.debug("Panel opened"));
25
- }, d = () => {
25
+ }, s = () => {
26
26
  e.value = "closed", r.value = !1, se.debug("Panel closed, reset initialized state");
27
27
  };
28
28
  return {
@@ -31,9 +31,9 @@ function gt() {
31
31
  isExpanded: t,
32
32
  isInitialized: r,
33
33
  open: o,
34
- close: d,
34
+ close: s,
35
35
  toggle: () => {
36
- e.value === "closed" ? o() : d();
36
+ e.value === "closed" ? o() : s();
37
37
  },
38
38
  expand: () => {
39
39
  e.value === "open" && (e.value = "expanded", se.debug("Panel expanded"));
@@ -46,8 +46,8 @@ function gt() {
46
46
  }
47
47
  };
48
48
  }
49
- const ye = j("ai-agent-context");
50
- function Oe(e) {
49
+ const Ae = j("ai-agent-context");
50
+ function Ie(e) {
51
51
  return e ? {
52
52
  id: e.id,
53
53
  name: e.name,
@@ -56,9 +56,9 @@ function Oe(e) {
56
56
  } : { id: "unknown", name: "unknown", title: "Unknown" };
57
57
  }
58
58
  function vt(e) {
59
- const { userGetter: r, bladeGetter: a, localeGetter: t, tokenGetter: o } = e, d = N(/* @__PURE__ */ new Map()), C = () => {
60
- const v = a();
61
- return v ? d.value.get(v.id) ?? {
59
+ const { userGetter: r, bladeGetter: a, localeGetter: t, tokenGetter: o } = e, s = M(/* @__PURE__ */ new Map()), v = () => {
60
+ const f = a();
61
+ return f ? s.value.get(f.id) ?? {
62
62
  items: [],
63
63
  type: "list",
64
64
  suggestions: void 0
@@ -67,49 +67,49 @@ function vt(e) {
67
67
  type: "list",
68
68
  suggestions: void 0
69
69
  };
70
- }, c = E(() => C().items), l = E(() => C().type), u = E(() => C().suggestions), g = E(() => c.value.length);
70
+ }, C = A(() => v().items), h = A(() => v().type), p = A(() => v().suggestions), u = A(() => C.value.length);
71
71
  return {
72
- contextItems: c,
73
- contextType: l,
74
- contextSuggestions: u,
75
- totalItemsCount: g,
76
- setContextData: (v, h, x, L) => {
77
- const D = a()?.id || L;
78
- return D ? v.length === 0 && !x ? (d.value.delete(D), ye.debug(`Context cleared for blade: ${D}`), { cleared: !0 }) : (d.value.set(D, { items: v, type: h, suggestions: x }), ye.debug(`Context set for blade: ${D}, items: ${v.length}, type: ${h}`), { cleared: !1 }) : (ye.warn("Cannot set context data: no blade id available"), { cleared: !1 });
72
+ contextItems: C,
73
+ contextType: h,
74
+ contextSuggestions: p,
75
+ totalItemsCount: u,
76
+ setContextData: (f, _, T, D) => {
77
+ const L = a()?.id || D;
78
+ return L ? f.length === 0 && !T ? (s.value.delete(L), Ae.debug(`Context cleared for blade: ${L}`), { cleared: !0 }) : (s.value.set(L, { items: f, type: _, suggestions: T }), Ae.debug(`Context set for blade: ${L}, items: ${f.length}, type: ${_}`), { cleared: !1 }) : (Ae.warn("Cannot set context data: no blade id available"), { cleared: !1 });
79
79
  },
80
80
  buildInitPayload: async () => {
81
- const v = o ? await o() ?? void 0 : void 0;
81
+ const f = o ? await o() ?? void 0 : void 0;
82
82
  return {
83
83
  userId: r()?.id || "",
84
84
  locale: t(),
85
- blade: Oe(a()),
86
- contextType: l.value,
87
- items: re(c.value),
88
- suggestions: u.value ? re(u.value) : void 0,
89
- accessToken: v
85
+ blade: Ie(a()),
86
+ contextType: h.value,
87
+ items: ie(C.value),
88
+ suggestions: p.value ? ie(p.value) : void 0,
89
+ accessToken: f
90
90
  };
91
91
  },
92
92
  buildUpdatePayload: async () => {
93
- const v = o ? await o() ?? void 0 : void 0;
93
+ const f = o ? await o() ?? void 0 : void 0;
94
94
  return {
95
- blade: Oe(a()),
96
- contextType: l.value,
97
- items: re(c.value),
98
- suggestions: u.value ? re(u.value) : void 0,
95
+ blade: Ie(a()),
96
+ contextType: h.value,
97
+ items: ie(C.value),
98
+ suggestions: p.value ? ie(p.value) : void 0,
99
99
  locale: t(),
100
- accessToken: v
100
+ accessToken: f
101
101
  };
102
102
  }
103
103
  };
104
104
  }
105
105
  const P = j("ai-agent-transport");
106
106
  function Ct(e) {
107
- const { getConfig: r, isEmbedded: a, navigateToBlade: t, closePanel: o } = e, d = qe(null), C = N(!1), c = N(!1), l = /* @__PURE__ */ new Set(), u = /* @__PURE__ */ new Set();
108
- function g(f, A) {
109
- switch (f) {
107
+ const { getConfig: r, isEmbedded: a, navigateToBlade: t, closePanel: o } = e, s = He(null), v = M(!1), C = M(!1), h = /* @__PURE__ */ new Set(), p = /* @__PURE__ */ new Set();
108
+ function u(d, b) {
109
+ switch (d) {
110
110
  case "NAVIGATE_TO_APP": {
111
- const h = A;
112
- t && h?.bladeName && (t(h.bladeName, h.param, h.options), P.debug(`Navigation requested to: ${h.bladeName}`));
111
+ const _ = b;
112
+ t && _?.bladeName && (t(_.bladeName, _.param, _.options), P.debug(`Navigation requested to: ${_.bladeName}`));
113
113
  break;
114
114
  }
115
115
  // The panel's own Escape handler listens on the host document, which never sees a
@@ -121,117 +121,117 @@ function Ct(e) {
121
121
  break;
122
122
  }
123
123
  }
124
- const v = {
125
- type: f,
126
- payload: A,
124
+ const f = {
125
+ type: d,
126
+ payload: b,
127
127
  timestamp: Date.now()
128
128
  };
129
- l.forEach((h) => {
129
+ h.forEach((_) => {
130
130
  try {
131
- h(v);
132
- } catch (x) {
133
- P.error("Handler error:", x);
131
+ _(f);
132
+ } catch (T) {
133
+ P.error("Handler error:", T);
134
134
  }
135
135
  });
136
136
  }
137
- function p(f) {
138
- const v = r().allowedOrigins ?? [];
139
- if (v.length === 0) {
137
+ function c(d) {
138
+ const f = r().allowedOrigins ?? [];
139
+ if (f.length === 0) {
140
140
  P.warn(
141
141
  "Ignoring postMessage: aiAgentConfig.allowedOrigins is empty. Configure explicit origins to enable the AI agent bridge.",
142
- { origin: f.origin, type: f.data?.type }
142
+ { origin: d.origin, type: d.data?.type }
143
143
  );
144
144
  return;
145
145
  }
146
- if (v.includes("*")) {
146
+ if (f.includes("*")) {
147
147
  P.error(
148
148
  'Refusing postMessage with wildcard allowedOrigins. Replace "*" with explicit origins (e.g. ["https://chat.example.com"]).'
149
149
  );
150
150
  return;
151
151
  }
152
- if (!v.includes(f.origin))
152
+ if (!f.includes(d.origin))
153
153
  return;
154
- const h = a ? window.parent : d.value?.contentWindow;
155
- if (!h || f.source !== h)
154
+ const _ = a ? window.parent : s.value?.contentWindow;
155
+ if (!_ || d.source !== _)
156
156
  return;
157
- const x = f.data;
158
- if (!(!x?.type || typeof x.type != "string"))
159
- switch (P.debug(`Message received: ${x.type}`), x.type) {
157
+ const T = d.data;
158
+ if (!(!T?.type || typeof T.type != "string"))
159
+ switch (P.debug(`Message received: ${T.type}`), T.type) {
160
160
  // Embedded: parent forwards chat messages wrapped in AI_CHAT_MESSAGE
161
161
  case "AI_CHAT_MESSAGE": {
162
162
  if (a) {
163
- const L = x.payload;
164
- L?.type && g(L.type, L.payload);
163
+ const D = T.payload;
164
+ D?.type && u(D.type, D.payload);
165
165
  }
166
166
  return;
167
167
  }
168
168
  // Normal: chatbot signals it's ready
169
169
  case "CHAT_READY":
170
- u.forEach((L) => {
170
+ p.forEach((D) => {
171
171
  try {
172
- L();
173
- } catch (D) {
174
- P.error("ChatReady handler error:", D);
172
+ D();
173
+ } catch (L) {
174
+ P.error("ChatReady handler error:", L);
175
175
  }
176
176
  });
177
177
  break;
178
178
  // Normal: direct chat protocol messages
179
179
  default:
180
- g(x.type, x.payload);
180
+ u(T.type, T.payload);
181
181
  break;
182
182
  }
183
183
  }
184
184
  return {
185
- iframeRef: d,
186
- pendingInitContext: C,
187
- isListenerRegistered: c,
188
- setIframeRef(f) {
189
- d.value = f, P.debug("Iframe ref set:", f ? "available" : "null");
185
+ iframeRef: s,
186
+ pendingInitContext: v,
187
+ isListenerRegistered: C,
188
+ setIframeRef(d) {
189
+ s.value = d, P.debug("Iframe ref set:", d ? "available" : "null");
190
190
  },
191
- sendToIframe(f) {
192
- if (!d.value?.contentWindow) {
191
+ sendToIframe(d) {
192
+ if (!s.value?.contentWindow) {
193
193
  P.warn("Cannot send message: iframe not available");
194
194
  return;
195
195
  }
196
- const A = r().allowedOrigins?.[0];
197
- if (!A || A === "*") {
196
+ const b = r().allowedOrigins?.[0];
197
+ if (!b || b === "*") {
198
198
  P.error(
199
199
  "Refusing to send to iframe: aiAgentConfig.allowedOrigins must contain an explicit origin. Message dropped to avoid leaking data (including access tokens) to arbitrary origins.",
200
- { type: f.type }
200
+ { type: d.type }
201
201
  );
202
202
  return;
203
203
  }
204
- d.value.contentWindow.postMessage(f, A), P.debug(`Sent to iframe: ${f.type}`);
204
+ s.value.contentWindow.postMessage(d, b), P.debug(`Sent to iframe: ${d.type}`);
205
205
  },
206
- sendToParent(f) {
206
+ sendToParent(d) {
207
207
  if (!window.parent || window.parent === window) {
208
208
  P.warn("Cannot send to parent: not in iframe");
209
209
  return;
210
210
  }
211
- const A = r().parentOrigin;
212
- if (!A || A === "*") {
211
+ const b = r().parentOrigin;
212
+ if (!b || b === "*") {
213
213
  P.error(
214
214
  "Refusing to send to parent: aiAgentConfig.parentOrigin must be an explicit origin. Message dropped to avoid leaking data (including access tokens) to arbitrary origins.",
215
- { type: f.type }
215
+ { type: d.type }
216
216
  );
217
217
  return;
218
218
  }
219
- window.parent.postMessage(f, A), P.debug(`Sent to parent: ${f.type}`);
219
+ window.parent.postMessage(d, b), P.debug(`Sent to parent: ${d.type}`);
220
220
  },
221
221
  startListening() {
222
- c.value || (window.addEventListener("message", p), c.value = !0);
222
+ C.value || (window.addEventListener("message", c), C.value = !0);
223
223
  },
224
224
  stopListening() {
225
- c.value && (window.removeEventListener("message", p), c.value = !1);
225
+ C.value && (window.removeEventListener("message", c), C.value = !1);
226
226
  },
227
- onChatReady(f) {
228
- return u.add(f), () => {
229
- u.delete(f);
227
+ onChatReady(d) {
228
+ return p.add(d), () => {
229
+ p.delete(d);
230
230
  };
231
231
  },
232
- onMessage(f) {
233
- return l.add(f), () => {
234
- l.delete(f);
232
+ onMessage(d) {
233
+ return h.add(d), () => {
234
+ h.delete(d);
235
235
  };
236
236
  }
237
237
  };
@@ -243,102 +243,102 @@ function mt(e) {
243
243
  bladeGetter: a,
244
244
  localeGetter: t,
245
245
  tokenGetter: o,
246
- navigateToBlade: d,
247
- initialConfig: C,
248
- isEmbedded: c = !1
249
- } = e, l = N({ ...ct, ...C }), u = gt(), g = vt({
246
+ navigateToBlade: s,
247
+ initialConfig: v,
248
+ isEmbedded: C = !1
249
+ } = e, h = M({ ...dt, ...v }), p = gt(), u = vt({
250
250
  userGetter: r,
251
251
  bladeGetter: a,
252
252
  localeGetter: t,
253
253
  tokenGetter: o
254
- }), p = Ct({
255
- getConfig: () => l.value,
256
- isEmbedded: c,
257
- navigateToBlade: d,
258
- closePanel: () => u.close()
259
- }), f = E(() => ({
254
+ }), c = Ct({
255
+ getConfig: () => h.value,
256
+ isEmbedded: C,
257
+ navigateToBlade: s,
258
+ closePanel: () => p.close()
259
+ }), d = A(() => ({
260
260
  user: r(),
261
261
  currentBlade: a(),
262
- items: g.contextItems.value
263
- })), A = async () => {
264
- if (p.pendingInitContext.value && p.iframeRef.value?.contentWindow) {
265
- p.pendingInitContext.value = !1, u.isInitialized.value = !0;
266
- const I = await g.buildInitPayload();
267
- p.sendToIframe({ type: "INIT_CONTEXT", payload: I }), le.debug("Flushed pending INIT_CONTEXT");
262
+ items: u.contextItems.value
263
+ })), b = async () => {
264
+ if (c.pendingInitContext.value && c.iframeRef.value?.contentWindow) {
265
+ c.pendingInitContext.value = !1, p.isInitialized.value = !0;
266
+ const I = await u.buildInitPayload();
267
+ c.sendToIframe({ type: "INIT_CONTEXT", payload: I }), le.debug("Flushed pending INIT_CONTEXT");
268
268
  }
269
269
  };
270
- p.onChatReady(() => {
271
- p.iframeRef.value?.contentWindow ? (u.isInitialized.value = !0, g.buildInitPayload().then((I) => {
272
- p.sendToIframe({ type: "INIT_CONTEXT", payload: I }), le.info("Chatbot ready, sent INIT_CONTEXT");
273
- })) : (p.pendingInitContext.value = !0, le.info("Chatbot ready, iframe ref not available yet — pending INIT_CONTEXT"));
274
- }), Z(p.iframeRef, () => A()), Z(
275
- () => ({ currentBlade: f.value.currentBlade, items: f.value.items }),
270
+ c.onChatReady(() => {
271
+ c.iframeRef.value?.contentWindow ? (p.isInitialized.value = !0, u.buildInitPayload().then((I) => {
272
+ c.sendToIframe({ type: "INIT_CONTEXT", payload: I }), le.info("Chatbot ready, sent INIT_CONTEXT");
273
+ })) : (c.pendingInitContext.value = !0, le.info("Chatbot ready, iframe ref not available yet — pending INIT_CONTEXT"));
274
+ }), X(c.iframeRef, () => b()), X(
275
+ () => ({ currentBlade: d.value.currentBlade, items: d.value.items }),
276
276
  async () => {
277
- if (c) {
278
- const I = await g.buildInitPayload();
279
- p.sendToParent({ type: "AI_CONTEXT_UPDATE", payload: I });
277
+ if (C) {
278
+ const I = await u.buildInitPayload();
279
+ c.sendToParent({ type: "AI_CONTEXT_UPDATE", payload: I });
280
280
  return;
281
281
  }
282
- if (u.isOpen.value && u.isInitialized.value && p.iframeRef.value?.contentWindow) {
283
- const I = await g.buildUpdatePayload();
284
- p.sendToIframe({ type: "UPDATE_CONTEXT", payload: I });
282
+ if (p.isOpen.value && p.isInitialized.value && c.iframeRef.value?.contentWindow) {
283
+ const I = await u.buildUpdatePayload();
284
+ c.sendToIframe({ type: "UPDATE_CONTEXT", payload: I });
285
285
  }
286
286
  },
287
287
  { deep: !0 }
288
288
  );
289
- const v = () => c ? p.sendToParent({ type: "AI_TOGGLE_PANEL" }) : u.open(), h = () => c ? p.sendToParent({ type: "AI_TOGGLE_PANEL" }) : u.close(), x = () => c ? p.sendToParent({ type: "AI_TOGGLE_PANEL" }) : u.toggle(), L = (I) => {
290
- p.setIframeRef(I), A();
291
- }, D = (I, U, Q, $) => {
292
- const { cleared: J } = g.setContextData(I, U, Q, $);
293
- c && J && p.sendToParent({ type: "AI_CONTEXT_CLEAR" });
289
+ const f = () => C ? c.sendToParent({ type: "AI_TOGGLE_PANEL" }) : p.open(), _ = () => C ? c.sendToParent({ type: "AI_TOGGLE_PANEL" }) : p.close(), T = () => C ? c.sendToParent({ type: "AI_TOGGLE_PANEL" }) : p.toggle(), D = (I) => {
290
+ c.setIframeRef(I), b();
291
+ }, L = (I, G, Q, $) => {
292
+ const { cleared: J } = u.setContextData(I, G, Q, $);
293
+ C && J && c.sendToParent({ type: "AI_CONTEXT_CLEAR" });
294
294
  };
295
- return p.startListening(), c && (p.sendToParent({
295
+ return c.startListening(), C && (c.sendToParent({
296
296
  type: "EMBEDDED_APP_READY",
297
297
  payload: { supportedFeatures: ["ai-agent"] }
298
298
  }), le.info("Embedded mode: sent EMBEDDED_APP_READY to parent")), {
299
299
  // State
300
- panelState: u.panelState,
301
- config: l,
302
- context: f,
303
- isOpen: E(() => !c && u.isOpen.value),
304
- isExpanded: u.isExpanded,
305
- totalItemsCount: g.totalItemsCount,
300
+ panelState: p.panelState,
301
+ config: h,
302
+ context: d,
303
+ isOpen: A(() => !C && p.isOpen.value),
304
+ isExpanded: p.isExpanded,
305
+ totalItemsCount: u.totalItemsCount,
306
306
  // Panel control
307
- openPanel: v,
308
- closePanel: h,
309
- togglePanel: x,
310
- expandPanel: () => u.expand(),
311
- collapsePanel: () => u.collapse(),
307
+ openPanel: f,
308
+ closePanel: _,
309
+ togglePanel: T,
310
+ expandPanel: () => p.expand(),
311
+ collapsePanel: () => p.collapse(),
312
312
  // Configuration
313
313
  setConfig: (I) => {
314
- l.value = { ...l.value, ...I };
314
+ h.value = { ...h.value, ...I };
315
315
  },
316
316
  // Communication
317
- sendMessage: (I, U) => {
318
- p.sendToIframe({ type: I, payload: U });
317
+ sendMessage: (I, G) => {
318
+ c.sendToIframe({ type: I, payload: G });
319
319
  },
320
- onMessage: p.onMessage,
320
+ onMessage: c.onMessage,
321
321
  // Internal API
322
- iframeRef: p.iframeRef,
323
- _setIframeRef: L,
324
- _startListening: p.startListening,
325
- _stopListening: p.stopListening,
326
- _setContextData: D
322
+ iframeRef: c.iframeRef,
323
+ _setIframeRef: D,
324
+ _startListening: c.startListening,
325
+ _stopListening: c.stopListening,
326
+ _setContextData: L
327
327
  };
328
328
  }
329
- const _t = /* @__PURE__ */ new Set(["mod", "ctrl", "meta", "alt", "shift"]);
330
- function Re(e) {
329
+ const ht = /* @__PURE__ */ new Set(["mod", "ctrl", "meta", "alt", "shift"]);
330
+ function Me(e) {
331
331
  return new Proxy(
332
332
  {},
333
333
  {
334
334
  get(r, a) {
335
335
  if (!(typeof a != "string" || a === "then"))
336
- return _t.has(a) ? Re({ ...e, [a]: !0 }) : { key: a, ...e };
336
+ return ht.has(a) ? Me({ ...e, [a]: !0 }) : { key: a, ...e };
337
337
  }
338
338
  }
339
339
  );
340
340
  }
341
- const ee = Re({}), de = { ctrl: "⌃", alt: "⌥", shift: "⇧", meta: "⌘" }, ce = { ctrl: "Ctrl", alt: "Alt", shift: "Shift", meta: "Meta" }, ke = {
341
+ const Z = Me({}), ce = { ctrl: "⌃", alt: "⌥", shift: "⇧", meta: "⌘" }, de = { ctrl: "Ctrl", alt: "Alt", shift: "Shift", meta: "Meta" }, Te = {
342
342
  escape: "Esc",
343
343
  enter: "Enter",
344
344
  tab: "Tab",
@@ -353,7 +353,7 @@ const ee = Re({}), de = { ctrl: "⌃", alt: "⌥", shift: "⇧", meta: "⌘" },
353
353
  period: ".",
354
354
  comma: ",",
355
355
  slash: "/"
356
- }, Pe = {
356
+ }, xe = {
357
357
  escape: "Escape",
358
358
  enter: "Enter",
359
359
  tab: "Tab",
@@ -369,24 +369,24 @@ const ee = Re({}), de = { ctrl: "⌃", alt: "⌥", shift: "⇧", meta: "⌘" },
369
369
  comma: ",",
370
370
  slash: "/"
371
371
  };
372
- function ht(e) {
373
- return e in ke ? ke[e] : (e.length === 1, e.toUpperCase());
372
+ function _t(e) {
373
+ return e in Te ? Te[e] : (e.length === 1, e.toUpperCase());
374
374
  }
375
375
  function Et(e) {
376
- return e in Pe ? Pe[e] : e.length === 1 ? e.toUpperCase() : e.charAt(0).toUpperCase() + e.slice(1);
376
+ return e in xe ? xe[e] : e.length === 1 ? e.toUpperCase() : e.charAt(0).toUpperCase() + e.slice(1);
377
377
  }
378
- function Te(e, r) {
379
- const a = !!e.ctrl || !!e.mod && !r, t = !!e.meta || !!e.mod && r, o = [], d = [];
380
- r ? (a && o.push(de.ctrl), e.alt && o.push(de.alt), e.shift && o.push(de.shift), t && o.push(de.meta)) : (a && o.push(ce.ctrl), t && o.push(ce.meta), e.alt && o.push(ce.alt), e.shift && o.push(ce.shift)), a && d.push("Control"), t && d.push("Meta"), e.alt && d.push("Alt"), e.shift && d.push("Shift"), o.push(ht(e.key));
381
- const C = [...d, Et(e.key)].join("+");
382
- return { parts: o, aria: C };
378
+ function Ne(e, r) {
379
+ const a = !!e.ctrl || !!e.mod && !r, t = !!e.meta || !!e.mod && r, o = [], s = [];
380
+ r ? (a && o.push(ce.ctrl), e.alt && o.push(ce.alt), e.shift && o.push(ce.shift), t && o.push(ce.meta)) : (a && o.push(de.ctrl), t && o.push(de.meta), e.alt && o.push(de.alt), e.shift && o.push(de.shift)), a && s.push("Control"), t && s.push("Meta"), e.alt && s.push("Alt"), e.shift && s.push("Shift"), o.push(_t(e.key));
381
+ const v = [...s, Et(e.key)].join("+");
382
+ return { parts: o, aria: v };
383
383
  }
384
- const Le = {
384
+ const Se = {
385
385
  backslash: "Backslash",
386
386
  period: "Period",
387
387
  comma: "Comma",
388
388
  slash: "Slash"
389
- }, De = {
389
+ }, Oe = {
390
390
  enter: "Enter",
391
391
  escape: "Escape",
392
392
  tab: "Tab",
@@ -398,23 +398,23 @@ const Le = {
398
398
  arrowleft: "ArrowLeft",
399
399
  arrowright: "ArrowRight"
400
400
  };
401
- function wt(e) {
401
+ function bt(e) {
402
402
  return e.length === 1 && e >= "a" && e <= "z";
403
403
  }
404
404
  function At(e) {
405
405
  return e.length === 1 && e >= "0" && e <= "9";
406
406
  }
407
- function bt(e) {
407
+ function wt(e) {
408
408
  return /^f([1-9]|1[0-2])$/.test(e);
409
409
  }
410
410
  function yt(e) {
411
- if (wt(e)) return `Key${e.toUpperCase()}`;
411
+ if (bt(e)) return `Key${e.toUpperCase()}`;
412
412
  if (At(e)) return `Digit${e}`;
413
- if (e in Le) return Le[e];
413
+ if (e in Se) return Se[e];
414
414
  }
415
415
  function Bt(e) {
416
- if (e in De) return De[e];
417
- if (bt(e)) return e.toUpperCase();
416
+ if (e in Oe) return Oe[e];
417
+ if (wt(e)) return e.toUpperCase();
418
418
  }
419
419
  function It(e, r) {
420
420
  const a = yt(e.key);
@@ -423,8 +423,8 @@ function It(e, r) {
423
423
  return t !== void 0 ? r.key === t : !1;
424
424
  }
425
425
  function Tt(e, r, a) {
426
- const t = !!e.ctrl || !!e.mod && !a, o = !!e.meta || !!e.mod && a, d = !!e.alt, C = !!e.shift;
427
- return r.ctrlKey !== t || r.metaKey !== o || r.altKey !== d || r.shiftKey !== C ? !1 : It(e, r);
426
+ const t = !!e.ctrl || !!e.mod && !a, o = !!e.meta || !!e.mod && a, s = !!e.alt, v = !!e.shift;
427
+ return r.ctrlKey !== t || r.metaKey !== o || r.altKey !== s || r.shiftKey !== v ? !1 : It(e, r);
428
428
  }
429
429
  const xt = /* @__PURE__ */ new Set([
430
430
  "button",
@@ -449,23 +449,23 @@ function xn() {
449
449
  function St() {
450
450
  return typeof navigator > "u" ? !1 : /Mac|iPhone|iPad|iPod/i.test(navigator.userAgent);
451
451
  }
452
- function Ge() {
452
+ function Fe() {
453
453
  const e = St();
454
454
  return {
455
- hotkey: ee,
455
+ hotkey: Z,
456
456
  isMac: e,
457
- formatShortcut: (r) => Te(r, e)
457
+ formatShortcut: (r) => Ne(r, e)
458
458
  };
459
459
  }
460
- let Ot, Ue, Ve, kt;
460
+ let Ot, $e, Re, kt;
461
461
  function Sn(e) {
462
462
  Ot = e;
463
463
  }
464
464
  function On(e) {
465
- Ue = e;
465
+ $e = e;
466
466
  }
467
467
  function kn(e) {
468
- Ve = e;
468
+ Re = e;
469
469
  }
470
470
  function Pn(e) {
471
471
  kt = e;
@@ -475,134 +475,134 @@ function y(e) {
475
475
  throw new Error(`[vc-shell] ${e} requires blade context.
476
476
  ${Pt}`);
477
477
  }
478
- function Lt() {
479
- const e = (ie() ? F($e, void 0) : void 0) ?? Ue, r = (ie() ? F(Je, void 0) : void 0) ?? Ve;
478
+ function Dt() {
479
+ const e = (re() ? F(Le, void 0) : void 0) ?? $e, r = (re() ? F(Qe, void 0) : void 0) ?? Re;
480
480
  if (!e || !r)
481
481
  throw new Error(
482
482
  "[vc-shell] useBlade() failed: BladeStack or BladeMessaging not available. Ensure BladeNavigationPlugin (plugin-v2) is installed."
483
483
  );
484
- const a = e, t = r, o = ie() ? F(et, void 0) : void 0, d = ie() ? F(tt, void 0) : void 0, C = E(() => (o || y("id"), o.value.id)), c = E(() => (o || y("param"), o.value.param)), l = E(() => (o || y("options"), o.value.options)), u = E(() => (o || y("query"), o.value.query)), g = E(() => (o || y("closable"), o.value.parentId !== void 0)), p = E(() => (o || y("expanded"), a.activeBlade.value?.id === o.value.id)), f = E(() => (o || y("name"), o.value.name)), A = E(() => {
484
+ const a = e, t = r, o = re() ? F(Je, void 0) : void 0, s = re() ? F(et, void 0) : void 0, v = A(() => (o || y("id"), o.value.id)), C = A(() => (o || y("param"), o.value.param)), h = A(() => (o || y("options"), o.value.options)), p = A(() => (o || y("query"), o.value.query)), u = A(() => (o || y("closable"), o.value.parentId !== void 0)), c = A(() => (o || y("expanded"), a.activeBlade.value?.id === o.value.id)), d = A(() => (o || y("name"), o.value.name)), b = A(() => {
485
485
  if (!o) return;
486
- const _ = o.value.id;
487
- return a.blades.value.find((S) => S.parentId === _)?.param;
486
+ const m = o.value.id;
487
+ return a.blades.value.find((x) => x.parentId === m)?.param;
488
488
  });
489
- let v = !1;
490
- function h(_) {
491
- if (v) {
489
+ let f = !1;
490
+ function _(m) {
491
+ if (f) {
492
492
  console.warn(
493
493
  "[vc-shell] provideBladeData() called more than once in the same blade. Only the first call takes effect."
494
494
  );
495
495
  return;
496
496
  }
497
- v = !0;
498
- const S = Ze(_) ? _ : N(_);
499
- Me(nt, S);
497
+ f = !0;
498
+ const x = We(m) ? m : M(m);
499
+ ke(tt, x);
500
500
  }
501
- async function x(_) {
502
- const { isWorkspace: S, ...V } = _;
503
- if (S)
504
- await a.openWorkspace(V);
501
+ async function T(m) {
502
+ const { isWorkspace: x, ...U } = m;
503
+ if (x)
504
+ await a.openWorkspace(U);
505
505
  else {
506
506
  const oe = o?.value.id;
507
- oe ? await a.openBlade({ ...V, parentId: oe }) : await a.openBlade(V);
507
+ oe ? await a.openBlade({ ...U, parentId: oe }) : await a.openBlade(U);
508
508
  }
509
509
  }
510
- async function L() {
510
+ async function D() {
511
511
  return o || y("closeSelf()"), a.closeBlade(o.value.id);
512
512
  }
513
- async function D() {
513
+ async function L() {
514
514
  o || y("closeChildren()"), await a.closeChildren(o.value.id);
515
515
  }
516
- async function I(_) {
516
+ async function I(m) {
517
517
  o || y("replaceWith()"), await a.replaceCurrentBlade({
518
- ..._,
518
+ ...m,
519
519
  parentId: o.value.parentId
520
520
  });
521
521
  }
522
- async function U(_) {
522
+ async function G(m) {
523
523
  o || y("coverWith()"), await a.coverCurrentBlade({
524
- ..._,
524
+ ...m,
525
525
  parentId: o.value.parentId
526
526
  });
527
527
  }
528
- async function Q(_, S) {
529
- return o || y("callParent()"), t.callParent(o.value.id, _, S);
528
+ async function Q(m, x) {
529
+ return o || y("callParent()"), t.callParent(o.value.id, m, x);
530
530
  }
531
- function $(_) {
532
- o || y("exposeToChildren()"), t.exposeToChildren(o.value.id, _);
531
+ function $(m) {
532
+ o || y("exposeToChildren()"), t.exposeToChildren(o.value.id, m);
533
533
  }
534
- function J(_) {
535
- o || y("onBeforeClose()"), a.registerBeforeClose(o.value.id, _);
534
+ function J(m) {
535
+ o || y("onBeforeClose()"), a.registerBeforeClose(o.value.id, m);
536
536
  }
537
- function fe(_) {
538
- o || y("setError()"), a.setBladeError(o.value.id, _);
537
+ function pe(m) {
538
+ o || y("setError()"), a.setBladeError(o.value.id, m);
539
539
  }
540
540
  function ge() {
541
541
  o || y("clearError()"), a.clearBladeError(o.value.id);
542
542
  }
543
543
  let ve = 0;
544
- function Ce(_) {
545
- d || y("addBanner()");
546
- const S = `banner-${o.value.id}-${++ve}`;
547
- return d.value.push({
548
- ..._,
549
- id: S,
550
- dismissible: _.dismissible ?? !1
551
- }), S;
544
+ function Ce(m) {
545
+ s || y("addBanner()");
546
+ const x = `banner-${o.value.id}-${++ve}`;
547
+ return s.value.push({
548
+ ...m,
549
+ id: x,
550
+ dismissible: m.dismissible ?? !1
551
+ }), x;
552
552
  }
553
- function te(_) {
554
- d || y("removeBanner()"), d.value = d.value.filter((S) => S.id !== _);
553
+ function te(m) {
554
+ s || y("removeBanner()"), s.value = s.value.filter((x) => x.id !== m);
555
555
  }
556
556
  function me() {
557
- d || y("clearBanners()"), d.value = d.value.filter((_) => _._system);
557
+ s || y("clearBanners()"), s.value = s.value.filter((m) => m._system);
558
558
  }
559
559
  let ne = !1, ae = !1;
560
- function _e(_) {
560
+ function he(m) {
561
561
  if (o || y("onActivated()"), ne) {
562
562
  console.warn("[useBlade] onActivated() already registered in this blade.");
563
563
  return;
564
564
  }
565
- ne = !0, Z(p, (S) => {
566
- S && _();
565
+ ne = !0, X(c, (x) => {
566
+ x && m();
567
567
  });
568
568
  }
569
- function he(_) {
569
+ function _e(m) {
570
570
  if (o || y("onDeactivated()"), ae) {
571
571
  console.warn("[useBlade] onDeactivated() already registered in this blade.");
572
572
  return;
573
573
  }
574
- ae = !0, Z(p, (S) => {
575
- S || _();
574
+ ae = !0, X(c, (x) => {
575
+ x || m();
576
576
  });
577
577
  }
578
578
  return {
579
- id: C,
580
- param: c,
581
- activeChildParam: A,
582
- options: l,
583
- query: u,
584
- closable: g,
585
- expanded: p,
586
- name: f,
587
- provideBladeData: h,
588
- openBlade: x,
589
- closeSelf: L,
590
- closeChildren: D,
579
+ id: v,
580
+ param: C,
581
+ activeChildParam: b,
582
+ options: h,
583
+ query: p,
584
+ closable: u,
585
+ expanded: c,
586
+ name: d,
587
+ provideBladeData: _,
588
+ openBlade: T,
589
+ closeSelf: D,
590
+ closeChildren: L,
591
591
  replaceWith: I,
592
- coverWith: U,
592
+ coverWith: G,
593
593
  callParent: Q,
594
594
  exposeToChildren: $,
595
595
  onBeforeClose: J,
596
- onActivated: _e,
597
- onDeactivated: he,
598
- setError: fe,
596
+ onActivated: he,
597
+ onDeactivated: _e,
598
+ setError: pe,
599
599
  clearError: ge,
600
600
  addBanner: Ce,
601
601
  removeBanner: te,
602
602
  clearBanners: me
603
603
  };
604
604
  }
605
- function Dt(e, r) {
605
+ function Lt(e, r) {
606
606
  return {
607
607
  id: r.generateId(),
608
608
  name: e.name,
@@ -653,134 +653,134 @@ let $t = 0;
653
653
  function Rt() {
654
654
  return `blade_${++$t}_${Math.random().toString(36).slice(2, 8)}`;
655
655
  }
656
- function Ln(e, r, a = at) {
657
- const t = N([]), o = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Map(), C = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Map(), l = E(() => t.value[0]), u = E(() => t.value), g = E(() => {
656
+ function Dn(e, r, a = nt) {
657
+ const t = M([]), o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), v = /* @__PURE__ */ new Map(), C = /* @__PURE__ */ new Map(), h = A(() => t.value[0]), p = A(() => t.value), u = A(() => {
658
658
  for (let n = t.value.length - 1; n >= 0; n--)
659
659
  if (t.value[n].visible) return t.value[n];
660
660
  });
661
- function p(n) {
662
- o.delete(n), d.delete(n), C.delete(n), c.delete(n);
661
+ function c(n) {
662
+ o.delete(n), s.delete(n), v.delete(n), C.delete(n);
663
663
  }
664
- function f(n) {
664
+ function d(n) {
665
665
  const i = e.getBlade(n);
666
666
  if (i)
667
667
  return i.route;
668
668
  }
669
- const A = {
669
+ const b = {
670
670
  generateId: Rt,
671
- resolveUrl: f
671
+ resolveUrl: d
672
672
  };
673
- async function v(n) {
673
+ async function f(n) {
674
674
  for (let i = n.length - 1; i >= 0; i--) {
675
- const s = o.get(n[i].id);
676
- if (s && await s())
675
+ const l = o.get(n[i].id);
676
+ if (l && await l())
677
677
  return !0;
678
678
  }
679
679
  return !1;
680
680
  }
681
- function h(n) {
681
+ function _(n) {
682
682
  for (const i of n)
683
- C.get(i.id)?.(), p(i.id);
683
+ v.get(i.id)?.(), c(i.id);
684
684
  }
685
- async function x(n) {
686
- if (l.value?.name === n.name) return !1;
687
- const s = e.getBlade(n.name);
688
- if (!s)
685
+ async function T(n) {
686
+ if (h.value?.name === n.name) return !1;
687
+ const l = e.getBlade(n.name);
688
+ if (!l)
689
689
  throw new Error(`[BladeStack] Blade '${n.name}' not found in registry`);
690
- if (r && s.permissions && !r(s.permissions))
690
+ if (r && l.permissions && !r(l.permissions))
691
691
  return console.warn(`[BladeStack] Access denied to workspace '${n.name}'`), !1;
692
- h([...t.value]);
693
- const m = Dt(n, A);
694
- return t.value = [m], n.onOpen && d.set(m.id, n.onOpen), n.onClose && C.set(m.id, n.onClose), n.onOpen?.(), !0;
692
+ _([...t.value]);
693
+ const g = Lt(n, b);
694
+ return t.value = [g], n.onOpen && s.set(g.id, n.onOpen), n.onClose && v.set(g.id, n.onClose), n.onOpen?.(), !0;
695
695
  }
696
- async function L(n) {
696
+ async function D(n) {
697
697
  if (!e.getBlade(n.name))
698
698
  throw new Error(`[BladeStack] Blade '${n.name}' not found in registry`);
699
- const i = n.parentId ?? g.value?.id ?? l.value?.id;
699
+ const i = n.parentId ?? u.value?.id ?? h.value?.id;
700
700
  if (!i)
701
701
  throw new Error("[BladeStack] Cannot open blade: no parent blade found");
702
- const s = t.value.findIndex((O) => O.id === i);
703
- if (s === -1)
702
+ const l = t.value.findIndex((S) => S.id === i);
703
+ if (l === -1)
704
704
  throw new Error(`[BladeStack] Parent blade '${i}' not found in stack`);
705
- const m = t.value.slice(s + 1);
706
- if (m.length > 0 && await v(m))
705
+ const g = t.value.slice(l + 1);
706
+ if (g.length > 0 && await f(g))
707
707
  return !1;
708
- h(m);
709
- const w = Mt(n, i, A);
710
- return t.value = [...t.value.slice(0, s + 1), w], n.onOpen && d.set(w.id, n.onOpen), n.onClose && C.set(w.id, n.onClose), n.onOpen?.(), !0;
708
+ _(g);
709
+ const E = Mt(n, i, b);
710
+ return t.value = [...t.value.slice(0, l + 1), E], n.onOpen && s.set(E.id, n.onOpen), n.onClose && v.set(E.id, n.onClose), n.onOpen?.(), !0;
711
711
  }
712
- async function D(n) {
713
- const i = t.value.findIndex((O) => O.id === n);
712
+ async function L(n) {
713
+ const i = t.value.findIndex((S) => S.id === n);
714
714
  if (i === -1 || i === 0) return "refused";
715
- const s = t.value.slice(i);
716
- if (await v(s)) return "prevented";
717
- h(s), t.value = t.value.slice(0, i);
718
- const w = t.value.length - 1;
719
- if (w > 0 && !t.value[w].visible) {
720
- const O = [...t.value];
721
- O[w] = { ...O[w], visible: !0 }, t.value = O;
715
+ const l = t.value.slice(i);
716
+ if (await f(l)) return "prevented";
717
+ _(l), t.value = t.value.slice(0, i);
718
+ const E = t.value.length - 1;
719
+ if (E > 0 && !t.value[E].visible) {
720
+ const S = [...t.value];
721
+ S[E] = { ...S[E], visible: !0 }, t.value = S;
722
722
  }
723
723
  return "closed";
724
724
  }
725
725
  async function I(n) {
726
- const i = g.value;
726
+ const i = u.value;
727
727
  if (!i)
728
728
  throw new Error("[BladeStack] No active blade to replace");
729
729
  if (!e.getBlade(n.name))
730
730
  throw new Error(`[BladeStack] Blade '${n.name}' not found in registry`);
731
- const s = t.value.findIndex((R) => R.id === i.id);
732
- if (s === -1)
731
+ const l = t.value.findIndex((R) => R.id === i.id);
732
+ if (l === -1)
733
733
  throw new Error(`[BladeStack] Active blade '${i.id}' not found in stack`);
734
- const m = t.value.slice(s + 1);
735
- if (m.length > 0) {
736
- if (await v(m)) return !1;
737
- h(m);
734
+ const g = t.value.slice(l + 1);
735
+ if (g.length > 0) {
736
+ if (await f(g)) return !1;
737
+ _(g);
738
738
  }
739
- const w = Nt(n, i.parentId, A);
740
- h([i]);
741
- const O = [...t.value.slice(0, s), w, ...t.value.slice(s + 1)];
742
- return t.value = O, n.onOpen && d.set(w.id, n.onOpen), n.onClose && C.set(w.id, n.onClose), n.onOpen?.(), !0;
739
+ const E = Nt(n, i.parentId, b);
740
+ _([i]);
741
+ const S = [...t.value.slice(0, l), E, ...t.value.slice(l + 1)];
742
+ return t.value = S, n.onOpen && s.set(E.id, n.onOpen), n.onClose && v.set(E.id, n.onClose), n.onOpen?.(), !0;
743
743
  }
744
- async function U(n) {
745
- const i = g.value;
744
+ async function G(n) {
745
+ const i = u.value;
746
746
  if (!i)
747
747
  throw new Error("[BladeStack] No active blade to cover");
748
748
  if (!e.getBlade(n.name))
749
749
  throw new Error(`[BladeStack] Blade '${n.name}' not found in registry`);
750
- const s = t.value.findIndex((R) => R.id === i.id);
751
- if (s === -1)
750
+ const l = t.value.findIndex((R) => R.id === i.id);
751
+ if (l === -1)
752
752
  throw new Error(`[BladeStack] Active blade '${i.id}' not found in stack`);
753
- const m = t.value.slice(s + 1);
754
- if (m.length > 0) {
755
- if (await v(m)) return !1;
756
- h(m);
753
+ const g = t.value.slice(l + 1);
754
+ if (g.length > 0) {
755
+ if (await f(g)) return !1;
756
+ _(g);
757
757
  }
758
- const w = Ft(n, i.id, A), O = t.value.slice(0, s);
759
- return O.push({ ...i, visible: !1 }), O.push(w), t.value = O, n.onOpen && d.set(w.id, n.onOpen), n.onClose && C.set(w.id, n.onClose), n.onOpen?.(), !0;
758
+ const E = Ft(n, i.id, b), S = t.value.slice(0, l);
759
+ return S.push({ ...i, visible: !1 }), S.push(E), t.value = S, n.onOpen && s.set(E.id, n.onOpen), n.onClose && v.set(E.id, n.onClose), n.onOpen?.(), !0;
760
760
  }
761
761
  async function Q(n) {
762
- const i = t.value.findIndex((w) => w.id === n);
762
+ const i = t.value.findIndex((E) => E.id === n);
763
763
  if (i === -1) return !1;
764
- const s = t.value.slice(i + 1);
765
- return s.length === 0 || await v(s) ? !1 : (h(s), t.value = t.value.slice(0, i + 1), !0);
764
+ const l = t.value.slice(i + 1);
765
+ return l.length === 0 || await f(l) ? !1 : (_(l), t.value = t.value.slice(0, i + 1), !0);
766
766
  }
767
767
  function $(n) {
768
- g.value?.url && a[n]();
768
+ u.value?.url && a[n]();
769
769
  }
770
770
  async function J(n) {
771
- await x(n) && $("push");
771
+ await T(n) && $("push");
772
772
  }
773
- async function fe(n) {
774
- await L(n) && $("push");
773
+ async function pe(n) {
774
+ await D(n) && $("push");
775
775
  }
776
776
  async function ge(n) {
777
777
  await I(n) && $("replace");
778
778
  }
779
779
  async function ve(n) {
780
- await U(n) && $("push");
780
+ await G(n) && $("push");
781
781
  }
782
782
  async function Ce(n) {
783
- const i = await D(n);
783
+ const i = await L(n);
784
784
  return i === "closed" && a.replace(), i === "prevented";
785
785
  }
786
786
  async function te(n) {
@@ -793,70 +793,70 @@ function Ln(e, r, a = at) {
793
793
  o.delete(n);
794
794
  }
795
795
  function ae(n, i) {
796
- const s = t.value.findIndex((w) => w.id === n);
797
- if (s === -1) return;
798
- const m = [...t.value];
799
- m[s] = { ...m[s], error: i }, t.value = m;
796
+ const l = t.value.findIndex((E) => E.id === n);
797
+ if (l === -1) return;
798
+ const g = [...t.value];
799
+ g[l] = { ...g[l], error: i }, t.value = g;
800
800
  }
801
- function _e(n) {
802
- const i = t.value.findIndex((m) => m.id === n);
801
+ function he(n) {
802
+ const i = t.value.findIndex((g) => g.id === n);
803
803
  if (i === -1) return;
804
- const s = [...t.value];
805
- s[i] = { ...s[i], error: void 0 }, t.value = s;
804
+ const l = [...t.value];
805
+ l[i] = { ...l[i], error: void 0 }, t.value = l;
806
806
  }
807
- function he(n, i) {
808
- const s = t.value.findIndex((w) => w.id === n);
809
- if (s === -1 || t.value[s].title === i) return;
810
- const m = [...t.value];
811
- m[s] = { ...m[s], title: i }, t.value = m;
807
+ function _e(n, i) {
808
+ const l = t.value.findIndex((E) => E.id === n);
809
+ if (l === -1 || t.value[l].title === i) return;
810
+ const g = [...t.value];
811
+ g[l] = { ...g[l], title: i }, t.value = g;
812
812
  }
813
- function _(n) {
814
- const i = t.value.findIndex((s) => s.id === n);
815
- return i === -1 ? [] : t.value.slice(0, i).filter((s) => s.visible).map((s) => ({
816
- id: s.id,
817
- title: s.title ?? s.name,
818
- clickHandler: async (m) => {
819
- await te(m);
813
+ function m(n) {
814
+ const i = t.value.findIndex((l) => l.id === n);
815
+ return i === -1 ? [] : t.value.slice(0, i).filter((l) => l.visible).map((l) => ({
816
+ id: l.id,
817
+ title: l.title ?? l.name,
818
+ clickHandler: async (g) => {
819
+ await te(g);
820
820
  }
821
821
  }));
822
822
  }
823
- function S(n, i) {
824
- const s = t.value.findIndex((K) => K.id === n);
825
- if (s === -1) return;
826
- const m = t.value[s].query ?? {}, w = { ...m };
827
- for (const [K, we] of Object.entries(i))
828
- we === "" || we == null ? delete w[K] : w[K] = we;
829
- const O = Object.keys(m), R = Object.keys(w);
830
- if (O.length === R.length && R.every((K) => m[K] === w[K]))
823
+ function x(n, i) {
824
+ const l = t.value.findIndex((V) => V.id === n);
825
+ if (l === -1) return;
826
+ const g = t.value[l].query ?? {}, E = { ...g };
827
+ for (const [V, be] of Object.entries(i))
828
+ be === "" || be == null ? delete E[V] : E[V] = be;
829
+ const S = Object.keys(g), R = Object.keys(E);
830
+ if (S.length === R.length && R.every((V) => g[V] === E[V]))
831
831
  return;
832
832
  const Ee = [...t.value];
833
- Ee[s] = { ...Ee[s], query: w }, t.value = Ee;
833
+ Ee[l] = { ...Ee[l], query: E }, t.value = Ee;
834
834
  }
835
- function V(n) {
836
- let i = c.get(n);
837
- return i || (i = N(!1), c.set(n, i)), i;
835
+ function U(n) {
836
+ let i = C.get(n);
837
+ return i || (i = M(!1), C.set(n, i)), i;
838
838
  }
839
839
  function oe(n) {
840
- return c.get(n)?.value ?? !1;
840
+ return C.get(n)?.value ?? !1;
841
841
  }
842
- function He(n, i) {
843
- V(n).value = i;
842
+ function Ue(n, i) {
843
+ U(n).value = i;
844
844
  }
845
- function We(n) {
846
- const i = V(n);
845
+ function Ve(n) {
846
+ const i = U(n);
847
847
  i.value = !i.value;
848
848
  }
849
- function ze(n) {
849
+ function Ke(n) {
850
850
  for (const i of t.value)
851
- p(i.id);
851
+ c(i.id);
852
852
  t.value = n;
853
853
  }
854
854
  return {
855
- workspace: l,
856
- blades: u,
857
- activeBlade: g,
855
+ workspace: h,
856
+ blades: p,
857
+ activeBlade: u,
858
858
  openWorkspace: J,
859
- openBlade: fe,
859
+ openBlade: pe,
860
860
  closeBlade: Ce,
861
861
  closeChildren: te,
862
862
  replaceCurrentBlade: ge,
@@ -864,26 +864,26 @@ function Ln(e, r, a = at) {
864
864
  registerBeforeClose: me,
865
865
  unregisterBeforeClose: ne,
866
866
  setBladeError: ae,
867
- clearBladeError: _e,
868
- setBladeTitle: he,
869
- trailFor: _,
870
- updateBladeQuery: S,
871
- getMaximizedRef: V,
867
+ clearBladeError: he,
868
+ setBladeTitle: _e,
869
+ trailFor: m,
870
+ updateBladeQuery: x,
871
+ getMaximizedRef: U,
872
872
  isMaximized: oe,
873
- setMaximized: He,
874
- toggleMaximized: We,
875
- _restoreStack: ze
873
+ setMaximized: Ue,
874
+ toggleMaximized: Ve,
875
+ _restoreStack: Ke
876
876
  };
877
877
  }
878
878
  function Gt() {
879
- const e = F($e);
879
+ const e = F(Le);
880
880
  if (!e)
881
881
  throw new Error("[useBladeStack] BladeStack not found. Ensure BladeNavigationPlugin is installed.");
882
882
  return e;
883
883
  }
884
- const z = j("use-ai-agent");
885
- function Dn(e) {
886
- const r = F(ot), { user: a, getAccessToken: t } = it(), { openBlade: o } = Lt(), { blades: d, activeBlade: C } = Gt(), c = e?.isEmbedded, l = mt({
884
+ const q = j("use-ai-agent");
885
+ function Ln(e) {
886
+ const r = F(at), { user: a, getAccessToken: t } = ot(), { openBlade: o } = Dt(), { blades: s, activeBlade: v } = Gt(), C = e?.isEmbedded, h = mt({
887
887
  userGetter: () => {
888
888
  if (a.value)
889
889
  return {
@@ -894,49 +894,49 @@ function Dn(e) {
894
894
  };
895
895
  },
896
896
  bladeGetter: () => {
897
- const g = C.value ?? d.value[d.value.length - 1];
898
- return g ? {
899
- id: g.id,
900
- name: g.name,
901
- title: g.title,
902
- param: g.param,
903
- options: g.options
897
+ const u = v.value ?? s.value[s.value.length - 1];
898
+ return u ? {
899
+ id: u.id,
900
+ name: u.name,
901
+ title: u.title,
902
+ param: u.param,
903
+ options: u.options
904
904
  } : null;
905
905
  },
906
906
  localeGetter: () => r?.currentLocale.value ?? "en",
907
907
  tokenGetter: t,
908
- navigateToBlade: (g, p, f) => {
909
- o({ name: g, param: p, options: f }).then(() => {
910
- z.debug(`Navigated to blade: ${g}`);
911
- }).catch((A) => {
912
- z.warn(`Blade not found or cannot be opened: ${g}`, A);
908
+ navigateToBlade: (u, c, d) => {
909
+ o({ name: u, param: c, options: d }).then(() => {
910
+ q.debug(`Navigated to blade: ${u}`);
911
+ }).catch((b) => {
912
+ q.warn(`Blade not found or cannot be opened: ${u}`, b);
913
913
  });
914
914
  },
915
915
  initialConfig: e?.config,
916
- isEmbedded: c
916
+ isEmbedded: C
917
917
  });
918
- if (Me(xe, l), z.debug("AiAgentService provided"), e?.addGlobalToolbarButton ?? !0) {
919
- const g = F(rt, null);
920
- g ? (g.registerToolbarItem(
918
+ if (ke(ye, h), q.debug("AiAgentService provided"), e?.addGlobalToolbarButton ?? !0) {
919
+ const u = F(rt, null);
920
+ u ? (u.registerToolbarItem(
921
921
  {
922
922
  id: ut,
923
- icon: pt,
924
- title: ft,
925
- shortcut: ee.mod.i,
923
+ icon: ft,
924
+ title: pt,
925
+ shortcut: Z.mod.i,
926
926
  clickHandler: () => {
927
- l.togglePanel();
927
+ h.togglePanel();
928
928
  }
929
929
  },
930
930
  "*"
931
931
  // Wildcard for all blades
932
- ), z.debug("Global AI toolbar button registered with wildcard '*'")) : z.warn("Toolbar service not available, AI button not registered");
932
+ ), q.debug("Global AI toolbar button registered with wildcard '*'")) : q.warn("Toolbar service not available, AI button not registered");
933
933
  }
934
- return l;
934
+ return h;
935
935
  }
936
936
  function Mn() {
937
- const e = F(xe);
937
+ const e = F(ye);
938
938
  if (!e) {
939
- z.error("AiAgentService not found. Did you forget to call provideAiAgentService()?");
939
+ q.error("AiAgentService not found. Did you forget to call provideAiAgentService()?");
940
940
  return;
941
941
  }
942
942
  return {
@@ -982,7 +982,7 @@ const Ut = ["width", "height"], Vt = ["clip-path"], Kt = {
982
982
  y1: "0",
983
983
  x2: "99",
984
984
  y2: "108"
985
- }, Ke = /* @__PURE__ */ Y({
985
+ }, Ge = /* @__PURE__ */ H({
986
986
  __name: "VcVirtoOzLogo",
987
987
  props: {
988
988
  width: { default: 22 },
@@ -990,8 +990,8 @@ const Ut = ["width", "height"], Vt = ["clip-path"], Kt = {
990
990
  animated: { type: Boolean, default: !1 }
991
991
  },
992
992
  setup(e) {
993
- const r = E(() => `virto-oz-clip-${Math.random().toString(36).substring(2, 11)}`);
994
- return (a, t) => (B(), k("svg", {
993
+ const r = A(() => `virto-oz-clip-${Math.random().toString(36).substring(2, 11)}`);
994
+ return (a, t) => (B(), O("svg", {
995
995
  width: e.width,
996
996
  height: e.height,
997
997
  viewBox: "0 0 99 108",
@@ -999,22 +999,22 @@ const Ut = ["width", "height"], Vt = ["clip-path"], Kt = {
999
999
  xmlns: "http://www.w3.org/2000/svg",
1000
1000
  class: "vc-virto-oz-logo"
1001
1001
  }, [
1002
- t[3] || (t[3] = b("path", {
1002
+ t[3] || (t[3] = w("path", {
1003
1003
  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",
1004
1004
  fill: "white"
1005
1005
  }, null, -1)),
1006
- e.animated ? (B(), k("path", Kt)) : (B(), k("g", {
1006
+ e.animated ? (B(), O("path", Kt)) : (B(), O("g", {
1007
1007
  key: 0,
1008
1008
  "clip-path": `url(#${r.value})`
1009
1009
  }, [...t[0] || (t[0] = [
1010
- b("g", { transform: "matrix(0 -0.161514 0.160417 0 49.1357 53.9479)" }, [
1011
- b("foreignObject", {
1010
+ w("g", { transform: "matrix(0 -0.161514 0.160417 0 49.1357 53.9479)" }, [
1011
+ w("foreignObject", {
1012
1012
  x: "-334.01",
1013
1013
  y: "-334.01",
1014
1014
  width: "668.02",
1015
1015
  height: "668.02"
1016
1016
  }, [
1017
- b("div", {
1017
+ w("div", {
1018
1018
  xmlns: "http://www.w3.org/1999/xhtml",
1019
1019
  style: { background: `conic-gradient(
1020
1020
  from 90deg,
@@ -1029,62 +1029,91 @@ const Ut = ["width", "height"], Vt = ["clip-path"], Kt = {
1029
1029
  ])
1030
1030
  ], -1)
1031
1031
  ])], 8, Vt)),
1032
- t[4] || (t[4] = b("path", {
1032
+ t[4] || (t[4] = w("path", {
1033
1033
  d: "M72.1266 54.0945C72.1266 60.0873 74.3028 71.0379 60.6238 82.8517C65.2871 73.0587 55.8339 77.1002 49.1209 77.1002C36.4152 77.1002 26.1152 66.8002 26.1152 54.0945C26.1152 41.3889 36.4152 31.0889 49.1209 31.0889C61.8266 31.0889 72.1266 41.3889 72.1266 54.0945Z",
1034
1034
  fill: "white"
1035
1035
  }, null, -1)),
1036
- t[5] || (t[5] = b("ellipse", {
1036
+ t[5] || (t[5] = w("ellipse", {
1037
1037
  cx: "49.12",
1038
1038
  cy: "54.09",
1039
1039
  rx: "4.05",
1040
1040
  ry: "4.05",
1041
1041
  fill: "#6C6C6C"
1042
1042
  }, null, -1)),
1043
- t[6] || (t[6] = b("ellipse", {
1043
+ t[6] || (t[6] = w("ellipse", {
1044
1044
  cx: "60.62",
1045
1045
  cy: "54.09",
1046
1046
  rx: "4.05",
1047
1047
  ry: "4.05",
1048
1048
  fill: "#6C6C6C"
1049
1049
  }, null, -1)),
1050
- t[7] || (t[7] = b("ellipse", {
1050
+ t[7] || (t[7] = w("ellipse", {
1051
1051
  cx: "37.62",
1052
1052
  cy: "54.09",
1053
1053
  rx: "4.05",
1054
1054
  ry: "4.05",
1055
1055
  fill: "#6C6C6C"
1056
1056
  }, null, -1)),
1057
- b("defs", null, [
1058
- e.animated ? X("", !0) : (B(), k("clipPath", {
1057
+ w("defs", null, [
1058
+ e.animated ? Y("", !0) : (B(), O("clipPath", {
1059
1059
  key: 0,
1060
1060
  id: r.value
1061
1061
  }, [...t[1] || (t[1] = [
1062
- b("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)
1062
+ w("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)
1063
1063
  ])], 8, Ht)),
1064
- e.animated ? (B(), k("linearGradient", Wt, [...t[2] || (t[2] = [
1065
- Xe('<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)
1066
- ])])) : X("", !0)
1064
+ e.animated ? (B(), O("linearGradient", Wt, [...t[2] || (t[2] = [
1065
+ ze('<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)
1066
+ ])])) : Y("", !0)
1067
1067
  ])
1068
1068
  ], 8, Ut));
1069
1069
  }
1070
1070
  }), zt = { class: "vc-shortcut-kbd" }, qt = {
1071
1071
  key: 0,
1072
1072
  class: "vc-shortcut-kbd__plus"
1073
- }, Zt = { class: "vc-shortcut-kbd__key" }, Be = 500, Ie = /* @__PURE__ */ Y({
1073
+ }, Zt = { class: "vc-shortcut-kbd__key" }, Xt = /* @__PURE__ */ H({
1074
1074
  __name: "ShortcutKbd",
1075
1075
  props: {
1076
1076
  parts: {},
1077
1077
  separated: { type: Boolean, default: !1 }
1078
1078
  },
1079
1079
  setup(e) {
1080
- return (r, a) => (B(), k("span", zt, [
1081
- (B(!0), k(Se, null, Ye(e.parts, (t, o) => (B(), k(Se, { key: o }, [
1082
- e.separated && o > 0 ? (B(), k("span", qt, "+")) : X("", !0),
1083
- b("kbd", Zt, q(t), 1)
1080
+ return (r, a) => (B(), O("span", zt, [
1081
+ (B(!0), O(Be, null, qe(e.parts, (t, o) => (B(), O(Be, { key: o }, [
1082
+ e.separated && o > 0 ? (B(), O("span", qt, "+")) : Y("", !0),
1083
+ w("kbd", Zt, fe(t), 1)
1084
1084
  ], 64))), 128))
1085
1085
  ]));
1086
1086
  }
1087
- }), Xt = { class: "vc-ai-agent-header" }, Yt = { class: "vc-ai-agent-header__icon" }, jt = { class: "vc-ai-agent-header__wrapper" }, Qt = { class: "vc-ai-agent-header__content" }, Jt = { class: "vc-ai-agent-header__title" }, en = { class: "vc-ai-agent-header__controls" }, tn = ["aria-label", "aria-keyshortcuts"], nn = { class: "tw-inline-flex tw-items-center tw-gap-2" }, an = ["aria-label", "aria-keyshortcuts"], on = { class: "tw-inline-flex tw-items-center tw-gap-2" }, rn = ["aria-label", "aria-keyshortcuts"], sn = { class: "tw-inline-flex tw-items-center tw-gap-2" }, ln = /* @__PURE__ */ Y({
1087
+ }), Yt = { class: "tw-inline-flex tw-items-center tw-gap-2" }, jt = 500, we = /* @__PURE__ */ H({
1088
+ __name: "ShortcutTooltip",
1089
+ props: {
1090
+ shortcut: {},
1091
+ label: {}
1092
+ },
1093
+ setup(e) {
1094
+ const r = e, { isMac: a } = Fe(), t = A(() => Ne(r.shortcut, a));
1095
+ return (o, s) => (B(), ee(k(it), {
1096
+ placement: "bottom",
1097
+ delay: jt
1098
+ }, {
1099
+ tooltip: K(() => [
1100
+ w("span", Yt, [
1101
+ Xe(fe(e.label) + " ", 1),
1102
+ N(Xt, {
1103
+ parts: t.value.parts,
1104
+ separated: !k(a)
1105
+ }, null, 8, ["parts", "separated"])
1106
+ ])
1107
+ ]),
1108
+ default: K(() => [
1109
+ Ze(o.$slots, "default", {
1110
+ aria: t.value.aria
1111
+ })
1112
+ ]),
1113
+ _: 3
1114
+ }));
1115
+ }
1116
+ }), Qt = { class: "vc-ai-agent-header" }, Jt = { class: "vc-ai-agent-header__icon" }, en = { class: "vc-ai-agent-header__wrapper" }, tn = { class: "vc-ai-agent-header__content" }, nn = { class: "vc-ai-agent-header__title" }, an = { class: "vc-ai-agent-header__controls" }, on = ["aria-label", "aria-keyshortcuts"], rn = ["aria-label", "aria-keyshortcuts"], sn = ["aria-label", "aria-keyshortcuts"], ln = /* @__PURE__ */ H({
1088
1117
  __name: "VcAiAgentHeader",
1089
1118
  props: {
1090
1119
  title: {},
@@ -1093,253 +1122,226 @@ const Ut = ["width", "height"], Vt = ["clip-path"], Kt = {
1093
1122
  },
1094
1123
  emits: ["close", "expand", "collapse"],
1095
1124
  setup(e) {
1096
- const { t: r } = dt(), { isMac: a } = Ge(), t = E(() => Te(ee.escape, a)), o = E(() => Te(ee.mod.backslash, a)), d = E(() => t.value.aria), C = E(() => o.value.aria);
1097
- return (c, l) => (B(), k("div", Xt, [
1098
- b("div", Yt, [
1099
- M(Ke, {
1125
+ const { t: r } = ct();
1126
+ return (a, t) => (B(), O("div", Qt, [
1127
+ w("div", Jt, [
1128
+ N(Ge, {
1100
1129
  width: 22,
1101
1130
  height: 24,
1102
1131
  "show-dots": ""
1103
1132
  })
1104
1133
  ]),
1105
- b("div", jt, [
1106
- b("div", Qt, [
1107
- b("div", Jt, q(e.title), 1)
1134
+ w("div", en, [
1135
+ w("div", tn, [
1136
+ w("div", nn, fe(e.title), 1)
1108
1137
  ])
1109
1138
  ]),
1110
- b("div", en, [
1111
- e.isExpanded ? (B(), pe(T(be), {
1139
+ w("div", an, [
1140
+ e.isExpanded ? (B(), ee(we, {
1112
1141
  key: 0,
1113
- placement: "bottom",
1114
- delay: T(Be)
1142
+ shortcut: k(Z).mod.backslash,
1143
+ label: k(r)("COMPONENTS.ORGANISMS.VC_BLADE_HEADER.RESTORE")
1115
1144
  }, {
1116
- tooltip: G(() => [
1117
- b("span", nn, [
1118
- Ae(q(T(r)("COMPONENTS.ORGANISMS.VC_BLADE_HEADER.RESTORE")) + " ", 1),
1119
- M(Ie, {
1120
- parts: o.value.parts,
1121
- separated: !T(a)
1122
- }, null, 8, ["parts", "separated"])
1123
- ])
1124
- ]),
1125
- default: G(() => [
1126
- b("div", {
1145
+ default: K(({ aria: o }) => [
1146
+ w("div", {
1127
1147
  class: "vc-ai-agent-header__button",
1128
1148
  role: "button",
1129
1149
  tabindex: "0",
1130
- "aria-label": T(r)("COMPONENTS.ORGANISMS.VC_BLADE_HEADER.RESTORE"),
1131
- "aria-keyshortcuts": C.value,
1132
- onClick: l[0] || (l[0] = (u) => c.$emit("collapse")),
1150
+ "aria-label": k(r)("COMPONENTS.ORGANISMS.VC_BLADE_HEADER.RESTORE"),
1151
+ "aria-keyshortcuts": o,
1152
+ onClick: t[0] || (t[0] = (s) => a.$emit("collapse")),
1133
1153
  onKeydown: [
1134
- l[1] || (l[1] = H(W((u) => c.$emit("collapse"), ["prevent"]), ["enter"])),
1135
- l[2] || (l[2] = H(W((u) => c.$emit("collapse"), ["prevent"]), ["space"]))
1154
+ t[1] || (t[1] = W(z((s) => a.$emit("collapse"), ["prevent"]), ["enter"])),
1155
+ t[2] || (t[2] = W(z((s) => a.$emit("collapse"), ["prevent"]), ["space"]))
1136
1156
  ]
1137
1157
  }, [
1138
- M(T(ue), { icon: "lucide-minus" })
1139
- ], 40, tn)
1158
+ N(k(ue), { icon: "lucide-minus" })
1159
+ ], 40, on)
1140
1160
  ]),
1141
1161
  _: 1
1142
- }, 8, ["delay"])) : (B(), pe(T(be), {
1162
+ }, 8, ["shortcut", "label"])) : (B(), ee(we, {
1143
1163
  key: 1,
1144
- placement: "bottom",
1145
- delay: T(Be)
1164
+ shortcut: k(Z).mod.backslash,
1165
+ label: k(r)("COMPONENTS.ORGANISMS.VC_BLADE_HEADER.MAXIMIZE")
1146
1166
  }, {
1147
- tooltip: G(() => [
1148
- b("span", on, [
1149
- Ae(q(T(r)("COMPONENTS.ORGANISMS.VC_BLADE_HEADER.MAXIMIZE")) + " ", 1),
1150
- M(Ie, {
1151
- parts: o.value.parts,
1152
- separated: !T(a)
1153
- }, null, 8, ["parts", "separated"])
1154
- ])
1155
- ]),
1156
- default: G(() => [
1157
- b("div", {
1167
+ default: K(({ aria: o }) => [
1168
+ w("div", {
1158
1169
  class: "vc-ai-agent-header__button",
1159
1170
  role: "button",
1160
1171
  tabindex: "0",
1161
- "aria-label": T(r)("COMPONENTS.ORGANISMS.VC_BLADE_HEADER.MAXIMIZE"),
1162
- "aria-keyshortcuts": C.value,
1163
- onClick: l[3] || (l[3] = (u) => c.$emit("expand")),
1172
+ "aria-label": k(r)("COMPONENTS.ORGANISMS.VC_BLADE_HEADER.MAXIMIZE"),
1173
+ "aria-keyshortcuts": o,
1174
+ onClick: t[3] || (t[3] = (s) => a.$emit("expand")),
1164
1175
  onKeydown: [
1165
- l[4] || (l[4] = H(W((u) => c.$emit("expand"), ["prevent"]), ["enter"])),
1166
- l[5] || (l[5] = H(W((u) => c.$emit("expand"), ["prevent"]), ["space"]))
1176
+ t[4] || (t[4] = W(z((s) => a.$emit("expand"), ["prevent"]), ["enter"])),
1177
+ t[5] || (t[5] = W(z((s) => a.$emit("expand"), ["prevent"]), ["space"]))
1167
1178
  ]
1168
1179
  }, [
1169
- M(T(ue), { icon: "lucide-panel-top" })
1170
- ], 40, an)
1180
+ N(k(ue), { icon: "lucide-panel-top" })
1181
+ ], 40, rn)
1171
1182
  ]),
1172
1183
  _: 1
1173
- }, 8, ["delay"])),
1174
- M(T(be), {
1175
- placement: "bottom",
1176
- delay: T(Be)
1184
+ }, 8, ["shortcut", "label"])),
1185
+ N(we, {
1186
+ shortcut: k(Z).escape,
1187
+ label: k(r)("COMPONENTS.ORGANISMS.VC_BLADE_HEADER.CLOSE")
1177
1188
  }, {
1178
- tooltip: G(() => [
1179
- b("span", sn, [
1180
- Ae(q(T(r)("COMPONENTS.ORGANISMS.VC_BLADE_HEADER.CLOSE")) + " ", 1),
1181
- M(Ie, {
1182
- parts: t.value.parts,
1183
- separated: !T(a)
1184
- }, null, 8, ["parts", "separated"])
1185
- ])
1186
- ]),
1187
- default: G(() => [
1188
- b("div", {
1189
+ default: K(({ aria: o }) => [
1190
+ w("div", {
1189
1191
  class: "vc-ai-agent-header__button",
1190
1192
  role: "button",
1191
1193
  tabindex: "0",
1192
- "aria-label": T(r)("COMPONENTS.ORGANISMS.VC_BLADE_HEADER.CLOSE"),
1193
- "aria-keyshortcuts": d.value,
1194
- onClick: l[6] || (l[6] = (u) => c.$emit("close")),
1194
+ "aria-label": k(r)("COMPONENTS.ORGANISMS.VC_BLADE_HEADER.CLOSE"),
1195
+ "aria-keyshortcuts": o,
1196
+ onClick: t[6] || (t[6] = (s) => a.$emit("close")),
1195
1197
  onKeydown: [
1196
- l[7] || (l[7] = H(W((u) => c.$emit("close"), ["prevent"]), ["enter"])),
1197
- l[8] || (l[8] = H(W((u) => c.$emit("close"), ["prevent"]), ["space"]))
1198
+ t[7] || (t[7] = W(z((s) => a.$emit("close"), ["prevent"]), ["enter"])),
1199
+ t[8] || (t[8] = W(z((s) => a.$emit("close"), ["prevent"]), ["space"]))
1198
1200
  ]
1199
1201
  }, [
1200
- M(T(ue), { icon: "lucide-x" })
1201
- ], 40, rn)
1202
+ N(k(ue), { icon: "lucide-x" })
1203
+ ], 40, sn)
1202
1204
  ]),
1203
1205
  _: 1
1204
- }, 8, ["delay"])
1206
+ }, 8, ["shortcut", "label"])
1205
1207
  ])
1206
1208
  ]));
1207
1209
  }
1208
- }), dn = { class: "vc-ai-agent-loader" }, cn = { class: "vc-ai-agent-loader__content" }, un = { class: "vc-ai-agent-loader__logo" }, pn = {
1210
+ }), cn = { class: "vc-ai-agent-loader" }, dn = { class: "vc-ai-agent-loader__content" }, un = { class: "vc-ai-agent-loader__logo" }, fn = {
1209
1211
  key: 0,
1210
1212
  class: "vc-ai-agent-loader__text"
1211
- }, fn = /* @__PURE__ */ Y({
1213
+ }, pn = /* @__PURE__ */ H({
1212
1214
  __name: "VcAiAgentLoader",
1213
1215
  props: {
1214
1216
  text: {}
1215
1217
  },
1216
1218
  setup(e) {
1217
- return (r, a) => (B(), k("div", dn, [
1218
- b("div", cn, [
1219
- b("div", un, [
1220
- M(Ke, {
1219
+ return (r, a) => (B(), O("div", cn, [
1220
+ w("div", dn, [
1221
+ w("div", un, [
1222
+ N(Ge, {
1221
1223
  width: 80,
1222
1224
  height: 87,
1223
1225
  animated: ""
1224
1226
  })
1225
1227
  ]),
1226
- e.text ? (B(), k("p", pn, q(e.text), 1)) : X("", !0)
1228
+ e.text ? (B(), O("p", fn, fe(e.text), 1)) : Y("", !0)
1227
1229
  ])
1228
1230
  ]));
1229
1231
  }
1230
1232
  }), gn = { class: "vc-ai-agent-iframe" }, vn = ["src"], Cn = {
1231
1233
  key: 1,
1232
1234
  class: "vc-ai-agent-iframe__placeholder"
1233
- }, mn = /* @__PURE__ */ Y({
1235
+ }, mn = /* @__PURE__ */ H({
1234
1236
  __name: "VcAiAgentIframe",
1235
1237
  props: {
1236
1238
  url: {}
1237
1239
  },
1238
1240
  emits: ["iframe-ready"],
1239
1241
  setup(e, { emit: r }) {
1240
- const a = j("ai-agent-iframe"), t = e, o = r, d = N(null), C = N(!0);
1241
- Z(
1242
- d,
1243
- (l) => {
1244
- l && o("iframe-ready", l);
1242
+ const a = j("ai-agent-iframe"), t = e, o = r, s = M(null), v = M(!0);
1243
+ X(
1244
+ s,
1245
+ (h) => {
1246
+ h && o("iframe-ready", h);
1245
1247
  },
1246
1248
  { immediate: !0 }
1247
1249
  );
1248
- const c = () => {
1249
- C.value = !1, a.debug("Iframe loaded");
1250
+ const C = () => {
1251
+ v.value = !1, a.debug("Iframe loaded");
1250
1252
  };
1251
- return Z(
1253
+ return X(
1252
1254
  () => t.url,
1253
1255
  () => {
1254
- C.value = !0;
1256
+ v.value = !0;
1255
1257
  }
1256
- ), (l, u) => (B(), k("div", gn, [
1257
- M(Ne, { name: "fade" }, {
1258
- default: G(() => [
1259
- C.value && e.url ? (B(), pe(fn, {
1258
+ ), (h, p) => (B(), O("div", gn, [
1259
+ N(Pe, { name: "fade" }, {
1260
+ default: K(() => [
1261
+ v.value && e.url ? (B(), ee(pn, {
1260
1262
  key: 0,
1261
- text: l.$t("AI_AGENT.LOADING")
1262
- }, null, 8, ["text"])) : X("", !0)
1263
+ text: h.$t("AI_AGENT.LOADING")
1264
+ }, null, 8, ["text"])) : Y("", !0)
1263
1265
  ]),
1264
1266
  _: 1
1265
1267
  }),
1266
- e.url ? (B(), k("iframe", {
1268
+ e.url ? (B(), O("iframe", {
1267
1269
  key: 0,
1268
1270
  ref_key: "iframeRef",
1269
- ref: d,
1271
+ ref: s,
1270
1272
  src: e.url,
1271
- class: Fe(["vc-ai-agent-iframe__frame", { "vc-ai-agent-iframe__frame--loading": C.value }]),
1273
+ class: De(["vc-ai-agent-iframe__frame", { "vc-ai-agent-iframe__frame--loading": v.value }]),
1272
1274
  sandbox: "allow-scripts allow-same-origin allow-forms allow-popups allow-popups-to-escape-sandbox",
1273
1275
  allow: "clipboard-read; clipboard-write",
1274
- onLoad: c
1275
- }, null, 42, vn)) : (B(), k("div", Cn, [
1276
- M(T(ue), {
1276
+ onLoad: C
1277
+ }, null, 42, vn)) : (B(), O("div", Cn, [
1278
+ N(k(ue), {
1277
1279
  icon: "lucide-sparkles",
1278
1280
  size: "xl",
1279
1281
  class: "vc-ai-agent-iframe__placeholder-icon"
1280
1282
  }),
1281
- u[0] || (u[0] = b("p", { class: "vc-ai-agent-iframe__placeholder-text" }, "AI Agent URL not configured", -1))
1283
+ p[0] || (p[0] = w("p", { class: "vc-ai-agent-iframe__placeholder-text" }, "AI Agent URL not configured", -1))
1282
1284
  ]))
1283
1285
  ]));
1284
1286
  }
1285
- }), _n = ["inert"], hn = { class: "vc-ai-agent-panel__content" }, Fn = /* @__PURE__ */ Y({
1287
+ }), hn = ["inert"], _n = { class: "vc-ai-agent-panel__content" }, Fn = /* @__PURE__ */ H({
1286
1288
  __name: "VcAiAgentPanel",
1287
1289
  props: {
1288
1290
  inert: { type: Boolean }
1289
1291
  },
1290
1292
  setup(e) {
1291
- const { isMac: r } = Ge(), a = F(xe), t = F(st, !1);
1293
+ const { isMac: r } = Fe(), a = F(ye), t = F(st, !1);
1292
1294
  a || console.error("[VcAiAgentPanel] AiAgentService not provided");
1293
- const o = E(
1295
+ const o = A(
1294
1296
  () => a?.config.value ?? { url: "", title: "AI Assistant", width: 362, expandedWidth: 500 }
1295
- ), d = E(() => !t && (a?.isOpen.value ?? !1)), C = E(() => a?.isExpanded.value ?? !1), c = E(() => a?.totalItemsCount.value ?? 0), l = E(() => ({
1296
- width: C.value ? `${o.value.expandedWidth ?? 500}px` : `${o.value.width ?? 362}px`
1297
- })), u = () => a?.closePanel(), g = () => a?.expandPanel(), p = () => a?.collapsePanel(), f = N(null);
1298
- lt(document, "keydown", (v) => {
1299
- if (d.value && !v.isComposing && !v.defaultPrevented) {
1300
- if (v.key === "Escape") {
1301
- v.preventDefault(), u();
1297
+ ), s = A(() => !t && (a?.isOpen.value ?? !1)), v = A(() => a?.isExpanded.value ?? !1), C = A(() => a?.totalItemsCount.value ?? 0), h = A(() => ({
1298
+ width: v.value ? `${o.value.expandedWidth ?? 500}px` : `${o.value.width ?? 362}px`
1299
+ })), p = () => a?.closePanel(), u = () => a?.expandPanel(), c = () => a?.collapsePanel(), d = M(null);
1300
+ lt(document, "keydown", (f) => {
1301
+ if (s.value && !f.isComposing && !f.defaultPrevented) {
1302
+ if (f.key === "Escape") {
1303
+ f.preventDefault(), p();
1302
1304
  return;
1303
1305
  }
1304
- if (Tt(ee.mod.backslash, v, r)) {
1305
- const h = document.activeElement;
1306
- if (!h || !f.value?.contains(h)) return;
1307
- v.preventDefault(), C.value ? p() : g();
1306
+ if (Tt(Z.mod.backslash, f, r)) {
1307
+ const _ = document.activeElement;
1308
+ if (!_ || !d.value?.contains(_)) return;
1309
+ f.preventDefault(), v.value ? c() : u();
1308
1310
  }
1309
1311
  }
1310
1312
  });
1311
- const A = (v) => {
1312
- a?._setIframeRef(v);
1313
+ const b = (f) => {
1314
+ a?._setIframeRef(f);
1313
1315
  };
1314
- return je(() => {
1316
+ return Ye(() => {
1315
1317
  a?._setIframeRef(null);
1316
- }), (v, h) => (B(), pe(Ne, { name: "ai-panel-slide" }, {
1317
- default: G(() => [
1318
- d.value ? (B(), k("div", {
1318
+ }), (f, _) => (B(), ee(Pe, { name: "ai-panel-slide" }, {
1319
+ default: K(() => [
1320
+ s.value ? (B(), O("div", {
1319
1321
  key: 0,
1320
1322
  ref_key: "panelRef",
1321
- ref: f,
1322
- class: Fe(["vc-ai-agent-panel", {
1323
- "vc-ai-agent-panel--expanded": C.value
1323
+ ref: d,
1324
+ class: De(["vc-ai-agent-panel", {
1325
+ "vc-ai-agent-panel--expanded": v.value
1324
1326
  }]),
1325
- style: Qe(l.value),
1327
+ style: je(h.value),
1326
1328
  inert: e.inert || void 0
1327
1329
  }, [
1328
- M(ln, {
1330
+ N(ln, {
1329
1331
  title: o.value.title,
1330
- "is-expanded": C.value,
1331
- "items-count": c.value,
1332
- onClose: u,
1333
- onExpand: g,
1334
- onCollapse: p
1332
+ "is-expanded": v.value,
1333
+ "items-count": C.value,
1334
+ onClose: p,
1335
+ onExpand: u,
1336
+ onCollapse: c
1335
1337
  }, null, 8, ["title", "is-expanded", "items-count"]),
1336
- b("div", hn, [
1337
- M(mn, {
1338
+ w("div", _n, [
1339
+ N(mn, {
1338
1340
  url: o.value.url,
1339
- onIframeReady: A
1341
+ onIframeReady: b
1340
1342
  }, null, 8, ["url"])
1341
1343
  ])
1342
- ], 14, _n)) : X("", !0)
1344
+ ], 14, hn)) : Y("", !0)
1343
1345
  ]),
1344
1346
  _: 1
1345
1347
  }));
@@ -1347,32 +1349,31 @@ const Ut = ["width", "height"], Vt = ["clip-path"], Kt = {
1347
1349
  });
1348
1350
  export {
1349
1351
  Bn as A,
1350
- ct as D,
1352
+ dt as D,
1351
1353
  In as E,
1352
1354
  Tn as H,
1353
- Be as S,
1354
1355
  Fn as _,
1355
- Ln as a,
1356
+ Dn as a,
1356
1357
  kn as b,
1357
1358
  Nn as c,
1358
1359
  Sn as d,
1359
1360
  Pn as e,
1360
- Lt as f,
1361
+ Dt as f,
1361
1362
  Ot as g,
1362
- Ue as h,
1363
+ $e as h,
1363
1364
  kt as i,
1364
- Ve as j,
1365
+ Re as j,
1365
1366
  yt as k,
1366
1367
  Bt as l,
1367
- Te as m,
1368
- ee as n,
1368
+ Ne as m,
1369
+ Z as n,
1369
1370
  xn as o,
1370
1371
  Tt as p,
1371
1372
  Gt as q,
1372
1373
  St as r,
1373
1374
  On as s,
1374
- Ge as t,
1375
+ Fe as t,
1375
1376
  Mn as u,
1376
- Ie as v,
1377
- Dn as w
1377
+ we as v,
1378
+ Ln as w
1378
1379
  };