@turingfocus/chat-ui-antd 0.7.0 → 0.8.1

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 (78) hide show
  1. package/dist/chat-composer.d.ts +11 -2
  2. package/dist/chat-composer.d.ts.map +1 -1
  3. package/dist/chat-composer.js +241 -14
  4. package/dist/chat-composer.js.map +1 -1
  5. package/dist/chat-conversation-view.d.ts.map +1 -1
  6. package/dist/chat-conversation-view.js +36 -11
  7. package/dist/chat-conversation-view.js.map +1 -1
  8. package/dist/chat-event-detail.d.ts +2 -1
  9. package/dist/chat-event-detail.d.ts.map +1 -1
  10. package/dist/chat-event-detail.js +3 -2
  11. package/dist/chat-event-detail.js.map +1 -1
  12. package/dist/chat-run-status.d.ts.map +1 -1
  13. package/dist/chat-run-status.js +3 -2
  14. package/dist/chat-run-status.js.map +1 -1
  15. package/dist/chat-timeline.d.ts.map +1 -1
  16. package/dist/chat-timeline.js +17 -16
  17. package/dist/chat-timeline.js.map +1 -1
  18. package/dist/code-content.d.ts +13 -0
  19. package/dist/code-content.d.ts.map +1 -0
  20. package/dist/code-content.js +144 -0
  21. package/dist/code-content.js.map +1 -0
  22. package/dist/code-highlight.d.ts +3 -0
  23. package/dist/code-highlight.d.ts.map +1 -0
  24. package/dist/code-highlight.js +29 -0
  25. package/dist/code-highlight.js.map +1 -0
  26. package/dist/dismissible-chat-alert.d.ts +12 -0
  27. package/dist/dismissible-chat-alert.d.ts.map +1 -0
  28. package/dist/dismissible-chat-alert.js +25 -0
  29. package/dist/dismissible-chat-alert.js.map +1 -0
  30. package/dist/event-renderers.d.ts.map +1 -1
  31. package/dist/event-renderers.js +16 -18
  32. package/dist/event-renderers.js.map +1 -1
  33. package/dist/index.d.ts +2 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +1 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/labels.d.ts +2 -1
  38. package/dist/labels.d.ts.map +1 -1
  39. package/dist/labels.js +33 -0
  40. package/dist/labels.js.map +1 -1
  41. package/dist/markdown-content.d.ts +2 -5
  42. package/dist/markdown-content.d.ts.map +1 -1
  43. package/dist/markdown-content.js +38 -14
  44. package/dist/markdown-content.js.map +1 -1
  45. package/dist/reference-picker.d.ts +8 -0
  46. package/dist/reference-picker.d.ts.map +1 -0
  47. package/dist/reference-picker.js +64 -0
  48. package/dist/reference-picker.js.map +1 -0
  49. package/dist/renderer-registry.d.ts.map +1 -1
  50. package/dist/renderer-registry.js +16 -1
  51. package/dist/renderer-registry.js.map +1 -1
  52. package/dist/resource-content.d.ts +14 -0
  53. package/dist/resource-content.d.ts.map +1 -0
  54. package/dist/resource-content.js +194 -0
  55. package/dist/resource-content.js.map +1 -0
  56. package/dist/resource-labels.d.ts +8 -0
  57. package/dist/resource-labels.d.ts.map +1 -0
  58. package/dist/resource-labels.js +15 -0
  59. package/dist/resource-labels.js.map +1 -0
  60. package/dist/shell-content.d.ts +16 -0
  61. package/dist/shell-content.d.ts.map +1 -0
  62. package/dist/shell-content.js +103 -0
  63. package/dist/shell-content.js.map +1 -0
  64. package/dist/tool-presentation.d.ts +6 -0
  65. package/dist/tool-presentation.d.ts.map +1 -0
  66. package/dist/tool-presentation.js +29 -0
  67. package/dist/tool-presentation.js.map +1 -0
  68. package/dist/types.d.ts +33 -0
  69. package/dist/types.d.ts.map +1 -1
  70. package/dist/use-chat-command-coordinator.d.ts +2 -2
  71. package/dist/use-chat-command-coordinator.d.ts.map +1 -1
  72. package/dist/use-chat-command-coordinator.js +2 -3
  73. package/dist/use-chat-command-coordinator.js.map +1 -1
  74. package/dist/value-inspector.d.ts +7 -0
  75. package/dist/value-inspector.d.ts.map +1 -0
  76. package/dist/value-inspector.js +31 -0
  77. package/dist/value-inspector.js.map +1 -0
  78. package/package.json +5 -3
@@ -1,4 +1,6 @@
1
1
  import { type CSSProperties, type ReactNode } from "react";
2
+ import type { ChatAttachmentUploader, ComposerDraft } from "@turingfocus/chat-react";
3
+ import type { UploadedAttachment } from "@turingfocus/chat-protocol";
2
4
  import type { ChatUiLabelOverrides } from "./types.js";
3
5
  export interface ChatComposerProps {
4
6
  readonly className?: string | undefined;
@@ -6,14 +8,21 @@ export interface ChatComposerProps {
6
8
  readonly disabledReason?: ReactNode | undefined;
7
9
  readonly interruptAction?: ChatComposerInterruptAction | undefined;
8
10
  readonly labels?: ChatUiLabelOverrides | undefined;
9
- readonly onSend: (text: string) => boolean | PromiseLike<boolean>;
11
+ readonly onSend: (text: string, attachments?: readonly UploadedAttachment[]) => boolean | PromiseLike<boolean>;
12
+ readonly attachmentUploader?: ChatAttachmentUploader | undefined;
13
+ readonly draft?: ComposerDraft | undefined;
14
+ readonly getDeadlineAt?: (() => number) | undefined;
15
+ readonly longTextThreshold?: number | undefined;
16
+ readonly maxAttachments?: number | undefined;
17
+ readonly onDraftChange?: ((draft: Pick<ComposerDraft, "attachments" | "longTexts" | "text">) => void) | undefined;
10
18
  readonly resetKey?: string | undefined;
11
19
  readonly style?: CSSProperties | undefined;
20
+ readonly textInputDisabled?: boolean | undefined;
12
21
  }
13
22
  export interface ChatComposerInterruptAction {
14
23
  readonly disabled?: boolean | undefined;
15
24
  readonly onInterrupt: () => boolean | PromiseLike<boolean>;
16
25
  readonly resetKey?: string | undefined;
17
26
  }
18
- export declare const ChatComposer: ({ className, disabled, disabledReason, interruptAction, labels: labelOverrides, onSend, resetKey, style, }: ChatComposerProps) => import("react").JSX.Element;
27
+ export declare const ChatComposer: ({ className, disabled, disabledReason, interruptAction, attachmentUploader, draft: controlledDraft, getDeadlineAt, longTextThreshold, maxAttachments, onDraftChange, labels: labelOverrides, onSend, resetKey, style, textInputDisabled, }: ChatComposerProps) => import("react").JSX.Element;
19
28
  //# sourceMappingURL=chat-composer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-composer.d.ts","sourceRoot":"","sources":["../src/chat-composer.tsx"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,aAAa,EAElB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,eAAe,CAAC,EAAE,2BAA2B,GAAG,SAAS,CAAC;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAClE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CAC5C;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,eAAO,MAAM,YAAY,GAAI,4GAS1B,iBAAiB,gCAsInB,CAAC"}
1
+ {"version":3,"file":"chat-composer.d.ts","sourceRoot":"","sources":["../src/chat-composer.tsx"],"names":[],"mappings":"AAMA,OAAO,EAKL,KAAK,aAAa,EAIlB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EAEd,MAAM,yBAAyB,CAAC;AAKjC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,eAAe,CAAC,EAAE,2BAA2B,GAAG,SAAS,CAAC;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,CACf,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,SAAS,kBAAkB,EAAE,KACxC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACpC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,aAAa,CAAC,EACnB,CAAC,CACC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,GAAG,WAAW,GAAG,MAAM,CAAC,KAC7D,IAAI,CAAC,GACV,SAAS,CAAC;IACd,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAClD;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,eAAO,MAAM,YAAY,GAAI,4OAgB1B,iBAAiB,gCAohBnB,CAAC"}
@@ -1,38 +1,95 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Button, Input, Typography, theme } from "antd";
3
- import { useEffect, useRef, useState, } from "react";
2
+ import { ChatReferencePicker } from "./reference-picker.js";
3
+ import { appendComposerReference, useChatDocumentSource, } from "@turingfocus/chat-react";
4
+ import { Button, Input, Modal, Space, Typography, theme } from "antd";
5
+ import { useCallback, useEffect, useRef, useState, } from "react";
6
+ import { rebaseComposerLongTexts, resolveComposerDraftText, } from "@turingfocus/chat-react";
4
7
  import { resolveChatUiLabels } from "./labels.js";
5
- export const ChatComposer = ({ className, disabled = false, disabledReason, interruptAction, labels: labelOverrides, onSend, resetKey, style, }) => {
8
+ export const ChatComposer = ({ className, disabled = false, disabledReason, interruptAction, attachmentUploader, draft: controlledDraft, getDeadlineAt, longTextThreshold = 4_000, maxAttachments = 20, onDraftChange, labels: labelOverrides, onSend, resetKey, style, textInputDisabled = false, }) => {
9
+ const { source: documentSource, scope: documentScope } = useChatDocumentSource();
10
+ const [referencePickerOpen, setReferencePickerOpen] = useState(false);
11
+ useEffect(() => setReferencePickerOpen(false), [resetKey, documentSource, documentScope]);
6
12
  const { token } = theme.useToken();
7
13
  const labels = resolveChatUiLabels(labelOverrides);
8
14
  const [draft, setDraft] = useState("");
15
+ const [uploading, setUploading] = useState([]);
16
+ const [selectedLongTextId, setSelectedLongTextId] = useState();
17
+ const sequence = useRef(0);
18
+ const uploadGeneration = useRef(0);
19
+ const uploadControllers = useRef(new Map());
20
+ const fileInput = useRef(null);
21
+ const textarea = useRef(null);
22
+ const pendingTextEdit = useRef();
9
23
  const [interrupting, setInterrupting] = useState(false);
10
24
  const [submitting, setSubmitting] = useState(false);
11
25
  const interruptRequestId = useRef(0);
12
26
  const submissionId = useRef(0);
13
27
  const interruptResetKey = interruptAction?.resetKey ?? null;
28
+ const text = controlledDraft?.text ?? draft;
29
+ const attachments = controlledDraft?.attachments ?? [];
30
+ const longTexts = controlledDraft?.longTexts ?? [];
31
+ const revision = controlledDraft?.revision ?? 0;
32
+ const draftSnapshot = useRef({ attachments, longTexts, revision, text });
33
+ draftSnapshot.current = { attachments, longTexts, revision, text };
34
+ const updateDraft = useCallback((patch, textEdit) => {
35
+ if (controlledDraft !== undefined && onDraftChange !== undefined) {
36
+ const current = draftSnapshot.current;
37
+ const nextText = patch.text ?? current.text;
38
+ const nextLongTexts = patch.longTexts ??
39
+ rebaseComposerLongTexts(current.text, nextText, current.longTexts, textEdit);
40
+ const next = {
41
+ attachments: patch.attachments ?? current.attachments,
42
+ longTexts: nextLongTexts,
43
+ text: nextText,
44
+ };
45
+ draftSnapshot.current = { ...next, revision: current.revision + 1 };
46
+ onDraftChange(next);
47
+ }
48
+ else if (patch.text !== undefined) {
49
+ setDraft(patch.text);
50
+ }
51
+ }, [controlledDraft, onDraftChange]);
14
52
  useEffect(() => {
53
+ const cancelUploads = () => {
54
+ uploadGeneration.current += 1;
55
+ for (const controller of uploadControllers.current.values()) {
56
+ controller.abort();
57
+ }
58
+ uploadControllers.current.clear();
59
+ };
60
+ cancelUploads();
61
+ pendingTextEdit.current = undefined;
15
62
  submissionId.current += 1;
16
63
  setDraft("");
64
+ setUploading([]);
17
65
  setSubmitting(false);
66
+ return cancelUploads;
18
67
  }, [resetKey]);
19
68
  useEffect(() => {
20
69
  interruptRequestId.current += 1;
21
70
  setInterrupting(false);
22
71
  }, [interruptResetKey]);
23
72
  const submit = async () => {
24
- const text = draft.trim();
25
- if (disabled || submitting || text.length === 0)
73
+ const resolvedText = resolveComposerDraftText({
74
+ attachments,
75
+ conversationId: controlledDraft?.conversationId ?? "standalone",
76
+ longTexts,
77
+ revision,
78
+ text,
79
+ });
80
+ if (disabled ||
81
+ submitting ||
82
+ (resolvedText.trim().length === 0 && attachments.length === 0))
26
83
  return;
27
84
  const requestId = submissionId.current + 1;
28
85
  submissionId.current = requestId;
29
86
  setSubmitting(true);
30
87
  try {
31
- const succeeded = await onSend(text);
88
+ const succeeded = await onSend(resolvedText, attachments);
32
89
  if (submissionId.current !== requestId)
33
90
  return;
34
- if (succeeded) {
35
- setDraft((current) => (current.trim() === text ? "" : current));
91
+ if (succeeded && controlledDraft === undefined) {
92
+ updateDraft({ attachments: [], longTexts: [], text: "" });
36
93
  }
37
94
  }
38
95
  catch {
@@ -44,6 +101,116 @@ export const ChatComposer = ({ className, disabled = false, disabledReason, inte
44
101
  setSubmitting(false);
45
102
  }
46
103
  };
104
+ const uploadFile = useCallback(async (file, id) => {
105
+ if (attachmentUploader === undefined || getDeadlineAt === undefined)
106
+ return;
107
+ const generation = uploadGeneration.current;
108
+ uploadControllers.current.get(id)?.abort();
109
+ const controller = new AbortController();
110
+ uploadControllers.current.set(id, controller);
111
+ setUploading((current) => [
112
+ ...current.filter((item) => item.id !== id),
113
+ { file, id },
114
+ ]);
115
+ let result;
116
+ try {
117
+ result = await attachmentUploader.upload({
118
+ deadlineAt: getDeadlineAt(),
119
+ blob: file,
120
+ fileName: file.name,
121
+ mimeType: file.type,
122
+ cancellation: {
123
+ get aborted() {
124
+ return controller.signal.aborted;
125
+ },
126
+ subscribe(listener) {
127
+ if (controller.signal.aborted) {
128
+ listener();
129
+ return () => undefined;
130
+ }
131
+ const onAbort = () => listener();
132
+ controller.signal.addEventListener("abort", onAbort, {
133
+ once: true,
134
+ });
135
+ return () => controller.signal.removeEventListener("abort", onAbort);
136
+ },
137
+ },
138
+ });
139
+ }
140
+ catch (error) {
141
+ if (uploadGeneration.current !== generation)
142
+ return;
143
+ setUploading((current) => current.map((item) => item.id === id
144
+ ? {
145
+ ...item,
146
+ error: error instanceof Error ? error.message : "Upload failed",
147
+ }
148
+ : item));
149
+ return;
150
+ }
151
+ finally {
152
+ if (uploadControllers.current.get(id) === controller) {
153
+ uploadControllers.current.delete(id);
154
+ }
155
+ }
156
+ if (uploadGeneration.current !== generation)
157
+ return;
158
+ if (result.ok) {
159
+ updateDraft({
160
+ attachments: [...draftSnapshot.current.attachments, result.value],
161
+ });
162
+ setUploading((current) => current.filter((item) => item.id !== id));
163
+ }
164
+ else {
165
+ setUploading((current) => current.map((item) => item.id === id ? { ...item, error: result.error.message } : item));
166
+ }
167
+ }, [attachmentUploader, getDeadlineAt, updateDraft]);
168
+ const selectFiles = (event) => {
169
+ const remaining = Math.max(0, maxAttachments - attachments.length - uploading.length);
170
+ for (const file of Array.from(event.target.files ?? []).slice(0, remaining)) {
171
+ const id = `upload-${++sequence.current}`;
172
+ void uploadFile(file, id);
173
+ }
174
+ event.target.value = "";
175
+ };
176
+ const handlePaste = (event) => {
177
+ pendingTextEdit.current = undefined;
178
+ const files = Array.from(event.clipboardData.files);
179
+ if (files.length > 0 && attachmentUploader !== undefined) {
180
+ event.preventDefault();
181
+ const remaining = Math.max(0, maxAttachments - attachments.length - uploading.length);
182
+ for (const file of files.slice(0, remaining))
183
+ void uploadFile(file, `paste-${++sequence.current}`);
184
+ return;
185
+ }
186
+ const pasted = event.clipboardData.getData("text/plain");
187
+ if (pasted.length <= longTextThreshold || controlledDraft === undefined)
188
+ return;
189
+ event.preventDefault();
190
+ const id = `long-text-${++sequence.current}`;
191
+ const label = `[Pasted text ${longTexts.length + 1}]`;
192
+ const element = textarea.current;
193
+ const start = element?.selectionStart ?? text.length;
194
+ const end = element?.selectionEnd ?? start;
195
+ const nextText = `${text.slice(0, start)}${label}${text.slice(end)}`;
196
+ updateDraft({
197
+ text: nextText,
198
+ longTexts: [
199
+ ...rebaseComposerLongTexts(text, nextText, longTexts, {
200
+ nextEnd: start + label.length,
201
+ previousEnd: end,
202
+ previousStart: start,
203
+ }),
204
+ {
205
+ content: pasted,
206
+ end: start + label.length,
207
+ id,
208
+ label,
209
+ start,
210
+ },
211
+ ].sort((left, right) => left.start - right.start),
212
+ });
213
+ };
47
214
  const handlePressEnter = (event) => {
48
215
  if (event.shiftKey || event.nativeEvent.isComposing)
49
216
  return;
@@ -76,20 +243,80 @@ export const ChatComposer = ({ className, disabled = false, disabledReason, inte
76
243
  borderBlockStart: `${token.lineWidth}px ${token.lineType} ${token.colorBorderSecondary}`,
77
244
  padding: token.paddingSM,
78
245
  ...style,
79
- }, children: [_jsxs("div", { "data-chat-composer": "", style: { alignItems: "flex-end", display: "flex", gap: token.marginXS }, children: [_jsx(Input.TextArea, { "aria-label": labels.composerLabel, autoSize: { maxRows: 8, minRows: 2 }, disabled: disabled, onChange: (event) => {
80
- setDraft(event.target.value);
81
- }, onPressEnter: handlePressEnter, placeholder: disabled
246
+ }, children: [_jsxs("div", { "data-chat-composer": "", style: { alignItems: "flex-end", display: "flex", gap: token.marginXS }, children: [_jsx(Input.TextArea, { "aria-label": labels.composerLabel, autoSize: { maxRows: 8, minRows: 2 }, disabled: disabled || textInputDisabled, onBeforeInput: (event) => {
247
+ pendingTextEdit.current = {
248
+ previousEnd: event.currentTarget.selectionEnd ?? text.length,
249
+ previousStart: event.currentTarget.selectionStart ?? text.length,
250
+ };
251
+ }, onChange: (event) => {
252
+ const pending = pendingTextEdit.current;
253
+ pendingTextEdit.current = undefined;
254
+ const nextText = event.target.value;
255
+ if (nextText.endsWith("/") && documentSource !== undefined)
256
+ setReferencePickerOpen(true);
257
+ const insertedLength = pending === undefined
258
+ ? undefined
259
+ : nextText.length -
260
+ (text.length - (pending.previousEnd - pending.previousStart));
261
+ updateDraft({ text: nextText }, pending === undefined ||
262
+ insertedLength === undefined ||
263
+ insertedLength < 0
264
+ ? undefined
265
+ : {
266
+ ...pending,
267
+ nextEnd: pending.previousStart + insertedLength,
268
+ });
269
+ }, onPaste: handlePaste, onPressEnter: handlePressEnter, placeholder: disabled || textInputDisabled
82
270
  ? typeof disabledReason === "string"
83
271
  ? disabledReason
84
272
  : labels.textSendingUnavailable
85
- : labels.composerPlaceholder, value: draft }), interruptAction === undefined ? null : (_jsx(Button, { danger: true, disabled: interruptAction.disabled === true, loading: interrupting, onClick: () => {
273
+ : labels.composerPlaceholder, ref: textarea, value: text }), documentSource !== undefined &&
274
+ controlledDraft !== undefined &&
275
+ onDraftChange !== undefined && (_jsx(Button, { disabled: disabled || textInputDisabled, onClick: () => setReferencePickerOpen(true), children: "References" })), attachmentUploader === undefined ? null : (_jsx(Button, { disabled: disabled ||
276
+ attachments.length + uploading.length >= maxAttachments, onClick: () => fileInput.current?.click(), children: labels.attach })), attachmentUploader === undefined ? null : (_jsx("input", { hidden: true, multiple: true, onChange: selectFiles, ref: fileInput, type: "file" })), interruptAction === undefined ? null : (_jsx(Button, { danger: true, disabled: interruptAction.disabled === true, loading: interrupting, onClick: () => {
86
277
  void interrupt();
87
278
  }, children: interrupting
88
279
  ? labels.interrupting
89
280
  : interruptAction.disabled === true
90
281
  ? labels.interruptUnavailable
91
- : labels.interrupt })), _jsx(Button, { disabled: disabled || draft.trim().length === 0, loading: submitting, onClick: () => {
282
+ : labels.interrupt })), _jsx(Button, { disabled: disabled ||
283
+ uploading.some((item) => item.error === undefined) ||
284
+ (text.trim().length === 0 && attachments.length === 0), loading: submitting, onClick: () => {
92
285
  void submit();
93
- }, type: "primary", children: submitting ? labels.sending : labels.send })] }), disabled && disabledReason !== undefined ? (_jsx(Typography.Text, { type: "secondary", children: disabledReason })) : null] }));
286
+ }, type: "primary", children: submitting ? labels.sending : labels.send })] }), attachments.length === 0 && uploading.length === 0 ? null : (_jsxs(Space, { wrap: true, size: "small", style: { marginBlockStart: token.marginXS }, children: [attachments.map((attachment) => (_jsxs(Button, { "aria-label": `${labels.removeAttachment} ${attachment.name ?? attachment.uri}`, onClick: () => updateDraft({
287
+ attachments: attachments.filter((item) => item !== attachment),
288
+ }), size: "small", children: [attachment.name ?? attachment.uri, " \u00D7"] }, attachment.uri))), uploading.map((item) => (_jsx(Button, { danger: item.error !== undefined, loading: item.error === undefined, onClick: () => item.error === undefined
289
+ ? undefined
290
+ : void uploadFile(item.file, item.id), size: "small", children: item.error === undefined
291
+ ? item.file.name
292
+ : `${labels.retryUpload} ${item.file.name}` }, item.id)))] })), referencePickerOpen &&
293
+ controlledDraft !== undefined &&
294
+ onDraftChange !== undefined && (_jsx(ChatReferencePicker, { conversationId: controlledDraft.conversationId, onClose: () => setReferencePickerOpen(false), onSelect: (reference) => {
295
+ const current = draftSnapshot.current;
296
+ let anchorId;
297
+ do {
298
+ anchorId = `reference-${++sequence.current}`;
299
+ } while (current.longTexts.some((item) => item.id === anchorId));
300
+ updateDraft(appendComposerReference({
301
+ ...current,
302
+ conversationId: controlledDraft.conversationId,
303
+ }, reference, anchorId));
304
+ setReferencePickerOpen(false);
305
+ } }, resetKey)), longTexts.length === 0 ? null : (_jsx(Space, { wrap: true, size: "small", style: { marginBlockStart: token.marginXS }, children: longTexts.map((item) => (_jsxs(Space.Compact, { children: [_jsx(Button, { onClick: () => setSelectedLongTextId(item.id), size: "small", children: item.label }), _jsx(Button, { "aria-label": `${labels.removeLongText} ${item.label}`, onClick: () => {
306
+ const nextText = `${text.slice(0, item.start)}${text.slice(item.end)}`;
307
+ updateDraft({
308
+ text: nextText,
309
+ longTexts: rebaseComposerLongTexts(text, nextText, longTexts.filter((entry) => entry.id !== item.id), {
310
+ nextEnd: item.start,
311
+ previousEnd: item.end,
312
+ previousStart: item.start,
313
+ }),
314
+ });
315
+ }, size: "small", children: "\u00D7" })] }, item.id))) })), disabled && disabledReason !== undefined ? (_jsx(Typography.Text, { type: "secondary", children: disabledReason })) : null, _jsx(Modal, { footer: null, onCancel: () => setSelectedLongTextId(undefined), open: selectedLongTextId !== undefined, title: labels.pastedTextTitle, children: longTexts.find((item) => item.id === selectedLongTextId) ===
316
+ undefined ? null : (_jsx(Input.TextArea, { autoSize: { minRows: 8, maxRows: 20 }, onChange: (event) => updateDraft({
317
+ longTexts: longTexts.map((item) => item.id === selectedLongTextId
318
+ ? { ...item, content: event.target.value }
319
+ : item),
320
+ }), value: longTexts.find((item) => item.id === selectedLongTextId).content })) })] }));
94
321
  };
95
322
  //# sourceMappingURL=chat-composer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-composer.js","sourceRoot":"","sources":["../src/chat-composer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-composer.js","sourceRoot":"","sources":["../src/chat-composer.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat-conversation-view.d.ts","sourceRoot":"","sources":["../src/chat-conversation-view.tsx"],"names":[],"mappings":"AACA,OAAO,EAML,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AAUf,OAAO,EAIL,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAEnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,2BAA2B,CAAC;AASnC,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,oBAAoB,EAC1B,MAAM,mCAAmC,CAAC;AAE3C,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,CAAC;AAEpD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAClE,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5D,QAAQ,CAAC,eAAe,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,0BAA0B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzD,gFAAgF;IAChF,QAAQ,CAAC,4BAA4B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAC;IACvE,QAAQ,CAAC,aAAa,EAAE,MAAM,MAAM,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,cAAc,CAAC,EACtB,CAAC,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,uBAAuB,CAAC,EAC/B,CAAC,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACpD;;;OAGG;IACH,QAAQ,CAAC,6BAA6B,CAAC,EACrC,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,eAAe,CAAC,EACvB,CAAC,CAAC,OAAO,EAAE,2BAA2B,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,eAAe,CAAC,EACvB,CAAC,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,qBAAqB,CAAC,EAC7B,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC7E,QAAQ,CAAC,SAAS,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACtD,sEAAsE;IACtE,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CAC5C;AA0CD,eAAO,MAAM,oBAAoB,GAAI,obAoBlC,yBAAyB,gCA4b3B,CAAC"}
1
+ {"version":3,"file":"chat-conversation-view.d.ts","sourceRoot":"","sources":["../src/chat-conversation-view.tsx"],"names":[],"mappings":"AACA,OAAO,EAML,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AAoBf,OAAO,EAIL,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAEnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,2BAA2B,CAAC;AASnC,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,oBAAoB,EAC1B,MAAM,mCAAmC,CAAC;AAE3C,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,CAAC;AAEpD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAClE,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5D,QAAQ,CAAC,eAAe,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,0BAA0B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzD,gFAAgF;IAChF,QAAQ,CAAC,4BAA4B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAC;IACvE,QAAQ,CAAC,aAAa,EAAE,MAAM,MAAM,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,cAAc,CAAC,EACtB,CAAC,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,uBAAuB,CAAC,EAC/B,CAAC,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACpD;;;OAGG;IACH,QAAQ,CAAC,6BAA6B,CAAC,EACrC,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,eAAe,CAAC,EACvB,CAAC,CAAC,OAAO,EAAE,2BAA2B,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,eAAe,CAAC,EACvB,CAAC,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,qBAAqB,CAAC,EAC7B,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC7E,QAAQ,CAAC,SAAS,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACtD,sEAAsE;IACtE,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CAC5C;AAgDD,eAAO,MAAM,oBAAoB,GAAI,obAoBlC,yBAAyB,gCAogB3B,CAAC"}
@@ -2,8 +2,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Alert, Modal, Segmented, Typography, theme } from "antd";
3
3
  import { useCallback, useEffect, useMemo, useRef, useState, } from "react";
4
4
  import { isChatLifecycleOperable, } from "@turingfocus/chat-protocol";
5
- import { useChatClient, useChatSelector } from "@turingfocus/chat-react";
5
+ import { useChatAttachmentUploader, useChatClient, useChatSelector, useComposerDraft, useConversationCache, } from "@turingfocus/chat-react";
6
6
  import { ChatComposer } from "./chat-composer.js";
7
+ import { chatErrorNoticeKey, DismissibleChatAlert, } from "./dismissible-chat-alert.js";
7
8
  import { ChatEventDetail, ChatEventDetailEmpty, isChatEventItem, } from "./chat-event-detail.js";
8
9
  import { AskUserInteractionCard, } from "./ask-user-interaction.js";
9
10
  import { ChatRunStatus } from "./chat-run-status.js";
@@ -18,6 +19,7 @@ const selectChatConversationViewSnapshot = (snapshot) => snapshot === null
18
19
  capabilities: snapshot.capabilities,
19
20
  conversationId: snapshot.conversation.id,
20
21
  error: snapshot.error,
22
+ errorNoticeKey: chatErrorNoticeKey(snapshot.error, snapshot.activeErrors?.at(-1)),
21
23
  lifecycle: snapshot.lifecycle,
22
24
  pendingInteraction: snapshot.pendingInteraction,
23
25
  run: snapshot.run,
@@ -29,6 +31,7 @@ const equalChatConversationViewSnapshot = (left, right) => left === right ||
29
31
  left.capabilities === right.capabilities &&
30
32
  left.conversationId === right.conversationId &&
31
33
  left.error === right.error &&
34
+ left.errorNoticeKey === right.errorNoticeKey &&
32
35
  left.lifecycle === right.lifecycle &&
33
36
  left.pendingInteraction === right.pendingInteraction &&
34
37
  left.run === right.run &&
@@ -37,7 +40,10 @@ export const ChatConversationView = ({ className, defaultEventDetailMode = "auto
37
40
  const { token } = theme.useToken();
38
41
  const labels = resolveChatUiLabels(labelOverrides);
39
42
  const client = useChatClient();
43
+ const cache = useConversationCache();
40
44
  const snapshot = useChatSelector(selectChatConversationViewSnapshot, equalChatConversationViewSnapshot);
45
+ const attachmentUploader = useChatAttachmentUploader();
46
+ const composer = useComposerDraft(snapshot?.conversationId ?? "");
41
47
  const activeRecoveryUnverified = snapshot?.lifecycle?.status === "active" &&
42
48
  (snapshot.lifecycle.recovery?.complete === false ||
43
49
  ((snapshot.lifecycle.reconnectAttempt ?? 0) > 0 &&
@@ -118,19 +124,23 @@ export const ChatConversationView = ({ className, defaultEventDetailMode = "auto
118
124
  }
119
125
  onSelectedEventChange?.(eventId, item);
120
126
  }, [controlledSelectedEventId, onSelectedEventChange]);
127
+ const previousClientRef = useRef(client);
121
128
  const previousConversationIdRef = useRef(currentConversationId);
122
129
  useEffect(() => {
130
+ const clientChanged = previousClientRef.current !== client;
131
+ previousClientRef.current = client;
123
132
  const previousConversationId = previousConversationIdRef.current;
124
133
  previousConversationIdRef.current = currentConversationId;
125
- if (previousConversationId === null ||
126
- previousConversationId === currentConversationId) {
134
+ if (!clientChanged &&
135
+ (previousConversationId === null ||
136
+ previousConversationId === currentConversationId)) {
127
137
  return;
128
138
  }
129
139
  lastTriggerRef.current = null;
130
140
  setModalOpen(false);
131
141
  if (selectedEventId !== null)
132
142
  updateSelection(null, null);
133
- }, [currentConversationId, selectedEventId, updateSelection]);
143
+ }, [client, currentConversationId, selectedEventId, updateSelection]);
134
144
  useEffect(() => {
135
145
  if (snapshot === null ||
136
146
  selectedEventId === null ||
@@ -212,22 +222,29 @@ export const ChatConversationView = ({ className, defaultEventDetailMode = "auto
212
222
  minHeight: 0,
213
223
  overflow: "auto",
214
224
  padding: token.paddingSM,
215
- }, children: selectedEvent === undefined ? (_jsx(ChatEventDetailEmpty, { labels: labels })) : (_jsx(ChatEventDetail, { formatTimestamp: formatTimestamp, item: selectedEvent, onRendererError: onRendererError, renderers: renderers })) }));
225
+ }, children: selectedEvent === undefined ? (_jsx(ChatEventDetailEmpty, { labels: labels })) : (_jsx(ChatEventDetail, { labels: labels, formatTimestamp: formatTimestamp, item: selectedEvent, onRendererError: onRendererError, renderers: renderers })) }));
216
226
  return (_jsxs("section", { className: className, style: {
217
227
  display: "flex",
218
228
  flexDirection: "column",
219
229
  height: "100%",
220
230
  minHeight: 0,
221
231
  ...style,
222
- }, children: [_jsx(ChatRunStatus, { canInterrupt: lifecycleOperable && snapshot.capabilities.interrupt, labels: labels, onInterrupt: interrupt, run: snapshot.run, showInterruptButton: false }, `${viewResetKey}:${snapshot.run?.id ?? "no-run"}`), snapshot.lifecycle === undefined ||
232
+ }, children: [cache.conversationId === snapshot.conversationId &&
233
+ cache.source !== "none" &&
234
+ (cache.status === "syncing" || cache.status === "error") ? (_jsx(DismissibleChatAlert, { resetOn: `${cache.status}:${cache.freshness}`, message: cache.status === "error"
235
+ ? labels.cacheSyncFailed
236
+ : cache.freshness === "stale"
237
+ ? labels.cacheStale
238
+ : labels.cacheSyncing, type: cache.status === "error" ? "warning" : "info", showIcon: true, style: { margin: token.marginXS } }, `cache:${viewResetKey}`)) : null, cache.conversationId === snapshot.conversationId &&
239
+ cache.unavailableAttachments > 0 ? (_jsx(DismissibleChatAlert, { resetOn: String(cache.unavailableAttachments), message: labels.cacheAttachmentUnavailable, type: "warning", showIcon: true, style: { margin: token.marginXS } }, `cache-attachments:${viewResetKey}`)) : null, cache.storageError ? (_jsx(DismissibleChatAlert, { resetOn: "storage-error", message: labels.cacheStorageFailed, type: "warning", showIcon: true, style: { margin: token.marginXS } }, `cache-storage:${viewResetKey}`)) : null, _jsx(ChatRunStatus, { canInterrupt: lifecycleOperable && snapshot.capabilities.interrupt, labels: labels, onInterrupt: interrupt, run: snapshot.run, showInterruptButton: false }, `${viewResetKey}:${snapshot.run?.id ?? "no-run"}`), snapshot.lifecycle === undefined ||
223
240
  (snapshot.lifecycle.status === "active" &&
224
- !activeRecoveryUnverified) ? null : (_jsx(Alert, { message: lifecycleDisplayStatus === undefined
241
+ !activeRecoveryUnverified) ? null : (_jsx(DismissibleChatAlert, { resetOn: lifecycleDisplayStatus, message: lifecycleDisplayStatus === undefined
225
242
  ? undefined
226
243
  : labels.lifecycleStatus?.[lifecycleDisplayStatus], showIcon: true, style: { margin: token.marginXS }, type: snapshot.lifecycle.status === "auth-required" ||
227
244
  snapshot.lifecycle.status === "subscription-failed" ||
228
245
  snapshot.lifecycle.status === "offline"
229
246
  ? "warning"
230
- : "info" })), visibleSnapshotError === undefined ? null : (_jsx(Alert, { message: visibleSnapshotError.message, showIcon: true, style: { margin: token.marginXS }, type: "error" })), visibleCommandFailures.map((failure) => (_jsx(Alert, { closable: true, message: failure.error.message, onClose: () => {
247
+ : "info" }, `lifecycle:${viewResetKey}`)), snapshot.error === undefined ? null : (_jsx(DismissibleChatAlert, { resetOn: snapshot.errorNoticeKey, visible: visibleSnapshotError !== undefined, message: snapshot.error.message, showIcon: true, style: { margin: token.marginXS }, type: "error" }, `snapshot-error:${viewResetKey}`)), visibleCommandFailures.map((failure) => (_jsx(Alert, { closable: true, message: failure.error.message, onClose: () => {
231
248
  dismissFailure(failure.command);
232
249
  }, showIcon: true, style: { margin: token.marginXS }, type: "error" }, failure.command))), _jsxs("div", { style: {
233
250
  alignItems: "center",
@@ -241,7 +258,15 @@ export const ChatConversationView = ({ className, defaultEventDetailMode = "auto
241
258
  conversationId,
242
259
  snapshot.pendingInteraction.requestId,
243
260
  snapshot.pendingInteraction.revision,
244
- ])) })), _jsx(ChatComposer, { disabled: !lifecycleOperable || !snapshot.capabilities.sendText, disabledReason: lifecycleOperable && snapshot.capabilities.sendText
261
+ ])) })), _jsx(ChatComposer, { attachmentUploader: snapshot.capabilities.sendAttachments === true
262
+ ? attachmentUploader
263
+ : undefined, draft: composer.draft, getDeadlineAt: getDeadlineAt, disabled: !lifecycleOperable ||
264
+ (!snapshot.capabilities.sendText &&
265
+ !(snapshot.capabilities.sendAttachments === true &&
266
+ attachmentUploader !== undefined)), disabledReason: lifecycleOperable &&
267
+ (snapshot.capabilities.sendText ||
268
+ (snapshot.capabilities.sendAttachments === true &&
269
+ attachmentUploader !== undefined))
245
270
  ? undefined
246
271
  : snapshot.lifecycle !== undefined && !lifecycleOperable
247
272
  ? lifecycleDisplayStatus === undefined
@@ -255,9 +280,9 @@ export const ChatConversationView = ({ className, defaultEventDetailMode = "auto
255
280
  onInterrupt: interrupt,
256
281
  resetKey: snapshot.run.id,
257
282
  }
258
- : undefined, labels: labels, onSend: sendText, resetKey: viewResetKey }, viewResetKey), _jsx(Modal, { afterOpenChange: (open) => {
283
+ : undefined, labels: labels, onSend: sendText, onDraftChange: composer.setDraft, resetKey: viewResetKey, textInputDisabled: !snapshot.capabilities.sendText }, viewResetKey), _jsx(Modal, { afterOpenChange: (open) => {
259
284
  if (!open)
260
285
  restoreTriggerFocus();
261
- }, closeIcon: _jsx("span", { "aria-label": labels.eventDetailClose, role: "img", children: "\u00D7" }), destroyOnClose: true, footer: null, keyboard: true, onCancel: () => setModalOpen(false), open: eventDetailModalVisible, title: labels.eventDetailTitle, children: selectedEvent === undefined ? null : (_jsx(ChatEventDetail, { formatTimestamp: formatTimestamp, item: selectedEvent, onRendererError: onRendererError, renderers: renderers })) })] }));
286
+ }, closeIcon: _jsx("span", { "aria-label": labels.eventDetailClose, role: "img", children: "\u00D7" }), destroyOnClose: true, footer: null, keyboard: true, onCancel: () => setModalOpen(false), open: eventDetailModalVisible, title: labels.eventDetailTitle, children: selectedEvent === undefined ? null : (_jsx(ChatEventDetail, { labels: labels, formatTimestamp: formatTimestamp, item: selectedEvent, onRendererError: onRendererError, renderers: renderers })) })] }));
262
287
  };
263
288
  //# sourceMappingURL=chat-conversation-view.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-conversation-view.js","sourceRoot":"","sources":["../src/chat-conversation-view.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-conversation-view.js","sourceRoot":"","sources":["../src/chat-conversation-view.tsx"],"names":[],"mappings":"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"}