@factorialco/f0-react 7.35.0 → 7.36.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.
Files changed (32) hide show
  1. package/dist/{ChatPdfThumbnail-BDgzIfCN.js → ChatPdfThumbnail-DtfR1SAC.js} +1 -1
  2. package/dist/{ChatPostComposerDialog-SVcKg-wn.js → ChatPostComposerDialog-CxaeR8Vv.js} +3 -3
  3. package/dist/{DocumentToolbar-gJWaStGV.js → DocumentToolbar-Cu151FpB.js} +2 -2
  4. package/dist/{DocxViewer-BXXgJXpj.js → DocxViewer-BqD75taI.js} +2 -2
  5. package/dist/{F0AiProcessingOverlay-BsKOOcJf.js → F0AiProcessingOverlay-Bwmzd2o8.js} +2648 -2524
  6. package/dist/{F0CanvasPanel-B8GTWbHT.js → F0CanvasPanel-DvxjOp3m.js} +21410 -21296
  7. package/dist/{F0Map-Bva6_CXT.js → F0Map-CGZjOG11.js} +564 -483
  8. package/dist/{F0VideoPlayer-COE_GnIT.js → F0VideoPlayer-B_IfaZ6N.js} +2 -2
  9. package/dist/{MapProvider-D7fCPtpO.js → MapProvider-By9Tk09N.js} +2 -2
  10. package/dist/{SheetViewer-BX20kP4V.js → SheetViewer-CspxsxLt.js} +2 -2
  11. package/dist/{TextViewer-DUWw3Q54.js → TextViewer-DIsaa4Y4.js} +2 -2
  12. package/dist/ai.d.ts +159 -17
  13. package/dist/ai.js +2 -2
  14. package/dist/component-status.d.ts +10 -10
  15. package/dist/component-status.js +1 -1
  16. package/dist/{experimental-uK79fur-.js → experimental-BD0iEWNv.js} +7 -7
  17. package/dist/experimental.d.ts +69 -20
  18. package/dist/experimental.js +58 -58
  19. package/dist/f0.d.ts +166 -19
  20. package/dist/f0.js +12 -20
  21. package/dist/i18n-provider-defaults.d.ts +12 -10
  22. package/dist/i18n-provider-defaults.js +2 -0
  23. package/dist/{index-BJw_9Cag.js → index-DUKAr0H2.js} +3 -3
  24. package/dist/{index-D7YSSoL3.js → index-DcQIDzx6.js} +2 -2
  25. package/dist/index-DcZSmX1C.js +322 -0
  26. package/dist/index-DtGGGJrE.js +4 -0
  27. package/dist/{index-BDGCJ0_G.js → index-UiHhshSR.js} +3 -3
  28. package/dist/{pdfWorker-DG2DNdLq.js → pdfWorker-By8Miy58.js} +2 -2
  29. package/dist/styles.css +1 -1
  30. package/package.json +1 -1
  31. package/dist/index-Bgs0HZ5x.js +0 -4
  32. package/dist/index-C3iCeJK1.js +0 -281
@@ -1,9 +1,9 @@
1
- import { u as W, H as je, J as Xe, y as $, K as Ge, L as Ze, M as Ye, N as qe, O as Je, Q as Qe, R as et, U as tt, V as nt, W as rt, X as at, Y as ot, Z as st, _ as ye, $ as it, a0 as Pe, l as ct, a1 as lt, a2 as dt, v as ut, B as ft, E as mt } from "./F0CanvasPanel-B8GTWbHT.js";
1
+ import { u as W, H as je, J as Xe, y as $, K as Ge, L as Ze, M as Ye, N as qe, O as Je, Q as Qe, R as et, U as tt, V as nt, W as rt, X as at, Y as ot, Z as st, _ as ye, $ as it, a0 as Pe, l as ct, a1 as lt, a2 as dt, v as ut, B as ft, E as mt } from "./F0CanvasPanel-DvxjOp3m.js";
2
2
  import { jsxs as R, jsx as c } from "react/jsx-runtime";
3
3
  import { forwardRef as re, useId as pt, useState as x, useRef as F, useEffect as _, useMemo as J, useCallback as M } from "react";
4
4
  import { d as H, f as de } from "./tooltip-CrXp1Uaz.js";
5
5
  import { F as Ce, a as ht, b as gt } from "./VolumeMuted-UfTwt2zn.js";
6
- import { b as vt } from "./MapProvider-D7fCPtpO.js";
6
+ import { b as vt } from "./MapProvider-By9Tk09N.js";
7
7
  function Re(e) {
8
8
  return Array.isArray(e) && e.every(
9
9
  (t) => typeof t == "object" && t !== null && "locale" in t && "value" in t
@@ -1,7 +1,7 @@
1
1
  import { jsx as m, jsxs as R, Fragment as qe } from "react/jsx-runtime";
2
2
  import * as Ue from "react";
3
3
  import ie, { useRef as F, useState as Z, useCallback as Y, useEffect as re, useContext as gt, useMemo as J, createContext as jt, forwardRef as Qe, useLayoutEffect as qt, memo as Mt, useReducer as IB, cloneElement as CT, PureComponent as nd, useId as Pi, useImperativeHandle as Js, Fragment as Bf, createElement as Am, isValidElement as MB, Suspense as PB, lazy as RB, useDebugValue as ET, version as s4, createRef as NT, useSyncExternalStore as a4 } from "react";
4
- import { f4 as l4, f5 as Ku, f6 as LB, cO as AT, f7 as FB, f8 as $B, f9 as BB, fa as _v, fb as zB, fc as jB, fd as HB, fe as VB, ff as WB, fg as UB, fh as qB, ab as rt, fi as TT, fj as KB, ck as zt, aJ as Gu, aK as id, au as GB, av as YB, cQ as co, B as Ft, E as ii, G as rd, dh as Sk, ev as Ck, ew as Tm, S as Be, fk as OT, ex as Ek, u as Re, v as st, bj as Yu, cn as pc, br as My, r as Nk, cU as XB, cA as DT, cR as JB, df as ZB, e3 as IT, y as Ie, aY as Xu, fl as QB, b4 as ez, b5 as tz, fm as nz, cu as MT, dM as iz, fn as PT, d9 as RT, fo as rz, fp as oz, fq as ma, fr as Lt, fs as Ni, ft as LT, fu as sz, fv as FT, fw as az, fx as Xn, fy as Py, fz as pn, fA as $T, fB as Ry, fC as Ak, fD as Tk, fE as Ok, fF as Wn, fG as Ci, fH as Mb, fI as Ly, fJ as lz, fK as ai, fL as Mo, fM as ki, fN as sl, fO as Dk, fP as Fy, fQ as qp, fR as $y, eB as Ik, fS as cz, fT as Kh, fU as Om, fV as dz, fW as fz, fX as uz, fY as hz, fZ as pz, f_ as mz, f$ as BT, g0 as zT, g1 as jT, g2 as HT, g3 as VT, g4 as gz, g5 as Dm, g6 as yz, g7 as vz, g8 as Ju, g9 as Zs, cY as qo, ga as Mk, gb as Bo, gc as WT, cZ as UT, gd as bz, ge as wz, cW as xz, gf as kz, cX as _z, dj as li, gg as ci, gh as Sz, gi as Cz, gj as Ez, gk as Nz, gl as Az, gm as Pb, gn as Tz, a4 as qT, go as KT, eu as yr, aa as tn, eN as Oz, dq as Rr, cC as od, d4 as Ha, am as Zu, an as Dz, dH as Iz, gp as GT, gq as YT, o as Mz, ad as al, cv as sd, ez as XT, cE as JT, cF as Pk, a9 as Qu, L as By, gr as Pz, es as ZT, de as Rz, gs as QT, eR as $n, gt as eO, gu as tO, gv as Rb, gw as Lz, gx as c4, gy as nO, et as eh, eZ as iO, dv as rO, eT as zy, H as jy, J as Rk, K as Hy, eX as Fz, k as Qn, aE as d4, aM as $z, a_ as Bz, bw as Lk, gz as oO, gA as zz, eS as Fk, gB as $k, gC as sO, gD as ll, gE as Sv, bV as aO, ct as cl, ai as hr, dk as Hs, eq as jz, gF as f4, em as Bk, gG as Hz, dT as Vz, e7 as Wz, e5 as Uz, gH as lO, gI as qz, cP as Kz, gJ as Gz, gK as cO, af as dO, gL as Yz, gM as Xz, gN as Jz, gO as u4, gP as h4, gQ as p4, gR as m4, gS as Zz, aC as Qz, gT as fO, ds as ej, gU as tj, cK as ad, M as uO, N as hO, Q as pO, ea as nj, gV as ij, gW as g4, dR as Im, eL as zf, U as mO, V as gO, X as yO, Y as vO, w as dl, co as Ko, s as rj, x as oj, gX as sj, z as zk, gY as bO, gZ as wO, g_ as aj, g$ as Mm, h0 as lj, h1 as cj, h2 as Da, h3 as dj, h4 as y4, h5 as fj, h6 as uj, h7 as Pm, h8 as hj, h9 as pj, ha as mj, hb as xO, hc as gj, hd as kO, he as yj, hf as Vy, hg as ld, hh as vj, hi as jk, hj as an, cN as jf, hk as ti, c_ as th, hl as bj, a7 as Va, at as Lb, dm as wj, dn as xj, cw as _O, cx as SO, cy as CO, hm as Hk, hn as kj, d3 as EO, bP as nh, aS as Qo, ek as NO, el as AO, aG as TO, aV as _j, ce as OO, dG as Sj, ho as Cj, hp as Ej, hq as Rm, hr as No, m as Nj, c2 as Aj, hs as Tj, dZ as Oj, aR as Lm, c5 as DO, c0 as Dj, ey as v4, ej as Ij, aZ as Mj, ht as Pj, hu as Wy, hv as Uy, hw as qy, cz as Ky, hx as Rj, hy as Fm, hz as Lj, hA as Fj, dp as $j, hB as IO, by as Cv, hC as Bj, hD as zj, bB as jj, bH as Hj, hE as b4, hF as Vj, hG as w4, hH as Ev, hI as MO, a1 as PO, c1 as Wj, a5 as Uj, i as Vk, hJ as qj, hK as Kj, dO as Gj, j as Wk, eG as Yj, bU as Xj, bL as Jj, bt as x4, bx as Uk, ca as Zj, eh as Qj, hL as RO, hM as eH, hN as qk, l as tH, ax as nH, aT as iH, c3 as rH, hO as oH, hP as sH, A as aH, hQ as lH, hR as cH, hS as dH, hT as fH, hU as LO, cd as uH, hV as Kk, hW as hH, hX as pH, hY as mH, hZ as Nv, h_ as gH, h$ as De, i0 as ih, i1 as yH, i2 as vH, i3 as bH, i4 as wH, i5 as k4, i6 as xH, i7 as $m, R as kH, i8 as _H, i9 as Av, ia as Gh, ib as SH, ic as CH, id as EH, ie as NH, ig as AH, aw as TH, c as OH, c4 as DH, W as Tv, ih as rh, ii as Gk, ij as Yk, ik as oh, il as IH, b_ as MH, eH as Xk, ec as _4, al as PH, ah as RH, ef as LH, az as FH, bs as $H, cc as BH, c8 as zH, bl as FO, bm as $O, bn as BO, bK as zO, aI as jO, aq as HO, ao as VO, ar as WO, ap as UO, aO as qO, bZ as KO, cB as GO, im as YO, io as jH, cJ as HH, ba as VH, b8 as WH, b7 as UH, b6 as qH, b9 as KH, bo as GH, cf as YH, cm as XH, cl as JH, cb as ZH, bF as QH, bO as eV, a2 as tV, cr as nV, ip as iV, iq as Ov, ir as rV, bu as oV, is as XO, cI as sV, it as aV, iu as lV, iv as cV, iw as dV, cD as fV, dQ as uV, cq as hV, ix as pV } from "./F0CanvasPanel-B8GTWbHT.js";
4
+ import { f4 as l4, f5 as Ku, f6 as LB, cO as AT, f7 as FB, f8 as $B, f9 as BB, fa as _v, fb as zB, fc as jB, fd as HB, fe as VB, ff as WB, fg as UB, fh as qB, ab as rt, fi as TT, fj as KB, cl as zt, aJ as Gu, aK as id, au as GB, av as YB, cQ as co, B as Ft, E as ii, G as rd, dh as Sk, ev as Ck, ew as Tm, S as Be, fk as OT, ex as Ek, u as Re, v as st, bj as Yu, co as pc, br as My, r as Nk, cU as XB, cB as DT, cR as JB, df as ZB, e3 as IT, y as Ie, aY as Xu, fl as QB, b4 as ez, b5 as tz, fm as nz, cv as MT, dM as iz, fn as PT, d9 as RT, fo as rz, fp as oz, fq as ma, fr as Lt, fs as Ni, ft as LT, fu as sz, fv as FT, fw as az, fx as Xn, fy as Py, fz as pn, fA as $T, fB as Ry, fC as Ak, fD as Tk, fE as Ok, fF as Wn, fG as Ci, fH as Mb, fI as Ly, fJ as lz, fK as ai, fL as Mo, fM as ki, fN as sl, fO as Dk, fP as Fy, fQ as qp, fR as $y, eB as Ik, fS as cz, fT as Kh, fU as Om, fV as dz, fW as fz, fX as uz, fY as hz, fZ as pz, f_ as mz, f$ as BT, g0 as zT, g1 as jT, g2 as HT, g3 as VT, g4 as gz, g5 as Dm, g6 as yz, g7 as vz, g8 as Ju, g9 as Zs, cY as qo, ga as Mk, gb as Bo, gc as WT, cZ as UT, gd as bz, ge as wz, cW as xz, gf as kz, cX as _z, dj as li, gg as ci, gh as Sz, gi as Cz, gj as Ez, gk as Nz, gl as Az, gm as Pb, gn as Tz, a4 as qT, go as KT, eu as yr, aa as tn, eN as Oz, dq as Rr, ck as od, d4 as Ha, am as Zu, an as Dz, dH as Iz, gp as GT, gq as YT, o as Mz, ad as al, cw as sd, ez as XT, cE as JT, cF as Pk, a9 as Qu, L as By, gr as Pz, es as ZT, de as Rz, gs as QT, eR as $n, gt as eO, gu as tO, gv as Rb, gw as Lz, gx as c4, gy as nO, et as eh, eZ as iO, dv as rO, eT as zy, H as jy, J as Rk, K as Hy, eX as Fz, k as Qn, aE as d4, aM as $z, a_ as Bz, bw as Lk, gz as oO, gA as zz, eS as Fk, gB as $k, gC as sO, gD as ll, gE as Sv, bV as aO, cu as cl, ai as hr, dk as Hs, eq as jz, gF as f4, em as Bk, gG as Hz, dT as Vz, e7 as Wz, e5 as Uz, gH as lO, gI as qz, cP as Kz, gJ as Gz, gK as cO, af as dO, gL as Yz, gM as Xz, gN as Jz, gO as u4, gP as h4, gQ as p4, gR as m4, gS as Zz, aC as Qz, gT as fO, ds as ej, gU as tj, cK as ad, M as uO, N as hO, Q as pO, ea as nj, gV as ij, gW as g4, dR as Im, eL as zf, U as mO, V as gO, X as yO, Y as vO, w as dl, cp as Ko, s as rj, x as oj, gX as sj, z as zk, gY as bO, gZ as wO, g_ as aj, g$ as Mm, h0 as lj, h1 as cj, h2 as Da, h3 as dj, h4 as y4, h5 as fj, h6 as uj, h7 as Pm, h8 as hj, h9 as pj, ha as mj, hb as xO, hc as gj, hd as kO, he as yj, hf as Vy, hg as ld, hh as vj, hi as jk, hj as an, cN as jf, hk as ti, c_ as th, hl as bj, a7 as Va, at as Lb, dm as wj, dn as xj, cx as _O, cy as SO, cz as CO, hm as Hk, hn as kj, d3 as EO, bP as nh, aS as Qo, ek as NO, el as AO, aG as TO, aV as _j, ce as OO, dG as Sj, ho as Cj, hp as Ej, hq as Rm, hr as No, m as Nj, c2 as Aj, hs as Tj, dZ as Oj, aR as Lm, c5 as DO, c0 as Dj, ey as v4, ej as Ij, aZ as Mj, ht as Pj, hu as Wy, hv as Uy, hw as qy, cA as Ky, hx as Rj, hy as Fm, hz as Lj, hA as Fj, dp as $j, hB as IO, by as Cv, hC as Bj, hD as zj, bB as jj, bH as Hj, hE as b4, hF as Vj, hG as w4, hH as Ev, hI as MO, a1 as PO, c1 as Wj, a5 as Uj, i as Vk, hJ as qj, hK as Kj, dO as Gj, j as Wk, eG as Yj, bU as Xj, bL as Jj, bt as x4, bx as Uk, ca as Zj, eh as Qj, hL as RO, hM as eH, hN as qk, l as tH, ax as nH, aT as iH, c3 as rH, hO as oH, hP as sH, A as aH, hQ as lH, hR as cH, hS as dH, hT as fH, hU as LO, cd as uH, hV as Kk, hW as hH, hX as pH, hY as mH, hZ as Nv, h_ as gH, h$ as De, i0 as ih, i1 as yH, i2 as vH, i3 as bH, i4 as wH, i5 as k4, i6 as xH, i7 as $m, R as kH, i8 as _H, i9 as Av, ia as Gh, ib as SH, ic as CH, id as EH, ie as NH, ig as AH, aw as TH, c as OH, c4 as DH, W as Tv, ih as rh, ii as Gk, ij as Yk, ik as oh, il as IH, b_ as MH, eH as Xk, ec as _4, al as PH, ah as RH, ef as LH, az as FH, bs as $H, cc as BH, c8 as zH, bl as FO, bm as $O, bn as BO, bK as zO, aI as jO, aq as HO, ao as VO, ar as WO, ap as UO, aO as qO, bZ as KO, cC as GO, im as YO, io as jH, cJ as HH, ba as VH, b8 as WH, b7 as UH, b6 as qH, b9 as KH, bo as GH, cf as YH, cn as XH, cm as JH, cb as ZH, bF as QH, bO as eV, a2 as tV, cs as nV, ip as iV, iq as Ov, ir as rV, bu as oV, is as XO, cI as sV, it as aV, iu as lV, iv as cV, iw as dV, cD as fV, dQ as uV, cr as hV, ix as pV } from "./F0CanvasPanel-DvxjOp3m.js";
5
5
  import { d as U, g as mV, e as di, T as sh, a as ah, b as lh, f as ln, u as Jk, S as gV, c as Gy } from "./tooltip-CrXp1Uaz.js";
6
6
  import { g as ch } from "./_commonjsHelpers-ByX85dGu.js";
7
7
  import JO, { unstable_batchedUpdates as Yh, createPortal as Yy, flushSync as yV } from "react-dom";
@@ -38529,7 +38529,7 @@ const S0 = ({
38529
38529
  }
38530
38530
  );
38531
38531
  }, Mue = RB(
38532
- () => import("./index-BJw_9Cag.js").then((e) => ({ default: e.MapCollection }))
38532
+ () => import("./index-DUKAr0H2.js").then((e) => ({ default: e.MapCollection }))
38533
38533
  ), Ws = {
38534
38534
  table: {
38535
38535
  name: "Table",
@@ -1,8 +1,8 @@
1
1
  import { jsxs as a, jsx as r, Fragment as N } from "react/jsx-runtime";
2
2
  import { useState as i, useEffect as k } from "react";
3
- import { u as v, T as S, h as V, S as R } from "./F0CanvasPanel-B8GTWbHT.js";
3
+ import { u as v, T as S, h as V, S as R } from "./F0CanvasPanel-DvxjOp3m.js";
4
4
  import { f as z, c as E } from "./sheetPreview-Djc-YyVs.js";
5
- import { u as _, D as j } from "./DocumentToolbar-gJWaStGV.js";
5
+ import { u as _, D as j } from "./DocumentToolbar-Cu151FpB.js";
6
6
  const g = 1e3, F = 100, G = ({
7
7
  url: n,
8
8
  filename: y,
@@ -1,7 +1,7 @@
1
1
  import { jsxs as b, jsx as e } from "react/jsx-runtime";
2
2
  import { useState as _, useEffect as h } from "react";
3
- import { u as x, S as p, p as w } from "./F0CanvasPanel-B8GTWbHT.js";
4
- import { u as y, D as g } from "./DocumentToolbar-gJWaStGV.js";
3
+ import { u as x, S as p, p as w } from "./F0CanvasPanel-DvxjOp3m.js";
4
+ import { u as y, D as g } from "./DocumentToolbar-Cu151FpB.js";
5
5
  const k = 2 * 1024 * 1024, v = [
6
6
  "[&_h1]:mb-3 [&_h1]:mt-6 [&_h1]:text-2xl [&_h1]:font-semibold",
7
7
  "[&_h2]:mb-2 [&_h2]:mt-5 [&_h2]:text-xl [&_h2]:font-semibold",
package/dist/ai.d.ts CHANGED
@@ -212,6 +212,73 @@ declare const actionVariants: readonly ["default", "outline", "critical", "neutr
212
212
 
213
213
  export declare type AggregationType = "count" | "sum" | "avg" | "min" | "max" | "countDistinct";
214
214
 
215
+ /**
216
+ * An entry in the composer's attachment menu — see `composerActions` on
217
+ * `F0AiChatTextArea`. Attaching a file is NOT one of these: the composer
218
+ * contributes that entry itself from `fileAttachments`, so a host adding
219
+ * "Connectors" doesn't have to rewire the file picker to keep it.
220
+ */
221
+ export declare type AiChatComposerAction = AiChatComposerActionItem | AiChatComposerActionSubmenu | AiChatComposerActionToggle | AiChatComposerActionSeparator;
222
+
223
+ /** What every composer-menu entry shows, whatever choosing it does. */
224
+ declare type AiChatComposerActionBase = {
225
+ /**
226
+ * Host-side bookkeeping — a key for the host's own list, and what it reads
227
+ * back in analytics. The composer neither renders it nor keys the menu by it.
228
+ */
229
+ id: string;
230
+ label: string;
231
+ icon?: IconType;
232
+ /** A partner's logo, where an f0 icon would be wrong — a connector's mark. */
233
+ avatar?: AvatarVariant;
234
+ /** Short trailing tag beside the label, e.g. "New". Not a sentence. */
235
+ tag?: string;
236
+ /** Secondary line under the label. */
237
+ description?: string;
238
+ disabled?: boolean;
239
+ /**
240
+ * Shown on hover while `disabled` — say why the action is unavailable.
241
+ * HOVER-ONLY: a disabled menu entry is not focusable, so this text never
242
+ * reaches the keyboard or a screen reader. Never put anything here that the
243
+ * label alone doesn't already imply.
244
+ */
245
+ disabledTooltip?: string;
246
+ };
247
+
248
+ /** An entry that DOES something and closes the menu. */
249
+ export declare type AiChatComposerActionItem = AiChatComposerActionBase & {
250
+ type?: "action";
251
+ onClick: () => void;
252
+ };
253
+
254
+ /** A rule between groups of entries. Carries no label and nothing to press. */
255
+ export declare type AiChatComposerActionSeparator = {
256
+ type: "separator";
257
+ };
258
+
259
+ /**
260
+ * An entry that opens a menu of its own beside this one. Use it to keep a long
261
+ * or stateful list one step in — the connectors this chat can reach — instead
262
+ * of unrolling it where the file picker lives.
263
+ */
264
+ export declare type AiChatComposerActionSubmenu = AiChatComposerActionBase & {
265
+ type: "submenu";
266
+ actions: AiChatComposerAction[];
267
+ /** Shown inside the submenu while `actions` is empty, so it never opens bare. */
268
+ emptyLabel?: string;
269
+ };
270
+
271
+ /**
272
+ * An entry you flip rather than press: it carries a switch and the menu STAYS
273
+ * OPEN, so several can be set in one visit. The host owns `checked` — the
274
+ * composer renders what it is told and reports back through `onCheckedChange`.
275
+ */
276
+ export declare type AiChatComposerActionToggle = AiChatComposerActionBase & {
277
+ type: "toggle";
278
+ checked: boolean;
279
+ onCheckedChange: (checked: boolean) => void;
280
+ };
281
+
215
282
  /**
216
283
  * Credits configuration for the AI chat.
217
284
  * Groups all credits-related props into a single object.
@@ -952,6 +1019,8 @@ export declare const aiTranslations: {
952
1019
  readonly dismiss: "Dismiss";
953
1020
  };
954
1021
  readonly attachFile: "Attach file";
1022
+ readonly addToConversation: "Add to this conversation";
1023
+ readonly addFilesOrPhotos: "Add files or photos";
955
1024
  readonly recordAudio: "Record audio";
956
1025
  readonly listening: "Listening…";
957
1026
  readonly stopRecording: "Stop and transcribe";
@@ -3071,6 +3140,8 @@ export declare const defaultTranslations: {
3071
3140
  readonly dismiss: "Dismiss";
3072
3141
  };
3073
3142
  readonly attachFile: "Attach file";
3143
+ readonly addToConversation: "Add to this conversation";
3144
+ readonly addFilesOrPhotos: "Add files or photos";
3074
3145
  readonly recordAudio: "Record audio";
3075
3146
  readonly listening: "Listening…";
3076
3147
  readonly stopRecording: "Stop and transcribe";
@@ -3853,20 +3924,16 @@ declare type DetailsItemContent = (ComponentProps<typeof DataList.Item> & {
3853
3924
  */
3854
3925
  declare type DistributiveOmit<T, K extends PropertyKey> = T extends unknown ? Omit<T, K> : never;
3855
3926
 
3856
- declare type DropdownItem = DropdownItemObject | DropdownItemSeparator | DropdownItemLabel;
3927
+ declare type DropdownItem = DropdownItemObject | DropdownItemSeparator | DropdownItemLabel | DropdownItemSubmenu | DropdownItemSwitch;
3857
3928
 
3858
3929
  declare type DropdownItemLabel = {
3859
3930
  type: "label";
3860
3931
  text: string;
3861
3932
  };
3862
3933
 
3863
- declare type DropdownItemObject = Pick<NavigationItem, "label" | "href"> & {
3934
+ declare type DropdownItemObject = Pick<NavigationItem, "label" | "href"> & Omit<DropdownItemVisuals, "label"> & {
3864
3935
  type?: "item";
3865
3936
  onClick?: () => void;
3866
- icon?: IconType;
3867
- description?: string;
3868
- critical?: boolean;
3869
- avatar?: AvatarVariant;
3870
3937
  disabled?: boolean;
3871
3938
  /**
3872
3939
  * Tooltip shown on hover while the item is `disabled` — use it to explain why
@@ -3881,6 +3948,48 @@ declare type DropdownItemSeparator = {
3881
3948
  type: "separator";
3882
3949
  };
3883
3950
 
3951
+ /**
3952
+ * A row that opens a menu of its own beside this one, rather than doing
3953
+ * something. Use it to keep a long list one step in — the connectors a chat can
3954
+ * reach, say — instead of unrolling it into the parent menu.
3955
+ */
3956
+ declare type DropdownItemSubmenu = DropdownItemVisuals & {
3957
+ type: "submenu";
3958
+ items: DropdownItem[];
3959
+ disabled?: boolean;
3960
+ /**
3961
+ * Shown INSIDE the submenu when `items` is empty, so choosing it never opens
3962
+ * an empty panel. Without it an empty submenu renders nothing.
3963
+ */
3964
+ emptyLabel?: string;
3965
+ };
3966
+
3967
+ /**
3968
+ * A row you flip rather than press: it carries a switch, and choosing it keeps
3969
+ * the menu open so several can be set in a row. The item itself is what the
3970
+ * keyboard and the accessibility tree see (`aria-checked`); the switch is drawn
3971
+ * for the eye only.
3972
+ */
3973
+ declare type DropdownItemSwitch = DropdownItemVisuals & {
3974
+ type: "switch";
3975
+ checked: boolean;
3976
+ onCheckedChange: (checked: boolean) => void;
3977
+ disabled?: boolean;
3978
+ /** Tooltip shown on hover while `disabled`, as on `DropdownItemObject`. */
3979
+ disabledTooltip?: string;
3980
+ };
3981
+
3982
+ /** What any row shows, whatever it does when you choose it. */
3983
+ declare type DropdownItemVisuals = {
3984
+ label: string;
3985
+ icon?: IconType;
3986
+ description?: string;
3987
+ avatar?: AvatarVariant;
3988
+ /** Short trailing tag beside the label, e.g. "New". Not a sentence. */
3989
+ tag?: string;
3990
+ critical?: boolean;
3991
+ };
3992
+
3884
3993
  export declare const DropOverlay: ({ visible, onFilesDropped, mode, }: DropOverlayProps) => JSX_2.Element;
3885
3994
 
3886
3995
  declare interface DropOverlayProps {
@@ -4157,7 +4266,7 @@ export declare const F0AiChatProvider: ({ enabled, side, panelContentSide, initi
4157
4266
  * coupling to `useAiChat()` or CopilotKit — wrappers like F0AiChat
4158
4267
  * provide the wiring.
4159
4268
  */
4160
- export declare const F0AiChatTextArea: ({ onSubmit, onStop, inProgress, onBeforeSubmit, placeholders, creditWarning, clarifyingUI, pendingContext, onPendingContextChange, pendingQuote, onPendingQuoteChange, fileAttachments, toolbarStart, onTranscribe, searchPersons, mentionSources, onProcessFilesRef, disclaimer, usageLimits, footer, isWelcomeScreen, fullscreen, welcomeScreenSuggestions, onSuggestionClick, welcomeScreenSuggestionsPlacement, welcomeScreenSuggestionsCollapsedByDefault, welcomeScreenCards, padding, ref, }: F0AiChatTextAreaProps) => JSX_2.Element;
4269
+ export declare const F0AiChatTextArea: ({ onSubmit, onStop, inProgress, onBeforeSubmit, placeholders, creditWarning, clarifyingUI, pendingContext, onPendingContextChange, pendingQuote, onPendingQuoteChange, fileAttachments, toolbarStart, composerActions, onComposerActionsOpenChange, onTranscribe, searchPersons, mentionSources, onProcessFilesRef, disclaimer, usageLimits, footer, isWelcomeScreen, fullscreen, welcomeScreenSuggestions, onSuggestionClick, welcomeScreenSuggestionsPlacement, welcomeScreenSuggestionsCollapsedByDefault, welcomeScreenCards, padding, ref, }: F0AiChatTextAreaProps) => JSX_2.Element;
4161
4270
 
4162
4271
  export declare type F0AiChatTextAreaProps = {
4163
4272
  ref: RefObject<HTMLDivElement>;
@@ -4195,6 +4304,39 @@ export declare type F0AiChatTextAreaProps = {
4195
4304
  onPendingQuoteChange?: (quote: PendingQuote | null) => void;
4196
4305
  /** File attachment configuration. When omitted, attachments are disabled. */
4197
4306
  fileAttachments?: AiChatFileAttachmentConfig;
4307
+ /**
4308
+ * Extra actions offered where the attachment control sits.
4309
+ *
4310
+ * Omitted or empty — the default — leaves the paperclip exactly as it is: one
4311
+ * button that opens the file picker. With at least one action the paperclip
4312
+ * becomes a `+` that opens a menu, and attaching a file becomes the FIRST
4313
+ * entry in it rather than disappearing. The composer contributes that entry
4314
+ * from `fileAttachments`, so a host adding "Connectors" doesn't have to
4315
+ * rewire the file picker to keep it.
4316
+ *
4317
+ * Without `fileAttachments` the menu holds only these actions and no file
4318
+ * entry, which is how a host offers "add context" on a composer that takes
4319
+ * no uploads.
4320
+ *
4321
+ * Reaching `maxFiles` disables the file entry alone — the host's actions have
4322
+ * nothing to do with the file count and stay live. Transcribing disables the
4323
+ * whole trigger, as it does the paperclip today.
4324
+ */
4325
+ composerActions?: AiChatComposerAction[];
4326
+ /**
4327
+ * Told when the `+` menu opens and when it closes.
4328
+ *
4329
+ * There for hosts whose entries cost something to produce: a list that has to
4330
+ * be fetched can stay unfetched until the menu is actually opened, instead of
4331
+ * loading on every composer that might never be opened at all. Fires only
4332
+ * where there IS a menu — with no `composerActions` the control is the plain
4333
+ * paperclip and there is nothing to open.
4334
+ *
4335
+ * It reports the ROOT menu, not a submenu: on a phone a submenu flattens into
4336
+ * the same sheet, so there is no second moment to report and a host that
4337
+ * loaded on this one has its entries ready either way.
4338
+ */
4339
+ onComposerActionsOpenChange?: (open: boolean) => void;
4198
4340
  /**
4199
4341
  * Host-owned compact controls rendered after the attachment action in the
4200
4342
  * normal action row. Controls render inside the chat form, so buttons must
@@ -6602,9 +6744,11 @@ declare namespace Calendar {
6602
6744
 
6603
6745
  declare module "@tiptap/core" {
6604
6746
  interface Commands<ReturnType> {
6605
- fontSize: {
6606
- setFontSize: (fontSize: string) => ReturnType;
6607
- unsetFontSize: () => ReturnType;
6747
+ enhanceHighlight: {
6748
+ setEnhanceHighlight: (from: number, to: number, options?: {
6749
+ placeholder?: string;
6750
+ }) => ReturnType;
6751
+ clearEnhanceHighlight: () => ReturnType;
6608
6752
  };
6609
6753
  }
6610
6754
  }
@@ -6622,11 +6766,8 @@ declare module "@tiptap/core" {
6622
6766
 
6623
6767
  declare module "@tiptap/core" {
6624
6768
  interface Commands<ReturnType> {
6625
- enhanceHighlight: {
6626
- setEnhanceHighlight: (from: number, to: number, options?: {
6627
- placeholder?: string;
6628
- }) => ReturnType;
6629
- clearEnhanceHighlight: () => ReturnType;
6769
+ moodTracker: {
6770
+ insertMoodTracker: (data: MoodTrackerData) => ReturnType;
6630
6771
  };
6631
6772
  }
6632
6773
  }
@@ -6645,8 +6786,9 @@ declare module "@tiptap/core" {
6645
6786
 
6646
6787
  declare module "@tiptap/core" {
6647
6788
  interface Commands<ReturnType> {
6648
- moodTracker: {
6649
- insertMoodTracker: (data: MoodTrackerData) => ReturnType;
6789
+ fontSize: {
6790
+ setFontSize: (fontSize: string) => ReturnType;
6791
+ unsetFontSize: () => ReturnType;
6650
6792
  };
6651
6793
  }
6652
6794
  }
package/dist/ai.js CHANGED
@@ -1,6 +1,6 @@
1
- import { C as e, D as r, c as t, F as i, a as o, f as n, g as F, d as C, e as l, I as A, P as d, b as u, u as m } from "./F0CanvasPanel-B8GTWbHT.js";
1
+ import { C as e, D as r, c as t, F as i, a as o, f as n, g as F, d as C, e as l, I as A, P as d, b as u, u as m } from "./F0CanvasPanel-DvxjOp3m.js";
2
2
  import { defaultTranslations as c } from "./i18n-provider-defaults.js";
3
- import { A as g, C as p, t as v, s as I, v as T, y as S, B as f, l as y, i as x, q as b, E as k, G as B, p as H, r as L, j as M, e as O, g as V, k as w, F as D, T as z, w as E, h as G, a as j, n as q, z as R, m as U, o as J, D as K, b as N, f as Q, x as W, c as X, d as Y, u as Z } from "./F0AiProcessingOverlay-BsKOOcJf.js";
3
+ import { A as g, C as p, t as v, s as I, v as T, y as S, B as f, l as y, i as x, q as b, E as k, G as B, p as H, r as L, j as M, e as O, g as V, k as w, F as D, T as z, w as E, h as G, a as j, n as q, z as R, m as U, o as J, D as K, b as N, f as Q, x as W, c as X, d as Y, u as Z } from "./F0AiProcessingOverlay-Bwmzd2o8.js";
4
4
  export {
5
5
  g as AiChatTranslationsProvider,
6
6
  e as ChatSpinner,
@@ -296,9 +296,11 @@ declare namespace Calendar {
296
296
 
297
297
  declare module "@tiptap/core" {
298
298
  interface Commands<ReturnType> {
299
- fontSize: {
300
- setFontSize: (fontSize: string) => ReturnType;
301
- unsetFontSize: () => ReturnType;
299
+ enhanceHighlight: {
300
+ setEnhanceHighlight: (from: number, to: number, options?: {
301
+ placeholder?: string;
302
+ }) => ReturnType;
303
+ clearEnhanceHighlight: () => ReturnType;
302
304
  };
303
305
  }
304
306
  }
@@ -316,11 +318,8 @@ declare module "@tiptap/core" {
316
318
 
317
319
  declare module "@tiptap/core" {
318
320
  interface Commands<ReturnType> {
319
- enhanceHighlight: {
320
- setEnhanceHighlight: (from: number, to: number, options?: {
321
- placeholder?: string;
322
- }) => ReturnType;
323
- clearEnhanceHighlight: () => ReturnType;
321
+ moodTracker: {
322
+ insertMoodTracker: (data: MoodTrackerData) => ReturnType;
324
323
  };
325
324
  }
326
325
  }
@@ -339,8 +338,9 @@ declare module "@tiptap/core" {
339
338
 
340
339
  declare module "@tiptap/core" {
341
340
  interface Commands<ReturnType> {
342
- moodTracker: {
343
- insertMoodTracker: (data: MoodTrackerData) => ReturnType;
341
+ fontSize: {
342
+ setFontSize: (fontSize: string) => ReturnType;
343
+ unsetFontSize: () => ReturnType;
344
344
  };
345
345
  }
346
346
  }