@bitbaum/chatkit 0.18.0 → 0.19.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 +161 -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/hooks.d.ts.map +1 -1
- package/dist/react/hooks.js +11 -0
- package/dist/react/hooks.js.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 +2 -2
- package/styles.css +64 -1
|
@@ -1,6 +1,45 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useEffect, useRef, useState } from "react";
|
|
3
3
|
import { deriveTitle, newId, pickRestored, } from "../conversations.js";
|
|
4
|
+
/**
|
|
5
|
+
* Throw this from a transport to say why a turn failed in the reader's
|
|
6
|
+
* words: the failed bubble shows `message`, and `kind` (the product's own
|
|
7
|
+
* code, e.g. "quota" or "no-vision") travels with that message as
|
|
8
|
+
* `failure.kind` for a footer to link the fix. Any other error shows the
|
|
9
|
+
* thread's `failed` label — a raw `TypeError: Failed to fetch` is never
|
|
10
|
+
* shown to a reader — unless ChatApp's `failureMessage` maps it.
|
|
11
|
+
*/
|
|
12
|
+
export class ChatTurnError extends Error {
|
|
13
|
+
kind;
|
|
14
|
+
constructor(message, options = {}) {
|
|
15
|
+
super(message, options.cause === undefined ? undefined : { cause: options.cause });
|
|
16
|
+
this.name = "ChatTurnError";
|
|
17
|
+
this.kind = options.kind;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* What a failed turn keeps: a `ChatTurnError`'s words and kind, a plain
|
|
22
|
+
* `{ message, kind }` object as thrown, or what `map` makes of anything
|
|
23
|
+
* else. Never an ordinary Error's message — that is for the console.
|
|
24
|
+
*/
|
|
25
|
+
export function chatTurnFailure(error, map) {
|
|
26
|
+
if (error instanceof ChatTurnError) {
|
|
27
|
+
return { message: error.message, ...(error.kind ? { kind: error.kind } : {}) };
|
|
28
|
+
}
|
|
29
|
+
const mapped = map?.(error);
|
|
30
|
+
if (mapped)
|
|
31
|
+
return { message: mapped };
|
|
32
|
+
if (error && typeof error === "object" && !(error instanceof Error)) {
|
|
33
|
+
const { message, kind } = error;
|
|
34
|
+
const out = {};
|
|
35
|
+
if (typeof message === "string" && message.trim())
|
|
36
|
+
out.message = message;
|
|
37
|
+
if (typeof kind === "string" && kind)
|
|
38
|
+
out.kind = kind;
|
|
39
|
+
return out;
|
|
40
|
+
}
|
|
41
|
+
return {};
|
|
42
|
+
}
|
|
4
43
|
const TEMP = "tmp";
|
|
5
44
|
export const isTemporaryId = (id) => !!id && id.startsWith(`${TEMP}-`);
|
|
6
45
|
function messageAttachments(list) {
|
|
@@ -38,7 +77,7 @@ function writeRemembered(key, id) {
|
|
|
38
77
|
* and temporary chats, turns (one per conversation, each running on when the
|
|
39
78
|
* person opens another chat), the queue, titles and the reopen-on-reload.
|
|
40
79
|
*/
|
|
41
|
-
export function useChatApp({ store, transport, makeTitle, conversationId, onConversationChange, rememberKey, }) {
|
|
80
|
+
export function useChatApp({ store, transport, makeTitle, conversationId, onConversationChange, rememberKey, stopKeepsPartial = true, failureMessage, onTemporaryEnd, restore = true, }) {
|
|
42
81
|
const [list, setList] = useState([]);
|
|
43
82
|
const [listState, setListState] = useState("loading");
|
|
44
83
|
const [activeId, setActiveId] = useState(null);
|
|
@@ -50,6 +89,7 @@ export function useChatApp({ store, transport, makeTitle, conversationId, onConv
|
|
|
50
89
|
const [queue, setQueue] = useState([]);
|
|
51
90
|
const [problem, setProblem] = useState(null);
|
|
52
91
|
const [reload, setReload] = useState(0);
|
|
92
|
+
const [ready, setReady] = useState(false);
|
|
53
93
|
// Async work reads the CURRENT state through these, never a stale closure.
|
|
54
94
|
const threadsRef = useRef(threads);
|
|
55
95
|
const queueRef = useRef(queue);
|
|
@@ -59,10 +99,32 @@ export function useChatApp({ store, transport, makeTitle, conversationId, onConv
|
|
|
59
99
|
const restored = useRef(false);
|
|
60
100
|
const transportRef = useRef(transport);
|
|
61
101
|
const titleRef = useRef(makeTitle);
|
|
102
|
+
const optionsRef = useRef({ stopKeepsPartial, failureMessage, onTemporaryEnd });
|
|
62
103
|
useEffect(() => {
|
|
63
104
|
transportRef.current = transport;
|
|
64
105
|
titleRef.current = makeTitle;
|
|
106
|
+
optionsRef.current = { stopKeepsPartial, failureMessage, onTemporaryEnd };
|
|
65
107
|
});
|
|
108
|
+
// The files of each person's message, by its id, kept until its answer
|
|
109
|
+
// lands: Retry after a failure sends the pictures again, not only the words.
|
|
110
|
+
const turnFiles = useRef(new Map());
|
|
111
|
+
const ended = useRef(new Set());
|
|
112
|
+
const readyWaiters = useRef([]);
|
|
113
|
+
const markReady = () => {
|
|
114
|
+
restored.current = true;
|
|
115
|
+
setReady(true);
|
|
116
|
+
for (const go of readyWaiters.current.splice(0))
|
|
117
|
+
go();
|
|
118
|
+
};
|
|
119
|
+
/** Resolves once the list has loaded and the reopened chat is chosen, so a
|
|
120
|
+
* message sent from outside never lands before the restore moves away. */
|
|
121
|
+
const whenReady = () => restored.current ? Promise.resolve() : new Promise((go) => readyWaiters.current.push(go));
|
|
122
|
+
const endTemporary = (id) => {
|
|
123
|
+
if (!isTemporaryId(id) || ended.current.has(id))
|
|
124
|
+
return;
|
|
125
|
+
ended.current.add(id);
|
|
126
|
+
optionsRef.current.onTemporaryEnd?.(id);
|
|
127
|
+
};
|
|
66
128
|
const setThreadsNow = (fn) => {
|
|
67
129
|
threadsRef.current = fn(threadsRef.current);
|
|
68
130
|
setThreads(threadsRef.current);
|
|
@@ -83,13 +145,28 @@ export function useChatApp({ store, transport, makeTitle, conversationId, onConv
|
|
|
83
145
|
if (!isTemporaryId(id))
|
|
84
146
|
return;
|
|
85
147
|
controllers.current.get(id)?.abort();
|
|
148
|
+
for (const m of threadsRef.current[id] ?? [])
|
|
149
|
+
turnFiles.current.delete(m.id);
|
|
86
150
|
setThreadsNow((t) => {
|
|
87
151
|
const next = { ...t };
|
|
88
152
|
delete next[id];
|
|
89
153
|
return next;
|
|
90
154
|
});
|
|
91
155
|
setQueueNow((q) => q.filter((item) => item.conversation !== id));
|
|
156
|
+
endTemporary(id);
|
|
92
157
|
};
|
|
158
|
+
// A temporary chat also ends when the page goes away or ChatApp unmounts.
|
|
159
|
+
// (StrictMode's rehearsal unmount finds no temporary chat: one only exists
|
|
160
|
+
// after a first message.)
|
|
161
|
+
useEffect(() => {
|
|
162
|
+
const hide = () => endTemporary(activeRef.current);
|
|
163
|
+
globalThis.addEventListener?.("pagehide", hide);
|
|
164
|
+
return () => {
|
|
165
|
+
globalThis.removeEventListener?.("pagehide", hide);
|
|
166
|
+
hide();
|
|
167
|
+
};
|
|
168
|
+
// Reads everything through refs.
|
|
169
|
+
}, []);
|
|
93
170
|
const open = (id) => {
|
|
94
171
|
if (id === activeRef.current)
|
|
95
172
|
return;
|
|
@@ -126,17 +203,21 @@ export function useChatApp({ store, transport, makeTitle, conversationId, onConv
|
|
|
126
203
|
setList(rows);
|
|
127
204
|
setListState("ready");
|
|
128
205
|
if (!restored.current) {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
206
|
+
const id = restore
|
|
207
|
+
? pickRestored(rows, conversationId, readRemembered(rememberKey))
|
|
208
|
+
: null;
|
|
209
|
+
// An outside send may already have opened a chat: never move off it.
|
|
210
|
+
if (id && activeRef.current === null)
|
|
132
211
|
open(id);
|
|
212
|
+
markReady();
|
|
133
213
|
}
|
|
134
214
|
})
|
|
135
215
|
.catch(() => {
|
|
136
216
|
if (!alive)
|
|
137
217
|
return;
|
|
138
|
-
restored.current = true;
|
|
139
218
|
setListState("error");
|
|
219
|
+
if (!restored.current)
|
|
220
|
+
markReady();
|
|
140
221
|
});
|
|
141
222
|
return () => {
|
|
142
223
|
alive = false;
|
|
@@ -181,9 +262,12 @@ export function useChatApp({ store, transport, makeTitle, conversationId, onConv
|
|
|
181
262
|
setLive((l) => ({ ...l, [id]: {} }));
|
|
182
263
|
let soFar = {};
|
|
183
264
|
let ok = false;
|
|
265
|
+
let keepPartial = null;
|
|
266
|
+
const asked = [...(threadsRef.current[id] ?? [])].reverse().find((m) => m.role === "user");
|
|
184
267
|
try {
|
|
185
268
|
const result = await transportRef.current({
|
|
186
269
|
conversationId: temp ? null : id,
|
|
270
|
+
chatId: id,
|
|
187
271
|
temporary: temp,
|
|
188
272
|
text,
|
|
189
273
|
attachments,
|
|
@@ -194,6 +278,9 @@ export function useChatApp({ store, transport, makeTitle, conversationId, onConv
|
|
|
194
278
|
if (!controller.signal.aborted)
|
|
195
279
|
setLive((l) => (id in l ? { ...l, [id]: soFar } : l));
|
|
196
280
|
},
|
|
281
|
+
stopKeepsPartial: (keep) => {
|
|
282
|
+
keepPartial = keep;
|
|
283
|
+
},
|
|
197
284
|
});
|
|
198
285
|
if (controller.signal.aborted)
|
|
199
286
|
throw new DOMException("stopped", "AbortError");
|
|
@@ -202,6 +289,8 @@ export function useChatApp({ store, transport, makeTitle, conversationId, onConv
|
|
|
202
289
|
push(id, message);
|
|
203
290
|
save(id, message);
|
|
204
291
|
ok = true;
|
|
292
|
+
if (asked)
|
|
293
|
+
turnFiles.current.delete(asked.id);
|
|
205
294
|
if (!temp && history.length === 0 && titleRef.current) {
|
|
206
295
|
void Promise.resolve(titleRef.current({ text, answer: answer.content }))
|
|
207
296
|
.then((title) => (title?.trim() ? rename(id, title.trim()) : undefined))
|
|
@@ -210,10 +299,14 @@ export function useChatApp({ store, transport, makeTitle, conversationId, onConv
|
|
|
210
299
|
});
|
|
211
300
|
}
|
|
212
301
|
}
|
|
213
|
-
catch {
|
|
302
|
+
catch (error) {
|
|
214
303
|
if (controller.signal.aborted) {
|
|
215
|
-
// Stopped: what had arrived is kept, as the apps keep a half answer
|
|
216
|
-
|
|
304
|
+
// Stopped: what had arrived is kept, as the apps keep a half answer —
|
|
305
|
+
// unless the product says this turn's text is not fit to keep.
|
|
306
|
+
const keep = keepPartial ?? optionsRef.current.stopKeepsPartial;
|
|
307
|
+
if (keep && soFar.text?.trim()) {
|
|
308
|
+
if (asked)
|
|
309
|
+
turnFiles.current.delete(asked.id);
|
|
217
310
|
const message = {
|
|
218
311
|
id: newId("m"),
|
|
219
312
|
role: "assistant",
|
|
@@ -226,7 +319,14 @@ export function useChatApp({ store, transport, makeTitle, conversationId, onConv
|
|
|
226
319
|
setStopped((s) => ({ ...s, [id]: true }));
|
|
227
320
|
}
|
|
228
321
|
else {
|
|
229
|
-
|
|
322
|
+
const failure = chatTurnFailure(error, optionsRef.current.failureMessage);
|
|
323
|
+
push(id, {
|
|
324
|
+
id: newId("m"),
|
|
325
|
+
role: "assistant",
|
|
326
|
+
content: failure.message ?? "",
|
|
327
|
+
failed: true,
|
|
328
|
+
...(failure.message || failure.kind ? { failure } : {}),
|
|
329
|
+
});
|
|
230
330
|
}
|
|
231
331
|
}
|
|
232
332
|
finally {
|
|
@@ -243,27 +343,33 @@ export function useChatApp({ store, transport, makeTitle, conversationId, onConv
|
|
|
243
343
|
const next = queueRef.current.find((q) => q.conversation === id);
|
|
244
344
|
if (next) {
|
|
245
345
|
setQueueNow((q) => q.filter((item) => item.id !== next.id));
|
|
246
|
-
void sendIn(id, next.text, next.attachments);
|
|
346
|
+
void sendIn(id, next.text, next.attachments, next.chips);
|
|
247
347
|
}
|
|
248
348
|
}
|
|
249
349
|
};
|
|
250
|
-
const sendIn = async (id, text, attachments) => {
|
|
350
|
+
const sendIn = async (id, text, attachments, chips) => {
|
|
251
351
|
const history = (threadsRef.current[id] ?? []).filter((m) => !m.failed);
|
|
252
352
|
const message = {
|
|
253
353
|
id: newId("m"),
|
|
254
354
|
role: "user",
|
|
255
355
|
content: text,
|
|
256
356
|
...(attachments.length ? { attachments: messageAttachments(attachments) } : {}),
|
|
357
|
+
...(chips && chips.length ? { chips } : {}),
|
|
257
358
|
};
|
|
359
|
+
if (attachments.length)
|
|
360
|
+
turnFiles.current.set(message.id, attachments);
|
|
258
361
|
push(id, message);
|
|
259
362
|
save(id, message);
|
|
260
363
|
await runTurn(id, text, attachments, history);
|
|
261
364
|
};
|
|
262
365
|
/** Composer's onSend. Resolves false to keep the draft (nothing was sent). */
|
|
263
|
-
const send = async (text, attachments = []) => {
|
|
366
|
+
const send = async (text, attachments = [], options = {}) => {
|
|
367
|
+
const { chips } = options;
|
|
368
|
+
if (options.newChat)
|
|
369
|
+
newChat();
|
|
264
370
|
let id = activeRef.current;
|
|
265
371
|
if (id && controllers.current.has(id)) {
|
|
266
|
-
setQueueNow((q) => [...q, { id: newId("q"), conversation: id, text, attachments }]);
|
|
372
|
+
setQueueNow((q) => [...q, { id: newId("q"), conversation: id, text, attachments, chips }]);
|
|
267
373
|
return true;
|
|
268
374
|
}
|
|
269
375
|
if (!id) {
|
|
@@ -284,7 +390,7 @@ export function useChatApp({ store, transport, makeTitle, conversationId, onConv
|
|
|
284
390
|
setThreadsNow((t) => ({ ...t, [id]: [] }));
|
|
285
391
|
select(id, temporaryRef.current);
|
|
286
392
|
}
|
|
287
|
-
void sendIn(id, text, attachments);
|
|
393
|
+
void sendIn(id, text, attachments, chips);
|
|
288
394
|
return true;
|
|
289
395
|
};
|
|
290
396
|
const stop = () => {
|
|
@@ -304,7 +410,7 @@ export function useChatApp({ store, transport, makeTitle, conversationId, onConv
|
|
|
304
410
|
return;
|
|
305
411
|
setThreadsNow((t) => ({ ...t, [id]: kept }));
|
|
306
412
|
const history = kept.slice(0, kept.indexOf(lastUser));
|
|
307
|
-
void runTurn(id, lastUser.content, [], history);
|
|
413
|
+
void runTurn(id, lastUser.content, turnFiles.current.get(lastUser.id) ?? [], history);
|
|
308
414
|
};
|
|
309
415
|
const newChat = () => {
|
|
310
416
|
leaveTemporary();
|
|
@@ -332,6 +438,8 @@ export function useChatApp({ store, transport, makeTitle, conversationId, onConv
|
|
|
332
438
|
};
|
|
333
439
|
const remove = async (id) => {
|
|
334
440
|
controllers.current.get(id)?.abort();
|
|
441
|
+
for (const m of threadsRef.current[id] ?? [])
|
|
442
|
+
turnFiles.current.delete(m.id);
|
|
335
443
|
setList((l) => l.filter((c) => c.id !== id));
|
|
336
444
|
setThreadsNow((t) => {
|
|
337
445
|
const next = { ...t };
|
|
@@ -353,6 +461,9 @@ export function useChatApp({ store, transport, makeTitle, conversationId, onConv
|
|
|
353
461
|
return {
|
|
354
462
|
list,
|
|
355
463
|
listState,
|
|
464
|
+
/** The list has loaded (or failed) and the reopened chat is chosen. */
|
|
465
|
+
ready,
|
|
466
|
+
whenReady,
|
|
356
467
|
reloadList: () => setReload((n) => n + 1),
|
|
357
468
|
activeId,
|
|
358
469
|
stored,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-chat-app.js","sourceRoot":"","sources":["../../src/react/use-chat-app.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-chat-app.js","sourceRoot":"","sources":["../../src/react/use-chat-app.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitbaum/chatkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"description": "One chat for every product: a composer with a microphone that always works, a thread that does not fight the reader, messages with copy and retry, and LLM markdown — the fleet's chat standard as a package.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Cato",
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"test:browser": "pnpm run demo && node test/browser.mjs && node test/browser-scroll.mjs && node test/browser-app.mjs"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
|
77
|
-
"@bitbaum/design-tokens": "
|
|
77
|
+
"@bitbaum/design-tokens": "^1.2.0",
|
|
78
78
|
"@eslint/js": "^10.0.1",
|
|
79
79
|
"@types/node": "^26.4.0",
|
|
80
80
|
"@types/react": "^19.2.18",
|
package/styles.css
CHANGED
|
@@ -591,7 +591,7 @@
|
|
|
591
591
|
align-items: center;
|
|
592
592
|
gap: 0.375rem;
|
|
593
593
|
align-self: flex-start;
|
|
594
|
-
min-height:
|
|
594
|
+
min-height: var(--ck-target);
|
|
595
595
|
margin-top: 0.5rem;
|
|
596
596
|
padding: 0 0.875rem;
|
|
597
597
|
border: 1px solid var(--ck-line);
|
|
@@ -1379,6 +1379,52 @@ a.ck-cite:hover {
|
|
|
1379
1379
|
border-top: 1px solid var(--ck-line);
|
|
1380
1380
|
}
|
|
1381
1381
|
|
|
1382
|
+
.ck-sheet-only {
|
|
1383
|
+
margin-top: 0;
|
|
1384
|
+
padding-top: 0;
|
|
1385
|
+
border-top: 0;
|
|
1386
|
+
}
|
|
1387
|
+
/* One anatomy for every app row: icon, what it adds, an optional second line. */
|
|
1388
|
+
.ck-attach-extra {
|
|
1389
|
+
display: flex;
|
|
1390
|
+
align-items: center;
|
|
1391
|
+
gap: 0.75rem;
|
|
1392
|
+
width: 100%;
|
|
1393
|
+
min-height: var(--ck-target);
|
|
1394
|
+
padding: 0.375rem 0.5rem;
|
|
1395
|
+
border: 0;
|
|
1396
|
+
border-radius: var(--ck-radius-sm);
|
|
1397
|
+
background: transparent;
|
|
1398
|
+
color: var(--ck-fg);
|
|
1399
|
+
font: inherit;
|
|
1400
|
+
font-size: 0.9375rem;
|
|
1401
|
+
text-align: left;
|
|
1402
|
+
cursor: pointer;
|
|
1403
|
+
}
|
|
1404
|
+
.ck-attach-extra:hover {
|
|
1405
|
+
background: var(--ck-raised);
|
|
1406
|
+
}
|
|
1407
|
+
.ck-attach-extra:focus-visible {
|
|
1408
|
+
outline: 2px solid var(--ck-accent);
|
|
1409
|
+
outline-offset: 2px;
|
|
1410
|
+
}
|
|
1411
|
+
.ck-attach-extra-icon {
|
|
1412
|
+
display: inline-flex;
|
|
1413
|
+
flex: none;
|
|
1414
|
+
font-size: 1.25rem;
|
|
1415
|
+
color: var(--ck-fg-2);
|
|
1416
|
+
}
|
|
1417
|
+
.ck-attach-extra-text {
|
|
1418
|
+
display: flex;
|
|
1419
|
+
flex: 1;
|
|
1420
|
+
flex-direction: column;
|
|
1421
|
+
min-width: 0;
|
|
1422
|
+
}
|
|
1423
|
+
.ck-attach-extra-text small {
|
|
1424
|
+
color: var(--ck-muted);
|
|
1425
|
+
font-size: 0.8125rem;
|
|
1426
|
+
}
|
|
1427
|
+
|
|
1382
1428
|
/* while an answer is read aloud: Stop, a quiet wave, the time so far */
|
|
1383
1429
|
.ck-player {
|
|
1384
1430
|
align-items: center;
|
|
@@ -2333,7 +2379,24 @@ details.ck-thinking[open] > summary svg {
|
|
|
2333
2379
|
font-size: 0.75rem;
|
|
2334
2380
|
}
|
|
2335
2381
|
|
|
2382
|
+
/* A product's own line in the chat list, under the search box. */
|
|
2383
|
+
.ck-history-slot {
|
|
2384
|
+
padding: 0 0.5rem;
|
|
2385
|
+
color: var(--ck-fg-3);
|
|
2386
|
+
font-size: 0.875rem;
|
|
2387
|
+
}
|
|
2388
|
+
.ck-history-slot a {
|
|
2389
|
+
color: var(--ck-fg);
|
|
2390
|
+
}
|
|
2391
|
+
|
|
2336
2392
|
/* What the person sent with their words, above their bubble. */
|
|
2393
|
+
a.ck-turn-chip {
|
|
2394
|
+
color: var(--ck-fg);
|
|
2395
|
+
text-decoration: none;
|
|
2396
|
+
}
|
|
2397
|
+
a.ck-turn-chip:hover {
|
|
2398
|
+
border-color: var(--ck-line-2);
|
|
2399
|
+
}
|
|
2337
2400
|
.ck-turn-files {
|
|
2338
2401
|
display: flex;
|
|
2339
2402
|
flex-wrap: wrap;
|