@bitbaum/chatkit 0.27.0 → 0.28.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 +4 -1
- package/dist/react/CommentThread.d.ts +20 -1
- package/dist/react/CommentThread.d.ts.map +1 -1
- package/dist/react/CommentThread.js +23 -4
- package/dist/react/CommentThread.js.map +1 -1
- package/dist/react/index.d.ts +1 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +1 -1
- package/dist/react/index.js.map +1 -1
- package/package.json +1 -1
- package/styles/chat.css +6 -2
- package/styles.css +6 -2
package/README.md
CHANGED
|
@@ -534,7 +534,10 @@ The conversation under anything: an article, a page, a listing.
|
|
|
534
534
|
The component owns the list, the optimistic removal (rolled back, in words, if
|
|
535
535
|
it fails) and every failure message; the box is `Composer`, so it has the
|
|
536
536
|
microphone, 16px text and Enter-to-send; a refused post keeps the draft in the
|
|
537
|
-
box.
|
|
537
|
+
box. To say why a post was refused ("Write a longer comment", a rate
|
|
538
|
+
limit), throw `new CommentRefused(words)` from `post` or `remove`: the thread
|
|
539
|
+
shows those words instead of the generic "try again", which would fail the
|
|
540
|
+
same way forever; any other error shows the label. A comment is shown as text, never as markup, with its line breaks. Times
|
|
538
541
|
render in `timeZone` (UTC by default, so the server's and the browser's markup
|
|
539
542
|
agree), or through your own `formatTime`.
|
|
540
543
|
|
|
@@ -12,11 +12,30 @@ export type CommentItem = {
|
|
|
12
12
|
* every failure message; the app owns the database and who may do what.
|
|
13
13
|
*/
|
|
14
14
|
export type CommentTransport = {
|
|
15
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* Store the comment and return it as stored (its id, its author, its time).
|
|
17
|
+
* Throw to refuse: a `CommentRefused` with the reason the reader should see.
|
|
18
|
+
*/
|
|
16
19
|
post: (text: string) => Promise<CommentItem>;
|
|
17
20
|
/** Delete one. Omit and nobody gets a Remove button. */
|
|
18
21
|
remove?: (id: string) => Promise<void>;
|
|
19
22
|
};
|
|
23
|
+
/**
|
|
24
|
+
* Throw this from `transport.post` or `transport.remove` to say why in the
|
|
25
|
+
* reader's words: the thread shows `message` under the box instead of its
|
|
26
|
+
* generic `postFailed` / `removeFailed`, so "Write a longer comment" or "You
|
|
27
|
+
* have posted a lot this hour" reaches the reader rather than "try again",
|
|
28
|
+
* which would fail the same way forever. Any other error shows the label: a
|
|
29
|
+
* raw `TypeError` or a server's English is never shown (the same rule as
|
|
30
|
+
* `ChatTurnError`).
|
|
31
|
+
*/
|
|
32
|
+
export declare class CommentRefused extends Error {
|
|
33
|
+
constructor(message: string, options?: {
|
|
34
|
+
cause?: unknown;
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/** What a failed post or removal says: a `CommentRefused`'s words, else the label. */
|
|
38
|
+
export declare function commentFailure(error: unknown, fallback: string): string;
|
|
20
39
|
export type CommentThreadLabels = {
|
|
21
40
|
/** The heading: "No comments yet", "1 comment", "7 comments". */
|
|
22
41
|
count: (n: number) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommentThread.d.ts","sourceRoot":"","sources":["../../src/react/CommentThread.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAE7D,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACnC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B
|
|
1
|
+
{"version":3,"file":"CommentThread.d.ts","sourceRoot":"","sources":["../../src/react/CommentThread.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAE7D,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACnC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;OAGG;IACH,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7C,wDAAwD;IACxD,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC,CAAC;AAEF;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO;CAI/D;AAED,sFAAsF;AACtF,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,iEAAiE;IACjE,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,mBAU3C,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,kFAAkF;IAClF,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IACjC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,sFAAsF;IACtF,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAChC,+FAA+F;IAC/F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC;IAC9C,8EAA8E;IAC9E,KAAK,CAAC,EAAE,aAAa,GAAG,KAAK,CAAC;IAC9B;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,KAAK,MAAM,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAaF;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,SAAS,EACT,MAAM,EACN,UAAU,EACV,SAAS,EACT,KAAK,EACL,UAAU,EACV,MAAM,EACN,QAAQ,EACR,YAAgB,EAChB,MAAM,EAAE,SAAS,EACjB,SAAS,GACV,EAAE,kBAAkB,+BA6GpB"}
|
|
@@ -2,6 +2,25 @@
|
|
|
2
2
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { createElement, useId, useState } from "react";
|
|
4
4
|
import { Composer } from "./Composer.js";
|
|
5
|
+
/**
|
|
6
|
+
* Throw this from `transport.post` or `transport.remove` to say why in the
|
|
7
|
+
* reader's words: the thread shows `message` under the box instead of its
|
|
8
|
+
* generic `postFailed` / `removeFailed`, so "Write a longer comment" or "You
|
|
9
|
+
* have posted a lot this hour" reaches the reader rather than "try again",
|
|
10
|
+
* which would fail the same way forever. Any other error shows the label: a
|
|
11
|
+
* raw `TypeError` or a server's English is never shown (the same rule as
|
|
12
|
+
* `ChatTurnError`).
|
|
13
|
+
*/
|
|
14
|
+
export class CommentRefused extends Error {
|
|
15
|
+
constructor(message, options = {}) {
|
|
16
|
+
super(message, options.cause === undefined ? undefined : { cause: options.cause });
|
|
17
|
+
this.name = "CommentRefused";
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/** What a failed post or removal says: a `CommentRefused`'s words, else the label. */
|
|
21
|
+
export function commentFailure(error, fallback) {
|
|
22
|
+
return error instanceof CommentRefused && error.message.trim() ? error.message : fallback;
|
|
23
|
+
}
|
|
5
24
|
export const DEFAULT_COMMENT_THREAD_LABELS = {
|
|
6
25
|
count: (n) => (n === 0 ? "No comments yet" : n === 1 ? "1 comment" : `${n} comments`),
|
|
7
26
|
placeholder: "Say something about this…",
|
|
@@ -47,8 +66,8 @@ export function CommentThread({ comments, transport, viewer, signInHref, canRemo
|
|
|
47
66
|
setList((current) => [...current, created]);
|
|
48
67
|
return true;
|
|
49
68
|
}
|
|
50
|
-
catch {
|
|
51
|
-
setError(labels.postFailed);
|
|
69
|
+
catch (e) {
|
|
70
|
+
setError(commentFailure(e, labels.postFailed));
|
|
52
71
|
return false;
|
|
53
72
|
}
|
|
54
73
|
finally {
|
|
@@ -64,9 +83,9 @@ export function CommentThread({ comments, transport, viewer, signInHref, canRemo
|
|
|
64
83
|
try {
|
|
65
84
|
await transport.remove(id);
|
|
66
85
|
}
|
|
67
|
-
catch {
|
|
86
|
+
catch (e) {
|
|
68
87
|
setList(before);
|
|
69
|
-
setError(labels.removeFailed);
|
|
88
|
+
setError(commentFailure(e, labels.removeFailed));
|
|
70
89
|
}
|
|
71
90
|
};
|
|
72
91
|
const heading = createElement(`h${headingLevel}`, { id: headingId, className: "ck-comments-title" }, labels.count(list.length));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommentThread.js","sourceRoot":"","sources":["../../src/react/CommentThread.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAsB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"CommentThread.js","sourceRoot":"","sources":["../../src/react/CommentThread.tsx"],"names":[],"mappings":"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"}
|
package/dist/react/index.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export { ChatThread, ChatMessage, ChatReplies, ChatStarters, starterParts, Think
|
|
|
13
13
|
export type { ChatMessageData, ChatFailure, FooterInfo, MessageChip, ChatSpeaker, LiveTurn, Starter, Thinking, ThinkingStep, ThreadLabels, } from "./Thread.js";
|
|
14
14
|
export { DictationField, DEFAULT_DICTATION_FIELD_LABELS } from "./DictationField.js";
|
|
15
15
|
export type { DictationFieldProps, DictationFieldLabels, DictationFieldInputProps, ImproveRun, } from "./DictationField.js";
|
|
16
|
-
export { CommentThread, DEFAULT_COMMENT_THREAD_LABELS } from "./CommentThread.js";
|
|
16
|
+
export { CommentThread, CommentRefused, commentFailure, DEFAULT_COMMENT_THREAD_LABELS, } from "./CommentThread.js";
|
|
17
17
|
export type { CommentItem, CommentTransport, CommentThreadProps, CommentThreadLabels, } from "./CommentThread.js";
|
|
18
18
|
export { ChatScreen } from "./Screen.js";
|
|
19
19
|
export { Markdown, SourcesRow, defaultRenderLink, defaultRenderCitation } from "./Markdown.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAClE,YAAY,EACV,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,aAAa,EACb,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,eAAe,EACf,WAAW,EACX,UAAU,EACV,WAAW,EACX,WAAW,EACX,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AACrF,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,UAAU,GACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
|
package/dist/react/index.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
export { Composer, DEFAULT_COMPOSER_LABELS } from "./Composer.js";
|
|
11
11
|
export { ChatThread, ChatMessage, ChatReplies, ChatStarters, starterParts, ThinkingRow, formatThinkingDuration, DEFAULT_THREAD_LABELS, } from "./Thread.js";
|
|
12
12
|
export { DictationField, DEFAULT_DICTATION_FIELD_LABELS } from "./DictationField.js";
|
|
13
|
-
export { CommentThread, DEFAULT_COMMENT_THREAD_LABELS } from "./CommentThread.js";
|
|
13
|
+
export { CommentThread, CommentRefused, commentFailure, DEFAULT_COMMENT_THREAD_LABELS, } from "./CommentThread.js";
|
|
14
14
|
export { ChatScreen } from "./Screen.js";
|
|
15
15
|
export { Markdown, SourcesRow, defaultRenderLink, defaultRenderCitation } from "./Markdown.js";
|
|
16
16
|
export { AnswerActions, DEFAULT_ANSWER_ACTIONS_LABELS } from "./AnswerActions.js";
|
package/dist/react/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAQlE,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAarB,OAAO,EAAE,cAAc,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AAOrF,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAQlE,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAarB,OAAO,EAAE,cAAc,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AAOrF,OAAO,EACL,aAAa,EACb,cAAc,EACd,cAAc,EACd,6BAA6B,GAC9B,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAElF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE/F,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAExE,OAAO,EAAE,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAQ9E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitbaum/chatkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.28.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",
|
package/styles/chat.css
CHANGED
|
@@ -30,6 +30,9 @@
|
|
|
30
30
|
--ck-muted: hsl(var(--text-muted, 0 0% 50%));
|
|
31
31
|
--ck-line: hsl(var(--border-subtle, 0 0% 90%));
|
|
32
32
|
--ck-line-2: hsl(var(--border-default, 0 0% 82%));
|
|
33
|
+
/* The composer's border while it has focus: the secondary ink, at least 3:1
|
|
34
|
+
on the composer in light and dark (WCAG 2.4.7, 1.4.11). */
|
|
35
|
+
--ck-focus: var(--ck-fg-2);
|
|
33
36
|
--ck-accent: var(--accent-primary, #ff5c00);
|
|
34
37
|
--ck-on-accent: hsl(var(--on-accent, 0 0% 8%));
|
|
35
38
|
--ck-accent-soft: color-mix(in srgb, var(--ck-accent) 14%, transparent);
|
|
@@ -96,8 +99,9 @@
|
|
|
96
99
|
background: var(--ck-bg);
|
|
97
100
|
transition: border-color 0.15s ease;
|
|
98
101
|
}
|
|
99
|
-
.ck-composer:focus-within
|
|
100
|
-
|
|
102
|
+
.ck-composer:focus-within,
|
|
103
|
+
.ck-screen-dock .ck-composer:focus-within {
|
|
104
|
+
border-color: var(--ck-focus);
|
|
101
105
|
}
|
|
102
106
|
.ck-composer-compact {
|
|
103
107
|
gap: 0.375rem;
|
package/styles.css
CHANGED
|
@@ -30,6 +30,9 @@
|
|
|
30
30
|
--ck-muted: hsl(var(--text-muted, 0 0% 50%));
|
|
31
31
|
--ck-line: hsl(var(--border-subtle, 0 0% 90%));
|
|
32
32
|
--ck-line-2: hsl(var(--border-default, 0 0% 82%));
|
|
33
|
+
/* The composer's border while it has focus: the secondary ink, at least 3:1
|
|
34
|
+
on the composer in light and dark (WCAG 2.4.7, 1.4.11). */
|
|
35
|
+
--ck-focus: var(--ck-fg-2);
|
|
33
36
|
--ck-accent: var(--accent-primary, #ff5c00);
|
|
34
37
|
--ck-on-accent: hsl(var(--on-accent, 0 0% 8%));
|
|
35
38
|
--ck-accent-soft: color-mix(in srgb, var(--ck-accent) 14%, transparent);
|
|
@@ -96,8 +99,9 @@
|
|
|
96
99
|
background: var(--ck-bg);
|
|
97
100
|
transition: border-color 0.15s ease;
|
|
98
101
|
}
|
|
99
|
-
.ck-composer:focus-within
|
|
100
|
-
|
|
102
|
+
.ck-composer:focus-within,
|
|
103
|
+
.ck-screen-dock .ck-composer:focus-within {
|
|
104
|
+
border-color: var(--ck-focus);
|
|
101
105
|
}
|
|
102
106
|
.ck-composer-compact {
|
|
103
107
|
gap: 0.375rem;
|