@bitbaum/chatkit 0.18.1 → 0.20.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.
- package/README.md +200 -0
- package/bin/chatkit-copy-pdf-assets.mjs +38 -0
- package/dist/pdf.d.ts +96 -0
- package/dist/pdf.d.ts.map +1 -0
- package/dist/pdf.js +212 -0
- package/dist/pdf.js.map +1 -0
- package/dist/react/AttachMenu.d.ts +18 -1
- package/dist/react/AttachMenu.d.ts.map +1 -1
- package/dist/react/AttachMenu.js +8 -4
- package/dist/react/AttachMenu.js.map +1 -1
- package/dist/react/ChatApp.d.ts +79 -5
- package/dist/react/ChatApp.d.ts.map +1 -1
- package/dist/react/ChatApp.js +113 -7
- package/dist/react/ChatApp.js.map +1 -1
- package/dist/react/ChatHistory.d.ts +7 -1
- package/dist/react/ChatHistory.d.ts.map +1 -1
- package/dist/react/ChatHistory.js +2 -2
- package/dist/react/ChatHistory.js.map +1 -1
- package/dist/react/Composer.d.ts +20 -3
- package/dist/react/Composer.d.ts.map +1 -1
- package/dist/react/Composer.js +19 -4
- package/dist/react/Composer.js.map +1 -1
- package/dist/react/Thread.d.ts +48 -2
- package/dist/react/Thread.d.ts.map +1 -1
- package/dist/react/Thread.js +13 -6
- package/dist/react/Thread.js.map +1 -1
- package/dist/react/attach.d.ts +1 -1
- package/dist/react/attach.d.ts.map +1 -1
- package/dist/react/index.d.ts +10 -10
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +4 -4
- package/dist/react/index.js.map +1 -1
- package/dist/react/use-attachments.d.ts +17 -0
- package/dist/react/use-attachments.d.ts.map +1 -1
- package/dist/react/use-attachments.js +89 -72
- package/dist/react/use-attachments.js.map +1 -1
- package/dist/react/use-chat-app.d.ts +53 -3
- package/dist/react/use-chat-app.d.ts.map +1 -1
- package/dist/react/use-chat-app.js +126 -15
- package/dist/react/use-chat-app.js.map +1 -1
- package/package.json +13 -4
- package/styles.css +64 -1
package/dist/react/AttachMenu.js
CHANGED
|
@@ -34,7 +34,7 @@ const ICONS = {
|
|
|
34
34
|
* they sit under Camera · Photos · Files in the same sheet, on every pointer,
|
|
35
35
|
* since a mouse cannot reach them through a file dialog.
|
|
36
36
|
*/
|
|
37
|
-
export function AttachMenu({ onFiles, disabled = false, labels = DEFAULT_ATTACH_MENU_LABELS, sources = SOURCES, trigger, extra, onOpenChange, }) {
|
|
37
|
+
export function AttachMenu({ onFiles, disabled = false, labels = DEFAULT_ATTACH_MENU_LABELS, sources = SOURCES, trigger, extra, rows, onOpenChange, }) {
|
|
38
38
|
const inputs = useRef({});
|
|
39
39
|
const [sheetOpen, setSheetOpen] = useState(false);
|
|
40
40
|
const setOpen = (next) => {
|
|
@@ -46,8 +46,9 @@ export function AttachMenu({ onFiles, disabled = false, labels = DEFAULT_ATTACH_
|
|
|
46
46
|
close();
|
|
47
47
|
inputs.current[source]?.click();
|
|
48
48
|
};
|
|
49
|
+
const hasRows = Boolean(extra) || (rows?.length ?? 0) > 0;
|
|
49
50
|
const open = () => {
|
|
50
|
-
if (
|
|
51
|
+
if (hasRows || (sources.length > 1 && prefersSheet()))
|
|
51
52
|
setOpen(true);
|
|
52
53
|
// A mouse gets the broadest picker offered: Files when it is one of the
|
|
53
54
|
// sources, else the last one (Photos, for an image uploader).
|
|
@@ -59,9 +60,12 @@ export function AttachMenu({ onFiles, disabled = false, labels = DEFAULT_ATTACH_
|
|
|
59
60
|
}, type: "file", hidden: true, multiple: source !== "camera", "data-ck-source": source, ...ATTACH_SOURCE_INPUT[source], onChange: (e) => {
|
|
60
61
|
onFiles(e.target.files);
|
|
61
62
|
e.target.value = "";
|
|
62
|
-
} }, source))), _jsx("button", { type: "button", className: trigger ? "ck-attach-trigger" : "ck-icon-btn", onClick: open, disabled: disabled, "aria-label": labels.attach, "aria-haspopup": "dialog", title: labels.attach, children: trigger ?? _jsx(IconPaperclip, {}) }), _jsxs(Sheet, { open: sheetOpen, onClose: close, title: labels.title, closeLabel: labels.close, children: [_jsx("div", { className: "ck-attach-sources", children: sources.map((source) => {
|
|
63
|
+
} }, source))), _jsx("button", { type: "button", className: trigger ? "ck-attach-trigger" : "ck-icon-btn", onClick: open, disabled: disabled, "aria-label": labels.attach, "aria-haspopup": "dialog", title: labels.attach, children: trigger ?? _jsx(IconPaperclip, {}) }), _jsxs(Sheet, { open: sheetOpen, onClose: close, title: labels.title, closeLabel: labels.close, children: [sources.length > 0 && (_jsx("div", { className: "ck-attach-sources", children: sources.map((source) => {
|
|
63
64
|
const Icon = ICONS[source];
|
|
64
65
|
return (_jsxs("button", { type: "button", className: "ck-attach-source", "data-ck-source": source, onClick: () => pick(source), children: [_jsx(Icon, {}), _jsx("span", { children: labels.sources[source] })] }, source));
|
|
65
|
-
}) }),
|
|
66
|
+
}) })), hasRows && (_jsxs("div", { className: sources.length > 0 ? "ck-sheet-extra" : "ck-sheet-extra ck-sheet-only", children: [rows?.map((row) => (_jsxs("button", { type: "button", className: "ck-attach-extra", "data-ck-extra": row.id, onClick: () => {
|
|
67
|
+
close();
|
|
68
|
+
row.onPick();
|
|
69
|
+
}, children: [_jsx("span", { className: "ck-attach-extra-icon", "aria-hidden": true, children: row.icon ?? _jsx(IconPaperclip, {}) }), _jsxs("span", { className: "ck-attach-extra-text", children: [_jsx("span", { className: "ck-truncate", children: row.label }), row.detail && _jsx("small", { className: "ck-truncate", children: row.detail })] })] }, row.id))), extra?.(close)] }))] })] }));
|
|
66
70
|
}
|
|
67
71
|
//# sourceMappingURL=AttachMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttachMenu.js","sourceRoot":"","sources":["../../src/react/AttachMenu.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAqB,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAWjD,MAAM,CAAC,MAAM,0BAA0B,GAAqB;IAC1D,MAAM,EAAE,6BAA6B;IACrC,KAAK,EAAE,gBAAgB;IACvB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE;CAChE,CAAC;
|
|
1
|
+
{"version":3,"file":"AttachMenu.js","sourceRoot":"","sources":["../../src/react/AttachMenu.tsx"],"names":[],"mappings":"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"}
|
package/dist/react/ChatApp.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { type ReactNode } from "react";
|
|
2
|
+
import type { Attachment } from "../attachments.js";
|
|
2
3
|
import type { ConversationStore, ConversationSummary } from "../conversations.js";
|
|
3
4
|
import type { Speaker } from "../speech.js";
|
|
4
5
|
import type { AnswerFeedback } from "../review.js";
|
|
5
|
-
import { type ChatMessageData, type Starter, type ThreadLabels } from "./Thread.js";
|
|
6
|
+
import { type ChatMessageData, type FooterInfo, type MessageChip, type Starter, type ThreadLabels } from "./Thread.js";
|
|
6
7
|
import { type ComposerProps } from "./Composer.js";
|
|
7
8
|
import type { RenderLink } from "./Markdown.js";
|
|
8
9
|
import type { RichRenderers } from "./renderers.js";
|
|
9
|
-
import { type ChatAppProblem, type ChatTransport } from "./use-chat-app.js";
|
|
10
|
+
import { type ChatAppProblem, type ChatTransport, type SendOptions } from "./use-chat-app.js";
|
|
10
11
|
export type ChatAppLabels = {
|
|
11
12
|
chats: string;
|
|
12
13
|
openChats: string;
|
|
@@ -42,6 +43,42 @@ export type ChatAppLabels = {
|
|
|
42
43
|
problems: Record<ChatAppProblem, string>;
|
|
43
44
|
};
|
|
44
45
|
export declare const DEFAULT_CHAT_APP_LABELS: ChatAppLabels;
|
|
46
|
+
/**
|
|
47
|
+
* What a page can do to the chat it holds (`<ChatApp ref={chat}>`): send for
|
|
48
|
+
* the person ("Check this", `/chat?q=`, a message handed over from a home
|
|
49
|
+
* box), put words in the box for them to finish, and move between chats.
|
|
50
|
+
*/
|
|
51
|
+
export type ChatAppHandle = {
|
|
52
|
+
/**
|
|
53
|
+
* Send now, exactly as if typed and sent: queued behind a running answer,
|
|
54
|
+
* a new chat created when none is open (or always, with `newChat`). Files
|
|
55
|
+
* are read like the paperclip's (limits, shrinking); if one cannot be
|
|
56
|
+
* attached, nothing is sent — the words and files go into the box with the
|
|
57
|
+
* reason, for the person to decide. Resolves whether it was sent.
|
|
58
|
+
*/
|
|
59
|
+
send: (text: string, attachments?: readonly (Attachment | File)[], options?: SendOptions) => Promise<boolean>;
|
|
60
|
+
/** Put words (and files) in the box and the cursor after them; nothing is sent. */
|
|
61
|
+
fill: (text: string, files?: readonly File[]) => void;
|
|
62
|
+
focus: () => void;
|
|
63
|
+
newChat: () => void;
|
|
64
|
+
openConversation: (id: string) => void;
|
|
65
|
+
};
|
|
66
|
+
/** A message the page arrives with (see `initialMessage`). */
|
|
67
|
+
export type InitialMessage = {
|
|
68
|
+
text: string;
|
|
69
|
+
/** Pictures and files with it: `File`s as picked, or wire attachments. */
|
|
70
|
+
attachments?: readonly (Attachment | File)[];
|
|
71
|
+
chips?: readonly MessageChip[];
|
|
72
|
+
/** Send it (the default), or only put it in the box (`false`). */
|
|
73
|
+
send?: boolean;
|
|
74
|
+
};
|
|
75
|
+
/** What `thread.renderFooter` gets beside the message. */
|
|
76
|
+
export type ChatAppFooterInfo = FooterInfo & {
|
|
77
|
+
/** Send for the person — a chip whose label differs from what it says. */
|
|
78
|
+
send: (text: string, options?: SendOptions) => void;
|
|
79
|
+
/** Put words in the box for the person to finish. */
|
|
80
|
+
fill: (text: string) => void;
|
|
81
|
+
};
|
|
45
82
|
export type ChatAppProps = {
|
|
46
83
|
/** Send a turn and resolve with the answer (stream through `turn.update`). */
|
|
47
84
|
transport: ChatTransport;
|
|
@@ -63,11 +100,13 @@ export type ChatAppProps = {
|
|
|
63
100
|
/** Composer options: `voice` (give it `transcribeUrl`), `attach` (on by
|
|
64
101
|
* default; `false` only when the product's API takes no files), `tools`,
|
|
65
102
|
* `labels`… Sending, Stop and the queue are ChatApp's. */
|
|
66
|
-
composer?: Partial<Omit<ComposerProps, "onSend" | "sending" | "onStop" | "queue">>;
|
|
103
|
+
composer?: Partial<Omit<ComposerProps, "onSend" | "sending" | "onStop" | "queue" | "handleRef">>;
|
|
67
104
|
/** Thread options, passed to ChatThread. */
|
|
68
105
|
thread?: {
|
|
69
106
|
renderLink?: RenderLink;
|
|
70
|
-
renderFooter?: (m: ChatMessageData) => ReactNode;
|
|
107
|
+
renderFooter?: (m: ChatMessageData, info: ChatAppFooterInfo) => ReactNode;
|
|
108
|
+
/** After the last turn, inside the thread (a pending action, a picker). */
|
|
109
|
+
after?: ReactNode;
|
|
71
110
|
renderers?: RichRenderers;
|
|
72
111
|
speaker?: Speaker | null;
|
|
73
112
|
share?: {
|
|
@@ -107,7 +146,42 @@ export type ChatAppProps = {
|
|
|
107
146
|
railQuery?: string;
|
|
108
147
|
labels?: Partial<ChatAppLabels>;
|
|
109
148
|
className?: string;
|
|
149
|
+
/** A message to start with, in a NEW chat, once the list has loaded — the
|
|
150
|
+
* home box handing its words and pictures to `/chat`. Used once per mount
|
|
151
|
+
* (StrictMode's double mount included); clear it from your URL or state
|
|
152
|
+
* yourself so a reload does not send it again. */
|
|
153
|
+
initialMessage?: InitialMessage | null;
|
|
154
|
+
/** Read this query parameter (e.g. `"q"`) into a new chat's box, then take
|
|
155
|
+
* it off the address. The words are only put in the box: a link can never
|
|
156
|
+
* send for someone unless `deepLinkAutoSend` is set too. */
|
|
157
|
+
deepLinkParam?: string;
|
|
158
|
+
/** Send the `deepLinkParam` words instead of filling the box. Off by default. */
|
|
159
|
+
deepLinkAutoSend?: boolean;
|
|
160
|
+
/** Stop keeps the half answer that had arrived. Default true; a transport
|
|
161
|
+
* can decide per turn with `turn.stopKeepsPartial(keep)`. */
|
|
162
|
+
stopKeepsPartial?: boolean;
|
|
163
|
+
/** The words for a failed turn whose error is not a `ChatTurnError`
|
|
164
|
+
* (return null for the thread's `failed` label). */
|
|
165
|
+
failureMessage?: (error: unknown) => string | null | undefined;
|
|
166
|
+
/** A temporary chat ended (left, page hidden, unmounted): delete what the
|
|
167
|
+
* server kept for it. Gets `turn.chatId`; called once per chat. */
|
|
168
|
+
onTemporaryEnd?: (chatId: string) => void;
|
|
169
|
+
/** The product's things shown on the person's message when it is sent
|
|
170
|
+
* from the box (the ones staged with `heldAttachments`). */
|
|
171
|
+
chipsFor?: (turn: {
|
|
172
|
+
text: string;
|
|
173
|
+
attachments: Attachment[];
|
|
174
|
+
}) => readonly MessageChip[] | null | undefined;
|
|
175
|
+
/** In the chat list, under the search box: the product's own line. */
|
|
176
|
+
historySlot?: ReactNode;
|
|
177
|
+
/** In the chat list, instead of "No chats yet…" when there are none. */
|
|
178
|
+
historyEmpty?: ReactNode;
|
|
110
179
|
};
|
|
180
|
+
/** The words a `?q=`-style link carries, and the address without them. Pure. */
|
|
181
|
+
export declare function takeDeepLink(href: string, param: string): {
|
|
182
|
+
text: string;
|
|
183
|
+
href: string;
|
|
184
|
+
} | null;
|
|
111
185
|
/**
|
|
112
186
|
* The whole chat app, the way the Claude, ChatGPT and Grok phone apps are
|
|
113
187
|
* laid out: the conversation edge to edge, a frosted header (Chats · title ·
|
|
@@ -119,5 +193,5 @@ export type ChatAppProps = {
|
|
|
119
193
|
* `store` that keeps chats (or nothing: the device then keeps them) — plus
|
|
120
194
|
* its words. Everything a person sees and does is the same in every product.
|
|
121
195
|
*/
|
|
122
|
-
export declare
|
|
196
|
+
export declare const ChatApp: import("react").ForwardRefExoticComponent<ChatAppProps & import("react").RefAttributes<ChatAppHandle>>;
|
|
123
197
|
//# sourceMappingURL=ChatApp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatApp.d.ts","sourceRoot":"","sources":["../../src/react/ChatApp.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"ChatApp.d.ts","sourceRoot":"","sources":["../../src/react/ChatApp.tsx"],"names":[],"mappings":"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"}
|
package/dist/react/ChatApp.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { useEffect, useMemo, useRef, useState } from "react";
|
|
3
|
+
import { forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState, } from "react";
|
|
4
4
|
import { localConversationStore } from "../stores.js";
|
|
5
5
|
import { ChatScreen } from "./Screen.js";
|
|
6
6
|
import { ChatStarters, ChatThread, } from "./Thread.js";
|
|
7
7
|
import { Composer } from "./Composer.js";
|
|
8
|
+
import { readAttachmentFile } from "./use-attachments.js";
|
|
8
9
|
import { ChatHistory } from "./ChatHistory.js";
|
|
9
10
|
import { useViewportHeight } from "./hooks.js";
|
|
10
11
|
import { IconGhost, IconMenu, IconMore, IconNewChat, IconX } from "./icons.js";
|
|
11
|
-
import { useChatApp } from "./use-chat-app.js";
|
|
12
|
+
import { useChatApp, } from "./use-chat-app.js";
|
|
12
13
|
export const DEFAULT_CHAT_APP_LABELS = {
|
|
13
14
|
chats: "Chats",
|
|
14
15
|
openChats: "Open your chats",
|
|
@@ -45,6 +46,23 @@ export const DEFAULT_CHAT_APP_LABELS = {
|
|
|
45
46
|
open: "That chat did not open. Try again.",
|
|
46
47
|
},
|
|
47
48
|
};
|
|
49
|
+
/** The words a `?q=`-style link carries, and the address without them. Pure. */
|
|
50
|
+
export function takeDeepLink(href, param) {
|
|
51
|
+
let url;
|
|
52
|
+
try {
|
|
53
|
+
url = new URL(href);
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
const raw = url.searchParams.get(param);
|
|
59
|
+
if (raw === null)
|
|
60
|
+
return null;
|
|
61
|
+
url.searchParams.delete(param);
|
|
62
|
+
const text = raw.trim().slice(0, DEEP_LINK_MAX);
|
|
63
|
+
return { text, href: url.toString() };
|
|
64
|
+
}
|
|
65
|
+
const DEEP_LINK_MAX = 4000;
|
|
48
66
|
function useMediaQuery(query) {
|
|
49
67
|
const [match, setMatch] = useState(false);
|
|
50
68
|
useEffect(() => {
|
|
@@ -70,13 +88,23 @@ let fallbackStore = null;
|
|
|
70
88
|
* `store` that keeps chats (or nothing: the device then keeps them) — plus
|
|
71
89
|
* its words. Everything a person sees and does is the same in every product.
|
|
72
90
|
*/
|
|
73
|
-
export function ChatApp({ transport, store: givenStore, placeholder = "Ask anything", name = "", makeTitle, starters, startersTitle, empty, composer, thread, footnote, fill = "viewport", temporaryChats = true, onShare, conversationId, onConversationChange, rememberKey = "ck-chat:open", search, headerStart, headerEnd, locale, railQuery = "(min-width: 64rem)", labels: labelOverrides, className, }) {
|
|
91
|
+
export const ChatApp = forwardRef(function ChatApp({ transport, store: givenStore, placeholder = "Ask anything", name = "", makeTitle, starters, startersTitle, empty, composer, thread, footnote, fill = "viewport", temporaryChats = true, onShare, conversationId, onConversationChange, rememberKey = "ck-chat:open", search, headerStart, headerEnd, locale, railQuery = "(min-width: 64rem)", labels: labelOverrides, className, initialMessage, deepLinkParam, deepLinkAutoSend = false, stopKeepsPartial, failureMessage, onTemporaryEnd, chipsFor, historySlot, historyEmpty, }, ref) {
|
|
74
92
|
const labels = {
|
|
75
93
|
...DEFAULT_CHAT_APP_LABELS,
|
|
76
94
|
...labelOverrides,
|
|
77
95
|
problems: { ...DEFAULT_CHAT_APP_LABELS.problems, ...labelOverrides?.problems },
|
|
78
96
|
};
|
|
79
97
|
const store = useMemo(() => givenStore ?? (fallbackStore ??= localConversationStore()), [givenStore]);
|
|
98
|
+
// What the page arrived with, read once: a message handed over, or a
|
|
99
|
+
// `?q=` link. Either starts a new chat, so the reload's chat is not reopened.
|
|
100
|
+
const [arrival] = useState(() => {
|
|
101
|
+
if (initialMessage)
|
|
102
|
+
return initialMessage;
|
|
103
|
+
if (!deepLinkParam || typeof window === "undefined")
|
|
104
|
+
return null;
|
|
105
|
+
const link = takeDeepLink(window.location.href, deepLinkParam);
|
|
106
|
+
return link?.text ? { text: link.text, send: deepLinkAutoSend } : null;
|
|
107
|
+
});
|
|
80
108
|
const app = useChatApp({
|
|
81
109
|
store,
|
|
82
110
|
transport,
|
|
@@ -84,7 +112,67 @@ export function ChatApp({ transport, store: givenStore, placeholder = "Ask anyth
|
|
|
84
112
|
conversationId,
|
|
85
113
|
onConversationChange,
|
|
86
114
|
rememberKey,
|
|
115
|
+
stopKeepsPartial,
|
|
116
|
+
failureMessage,
|
|
117
|
+
onTemporaryEnd,
|
|
118
|
+
restore: !arrival,
|
|
87
119
|
});
|
|
120
|
+
const composerRef = useRef(null);
|
|
121
|
+
const attachLimits = typeof composer?.attach === "object" ? composer.attach : {};
|
|
122
|
+
const fillBox = (text, files) => {
|
|
123
|
+
const box = composerRef.current;
|
|
124
|
+
if (!box)
|
|
125
|
+
return;
|
|
126
|
+
box.setText(text);
|
|
127
|
+
if (files && files.length > 0)
|
|
128
|
+
box.addFiles([...files]);
|
|
129
|
+
box.focus();
|
|
130
|
+
};
|
|
131
|
+
const sendFor = async (text, given = [], options) => {
|
|
132
|
+
await app.whenReady();
|
|
133
|
+
const files = given.filter((a) => typeof File !== "undefined" && a instanceof File);
|
|
134
|
+
const wire = given.filter((a) => !(typeof File !== "undefined" && a instanceof File));
|
|
135
|
+
const read = await Promise.all(files.map((f) => readAttachmentFile(f, attachLimits, composer?.labels?.attachNotes)));
|
|
136
|
+
if (read.some((r) => r.note !== undefined)) {
|
|
137
|
+
// One file cannot go: send nothing behind the person's back. The box
|
|
138
|
+
// gets the words and the files, and says why (the composer's own note).
|
|
139
|
+
if (options?.newChat)
|
|
140
|
+
app.newChat();
|
|
141
|
+
fillBox(text, files);
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
const attachments = [...wire, ...read.map((r) => stripPreview(r.attachment))];
|
|
145
|
+
return app.send(text, attachments, options);
|
|
146
|
+
};
|
|
147
|
+
const handle = {
|
|
148
|
+
send: sendFor,
|
|
149
|
+
fill: fillBox,
|
|
150
|
+
focus: () => composerRef.current?.focus(),
|
|
151
|
+
newChat: app.newChat,
|
|
152
|
+
openConversation: app.open,
|
|
153
|
+
};
|
|
154
|
+
useImperativeHandle(ref, () => handle);
|
|
155
|
+
// The arrival, once — StrictMode's rehearsal mount included (`taken` is
|
|
156
|
+
// kept across it), and only after the list is in so nothing moves it.
|
|
157
|
+
const taken = useRef(false);
|
|
158
|
+
useEffect(() => {
|
|
159
|
+
if (!app.ready || !arrival || taken.current)
|
|
160
|
+
return;
|
|
161
|
+
taken.current = true;
|
|
162
|
+
if (deepLinkParam && !initialMessage && typeof window !== "undefined") {
|
|
163
|
+
const link = takeDeepLink(window.location.href, deepLinkParam);
|
|
164
|
+
if (link)
|
|
165
|
+
window.history.replaceState(window.history.state, "", link.href);
|
|
166
|
+
}
|
|
167
|
+
if (arrival.send === false) {
|
|
168
|
+
app.newChat();
|
|
169
|
+
fillBox(arrival.text, (arrival.attachments ?? []).filter((a) => typeof File !== "undefined" && a instanceof File));
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
void sendFor(arrival.text, arrival.attachments, { newChat: true, chips: arrival.chips });
|
|
173
|
+
}
|
|
174
|
+
// `arrival` is fixed at mount; the rest is read when it fires.
|
|
175
|
+
}, [app.ready]);
|
|
88
176
|
const rootRef = useRef(null);
|
|
89
177
|
useViewportHeight(rootRef, fill === "viewport");
|
|
90
178
|
const wide = useMediaQuery(railQuery);
|
|
@@ -122,7 +210,7 @@ export function ChatApp({ transport, store: givenStore, placeholder = "Ask anyth
|
|
|
122
210
|
}, onNew: () => {
|
|
123
211
|
setDrawerOpen(false);
|
|
124
212
|
app.newChat();
|
|
125
|
-
}, onRename: (id, t) => void app.rename(id, t), onRemove: (id) => void app.remove(id), onRetry: app.reloadList, onClose: wide ? undefined : () => setDrawerOpen(false), search: search, locale: locale, labels: labels }));
|
|
213
|
+
}, onRename: (id, t) => void app.rename(id, t), onRemove: (id) => void app.remove(id), onRetry: app.reloadList, onClose: wide ? undefined : () => setDrawerOpen(false), search: search, locale: locale, labels: labels, slot: historySlot, empty: historyEmpty }));
|
|
126
214
|
const [renaming, setRenaming] = useState(false);
|
|
127
215
|
const [deleting, setDeleting] = useState(false);
|
|
128
216
|
const menu = [];
|
|
@@ -155,8 +243,12 @@ export function ChatApp({ transport, store: givenStore, placeholder = "Ask anyth
|
|
|
155
243
|
setDeleting(false);
|
|
156
244
|
void app.remove(current.id);
|
|
157
245
|
}, children: labels.delete }), _jsx("button", { type: "button", onClick: () => setDeleting(false), children: labels.cancel })] })] })) : null;
|
|
158
|
-
const dock = (_jsxs(_Fragment, { children: [above, app.problem && (_jsxs("p", { className: "ck-problem", role: "status", children: [_jsx("span", { children: labels.problems[app.problem] }), _jsx("button", { type: "button", className: "ck-problem-x", onClick: app.clearProblem, "aria-label": labels.dismiss, children: _jsx(IconX, {}) })] })), app.queued.length > 0 && (_jsx("ul", { className: "ck-app-queue", "aria-label": labels.queued, children: app.queued.map((q) => (_jsxs("li", { children: [_jsxs("span", { className: "ck-app-queue-text", children: [_jsx("span", { className: "ck-truncate", children: q.text }), _jsx("small", { children: labels.queued })] }), _jsx("button", { type: "button", className: "ck-icon-btn", onClick: () => app.unqueue(q.id), "aria-label": labels.unqueue(q.text), title: labels.unqueue(q.text), children: _jsx(IconX, {}) })] }, q.id))) })), _jsx(Composer, { placeholder: placeholder, attach: true, stagedPosition: "above", ...composer,
|
|
246
|
+
const dock = (_jsxs(_Fragment, { children: [above, app.problem && (_jsxs("p", { className: "ck-problem", role: "status", children: [_jsx("span", { children: labels.problems[app.problem] }), _jsx("button", { type: "button", className: "ck-problem-x", onClick: app.clearProblem, "aria-label": labels.dismiss, children: _jsx(IconX, {}) })] })), app.queued.length > 0 && (_jsx("ul", { className: "ck-app-queue", "aria-label": labels.queued, children: app.queued.map((q) => (_jsxs("li", { children: [_jsxs("span", { className: "ck-app-queue-text", children: [_jsx("span", { className: "ck-truncate", children: q.text }), _jsx("small", { children: labels.queued })] }), _jsx("button", { type: "button", className: "ck-icon-btn", onClick: () => app.unqueue(q.id), "aria-label": labels.unqueue(q.text), title: labels.unqueue(q.text), children: _jsx(IconX, {}) })] }, q.id))) })), _jsx(Composer, { placeholder: placeholder, attach: true, stagedPosition: "above", ...composer, handleRef: composerRef, onSend: (text, attachments) => {
|
|
247
|
+
const chips = chipsFor?.({ text, attachments });
|
|
248
|
+
return app.send(text, attachments, chips ? { chips } : undefined);
|
|
249
|
+
}, sending: app.busy, onStop: app.stop, queue: true })] }));
|
|
159
250
|
const lastFailed = app.messages[app.messages.length - 1]?.failed;
|
|
251
|
+
const renderFooter = thread?.renderFooter;
|
|
160
252
|
const onFeedback = thread?.onFeedback;
|
|
161
253
|
const cls = ["ck-app"];
|
|
162
254
|
if (fill === "viewport")
|
|
@@ -168,8 +260,22 @@ export function ChatApp({ transport, store: givenStore, placeholder = "Ask anyth
|
|
|
168
260
|
return (_jsxs("div", { ref: rootRef, className: cls.join(" "), children: [wide ? (_jsx("aside", { className: "ck-app-rail", children: history })) : (_jsx("dialog", { ref: drawerRef, className: "ck-app-drawer", "aria-label": labels.chats, onClose: () => setDrawerOpen(false), onClick: (e) => {
|
|
169
261
|
if (e.target === e.currentTarget)
|
|
170
262
|
setDrawerOpen(false);
|
|
171
|
-
}, children: drawerOpen && _jsx("div", { className: "ck-app-drawer-panel", children: history }) })), _jsx(ChatScreen, { fill: "parent", className: "ck-app-screen", header: header, composer: dock, footnote: footnote, renderers: thread?.renderers, children: _jsx(ChatThread, { messages: app.messages, loading: app.loading, live: app.live, stopped: app.stopped, onStop: app.stop, onRetry: lastFailed || app.stopped ? app.retry : undefined, onReply: (text) => void app.send(text), renderLink: thread?.renderLink, renderFooter:
|
|
172
|
-
|
|
263
|
+
}, children: drawerOpen && _jsx("div", { className: "ck-app-drawer-panel", children: history }) })), _jsx(ChatScreen, { fill: "parent", className: "ck-app-screen", header: header, composer: dock, footnote: footnote, renderers: thread?.renderers, children: _jsx(ChatThread, { messages: app.messages, loading: app.loading, live: app.live, stopped: app.stopped, onStop: app.stop, onRetry: lastFailed || app.stopped ? app.retry : undefined, onReply: (text) => void app.send(text), renderLink: thread?.renderLink, renderFooter: renderFooter
|
|
264
|
+
? (m, info) => renderFooter(m, {
|
|
265
|
+
...info,
|
|
266
|
+
send: (text, options) => void app.send(text, [], options),
|
|
267
|
+
fill: (text) => fillBox(text),
|
|
268
|
+
})
|
|
269
|
+
: undefined, speaker: thread?.speaker, share: thread?.share, onFeedback: onFeedback ? (f) => onFeedback({ ...f, conversationId: app.stored }) : undefined, labels: thread?.labels, empty: empty ??
|
|
270
|
+
(starters && starters.length > 0 ? (_jsx(ChatStarters, { starters: starters, title: startersTitle, onPick: (text) => void app.send(text) })) : (_jsx("div", { className: "ck-starters", children: startersTitle && _jsx("div", { className: "ck-starters-title", children: startersTitle }) }))), children: thread?.after }, app.activeId ?? (app.temporary ? "temporary" : "new")) })] }));
|
|
271
|
+
});
|
|
272
|
+
/** The wire shape only: a preview URL never leaves the page. */
|
|
273
|
+
function stripPreview(a) {
|
|
274
|
+
if (!("previewUrl" in a))
|
|
275
|
+
return a;
|
|
276
|
+
const { previewUrl: _preview, ...wire } = a;
|
|
277
|
+
void _preview;
|
|
278
|
+
return wire;
|
|
173
279
|
}
|
|
174
280
|
/** The header's "…": a small menu under the button. Escape and a tap
|
|
175
281
|
* outside close it and give focus back to the button; arrows move. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatApp.js","sourceRoot":"","sources":["../../src/react/ChatApp.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ChatApp.js","sourceRoot":"","sources":["../../src/react/ChatApp.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
1
2
|
import { type ConversationSummary } from "../conversations.js";
|
|
2
3
|
import type { ChatAppLabels } from "./ChatApp.js";
|
|
3
4
|
export type ChatHistoryProps = {
|
|
@@ -16,6 +17,11 @@ export type ChatHistoryProps = {
|
|
|
16
17
|
search?: (list: ConversationSummary[], query: string) => ConversationSummary[];
|
|
17
18
|
locale?: string;
|
|
18
19
|
labels: ChatAppLabels;
|
|
20
|
+
/** The product's own line under the search box, above the chats (e.g.
|
|
21
|
+
* "Only in this browser · Sign in to keep it"). */
|
|
22
|
+
slot?: ReactNode;
|
|
23
|
+
/** Shown instead of `labels.noChats` when there are no chats yet. */
|
|
24
|
+
empty?: ReactNode;
|
|
19
25
|
};
|
|
20
26
|
/**
|
|
21
27
|
* The chat list — the same in every product: New chat, a search box, the
|
|
@@ -24,5 +30,5 @@ export type ChatHistoryProps = {
|
|
|
24
30
|
* actions, Rename and Delete, as two equal cells under it. A delete asks
|
|
25
31
|
* once, in the row.
|
|
26
32
|
*/
|
|
27
|
-
export declare function ChatHistory({ conversations, state, activeId, busyIds, onOpen, onNew, onRename, onRemove, onRetry, onClose, search, locale, labels, }: ChatHistoryProps): import("react").JSX.Element;
|
|
33
|
+
export declare function ChatHistory({ conversations, state, activeId, busyIds, onOpen, onNew, onRename, onRemove, onRetry, onClose, search, locale, labels, slot, empty, }: ChatHistoryProps): import("react").JSX.Element;
|
|
28
34
|
//# sourceMappingURL=ChatHistory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatHistory.d.ts","sourceRoot":"","sources":["../../src/react/ChatHistory.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ChatHistory.d.ts","sourceRoot":"","sources":["../../src/react/ChatHistory.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA4B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,mBAAmB,EAAE,CAAC;IACrC,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;IACrC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,8EAA8E;IAC9E,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,MAAM,KAAK,mBAAmB,EAAE,CAAC;IAC/E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;IACtB;wDACoD;IACpD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,qEAAqE;IACrE,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,EAC1B,aAAa,EACb,KAAK,EACL,QAAQ,EACR,OAAO,EACP,MAAM,EACN,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,OAAO,EACP,MAA4B,EAC5B,MAAM,EACN,MAAM,EACN,IAAI,EACJ,KAAK,GACN,EAAE,gBAAgB,+BA6LlB"}
|
|
@@ -10,7 +10,7 @@ import { IconMore, IconNewChat, IconSearch, IconX } from "./icons.js";
|
|
|
10
10
|
* actions, Rename and Delete, as two equal cells under it. A delete asks
|
|
11
11
|
* once, in the row.
|
|
12
12
|
*/
|
|
13
|
-
export function ChatHistory({ conversations, state, activeId, busyIds, onOpen, onNew, onRename, onRemove, onRetry, onClose, search = filterConversations, locale, labels, }) {
|
|
13
|
+
export function ChatHistory({ conversations, state, activeId, busyIds, onOpen, onNew, onRename, onRemove, onRetry, onClose, search = filterConversations, locale, labels, slot, empty, }) {
|
|
14
14
|
const [query, setQuery] = useState("");
|
|
15
15
|
const [armed, setArmed] = useState(null);
|
|
16
16
|
const [confirming, setConfirming] = useState(null);
|
|
@@ -30,7 +30,7 @@ export function ChatHistory({ conversations, state, activeId, busyIds, onOpen, o
|
|
|
30
30
|
onRename(id, value);
|
|
31
31
|
close();
|
|
32
32
|
};
|
|
33
|
-
return (_jsxs("nav", { className: "ck-history", "aria-label": labels.chats, children: [_jsxs("div", { className: "ck-history-head", children: [_jsx("span", { className: "ck-history-title", children: labels.chats }), onClose && (_jsx("button", { type: "button", className: "ck-icon-btn ck-history-close", onClick: onClose, "aria-label": labels.closeChats, title: labels.closeChats, "data-ck-initial-focus": "", children: _jsx(IconX, {}) }))] }), _jsxs("button", { type: "button", className: "ck-history-new", onClick: onNew, children: [_jsx(IconNewChat, {}), _jsx("span", { children: labels.newChat })] }), _jsxs("label", { className: "ck-history-search", children: [_jsx(IconSearch, {}), _jsx("input", { type: "search", value: query, onChange: (e) => setQuery(e.target.value), placeholder: labels.search, "aria-label": labels.search, enterKeyHint: "search" })] }), _jsx("div", { className: "ck-history-list", children: state === "loading" && conversations.length === 0 ? (_jsx("p", { className: "ck-history-empty", role: "status", children: labels.loadingChats })) : state === "error" ? (_jsxs("div", { className: "ck-history-empty", role: "status", children: [_jsx("p", { children: labels.listFailed }), _jsx("button", { type: "button", className: "ck-history-retry", onClick: onRetry, children: labels.tryAgain })] })) : conversations.length === 0 ? (_jsx("p", { className: "ck-history-empty", children: labels.noChats })) : groups.length === 0 ? (_jsx("p", { className: "ck-history-empty", children: labels.noMatch(query.trim()) })) : (groups.map((group) => (_jsxs("section", { className: "ck-history-group", "aria-label": labels[group.key], children: [_jsx("h3", { className: "ck-history-group-title", children: labels[group.key] }), _jsx("ul", { children: group.items.map((c) => {
|
|
33
|
+
return (_jsxs("nav", { className: "ck-history", "aria-label": labels.chats, children: [_jsxs("div", { className: "ck-history-head", children: [_jsx("span", { className: "ck-history-title", children: labels.chats }), onClose && (_jsx("button", { type: "button", className: "ck-icon-btn ck-history-close", onClick: onClose, "aria-label": labels.closeChats, title: labels.closeChats, "data-ck-initial-focus": "", children: _jsx(IconX, {}) }))] }), _jsxs("button", { type: "button", className: "ck-history-new", onClick: onNew, children: [_jsx(IconNewChat, {}), _jsx("span", { children: labels.newChat })] }), _jsxs("label", { className: "ck-history-search", children: [_jsx(IconSearch, {}), _jsx("input", { type: "search", value: query, onChange: (e) => setQuery(e.target.value), placeholder: labels.search, "aria-label": labels.search, enterKeyHint: "search" })] }), slot && _jsx("div", { className: "ck-history-slot", children: slot }), _jsx("div", { className: "ck-history-list", children: state === "loading" && conversations.length === 0 ? (_jsx("p", { className: "ck-history-empty", role: "status", children: labels.loadingChats })) : state === "error" ? (_jsxs("div", { className: "ck-history-empty", role: "status", children: [_jsx("p", { children: labels.listFailed }), _jsx("button", { type: "button", className: "ck-history-retry", onClick: onRetry, children: labels.tryAgain })] })) : conversations.length === 0 ? (empty ? (_jsx("div", { className: "ck-history-empty", children: empty })) : (_jsx("p", { className: "ck-history-empty", children: labels.noChats }))) : groups.length === 0 ? (_jsx("p", { className: "ck-history-empty", children: labels.noMatch(query.trim()) })) : (groups.map((group) => (_jsxs("section", { className: "ck-history-group", "aria-label": labels[group.key], children: [_jsx("h3", { className: "ck-history-group-title", children: labels[group.key] }), _jsx("ul", { children: group.items.map((c) => {
|
|
34
34
|
const title = c.title.trim() || labels.untitled;
|
|
35
35
|
const busy = busyIds.has(c.id);
|
|
36
36
|
const active = c.id === activeId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatHistory.js","sourceRoot":"","sources":["../../src/react/ChatHistory.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"ChatHistory.js","sourceRoot":"","sources":["../../src/react/ChatHistory.tsx"],"names":[],"mappings":"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"}
|
package/dist/react/Composer.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { type ReactNode, type RefObject } from "react";
|
|
1
|
+
import { type ReactNode, type Ref, type RefObject } from "react";
|
|
2
2
|
import { type ComposerMode, type ComposerSendResult } from "../composer.js";
|
|
3
3
|
import { type DictationProblem } from "../dictation.js";
|
|
4
4
|
import { type Attachment, type AttachmentLimits, type AttachmentNotes } from "../attachments.js";
|
|
5
5
|
import { type UseDictationOptions } from "./use-dictation.js";
|
|
6
|
-
import { type AttachMenuLabels } from "./AttachMenu.js";
|
|
6
|
+
import { type AttachExtra, type AttachMenuLabels } from "./AttachMenu.js";
|
|
7
7
|
export type ComposerLabels = {
|
|
8
8
|
send: string;
|
|
9
9
|
stop: string;
|
|
@@ -28,6 +28,17 @@ export type ComposerLabels = {
|
|
|
28
28
|
};
|
|
29
29
|
export declare const DEFAULT_COMPOSER_LABELS: ComposerLabels;
|
|
30
30
|
export type ComposerVoice = Omit<UseDictationOptions, "onText">;
|
|
31
|
+
/** What a page can do to a composer it does not type into (`handleRef`). */
|
|
32
|
+
export type ComposerHandle = {
|
|
33
|
+
/** Replace the draft with these words. */
|
|
34
|
+
setText: (text: string) => void;
|
|
35
|
+
/** Stage files exactly as the paperclip would (limits, shrinking, notes). */
|
|
36
|
+
addFiles: (files: FileList | File[]) => void;
|
|
37
|
+
/** Put the cursor in the box. */
|
|
38
|
+
focus: () => void;
|
|
39
|
+
/** Press Send: what `Enter` does, with the same checks. */
|
|
40
|
+
submit: () => Promise<void>;
|
|
41
|
+
};
|
|
31
42
|
/** Overrides: every label is optional, including each dictation and attachment note. */
|
|
32
43
|
export type ComposerLabelOverrides = Partial<Omit<ComposerLabels, "dictation" | "attachNotes" | "attachMenu">> & {
|
|
33
44
|
dictation?: Partial<ComposerLabels["dictation"]>;
|
|
@@ -66,6 +77,12 @@ export type ComposerProps = {
|
|
|
66
77
|
/** Attachments on, optionally with the app's own limits. Off by default:
|
|
67
78
|
* only offer what the app's API accepts. */
|
|
68
79
|
attach?: boolean | Partial<AttachmentLimits>;
|
|
80
|
+
/** The app's own rows in the same attach sheet, under Camera · Photos ·
|
|
81
|
+
* Files (one of the person's things, a saved note). With `attach: false`
|
|
82
|
+
* the paperclip opens a sheet of only these rows. */
|
|
83
|
+
attachExtras?: readonly AttachExtra[];
|
|
84
|
+
/** Fill, stage, focus or send from outside the box (see `ComposerHandle`). */
|
|
85
|
+
handleRef?: Ref<ComposerHandle>;
|
|
69
86
|
/** The microphone. On by default. Pass `transcribeUrl` (or `transcribe`) so
|
|
70
87
|
* it still works where the browser recogniser does not — that fallback is
|
|
71
88
|
* what makes the mic never a dead button. `false` only for a surface that
|
|
@@ -106,5 +123,5 @@ export type ComposerProps = {
|
|
|
106
123
|
* Extracted from loki `components/composer/Composer.tsx` (itself the merge of
|
|
107
124
|
* four composers in one app), with heidi's microphone and orangecat's lessons.
|
|
108
125
|
*/
|
|
109
|
-
export declare function Composer({ onSend, placeholder, ariaLabel, disabled, sendBlockedReason, sending, onStop, attachmentOnlyText, heldAttachments, queue, attach, voice, modes, mode, onModeChange, onEmptySlash, value, onValueChange, defaultValue, inputRef, density, above, header, tools, trailing, footer, hint, stagedPosition, labels: labelOverrides, autoFocus, }: ComposerProps): import("react").JSX.Element;
|
|
126
|
+
export declare function Composer({ onSend, placeholder, ariaLabel, disabled, sendBlockedReason, sending, onStop, attachmentOnlyText, heldAttachments, queue, attach, attachExtras, handleRef, voice, modes, mode, onModeChange, onEmptySlash, value, onValueChange, defaultValue, inputRef, density, above, header, tools, trailing, footer, hint, stagedPosition, labels: labelOverrides, autoFocus, }: ComposerProps): import("react").JSX.Element;
|
|
110
127
|
//# sourceMappingURL=Composer.d.ts.map
|