@_solaris/messenger-widget 0.6.15 → 0.6.17

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 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";
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 D, withKeys as _e, withModifiers as G, createElementVNode as l, createCommentVNode as b, createBlock as E, 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 Be } from "vue";
2
2
  const Je = [
3
3
  "connected",
4
4
  "message",
@@ -141,7 +141,7 @@ function tt(e) {
141
141
  }
142
142
  async function k() {
143
143
  try {
144
- const u = await E();
144
+ const u = await B();
145
145
  t.lastActivityAt = u.reduce((g, p) => {
146
146
  const L = p == null ? void 0 : p.last_message_at;
147
147
  return L && (!g || L > g) ? L : g;
@@ -158,7 +158,7 @@ function tt(e) {
158
158
  const g = await a("PATCH", "/customers/me", u);
159
159
  return (g == null ? void 0 : g.customer) ?? null;
160
160
  }
161
- async function E() {
161
+ async function B() {
162
162
  const u = await a("GET", "/conversations");
163
163
  return (u == null ? void 0 : u.conversations) ?? [];
164
164
  }
@@ -178,7 +178,7 @@ function tt(e) {
178
178
  g
179
179
  )).conversation;
180
180
  }
181
- async function D(u, g) {
181
+ async function U(u, g) {
182
182
  return a(
183
183
  "PATCH",
184
184
  `/conversations/${encodeURIComponent(u)}/read`,
@@ -281,7 +281,7 @@ function tt(e) {
281
281
  }
282
282
  async function pe() {
283
283
  try {
284
- const u = await E(), g = u.reduce((L, O) => {
284
+ const u = await B(), g = u.reduce((L, O) => {
285
285
  const V = O == null ? void 0 : O.last_message_at;
286
286
  return V && (!L || V > L) ? V : L;
287
287
  }, null);
@@ -340,11 +340,11 @@ function tt(e) {
340
340
  // REST
341
341
  getCustomer: v,
342
342
  patchCustomer: T,
343
- listConversations: E,
343
+ listConversations: B,
344
344
  createConversation: S,
345
345
  getConversation: z,
346
346
  patchConversation: M,
347
- markConversationRead: D,
347
+ markConversationRead: U,
348
348
  listMessages: x,
349
349
  postMessage: q,
350
350
  postCallback: J,
@@ -552,7 +552,7 @@ function it(e) {
552
552
  const _ = await e.patchConversation(h, m), w = t.conversations.findIndex((A) => A.id === h);
553
553
  w !== -1 && (t.conversations[w] = _);
554
554
  }
555
- async function E(h) {
555
+ async function B(h) {
556
556
  if (!h) return [];
557
557
  const m = t.messagesByConv[h] || [];
558
558
  let _ = "";
@@ -633,10 +633,10 @@ function it(e) {
633
633
  console.error("[store] callback failed", w), h != null && delete t.awaitingCallback[h];
634
634
  }
635
635
  }
636
- const D = /* @__PURE__ */ new Map();
636
+ const U = /* @__PURE__ */ new Map();
637
637
  async function x(h) {
638
638
  if (!h) return null;
639
- const m = D.get(h);
639
+ const m = U.get(h);
640
640
  if (m != null && m.url) {
641
641
  const _ = m.expires_at ? Date.parse(m.expires_at) : 0;
642
642
  if (!_ || _ - Date.now() > 6e4) return m.url;
@@ -644,7 +644,7 @@ function it(e) {
644
644
  try {
645
645
  const _ = await e.signAttachment(h);
646
646
  if (_ != null && _.signed_url)
647
- return D.set(h, {
647
+ return U.set(h, {
648
648
  url: _.signed_url,
649
649
  expires_at: _.expires_at
650
650
  }), _.signed_url;
@@ -774,7 +774,7 @@ function it(e) {
774
774
  createConversation: a,
775
775
  openConversation: f,
776
776
  loadMore: k,
777
- fetchSinceLast: E,
777
+ fetchSinceLast: B,
778
778
  patchConversation: T,
779
779
  markConversationRead: S,
780
780
  send: z,
@@ -882,7 +882,7 @@ function Ie(e) {
882
882
  }
883
883
  return t.protocol === "https:" || t.protocol === "http:" || t.protocol === "data:" && /^data:image\//i.test(e) ? e : null;
884
884
  }
885
- const ue = "fr", ht = ["fr", "en"], Be = { fr: "fr-FR", en: "en-US" }, ke = {
885
+ const ue = "fr", ht = ["fr", "en"], Ee = { fr: "fr-FR", en: "en-US" }, ke = {
886
886
  fr: {
887
887
  // ── Common ───────────────────────────────────────────────────────
888
888
  "common.newConversation": "Nouvelle conversation",
@@ -1162,7 +1162,7 @@ function Re(e) {
1162
1162
  return ht.includes(t) ? t : ue;
1163
1163
  }
1164
1164
  function re(e) {
1165
- return Be[Re(e)] || Be[ue];
1165
+ return Ee[Re(e)] || Ee[ue];
1166
1166
  }
1167
1167
  function H(e) {
1168
1168
  const t = Re(e), s = ke[t] || ke[ue], r = ke[ue];
@@ -1223,13 +1223,13 @@ function qe(e) {
1223
1223
  function fe(e) {
1224
1224
  return /^(https?:\/\/|mailto:|tel:)/i.test(String(e).trim());
1225
1225
  }
1226
- const Ue = "";
1226
+ const Fe = "";
1227
1227
  function de(e) {
1228
1228
  let t = e;
1229
1229
  const s = [];
1230
1230
  return t = t.replace(/`([^`\n]+)`/g, (r, i) => {
1231
1231
  const n = s.length;
1232
- return s.push(i), `${Ue}CODE${n}${Ue}`;
1232
+ return s.push(i), `${Fe}CODE${n}${Fe}`;
1233
1233
  }), t = t.replace(/\[([^\]\n]+)\]\(([^)\s]+)\)/g, (r, i, n) => fe(n) ? `<a href="${n}" target="_blank" rel="noopener noreferrer">${i}</a>` : i), t = t.replace(/\*\*([^\n*][^\n]*?)\*\*/g, "<strong>$1</strong>"), t = t.replace(/__([^\n_][^\n]*?)__/g, "<u>$1</u>"), t = t.replace(/~~([^\n~][^\n]*?)~~/g, "<s>$1</s>"), t = t.replace(/(^|[^\w*])\*([^\n*]+?)\*(?!\w)/g, "$1<em>$2</em>"), t = t.replace(/(^|[^\w_])_([^\n_]+?)_(?!\w)/g, "$1<em>$2</em>"), t = t.replace(/CODE(\d+)/g, (r, i) => `<code class="wm-md-code">${s[+i]}</code>`), t;
1234
1234
  }
1235
1235
  function Ve(e) {
@@ -1278,10 +1278,10 @@ function _t(e) {
1278
1278
  if (!S) break;
1279
1279
  v.push(S[1]), r++;
1280
1280
  }
1281
- const T = v.map((S) => `<li>${de(S)}</li>`).join(""), E = k !== 1 ? ` start="${k}"` : "";
1281
+ const T = v.map((S) => `<li>${de(S)}</li>`).join(""), B = k !== 1 ? ` start="${k}"` : "";
1282
1282
  s.push({
1283
1283
  type: "block",
1284
- html: `<ol class="wm-md-ol"${E}>${T}</ol>`
1284
+ html: `<ol class="wm-md-ol"${B}>${T}</ol>`
1285
1285
  });
1286
1286
  continue;
1287
1287
  }
@@ -1316,7 +1316,7 @@ function Y(e) {
1316
1316
  const t = typeof e == "number" ? e : Number(e);
1317
1317
  return Number.isFinite(t) ? t : null;
1318
1318
  }
1319
- function De(e, t) {
1319
+ function Ue(e, t) {
1320
1320
  let s = (e == null ? void 0 : e.last_message_at) || (e == null ? void 0 : e.updated_at) || (e == null ? void 0 : e.created_at) || "";
1321
1321
  for (const r of t)
1322
1322
  r != null && r.created_at && r.created_at > s && (s = r.created_at);
@@ -1812,7 +1812,7 @@ function At(e) {
1812
1812
  }
1813
1813
  return null;
1814
1814
  }
1815
- const U = (e, t) => {
1815
+ const F = (e, t) => {
1816
1816
  const s = e.__vccOpts || e;
1817
1817
  for (const [r, i] of t)
1818
1818
  s[r] = i;
@@ -1858,7 +1858,7 @@ function Mt(e, t, s, r, i, n) {
1858
1858
  }, y(n.initials), 5))
1859
1859
  ], 6);
1860
1860
  }
1861
- const ye = /* @__PURE__ */ U(St, [["render", Mt], ["__scopeId", "data-v-14e10c0d"]]), xt = 3, Ot = {
1861
+ const ye = /* @__PURE__ */ F(St, [["render", Mt], ["__scopeId", "data-v-14e10c0d"]]), xt = 3, Ot = {
1862
1862
  name: "WmLauncher",
1863
1863
  components: { HumanAvatar: ye },
1864
1864
  inject: {
@@ -1884,7 +1884,7 @@ const ye = /* @__PURE__ */ U(St, [["render", Mt], ["__scopeId", "data-v-14e10c0d
1884
1884
  return this.peeks.slice(0, xt).reverse();
1885
1885
  }
1886
1886
  }
1887
- }, Rt = ["aria-label", "onClick", "onKeydown"], Lt = ["aria-label", "onClick"], Et = { class: "wm-peek__avatar" }, It = ["aria-label"], Bt = { class: "wm-peek__body" }, Pt = { class: "wm-peek__head" }, Ut = { class: "wm-peek__name" }, Dt = { class: "wm-peek__action" }, Ft = { class: "wm-peek__text" }, Nt = ["onClick"], Ht = ["aria-label"], jt = ["aria-label"];
1887
+ }, Rt = ["aria-label", "onClick", "onKeydown"], Lt = ["aria-label", "onClick"], Bt = { class: "wm-peek__avatar" }, It = ["aria-label"], Et = { class: "wm-peek__body" }, Pt = { class: "wm-peek__head" }, Ft = { class: "wm-peek__name" }, Ut = { class: "wm-peek__action" }, Dt = { class: "wm-peek__text" }, Nt = ["onClick"], Ht = ["aria-label"], jt = ["aria-label"];
1888
1888
  function zt(e, t, s, r, i, n) {
1889
1889
  const a = P("HumanAvatar");
1890
1890
  return c(), d("div", {
@@ -1900,7 +1900,7 @@ function zt(e, t, s, r, i, n) {
1900
1900
  key: 0,
1901
1901
  class: R(["wm-peekStack", { "wm-peekStack--multi": n.visiblePeeks.length > 1 }])
1902
1902
  }, [
1903
- (c(!0), d(I, null, F(n.visiblePeeks, (o, f) => (c(), d("div", {
1903
+ (c(!0), d(I, null, D(n.visiblePeeks, (o, f) => (c(), d("div", {
1904
1904
  key: o.convId,
1905
1905
  class: "wm-peek",
1906
1906
  style: N({
@@ -1938,7 +1938,7 @@ function zt(e, t, s, r, i, n) {
1938
1938
  l("path", { d: "M18 6L6 18M6 6l12 12" })
1939
1939
  ], -1)
1940
1940
  ])], 8, Lt),
1941
- l("div", Et, [
1941
+ l("div", Bt, [
1942
1942
  K(a, {
1943
1943
  name: o.senderName,
1944
1944
  "avatar-url": o.senderAvatarUrl,
@@ -1950,12 +1950,12 @@ function zt(e, t, s, r, i, n) {
1950
1950
  "aria-label": n.t("launcher.unreadMessages", { count: o.count })
1951
1951
  }, y(o.count > 9 ? "9+" : o.count), 9, It)) : b("", !0)
1952
1952
  ]),
1953
- l("div", Bt, [
1953
+ l("div", Et, [
1954
1954
  l("div", Pt, [
1955
- l("span", Ut, y(o.senderName || n.t("common.agent")), 1),
1956
- l("span", Dt, y(n.t("launcher.repliedToYou")), 1)
1955
+ l("span", Ft, y(o.senderName || n.t("common.agent")), 1),
1956
+ l("span", Ut, y(n.t("launcher.repliedToYou")), 1)
1957
1957
  ]),
1958
- l("p", Ft, y(o.preview), 1)
1958
+ l("p", Dt, y(o.preview), 1)
1959
1959
  ]),
1960
1960
  l("button", {
1961
1961
  type: "button",
@@ -1998,7 +1998,7 @@ function zt(e, t, s, r, i, n) {
1998
1998
  ], 8, Ht)
1999
1999
  ], 32);
2000
2000
  }
2001
- const qt = /* @__PURE__ */ U(Ot, [["render", zt], ["__scopeId", "data-v-d81459bc"]]), Vt = {
2001
+ const qt = /* @__PURE__ */ F(Ot, [["render", zt], ["__scopeId", "data-v-d81459bc"]]), Vt = {
2002
2002
  name: "WmAIAvatar",
2003
2003
  props: {
2004
2004
  size: { type: Number, default: 26 },
@@ -2089,7 +2089,7 @@ function Gt(e, t, s, r, i, n) {
2089
2089
  ], 6)
2090
2090
  ], 6);
2091
2091
  }
2092
- const me = /* @__PURE__ */ U(Vt, [["render", Gt], ["__scopeId", "data-v-6f7f685d"]]), Yt = {
2092
+ const me = /* @__PURE__ */ F(Vt, [["render", Gt], ["__scopeId", "data-v-6f7f685d"]]), Yt = {
2093
2093
  name: "WmTeamAvatars",
2094
2094
  props: {
2095
2095
  members: { type: Array, default: () => [] },
@@ -2124,7 +2124,7 @@ function en(e, t, s, r, i, n) {
2124
2124
  class: "wm-team__stack",
2125
2125
  style: N({ width: n.stackWidth + "px" })
2126
2126
  }, [
2127
- (c(!0), d(I, null, F(s.members.slice(0, 3), (a, o) => (c(), d("div", {
2127
+ (c(!0), d(I, null, D(s.members.slice(0, 3), (a, o) => (c(), d("div", {
2128
2128
  key: o,
2129
2129
  class: "wm-team__pill",
2130
2130
  style: N({
@@ -2143,7 +2143,7 @@ function en(e, t, s, r, i, n) {
2143
2143
  s.responseLabel ? (c(), d("span", Zt, y(s.responseLabel), 1)) : b("", !0)
2144
2144
  ])) : b("", !0);
2145
2145
  }
2146
- const tn = /* @__PURE__ */ U(Yt, [["render", en], ["__scopeId", "data-v-e49a9063"]]), nn = {
2146
+ const tn = /* @__PURE__ */ F(Yt, [["render", en], ["__scopeId", "data-v-e49a9063"]]), nn = {
2147
2147
  name: "WmHeader",
2148
2148
  components: { AIAvatar: me, TeamAvatars: tn },
2149
2149
  inject: {
@@ -2224,7 +2224,7 @@ function fn(e, t, s, r, i, n) {
2224
2224
  l("div", ln, [
2225
2225
  l("div", cn, y(s.title), 1)
2226
2226
  ]),
2227
- n.hasTeam ? (c(), B(o, {
2227
+ n.hasTeam ? (c(), E(o, {
2228
2228
  key: 0,
2229
2229
  members: n.displayedTeamMembers,
2230
2230
  "response-label": ""
@@ -2288,7 +2288,7 @@ function fn(e, t, s, r, i, n) {
2288
2288
  ])
2289
2289
  ]);
2290
2290
  }
2291
- const _n = /* @__PURE__ */ U(nn, [["render", fn], ["__scopeId", "data-v-27232009"]]), Fe = {
2291
+ const _n = /* @__PURE__ */ F(nn, [["render", fn], ["__scopeId", "data-v-27232009"]]), De = {
2292
2292
  book: "M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253",
2293
2293
  changelog: "M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2",
2294
2294
  status: "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z",
@@ -2325,6 +2325,10 @@ const _n = /* @__PURE__ */ U(nn, [["render", fn], ["__scopeId", "data-v-27232009
2325
2325
  // input fades out) → 'slide' (the input glides down to the
2326
2326
  // composer slot). Drives the `wm-onb--*` classes.
2327
2327
  launchPhase: "idle",
2328
+ // True while the starter input is focused — expands the input to
2329
+ // the composer shape and tucks the home's central content away
2330
+ // (reversibly). See `onInputFocus` / `onInputBlur`.
2331
+ inputFocused: !1,
2328
2332
  // One-shot guard so `launched` is emitted exactly once.
2329
2333
  launchDone: !1,
2330
2334
  // First-message draft typed straight on the home screen. On
@@ -2381,6 +2385,16 @@ const _n = /* @__PURE__ */ U(nn, [["render", fn], ["__scopeId", "data-v-27232009
2381
2385
  onStarterKeydown(e) {
2382
2386
  e.key === "Enter" && !e.shiftKey && (e.preventDefault(), this.submitStarter());
2383
2387
  },
2388
+ // Focus expands the input and tucks the home content away; blur puts
2389
+ // everything back as it was (the return is purely CSS-driven). We
2390
+ // freeze the state during a launch so the commit sequence isn't
2391
+ // disturbed by the input losing focus.
2392
+ onInputFocus() {
2393
+ this.launchPhase === "idle" && (this.inputFocused = !0);
2394
+ },
2395
+ onInputBlur() {
2396
+ this.launchPhase === "idle" && (this.inputFocused = !1);
2397
+ },
2384
2398
  // Launch choreography, in two beats:
2385
2399
  // 1. 'fade' — hero, alerts and quick-link buttons fade out,
2386
2400
  // leaving a white panel with just the input pill.
@@ -2415,7 +2429,7 @@ const _n = /* @__PURE__ */ U(nn, [["render", fn], ["__scopeId", "data-v-27232009
2415
2429
  return new Promise((t) => window.setTimeout(t, e));
2416
2430
  },
2417
2431
  iconPath(e) {
2418
- return Fe[e] || Fe.link;
2432
+ return De[e] || De.link;
2419
2433
  },
2420
2434
  // True when activating the link opens an external destination
2421
2435
  // (full URL or relative path) — anchor links (`#…`, which route
@@ -2514,25 +2528,10 @@ const _n = /* @__PURE__ */ U(nn, [["render", fn], ["__scopeId", "data-v-27232009
2514
2528
  }, Sn = ["aria-label"], Tn = { class: "wm-onb__alert-body" }, Mn = { class: "wm-onb__alert-title" }, xn = { class: "wm-onb__alert-preview" }, On = {
2515
2529
  key: 0,
2516
2530
  class: "wm-onb__alert-sender"
2517
- }, Rn = ["innerHTML"], Ln = { class: "wm-onb__alert-meta" }, En = {
2531
+ }, Rn = ["innerHTML"], Ln = { class: "wm-onb__alert-meta" }, Bn = {
2518
2532
  key: 0,
2519
2533
  class: "wm-onb__alert-time"
2520
- }, In = { class: "wm-onb__alert-resume" }, Bn = { class: "wm-onb__actions" }, Pn = ["placeholder", "disabled", "aria-label"], Un = ["disabled", "aria-label"], Dn = {
2521
- key: 0,
2522
- width: "16",
2523
- height: "16",
2524
- viewBox: "0 0 24 24",
2525
- fill: "none",
2526
- stroke: "currentColor",
2527
- "stroke-width": "2",
2528
- "stroke-linecap": "round",
2529
- "stroke-linejoin": "round",
2530
- "aria-hidden": "true"
2531
- }, Fn = {
2532
- key: 1,
2533
- class: "wm-onb__starter-spinner",
2534
- "aria-hidden": "true"
2535
- }, Nn = ["onClick"], Hn = { class: "wm-onb__btn-icon" }, jn = ["aria-label"], zn = {
2534
+ }, In = { class: "wm-onb__alert-resume" }, En = { class: "wm-onb__actions" }, Pn = ["onClick"], Fn = { class: "wm-onb__btn-icon" }, Un = ["aria-label"], Dn = {
2536
2535
  key: 1,
2537
2536
  width: "18",
2538
2537
  height: "18",
@@ -2543,7 +2542,7 @@ const _n = /* @__PURE__ */ U(nn, [["render", fn], ["__scopeId", "data-v-27232009
2543
2542
  "stroke-linecap": "round",
2544
2543
  "stroke-linejoin": "round",
2545
2544
  "aria-hidden": "true"
2546
- }, qn = ["d"], Vn = { class: "wm-onb__btn-label" }, Kn = {
2545
+ }, Nn = ["d"], Hn = { class: "wm-onb__btn-label" }, jn = {
2547
2546
  key: 0,
2548
2547
  class: "wm-onb__btn-trail",
2549
2548
  width: "13",
@@ -2555,7 +2554,7 @@ const _n = /* @__PURE__ */ U(nn, [["render", fn], ["__scopeId", "data-v-27232009
2555
2554
  "stroke-linecap": "round",
2556
2555
  "stroke-linejoin": "round",
2557
2556
  "aria-hidden": "true"
2558
- }, Wn = { class: "wm-onb__btn-icon" }, $n = {
2557
+ }, zn = { class: "wm-onb__btn-icon" }, qn = {
2559
2558
  width: "18",
2560
2559
  height: "18",
2561
2560
  viewBox: "0 0 24 24",
@@ -2565,13 +2564,29 @@ const _n = /* @__PURE__ */ U(nn, [["render", fn], ["__scopeId", "data-v-27232009
2565
2564
  "stroke-linecap": "round",
2566
2565
  "stroke-linejoin": "round",
2567
2566
  "aria-hidden": "true"
2568
- }, Gn = ["d"], Yn = { class: "wm-onb__btn-label" }, Jn = { class: "wm-onb__btn-count" };
2567
+ }, Vn = ["d"], Kn = { class: "wm-onb__btn-label" }, Wn = { class: "wm-onb__btn-count" }, $n = ["placeholder", "disabled", "aria-label"], Gn = ["disabled", "aria-label"], Yn = {
2568
+ key: 0,
2569
+ width: "16",
2570
+ height: "16",
2571
+ viewBox: "0 0 24 24",
2572
+ fill: "none",
2573
+ stroke: "currentColor",
2574
+ "stroke-width": "2",
2575
+ "stroke-linecap": "round",
2576
+ "stroke-linejoin": "round",
2577
+ "aria-hidden": "true"
2578
+ }, Jn = {
2579
+ key: 1,
2580
+ class: "wm-onb__starter-spinner",
2581
+ "aria-hidden": "true"
2582
+ };
2569
2583
  function Xn(e, t, s, r, i, n) {
2570
2584
  const a = P("AIAvatar");
2571
2585
  return c(), d("div", {
2572
2586
  class: R(["wm-onb", {
2573
2587
  "wm-onb--launching": i.launchPhase !== "idle",
2574
- "wm-onb--sliding": i.launchPhase === "slide"
2588
+ "wm-onb--sliding": i.launchPhase === "slide",
2589
+ "wm-onb--focused": i.inputFocused
2575
2590
  }])
2576
2591
  }, [
2577
2592
  l("div", {
@@ -2584,7 +2599,7 @@ function Xn(e, t, s, r, i, n) {
2584
2599
  role: "img",
2585
2600
  "aria-label": n.heroTitle
2586
2601
  }, null, 12, yn)) : b("", !0),
2587
- n.hasCover ? b("", !0) : (c(), d("svg", vn, [...t[4] || (t[4] = [
2602
+ n.hasCover ? b("", !0) : (c(), d("svg", vn, [...t[6] || (t[6] = [
2588
2603
  l("circle", {
2589
2604
  cx: "170",
2590
2605
  cy: "10",
@@ -2621,7 +2636,7 @@ function Xn(e, t, s, r, i, n) {
2621
2636
  ])
2622
2637
  ], 2),
2623
2638
  n.unreadThreads.length ? (c(), d("div", kn, [
2624
- (c(!0), d(I, null, F(n.unreadThreads, (o) => (c(), d("button", {
2639
+ (c(!0), d(I, null, D(n.unreadThreads, (o) => (c(), d("button", {
2625
2640
  key: o.id,
2626
2641
  type: "button",
2627
2642
  class: "wm-onb__alert",
@@ -2630,7 +2645,7 @@ function Xn(e, t, s, r, i, n) {
2630
2645
  l("span", {
2631
2646
  class: R(["wm-onb__alert-avatar", n.avatarWrapperClass(o)])
2632
2647
  }, [
2633
- n.isDefaultAvatar(o) ? (c(), d("span", An, [...t[5] || (t[5] = [
2648
+ n.isDefaultAvatar(o) ? (c(), d("span", An, [...t[7] || (t[7] = [
2634
2649
  l("svg", {
2635
2650
  width: "20",
2636
2651
  height: "20",
@@ -2644,7 +2659,7 @@ function Xn(e, t, s, r, i, n) {
2644
2659
  }, [
2645
2660
  l("path", { d: "M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" })
2646
2661
  ], -1)
2647
- ])])) : (c(), B(Te(n.avatarComponent(o)), je({
2662
+ ])])) : (c(), E(Te(n.avatarComponent(o)), je({
2648
2663
  key: 1,
2649
2664
  ref_for: !0
2650
2665
  }, n.avatarProps(o)), null, 16)),
@@ -2663,84 +2678,52 @@ function Xn(e, t, s, r, i, n) {
2663
2678
  ])
2664
2679
  ]),
2665
2680
  l("span", Ln, [
2666
- n.formatTs(o._ts) ? (c(), d("span", En, y(n.formatTs(o._ts)), 1)) : b("", !0),
2681
+ n.formatTs(o._ts) ? (c(), d("span", Bn, y(n.formatTs(o._ts)), 1)) : b("", !0),
2667
2682
  l("span", In, y(n.t("onboarding.resume")), 1)
2668
2683
  ])
2669
2684
  ], 8, Cn))), 128))
2670
2685
  ])) : b("", !0),
2671
- l("div", Bn, [
2672
- l("form", {
2673
- ref: "starterForm",
2674
- class: R(["wm-onb__starter", {
2675
- "is-active": !!i.starterText.trim(),
2676
- "wm-onb__starter--toBottom": i.launchPhase === "slide"
2677
- }]),
2678
- onSubmit: t[2] || (t[2] = G((...o) => n.submitStarter && n.submitStarter(...o), ["prevent"]))
2679
- }, [
2680
- $(l("textarea", {
2681
- ref: "starterInput",
2682
- "onUpdate:modelValue": t[0] || (t[0] = (o) => i.starterText = o),
2683
- class: "wm-onb__starter-input",
2684
- rows: "1",
2685
- placeholder: n.t("onboarding.starterPlaceholder"),
2686
- disabled: s.busy,
2687
- "aria-label": n.t("onboarding.start"),
2688
- enterkeyhint: "send",
2689
- onKeydown: t[1] || (t[1] = (...o) => n.onStarterKeydown && n.onStarterKeydown(...o))
2690
- }, null, 40, Pn), [
2691
- [ee, i.starterText]
2692
- ]),
2693
- l("button", {
2694
- type: "submit",
2695
- class: R(["wm-onb__starter-send", { "is-empty": !n.canStart }]),
2696
- disabled: s.busy || !n.canStart,
2697
- "aria-label": n.t("composer.send")
2698
- }, [
2699
- s.busy ? (c(), d("span", Fn)) : (c(), d("svg", Dn, [...t[6] || (t[6] = [
2700
- l("path", { d: "M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z" }, null, -1)
2701
- ])]))
2702
- ], 10, Un)
2703
- ], 34),
2704
- (c(!0), d(I, null, F(s.quickLinks, (o, f) => (c(), d("button", {
2686
+ l("div", En, [
2687
+ (c(!0), d(I, null, D(s.quickLinks, (o, f) => (c(), d("button", {
2705
2688
  key: "ql-" + f,
2706
2689
  type: "button",
2707
2690
  class: "wm-onb__btn",
2708
2691
  onClick: (k) => e.$emit("select", o)
2709
2692
  }, [
2710
- l("span", Hn, [
2693
+ l("span", Fn, [
2711
2694
  n.safeIconUrl(o) ? (c(), d("span", {
2712
2695
  key: 0,
2713
2696
  class: "wm-onb__btn-iconImg",
2714
2697
  style: N(n.iconUrlStyle(o)),
2715
2698
  role: "img",
2716
2699
  "aria-label": o.label || ""
2717
- }, null, 12, jn)) : (c(), d("svg", zn, [
2700
+ }, null, 12, Un)) : (c(), d("svg", Dn, [
2718
2701
  l("path", {
2719
2702
  d: n.iconPath(o.icon)
2720
- }, null, 8, qn)
2703
+ }, null, 8, Nn)
2721
2704
  ]))
2722
2705
  ]),
2723
- l("span", Vn, y(o.label), 1),
2724
- n.isExternalLink(o) ? (c(), d("svg", Kn, [...t[7] || (t[7] = [
2706
+ l("span", Hn, y(o.label), 1),
2707
+ n.isExternalLink(o) ? (c(), d("svg", jn, [...t[8] || (t[8] = [
2725
2708
  l("path", { d: "M7 17L17 7M9 7h8v8" }, null, -1)
2726
2709
  ])])) : b("", !0)
2727
- ], 8, Nn))), 128)),
2710
+ ], 8, Pn))), 128)),
2728
2711
  s.openThreads.length ? (c(), d("button", {
2729
2712
  key: 0,
2730
2713
  type: "button",
2731
2714
  class: "wm-onb__btn",
2732
- onClick: t[3] || (t[3] = (o) => e.$emit("view-history"))
2715
+ onClick: t[0] || (t[0] = (o) => e.$emit("view-history"))
2733
2716
  }, [
2734
- l("span", Wn, [
2735
- (c(), d("svg", $n, [
2717
+ l("span", zn, [
2718
+ (c(), d("svg", qn, [
2736
2719
  l("path", {
2737
2720
  d: n.iconPath("chat")
2738
- }, null, 8, Gn)
2721
+ }, null, 8, Vn)
2739
2722
  ]))
2740
2723
  ]),
2741
- l("span", Yn, y(n.t("onboarding.allConversations")), 1),
2742
- l("span", Jn, y(s.openThreads.length), 1),
2743
- t[8] || (t[8] = l("svg", {
2724
+ l("span", Kn, y(n.t("onboarding.allConversations")), 1),
2725
+ l("span", Wn, y(s.openThreads.length), 1),
2726
+ t[9] || (t[9] = l("svg", {
2744
2727
  class: "wm-onb__btn-trail",
2745
2728
  width: "13",
2746
2729
  height: "13",
@@ -2754,11 +2737,46 @@ function Xn(e, t, s, r, i, n) {
2754
2737
  }, [
2755
2738
  l("path", { d: "M9 18l6-6-6-6" })
2756
2739
  ], -1))
2757
- ])) : b("", !0)
2740
+ ])) : b("", !0),
2741
+ l("form", {
2742
+ ref: "starterForm",
2743
+ class: R(["wm-onb__starter", {
2744
+ "is-active": !!i.starterText.trim(),
2745
+ "is-expanded": i.inputFocused,
2746
+ "wm-onb__starter--toBottom": i.launchPhase === "slide"
2747
+ }]),
2748
+ onSubmit: t[5] || (t[5] = G((...o) => n.submitStarter && n.submitStarter(...o), ["prevent"]))
2749
+ }, [
2750
+ $(l("textarea", {
2751
+ ref: "starterInput",
2752
+ "onUpdate:modelValue": t[1] || (t[1] = (o) => i.starterText = o),
2753
+ class: "wm-onb__starter-input",
2754
+ rows: "1",
2755
+ placeholder: n.t("onboarding.starterPlaceholder"),
2756
+ disabled: s.busy,
2757
+ "aria-label": n.t("onboarding.start"),
2758
+ enterkeyhint: "send",
2759
+ onKeydown: t[2] || (t[2] = (...o) => n.onStarterKeydown && n.onStarterKeydown(...o)),
2760
+ onFocus: t[3] || (t[3] = (...o) => n.onInputFocus && n.onInputFocus(...o)),
2761
+ onBlur: t[4] || (t[4] = (...o) => n.onInputBlur && n.onInputBlur(...o))
2762
+ }, null, 40, $n), [
2763
+ [ee, i.starterText]
2764
+ ]),
2765
+ l("button", {
2766
+ type: "submit",
2767
+ class: R(["wm-onb__starter-send", { "is-empty": !n.canStart }]),
2768
+ disabled: s.busy || !n.canStart,
2769
+ "aria-label": n.t("composer.send")
2770
+ }, [
2771
+ s.busy ? (c(), d("span", Jn)) : (c(), d("svg", Yn, [...t[10] || (t[10] = [
2772
+ l("path", { d: "M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z" }, null, -1)
2773
+ ])]))
2774
+ ], 10, Gn)
2775
+ ], 34)
2758
2776
  ])
2759
2777
  ], 2);
2760
2778
  }
2761
- const Qn = /* @__PURE__ */ U(gn, [["render", Xn], ["__scopeId", "data-v-ca5a71a9"]]), Zn = {
2779
+ const Qn = /* @__PURE__ */ F(gn, [["render", Xn], ["__scopeId", "data-v-3e6686e2"]]), Zn = {
2762
2780
  name: "WmHistory",
2763
2781
  components: { AIAvatar: me, HumanAvatar: ye },
2764
2782
  inject: {
@@ -2865,7 +2883,7 @@ function ms(e, t, s, r, i, n) {
2865
2883
  ])
2866
2884
  ]),
2867
2885
  l("div", ss, [
2868
- (c(!0), d(I, null, F(n.filteredThreads, (a) => (c(), d("button", {
2886
+ (c(!0), d(I, null, D(n.filteredThreads, (a) => (c(), d("button", {
2869
2887
  key: a.id,
2870
2888
  type: "button",
2871
2889
  class: R(["wm-hist__thread", { "wm-hist__thread--unread": a.unread }]),
@@ -2888,7 +2906,7 @@ function ms(e, t, s, r, i, n) {
2888
2906
  }, [
2889
2907
  l("path", { d: "M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z" })
2890
2908
  ], -1)
2891
- ])])) : (c(), B(Te(n.avatarComponent(a)), je({
2909
+ ])])) : (c(), E(Te(n.avatarComponent(a)), je({
2892
2910
  key: 1,
2893
2911
  ref_for: !0
2894
2912
  }, n.avatarProps(a)), null, 16)),
@@ -2927,7 +2945,7 @@ function ms(e, t, s, r, i, n) {
2927
2945
  ])
2928
2946
  ]);
2929
2947
  }
2930
- const fs = /* @__PURE__ */ U(Zn, [["render", ms], ["__scopeId", "data-v-6bf35ef1"]]);
2948
+ const fs = /* @__PURE__ */ F(Zn, [["render", ms], ["__scopeId", "data-v-6bf35ef1"]]);
2931
2949
  function _s(e) {
2932
2950
  return typeof e != "string" ? "" : e.replace(/`([^`]+)`/g, "$1").replace(/\*\*([^*]+)\*\*/g, "$1").replace(new RegExp("(?<!\\*)\\*([^*]+)\\*(?!\\*)", "g"), "$1").replace(/__([^_]+)__/g, "$1").replace(/\[([^\]]+)\]\([^)]+\)/g, "$1").replace(/\s+/g, " ").trim();
2933
2951
  }
@@ -3032,7 +3050,7 @@ function Ss(e, t, s, r, i, n) {
3032
3050
  ])
3033
3051
  ], 2);
3034
3052
  }
3035
- const Ts = /* @__PURE__ */ U(gs, [["render", Ss], ["__scopeId", "data-v-7284acd0"]]), Ms = {
3053
+ const Ts = /* @__PURE__ */ F(gs, [["render", Ss], ["__scopeId", "data-v-7284acd0"]]), Ms = {
3036
3054
  name: "WmArtifactFormResponse",
3037
3055
  inject: {
3038
3056
  // Translator shared by the Messenger shell; French fallback when
@@ -3048,8 +3066,8 @@ const Ts = /* @__PURE__ */ U(gs, [["render", Ss], ["__scopeId", "data-v-7284acd0
3048
3066
  return Array.isArray((e = this.data) == null ? void 0 : e.fields) ? this.data.fields : [];
3049
3067
  }
3050
3068
  }
3051
- }, xs = { class: "wm-art wm-art--formResponse" }, Os = { class: "wm-art__head" }, Rs = { class: "wm-art__title" }, Ls = { class: "wm-art__badge wm-art__badge--success" }, Es = { class: "wm-art__body" }, Is = { class: "wm-art__fieldLabel" };
3052
- function Bs(e, t, s, r, i, n) {
3069
+ }, xs = { class: "wm-art wm-art--formResponse" }, Os = { class: "wm-art__head" }, Rs = { class: "wm-art__title" }, Ls = { class: "wm-art__badge wm-art__badge--success" }, Bs = { class: "wm-art__body" }, Is = { class: "wm-art__fieldLabel" };
3070
+ function Es(e, t, s, r, i, n) {
3053
3071
  return c(), d("div", xs, [
3054
3072
  l("div", Os, [
3055
3073
  l("div", Rs, y(s.data.title || n.t("form.title")), 1),
@@ -3070,8 +3088,8 @@ function Bs(e, t, s, r, i, n) {
3070
3088
  Me(" " + y(n.t("form.sent")), 1)
3071
3089
  ])
3072
3090
  ]),
3073
- l("div", Es, [
3074
- (c(!0), d(I, null, F(n.fields, (a, o) => (c(), d("div", {
3091
+ l("div", Bs, [
3092
+ (c(!0), d(I, null, D(n.fields, (a, o) => (c(), d("div", {
3075
3093
  key: o,
3076
3094
  class: "wm-art__field"
3077
3095
  }, [
@@ -3086,7 +3104,7 @@ function Bs(e, t, s, r, i, n) {
3086
3104
  ])
3087
3105
  ]);
3088
3106
  }
3089
- const Ps = /* @__PURE__ */ U(Ms, [["render", Bs], ["__scopeId", "data-v-713aecf1"]]), Us = {
3107
+ const Ps = /* @__PURE__ */ F(Ms, [["render", Es], ["__scopeId", "data-v-713aecf1"]]), Fs = {
3090
3108
  name: "WmArtifactInfoCard",
3091
3109
  props: {
3092
3110
  data: { type: Object, required: !0 }
@@ -3101,7 +3119,7 @@ const Ps = /* @__PURE__ */ U(Ms, [["render", Bs], ["__scopeId", "data-v-713aecf1
3101
3119
  return !!((e = this.data) != null && e.body) || this.fields.length > 0;
3102
3120
  }
3103
3121
  }
3104
- }, Ds = { class: "wm-art wm-art--infoCard" }, Fs = {
3122
+ }, Us = { class: "wm-art wm-art--infoCard" }, Ds = {
3105
3123
  key: 0,
3106
3124
  class: "wm-art__image"
3107
3125
  }, Ns = ["src", "alt"], Hs = { class: "wm-art__head" }, js = { class: "wm-art__headMain" }, zs = { class: "wm-art__title" }, qs = {
@@ -3115,8 +3133,8 @@ const Ps = /* @__PURE__ */ U(Ms, [["render", Bs], ["__scopeId", "data-v-713aecf1
3115
3133
  class: "wm-art__text"
3116
3134
  }, Ws = { class: "wm-art__fieldLabel" };
3117
3135
  function $s(e, t, s, r, i, n) {
3118
- return c(), d("div", Ds, [
3119
- s.data.image_url ? (c(), d("figure", Fs, [
3136
+ return c(), d("div", Us, [
3137
+ s.data.image_url ? (c(), d("figure", Ds, [
3120
3138
  l("img", {
3121
3139
  src: s.data.image_url,
3122
3140
  alt: s.data.title || "",
@@ -3138,7 +3156,7 @@ function $s(e, t, s, r, i, n) {
3138
3156
  ]),
3139
3157
  n.hasBody ? (c(), d("div", Vs, [
3140
3158
  s.data.body ? (c(), d("div", Ks, y(s.data.body), 1)) : b("", !0),
3141
- n.fields.length ? (c(!0), d(I, { key: 1 }, F(n.fields, (a, o) => (c(), d("div", {
3159
+ n.fields.length ? (c(!0), d(I, { key: 1 }, D(n.fields, (a, o) => (c(), d("div", {
3142
3160
  key: o,
3143
3161
  class: "wm-art__field"
3144
3162
  }, [
@@ -3153,7 +3171,7 @@ function $s(e, t, s, r, i, n) {
3153
3171
  ])) : b("", !0)
3154
3172
  ]);
3155
3173
  }
3156
- const Gs = /* @__PURE__ */ U(Us, [["render", $s], ["__scopeId", "data-v-7eae0e4a"]]);
3174
+ const Gs = /* @__PURE__ */ F(Fs, [["render", $s], ["__scopeId", "data-v-7eae0e4a"]]);
3157
3175
  function Ys(e, t, s) {
3158
3176
  if (!e) return "";
3159
3177
  const r = new Date(e);
@@ -3275,7 +3293,7 @@ function lr(e, t, s, r, i, n) {
3275
3293
  s.data.body ? (c(), d("div", nr, y(s.data.body), 1)) : b("", !0)
3276
3294
  ]),
3277
3295
  n.fields.length ? (c(), d("div", sr, [
3278
- (c(!0), d(I, null, F(n.fields, (a, o) => (c(), d("div", {
3296
+ (c(!0), d(I, null, D(n.fields, (a, o) => (c(), d("div", {
3279
3297
  key: o,
3280
3298
  class: "wm-art__field"
3281
3299
  }, [
@@ -3355,7 +3373,7 @@ function lr(e, t, s, r, i, n) {
3355
3373
  ])) : b("", !0)
3356
3374
  ]);
3357
3375
  }
3358
- const cr = /* @__PURE__ */ U(Js, [["render", lr], ["__scopeId", "data-v-5f30c914"]]), dr = {
3376
+ const cr = /* @__PURE__ */ F(Js, [["render", lr], ["__scopeId", "data-v-5f30c914"]]), dr = {
3359
3377
  form_response: Ps,
3360
3378
  info_card: Gs,
3361
3379
  ticket: cr
@@ -3375,12 +3393,12 @@ const cr = /* @__PURE__ */ U(Js, [["render", lr], ["__scopeId", "data-v-5f30c914
3375
3393
  }
3376
3394
  };
3377
3395
  function hr(e, t, s, r, i, n) {
3378
- return n.component ? (c(), B(Te(n.component), {
3396
+ return n.component ? (c(), E(Te(n.component), {
3379
3397
  key: 0,
3380
3398
  data: s.artifact.data
3381
3399
  }, null, 8, ["data"])) : b("", !0);
3382
3400
  }
3383
- const mr = /* @__PURE__ */ U(ur, [["render", hr]]), fr = {
3401
+ const mr = /* @__PURE__ */ F(ur, [["render", hr]]), fr = {
3384
3402
  name: "WmAttachmentPreview",
3385
3403
  inject: {
3386
3404
  signAttachmentFn: { default: null },
@@ -3516,7 +3534,7 @@ function Ar(e, t, s, r, i, n) {
3516
3534
  ], 8, pr))
3517
3535
  ], 2);
3518
3536
  }
3519
- const Sr = /* @__PURE__ */ U(fr, [["render", Ar], ["__scopeId", "data-v-b207a8bd"]]), Tr = {
3537
+ const Sr = /* @__PURE__ */ F(fr, [["render", Ar], ["__scopeId", "data-v-b207a8bd"]]), Tr = {
3520
3538
  name: "WmBubble",
3521
3539
  props: {
3522
3540
  role: { type: String, default: "ai" },
@@ -3538,19 +3556,19 @@ function xr(e, t, s, r, i, n) {
3538
3556
  ], !0)
3539
3557
  ], 2);
3540
3558
  }
3541
- const Or = /* @__PURE__ */ U(Tr, [["render", xr], ["__scopeId", "data-v-7ab13147"]]), Rr = { name: "WmTyping" }, Lr = { class: "wm-typing" };
3542
- function Er(e, t, s, r, i, n) {
3559
+ const Or = /* @__PURE__ */ F(Tr, [["render", xr], ["__scopeId", "data-v-7ab13147"]]), Rr = { name: "WmTyping" }, Lr = { class: "wm-typing" };
3560
+ function Br(e, t, s, r, i, n) {
3543
3561
  return c(), d("div", Lr, [...t[0] || (t[0] = [
3544
3562
  l("span", { style: { "animation-delay": "0s" } }, null, -1),
3545
3563
  l("span", { style: { "animation-delay": "0.2s" } }, null, -1),
3546
3564
  l("span", { style: { "animation-delay": "0.4s" } }, null, -1)
3547
3565
  ])]);
3548
3566
  }
3549
- const Ir = /* @__PURE__ */ U(Rr, [["render", Er], ["__scopeId", "data-v-df2447fd"]]);
3567
+ const Ir = /* @__PURE__ */ F(Rr, [["render", Br], ["__scopeId", "data-v-df2447fd"]]);
3550
3568
  function se(e) {
3551
3569
  return e ? e.client_msg_id || e.id : "";
3552
3570
  }
3553
- const Br = {
3571
+ const Er = {
3554
3572
  transferred_to_human: "system.transferredToHuman",
3555
3573
  assigned: "system.assigned",
3556
3574
  unassigned: "system.unassigned",
@@ -3558,7 +3576,7 @@ const Br = {
3558
3576
  closed: "system.closed",
3559
3577
  reopened: "system.reopened",
3560
3578
  idle: "system.idle"
3561
- }, Pr = 80, Ur = 200, Dr = {
3579
+ }, Pr = 80, Fr = 200, Ur = {
3562
3580
  name: "WmMessageList",
3563
3581
  components: {
3564
3582
  AIAvatar: me,
@@ -3762,7 +3780,7 @@ const Br = {
3762
3780
  },
3763
3781
  onScroll() {
3764
3782
  const e = this.$refs.scrollEl;
3765
- e && (this.showScrollDown = !this.isAtBottom(e), !(this.loadingMore || !this.hasMore) && (this._pendingLoadMore || e.scrollTop <= Ur && (this._pendingLoadMore = !0, this.$emit("load-more"))));
3783
+ e && (this.showScrollDown = !this.isAtBottom(e), !(this.loadingMore || !this.hasMore) && (this._pendingLoadMore || e.scrollTop <= Fr && (this._pendingLoadMore = !0, this.$emit("load-more"))));
3766
3784
  },
3767
3785
  // Capture pre-patch scroll state and restore it on the next tick.
3768
3786
  //
@@ -3963,9 +3981,9 @@ const Br = {
3963
3981
  // doit garder son arrondi.
3964
3982
  cornersFor(e, t) {
3965
3983
  var ie, ae, X;
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, 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 };
3984
+ 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)], B = 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";
3985
+ let U = o, x = o, q = o, J = o;
3986
+ return a ? (k && (x = f), (v || !n) && (q = f), k && M(B, k, r == null ? void 0 : r.top) && (U = f), v && M(S, v, r == null ? void 0 : r.bottom) && (J = f)) : (k && (U = f), (v || !n) && (J = f), k && M(B, k, r == null ? void 0 : r.top) && (x = f), v && M(S, v, r == null ? void 0 : r.bottom) && (q = f)), { tl: U, tr: x, br: q, bl: J };
3969
3987
  },
3970
3988
  // Inline column-count for the mosaic grid, capped at 4. Single
3971
3989
  // attachment falls back to the vertical-list layout (null). Two
@@ -4132,7 +4150,7 @@ const Br = {
4132
4150
  },
4133
4151
  systemLabel(e) {
4134
4152
  var i, n, a;
4135
- const t = (i = e == null ? void 0 : e.payload) == null ? void 0 : i.event, s = Br[t], r = ((n = e == null ? void 0 : e.metadata) == null ? void 0 : n.agent_name) || ((a = e == null ? void 0 : e.author) == null ? void 0 : a.name) || this.t("messageList.anAgent");
4153
+ const t = (i = e == null ? void 0 : e.payload) == null ? void 0 : i.event, s = Er[t], r = ((n = e == null ? void 0 : e.metadata) == null ? void 0 : n.agent_name) || ((a = e == null ? void 0 : e.author) == null ? void 0 : a.name) || this.t("messageList.anAgent");
4136
4154
  return s ? this.t(s, { name: r }) : (e == null ? void 0 : e.text_md) || this.t("messageList.conversationUpdate");
4137
4155
  },
4138
4156
  scrollToBottom() {
@@ -4164,7 +4182,7 @@ const Br = {
4164
4182
  e && (typeof e.scrollTo == "function" ? e.scrollTo({ top: e.scrollHeight, behavior: "smooth" }) : e.scrollTop = e.scrollHeight, this.showScrollDown = !1);
4165
4183
  }
4166
4184
  }
4167
- }, Fr = { class: "wm-list__wrap" }, Nr = {
4185
+ }, Dr = { class: "wm-list__wrap" }, Nr = {
4168
4186
  key: 0,
4169
4187
  class: "wm-list__loadMore",
4170
4188
  role: "status",
@@ -4195,8 +4213,8 @@ const Br = {
4195
4213
  class: "wm-list__row wm-list__row--ai fade-up"
4196
4214
  }, si = { class: "wm-list__avatarSlot" }, ri = ["aria-label", "title"];
4197
4215
  function ii(e, t, s, r, i, n) {
4198
- const a = P("AIAvatar"), o = P("HumanAvatar"), f = P("ActionResult"), k = P("ArtifactRenderer"), v = P("Bubble"), T = P("AttachmentPreview"), E = P("Typing");
4199
- return c(), d("div", Fr, [
4216
+ const a = P("AIAvatar"), o = P("HumanAvatar"), f = P("ActionResult"), k = P("ArtifactRenderer"), v = P("Bubble"), T = P("AttachmentPreview"), B = P("Typing");
4217
+ return c(), d("div", Dr, [
4200
4218
  l("div", {
4201
4219
  ref: "scrollEl",
4202
4220
  class: R(["wm-list", { "wm-list--silent": i.silentFades }]),
@@ -4214,7 +4232,7 @@ function ii(e, t, s, r, i, n) {
4214
4232
  l("span", qr, y(s.dateLabel), 1),
4215
4233
  t[8] || (t[8] = l("div", { class: "wm-list__line" }, null, -1))
4216
4234
  ])) : b("", !0),
4217
- (c(!0), d(I, null, F(n.groups, (S, z) => (c(), d(I, {
4235
+ (c(!0), d(I, null, D(n.groups, (S, z) => (c(), d(I, {
4218
4236
  key: S.key
4219
4237
  }, [
4220
4238
  S.key === n.unreadGroupKey ? (c(), d("div", Vr, [
@@ -4231,7 +4249,7 @@ function ii(e, t, s, r, i, n) {
4231
4249
  l("span", $r, y(S.systemLabel), 1),
4232
4250
  t[12] || (t[12] = l("div", { class: "wm-list__line wm-list__line--strong" }, null, -1))
4233
4251
  ])) : (c(), d(I, { key: 1 }, [
4234
- (c(!0), d(I, null, F(S.items, (M, D) => (c(), d(I, {
4252
+ (c(!0), d(I, null, D(S.items, (M, U) => (c(), d(I, {
4235
4253
  key: `${n.messageKey(M.message)}-${M.partKey}`
4236
4254
  }, [
4237
4255
  l("div", {
@@ -4243,7 +4261,7 @@ function ii(e, t, s, r, i, n) {
4243
4261
  "is-failed": M.message._failed
4244
4262
  }
4245
4263
  ]]),
4246
- style: N(n.cornersStyle(S, D)),
4264
+ style: N(n.cornersStyle(S, U)),
4247
4265
  onPointerdown: (x) => n.onPressStart(`${n.messageKey(M.message)}-${M.partKey}`),
4248
4266
  onPointerup: t[0] || (t[0] = (x) => n.onPressEnd()),
4249
4267
  onPointercancel: t[1] || (t[1] = (x) => n.onPressEnd()),
@@ -4252,14 +4270,14 @@ function ii(e, t, s, r, i, n) {
4252
4270
  }, ["prevent"]))
4253
4271
  }, [
4254
4272
  S.role !== "user" ? (c(), d("div", Yr, [
4255
- D === S.items.length - 1 ? (c(), d(I, { key: 0 }, [
4256
- S.role === "ai" ? (c(), B(a, {
4273
+ U === S.items.length - 1 ? (c(), d(I, { key: 0 }, [
4274
+ S.role === "ai" ? (c(), E(a, {
4257
4275
  key: 0,
4258
4276
  size: 26,
4259
4277
  tail: !0,
4260
4278
  name: s.aiAgentName,
4261
4279
  "image-url": s.aiAgentAvatarUrl
4262
- }, null, 8, ["name", "image-url"])) : (c(), B(o, {
4280
+ }, null, 8, ["name", "image-url"])) : (c(), E(o, {
4263
4281
  key: 1,
4264
4282
  name: S.agentName,
4265
4283
  "avatar-url": S.agentAvatarUrl,
@@ -4268,20 +4286,20 @@ function ii(e, t, s, r, i, n) {
4268
4286
  }, null, 8, ["name", "avatar-url"]))
4269
4287
  ], 64)) : b("", !0)
4270
4288
  ])) : b("", !0),
4271
- M.renderAs === "action" ? (c(), B(f, {
4289
+ M.renderAs === "action" ? (c(), E(f, {
4272
4290
  key: 1,
4273
4291
  state: M.message.payload.state,
4274
4292
  label: n.actionLabel(M.message),
4275
4293
  detail: n.actionDetail(M.message)
4276
- }, null, 8, ["state", "label", "detail"])) : M.renderAs === "admin-pending" ? (c(), B(f, {
4294
+ }, null, 8, ["state", "label", "detail"])) : M.renderAs === "admin-pending" ? (c(), E(f, {
4277
4295
  key: 2,
4278
4296
  state: "awaiting",
4279
4297
  label: n.t("messageList.approvalRequestSent"),
4280
4298
  detail: M.message.text_md || ""
4281
- }, null, 8, ["label", "detail"])) : M.renderAs === "artifact-of-action" ? (c(), B(k, {
4299
+ }, null, 8, ["label", "detail"])) : M.renderAs === "artifact-of-action" ? (c(), E(k, {
4282
4300
  key: 3,
4283
4301
  artifact: n.actionArtifact(M.message)
4284
- }, null, 8, ["artifact"])) : M.renderAs === "artifact" ? (c(), B(k, {
4302
+ }, null, 8, ["artifact"])) : M.renderAs === "artifact" ? (c(), E(k, {
4285
4303
  key: 4,
4286
4304
  artifact: n.artifactOf(M.message)
4287
4305
  }, null, 8, ["artifact"])) : (c(), d("div", {
@@ -4290,7 +4308,7 @@ function ii(e, t, s, r, i, n) {
4290
4308
  "wm-list__body--mixed": !!M.message.text_md && n.attachmentsOf(M.message).length > 0
4291
4309
  }])
4292
4310
  }, [
4293
- M.message.text_md ? (c(), B(v, {
4311
+ M.message.text_md ? (c(), E(v, {
4294
4312
  key: 0,
4295
4313
  role: S.role,
4296
4314
  text: M.message.text_md
@@ -4307,9 +4325,9 @@ function ii(e, t, s, r, i, n) {
4307
4325
  )
4308
4326
  )
4309
4327
  }, [
4310
- (c(!0), d(I, null, F(n.attachmentsOf(
4328
+ (c(!0), d(I, null, D(n.attachmentsOf(
4311
4329
  M.message
4312
- ), (x, q) => (c(), B(T, {
4330
+ ), (x, q) => (c(), E(T, {
4313
4331
  key: `${n.messageKey(M.message)}-att-${q}`,
4314
4332
  attachment: x,
4315
4333
  style: N(
@@ -4323,7 +4341,7 @@ function ii(e, t, s, r, i, n) {
4323
4341
  ], 6)) : b("", !0)
4324
4342
  ], 2))
4325
4343
  ], 46, Gr),
4326
- D < S.items.length - 1 && i.pressedItemKey === `${n.messageKey(M.message)}-${M.partKey}` && (S.role !== "user" || n.timeOf(M.message)) ? (c(), d("div", {
4344
+ U < S.items.length - 1 && i.pressedItemKey === `${n.messageKey(M.message)}-${M.partKey}` && (S.role !== "user" || n.timeOf(M.message)) ? (c(), d("div", {
4327
4345
  key: 0,
4328
4346
  class: R(["wm-list__meta wm-list__meta--press", { "wm-list__meta--right": S.role === "user" }])
4329
4347
  }, [
@@ -4352,7 +4370,7 @@ function ii(e, t, s, r, i, n) {
4352
4370
  "image-url": s.aiAgentAvatarUrl
4353
4371
  }, null, 8, ["name", "image-url"])
4354
4372
  ]),
4355
- K(E)
4373
+ K(B)
4356
4374
  ])) : b("", !0)
4357
4375
  ], 34),
4358
4376
  K(Ae, { name: "wm-scrollDown" }, {
@@ -4384,7 +4402,7 @@ function ii(e, t, s, r, i, n) {
4384
4402
  })
4385
4403
  ]);
4386
4404
  }
4387
- const ai = /* @__PURE__ */ U(Dr, [["render", ii], ["__scopeId", "data-v-94a2b136"]]), ge = typeof navigator < "u" && !!navigator.mediaDevices && typeof navigator.mediaDevices.getDisplayMedia == "function", Le = typeof window < "u" && typeof window.MediaRecorder < "u";
4405
+ const ai = /* @__PURE__ */ F(Ur, [["render", ii], ["__scopeId", "data-v-94a2b136"]]), ge = typeof navigator < "u" && !!navigator.mediaDevices && typeof navigator.mediaDevices.getDisplayMedia == "function", Le = typeof window < "u" && typeof window.MediaRecorder < "u";
4388
4406
  function oi() {
4389
4407
  return Le && [
4390
4408
  "video/webm;codecs=vp9,opus",
@@ -4467,13 +4485,13 @@ async function di(e = {}) {
4467
4485
  v.data && v.data.size > 0 && i.push(v.data);
4468
4486
  }), r.addEventListener("stop", () => {
4469
4487
  var v, T;
4470
- if (n && clearInterval(n), t.getTracks().forEach((E) => {
4471
- E.stop();
4488
+ if (n && clearInterval(n), t.getTracks().forEach((B) => {
4489
+ B.stop();
4472
4490
  }), i.length) {
4473
- const E = r.mimeType || s || "video/webm", S = new Blob(i, { type: E }), z = /mp4/.test(E) ? "mp4" : "webm", M = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-").slice(0, 19), D = new File([S], `ecran-${M}.${z}`, {
4474
- type: E
4491
+ const B = r.mimeType || s || "video/webm", S = new Blob(i, { type: B }), z = /mp4/.test(B) ? "mp4" : "webm", M = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-").slice(0, 19), U = new File([S], `ecran-${M}.${z}`, {
4492
+ type: B
4475
4493
  });
4476
- (v = e.onfinalize) == null || v.call(e, D);
4494
+ (v = e.onfinalize) == null || v.call(e, U);
4477
4495
  } else
4478
4496
  (T = e.oncancel) == null || T.call(e);
4479
4497
  }), t.getVideoTracks().forEach((v) => {
@@ -4538,10 +4556,11 @@ const ui = [
4538
4556
  // visualViewport-based keyboard tracking (mobile fullscreen mode).
4539
4557
  displayMode: { type: String, default: "floating" }
4540
4558
  },
4541
- emits: ["update:modelValue", "send", "attach"],
4559
+ emits: ["update:modelValue", "send", "attach", "focus", "blur"],
4542
4560
  data() {
4543
4561
  return {
4544
4562
  local: this.modelValue,
4563
+ focused: !1,
4545
4564
  attachOpen: !1,
4546
4565
  recording: !1,
4547
4566
  recordingElapsed: 0,
@@ -4555,6 +4574,13 @@ const ui = [
4555
4574
  canSend() {
4556
4575
  return !this.disabled && !!this.local.trim();
4557
4576
  },
4577
+ // Resting composer is a single light line; it expands to the full
4578
+ // multiline shape (taller input + the attach button revealed above
4579
+ // send) while focused or once it holds text. Pending attachments or
4580
+ // an open attach menu also force the expanded shape.
4581
+ expanded() {
4582
+ return this.focused || !!this.local.trim() || this.attachOpen || this.recording;
4583
+ },
4558
4584
  attachItems() {
4559
4585
  return ui.map((e) => ({
4560
4586
  ...e,
@@ -4599,6 +4625,16 @@ const ui = [
4599
4625
  e.focus();
4600
4626
  }
4601
4627
  },
4628
+ // Focus/blur drive the rest↔expanded morph (and let the host —
4629
+ // e.g. the onboarding screen — react, tucking its content away while
4630
+ // the composer is open). Re-running autosize keeps the textarea
4631
+ // height honest as `min-height` changes between the two states.
4632
+ onFocus() {
4633
+ this.focused = !0, this.$emit("focus"), this.$nextTick(() => this.autosize());
4634
+ },
4635
+ onBlur() {
4636
+ this.focused = !1, this.$emit("blur"), this.$nextTick(() => this.autosize());
4637
+ },
4602
4638
  onSubmit() {
4603
4639
  if (!this.canSend) return;
4604
4640
  const e = this.local.trim();
@@ -4697,7 +4733,7 @@ function Ai(e, t, s, r, i, n) {
4697
4733
  style: N(i.kbOffset ? { transform: `translateY(-${i.kbOffset}px)` } : null)
4698
4734
  }, [
4699
4735
  i.recording ? (c(), d("div", mi, [
4700
- t[8] || (t[8] = l("span", {
4736
+ t[10] || (t[10] = l("span", {
4701
4737
  class: "wm-rec__dot",
4702
4738
  "aria-hidden": "true"
4703
4739
  }, null, -1)),
@@ -4709,8 +4745,8 @@ function Ai(e, t, s, r, i, n) {
4709
4745
  }, y(n.t("composer.stop")), 1)
4710
4746
  ])) : b("", !0),
4711
4747
  l("form", {
4712
- class: R(["wm-compose", { "has-attach": i.attachOpen }]),
4713
- onSubmit: t[7] || (t[7] = G((...a) => n.onSubmit && n.onSubmit(...a), ["prevent"]))
4748
+ class: R(["wm-compose", { "has-attach": i.attachOpen, "is-expanded": n.expanded }]),
4749
+ onSubmit: t[9] || (t[9] = G((...a) => n.onSubmit && n.onSubmit(...a), ["prevent"]))
4714
4750
  }, [
4715
4751
  l("input", {
4716
4752
  ref: "fileEl",
@@ -4725,7 +4761,7 @@ function Ai(e, t, s, r, i, n) {
4725
4761
  onClick: t[2] || (t[2] = (a) => i.attachOpen = !1)
4726
4762
  })) : b("", !0),
4727
4763
  i.attachOpen ? (c(), d("div", _i, [
4728
- (c(!0), d(I, null, F(n.attachItems, (a) => (c(), d("button", {
4764
+ (c(!0), d(I, null, D(n.attachItems, (a) => (c(), d("button", {
4729
4765
  key: a.action,
4730
4766
  type: "button",
4731
4767
  class: "wm-compose__menuItem",
@@ -4755,7 +4791,9 @@ function Ai(e, t, s, r, i, n) {
4755
4791
  placeholder: s.placeholder,
4756
4792
  disabled: s.disabled,
4757
4793
  onKeydown: t[4] || (t[4] = (...a) => n.onKeydown && n.onKeydown(...a)),
4758
- onInput: t[5] || (t[5] = (...a) => n.autosize && n.autosize(...a))
4794
+ onInput: t[5] || (t[5] = (...a) => n.autosize && n.autosize(...a)),
4795
+ onFocus: t[6] || (t[6] = (...a) => n.onFocus && n.onFocus(...a)),
4796
+ onBlur: t[7] || (t[7] = (...a) => n.onBlur && n.onBlur(...a))
4759
4797
  }, null, 40, wi), [
4760
4798
  [ee, i.local]
4761
4799
  ]),
@@ -4766,8 +4804,8 @@ function Ai(e, t, s, r, i, n) {
4766
4804
  title: s.attachLabel,
4767
4805
  "aria-label": s.attachLabel,
4768
4806
  disabled: i.recording,
4769
- onClick: t[6] || (t[6] = (a) => i.attachOpen = !i.attachOpen)
4770
- }, [...t[9] || (t[9] = [
4807
+ onClick: t[8] || (t[8] = (a) => i.attachOpen = !i.attachOpen)
4808
+ }, [...t[11] || (t[11] = [
4771
4809
  l("svg", {
4772
4810
  width: "13",
4773
4811
  height: "13",
@@ -4787,7 +4825,7 @@ function Ai(e, t, s, r, i, n) {
4787
4825
  class: R(["wm-compose__send", { "is-empty": !n.canSend }]),
4788
4826
  disabled: !n.canSend,
4789
4827
  "aria-label": n.t("composer.send")
4790
- }, [...t[10] || (t[10] = [
4828
+ }, [...t[12] || (t[12] = [
4791
4829
  l("svg", {
4792
4830
  width: "16",
4793
4831
  height: "16",
@@ -4806,7 +4844,7 @@ function Ai(e, t, s, r, i, n) {
4806
4844
  ], 34)
4807
4845
  ], 6);
4808
4846
  }
4809
- const Si = /* @__PURE__ */ U(hi, [["render", Ai], ["__scopeId", "data-v-2e0e17a9"]]), Ti = {
4847
+ const Si = /* @__PURE__ */ F(hi, [["render", Ai], ["__scopeId", "data-v-f81cec81"]]), Ti = {
4810
4848
  name: "WmInlineCallbacks",
4811
4849
  props: {
4812
4850
  // Array d'items `{ id?, label, style?, ... }`. Pour les suggestions,
@@ -4853,7 +4891,7 @@ function Li(e, t, s, r, i, n) {
4853
4891
  key: n.batchKey,
4854
4892
  class: R(["wm-icb", `wm-icb--${s.variant}`])
4855
4893
  }, [
4856
- s.variant === "chips" ? (c(!0), d(I, { key: 0 }, F(s.items, (a, o) => (c(), d("button", {
4894
+ s.variant === "chips" ? (c(!0), d(I, { key: 0 }, D(s.items, (a, o) => (c(), d("button", {
4857
4895
  key: a.id != null ? a.id : o,
4858
4896
  type: "button",
4859
4897
  class: "wm-icb__btn wm-icb__btn--chip",
@@ -4862,7 +4900,7 @@ function Li(e, t, s, r, i, n) {
4862
4900
  }, y(a.label), 13, Mi))), 128)) : (c(), d(I, { key: 1 }, [
4863
4901
  n.headerTitle ? (c(), d("div", xi, y(n.headerTitle), 1)) : b("", !0),
4864
4902
  l("div", Oi, [
4865
- (c(!0), d(I, null, F(s.items, (a, o) => (c(), d("button", {
4903
+ (c(!0), d(I, null, D(s.items, (a, o) => (c(), d("button", {
4866
4904
  key: a.id != null ? a.id : o,
4867
4905
  type: "button",
4868
4906
  class: R(["wm-icb__btn", n.btnClass(a)]),
@@ -4872,7 +4910,7 @@ function Li(e, t, s, r, i, n) {
4872
4910
  ], 64))
4873
4911
  ], 2)) : b("", !0);
4874
4912
  }
4875
- const Ei = /* @__PURE__ */ U(Ti, [["render", Li], ["__scopeId", "data-v-c8cc8cbf"]]);
4913
+ const Bi = /* @__PURE__ */ F(Ti, [["render", Li], ["__scopeId", "data-v-c8cc8cbf"]]);
4876
4914
  let Ne = 0;
4877
4915
  const Ii = /* @__PURE__ */ new Set([
4878
4916
  "text",
@@ -4882,7 +4920,7 @@ const Ii = /* @__PURE__ */ new Set([
4882
4920
  "select",
4883
4921
  "multiselect",
4884
4922
  "date"
4885
- ]), Bi = {
4923
+ ]), Ei = {
4886
4924
  name: "WmFormCard",
4887
4925
  components: { AIAvatar: me },
4888
4926
  inject: {
@@ -4965,7 +5003,7 @@ const Ii = /* @__PURE__ */ new Set([
4965
5003
  }
4966
5004
  }
4967
5005
  }
4968
- }, Pi = { class: "wm-form" }, Ui = { class: "wm-form__head" }, Di = { class: "wm-form__icon" }, Fi = { class: "wm-form__main" }, Ni = { class: "wm-form__title" }, Hi = {
5006
+ }, Pi = { class: "wm-form" }, Fi = { class: "wm-form__head" }, Ui = { class: "wm-form__icon" }, Di = { class: "wm-form__main" }, Ni = { class: "wm-form__title" }, Hi = {
4969
5007
  key: 0,
4970
5008
  class: "wm-form__detail"
4971
5009
  }, ji = ["for"], zi = {
@@ -4995,15 +5033,15 @@ const Ii = /* @__PURE__ */ new Set([
4995
5033
  function ra(e, t, s, r, i, n) {
4996
5034
  const a = P("AIAvatar");
4997
5035
  return c(), d("div", Pi, [
4998
- l("div", Ui, [
4999
- l("div", Di, [
5036
+ l("div", Fi, [
5037
+ l("div", Ui, [
5000
5038
  K(a, {
5001
5039
  size: 24,
5002
5040
  name: s.agentName,
5003
5041
  "image-url": s.agentAvatarUrl
5004
5042
  }, null, 8, ["name", "image-url"])
5005
5043
  ]),
5006
- l("div", Fi, [
5044
+ l("div", Di, [
5007
5045
  l("div", Ni, y(s.form.title || n.t("form.title")), 1),
5008
5046
  s.form.description ? (c(), d("div", Hi, y(s.form.description), 1)) : b("", !0)
5009
5047
  ])
@@ -5012,7 +5050,7 @@ function ra(e, t, s, r, i, n) {
5012
5050
  class: "wm-form__body",
5013
5051
  onSubmit: t[0] || (t[0] = G((...o) => n.onSubmit && n.onSubmit(...o), ["prevent"]))
5014
5052
  }, [
5015
- (c(!0), d(I, null, F(n.normalizedFields, (o) => (c(), d("div", {
5053
+ (c(!0), d(I, null, D(n.normalizedFields, (o) => (c(), d("div", {
5016
5054
  key: o.key,
5017
5055
  class: "wm-form__field"
5018
5056
  }, [
@@ -5090,14 +5128,14 @@ function ra(e, t, s, r, i, n) {
5090
5128
  disabled: s.readOnly || i.busy
5091
5129
  }, [
5092
5130
  l("option", Ji, y(o.placeholder || n.t("form.choose")), 1),
5093
- (c(!0), d(I, null, F(o.options, (f) => (c(), d("option", {
5131
+ (c(!0), d(I, null, D(o.options, (f) => (c(), d("option", {
5094
5132
  key: f.value,
5095
5133
  value: f.value
5096
5134
  }, y(f.label), 9, Xi))), 128))
5097
5135
  ], 8, Yi)), [
5098
5136
  [Ye, i.values[o.key]]
5099
5137
  ]) : o.type === "multiselect" ? (c(), d("div", Qi, [
5100
- (c(!0), d(I, null, F(o.options, (f) => (c(), d("label", {
5138
+ (c(!0), d(I, null, D(o.options, (f) => (c(), d("label", {
5101
5139
  key: f.value,
5102
5140
  class: "wm-form__multiItem"
5103
5141
  }, [
@@ -5129,7 +5167,7 @@ function ra(e, t, s, r, i, n) {
5129
5167
  ], 32)
5130
5168
  ]);
5131
5169
  }
5132
- const ia = /* @__PURE__ */ U(Bi, [["render", ra], ["__scopeId", "data-v-fe65cc56"]]), aa = {
5170
+ const ia = /* @__PURE__ */ F(Ei, [["render", ra], ["__scopeId", "data-v-fe65cc56"]]), aa = {
5133
5171
  name: "WmFeedback",
5134
5172
  inject: {
5135
5173
  // Translator shared by the Messenger shell; French fallback when
@@ -5191,7 +5229,7 @@ function va(e, t, s, r, i, n) {
5191
5229
  l("div", la, y(n.t("feedback.question")), 1),
5192
5230
  l("div", ca, y(n.t("feedback.subtitle")), 1),
5193
5231
  l("div", da, [
5194
- (c(!0), d(I, null, F(n.options, (a) => (c(), d("button", {
5232
+ (c(!0), d(I, null, D(n.options, (a) => (c(), d("button", {
5195
5233
  key: a.v,
5196
5234
  type: "button",
5197
5235
  class: R(["wm-fb__opt", { "is-selected": i.sel === a.v }]),
@@ -5210,7 +5248,7 @@ function va(e, t, s, r, i, n) {
5210
5248
  ], 64))
5211
5249
  ]);
5212
5250
  }
5213
- const pa = /* @__PURE__ */ U(aa, [["render", va], ["__scopeId", "data-v-9b630564"]]), wa = {
5251
+ const pa = /* @__PURE__ */ F(aa, [["render", va], ["__scopeId", "data-v-9b630564"]]), wa = {
5214
5252
  name: "WmMoreMenu",
5215
5253
  inject: {
5216
5254
  // Translator shared by the Messenger shell; French fallback when
@@ -5255,7 +5293,7 @@ const pa = /* @__PURE__ */ U(aa, [["render", va], ["__scopeId", "data-v-9b630564
5255
5293
  key: 1,
5256
5294
  class: "wm-mm__sep"
5257
5295
  }, Ma = { class: "wm-mm__section" }, xa = { class: "wm-mm__label" }, Oa = { class: "wm-mm__section" }, Ra = { class: "wm-mm__label" }, La = { class: "wm-mm__label" };
5258
- function Ea(e, t, s, r, i, n) {
5296
+ function Ba(e, t, s, r, i, n) {
5259
5297
  return c(), d("div", ba, [
5260
5298
  l("div", {
5261
5299
  class: "wm-mm__scrim",
@@ -5395,7 +5433,7 @@ function Ea(e, t, s, r, i, n) {
5395
5433
  ])
5396
5434
  ]);
5397
5435
  }
5398
- const Ia = /* @__PURE__ */ U(wa, [["render", Ea], ["__scopeId", "data-v-4cf6d578"]]), Ba = {
5436
+ const Ia = /* @__PURE__ */ F(wa, [["render", Ba], ["__scopeId", "data-v-4cf6d578"]]), Ea = {
5399
5437
  name: "WmRenameDialog",
5400
5438
  inject: {
5401
5439
  // Translator shared by the Messenger shell; French fallback when
@@ -5437,20 +5475,20 @@ const Ia = /* @__PURE__ */ U(wa, [["render", Ea], ["__scopeId", "data-v-4cf6d578
5437
5475
  this.canSubmit && this.$emit("submit", this.value.trim());
5438
5476
  }
5439
5477
  }
5440
- }, Pa = { class: "wm-dialog" }, Ua = {
5478
+ }, Pa = { class: "wm-dialog" }, Fa = {
5441
5479
  class: "wm-dialog__card",
5442
5480
  role: "dialog",
5443
5481
  "aria-modal": "true"
5444
- }, Da = { class: "wm-dialog__head" }, Fa = { class: "wm-dialog__title" }, Na = ["aria-label"], Ha = { class: "wm-dialog__body" }, ja = ["placeholder"], za = { class: "wm-dialog__actions" }, qa = ["disabled"];
5482
+ }, Ua = { class: "wm-dialog__head" }, Da = { class: "wm-dialog__title" }, Na = ["aria-label"], Ha = { class: "wm-dialog__body" }, ja = ["placeholder"], za = { class: "wm-dialog__actions" }, qa = ["disabled"];
5445
5483
  function Va(e, t, s, r, i, n) {
5446
5484
  return c(), d("div", Pa, [
5447
5485
  l("div", {
5448
5486
  class: "wm-dialog__scrim",
5449
5487
  onClick: t[0] || (t[0] = (a) => e.$emit("close"))
5450
5488
  }),
5451
- l("div", Ua, [
5452
- l("div", Da, [
5453
- l("div", Fa, y(s.title || n.t("rename.title")), 1),
5489
+ l("div", Fa, [
5490
+ l("div", Ua, [
5491
+ l("div", Da, y(s.title || n.t("rename.title")), 1),
5454
5492
  l("button", {
5455
5493
  type: "button",
5456
5494
  class: "wm-dialog__close",
@@ -5504,7 +5542,7 @@ function Va(e, t, s, r, i, n) {
5504
5542
  ])
5505
5543
  ]);
5506
5544
  }
5507
- const Ka = /* @__PURE__ */ U(Ba, [["render", Va], ["__scopeId", "data-v-6d5f94a8"]]), He = "ww-messenger-tokens", Wa = {
5545
+ const Ka = /* @__PURE__ */ F(Ea, [["render", Va], ["__scopeId", "data-v-6d5f94a8"]]), He = "ww-messenger-tokens", Wa = {
5508
5546
  name: "Messenger",
5509
5547
  components: {
5510
5548
  Launcher: qt,
@@ -5513,7 +5551,7 @@ const Ka = /* @__PURE__ */ U(Ba, [["render", Va], ["__scopeId", "data-v-6d5f94a8
5513
5551
  History: fs,
5514
5552
  MessageList: ai,
5515
5553
  Composer: Si,
5516
- InlineCallbacks: Ei,
5554
+ InlineCallbacks: Bi,
5517
5555
  FormCard: ia,
5518
5556
  Feedback: pa,
5519
5557
  MoreMenu: Ia,
@@ -5752,9 +5790,9 @@ const Ka = /* @__PURE__ */ U(Ba, [["render", Va], ["__scopeId", "data-v-6d5f94a8
5752
5790
  const T = i[v];
5753
5791
  if (!T) continue;
5754
5792
  if (((k = T.author) == null ? void 0 : k.type) === "user") break;
5755
- const E = Y(T.id);
5756
- if (E != null) {
5757
- if (n != null && E <= n) break;
5793
+ const B = Y(T.id);
5794
+ if (B != null) {
5795
+ if (n != null && B <= n) break;
5758
5796
  t[T.id] !== 0 && (!o && T.author && (o = T.author), a++);
5759
5797
  }
5760
5798
  }
@@ -5794,7 +5832,7 @@ const Ka = /* @__PURE__ */ U(Ba, [["render", Va], ["__scopeId", "data-v-6d5f94a8
5794
5832
  preview: s._preview || this.t("onboarding.newMessage"),
5795
5833
  unread: !!s._unread,
5796
5834
  author: s._lastAuthor || null,
5797
- _ts: De(s, e[s.id] || [])
5835
+ _ts: Ue(s, e[s.id] || [])
5798
5836
  })).sort((s, r) => s._ts < r._ts ? 1 : s._ts > r._ts ? -1 : 0);
5799
5837
  },
5800
5838
  // Unread threads (one entry per conv with unseen agent/human
@@ -5806,7 +5844,7 @@ const Ka = /* @__PURE__ */ U(Ba, [["render", Va], ["__scopeId", "data-v-6d5f94a8
5806
5844
  const e = ((s = this.s) == null ? void 0 : s.messagesByConv) || {}, t = [];
5807
5845
  for (const r of this.drawerConversations) {
5808
5846
  if (!r._unread) continue;
5809
- const i = De(r, e[r.id] || []), n = r._lastAuthor, a = !n || n.type === "agent_ia", o = (n == null ? void 0 : n.name) || (a ? this.agentName : "") || "", f = (n == null ? void 0 : n.avatar_url) || (a ? this.agentAvatarUrl : null);
5847
+ const i = Ue(r, e[r.id] || []), n = r._lastAuthor, a = !n || n.type === "agent_ia", o = (n == null ? void 0 : n.name) || (a ? this.agentName : "") || "", f = (n == null ? void 0 : n.avatar_url) || (a ? this.agentAvatarUrl : null);
5810
5848
  t.push({
5811
5849
  convId: r.id,
5812
5850
  preview: r._preview || this.t("notification.youHaveNewMessage"),
@@ -5990,7 +6028,7 @@ const Ka = /* @__PURE__ */ U(Ba, [["render", Va], ["__scopeId", "data-v-6d5f94a8
5990
6028
  }
5991
6029
  const s = this.revealedAt, r = (this.s.messagesByConv[e.id] || []).filter((a) => {
5992
6030
  var o, f, k, v, T;
5993
- return (a == null ? void 0 : a.type) === "action" && ((o = a == null ? void 0 : a.payload) == null ? void 0 : o.state) === "pending" || he(a) && !(s[a.id] > 0) ? !1 : (a == null ? void 0 : a.type) === "action" || (a == null ? void 0 : a.type) === "system" || ((f = a == null ? void 0 : a.payload) == null ? void 0 : f.type) === "system" || Array.isArray((k = a == null ? void 0 : a.payload) == null ? void 0 : k.attachments) && a.payload.attachments.length || (v = a == null ? void 0 : a.metadata) != null && v.artifact || (T = a == null ? void 0 : a.metadata) != null && T.form || Array.isArray(a == null ? void 0 : a.callbacks) && a.callbacks.some((E) => (E == null ? void 0 : E.intent) === "submit_form") ? !0 : typeof (a == null ? void 0 : a.text_md) == "string" && a.text_md.trim().length > 0;
6031
+ return (a == null ? void 0 : a.type) === "action" && ((o = a == null ? void 0 : a.payload) == null ? void 0 : o.state) === "pending" || he(a) && !(s[a.id] > 0) ? !1 : (a == null ? void 0 : a.type) === "action" || (a == null ? void 0 : a.type) === "system" || ((f = a == null ? void 0 : a.payload) == null ? void 0 : f.type) === "system" || Array.isArray((k = a == null ? void 0 : a.payload) == null ? void 0 : k.attachments) && a.payload.attachments.length || (v = a == null ? void 0 : a.metadata) != null && v.artifact || (T = a == null ? void 0 : a.metadata) != null && T.form || Array.isArray(a == null ? void 0 : a.callbacks) && a.callbacks.some((B) => (B == null ? void 0 : B.intent) === "submit_form") ? !0 : typeof (a == null ? void 0 : a.text_md) == "string" && a.text_md.trim().length > 0;
5994
6032
  });
5995
6033
  return t.length ? [...t, ...r] : r;
5996
6034
  },
@@ -6306,12 +6344,12 @@ const Ka = /* @__PURE__ */ U(Ba, [["render", Va], ["__scopeId", "data-v-6d5f94a8
6306
6344
  return;
6307
6345
  }
6308
6346
  try {
6309
- await this.waitForParentInit(), this.transport = Ee(
6347
+ await this.waitForParentInit(), this.transport = Be(
6310
6348
  tt({
6311
6349
  baseUrl: this.baseUrl,
6312
6350
  widgetId: this.widgetId
6313
6351
  })
6314
- ), this.store = Ee(it(this.transport)), this.hydrateNotifPref();
6352
+ ), this.store = Be(it(this.transport)), this.hydrateNotifPref();
6315
6353
  const e = this.parentVariables || this.context || null;
6316
6354
  if (await this.store.start({
6317
6355
  origin: this.parentOrigin,
@@ -6406,13 +6444,13 @@ const Ka = /* @__PURE__ */ U(Ba, [["render", Va], ["__scopeId", "data-v-6d5f94a8
6406
6444
  this.launcherHovered = e, this.sendCurrentLauncherSize();
6407
6445
  },
6408
6446
  sendCurrentLauncherSize() {
6409
- var v, T, E, S, z, M, D;
6447
+ var v, T, B, S, z, M, U;
6410
6448
  if (this.isOpen) return;
6411
6449
  const e = (T = (v = this.$el) == null ? void 0 : v.querySelector) == null ? void 0 : T.call(v, ".wm-launcherWrap");
6412
6450
  if (!e) return;
6413
6451
  const t = e.getBoundingClientRect();
6414
6452
  if (!t.width || !t.height) return;
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;
6453
+ const s = (((B = this.launcherPeeks) == null ? void 0 : B.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 = (U = (M = this.$el) == null ? void 0 : M.querySelectorAll) == null ? void 0 : U.call(M, ".wm-peek"), f = o && o.length ? o[o.length - 1] : null;
6416
6454
  let k = null;
6417
6455
  if (f) {
6418
6456
  const x = f.getBoundingClientRect();
@@ -6860,12 +6898,12 @@ const Ka = /* @__PURE__ */ U(Ba, [["render", Va], ["__scopeId", "data-v-6d5f94a8
6860
6898
  "aria-live": "polite"
6861
6899
  }, fo = { class: "wm-ended__lbl" };
6862
6900
  function _o(e, t, s, r, i, n) {
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");
6901
+ const a = P("Launcher"), o = P("Header"), f = P("History"), k = P("Onboarding"), v = P("MessageList"), T = P("InlineCallbacks"), B = P("FormCard"), S = P("Feedback"), z = P("Composer"), M = P("MoreMenu"), U = P("RenameDialog");
6864
6902
  return c(), d("div", {
6865
6903
  class: R(["wm-root", `wm-root--${s.displayMode}`]),
6866
6904
  style: N(n.rootStyle)
6867
6905
  }, [
6868
- !i.isOpen && !n.isEmbedded ? (c(), B(a, {
6906
+ !i.isOpen && !n.isEmbedded ? (c(), E(a, {
6869
6907
  key: 0,
6870
6908
  "unread-count": n.unreadCount,
6871
6909
  peeks: n.launcherPeeks,
@@ -6952,7 +6990,7 @@ function _o(e, t, s, r, i, n) {
6952
6990
  l("div", Za, y(n.error), 1)
6953
6991
  ])
6954
6992
  ])
6955
- ])) : !n.currentConv && i.showHistory ? (c(), B(f, {
6993
+ ])) : !n.currentConv && i.showHistory ? (c(), E(f, {
6956
6994
  key: "history",
6957
6995
  class: "wm-screen",
6958
6996
  threads: n.openThreads,
@@ -6974,28 +7012,28 @@ function _o(e, t, s, r, i, n) {
6974
7012
  }, 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"]),
6975
7013
  l("div", to, [
6976
7014
  n.floatVisible ? (c(), d("div", no, [
6977
- n.pendingApproval ? (c(), B(T, {
7015
+ n.pendingApproval ? (c(), E(T, {
6978
7016
  key: `appr-${n.pendingApproval.id}`,
6979
7017
  variant: "buttons",
6980
7018
  items: n.approvalCallbacks,
6981
7019
  onSelect: n.onApprovalSelect
6982
- }, null, 8, ["items", "onSelect"])) : n.pendingResolution ? (c(), B(T, {
7020
+ }, null, 8, ["items", "onSelect"])) : n.pendingResolution ? (c(), E(T, {
6983
7021
  key: `res-${n.pendingResolution.id}`,
6984
7022
  variant: "buttons",
6985
7023
  items: n.resolutionCallbacks,
6986
7024
  onSelect: n.onResolutionSelect
6987
- }, null, 8, ["items", "onSelect"])) : n.pendingForm ? (c(), B(E, {
7025
+ }, null, 8, ["items", "onSelect"])) : n.pendingForm ? (c(), E(B, {
6988
7026
  key: n.pendingForm.message && n.pendingForm.message.id,
6989
7027
  form: n.pendingForm.form,
6990
7028
  "agent-name": n.agentName,
6991
7029
  "agent-avatar-url": n.agentAvatarUrl,
6992
7030
  onSubmit: n.onFormSubmit
6993
- }, null, 8, ["form", "agent-name", "agent-avatar-url", "onSubmit"])) : n.showFeedback ? (c(), B(S, {
7031
+ }, null, 8, ["form", "agent-name", "agent-avatar-url", "onSubmit"])) : n.showFeedback ? (c(), E(S, {
6994
7032
  key: 3,
6995
7033
  busy: i.feedbackBusy,
6996
7034
  done: !!(n.currentConv && i.feedbackDone[n.currentConv.id]),
6997
7035
  onSubmit: n.onFeedback
6998
- }, null, 8, ["busy", "done", "onSubmit"])) : (c(), B(T, {
7036
+ }, null, 8, ["busy", "done", "onSubmit"])) : (c(), E(T, {
6999
7037
  key: 4,
7000
7038
  items: n.suggestions,
7001
7039
  onSelect: n.onSuggestion
@@ -7011,7 +7049,7 @@ function _o(e, t, s, r, i, n) {
7011
7049
  })), 1)
7012
7050
  ])) : b("", !0),
7013
7051
  i.pendingAttachments.length ? (c(), d("div", io, [
7014
- (c(!0), d(I, null, F(i.pendingAttachments, (x, q) => (c(), d("div", {
7052
+ (c(!0), d(I, null, D(i.pendingAttachments, (x, q) => (c(), d("div", {
7015
7053
  key: x.path || q,
7016
7054
  class: "wm-attached__item"
7017
7055
  }, [
@@ -7073,7 +7111,7 @@ function _o(e, t, s, r, i, n) {
7073
7111
  class: "wm-ended__btn",
7074
7112
  onClick: t[2] || (t[2] = (x) => n.isClosed ? n.onReopen() : n.startConv())
7075
7113
  }, y(n.isClosed ? n.t("composer.reopen") : n.t("composer.newConversation")), 1)
7076
- ])) : n.actionInFlight ? b("", !0) : (c(), B(z, {
7114
+ ])) : n.actionInFlight ? b("", !0) : (c(), E(z, {
7077
7115
  key: 4,
7078
7116
  ref: "composer",
7079
7117
  modelValue: i.draft,
@@ -7085,7 +7123,7 @@ function _o(e, t, s, r, i, n) {
7085
7123
  onAttach: n.onAttach
7086
7124
  }, null, 8, ["modelValue", "placeholder", "attach-label", "display-mode", "onSend", "onAttach"]))
7087
7125
  ]),
7088
- i.moreOpen ? (c(), B(M, {
7126
+ i.moreOpen ? (c(), E(M, {
7089
7127
  key: 0,
7090
7128
  "can-rename": !!n.currentConv && !n.currentConv._draft,
7091
7129
  "can-export": !!n.currentConv && !n.currentConv._draft,
@@ -7096,14 +7134,14 @@ function _o(e, t, s, r, i, n) {
7096
7134
  onSoundToggle: e.onSoundToggle,
7097
7135
  onAction: n.onMoreAction
7098
7136
  }, null, 8, ["can-rename", "can-export", "sound-enabled", "status-url", "help-url", "onSoundToggle", "onAction"])) : b("", !0),
7099
- i.renameDialogOpen && n.currentConv && !n.currentConv._draft ? (c(), B(D, {
7137
+ i.renameDialogOpen && n.currentConv && !n.currentConv._draft ? (c(), E(U, {
7100
7138
  key: 1,
7101
7139
  "initial-value": n.currentConv.name || "",
7102
7140
  title: n.t("rename.dialogTitle"),
7103
7141
  onClose: t[5] || (t[5] = (x) => i.renameDialogOpen = !1),
7104
7142
  onSubmit: n.onRenameSubmit
7105
7143
  }, null, 8, ["initial-value", "title", "onSubmit"])) : b("", !0)
7106
- ])) : (c(), B(k, {
7144
+ ])) : (c(), E(k, {
7107
7145
  key: "home",
7108
7146
  class: "wm-screen",
7109
7147
  title: n.widgetTitle,
@@ -7125,7 +7163,7 @@ function _o(e, t, s, r, i, n) {
7125
7163
  _: 1
7126
7164
  })
7127
7165
  ]),
7128
- i.moreOpen && !n.currentConv ? (c(), B(M, {
7166
+ i.moreOpen && !n.currentConv ? (c(), E(M, {
7129
7167
  key: 0,
7130
7168
  "can-rename": !1,
7131
7169
  "can-export": !1,
@@ -7140,7 +7178,7 @@ function _o(e, t, s, r, i, n) {
7140
7178
  ], 6)) : b("", !0)
7141
7179
  ], 6);
7142
7180
  }
7143
- const vo = /* @__PURE__ */ U(Wa, [["render", _o], ["__scopeId", "data-v-9601fbb5"]]), po = "0.6.15";
7181
+ const vo = /* @__PURE__ */ F(Wa, [["render", _o], ["__scopeId", "data-v-9601fbb5"]]), po = "0.6.17";
7144
7182
  export {
7145
7183
  me as AIAvatar,
7146
7184
  be as AVATAR_COLORS,
@@ -7158,7 +7196,7 @@ export {
7158
7196
  ia as FormCard,
7159
7197
  _n as Header,
7160
7198
  ye as HumanAvatar,
7161
- Ei as InlineCallbacks,
7199
+ Bi as InlineCallbacks,
7162
7200
  qt as Launcher,
7163
7201
  Le as MEDIA_RECORDER_SUPPORTED,
7164
7202
  ai as MessageList,