@factorialco/f0-react 6.60.1 → 6.62.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.
@@ -1,5 +1,5 @@
1
1
  import { jsx as p } from "react/jsx-runtime";
2
- import { m } from "./experimental-DD8tLvvB.js";
2
+ import { m } from "./experimental-JPq5h5Bq.js";
3
3
  import { useRef as l, useEffect as i, useState as b } from "react";
4
4
  const k = "https://tiles.openfreemap.org/styles/positron", y = "https://tiles.openfreemap.org/styles/dark", R = 15, d = (n) => {
5
5
  const [c, s] = b(!1);
@@ -2,7 +2,7 @@ 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
3
  import { u as v, T as S, h as V, S as R } from "./F0CanvasPanel-DeUaUB_R.js";
4
4
  import { f as z, c as E } from "./sheetPreview-5qeAOp0W.js";
5
- import { u as _, D as j } from "./DocumentToolbar-bjYlFehE.js";
5
+ import { u as _, D as j } from "./DocumentToolbar-Z7OmeXbl.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
3
  import { u as x, S as p, p as w } from "./F0CanvasPanel-DeUaUB_R.js";
4
- import { u as y, D as g } from "./DocumentToolbar-bjYlFehE.js";
4
+ import { u as y, D as g } from "./DocumentToolbar-Z7OmeXbl.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
@@ -3492,7 +3492,7 @@ export declare const F0AiChatProvider: ({ enabled, side, panelContentSide, initi
3492
3492
  * coupling to `useAiChat()` or CopilotKit — wrappers like F0AiChat
3493
3493
  * provide the wiring.
3494
3494
  */
3495
- export declare const F0AiChatTextArea: ({ onSubmit, onStop, inProgress, onBeforeSubmit, placeholders, creditWarning, clarifyingUI, pendingContext, onPendingContextChange, pendingQuote, onPendingQuoteChange, fileAttachments, toolbarStart, onTranscribe, searchPersons, onProcessFilesRef, disclaimer, footer, isWelcomeScreen, fullscreen, welcomeScreenSuggestions, onSuggestionClick, welcomeScreenSuggestionsPlacement, welcomeScreenCards, padding, ref, }: F0AiChatTextAreaProps) => JSX_2.Element;
3495
+ export declare const F0AiChatTextArea: ({ onSubmit, onStop, inProgress, onBeforeSubmit, placeholders, creditWarning, clarifyingUI, pendingContext, onPendingContextChange, pendingQuote, onPendingQuoteChange, fileAttachments, toolbarStart, onTranscribe, searchPersons, onProcessFilesRef, disclaimer, footer, isWelcomeScreen, fullscreen, welcomeScreenSuggestions, onSuggestionClick, welcomeScreenSuggestionsPlacement, welcomeScreenSuggestionsCollapsedByDefault, welcomeScreenCards, padding, ref, }: F0AiChatTextAreaProps) => JSX_2.Element;
3496
3496
 
3497
3497
  export declare type F0AiChatTextAreaProps = {
3498
3498
  ref: RefObject<HTMLDivElement>;
@@ -3592,26 +3592,59 @@ export declare type F0AiChatTextAreaProps = {
3592
3592
  * single bar about two lines tall. Its popover opens downward, because up is
3593
3593
  * now the text you are about to type.
3594
3594
  *
3595
- * ⚠️ `"inside"` IS A COMPOSER SHAPE, NOT JUST A POSITION. It also moves the
3596
- * send button onto the textarea's own line (at `sm`, centred on the text) and
3597
- * puts One's mark in front of the text. Neither is a feature bolted onto this
3598
- * prop — they are what make the placement possible and legible. The action row
3599
- * is full-width, so a chips row plus an action row inside one field is three
3600
- * stacked bands and the "single bar" is gone; with send trailing the text there
3601
- * are two, text then suggestions. The attachment, host (`toolbarStart`) and
3602
- * dictation controls keep their own row when the host enables them; with none
3603
- * of them the field is just the two bands.
3595
+ * ⚠️ `"inside"` IS A COMPOSER SHAPE, NOT JUST A POSITION. The chips do not get
3596
+ * a band of their own: they take the middle of the ACTION row, between the
3597
+ * attachment/host controls and the dictation · send pair, and One's mark goes
3598
+ * in front of the text. That is what keeps the field two bands tall — text,
3599
+ * then one row of controls — instead of three. Because the chips share that
3600
+ * line, they scroll sideways rather than wrapping, with the overflowing ends
3601
+ * faded: ten groups cost the same height as three.
3604
3602
  *
3605
- * THE INLINE SEND FOLLOWS THE PROP, NOT THE WELCOME STATE. The suggestions
3603
+ * THE SHAPE FOLLOWS THE PROP, NOT THE WELCOME STATE. The suggestions
3606
3604
  * themselves are welcome-screen-only as they always were, but a composer that
3607
- * put send back in the action row the moment the first message landed would
3608
- * change shape under the reader mid-conversation. `"inside"` therefore keeps
3609
- * the two-band bar for the whole thread; after the welcome screen it is simply
3610
- * a bar with no chips in it.
3605
+ * dropped One's mark the moment the first message landed would change shape
3606
+ * under the reader mid-conversation. `"inside"` therefore keeps the bar for the
3607
+ * whole thread; after the welcome screen it is simply a bar with no chips in
3608
+ * it.
3611
3609
  *
3612
3610
  * @default "above"
3613
3611
  */
3614
3612
  welcomeScreenSuggestionsPlacement?: "above" | "inside";
3613
+ /**
3614
+ * Start closed, and open when the reader focuses the input — with a motion
3615
+ * reveal, the row growing into place.
3616
+ *
3617
+ * For hosts where the composer is not the thing the reader came for — a Home
3618
+ * hero, say — so the bar sits quiet until it is addressed, and the starter
3619
+ * prompts arrive at the moment they are useful.
3620
+ *
3621
+ * ⚠️ WITH `"inside"` THIS COLLAPSES THE WHOLE CONTROL ROW, not just the chips:
3622
+ * the field becomes ONE LINE — One's mark, the text, then dictation and send
3623
+ * trailing it at `sm` — and the chips, attachment and host controls arrive with
3624
+ * the row on focus. A row emptied of its chips would still be 56px of padding
3625
+ * around two buttons, which is not a quiet bar; it is the same two-band field
3626
+ * with a hole in it. Send comes along because a bar you cannot send from is not
3627
+ * a composer, and dictation because talking is a way to start a prompt without
3628
+ * typing one. With the row `"above"`, only that row collapses — the field below
3629
+ * it is a plain composer and does not change shape.
3630
+ *
3631
+ * FOCUS IS TRACKED ON THE WHOLE COMPOSER, not on the textarea: it closes when
3632
+ * focus leaves the field AND everything in it, including the suggestion panel
3633
+ * (which Radix portals outside the form). Closing on the textarea's own blur
3634
+ * would close the row the moment a chip took focus, which is every way of
3635
+ * picking one. Three things hold it open regardless of focus: anything already
3636
+ * typed or attached (a half-written prompt with no visible way to send it would
3637
+ * be a trap — and a host that forwards a dropped file can put one there without
3638
+ * the textarea ever being focused), and a recording in flight (its cancel ·
3639
+ * confirm pair lives in the row).
3640
+ *
3641
+ * ⚠️ It also suppresses the composer's own autofocus-on-mount, which would
3642
+ * otherwise open everything before the reader had touched anything and make
3643
+ * this prop a no-op. A collapsed composer starts unfocused.
3644
+ *
3645
+ * @default false
3646
+ */
3647
+ welcomeScreenSuggestionsCollapsedByDefault?: boolean;
3615
3648
  /**
3616
3649
  * Cards rendered as a grid below the composer on the fullscreen welcome
3617
3650
  * screen. Each card carries its own `onClick`; the host decides the behavior.
@@ -5726,18 +5759,6 @@ declare module "@tiptap/core" {
5726
5759
  }
5727
5760
 
5728
5761
 
5729
- declare module "@tiptap/core" {
5730
- interface Commands<ReturnType> {
5731
- enhanceHighlight: {
5732
- setEnhanceHighlight: (from: number, to: number, options?: {
5733
- placeholder?: string;
5734
- }) => ReturnType;
5735
- clearEnhanceHighlight: () => ReturnType;
5736
- };
5737
- }
5738
- }
5739
-
5740
-
5741
5762
  declare module "@tiptap/core" {
5742
5763
  interface Commands<ReturnType> {
5743
5764
  fontSize: {
@@ -5759,6 +5780,18 @@ declare module "@tiptap/core" {
5759
5780
  }
5760
5781
 
5761
5782
 
5783
+ declare module "@tiptap/core" {
5784
+ interface Commands<ReturnType> {
5785
+ enhanceHighlight: {
5786
+ setEnhanceHighlight: (from: number, to: number, options?: {
5787
+ placeholder?: string;
5788
+ }) => ReturnType;
5789
+ clearEnhanceHighlight: () => ReturnType;
5790
+ };
5791
+ }
5792
+ }
5793
+
5794
+
5762
5795
  declare module "@tiptap/core" {
5763
5796
  interface Commands<ReturnType> {
5764
5797
  moodTracker: {
package/dist/ai.js CHANGED
@@ -1,6 +1,6 @@
1
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 h } from "./F0CanvasPanel-DeUaUB_R.js";
2
2
  import { defaultTranslations as c } from "./i18n-provider-defaults.js";
3
- import { A as P, C as T, t as p, s as v, v as g, y as f, l as y, i as S, q as x, z as b, B as k, p as H, r as O, j as V, e as w, g as B, k as M, F as z, T as D, w as L, h as j, a as q, n as E, m as G, o as R, b as J, f as K, x as N, c as Q, d as U, u as W } from "./F0AiProcessingOverlay-D_AcT9g_.js";
3
+ import { A as P, C as T, t as p, s as v, v as g, y as f, l as y, i as S, q as x, z as b, B as k, p as H, r as O, j as V, e as w, g as B, k as M, F as z, T as D, w as L, h as j, a as q, n as E, m as G, o as R, b as J, f as K, x as N, c as Q, d as U, u as W } from "./F0AiProcessingOverlay-DZeOFTnB.js";
4
4
  export {
5
5
  P as AiChatTranslationsProvider,
6
6
  e as ChatSpinner,
@@ -304,18 +304,6 @@ declare module "@tiptap/core" {
304
304
  }
305
305
 
306
306
 
307
- declare module "@tiptap/core" {
308
- interface Commands<ReturnType> {
309
- enhanceHighlight: {
310
- setEnhanceHighlight: (from: number, to: number, options?: {
311
- placeholder?: string;
312
- }) => ReturnType;
313
- clearEnhanceHighlight: () => ReturnType;
314
- };
315
- }
316
- }
317
-
318
-
319
307
  declare module "@tiptap/core" {
320
308
  interface Commands<ReturnType> {
321
309
  fontSize: {
@@ -337,6 +325,18 @@ declare module "@tiptap/core" {
337
325
  }
338
326
 
339
327
 
328
+ declare module "@tiptap/core" {
329
+ interface Commands<ReturnType> {
330
+ enhanceHighlight: {
331
+ setEnhanceHighlight: (from: number, to: number, options?: {
332
+ placeholder?: string;
333
+ }) => ReturnType;
334
+ clearEnhanceHighlight: () => ReturnType;
335
+ };
336
+ }
337
+ }
338
+
339
+
340
340
  declare module "@tiptap/core" {
341
341
  interface Commands<ReturnType> {
342
342
  moodTracker: {