@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.
Files changed (42) hide show
  1. package/README.md +200 -0
  2. package/bin/chatkit-copy-pdf-assets.mjs +38 -0
  3. package/dist/pdf.d.ts +96 -0
  4. package/dist/pdf.d.ts.map +1 -0
  5. package/dist/pdf.js +212 -0
  6. package/dist/pdf.js.map +1 -0
  7. package/dist/react/AttachMenu.d.ts +18 -1
  8. package/dist/react/AttachMenu.d.ts.map +1 -1
  9. package/dist/react/AttachMenu.js +8 -4
  10. package/dist/react/AttachMenu.js.map +1 -1
  11. package/dist/react/ChatApp.d.ts +79 -5
  12. package/dist/react/ChatApp.d.ts.map +1 -1
  13. package/dist/react/ChatApp.js +113 -7
  14. package/dist/react/ChatApp.js.map +1 -1
  15. package/dist/react/ChatHistory.d.ts +7 -1
  16. package/dist/react/ChatHistory.d.ts.map +1 -1
  17. package/dist/react/ChatHistory.js +2 -2
  18. package/dist/react/ChatHistory.js.map +1 -1
  19. package/dist/react/Composer.d.ts +20 -3
  20. package/dist/react/Composer.d.ts.map +1 -1
  21. package/dist/react/Composer.js +19 -4
  22. package/dist/react/Composer.js.map +1 -1
  23. package/dist/react/Thread.d.ts +48 -2
  24. package/dist/react/Thread.d.ts.map +1 -1
  25. package/dist/react/Thread.js +13 -6
  26. package/dist/react/Thread.js.map +1 -1
  27. package/dist/react/attach.d.ts +1 -1
  28. package/dist/react/attach.d.ts.map +1 -1
  29. package/dist/react/index.d.ts +10 -10
  30. package/dist/react/index.d.ts.map +1 -1
  31. package/dist/react/index.js +4 -4
  32. package/dist/react/index.js.map +1 -1
  33. package/dist/react/use-attachments.d.ts +17 -0
  34. package/dist/react/use-attachments.d.ts.map +1 -1
  35. package/dist/react/use-attachments.js +89 -72
  36. package/dist/react/use-attachments.js.map +1 -1
  37. package/dist/react/use-chat-app.d.ts +53 -3
  38. package/dist/react/use-chat-app.d.ts.map +1 -1
  39. package/dist/react/use-chat-app.js +126 -15
  40. package/dist/react/use-chat-app.js.map +1 -1
  41. package/package.json +13 -4
  42. package/styles.css +64 -1
@@ -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 (extra || (sources.length > 1 && prefersSheet()))
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
- }) }), extra && _jsx("div", { className: "ck-sheet-extra", children: extra(close) })] })] }));
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":"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"}
1
+ {"version":3,"file":"AttachMenu.js","sourceRoot":"","sources":["../../src/react/AttachMenu.tsx"],"names":[],"mappings":"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"}
@@ -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 function ChatApp({ transport, store: givenStore, placeholder, name, makeTitle, starters, startersTitle, empty, composer, thread, footnote, fill, temporaryChats, onShare, conversationId, onConversationChange, rememberKey, search, headerStart, headerEnd, locale, railQuery, labels: labelOverrides, className, }: ChatAppProps): import("react").JSX.Element;
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":"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"}
1
+ {"version":3,"file":"ChatApp.d.ts","sourceRoot":"","sources":["../../src/react/ChatApp.tsx"],"names":[],"mappings":"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"}
@@ -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, onSend: (text, attachments) => app.send(text, attachments), sending: app.busy, onStop: app.stop, queue: true })] }));
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: thread?.renderFooter, speaker: thread?.speaker, share: thread?.share, onFeedback: onFeedback ? (f) => onFeedback({ ...f, conversationId: app.stored }) : undefined, labels: thread?.labels, empty: empty ??
172
- (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 }) }))) }, app.activeId ?? (app.temporary ? "temporary" : "new")) })] }));
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":"AAGA,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;CACvB,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,GACP,EAAE,gBAAgB,+BAwLlB"}
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":"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"}
1
+ {"version":3,"file":"ChatHistory.js","sourceRoot":"","sources":["../../src/react/ChatHistory.tsx"],"names":[],"mappings":"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"}
@@ -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