@factorialco/f0-react 12.3.0 → 12.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,7 +4,7 @@ import { useCallback as i, useEffect as a, useRef as o, useState as s } from "re
4
4
  import { jsx as c, jsxs as l } from "react/jsx-runtime";
5
5
  //#region \0virtual:f0-component-status-data
6
6
  var u = {
7
- generatedAt: "2026-10-30T15:59:26.589Z",
7
+ generatedAt: "2026-11-02T09:44:41.699Z",
8
8
  stats: {
9
9
  total: 312,
10
10
  byStatus: {
@@ -1591,6 +1591,20 @@ export declare const CommunityPostCard: ({ post, variant }: {
1591
1591
  post: CommunityPostSummary;
1592
1592
  variant?: CommunityPostCardVariant;
1593
1593
  }) => import("react").JSX.Element;
1594
+ /**
1595
+ * A post card's placeholder: the same box, the same floor, nothing written on
1596
+ * it, in either of the card's {@link CommunityPostCardVariant}s.
1597
+ *
1598
+ * `withImage` reserves the cover's seat. On a tile its 16:9 box is most of the
1599
+ * card's height, and on a row it is what sets the card's height, so getting
1600
+ * this wrong shows: reserve it for a feed with no pictures and the card shrinks
1601
+ * when the posts land; skip it for a feed that has them and it lurches taller
1602
+ * instead. In the carousel, what decides it is {@link reservesImageSeat}.
1603
+ */
1604
+ export declare const CommunityPostCardSkeleton: ({ variant, withImage }: {
1605
+ variant?: CommunityPostCardVariant;
1606
+ withImage?: boolean;
1607
+ }) => import("react").JSX.Element;
1594
1608
  export interface F0CommunityPostsCarouselProps {
1595
1609
  posts: CommunityPostSummary[];
1596
1610
  /**
@@ -6279,6 +6293,12 @@ type F0ChatHeaderAction = {
6279
6293
  * Ignored for `inline` actions — the row of icon buttons has no such state.
6280
6294
  */
6281
6295
  critical?: boolean;
6296
+ /**
6297
+ * `promote` draws an inline action as an upsell (the `promote` button): the
6298
+ * action exists, but the plan leaves it out and pressing it should explain
6299
+ * why. Ignored in the overflow menu and for toggles (`active` set).
6300
+ */
6301
+ variant?: "default" | "promote";
6282
6302
  };
6283
6303
  /** The id of the built-in Messages tab, always first and the default. */
6284
6304
  export declare const F0_CHAT_MESSAGES_TAB_ID = "messages";
@@ -6673,10 +6693,17 @@ type F0ChatRuntime = {
6673
6693
  /**
6674
6694
  * Maximum size in bytes for each file selected, dropped, or pasted into the
6675
6695
  * composer. When any file exceeds the limit, the composer rejects the whole
6676
- * batch before calling `uploadFiles` and keeps the validation error visible
6677
- * until the next attachment attempt. Omit for no size limit.
6696
+ * batch before calling `uploadFiles` and shows the limit as a transient
6697
+ * error, gone after a few seconds like the other composer warnings. Omit for
6698
+ * no size limit.
6678
6699
  */
6679
6700
  maxFileSizeBytes?: number;
6701
+ /**
6702
+ * Called when a batch is rejected for {@link maxFileSizeBytes}, after the
6703
+ * composer shows its error. For hosts whose limit is a plan's, to offer the
6704
+ * upgrade.
6705
+ */
6706
+ onFileTooLarge?: (files: File[], maxFileSizeBytes: number) => void;
6680
6707
  /**
6681
6708
  * Maximum number of characters allowed in a message. The composer keeps an
6682
6709
  * oversized draft in place and shows its existing validation banner instead
@@ -4358,10 +4358,24 @@ var $p = pi(Qp, () => /* @__PURE__ */ $("div", {
4358
4358
  children: c
4359
4359
  }) : c]
4360
4360
  });
4361
- }, bm = ({ withImage: e }) => /* @__PURE__ */ $("div", {
4361
+ }, bm = ({ variant: e = "tile", withImage: t = !0 }) => e === "row" ? /* @__PURE__ */ $("div", {
4362
+ className: "flex flex-row items-stretch gap-4 rounded-xl border border-solid border-f1-border-secondary p-4",
4363
+ children: [t ? /* @__PURE__ */ Q(U, { className: G("w-40 shrink-0 self-start rounded-md motion-reduce:animate-none sm:w-64", dm) }) : null, /* @__PURE__ */ $("div", {
4364
+ className: "flex min-w-0 grow flex-col gap-2",
4365
+ children: [
4366
+ /* @__PURE__ */ Q(U, { className: "h-5 w-3/4 rounded-2xs motion-reduce:animate-none" }),
4367
+ /* @__PURE__ */ Q(U, { className: "h-3 w-full rounded-2xs motion-reduce:animate-none" }),
4368
+ /* @__PURE__ */ Q(U, { className: "h-3 w-5/6 rounded-2xs motion-reduce:animate-none" }),
4369
+ /* @__PURE__ */ $("div", {
4370
+ className: "flex flex-row items-center gap-3 pt-2",
4371
+ children: [/* @__PURE__ */ Q(U, { className: "h-8 w-8 shrink-0 rounded-full motion-reduce:animate-none" }), /* @__PURE__ */ Q(U, { className: "h-3 w-24 rounded-2xs motion-reduce:animate-none" })]
4372
+ })
4373
+ ]
4374
+ })]
4375
+ }) : /* @__PURE__ */ $("div", {
4362
4376
  className: G("flex flex-col rounded-xl border border-solid border-f1-border-secondary p-4", pm),
4363
- children: [e ? /* @__PURE__ */ Q(U, { className: G("-mx-3 -mt-3 rounded-md", dm) }) : null, /* @__PURE__ */ $("div", {
4364
- className: G("flex min-h-0 grow flex-col gap-2", e && "pt-3"),
4377
+ children: [t ? /* @__PURE__ */ Q(U, { className: G("-mx-3 -mt-3 rounded-md", dm) }) : null, /* @__PURE__ */ $("div", {
4378
+ className: G("flex min-h-0 grow flex-col gap-2", t && "pt-3"),
4365
4379
  children: [
4366
4380
  /* @__PURE__ */ Q(U, { className: "h-5 w-3/4 rounded-2xs" }),
4367
4381
  /* @__PURE__ */ $("div", {
@@ -15977,7 +15991,7 @@ var hO = () => mO(aO, "useChatJump"), gO = (e) => {
15977
15991
  className: "flex shrink-0 items-center gap-0.5",
15978
15992
  children: [
15979
15993
  C.map((t) => t.active === void 0 ? /* @__PURE__ */ Q(er, {
15980
- variant: "ghost",
15994
+ variant: t.variant === "promote" ? "promote" : "ghost",
15981
15995
  hideLabel: !0,
15982
15996
  label: t.label,
15983
15997
  icon: t.icon,
@@ -20166,17 +20180,17 @@ var MP = {
20166
20180
  size: e.size,
20167
20181
  mimeType: e.type
20168
20182
  }, BP = (e, t) => e && t, VP = () => {
20169
- let e = W(), { sendMessage: t, editMessage: n, onInputActivity: r, stopTyping: i, uploadFiles: a, transcribe: o, maxFiles: s, maxFileSizeBytes: c, maxMessageCharacters: l, channel: u, searchMembers: d, capabilities: f } = gl(), p = !!a && zk("canUpload", u.type, f), { target: m } = _O(), { clearComposeTarget: h, registerComposerHandle: g } = vO(), _ = LP(), { registerFileDropHandler: v } = yO(), y = il(), { reducedMotion: b } = PO(), x = !!b, S = Y(null), [C, w] = X([]), T = Y(null), E = Y(null), D = Y(/* @__PURE__ */ new Set()), O = Y(0), { error: k, show: A, clear: j } = Rr(), M = m.kind === "edit", N = m.kind === "edit" ? m.message : null, P = m.kind === "reply" ? m.message : null, F = p, [I, ee] = X(!1), te = Y({ channelId: u.id });
20170
- te.current = {
20171
- channelId: u.id,
20172
- replyToId: P?.id
20183
+ let e = W(), { sendMessage: t, editMessage: n, onInputActivity: r, stopTyping: i, uploadFiles: a, transcribe: o, maxFiles: s, maxFileSizeBytes: c, onFileTooLarge: l, maxMessageCharacters: u, channel: d, searchMembers: f, capabilities: p } = gl(), m = !!a && zk("canUpload", d.type, p), { target: h } = _O(), { clearComposeTarget: g, registerComposerHandle: _ } = vO(), v = LP(), { registerFileDropHandler: y } = yO(), b = il(), { reducedMotion: x } = PO(), S = !!x, C = Y(null), [w, T] = X([]), E = Y(null), D = Y(null), O = Y(/* @__PURE__ */ new Set()), k = Y(0), { error: A, show: j, clear: M } = Rr(), N = h.kind === "edit", P = h.kind === "edit" ? h.message : null, F = h.kind === "reply" ? h.message : null, I = m, [ee, te] = X(!1), ne = Y({ channelId: d.id });
20184
+ ne.current = {
20185
+ channelId: d.id,
20186
+ replyToId: F?.id
20173
20187
  };
20174
- let ne = Y(m);
20175
- ne.current = m;
20176
- let re = K(async (n, r) => {
20188
+ let re = Y(h);
20189
+ re.current = h;
20190
+ let L = K(async (n, r) => {
20177
20191
  if (!a) return;
20178
- ee(!0);
20179
- let { channelId: i, replyToId: o } = te.current, s = n.type || "audio/webm", c = s.includes("mp4") ? "m4a" : s.includes("ogg") ? "ogg" : "webm", l = new File([n], `voice-note.${c}`, { type: s });
20192
+ te(!0);
20193
+ let { channelId: i, replyToId: o } = ne.current, s = n.type || "audio/webm", c = s.includes("mp4") ? "m4a" : s.includes("ogg") ? "ogg" : "webm", l = new File([n], `voice-note.${c}`, { type: s });
20180
20194
  try {
20181
20195
  let [e] = await a([l]);
20182
20196
  if (e && "url" in e) {
@@ -20191,88 +20205,88 @@ var MP = {
20191
20205
  name: l.name
20192
20206
  }]
20193
20207
  });
20194
- let n = ne.current;
20195
- o && n.kind === "reply" && n.message.id === o && h();
20208
+ let n = re.current;
20209
+ o && n.kind === "reply" && n.message.id === o && g();
20196
20210
  }
20197
20211
  } catch {
20198
- A(e.chat.fileUploadError);
20212
+ j(e.chat.fileUploadError);
20199
20213
  } finally {
20200
- ee(!1);
20214
+ te(!1);
20201
20215
  }
20202
20216
  }, [
20203
20217
  a,
20204
20218
  t,
20205
- h,
20206
- A,
20219
+ g,
20220
+ j,
20207
20221
  e.chat.fileUploadError
20208
- ]), L = CP({
20209
- searchMembers: d,
20210
- everyoneLabel: u.type === "group" ? e.chat.mentionEveryone : void 0
20211
- }), ie = K(({ mentions: t, mentionedEveryone: n }) => [...(t ?? []).map((e) => xP({
20222
+ ]), ie = CP({
20223
+ searchMembers: f,
20224
+ everyoneLabel: d.type === "group" ? e.chat.mentionEveryone : void 0
20225
+ }), R = K(({ mentions: t, mentionedEveryone: n }) => [...(t ?? []).map((e) => xP({
20212
20226
  id: e.id,
20213
20227
  name: e.name,
20214
20228
  avatar: e.avatar,
20215
20229
  subtitle: e.subtitle,
20216
20230
  profileHref: e.profileHref
20217
- })), ...n && u.type === "group" ? [xP({
20231
+ })), ...n && d.type === "group" ? [xP({
20218
20232
  id: _P,
20219
20233
  name: e.chat.mentionEveryone
20220
- })] : []], [u.type, e.chat.mentionEveryone]), R = PP({
20221
- getComposer: K(() => S.current, []),
20222
- isEditing: M,
20223
- toComposerMentions: ie
20224
- }), ae = K((e) => {
20225
- R.noteTextChange(), r(), e.trim().length === 0 && i?.();
20234
+ })] : []], [d.type, e.chat.mentionEveryone]), ae = PP({
20235
+ getComposer: K(() => C.current, []),
20236
+ isEditing: N,
20237
+ toComposerMentions: R
20238
+ }), oe = K((e) => {
20239
+ ae.noteTextChange(), r(), e.trim().length === 0 && i?.();
20226
20240
  }, [
20227
- R,
20241
+ ae,
20228
20242
  r,
20229
20243
  i
20230
20244
  ]);
20231
20245
  q(() => () => {
20232
20246
  i?.();
20233
20247
  }, [i]);
20234
- let oe = K((e) => {
20235
- D.current.delete(e) && URL.revokeObjectURL(e);
20248
+ let se = K((e) => {
20249
+ O.current.delete(e) && URL.revokeObjectURL(e);
20236
20250
  }, []);
20237
20251
  q(() => () => {
20238
- for (let e of D.current) URL.revokeObjectURL(e);
20239
- D.current.clear();
20252
+ for (let e of O.current) URL.revokeObjectURL(e);
20253
+ O.current.clear();
20240
20254
  }, []);
20241
- let se = C.some((e) => e.status === "uploading"), ce = J(() => [...C.filter(RP), ...C.filter((e) => !RP(e))], [C]), le = Y(0);
20255
+ let ce = w.some((e) => e.status === "uploading"), le = J(() => [...w.filter(RP), ...w.filter((e) => !RP(e))], [w]), ue = Y(0);
20242
20256
  q(() => {
20243
- le.current = C.length;
20244
- }, [C]);
20245
- let ue = K(async (t, n) => {
20246
- if (t.length === 0 || !a || !p) return;
20247
- if (j(), s !== void 0 && le.current + t.length > s) {
20248
- A(e.chat.tooManyFilesError.replace("{{maxFiles}}", String(s)));
20257
+ ue.current = w.length;
20258
+ }, [w]);
20259
+ let de = K(async (t, n) => {
20260
+ if (t.length === 0 || !a || !m) return;
20261
+ if (M(), s !== void 0 && ue.current + t.length > s) {
20262
+ j(e.chat.tooManyFilesError.replace("{{maxFiles}}", String(s)));
20249
20263
  return;
20250
20264
  }
20251
20265
  if (c !== void 0 && t.some((e) => e.size > c)) {
20252
- A(e.chat.fileTooLargeError.replace("{{maxFileSize}}", Oa(c)), { persistent: !0 });
20266
+ j(e.chat.fileTooLargeError.replace("{{maxFileSize}}", Oa(c))), l?.(t, c);
20253
20267
  return;
20254
20268
  }
20255
20269
  let r = t.map((e) => {
20256
20270
  let t = URL.createObjectURL(e);
20257
- return D.current.add(t), {
20258
- id: `att-${O.current++}`,
20271
+ return O.current.add(t), {
20272
+ id: `att-${k.current++}`,
20259
20273
  status: "uploading",
20260
20274
  attachment: zP(e, t)
20261
20275
  };
20262
20276
  });
20263
- for (let e of r) y.onFileAttached({
20277
+ for (let e of r) b.onFileAttached({
20264
20278
  kind: YD(e.attachment),
20265
20279
  source: n
20266
20280
  });
20267
- w((e) => [...e, ...r]);
20281
+ T((e) => [...e, ...r]);
20268
20282
  let i = new Set(r.map((e) => e.id));
20269
20283
  try {
20270
20284
  let e = (await a(t)).map((e, t) => ({
20271
- id: r[t]?.id ?? `att-${O.current++}`,
20285
+ id: r[t]?.id ?? `att-${k.current++}`,
20272
20286
  status: "ready",
20273
20287
  attachment: e
20274
20288
  }));
20275
- w((t) => {
20289
+ T((t) => {
20276
20290
  let n = new Map(e.map((e) => [e.id, e]));
20277
20291
  return t.flatMap((e) => {
20278
20292
  if (!i.has(e.id)) return [e];
@@ -20280,134 +20294,135 @@ var MP = {
20280
20294
  return t ? [t] : [];
20281
20295
  });
20282
20296
  });
20283
- for (let e of r) oe(e.attachment.url);
20297
+ for (let e of r) se(e.attachment.url);
20284
20298
  } catch {
20285
- w((e) => e.filter((e) => !i.has(e.id)));
20286
- for (let e of r) oe(e.attachment.url);
20287
- A(e.chat.fileUploadError);
20299
+ T((e) => e.filter((e) => !i.has(e.id)));
20300
+ for (let e of r) se(e.attachment.url);
20301
+ j(e.chat.fileUploadError);
20288
20302
  }
20289
20303
  }, [
20290
20304
  a,
20291
- p,
20305
+ m,
20292
20306
  s,
20293
20307
  c,
20308
+ l,
20309
+ M,
20294
20310
  j,
20295
- A,
20296
20311
  e.chat.tooManyFilesError,
20297
20312
  e.chat.fileTooLargeError,
20298
20313
  e.chat.fileUploadError,
20299
- oe,
20300
- y
20301
- ]), de = K((e) => {
20302
- let t = C.find((t) => t.id === e), n = t?.attachment;
20303
- n && n.kind !== "voice" && n.kind !== "location" && y.onAttachmentRemoved({ kind: YD(n) });
20304
- let r = C.some((t) => t.id !== e);
20305
- t?.status === "uploading" && oe(t.attachment.url), w((t) => t.filter((t) => t.id !== e)), requestAnimationFrame(() => {
20306
- r ? E.current?.focus() : S.current?.focus();
20314
+ se,
20315
+ b
20316
+ ]), fe = K((e) => {
20317
+ let t = w.find((t) => t.id === e), n = t?.attachment;
20318
+ n && n.kind !== "voice" && n.kind !== "location" && b.onAttachmentRemoved({ kind: YD(n) });
20319
+ let r = w.some((t) => t.id !== e);
20320
+ t?.status === "uploading" && se(t.attachment.url), T((t) => t.filter((t) => t.id !== e)), requestAnimationFrame(() => {
20321
+ r ? D.current?.focus() : C.current?.focus();
20307
20322
  });
20308
20323
  }, [
20309
- C,
20310
- oe,
20311
- y
20312
- ]), fe = K((e) => {
20313
- for (let t of e) t.status === "uploading" && oe(t.attachment.url);
20314
- }, [oe]);
20324
+ w,
20325
+ se,
20326
+ b
20327
+ ]), pe = K((e) => {
20328
+ for (let t of e) t.status === "uploading" && se(t.attachment.url);
20329
+ }, [se]);
20315
20330
  q(() => {
20316
- v((e) => void ue(e, "drop"));
20317
- }, [v, ue]);
20318
- let pe = K((e) => void ue(e, "paste"), [ue]), me = K(() => {
20319
- let e = S.current;
20320
- e?.cancelRecording(), e?.clear(), fe(C), w([]), e?.breakHistory();
20321
- }, [fe, C]), z = K((e) => {
20322
- w((t) => (fe(t), (e.attachments ?? []).filter((e) => e.kind !== "card").map((e) => ({
20323
- id: `att-${O.current++}`,
20331
+ y((e) => void de(e, "drop"));
20332
+ }, [y, de]);
20333
+ let me = K((e) => void de(e, "paste"), [de]), z = K(() => {
20334
+ let e = C.current;
20335
+ e?.cancelRecording(), e?.clear(), pe(w), T([]), e?.breakHistory();
20336
+ }, [pe, w]), he = K((e) => {
20337
+ T((t) => (pe(t), (e.attachments ?? []).filter((e) => e.kind !== "card").map((e) => ({
20338
+ id: `att-${k.current++}`,
20324
20339
  status: "ready",
20325
20340
  attachment: e
20326
- })))), S.current?.loadDraft({
20341
+ })))), C.current?.loadDraft({
20327
20342
  value: e.body,
20328
- mentions: ie(e)
20343
+ mentions: R(e)
20329
20344
  });
20330
- }, [ie, fe]), he = K((e, t) => {
20345
+ }, [R, pe]), ge = K((e, t) => {
20331
20346
  let n = e.kind === "edit" && t.kind !== "edit", r = e.kind === "edit" && t.kind === "edit" && e.message.id === t.message.id;
20332
- n && (me(), R.restore({ cleared: !0 })), t.kind === "edit" && !r && (e.kind !== "edit" && R.flush(), z(t.message)), t.kind !== "none" && S.current?.focus({ preventScroll: !0 });
20347
+ n && (z(), ae.restore({ cleared: !0 })), t.kind === "edit" && !r && (e.kind !== "edit" && ae.flush(), he(t.message)), t.kind !== "none" && C.current?.focus({ preventScroll: !0 });
20333
20348
  }, [
20334
- me,
20335
20349
  z,
20336
- R
20337
- ]), ge = J(() => ({
20338
- retarget: he,
20350
+ he,
20351
+ ae
20352
+ ]), _e = J(() => ({
20353
+ retarget: ge,
20339
20354
  abandonDraft: () => {
20340
- me(), R.restore({ cleared: !0 });
20355
+ z(), ae.restore({ cleared: !0 });
20341
20356
  }
20342
20357
  }), [
20343
- he,
20344
- me,
20345
- R
20358
+ ge,
20359
+ z,
20360
+ ae
20346
20361
  ]);
20347
20362
  q(function() {
20348
- return g(ge), () => g(null);
20349
- }, [g, ge]), q(function() {
20350
- return h;
20351
- }, [h]);
20352
- let _e = K(() => {
20353
- N && y.onEditCancelled({ messageId: N.id }), h();
20363
+ return _(_e), () => _(null);
20364
+ }, [_, _e]), q(function() {
20365
+ return g;
20366
+ }, [g]);
20367
+ let ve = K(() => {
20368
+ P && b.onEditCancelled({ messageId: P.id }), g();
20354
20369
  }, [
20355
- h,
20356
- N,
20357
- y
20358
- ]), ve = K(() => {
20359
- P && y.onReplyCancelled({ messageId: P.id }), h();
20370
+ g,
20371
+ P,
20372
+ b
20373
+ ]), ye = K(() => {
20374
+ F && b.onReplyCancelled({ messageId: F.id }), g();
20360
20375
  }, [
20361
- h,
20362
- y,
20363
- P
20364
- ]), ye = K(({ text: e, mentions: r }) => {
20376
+ g,
20377
+ b,
20378
+ F
20379
+ ]), be = K(({ text: e, mentions: r }) => {
20365
20380
  let a = e.trim();
20366
20381
  i?.();
20367
- let o = C.flatMap((e) => e.status === "ready" ? [e.attachment] : []), { mentions: s, mentionedEveryone: c } = wP(r);
20368
- N && n ? (n(N.id, {
20382
+ let o = w.flatMap((e) => e.status === "ready" ? [e.attachment] : []), { mentions: s, mentionedEveryone: c } = wP(r);
20383
+ P && n ? (n(P.id, {
20369
20384
  body: a,
20370
20385
  attachments: o.length > 0 ? o : void 0,
20371
20386
  mentions: s.length > 0 ? s : void 0,
20372
20387
  mentionedEveryone: c || void 0
20373
- }), h()) : (tl(u.id), R.noteSent(), t({
20388
+ }), g()) : (tl(d.id), ae.noteSent(), t({
20374
20389
  body: a,
20375
20390
  attachments: o.length > 0 ? o : void 0,
20376
- replyToId: P?.id,
20391
+ replyToId: F?.id,
20377
20392
  mentions: s.length > 0 ? s : void 0,
20378
20393
  mentionedEveryone: c || void 0
20379
- }), w([]), h());
20394
+ }), T([]), g());
20380
20395
  }, [
20381
- C,
20382
- u.id,
20383
- P,
20396
+ w,
20397
+ d.id,
20398
+ F,
20384
20399
  t,
20385
- h,
20400
+ g,
20386
20401
  i,
20387
- N,
20402
+ P,
20388
20403
  n,
20389
- R
20390
- ]), be = K((e) => m.kind !== "none" && (e.preventDefault(), M ? _e() : ve(), !0), [
20391
- m.kind,
20392
- M,
20393
- _e,
20394
- ve
20395
- ]), xe = K(() => C.length === 0 && m.kind === "none" && _(), [
20396
- C.length,
20397
- m.kind,
20398
- _
20399
- ]), Se = K((e) => {
20400
- S.current?.insertText(e), y.onEmojiInserted({
20404
+ ae
20405
+ ]), xe = K((e) => h.kind !== "none" && (e.preventDefault(), N ? ve() : ye(), !0), [
20406
+ h.kind,
20407
+ N,
20408
+ ve,
20409
+ ye
20410
+ ]), Se = K(() => w.length === 0 && h.kind === "none" && v(), [
20411
+ w.length,
20412
+ h.kind,
20413
+ v
20414
+ ]), Ce = K((e) => {
20415
+ C.current?.insertText(e), b.onEmojiInserted({
20401
20416
  emoji: e,
20402
20417
  source: "picker"
20403
20418
  });
20404
- }, [y]), Ce = {
20405
- duration: x ? 0 : .18,
20419
+ }, [b]), we = {
20420
+ duration: S ? 0 : .18,
20406
20421
  ease: Ga
20407
- }, we = /* @__PURE__ */ Q(jn, {
20422
+ }, Te = /* @__PURE__ */ Q(jn, {
20408
20423
  initial: !1,
20409
20424
  mode: "popLayout",
20410
- children: M && N ? /* @__PURE__ */ Q(V.div, {
20425
+ children: N && P ? /* @__PURE__ */ Q(V.div, {
20411
20426
  className: "overflow-hidden",
20412
20427
  initial: {
20413
20428
  height: 0,
@@ -20421,12 +20436,12 @@ var MP = {
20421
20436
  height: 0,
20422
20437
  opacity: 0
20423
20438
  },
20424
- transition: Ce,
20439
+ transition: we,
20425
20440
  children: /* @__PURE__ */ Q(hP, {
20426
- message: N,
20427
- onRemove: _e
20441
+ message: P,
20442
+ onRemove: ve
20428
20443
  })
20429
- }, "edit-chip") : P ? /* @__PURE__ */ Q(V.div, {
20444
+ }, "edit-chip") : F ? /* @__PURE__ */ Q(V.div, {
20430
20445
  className: "overflow-hidden",
20431
20446
  initial: {
20432
20447
  height: 0,
@@ -20440,33 +20455,33 @@ var MP = {
20440
20455
  height: 0,
20441
20456
  opacity: 0
20442
20457
  },
20443
- transition: Ce,
20458
+ transition: we,
20444
20459
  children: /* @__PURE__ */ Q(gP, {
20445
- message: P,
20446
- onRemove: ve
20460
+ message: F,
20461
+ onRemove: ye
20447
20462
  })
20448
20463
  }, "reply-chip") : null
20449
- }), Te = /* @__PURE__ */ Q(ui, {
20450
- items: ce.map((e) => ({
20464
+ }), Ee = /* @__PURE__ */ Q(ui, {
20465
+ items: le.map((e) => ({
20451
20466
  id: e.id,
20452
20467
  content: /* @__PURE__ */ Q(mP, {
20453
20468
  attachment: e.attachment,
20454
20469
  uploading: e.status === "uploading",
20455
- onRemove: () => de(e.id)
20470
+ onRemove: () => fe(e.id)
20456
20471
  })
20457
20472
  })),
20458
- label: e.t(C.length === 1 ? "chat.attachmentCount.one" : "chat.attachmentCount.other", { count: C.length }),
20459
- busy: se,
20460
- reducedMotion: x,
20461
- stripRef: E
20462
- }), Ee = (t) => /* @__PURE__ */ $(Z, { children: [
20473
+ label: e.t(w.length === 1 ? "chat.attachmentCount.one" : "chat.attachmentCount.other", { count: w.length }),
20474
+ busy: ce,
20475
+ reducedMotion: S,
20476
+ stripRef: D
20477
+ }), De = (t) => /* @__PURE__ */ $(Z, { children: [
20463
20478
  /* @__PURE__ */ Q("input", {
20464
- ref: T,
20479
+ ref: E,
20465
20480
  type: "file",
20466
20481
  multiple: !0,
20467
20482
  className: "hidden",
20468
20483
  onChange: (e) => {
20469
- ue(Array.from(e.target.files ?? []), "button"), e.target.value = "";
20484
+ de(Array.from(e.target.files ?? []), "button"), e.target.value = "";
20470
20485
  }
20471
20486
  }),
20472
20487
  /* @__PURE__ */ Q(er, {
@@ -20476,51 +20491,51 @@ var MP = {
20476
20491
  hideLabel: !0,
20477
20492
  label: e.chat.attachFile,
20478
20493
  icon: _r,
20479
- onClick: () => T.current?.click(),
20480
- disabled: !p || t === "transcribing"
20494
+ onClick: () => E.current?.click(),
20495
+ disabled: !m || t === "transcribing"
20481
20496
  }),
20482
20497
  /* @__PURE__ */ Q(Hv, {
20483
20498
  variant: "outline",
20484
20499
  size: "md",
20485
20500
  label: e.chat.addEmoji,
20486
- onSelect: Se
20501
+ onSelect: Ce
20487
20502
  })
20488
- ] }), De = l === void 0 ? void 0 : e.chat.messageTooLongError.replace("{{maxCharacters}}", l.toLocaleString());
20503
+ ] }), Oe = u === void 0 ? void 0 : e.chat.messageTooLongError.replace("{{maxCharacters}}", u.toLocaleString());
20489
20504
  return {
20490
- handleRef: S,
20505
+ handleRef: C,
20491
20506
  "data-testid": "chat-composer-surface",
20492
- onSend: ye,
20493
- sendKind: M ? "save" : "send",
20494
- hasAttachments: C.length > 0,
20495
- sendBlocked: se || I,
20496
- maxLength: l,
20497
- maxLengthError: De,
20498
- error: k,
20507
+ onSend: be,
20508
+ sendKind: N ? "save" : "send",
20509
+ hasAttachments: w.length > 0,
20510
+ sendBlocked: ce || ee,
20511
+ maxLength: u,
20512
+ maxLengthError: Oe,
20513
+ error: A,
20499
20514
  labels: { mentionPinnedDescription: e.chat.mentionEveryoneDescription },
20500
20515
  mentions: {
20501
- ...L,
20502
- scopeKey: u.id
20516
+ ...ie,
20517
+ scopeKey: d.id
20503
20518
  },
20504
20519
  autocomplete: MP,
20505
20520
  voice: {
20506
20521
  onTranscribe: o,
20507
- onAudio: F ? (e, t) => void re(e, t) : void 0,
20508
- disabled: BP(M, F),
20509
- busy: I,
20510
- onStarted: y.onVoiceRecordingStarted,
20511
- onCancelled: y.onVoiceRecordingCancelled
20522
+ onAudio: I ? (e, t) => void L(e, t) : void 0,
20523
+ disabled: BP(N, I),
20524
+ busy: ee,
20525
+ onStarted: b.onVoiceRecordingStarted,
20526
+ onCancelled: b.onVoiceRecordingCancelled
20512
20527
  },
20513
- onTextChange: ae,
20528
+ onTextChange: oe,
20514
20529
  onCleared: () => {
20515
- i?.(), R.noteTextChange();
20530
+ i?.(), ae.noteTextChange();
20516
20531
  },
20517
- onEscape: be,
20518
- onArrowUpWhenEmpty: xe,
20519
- onPasteFiles: p ? pe : void 0,
20520
- header: we,
20521
- tray: Te,
20522
- toolbarStart: Ee,
20523
- reducedMotion: x
20532
+ onEscape: xe,
20533
+ onArrowUpWhenEmpty: Se,
20534
+ onPasteFiles: m ? me : void 0,
20535
+ header: Te,
20536
+ tray: Ee,
20537
+ toolbarStart: De,
20538
+ reducedMotion: S
20524
20539
  };
20525
20540
  }, HP = (e) => e.dataTransfer?.types?.includes("Files"), UP = () => {
20526
20541
  let { dropFiles: e } = yO(), t = Y(0), [n, r] = X(!1), i = K((e) => HP(e) ? (e.preventDefault(), e.stopPropagation(), !0) : !1, []);
@@ -25113,27 +25128,7 @@ var Az = ({ collapsed: e, open: t, glide: n, drawn: r, width: i }) => {
25113
25128
  display: "flex",
25114
25129
  flexDirection: "column",
25115
25130
  gap: "md",
25116
- children: OV(e).map((e) => /* @__PURE__ */ $("div", {
25117
- className: "flex flex-row items-stretch gap-4 rounded-xl border border-solid border-f1-border-secondary p-4",
25118
- children: [/* @__PURE__ */ Q(wV, { className: "aspect-video w-40 shrink-0 self-start rounded-md sm:w-64" }), /* @__PURE__ */ $(Yo, {
25119
- display: "flex",
25120
- flexDirection: "column",
25121
- gap: "sm",
25122
- grow: !0,
25123
- children: [
25124
- /* @__PURE__ */ Q(wV, { className: "h-5 w-3/4" }),
25125
- /* @__PURE__ */ Q(wV, { className: "h-3 w-full" }),
25126
- /* @__PURE__ */ Q(wV, { className: "h-3 w-5/6" }),
25127
- /* @__PURE__ */ $(Yo, {
25128
- display: "flex",
25129
- alignItems: "center",
25130
- gap: "md",
25131
- paddingTop: "sm",
25132
- children: [/* @__PURE__ */ Q(wV, { className: "h-8 w-8 shrink-0 rounded-full" }), /* @__PURE__ */ Q(wV, { className: "h-3 w-24" })]
25133
- })
25134
- ]
25135
- })]
25136
- }, e))
25131
+ children: OV(e).map((e) => /* @__PURE__ */ Q(bm, { variant: "row" }, e))
25137
25132
  }), NV = ({ count: e }) => /* @__PURE__ */ Q(CV, { cards: OV(e).map((e) => /* @__PURE__ */ Q(OB, { children: /* @__PURE__ */ Q(DV, {
25138
25133
  fullHeight: !0,
25139
25134
  children: /* @__PURE__ */ $(Yo, {
@@ -26559,4 +26554,4 @@ var dW = In(Zn("WidgetEmptyState", uW)), fW = ({ identifier: e, allowedRoutes: t
26559
26554
  type: "layout"
26560
26555
  }, $o));
26561
26556
  //#endregion
26562
- export { dU as AGENTIC_HOME_SPEC_VERSION, p as AUTO_PER_PAGE_MAX, en as AUTO_PER_PAGE_MIN_RESERVED_ROWS, zp as ActivityItemList, Rp as ActivityItemListSkeleton, fu as AiPromotionChat, pu as AiPromotionChatProvider, zS as ApplicationFrame, Xt as AreaChart, IF as AreaChartWidget, SF as AutoGrid, Ko as Badge, an as BarChart, LF as BarChartWidget, Lp as BaseActivityItemList, at as BaseBanner, Gp as BaseCelebration, cm as BaseCommunityPost, Xi as BaseTabs, hi as BreadcrumbSelect, oC as Breadcrumbs, rm as CalendarEvent, QF as CalendarEventList, n as CardSelectableContainer, ct as Carousel, Ue as CategoryBarChart, yI as CategoryBarSection, qp as Celebration, Kp as CelebrationSkeleton, YF as ChartWidgetEmptyState, ms as Chip, JI as ClockInControls, Ht as CoachmarkProvider, nn as ComboChart, um as CommunityPost, ym as CommunityPostCard, lm as CommunityPostSkeleton, $w as CompanySelector, On as Counter, yR as DEFAULT_EXPECTED_ITEMS_COUNT, oW as Dashboard, ZS as DaytimePage, pa as DetailsItem, _a as DetailsItemsList, Yt as Dialog, Wi as Dropdown, fR as EVENT_LIST_GAP, ip as EntitySelect, wt as F0ActionBar, sU as F0AgenticHome, lU as F0AgenticHomeBlock, fe as F0AiBanner, Gu as F0AiCallout, qo as F0AvatarColor, Uo as F0AvatarColorList, Lo as F0AvatarModule, hc as F0ButtonToggle, $u as F0Callout, oi as F0CardHorizontal, oi as F0CardRow, af as F0CarouselDialog, rF as F0Chat, JO as F0ChatHistoryLimitCard, nl as F0ChatProvider, VD as F0CommandPaletteProvider, wm as F0CommunityPostsCarousel, dd as F0Confetti, uF as F0ENPSButton, Su as F0EmojiPicker, Ia as F0FileItem, je as F0FormEditableTable, Ve as F0LocationInput, Jc as F0Map, Vc as F0MapControls, kc as F0MapList, Oc as F0MapSidebar, Hc as F0MapSidebarToggle, Gc as F0MapSkeleton, pS as F0Meeting, Nd as F0MeetingCard, Km as F0MeetingProvider, Yx as F0MeetingRoom, mS as F0MeetingSlot, fS as F0MeetingSurface, rn as F0NotesTextEditor, He as F0NotesTextEditorSkeleton, m as F0NumberInput, _ as F0NumberInputInline, Qi as F0PersonCard, dt as F0PhoneInput, hE as F0PrimarySidebar, fc as F0ProgressSeries, Rd as F0PulseDot, tf as F0Resizable, Re as F0ResourceHeader, Re as ResourceHeader, eo as F0RichTextDisplay, ft as F0RichTextEditor, Qs as F0SearchInput, vE as F0SecondarySidebar, sf as F0SegmentedBar, Ze as F0SegmentedControl, vf as F0SwipeDeck, It as F0TableOfContent, Dp as F0TemplateTextInput, Qt as F0TextAreaInput, d as F0TextAreaInputInline, ao as F0TextInput, he as F0TextInputInline, Af as F0Timeline, Of as F0VersionHistory, GO as F0_CHAT_HEADER_TITLE_SELECTOR, qD as F0_CHAT_MESSAGES_TAB_ID, Ws as F1SearchBox, L as FILE_TYPES, br as FileItem, Jp as HighlightBanner, SL as HomeSlotItem, xL as HomeSlotItems, rI as IndicatorsList, Yr as Input, Be as Item, lt as ItemSectionHeader, JD as LATEST, QL as LIST_COMPACT_AFTER, uR as LIST_MORE_BUTTON_CLASS, ge as LineChart, RF as LineChartWidget, DS as MeetingNotes, gS as MeetingPanelContent, ES as MeetingParticipants, vS as MeetingRoomChat, Mx as MeetingSidePanel, f_ as MeetingSurfaceProvider, xS as MeetingTranscript, _T as Menu, Co as MobileDropdown, Vz as NewHomeLayout, tn as NotesTextEditor, z as NotesTextEditorSkeleton, R as NumberInput, MC as OmniButton, ME as OneApprovalHistory, Hs as OneCalendar, Ls as OneCalendarInternal, Dt as OneDataCollection, l as OneDateNavigator, S as OneEmptyState, km as OneListItem, Om as OneListItemSkeleton, mt as OnePagination, Mm as OnePersonListItem, fW as OneRestrictComponent, PC as Page, OC as PageHeader, sC as PageHeaderNavigationContext, cC as PageHeaderNavigationProvider, ba as PageNavigation, f as PieChart, zF as PieChartWidget, Ut as PrivateBox, $t as ProgressBarChart, uU as RECOMMENDED_AGENTIC_HOME_RULES, Fc as RECOMMENDED_MAX_MARKERS, ye as RadarChart, Zp as Reactions, Ua as RichTextDisplay, te as RichTextEditor, cR as SLOT_ROW_BLEED, bR as SLOT_SKELETON_ITEM_TESTID, pW as ScrollArea, gE as SearchBar, i as SectionHeader, oc as Select, cn as Shortcut, xE as Sidebar, _w as SidebarChatBlankState, Tw as SidebarChatItem, yw as SidebarChatItemSkeleton, Fw as SidebarChatList, xw as SidebarChatListSkeleton, WC as SidebarChatProvider, tw as SidebarCollapsibleSection, aT as SidebarFooter, sT as SidebarHeader, bT as SidebarPanelHeader, hw as SidebarTabPanel, lw as SidebarTabPanelSearch, wE as SidebarTabs, iT as SidebarUserMenu, GR as SlotWidget, WR as SlotWidgetContent, ks as Spinner, xF as Split, bF as Stack, VF as SummariesWidget, rc as Switch, Za as Tabs, ho as TabsSkeleton, QI as TasksList, ve as Textarea, So as ToggleGroup, Ao as ToggleGroupItem, An as Tooltip, Mn as TooltipGroup, vI as TwoColumnsList, se as UPLOAD_INPUT_ID, v as VerticalBarChart, BF as VerticalBarChartWidget, Mf as VirtualList, zs as WeekStartDay, Ui as Weekdays, lW as Widget, oI as WidgetAvatarsListItem, bU as WidgetCatalog, dW as WidgetEmptyState, tI as WidgetHighlightButton, mI as WidgetInboxList, lI as WidgetInboxListItem, DL as WidgetSection, gI as WidgetSimpleList, fI as WidgetSimpleListItem, cW as WidgetStrip, Lt as actionBarStatuses, Cu as aiCalloutStatuses, Fd as attendeesDisplays, Dg as buildTiles, ke as buttonToggleColors, Ie as buttonToggleSizes, ue as buttonToggleVariants, tm as calendarEventVariants, mc as chipVariants, ql as coachmarks, bD as commandActionRisks, vm as communityPostCardVariants, ed as confettiPalette, zb as createMeetingSignalStore, Wc as defaultMapStyle, kR as defaultSlotRenderers, OR as defaultSlotSkeleton, Ql as defineStepByStepCoachmarkGuidance, Ge as downloadAsCSV, BE as downloadAsExcel, HD as f0ChatSenderColors, mu as f0EmojiPickerSizes, Ma as f0FileItemSizes, Dc as f0MapMarkerVariants, qc as f0MapStyles, Ig as f0MeetingConnectionQualities, Bg as f0MeetingCoreActionIds, Pg as f0MeetingDisconnectReasons, Fg as f0MeetingPermissions, Mg as f0MeetingPresences, Ng as f0MeetingStatuses, Lg as f0MeetingSurfaceDestinations, Rg as f0MeetingSurfaceModes, jg as f0MeetingTrackKinds, Vl as f0ProgressSeriesColors, Bl as f0ProgressSeriesSizes, zg as f0WindowCorners, nR as fromParams, Ye as generateCSVContent, be as getAutoPerPageMinHeight, dc as getGranularityDefinition, Vs as getGranularityDefinitions, gc as getGranularitySimpleDefinition, Bc as googleMapStyles, Nc as googlePinlessMapStyles, cc as granularityDefinitions, eR as homeSlot, lo as isPossiblePhoneValue, KD as isPost, UD as isSystemMessage, GD as isUserMessage, Ta as isValidPhoneValue, kb as layoutGrid, g as listIconColors, dR as listMoreButtonClass, tR as listSlot, lp as locationInputSizes, up as locationParts, ky as matchDevice, Pd as meetingStates, Bo as modules, Jg as nearestCorner, Tm as oneListItemRowClassName, dp as phoneInputSizes, qg as placementFromRect, Ne as predefinedPresets, zd as pulseDotVariants, oR as railActionTones, ac as rangeSeparator, Cy as readMeetingMediaPreferences, Mb as reorderForSpeakers, Bd as resizableDirections, _b as resolveAutoFocus, nc as resolveGranularityDefinition, Kg as resolvePlacement, ZL as resolveSlotRenderer, rR as resolveWidgetHeader, wh as sanitizeMeetingReaction, PE as seedFromStorage, D as selectSizes, Se as selectVariants, Yg as settlePlacement, lR as slotRowBleed, Ob as solveGrid, Nb as solveSpotlight, wf as swipeDirections, Ag as tileAspectRatio, Tg as tileKey, wy as updateMeetingMediaPreferences, au as useAiPromotionChat, zD as useCommandPalette, Bp as useCompactOnScroll, ld as useConfetti, re as useDataCollectionData, FE as useDataCollectionItemNavigation, me as useDataCollectionSource, Vt as useExportAction, gl as useF0Chat, Jm as useF0Meeting, Xm as useF0MeetingRoster, Ym as useF0MeetingStable, qm as useHasF0Meeting, o as useInfiniteScrollPagination, bL as useIsBulkChange, Ty as useMeetingMediaPreferences, Ub as useMeetingSignal, Wb as useMeetingSpeakers, p_ as useMeetingSurface, m_ as useMeetingSurfaceOptional, uC as usePageHeaderItemNavigation, lC as usePageHeaderNavigation, zi as useSidePanel, Ec as useSidebar, JC as useSidebarChatActions, qC as useSidebarChats, Cf as useSwipeDeck, $m as useTrackBinding, r as useWidgetIsWide, OS as viewportRect, sR as widgetChrome, aR as widgetParamsAreComplete, iR as widgetTitle };
26557
+ export { dU as AGENTIC_HOME_SPEC_VERSION, p as AUTO_PER_PAGE_MAX, en as AUTO_PER_PAGE_MIN_RESERVED_ROWS, zp as ActivityItemList, Rp as ActivityItemListSkeleton, fu as AiPromotionChat, pu as AiPromotionChatProvider, zS as ApplicationFrame, Xt as AreaChart, IF as AreaChartWidget, SF as AutoGrid, Ko as Badge, an as BarChart, LF as BarChartWidget, Lp as BaseActivityItemList, at as BaseBanner, Gp as BaseCelebration, cm as BaseCommunityPost, Xi as BaseTabs, hi as BreadcrumbSelect, oC as Breadcrumbs, rm as CalendarEvent, QF as CalendarEventList, n as CardSelectableContainer, ct as Carousel, Ue as CategoryBarChart, yI as CategoryBarSection, qp as Celebration, Kp as CelebrationSkeleton, YF as ChartWidgetEmptyState, ms as Chip, JI as ClockInControls, Ht as CoachmarkProvider, nn as ComboChart, um as CommunityPost, ym as CommunityPostCard, bm as CommunityPostCardSkeleton, lm as CommunityPostSkeleton, $w as CompanySelector, On as Counter, yR as DEFAULT_EXPECTED_ITEMS_COUNT, oW as Dashboard, ZS as DaytimePage, pa as DetailsItem, _a as DetailsItemsList, Yt as Dialog, Wi as Dropdown, fR as EVENT_LIST_GAP, ip as EntitySelect, wt as F0ActionBar, sU as F0AgenticHome, lU as F0AgenticHomeBlock, fe as F0AiBanner, Gu as F0AiCallout, qo as F0AvatarColor, Uo as F0AvatarColorList, Lo as F0AvatarModule, hc as F0ButtonToggle, $u as F0Callout, oi as F0CardHorizontal, oi as F0CardRow, af as F0CarouselDialog, rF as F0Chat, JO as F0ChatHistoryLimitCard, nl as F0ChatProvider, VD as F0CommandPaletteProvider, wm as F0CommunityPostsCarousel, dd as F0Confetti, uF as F0ENPSButton, Su as F0EmojiPicker, Ia as F0FileItem, je as F0FormEditableTable, Ve as F0LocationInput, Jc as F0Map, Vc as F0MapControls, kc as F0MapList, Oc as F0MapSidebar, Hc as F0MapSidebarToggle, Gc as F0MapSkeleton, pS as F0Meeting, Nd as F0MeetingCard, Km as F0MeetingProvider, Yx as F0MeetingRoom, mS as F0MeetingSlot, fS as F0MeetingSurface, rn as F0NotesTextEditor, He as F0NotesTextEditorSkeleton, m as F0NumberInput, _ as F0NumberInputInline, Qi as F0PersonCard, dt as F0PhoneInput, hE as F0PrimarySidebar, fc as F0ProgressSeries, Rd as F0PulseDot, tf as F0Resizable, Re as F0ResourceHeader, Re as ResourceHeader, eo as F0RichTextDisplay, ft as F0RichTextEditor, Qs as F0SearchInput, vE as F0SecondarySidebar, sf as F0SegmentedBar, Ze as F0SegmentedControl, vf as F0SwipeDeck, It as F0TableOfContent, Dp as F0TemplateTextInput, Qt as F0TextAreaInput, d as F0TextAreaInputInline, ao as F0TextInput, he as F0TextInputInline, Af as F0Timeline, Of as F0VersionHistory, GO as F0_CHAT_HEADER_TITLE_SELECTOR, qD as F0_CHAT_MESSAGES_TAB_ID, Ws as F1SearchBox, L as FILE_TYPES, br as FileItem, Jp as HighlightBanner, SL as HomeSlotItem, xL as HomeSlotItems, rI as IndicatorsList, Yr as Input, Be as Item, lt as ItemSectionHeader, JD as LATEST, QL as LIST_COMPACT_AFTER, uR as LIST_MORE_BUTTON_CLASS, ge as LineChart, RF as LineChartWidget, DS as MeetingNotes, gS as MeetingPanelContent, ES as MeetingParticipants, vS as MeetingRoomChat, Mx as MeetingSidePanel, f_ as MeetingSurfaceProvider, xS as MeetingTranscript, _T as Menu, Co as MobileDropdown, Vz as NewHomeLayout, tn as NotesTextEditor, z as NotesTextEditorSkeleton, R as NumberInput, MC as OmniButton, ME as OneApprovalHistory, Hs as OneCalendar, Ls as OneCalendarInternal, Dt as OneDataCollection, l as OneDateNavigator, S as OneEmptyState, km as OneListItem, Om as OneListItemSkeleton, mt as OnePagination, Mm as OnePersonListItem, fW as OneRestrictComponent, PC as Page, OC as PageHeader, sC as PageHeaderNavigationContext, cC as PageHeaderNavigationProvider, ba as PageNavigation, f as PieChart, zF as PieChartWidget, Ut as PrivateBox, $t as ProgressBarChart, uU as RECOMMENDED_AGENTIC_HOME_RULES, Fc as RECOMMENDED_MAX_MARKERS, ye as RadarChart, Zp as Reactions, Ua as RichTextDisplay, te as RichTextEditor, cR as SLOT_ROW_BLEED, bR as SLOT_SKELETON_ITEM_TESTID, pW as ScrollArea, gE as SearchBar, i as SectionHeader, oc as Select, cn as Shortcut, xE as Sidebar, _w as SidebarChatBlankState, Tw as SidebarChatItem, yw as SidebarChatItemSkeleton, Fw as SidebarChatList, xw as SidebarChatListSkeleton, WC as SidebarChatProvider, tw as SidebarCollapsibleSection, aT as SidebarFooter, sT as SidebarHeader, bT as SidebarPanelHeader, hw as SidebarTabPanel, lw as SidebarTabPanelSearch, wE as SidebarTabs, iT as SidebarUserMenu, GR as SlotWidget, WR as SlotWidgetContent, ks as Spinner, xF as Split, bF as Stack, VF as SummariesWidget, rc as Switch, Za as Tabs, ho as TabsSkeleton, QI as TasksList, ve as Textarea, So as ToggleGroup, Ao as ToggleGroupItem, An as Tooltip, Mn as TooltipGroup, vI as TwoColumnsList, se as UPLOAD_INPUT_ID, v as VerticalBarChart, BF as VerticalBarChartWidget, Mf as VirtualList, zs as WeekStartDay, Ui as Weekdays, lW as Widget, oI as WidgetAvatarsListItem, bU as WidgetCatalog, dW as WidgetEmptyState, tI as WidgetHighlightButton, mI as WidgetInboxList, lI as WidgetInboxListItem, DL as WidgetSection, gI as WidgetSimpleList, fI as WidgetSimpleListItem, cW as WidgetStrip, Lt as actionBarStatuses, Cu as aiCalloutStatuses, Fd as attendeesDisplays, Dg as buildTiles, ke as buttonToggleColors, Ie as buttonToggleSizes, ue as buttonToggleVariants, tm as calendarEventVariants, mc as chipVariants, ql as coachmarks, bD as commandActionRisks, vm as communityPostCardVariants, ed as confettiPalette, zb as createMeetingSignalStore, Wc as defaultMapStyle, kR as defaultSlotRenderers, OR as defaultSlotSkeleton, Ql as defineStepByStepCoachmarkGuidance, Ge as downloadAsCSV, BE as downloadAsExcel, HD as f0ChatSenderColors, mu as f0EmojiPickerSizes, Ma as f0FileItemSizes, Dc as f0MapMarkerVariants, qc as f0MapStyles, Ig as f0MeetingConnectionQualities, Bg as f0MeetingCoreActionIds, Pg as f0MeetingDisconnectReasons, Fg as f0MeetingPermissions, Mg as f0MeetingPresences, Ng as f0MeetingStatuses, Lg as f0MeetingSurfaceDestinations, Rg as f0MeetingSurfaceModes, jg as f0MeetingTrackKinds, Vl as f0ProgressSeriesColors, Bl as f0ProgressSeriesSizes, zg as f0WindowCorners, nR as fromParams, Ye as generateCSVContent, be as getAutoPerPageMinHeight, dc as getGranularityDefinition, Vs as getGranularityDefinitions, gc as getGranularitySimpleDefinition, Bc as googleMapStyles, Nc as googlePinlessMapStyles, cc as granularityDefinitions, eR as homeSlot, lo as isPossiblePhoneValue, KD as isPost, UD as isSystemMessage, GD as isUserMessage, Ta as isValidPhoneValue, kb as layoutGrid, g as listIconColors, dR as listMoreButtonClass, tR as listSlot, lp as locationInputSizes, up as locationParts, ky as matchDevice, Pd as meetingStates, Bo as modules, Jg as nearestCorner, Tm as oneListItemRowClassName, dp as phoneInputSizes, qg as placementFromRect, Ne as predefinedPresets, zd as pulseDotVariants, oR as railActionTones, ac as rangeSeparator, Cy as readMeetingMediaPreferences, Mb as reorderForSpeakers, Bd as resizableDirections, _b as resolveAutoFocus, nc as resolveGranularityDefinition, Kg as resolvePlacement, ZL as resolveSlotRenderer, rR as resolveWidgetHeader, wh as sanitizeMeetingReaction, PE as seedFromStorage, D as selectSizes, Se as selectVariants, Yg as settlePlacement, lR as slotRowBleed, Ob as solveGrid, Nb as solveSpotlight, wf as swipeDirections, Ag as tileAspectRatio, Tg as tileKey, wy as updateMeetingMediaPreferences, au as useAiPromotionChat, zD as useCommandPalette, Bp as useCompactOnScroll, ld as useConfetti, re as useDataCollectionData, FE as useDataCollectionItemNavigation, me as useDataCollectionSource, Vt as useExportAction, gl as useF0Chat, Jm as useF0Meeting, Xm as useF0MeetingRoster, Ym as useF0MeetingStable, qm as useHasF0Meeting, o as useInfiniteScrollPagination, bL as useIsBulkChange, Ty as useMeetingMediaPreferences, Ub as useMeetingSignal, Wb as useMeetingSpeakers, p_ as useMeetingSurface, m_ as useMeetingSurfaceOptional, uC as usePageHeaderItemNavigation, lC as usePageHeaderNavigation, zi as useSidePanel, Ec as useSidebar, JC as useSidebarChatActions, qC as useSidebarChats, Cf as useSwipeDeck, $m as useTrackBinding, r as useWidgetIsWide, OS as viewportRect, sR as widgetChrome, aR as widgetParamsAreComplete, iR as widgetTitle };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@factorialco/f0-react",
3
- "version": "12.3.0",
3
+ "version": "12.5.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/factorialco/f0.git",