@_solaris/messenger-widget 0.6.13 → 0.6.14

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.
package/dist/messenger.js CHANGED
@@ -1,4 +1,4 @@
1
- import { reactive as We, openBlock as c, createElementBlock as d, normalizeStyle as N, normalizeClass as x, toDisplayString as y, resolveComponent as P, createVNode as K, Transition as Ae, withCtx as Se, Fragment as I, renderList as F, withKeys as _e, withModifiers as G, createElementVNode as l, createCommentVNode as b, createBlock as B, resolveDynamicComponent as Te, mergeProps as je, withDirectives as $, vModelText as ee, createTextVNode as Me, renderSlot as $e, vModelCheckbox as Ge, vModelSelect as Ye, markRaw as Ee } from "vue";
1
+ import { reactive as We, openBlock as c, createElementBlock as d, normalizeStyle as N, normalizeClass as R, toDisplayString as y, resolveComponent as P, createVNode as K, Transition as Ae, withCtx as Se, Fragment as I, renderList as F, withKeys as _e, withModifiers as G, createElementVNode as l, createCommentVNode as b, createBlock as B, resolveDynamicComponent as Te, mergeProps as je, withDirectives as $, vModelText as ee, createTextVNode as Me, renderSlot as $e, vModelCheckbox as Ge, vModelSelect as Ye, markRaw as Ee } from "vue";
2
2
  const Je = [
3
3
  "connected",
4
4
  "message",
@@ -43,8 +43,8 @@ function tt(e) {
43
43
  p && p.forEach((L) => {
44
44
  try {
45
45
  L(g);
46
- } catch (R) {
47
- console.error("[transport] listener", u, R);
46
+ } catch (O) {
47
+ console.error("[transport] listener", u, O);
48
48
  }
49
49
  });
50
50
  }
@@ -72,10 +72,10 @@ function tt(e) {
72
72
  body: p !== void 0 ? JSON.stringify(p) : void 0
73
73
  });
74
74
  if (!L.ok) {
75
- const R = await o(L), V = new Error(
76
- `HTTP ${L.status} ${u} ${g} :: ${(R == null ? void 0 : R.error) || L.statusText}`
75
+ const O = await o(L), V = new Error(
76
+ `HTTP ${L.status} ${u} ${g} :: ${(O == null ? void 0 : O.error) || L.statusText}`
77
77
  );
78
- throw V.status = L.status, V.body = R, V;
78
+ throw V.status = L.status, V.body = O, V;
79
79
  }
80
80
  return L.status === 204 ? null : L.json();
81
81
  }
@@ -119,7 +119,7 @@ function tt(e) {
119
119
  }
120
120
  const p = await g.json();
121
121
  t.userId = p.external_id;
122
- const [L, R] = await Promise.all([
122
+ const [L, O] = await Promise.all([
123
123
  fetch(
124
124
  `${t.baseUrl}/widgets/${encodeURIComponent(t.widgetId)}/config`,
125
125
  { credentials: "include" }
@@ -133,7 +133,7 @@ function tt(e) {
133
133
  return W.json();
134
134
  }),
135
135
  a("GET", "/customers/me")
136
- ]), V = { config: L, customer: (R == null ? void 0 : R.customer) ?? null };
136
+ ]), V = { config: L, customer: (O == null ? void 0 : O.customer) ?? null };
137
137
  return t.lastBootstrap = V, await k(), typeof document < "u" && (t.visibilityHandler = _, document.addEventListener(
138
138
  "visibilitychange",
139
139
  t.visibilityHandler
@@ -185,7 +185,7 @@ function tt(e) {
185
185
  { message_id: g }
186
186
  );
187
187
  }
188
- async function O(u, g = {}) {
188
+ async function x(u, g = {}) {
189
189
  const p = new URLSearchParams();
190
190
  g.before && p.set("before", g.before), g.since && p.set("since", g.since), g.limit && p.set("limit", String(g.limit));
191
191
  const L = p.toString() ? `?${p.toString()}` : "";
@@ -217,11 +217,11 @@ function tt(e) {
217
217
  );
218
218
  }
219
219
  async function ie(u) {
220
- const g = u.name || "attachment", p = u.type || "application/octet-stream", L = u.size || 0, R = await a("POST", "/attachments", {
220
+ const g = u.name || "attachment", p = u.type || "application/octet-stream", L = u.size || 0, O = await a("POST", "/attachments", {
221
221
  mime_type: p,
222
222
  size_bytes: L,
223
223
  name: g
224
- }), V = await fetch(R.upload_url, {
224
+ }), V = await fetch(O.upload_url, {
225
225
  method: "PUT",
226
226
  headers: { "Content-Type": p },
227
227
  body: u
@@ -230,7 +230,7 @@ function tt(e) {
230
230
  throw new Error(`HTTP ${V.status} PUT signed upload`);
231
231
  return {
232
232
  type: st(p),
233
- path: R.path,
233
+ path: O.path,
234
234
  mime_type: p,
235
235
  size_bytes: L
236
236
  };
@@ -281,8 +281,8 @@ function tt(e) {
281
281
  }
282
282
  async function pe() {
283
283
  try {
284
- const u = await E(), g = u.reduce((L, R) => {
285
- const V = R == null ? void 0 : R.last_message_at;
284
+ const u = await E(), g = u.reduce((L, O) => {
285
+ const V = O == null ? void 0 : O.last_message_at;
286
286
  return V && (!L || V > L) ? V : L;
287
287
  }, null);
288
288
  g && (!t.lastActivityAt || g > t.lastActivityAt) && (t.lastActivityAt = g, r("activity", { conversations: u, latestAt: g }), te());
@@ -345,7 +345,7 @@ function tt(e) {
345
345
  getConversation: z,
346
346
  patchConversation: M,
347
347
  markConversationRead: D,
348
- listMessages: O,
348
+ listMessages: x,
349
349
  postMessage: q,
350
350
  postCallback: J,
351
351
  uploadAttachment: ie,
@@ -532,9 +532,9 @@ function it(e) {
532
532
  before: w,
533
533
  limit: o
534
534
  }), u = (C == null ? void 0 : C.messages) ?? [], g = t.messagesByConv[h] || [], p = /* @__PURE__ */ new Set();
535
- for (const R of g)
536
- (R == null ? void 0 : R.id) != null && p.add(`id:${String(R.id)}`), R != null && R.client_msg_id && p.add(`c:${R.client_msg_id}`);
537
- const L = u.filter((R) => !((R == null ? void 0 : R.id) != null && p.has(`id:${String(R.id)}`) || R != null && R.client_msg_id && p.has(`c:${R.client_msg_id}`)));
535
+ for (const O of g)
536
+ (O == null ? void 0 : O.id) != null && p.add(`id:${String(O.id)}`), O != null && O.client_msg_id && p.add(`c:${O.client_msg_id}`);
537
+ const L = u.filter((O) => !((O == null ? void 0 : O.id) != null && p.has(`id:${String(O.id)}`) || O != null && O.client_msg_id && p.has(`c:${O.client_msg_id}`)));
538
538
  t.messagesByConv[h] = [...L, ...g], v(h, {
539
539
  nextCursor: (C == null ? void 0 : C.next_cursor) ?? null,
540
540
  loading: !1,
@@ -618,8 +618,8 @@ function it(e) {
618
618
  ...C ? { attachments: _ } : {},
619
619
  ...w && typeof w == "object" ? { metadata: w } : {}
620
620
  });
621
- } catch (R) {
622
- console.error("[store] send failed", R), oe(h, u, {
621
+ } catch (O) {
622
+ console.error("[store] send failed", O), oe(h, u, {
623
623
  _failed: !0,
624
624
  _pending: !1
625
625
  });
@@ -634,7 +634,7 @@ function it(e) {
634
634
  }
635
635
  }
636
636
  const D = /* @__PURE__ */ new Map();
637
- async function O(h) {
637
+ async function x(h) {
638
638
  if (!h) return null;
639
639
  const m = D.get(h);
640
640
  if (m != null && m.url) {
@@ -779,7 +779,7 @@ function it(e) {
779
779
  markConversationRead: S,
780
780
  send: z,
781
781
  clickCallback: M,
782
- signAttachment: O,
782
+ signAttachment: x,
783
783
  submitFeedback: q,
784
784
  getActionInFlight: ie,
785
785
  getLatestSuggestions: ae,
@@ -1840,7 +1840,7 @@ const U = (e, t) => {
1840
1840
  }, Tt = ["src", "alt"];
1841
1841
  function Mt(e, t, s, r, i, n) {
1842
1842
  return c(), d("div", {
1843
- class: x(["wm-huav", { "wm-huav--tail": s.tail }]),
1843
+ class: R(["wm-huav", { "wm-huav--tail": s.tail }]),
1844
1844
  style: N({
1845
1845
  width: s.size + "px",
1846
1846
  height: s.size + "px",
@@ -1898,7 +1898,7 @@ function zt(e, t, s, r, i, n) {
1898
1898
  default: Se(() => [
1899
1899
  n.visiblePeeks.length ? (c(), d("div", {
1900
1900
  key: 0,
1901
- class: x(["wm-peekStack", { "wm-peekStack--multi": n.visiblePeeks.length > 1 }])
1901
+ class: R(["wm-peekStack", { "wm-peekStack--multi": n.visiblePeeks.length > 1 }])
1902
1902
  }, [
1903
1903
  (c(!0), d(I, null, F(n.visiblePeeks, (o, f) => (c(), d("div", {
1904
1904
  key: o.convId,
@@ -2033,7 +2033,7 @@ const qt = /* @__PURE__ */ U(Ot, [["render", zt], ["__scopeId", "data-v-d81459bc
2033
2033
  }, Wt = ["src", "alt"], $t = ["width", "height"];
2034
2034
  function Gt(e, t, s, r, i, n) {
2035
2035
  return c(), d("div", {
2036
- class: x(["wm-aiav", { "wm-aiav--tail": s.tail }]),
2036
+ class: R(["wm-aiav", { "wm-aiav--tail": s.tail }]),
2037
2037
  style: N({
2038
2038
  width: s.size + "px",
2039
2039
  height: s.size + "px",
@@ -2042,7 +2042,7 @@ function Gt(e, t, s, r, i, n) {
2042
2042
  }, [
2043
2043
  s.pulse ? (c(), d("div", Kt)) : b("", !0),
2044
2044
  l("div", {
2045
- class: x(["wm-aiav__inner", {
2045
+ class: R(["wm-aiav__inner", {
2046
2046
  "wm-aiav__inner--glow": s.pulse,
2047
2047
  "wm-aiav__inner--img": !!s.imageUrl,
2048
2048
  "wm-aiav__inner--initials": !s.imageUrl && !!n.initials
@@ -2234,7 +2234,7 @@ function fn(e, t, s, r, i, n) {
2234
2234
  s.showMore ? (c(), d("button", {
2235
2235
  key: 0,
2236
2236
  type: "button",
2237
- class: x(["wm-header__icon", { "wm-header__icon--active": s.moreActive }]),
2237
+ class: R(["wm-header__icon", { "wm-header__icon--active": s.moreActive }]),
2238
2238
  "aria-label": n.t("header.moreOptions"),
2239
2239
  title: n.t("header.moreOptions"),
2240
2240
  onClick: t[1] || (t[1] = (f) => e.$emit("more"))
@@ -2396,15 +2396,15 @@ const _n = /* @__PURE__ */ U(nn, [["render", fn], ["__scopeId", "data-v-27232009
2396
2396
  this.launchPhase = "fade", await this.wait(t ? 120 : 0), this.finishLaunch();
2397
2397
  return;
2398
2398
  }
2399
- this.launchPhase = "fade", await this.wait(230);
2399
+ this.launchPhase = "fade", await this.wait(320);
2400
2400
  const s = e.getBoundingClientRect();
2401
2401
  this.launchPhase = "slide", await this.$nextTick();
2402
2402
  const r = e.getBoundingClientRect(), i = s.left - r.left, n = s.top - r.top;
2403
- e.style.transition = "none", e.style.transform = `translate(${i}px, ${n}px)`, e.offsetWidth, e.style.transition = "transform 0.34s cubic-bezier(0.32, 0.72, 0, 1)", e.style.transform = "translate(0, 0)";
2403
+ e.style.transition = "none", e.style.transform = `translate(${i}px, ${n}px)`, e.offsetWidth, e.style.transition = "transform 0.44s cubic-bezier(0.32, 0.72, 0, 1)", e.style.transform = "translate(0, 0)";
2404
2404
  const a = () => {
2405
2405
  e.removeEventListener("transitionend", a), this.finishLaunch();
2406
2406
  };
2407
- e.addEventListener("transitionend", a), this.wait(420).then(() => this.finishLaunch());
2407
+ e.addEventListener("transitionend", a), this.wait(520).then(() => this.finishLaunch());
2408
2408
  },
2409
2409
  // Emit `launched` exactly once, however we got here (transitionend,
2410
2410
  // safety timeout, or the reduced-motion shortcut).
@@ -2569,13 +2569,13 @@ const _n = /* @__PURE__ */ U(nn, [["render", fn], ["__scopeId", "data-v-27232009
2569
2569
  function Xn(e, t, s, r, i, n) {
2570
2570
  const a = P("AIAvatar");
2571
2571
  return c(), d("div", {
2572
- class: x(["wm-onb", {
2572
+ class: R(["wm-onb", {
2573
2573
  "wm-onb--launching": i.launchPhase !== "idle",
2574
2574
  "wm-onb--sliding": i.launchPhase === "slide"
2575
2575
  }])
2576
2576
  }, [
2577
2577
  l("div", {
2578
- class: x(["wm-onb__hero", { "wm-onb__hero--cover": n.hasCover }])
2578
+ class: R(["wm-onb__hero", { "wm-onb__hero--cover": n.hasCover }])
2579
2579
  }, [
2580
2580
  n.hasCover ? (c(), d("div", {
2581
2581
  key: 0,
@@ -2628,7 +2628,7 @@ function Xn(e, t, s, r, i, n) {
2628
2628
  onClick: (f) => e.$emit("resume", o)
2629
2629
  }, [
2630
2630
  l("span", {
2631
- class: x(["wm-onb__alert-avatar", n.avatarWrapperClass(o)])
2631
+ class: R(["wm-onb__alert-avatar", n.avatarWrapperClass(o)])
2632
2632
  }, [
2633
2633
  n.isDefaultAvatar(o) ? (c(), d("span", An, [...t[5] || (t[5] = [
2634
2634
  l("svg", {
@@ -2671,7 +2671,7 @@ function Xn(e, t, s, r, i, n) {
2671
2671
  l("div", Bn, [
2672
2672
  l("form", {
2673
2673
  ref: "starterForm",
2674
- class: x(["wm-onb__starter", {
2674
+ class: R(["wm-onb__starter", {
2675
2675
  "is-active": !!i.starterText.trim(),
2676
2676
  "wm-onb__starter--toBottom": i.launchPhase === "slide"
2677
2677
  }]),
@@ -2692,7 +2692,7 @@ function Xn(e, t, s, r, i, n) {
2692
2692
  ]),
2693
2693
  l("button", {
2694
2694
  type: "submit",
2695
- class: x(["wm-onb__starter-send", { "is-empty": !n.canStart }]),
2695
+ class: R(["wm-onb__starter-send", { "is-empty": !n.canStart }]),
2696
2696
  disabled: s.busy || !n.canStart,
2697
2697
  "aria-label": n.t("composer.send")
2698
2698
  }, [
@@ -2758,7 +2758,7 @@ function Xn(e, t, s, r, i, n) {
2758
2758
  ])
2759
2759
  ], 2);
2760
2760
  }
2761
- const Qn = /* @__PURE__ */ U(gn, [["render", Xn], ["__scopeId", "data-v-bd58b3f3"]]), Zn = {
2761
+ const Qn = /* @__PURE__ */ U(gn, [["render", Xn], ["__scopeId", "data-v-ca5a71a9"]]), Zn = {
2762
2762
  name: "WmHistory",
2763
2763
  components: { AIAvatar: me, HumanAvatar: ye },
2764
2764
  inject: {
@@ -2868,11 +2868,11 @@ function ms(e, t, s, r, i, n) {
2868
2868
  (c(!0), d(I, null, F(n.filteredThreads, (a) => (c(), d("button", {
2869
2869
  key: a.id,
2870
2870
  type: "button",
2871
- class: x(["wm-hist__thread", { "wm-hist__thread--unread": a.unread }]),
2871
+ class: R(["wm-hist__thread", { "wm-hist__thread--unread": a.unread }]),
2872
2872
  onClick: (o) => e.$emit("resume", a)
2873
2873
  }, [
2874
2874
  l("span", {
2875
- class: x(["wm-hist__thread-avatar", n.avatarWrapperClass(a)])
2875
+ class: R(["wm-hist__thread-avatar", n.avatarWrapperClass(a)])
2876
2876
  }, [
2877
2877
  n.isDefaultAvatar(a) ? (c(), d("span", is, [...t[2] || (t[2] = [
2878
2878
  l("svg", {
@@ -2990,7 +2990,7 @@ const gs = {
2990
2990
  }, ks = { class: "wm-result__body" }, Cs = { class: "wm-result__label" }, As = { class: "wm-result__detail" };
2991
2991
  function Ss(e, t, s, r, i, n) {
2992
2992
  return c(), d("div", {
2993
- class: x(["wm-result", `wm-result--${s.state}`])
2993
+ class: R(["wm-result", `wm-result--${s.state}`])
2994
2994
  }, [
2995
2995
  l("span", ys, [
2996
2996
  s.state === "success" ? (c(), d("svg", vs, [...t[0] || (t[0] = [
@@ -3077,7 +3077,7 @@ function Bs(e, t, s, r, i, n) {
3077
3077
  }, [
3078
3078
  l("div", Is, y(a.label), 1),
3079
3079
  l("div", {
3080
- class: x([
3080
+ class: R([
3081
3081
  "wm-art__fieldValue",
3082
3082
  { "wm-art__fieldValue--multi": a.multiline }
3083
3083
  ])
@@ -3130,7 +3130,7 @@ function $s(e, t, s, r, i, n) {
3130
3130
  ]),
3131
3131
  s.data.badge && s.data.badge.label ? (c(), d("span", {
3132
3132
  key: 0,
3133
- class: x([
3133
+ class: R([
3134
3134
  "wm-art__badge",
3135
3135
  `wm-art__badge--${s.data.badge.tone || "neutral"}`
3136
3136
  ])
@@ -3144,7 +3144,7 @@ function $s(e, t, s, r, i, n) {
3144
3144
  }, [
3145
3145
  l("div", Ws, y(a.label), 1),
3146
3146
  l("div", {
3147
- class: x([
3147
+ class: R([
3148
3148
  "wm-art__fieldValue",
3149
3149
  { "wm-art__fieldValue--multi": a.multiline }
3150
3150
  ])
@@ -3259,7 +3259,7 @@ function lr(e, t, s, r, i, n) {
3259
3259
  l("span", null, y(s.data.reference), 1)
3260
3260
  ]),
3261
3261
  l("span", {
3262
- class: x([
3262
+ class: R([
3263
3263
  "wm-art__badge",
3264
3264
  "wm-tk__badge",
3265
3265
  `wm-art__badge--${s.data.status.tone || "neutral"}`
@@ -3281,7 +3281,7 @@ function lr(e, t, s, r, i, n) {
3281
3281
  }, [
3282
3282
  l("div", rr, y(a.label), 1),
3283
3283
  l("div", {
3284
- class: x([
3284
+ class: R([
3285
3285
  "wm-art__fieldValue",
3286
3286
  { "wm-art__fieldValue--multi": a.multiline }
3287
3287
  ])
@@ -3458,7 +3458,7 @@ const mr = /* @__PURE__ */ U(ur, [["render", hr]]), fr = {
3458
3458
  };
3459
3459
  function Ar(e, t, s, r, i, n) {
3460
3460
  return c(), d("div", {
3461
- class: x(["wm-att", ["wm-att--" + (n.kind || "file")]])
3461
+ class: R(["wm-att", ["wm-att--" + (n.kind || "file")]])
3462
3462
  }, [
3463
3463
  n.kind === "image" && i.url ? (c(), d("a", {
3464
3464
  key: 0,
@@ -3531,7 +3531,7 @@ const Sr = /* @__PURE__ */ U(fr, [["render", Ar], ["__scopeId", "data-v-b207a8bd
3531
3531
  }, Mr = ["innerHTML"];
3532
3532
  function xr(e, t, s, r, i, n) {
3533
3533
  return c(), d("div", {
3534
- class: x(["wm-bubble", "wm-bubble--" + s.role])
3534
+ class: R(["wm-bubble", "wm-bubble--" + s.role])
3535
3535
  }, [
3536
3536
  $e(e.$slots, "default", {}, () => [
3537
3537
  l("span", { innerHTML: n.rendered }, null, 8, Mr)
@@ -3964,8 +3964,8 @@ const Br = {
3964
3964
  cornersFor(e, t) {
3965
3965
  var ie, ae, X;
3966
3966
  const s = e.items, r = (ie = s[t]) == null ? void 0 : ie.kind, i = (ae = s[t - 1]) == null ? void 0 : ae.kind, n = (X = s[t + 1]) == null ? void 0 : X.kind, a = e.role === "user", o = 14, f = 4, k = i == null ? void 0 : i.bottom, v = n == null ? void 0 : n.top, T = this.widthByKey[this.rowKeyOf(e, t)], E = this.widthByKey[this.rowKeyOf(e, t - 1)], S = this.widthByKey[this.rowKeyOf(e, t + 1)], z = 0.5, M = (Q, oe, Z) => Q != null && T != null ? Q + z >= T : oe === Z || oe === "card" && Z === "bubble";
3967
- let D = o, O = o, q = o, J = o;
3968
- return a ? (k && (O = f), (v || !n) && (q = f), k && M(E, k, r == null ? void 0 : r.top) && (D = f), v && M(S, v, r == null ? void 0 : r.bottom) && (J = f)) : (k && (D = f), (v || !n) && (J = f), k && M(E, k, r == null ? void 0 : r.top) && (O = f), v && M(S, v, r == null ? void 0 : r.bottom) && (q = f)), { tl: D, tr: O, br: q, bl: J };
3967
+ let D = o, x = o, q = o, J = o;
3968
+ return a ? (k && (x = f), (v || !n) && (q = f), k && M(E, k, r == null ? void 0 : r.top) && (D = f), v && M(S, v, r == null ? void 0 : r.bottom) && (J = f)) : (k && (D = f), (v || !n) && (J = f), k && M(E, k, r == null ? void 0 : r.top) && (x = f), v && M(S, v, r == null ? void 0 : r.bottom) && (q = f)), { tl: D, tr: x, br: q, bl: J };
3969
3969
  },
3970
3970
  // Inline column-count for the mosaic grid, capped at 4. Single
3971
3971
  // attachment falls back to the vertical-list layout (null). Two
@@ -4199,7 +4199,7 @@ function ii(e, t, s, r, i, n) {
4199
4199
  return c(), d("div", Fr, [
4200
4200
  l("div", {
4201
4201
  ref: "scrollEl",
4202
- class: x(["wm-list", { "wm-list--silent": i.silentFades }]),
4202
+ class: R(["wm-list", { "wm-list--silent": i.silentFades }]),
4203
4203
  onScrollPassive: t[4] || (t[4] = (...S) => n.onScroll && n.onScroll(...S))
4204
4204
  }, [
4205
4205
  s.loadingMore ? (c(), d("div", Nr, [
@@ -4224,7 +4224,7 @@ function ii(e, t, s, r, i, n) {
4224
4224
  ])) : b("", !0),
4225
4225
  S.role === "system" || S.items.length ? (c(), d("div", {
4226
4226
  key: 1,
4227
- class: x(["wm-list__group", "wm-list__group--" + S.role])
4227
+ class: R(["wm-list__group", "wm-list__group--" + S.role])
4228
4228
  }, [
4229
4229
  S.role === "system" ? (c(), d("div", Wr, [
4230
4230
  t[11] || (t[11] = l("div", { class: "wm-list__line wm-list__line--strong" }, null, -1)),
@@ -4236,7 +4236,7 @@ function ii(e, t, s, r, i, n) {
4236
4236
  }, [
4237
4237
  l("div", {
4238
4238
  "data-row-key": `${n.messageKey(M.message)}-${M.partKey}`,
4239
- class: x(["wm-list__row fade-up", [
4239
+ class: R(["wm-list__row fade-up", [
4240
4240
  "wm-list__row--" + S.role,
4241
4241
  {
4242
4242
  "is-pending": M.message._pending,
@@ -4244,10 +4244,10 @@ function ii(e, t, s, r, i, n) {
4244
4244
  }
4245
4245
  ]]),
4246
4246
  style: N(n.cornersStyle(S, D)),
4247
- onPointerdown: (O) => n.onPressStart(`${n.messageKey(M.message)}-${M.partKey}`),
4248
- onPointerup: t[0] || (t[0] = (O) => n.onPressEnd()),
4249
- onPointercancel: t[1] || (t[1] = (O) => n.onPressEnd()),
4250
- onPointerleave: t[2] || (t[2] = (O) => n.onPressEnd()),
4247
+ onPointerdown: (x) => n.onPressStart(`${n.messageKey(M.message)}-${M.partKey}`),
4248
+ onPointerup: t[0] || (t[0] = (x) => n.onPressEnd()),
4249
+ onPointercancel: t[1] || (t[1] = (x) => n.onPressEnd()),
4250
+ onPointerleave: t[2] || (t[2] = (x) => n.onPressEnd()),
4251
4251
  onContextmenu: t[3] || (t[3] = G(() => {
4252
4252
  }, ["prevent"]))
4253
4253
  }, [
@@ -4286,7 +4286,7 @@ function ii(e, t, s, r, i, n) {
4286
4286
  artifact: n.artifactOf(M.message)
4287
4287
  }, null, 8, ["artifact"])) : (c(), d("div", {
4288
4288
  key: 5,
4289
- class: x(["wm-list__body", {
4289
+ class: R(["wm-list__body", {
4290
4290
  "wm-list__body--mixed": !!M.message.text_md && n.attachmentsOf(M.message).length > 0
4291
4291
  }])
4292
4292
  }, [
@@ -4297,7 +4297,7 @@ function ii(e, t, s, r, i, n) {
4297
4297
  }, null, 8, ["role", "text"])) : b("", !0),
4298
4298
  n.attachmentsOf(M.message).length ? (c(), d("div", {
4299
4299
  key: 1,
4300
- class: x(["wm-list__atts", {
4300
+ class: R(["wm-list__atts", {
4301
4301
  "wm-list__atts--align-end": S.role === "user",
4302
4302
  "wm-list__atts--mosaic": n.attachmentsOf(M.message).length >= 2
4303
4303
  }]),
@@ -4309,9 +4309,9 @@ function ii(e, t, s, r, i, n) {
4309
4309
  }, [
4310
4310
  (c(!0), d(I, null, F(n.attachmentsOf(
4311
4311
  M.message
4312
- ), (O, q) => (c(), B(T, {
4312
+ ), (x, q) => (c(), B(T, {
4313
4313
  key: `${n.messageKey(M.message)}-att-${q}`,
4314
- attachment: O,
4314
+ attachment: x,
4315
4315
  style: N(
4316
4316
  n.mosaicCornerStyle(
4317
4317
  q,
@@ -4325,7 +4325,7 @@ function ii(e, t, s, r, i, n) {
4325
4325
  ], 46, Gr),
4326
4326
  D < S.items.length - 1 && i.pressedItemKey === `${n.messageKey(M.message)}-${M.partKey}` && (S.role !== "user" || n.timeOf(M.message)) ? (c(), d("div", {
4327
4327
  key: 0,
4328
- class: x(["wm-list__meta wm-list__meta--press", { "wm-list__meta--right": S.role === "user" }])
4328
+ class: R(["wm-list__meta wm-list__meta--press", { "wm-list__meta--right": S.role === "user" }])
4329
4329
  }, [
4330
4330
  S.role !== "user" ? (c(), d("span", Jr, y(n.roleLabel(S)), 1)) : b("", !0),
4331
4331
  S.role !== "user" && n.timeOf(M.message) ? (c(), d("span", Xr, "•")) : b("", !0),
@@ -4334,7 +4334,7 @@ function ii(e, t, s, r, i, n) {
4334
4334
  ], 64))), 128)),
4335
4335
  (S.role !== "user" || n.lastTimeOf(S)) && !n.hasTrailingOverlay(S) ? (c(), d("div", {
4336
4336
  key: 0,
4337
- class: x(["wm-list__meta", { "wm-list__meta--right": S.role === "user" }])
4337
+ class: R(["wm-list__meta", { "wm-list__meta--right": S.role === "user" }])
4338
4338
  }, [
4339
4339
  S.role !== "user" ? (c(), d("span", Zr, y(n.roleLabel(S)), 1)) : b("", !0),
4340
4340
  S.role !== "user" && n.lastTimeOf(S) ? (c(), d("span", ei, "•")) : b("", !0),
@@ -4405,7 +4405,7 @@ function Ke({ audio: e }) {
4405
4405
  systemAudio: e ? "include" : "exclude"
4406
4406
  };
4407
4407
  }
4408
- function go(e) {
4408
+ function yo(e) {
4409
4409
  return e ? e.startsWith("image/") ? "image" : e.startsWith("video/") ? "video" : "file" : "file";
4410
4410
  }
4411
4411
  async function li() {
@@ -4693,7 +4693,7 @@ const ui = [
4693
4693
  }, pi = ["d"], wi = ["placeholder", "disabled"], bi = { class: "wm-compose__actions" }, ki = ["title", "aria-label", "disabled"], Ci = ["disabled", "aria-label"];
4694
4694
  function Ai(e, t, s, r, i, n) {
4695
4695
  return c(), d("div", {
4696
- class: x(["wm-compose-wrap", { "wm-compose-wrap--sheet": s.displayMode === "sheet" }]),
4696
+ class: R(["wm-compose-wrap", { "wm-compose-wrap--sheet": s.displayMode === "sheet" }]),
4697
4697
  style: N(i.kbOffset ? { transform: `translateY(-${i.kbOffset}px)` } : null)
4698
4698
  }, [
4699
4699
  i.recording ? (c(), d("div", mi, [
@@ -4709,7 +4709,7 @@ function Ai(e, t, s, r, i, n) {
4709
4709
  }, y(n.t("composer.stop")), 1)
4710
4710
  ])) : b("", !0),
4711
4711
  l("form", {
4712
- class: x(["wm-compose", { "has-attach": i.attachOpen }]),
4712
+ class: R(["wm-compose", { "has-attach": i.attachOpen }]),
4713
4713
  onSubmit: t[7] || (t[7] = G((...a) => n.onSubmit && n.onSubmit(...a), ["prevent"]))
4714
4714
  }, [
4715
4715
  l("input", {
@@ -4762,7 +4762,7 @@ function Ai(e, t, s, r, i, n) {
4762
4762
  l("div", bi, [
4763
4763
  l("button", {
4764
4764
  type: "button",
4765
- class: x(["wm-compose__icon", { "is-open": i.attachOpen }]),
4765
+ class: R(["wm-compose__icon", { "is-open": i.attachOpen }]),
4766
4766
  title: s.attachLabel,
4767
4767
  "aria-label": s.attachLabel,
4768
4768
  disabled: i.recording,
@@ -4784,7 +4784,7 @@ function Ai(e, t, s, r, i, n) {
4784
4784
  ])], 10, ki),
4785
4785
  l("button", {
4786
4786
  type: "submit",
4787
- class: x(["wm-compose__send", { "is-empty": !n.canSend }]),
4787
+ class: R(["wm-compose__send", { "is-empty": !n.canSend }]),
4788
4788
  disabled: !n.canSend,
4789
4789
  "aria-label": n.t("composer.send")
4790
4790
  }, [...t[10] || (t[10] = [
@@ -4851,7 +4851,7 @@ const Si = /* @__PURE__ */ U(hi, [["render", Ai], ["__scopeId", "data-v-2e0e17a9
4851
4851
  function Li(e, t, s, r, i, n) {
4852
4852
  return s.items.length ? (c(), d("div", {
4853
4853
  key: n.batchKey,
4854
- class: x(["wm-icb", `wm-icb--${s.variant}`])
4854
+ class: R(["wm-icb", `wm-icb--${s.variant}`])
4855
4855
  }, [
4856
4856
  s.variant === "chips" ? (c(!0), d(I, { key: 0 }, F(s.items, (a, o) => (c(), d("button", {
4857
4857
  key: a.id != null ? a.id : o,
@@ -4865,7 +4865,7 @@ function Li(e, t, s, r, i, n) {
4865
4865
  (c(!0), d(I, null, F(s.items, (a, o) => (c(), d("button", {
4866
4866
  key: a.id != null ? a.id : o,
4867
4867
  type: "button",
4868
- class: x(["wm-icb__btn", n.btnClass(a)]),
4868
+ class: R(["wm-icb__btn", n.btnClass(a)]),
4869
4869
  onClick: (f) => e.$emit("select", a)
4870
4870
  }, y(a.label), 11, Ri))), 128))
4871
4871
  ])
@@ -5194,7 +5194,7 @@ function va(e, t, s, r, i, n) {
5194
5194
  (c(!0), d(I, null, F(n.options, (a) => (c(), d("button", {
5195
5195
  key: a.v,
5196
5196
  type: "button",
5197
- class: x(["wm-fb__opt", { "is-selected": i.sel === a.v }]),
5197
+ class: R(["wm-fb__opt", { "is-selected": i.sel === a.v }]),
5198
5198
  onClick: (o) => i.sel = a.v
5199
5199
  }, [
5200
5200
  l("span", ha, y(a.e), 1),
@@ -5337,7 +5337,7 @@ function Ea(e, t, s, r, i, n) {
5337
5337
  ], -1)),
5338
5338
  l("span", xa, y(n.t("moreMenu.sound")), 1),
5339
5339
  l("span", {
5340
- class: x(["wm-mm__toggle", { "wm-mm__toggle--on": i.soundOn }])
5340
+ class: R(["wm-mm__toggle", { "wm-mm__toggle--on": i.soundOn }])
5341
5341
  }, [...t[9] || (t[9] = [
5342
5342
  l("span", { class: "wm-mm__knob" }, null, -1)
5343
5343
  ])], 2)
@@ -5595,14 +5595,19 @@ const Ka = /* @__PURE__ */ U(Ba, [["render", Va], ["__scopeId", "data-v-6d5f94a8
5595
5595
  // PJ, formulaire, quick-link sans URL). Évite de polluer la liste
5596
5596
  // côté serveur avec des fils vides abandonnés.
5597
5597
  draftConv: null,
5598
- // Drives the one-off "launch" animation played ONLY when the
5599
- // user starts a conversation by typing in the home input (not
5600
- // when opening an existing thread). While true, the home fades
5601
- // everything but its input, slides that input down to the
5602
- // composer slot, then the chat fades in. See `onOnboardingStart`
5603
- // / `onHomeLaunched` / `screenTransition` / Onboarding's
5604
- // `launching` prop.
5598
+ // Drives the one-off, staged "launch" animation played ONLY when
5599
+ // the user starts a conversation by typing in the home input (not
5600
+ // when opening an existing thread). See `onOnboardingStart` /
5601
+ // `onHomeLaunched` and the `wm-launch-*` CSS.
5605
5602
  launching: !1,
5603
+ // Current beat of the launch timeline (only meaningful while
5604
+ // `launching`):
5605
+ // 'whiteslide' — home fades to white + input slides down (in
5606
+ // the Onboarding component)
5607
+ // 'header' — chat mounted; topbar drops in from the top,
5608
+ // messages still hidden
5609
+ // 'messages' — messages fade in
5610
+ launchStage: "idle",
5606
5611
  // First message captured from the home input, sent once the
5607
5612
  // launch animation has handed off to the real conversation.
5608
5613
  pendingLaunchText: "",
@@ -6410,12 +6415,12 @@ const Ka = /* @__PURE__ */ U(Ba, [["render", Va], ["__scopeId", "data-v-6d5f94a8
6410
6415
  const s = (((E = this.launcherPeeks) == null ? void 0 : E.length) ?? 0) > 0, r = 16, i = Math.ceil(t.width), n = Math.ceil(t.height), a = (z = (S = this.$el) == null ? void 0 : S.querySelector) == null ? void 0 : z.call(S, ".wm-launcher"), o = (D = (M = this.$el) == null ? void 0 : M.querySelectorAll) == null ? void 0 : D.call(M, ".wm-peek"), f = o && o.length ? o[o.length - 1] : null;
6411
6416
  let k = null;
6412
6417
  if (f) {
6413
- const O = f.getBoundingClientRect();
6418
+ const x = f.getBoundingClientRect();
6414
6419
  k = {
6415
- width: Math.ceil(O.width),
6416
- height: Math.ceil(O.height),
6417
- rightOffset: Math.max(0, Math.ceil(t.right - O.right)),
6418
- bottomOffset: Math.max(0, Math.ceil(t.bottom - O.bottom))
6420
+ width: Math.ceil(x.width),
6421
+ height: Math.ceil(x.height),
6422
+ rightOffset: Math.max(0, Math.ceil(t.right - x.right)),
6423
+ bottomOffset: Math.max(0, Math.ceil(t.bottom - x.bottom))
6419
6424
  };
6420
6425
  }
6421
6426
  this.notifyParentResize("closed", {
@@ -6457,26 +6462,26 @@ const Ka = /* @__PURE__ */ U(Ba, [["render", Va], ["__scopeId", "data-v-6d5f94a8
6457
6462
  // lazily on the first outbound action (text / attachment / form /
6458
6463
  // quick-link without URL), so users who open the chat and walk away
6459
6464
  // don't leave empty threads behind.
6460
- // Home-screen starter input kick off the launch animation. We do
6461
- // NOT switch to the chat yet: the Onboarding component first fades
6462
- // out everything but its input and slides that input down to the
6463
- // composer slot, then emits `launched` (→ `onHomeLaunched`). The
6464
- // text is stashed until then. An empty submit just opens the chat.
6465
+ // Launch, beat 1 — home input submitted. We don't switch to the chat
6466
+ // yet: the Onboarding component fades everything but its input to
6467
+ // white, then slides that input down to the composer slot, then
6468
+ // emits `launched` (→ `onHomeLaunched`). The text is stashed until
6469
+ // then. Stage 'whiteslide' also hides the header (page goes white).
6465
6470
  onOnboardingStart(e) {
6466
- const t = (e || "").trim();
6467
- this.pendingLaunchText = t, this.launching = !0;
6468
- },
6469
- // Second half of the launch: the home input has reached the
6470
- // composer slot, so materialize the conversation. The swap is
6471
- // instant the composer is iso with the home input and lands in
6472
- // the same spot, so the input simply becomes the composer — while
6473
- // the message area animates in (`wm-screen--launching`). `onSend`
6474
- // posts the stashed text.
6471
+ this.pendingLaunchText = (e || "").trim(), this.launching = !0, this.launchStage = "whiteslide";
6472
+ },
6473
+ // Launch, beats 2-3 — the input has reached the composer slot, so we
6474
+ // materialize the conversation (the iso composer lands exactly where
6475
+ // the input stopped). Then the timeline plays out: the topbar drops
6476
+ // in from the top (messages still hidden), and only once it has
6477
+ // landed do the messages fade in. `onSend` posts the stashed text.
6475
6478
  onHomeLaunched() {
6476
6479
  const e = this.pendingLaunchText;
6477
- this.pendingLaunchText = "", this.startConv(), e && this.$nextTick(() => this.onSend(e)), window.setTimeout(() => {
6478
- this.launching = !1;
6479
- }, 650);
6480
+ this.pendingLaunchText = "", this.startConv(), e && this.$nextTick(() => this.onSend(e)), this.launchStage = "header", window.setTimeout(() => {
6481
+ this.launching && (this.launchStage = "messages");
6482
+ }, 520), window.setTimeout(() => {
6483
+ this.launching = !1, this.launchStage = "idle";
6484
+ }, 1160);
6480
6485
  },
6481
6486
  startConv() {
6482
6487
  this.draftConv = {
@@ -6827,34 +6832,37 @@ const Ka = /* @__PURE__ */ U(Ba, [["render", Va], ["__scopeId", "data-v-6d5f94a8
6827
6832
  }, Ga = ["aria-label"], Ya = { class: "wm-screens" }, Ja = {
6828
6833
  key: "error",
6829
6834
  class: "wm-screen wm-state"
6830
- }, Xa = { class: "wm-state__err" }, Qa = { class: "wm-state__errTitle" }, Za = { class: "wm-state__errSub" }, eo = { class: "wm-bottom" }, to = {
6835
+ }, Xa = { class: "wm-state__err" }, Qa = { class: "wm-state__errTitle" }, Za = { class: "wm-state__errSub" }, eo = {
6836
+ key: "chat",
6837
+ class: "wm-screen wm-screen--chat"
6838
+ }, to = { class: "wm-bottom" }, no = {
6831
6839
  key: 0,
6832
6840
  ref: "floatEl",
6833
6841
  class: "wm-float"
6834
- }, no = {
6842
+ }, so = {
6835
6843
  key: 1,
6836
6844
  class: "wm-actionWait",
6837
6845
  role: "status",
6838
6846
  "aria-live": "polite"
6839
- }, so = { class: "wm-actionWait__lbl" }, ro = {
6847
+ }, ro = { class: "wm-actionWait__lbl" }, io = {
6840
6848
  key: 2,
6841
6849
  class: "wm-attached"
6842
- }, io = ["src", "alt"], ao = {
6850
+ }, ao = ["src", "alt"], oo = {
6843
6851
  key: 1,
6844
6852
  class: "wm-attached__file"
6845
- }, oo = { class: "wm-attached__fileMeta" }, lo = { class: "wm-attached__fileName" }, co = {
6853
+ }, lo = { class: "wm-attached__fileMeta" }, co = { class: "wm-attached__fileName" }, uo = {
6846
6854
  key: 0,
6847
6855
  class: "wm-attached__fileSize"
6848
- }, uo = ["aria-label", "onClick"], ho = {
6856
+ }, ho = ["aria-label", "onClick"], mo = {
6849
6857
  key: 3,
6850
6858
  class: "wm-ended",
6851
6859
  role: "status",
6852
6860
  "aria-live": "polite"
6853
- }, mo = { class: "wm-ended__lbl" };
6854
- function fo(e, t, s, r, i, n) {
6861
+ }, fo = { class: "wm-ended__lbl" };
6862
+ function _o(e, t, s, r, i, n) {
6855
6863
  const a = P("Launcher"), o = P("Header"), f = P("History"), k = P("Onboarding"), v = P("MessageList"), T = P("InlineCallbacks"), E = P("FormCard"), S = P("Feedback"), z = P("Composer"), M = P("MoreMenu"), D = P("RenameDialog");
6856
6864
  return c(), d("div", {
6857
- class: x(["wm-root", `wm-root--${s.displayMode}`]),
6865
+ class: R(["wm-root", `wm-root--${s.displayMode}`]),
6858
6866
  style: N(n.rootStyle)
6859
6867
  }, [
6860
6868
  !i.isOpen && !n.isEmbedded ? (c(), B(a, {
@@ -6867,16 +6875,16 @@ function fo(e, t, s, r, i, n) {
6867
6875
  }, null, 8, ["unread-count", "peeks", "onOpen", "onDismiss", "onHover"])) : b("", !0),
6868
6876
  i.isOpen || n.isEmbedded ? (c(), d("section", {
6869
6877
  key: 1,
6870
- class: x([
6878
+ class: R([
6871
6879
  "wm-panel",
6872
6880
  `wm-panel--${s.displayMode}`,
6873
6881
  { "wm-panel--welcome": n.ready && !n.error && !n.currentConv },
6874
- { "wm-panel--launching": i.launching }
6882
+ i.launching ? `wm-launch-${i.launchStage}` : ""
6875
6883
  ]),
6876
6884
  style: N(i.floatHeight ? { "--wm-float-h": i.floatHeight + "px" } : null),
6877
6885
  role: "dialog",
6878
6886
  "aria-label": "Messenger",
6879
- onClick: t[7] || (t[7] = (...O) => n.onPanelClick && n.onPanelClick(...O))
6887
+ onClick: t[7] || (t[7] = (...x) => n.onPanelClick && n.onPanelClick(...x))
6880
6888
  }, [
6881
6889
  !n.ready && !n.error ? (c(), d("div", $a, [
6882
6890
  n.isEmbedded ? b("", !0) : (c(), d("button", {
@@ -6884,7 +6892,7 @@ function fo(e, t, s, r, i, n) {
6884
6892
  type: "button",
6885
6893
  class: "wm-loading__close",
6886
6894
  "aria-label": n.t("loading.minimize"),
6887
- onClick: t[0] || (t[0] = (...O) => n.close && n.close(...O))
6895
+ onClick: t[0] || (t[0] = (...x) => n.close && n.close(...x))
6888
6896
  }, [...t[8] || (t[8] = [
6889
6897
  l("svg", {
6890
6898
  width: "13",
@@ -6949,10 +6957,7 @@ function fo(e, t, s, r, i, n) {
6949
6957
  class: "wm-screen",
6950
6958
  threads: n.openThreads,
6951
6959
  onResume: n.onDrawerPick
6952
- }, null, 8, ["threads", "onResume"])) : n.currentConv ? (c(), d("div", {
6953
- key: "chat",
6954
- class: x(["wm-screen wm-screen--chat", { "wm-screen--launching": i.launching }])
6955
- }, [
6960
+ }, null, 8, ["threads", "onResume"])) : n.currentConv ? (c(), d("div", eo, [
6956
6961
  K(v, {
6957
6962
  ref: "messageList",
6958
6963
  messages: n.displayedMessages,
@@ -6967,8 +6972,8 @@ function fo(e, t, s, r, i, n) {
6967
6972
  "ai-agent-avatar-url": n.agentAvatarUrl,
6968
6973
  onLoadMore: n.onLoadMore
6969
6974
  }, null, 8, ["messages", "streaming-active", "date-label", "conversation-id", "loading-more", "has-more", "unread-anchor-id", "unread-boundary-ts", "ai-agent-name", "ai-agent-avatar-url", "onLoadMore"]),
6970
- l("div", eo, [
6971
- n.floatVisible ? (c(), d("div", to, [
6975
+ l("div", to, [
6976
+ n.floatVisible ? (c(), d("div", no, [
6972
6977
  n.pendingApproval ? (c(), B(T, {
6973
6978
  key: `appr-${n.pendingApproval.id}`,
6974
6979
  variant: "buttons",
@@ -6996,26 +7001,26 @@ function fo(e, t, s, r, i, n) {
6996
7001
  onSelect: n.onSuggestion
6997
7002
  }, null, 8, ["items", "onSelect"]))
6998
7003
  ], 512)) : b("", !0),
6999
- n.actionInFlight ? (c(), d("div", no, [
7004
+ n.actionInFlight ? (c(), d("div", so, [
7000
7005
  t[11] || (t[11] = l("span", {
7001
7006
  class: "wm-actionWait__spinner",
7002
7007
  "aria-hidden": "true"
7003
7008
  }, null, -1)),
7004
- l("span", so, y(n.t("action.inProgress", {
7009
+ l("span", ro, y(n.t("action.inProgress", {
7005
7010
  name: n.actionInFlightName
7006
7011
  })), 1)
7007
7012
  ])) : b("", !0),
7008
- i.pendingAttachments.length ? (c(), d("div", ro, [
7009
- (c(!0), d(I, null, F(i.pendingAttachments, (O, q) => (c(), d("div", {
7010
- key: O.path || q,
7013
+ i.pendingAttachments.length ? (c(), d("div", io, [
7014
+ (c(!0), d(I, null, F(i.pendingAttachments, (x, q) => (c(), d("div", {
7015
+ key: x.path || q,
7011
7016
  class: "wm-attached__item"
7012
7017
  }, [
7013
- O.previewUrl ? (c(), d("img", {
7018
+ x.previewUrl ? (c(), d("img", {
7014
7019
  key: 0,
7015
7020
  class: "wm-attached__thumb",
7016
- src: O.previewUrl,
7017
- alt: O.name
7018
- }, null, 8, io)) : (c(), d("div", ao, [
7021
+ src: x.previewUrl,
7022
+ alt: x.name
7023
+ }, null, 8, ao)) : (c(), d("div", oo, [
7019
7024
  t[12] || (t[12] = l("span", { class: "wm-attached__fileIcon" }, [
7020
7025
  l("svg", {
7021
7026
  width: "16",
@@ -7032,10 +7037,10 @@ function fo(e, t, s, r, i, n) {
7032
7037
  l("path", { d: "M14 2v6h6" })
7033
7038
  ])
7034
7039
  ], -1)),
7035
- l("span", oo, [
7036
- l("span", lo, y(O.name), 1),
7037
- n.formatAttachmentSize(O.size_bytes) ? (c(), d("span", co, y(n.formatAttachmentSize(
7038
- O.size_bytes
7040
+ l("span", lo, [
7041
+ l("span", co, y(x.name), 1),
7042
+ n.formatAttachmentSize(x.size_bytes) ? (c(), d("span", uo, y(n.formatAttachmentSize(
7043
+ x.size_bytes
7039
7044
  )), 1)) : b("", !0)
7040
7045
  ])
7041
7046
  ])),
@@ -7058,21 +7063,21 @@ function fo(e, t, s, r, i, n) {
7058
7063
  }, [
7059
7064
  l("path", { d: "M18 6L6 18M6 6l12 12" })
7060
7065
  ], -1)
7061
- ])], 8, uo)
7066
+ ])], 8, ho)
7062
7067
  ]))), 128))
7063
7068
  ])) : b("", !0),
7064
- n.endedBlockVisible ? (c(), d("div", ho, [
7065
- l("span", mo, y(n.isClosed ? n.t("composer.conversationClosed") : n.t("composer.conversationEnded")), 1),
7069
+ n.endedBlockVisible ? (c(), d("div", mo, [
7070
+ l("span", fo, y(n.isClosed ? n.t("composer.conversationClosed") : n.t("composer.conversationEnded")), 1),
7066
7071
  l("button", {
7067
7072
  type: "button",
7068
7073
  class: "wm-ended__btn",
7069
- onClick: t[2] || (t[2] = (O) => n.isClosed ? n.onReopen() : n.startConv())
7074
+ onClick: t[2] || (t[2] = (x) => n.isClosed ? n.onReopen() : n.startConv())
7070
7075
  }, y(n.isClosed ? n.t("composer.reopen") : n.t("composer.newConversation")), 1)
7071
7076
  ])) : n.actionInFlight ? b("", !0) : (c(), B(z, {
7072
7077
  key: 4,
7073
7078
  ref: "composer",
7074
7079
  modelValue: i.draft,
7075
- "onUpdate:modelValue": t[3] || (t[3] = (O) => i.draft = O),
7080
+ "onUpdate:modelValue": t[3] || (t[3] = (x) => i.draft = x),
7076
7081
  placeholder: n.composerPlaceholder,
7077
7082
  "attach-label": n.t("composer.attachFile"),
7078
7083
  "display-mode": s.displayMode,
@@ -7087,7 +7092,7 @@ function fo(e, t, s, r, i, n) {
7087
7092
  "sound-enabled": e.soundEnabled,
7088
7093
  "status-url": n.statusUrl,
7089
7094
  "help-url": n.helpUrl,
7090
- onClose: t[4] || (t[4] = (O) => i.moreOpen = !1),
7095
+ onClose: t[4] || (t[4] = (x) => i.moreOpen = !1),
7091
7096
  onSoundToggle: e.onSoundToggle,
7092
7097
  onAction: n.onMoreAction
7093
7098
  }, null, 8, ["can-rename", "can-export", "sound-enabled", "status-url", "help-url", "onSoundToggle", "onAction"])) : b("", !0),
@@ -7095,10 +7100,10 @@ function fo(e, t, s, r, i, n) {
7095
7100
  key: 1,
7096
7101
  "initial-value": n.currentConv.name || "",
7097
7102
  title: n.t("rename.dialogTitle"),
7098
- onClose: t[5] || (t[5] = (O) => i.renameDialogOpen = !1),
7103
+ onClose: t[5] || (t[5] = (x) => i.renameDialogOpen = !1),
7099
7104
  onSubmit: n.onRenameSubmit
7100
7105
  }, null, 8, ["initial-value", "title", "onSubmit"])) : b("", !0)
7101
- ], 2)) : (c(), B(k, {
7106
+ ])) : (c(), B(k, {
7102
7107
  key: "home",
7103
7108
  class: "wm-screen",
7104
7109
  title: n.widgetTitle,
@@ -7114,7 +7119,7 @@ function fo(e, t, s, r, i, n) {
7114
7119
  onLaunched: n.onHomeLaunched,
7115
7120
  onSelect: n.onQuickLink,
7116
7121
  onResume: n.onDrawerPick,
7117
- onViewHistory: t[1] || (t[1] = (O) => i.showHistory = !0)
7122
+ onViewHistory: t[1] || (t[1] = (x) => i.showHistory = !0)
7118
7123
  }, null, 8, ["title", "subtitle", "agent-name", "default-icon-url", "cover-image-url", "quick-links", "open-threads", "busy", "launching", "onStart", "onLaunched", "onSelect", "onResume"]))
7119
7124
  ]),
7120
7125
  _: 1
@@ -7127,7 +7132,7 @@ function fo(e, t, s, r, i, n) {
7127
7132
  "sound-enabled": e.soundEnabled,
7128
7133
  "status-url": n.statusUrl,
7129
7134
  "help-url": n.helpUrl,
7130
- onClose: t[6] || (t[6] = (O) => i.moreOpen = !1),
7135
+ onClose: t[6] || (t[6] = (x) => i.moreOpen = !1),
7131
7136
  onSoundToggle: e.onSoundToggle,
7132
7137
  onAction: n.onMoreAction
7133
7138
  }, null, 8, ["sound-enabled", "status-url", "help-url", "onSoundToggle", "onAction"])) : b("", !0)
@@ -7135,7 +7140,7 @@ function fo(e, t, s, r, i, n) {
7135
7140
  ], 6)) : b("", !0)
7136
7141
  ], 6);
7137
7142
  }
7138
- const yo = /* @__PURE__ */ U(Wa, [["render", fo], ["__scopeId", "data-v-505609ba"]]), vo = "0.6.13";
7143
+ const vo = /* @__PURE__ */ U(Wa, [["render", _o], ["__scopeId", "data-v-9601fbb5"]]), po = "0.6.14";
7139
7144
  export {
7140
7145
  me as AIAvatar,
7141
7146
  be as AVATAR_COLORS,
@@ -7157,14 +7162,14 @@ export {
7157
7162
  qt as Launcher,
7158
7163
  Le as MEDIA_RECORDER_SUPPORTED,
7159
7164
  ai as MessageList,
7160
- yo as Messenger,
7165
+ vo as Messenger,
7161
7166
  Ia as MoreMenu,
7162
7167
  Qn as Onboarding,
7163
7168
  ge as SCREEN_CAPTURE_SUPPORTED,
7164
7169
  ht as SUPPORTED_LANGUAGES,
7165
7170
  tn as TeamAvatars,
7166
7171
  Ir as Typing,
7167
- vo as VERSION,
7172
+ po as VERSION,
7168
7173
  xe as avatarColor,
7169
7174
  Oe as avatarInitials,
7170
7175
  li as captureScreenshotFile,
@@ -7173,9 +7178,9 @@ export {
7173
7178
  H as createTranslator,
7174
7179
  tt as createTransport,
7175
7180
  re as dateLocale,
7176
- yo as default,
7181
+ vo as default,
7177
7182
  Ce as formatTime,
7178
- go as guessAttachmentKind,
7183
+ yo as guessAttachmentKind,
7179
7184
  oi as pickRecorderMime,
7180
7185
  Ve as renderInlineMarkdown,
7181
7186
  _t as renderMarkdown,