@jini-ai/chat 0.3.3 → 0.3.6

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 (45) hide show
  1. package/dist/react/components/AttachmentPreviewModal.d.ts +7 -0
  2. package/dist/react/components/AttachmentPreviewModal.d.ts.map +1 -0
  3. package/dist/react/components/AttachmentPreviewModal.hooks.d.ts +70 -0
  4. package/dist/react/components/AttachmentPreviewModal.hooks.d.ts.map +1 -0
  5. package/dist/react/components/AttachmentPreviewModal.hooks.js +200 -0
  6. package/dist/react/components/AttachmentPreviewModal.hooks.js.map +1 -0
  7. package/dist/react/components/AttachmentPreviewModal.js +18 -0
  8. package/dist/react/components/AttachmentPreviewModal.js.map +1 -0
  9. package/dist/react/components/Composer.d.ts.map +1 -1
  10. package/dist/react/components/Composer.js +1 -1
  11. package/dist/react/components/Composer.js.map +1 -1
  12. package/dist/react/components/MessageRow.d.ts +8 -0
  13. package/dist/react/components/MessageRow.d.ts.map +1 -1
  14. package/dist/react/components/MessageRow.js +38 -4
  15. package/dist/react/components/MessageRow.js.map +1 -1
  16. package/dist/react/components/composer-discovery.js +1 -1
  17. package/dist/react/features/chat-pane/components/ChatPane.d.ts +1 -1
  18. package/dist/react/features/chat-pane/components/ChatPane.d.ts.map +1 -1
  19. package/dist/react/features/chat-pane/components/ChatPane.js +19 -6
  20. package/dist/react/features/chat-pane/components/ChatPane.js.map +1 -1
  21. package/dist/react/features/chat-pane/hooks/useChatPane.hooks.d.ts.map +1 -1
  22. package/dist/react/features/chat-pane/hooks/useChatPane.hooks.js +43 -6
  23. package/dist/react/features/chat-pane/hooks/useChatPane.hooks.js.map +1 -1
  24. package/dist/react/features/chat-pane/hooks/useChatPaneComposerPlaceholder.hooks.d.ts +10 -0
  25. package/dist/react/features/chat-pane/hooks/useChatPaneComposerPlaceholder.hooks.d.ts.map +1 -0
  26. package/dist/react/features/chat-pane/hooks/useChatPaneComposerPlaceholder.hooks.js +66 -0
  27. package/dist/react/features/chat-pane/hooks/useChatPaneComposerPlaceholder.hooks.js.map +1 -0
  28. package/dist/react/features/chat-pane/styles.d.ts +1 -1
  29. package/dist/react/features/chat-pane/styles.d.ts.map +1 -1
  30. package/dist/react/features/chat-pane/styles.js +139 -3
  31. package/dist/react/features/chat-pane/styles.js.map +1 -1
  32. package/dist/react/features/chat-pane/types.d.ts +13 -1
  33. package/dist/react/features/chat-pane/types.d.ts.map +1 -1
  34. package/dist/react/hooks/attachment-preview-cache.d.ts +47 -0
  35. package/dist/react/hooks/attachment-preview-cache.d.ts.map +1 -0
  36. package/dist/react/hooks/attachment-preview-cache.js +59 -0
  37. package/dist/react/hooks/attachment-preview-cache.js.map +1 -0
  38. package/dist/react/hooks/useComposer.d.ts.map +1 -1
  39. package/dist/react/hooks/useComposer.js +12 -0
  40. package/dist/react/hooks/useComposer.js.map +1 -1
  41. package/dist/react/poc-mcp-ui-official/create-poc-resource.d.ts +1 -1
  42. package/dist/react/poc-mcp-ui-official/create-poc-resource.js +1 -1
  43. package/dist/react/slots.d.ts +8 -0
  44. package/dist/react/slots.d.ts.map +1 -1
  45. package/package.json +3 -3
@@ -0,0 +1,7 @@
1
+ import type { ChatAttachment } from '../../core/index.js';
2
+ export interface AttachmentPreviewModalProps {
3
+ attachment: ChatAttachment;
4
+ onClose: () => void;
5
+ }
6
+ export declare function AttachmentPreviewModal({ attachment, onClose }: AttachmentPreviewModalProps): import("react").JSX.Element;
7
+ //# sourceMappingURL=AttachmentPreviewModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttachmentPreviewModal.d.ts","sourceRoot":"","sources":["../../../src/react/components/AttachmentPreviewModal.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG1D,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,cAAc,CAAC;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,sBAAsB,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,2BAA2B,+BAuE1F"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * @file `AttachmentPreviewModal`'s open/close, focus-management, and content-derivation state,
3
+ * split out of the component per this package's own hooks-file convention (mirrors
4
+ * `packages/admin/src/react/components/ConfirmDialog/ConfirmDialog.hooks.tsx` and
5
+ * `usePreviewModalShell.ts`).
6
+ *
7
+ * **Dialog lifecycle.** Native `<dialog>` + `showModal()`, the same primitive already used one file
8
+ * over in `Markdown.tsx`'s `TableBlock` for its wide-table pop-out (`openTableDialog`/
9
+ * `closeTableDialog`) — reused here rather than a third hand-rolled overlay. That gives Tab-cycling
10
+ * focus containment for free from the browser; this hook only adds the two things `TableBlock`
11
+ * does not need: an explicit focus-restore-to-opener (native `close()` does return focus in a real
12
+ * browser, but jsdom's `showModal`/`close` are both unimplemented — see the guard below — so a test
13
+ * asserting the restore has nothing to observe without doing it by hand, the same reason
14
+ * `ConfirmDialog.hooks.tsx` does it explicitly rather than trusting the platform), and the
15
+ * image/text/unsupported content derivation an attachment preview needs that a table pop-out does
16
+ * not.
17
+ *
18
+ * **Why content can be missing entirely.** `attachment-preview-cache.ts` only ever holds bytes this
19
+ * browser itself staged for upload, in this page session (see that module's doc for why the server
20
+ * cannot hand them back). A cache miss - a reload, a different session, the eviction cap - degrades
21
+ * to the honest "unsupported" status rather than a broken image or an empty text pane.
22
+ *
23
+ * **Why image-ness is not decided by `attachment.kind` alone.** `@jini-ai/http-kit`'s
24
+ * `detectAttachmentKind` (`attachments.ts`) now sniffs PNG/JPEG/GIF/WEBP/AVIF signatures - AVIF was
25
+ * added specifically for the bug that motivated this task, brand-checked against the same ISO-BMFF
26
+ * `ftyp` box `@jini-ai/cms`'s media sniffer uses, so a real `.avif` upload now carries `kind:
27
+ * 'image'` from the server. This module's extension fallback stays anyway, for two reasons that are
28
+ * still true even with AVIF fixed: BMP/ICO/SVG are in `IMAGE_PREVIEW_EXTENSIONS` but are not sniffed
29
+ * server-side at all (no `hasBmpSignature`/etc. exists), so `kind` alone would still misclassify
30
+ * those as `'file'`; and gating on `kind` would make ANY future sniffer gap fail the same way this
31
+ * one did, whereas the extension guess plus the `<img>`'s own `onError` (wired by the component) is
32
+ * self-correcting - if the browser cannot actually decode what got attempted, `imageFailed` flips
33
+ * this back to a text/unsupported status rather than showing a broken-image icon or trusting a wrong
34
+ * guess. The two checks cannot disagree in a way that matters: `looksLikeImageAttachment` is an OR,
35
+ * so a server `kind: 'image'` is decisive on its own, and the extension guess is only ever a
36
+ * fallback that `onError` can retract - never a second, competing source of truth for a format the
37
+ * server already classified.
38
+ */
39
+ import { type MouseEvent, type RefObject, type SyntheticEvent } from 'react';
40
+ import type { ChatAttachment } from '../../core/index.js';
41
+ export type AttachmentPreviewStatus = 'image' | 'text' | 'unsupported';
42
+ /** Hard cap on rendered text-preview characters, so a large attached log/CSV cannot hang the tab painting one giant `<pre>`. */
43
+ export declare const MAX_TEXT_PREVIEW_CHARS = 200000;
44
+ /** Exported for the component's own render branch, which needs the same answer without re-deriving it from `status`. */
45
+ export declare function looksLikeImageAttachment(attachment: Pick<ChatAttachment, 'kind' | 'name'>): boolean;
46
+ export interface AttachmentTextPreview {
47
+ content: string;
48
+ truncated: boolean;
49
+ }
50
+ export interface AttachmentPreviewController {
51
+ dialogRef: RefObject<HTMLDialogElement | null>;
52
+ status: AttachmentPreviewStatus;
53
+ imageUrl: string | undefined;
54
+ onImageError: () => void;
55
+ textLoading: boolean;
56
+ text: AttachmentTextPreview | undefined;
57
+ sizeLabel: string | null;
58
+ handleNativeCancel: (event: SyntheticEvent<HTMLDialogElement>) => void;
59
+ handleBackdropClick: (event: MouseEvent<HTMLDialogElement>) => void;
60
+ }
61
+ /**
62
+ * Drives one `AttachmentPreviewModal` instance for `attachment`. The caller conditionally mounts
63
+ * this (one open attachment at a time per `MessageRow`), so mount = open and unmount = close; there
64
+ * is no `open` boolean to track separately.
65
+ * @complexity Time/space: O(1) plus O(n) in the cached file's byte length for the one-time text
66
+ * read on mount (bounded in practice by the upload route's own 20 MB per-attachment cap, and by
67
+ * {@link MAX_TEXT_PREVIEW_CHARS} for what actually renders).
68
+ */
69
+ export declare function useAttachmentPreviewModal(attachment: ChatAttachment, onClose: () => void): AttachmentPreviewController;
70
+ //# sourceMappingURL=AttachmentPreviewModal.hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttachmentPreviewModal.hooks.d.ts","sourceRoot":"","sources":["../../../src/react/components/AttachmentPreviewModal.hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,EAA+B,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAC1G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1D,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,MAAM,GAAG,aAAa,CAAC;AAQvE,gIAAgI;AAChI,eAAO,MAAM,sBAAsB,SAAU,CAAC;AAO9C,wHAAwH;AACxH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,OAAO,CAEnG;AAiCD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAC/C,MAAM,EAAE,uBAAuB,CAAC;IAChC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,qBAAqB,GAAG,SAAS,CAAC;IACxC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,kBAAkB,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACvE,mBAAmB,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACrE;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,cAAc,EAC1B,OAAO,EAAE,MAAM,IAAI,GAClB,2BAA2B,CAyG7B"}
@@ -0,0 +1,200 @@
1
+ /**
2
+ * @file `AttachmentPreviewModal`'s open/close, focus-management, and content-derivation state,
3
+ * split out of the component per this package's own hooks-file convention (mirrors
4
+ * `packages/admin/src/react/components/ConfirmDialog/ConfirmDialog.hooks.tsx` and
5
+ * `usePreviewModalShell.ts`).
6
+ *
7
+ * **Dialog lifecycle.** Native `<dialog>` + `showModal()`, the same primitive already used one file
8
+ * over in `Markdown.tsx`'s `TableBlock` for its wide-table pop-out (`openTableDialog`/
9
+ * `closeTableDialog`) — reused here rather than a third hand-rolled overlay. That gives Tab-cycling
10
+ * focus containment for free from the browser; this hook only adds the two things `TableBlock`
11
+ * does not need: an explicit focus-restore-to-opener (native `close()` does return focus in a real
12
+ * browser, but jsdom's `showModal`/`close` are both unimplemented — see the guard below — so a test
13
+ * asserting the restore has nothing to observe without doing it by hand, the same reason
14
+ * `ConfirmDialog.hooks.tsx` does it explicitly rather than trusting the platform), and the
15
+ * image/text/unsupported content derivation an attachment preview needs that a table pop-out does
16
+ * not.
17
+ *
18
+ * **Why content can be missing entirely.** `attachment-preview-cache.ts` only ever holds bytes this
19
+ * browser itself staged for upload, in this page session (see that module's doc for why the server
20
+ * cannot hand them back). A cache miss - a reload, a different session, the eviction cap - degrades
21
+ * to the honest "unsupported" status rather than a broken image or an empty text pane.
22
+ *
23
+ * **Why image-ness is not decided by `attachment.kind` alone.** `@jini-ai/http-kit`'s
24
+ * `detectAttachmentKind` (`attachments.ts`) now sniffs PNG/JPEG/GIF/WEBP/AVIF signatures - AVIF was
25
+ * added specifically for the bug that motivated this task, brand-checked against the same ISO-BMFF
26
+ * `ftyp` box `@jini-ai/cms`'s media sniffer uses, so a real `.avif` upload now carries `kind:
27
+ * 'image'` from the server. This module's extension fallback stays anyway, for two reasons that are
28
+ * still true even with AVIF fixed: BMP/ICO/SVG are in `IMAGE_PREVIEW_EXTENSIONS` but are not sniffed
29
+ * server-side at all (no `hasBmpSignature`/etc. exists), so `kind` alone would still misclassify
30
+ * those as `'file'`; and gating on `kind` would make ANY future sniffer gap fail the same way this
31
+ * one did, whereas the extension guess plus the `<img>`'s own `onError` (wired by the component) is
32
+ * self-correcting - if the browser cannot actually decode what got attempted, `imageFailed` flips
33
+ * this back to a text/unsupported status rather than showing a broken-image icon or trusting a wrong
34
+ * guess. The two checks cannot disagree in a way that matters: `looksLikeImageAttachment` is an OR,
35
+ * so a server `kind: 'image'` is decisive on its own, and the extension guess is only ever a
36
+ * fallback that `onError` can retract - never a second, competing source of truth for a format the
37
+ * server already classified.
38
+ */
39
+ import { useEffect, useRef, useState } from 'react';
40
+ import { getAttachmentPreviewSource } from '../hooks/attachment-preview-cache.js';
41
+ import { formatAttachmentSize } from './AttachmentTray.js';
42
+ /** Extensions attempted as an `<img>` even when `attachment.kind` says otherwise — see module doc. */
43
+ const IMAGE_PREVIEW_EXTENSIONS = new Set(['png', 'jpg', 'jpeg', 'gif', 'webp', 'avif', 'bmp', 'ico', 'svg']);
44
+ /** Extensions shown in a scrollable monospace pane. Deliberately narrow — see task scope: "txt, md, json, csv, and similar", not every source-code language. */
45
+ const TEXT_PREVIEW_EXTENSIONS = new Set(['txt', 'md', 'markdown', 'json', 'csv', 'tsv', 'log', 'yaml', 'yml', 'xml']);
46
+ /** Hard cap on rendered text-preview characters, so a large attached log/CSV cannot hang the tab painting one giant `<pre>`. */
47
+ export const MAX_TEXT_PREVIEW_CHARS = 200_000;
48
+ function extensionOf(name) {
49
+ const dot = name.lastIndexOf('.');
50
+ return dot === -1 ? '' : name.slice(dot + 1).toLowerCase();
51
+ }
52
+ /** Exported for the component's own render branch, which needs the same answer without re-deriving it from `status`. */
53
+ export function looksLikeImageAttachment(attachment) {
54
+ return attachment.kind === 'image' || IMAGE_PREVIEW_EXTENSIONS.has(extensionOf(attachment.name));
55
+ }
56
+ function looksLikeTextAttachment(name) {
57
+ return TEXT_PREVIEW_EXTENSIONS.has(extensionOf(name));
58
+ }
59
+ /**
60
+ * Reads `file` as text via `FileReader`, not the newer `Blob.prototype.text()` promise API: both
61
+ * are supported in every real evergreen browser, but jsdom (this package's test environment,
62
+ * verified directly - `File`/`Blob` here has no `.text`/`.arrayBuffer` at all) implements
63
+ * `FileReader.readAsText` while leaving `.text()` unimplemented. Choosing the form the test
64
+ * environment can actually exercise avoids a test-only monkeypatch of a browser primitive whose
65
+ * production behavior isn't in question - only its jsdom coverage was.
66
+ */
67
+ function readFileAsText(file) {
68
+ return new Promise((resolve, reject) => {
69
+ const reader = new FileReader();
70
+ reader.onload = () => resolve(typeof reader.result === 'string' ? reader.result : '');
71
+ reader.onerror = () => reject(reader.error ?? new Error('Failed to read attachment as text'));
72
+ reader.readAsText(file);
73
+ });
74
+ }
75
+ /**
76
+ * `false` in an environment with no Blob-URL support — real browsers have shipped this for well
77
+ * over a decade, but jsdom (this package's own test environment) never implemented it, and this
78
+ * package cannot assume every embedding host is a browser tab. Feature-detected the same way this
79
+ * file already feature-detects `<dialog>`'s `showModal`/`close`, rather than assumed.
80
+ */
81
+ function canCreateObjectUrl() {
82
+ return typeof URL !== 'undefined' && typeof URL.createObjectURL === 'function';
83
+ }
84
+ /**
85
+ * Drives one `AttachmentPreviewModal` instance for `attachment`. The caller conditionally mounts
86
+ * this (one open attachment at a time per `MessageRow`), so mount = open and unmount = close; there
87
+ * is no `open` boolean to track separately.
88
+ * @complexity Time/space: O(1) plus O(n) in the cached file's byte length for the one-time text
89
+ * read on mount (bounded in practice by the upload route's own 20 MB per-attachment cap, and by
90
+ * {@link MAX_TEXT_PREVIEW_CHARS} for what actually renders).
91
+ */
92
+ export function useAttachmentPreviewModal(attachment, onClose) {
93
+ const dialogRef = useRef(null);
94
+ const triggerRef = useRef(null);
95
+ const [imageFailed, setImageFailed] = useState(false);
96
+ const [imageUrl, setImageUrl] = useState(undefined);
97
+ const [text, setText] = useState(undefined);
98
+ const [textLoading, setTextLoading] = useState(false);
99
+ const cachedFile = getAttachmentPreviewSource(attachment.path);
100
+ const attemptImage = !imageFailed && cachedFile !== undefined && looksLikeImageAttachment(attachment) && canCreateObjectUrl();
101
+ const attemptText = !attemptImage && cachedFile !== undefined && looksLikeTextAttachment(attachment.name);
102
+ const status = attemptImage ? 'image' : attemptText ? 'text' : 'unsupported';
103
+ // Object URL: created/revoked in an effect (not `useMemo`) so a React 18 Strict Mode double-render
104
+ // can never create two URLs and revoke only one — the cleanup below always pairs with the create
105
+ // that produced the URL currently in state.
106
+ useEffect(() => {
107
+ if (!attemptImage || !cachedFile) {
108
+ setImageUrl(undefined);
109
+ return undefined;
110
+ }
111
+ const url = URL.createObjectURL(cachedFile);
112
+ setImageUrl(url);
113
+ return () => URL.revokeObjectURL(url);
114
+ // eslint-disable-next-line react-hooks/exhaustive-deps
115
+ }, [attemptImage, cachedFile]);
116
+ useEffect(() => {
117
+ if (!attemptText || !cachedFile) {
118
+ setText(undefined);
119
+ return undefined;
120
+ }
121
+ let canceled = false;
122
+ setTextLoading(true);
123
+ readFileAsText(cachedFile)
124
+ .then((full) => {
125
+ if (canceled)
126
+ return;
127
+ const truncated = full.length > MAX_TEXT_PREVIEW_CHARS;
128
+ setText({ content: truncated ? full.slice(0, MAX_TEXT_PREVIEW_CHARS) : full, truncated });
129
+ })
130
+ .catch(() => {
131
+ // A file this extension-list called "text-ish" that fails to decode as text falls back to
132
+ // the honest unsupported view via `text` staying `undefined`, rather than showing garbage.
133
+ if (!canceled)
134
+ setText(undefined);
135
+ })
136
+ .finally(() => {
137
+ if (!canceled)
138
+ setTextLoading(false);
139
+ });
140
+ return () => {
141
+ canceled = true;
142
+ };
143
+ // eslint-disable-next-line react-hooks/exhaustive-deps
144
+ }, [attemptText, cachedFile]);
145
+ // Open on mount, close + restore focus on unmount — see this module's doc on why the restore is
146
+ // explicit rather than left to the browser's own (jsdom-absent) default.
147
+ useEffect(() => {
148
+ const dialog = dialogRef.current;
149
+ if (!dialog)
150
+ return undefined;
151
+ triggerRef.current = document.activeElement;
152
+ if (typeof dialog.showModal === 'function') {
153
+ if (!dialog.open)
154
+ dialog.showModal();
155
+ }
156
+ else {
157
+ dialog.setAttribute('open', '');
158
+ }
159
+ return () => {
160
+ if (typeof dialog.close === 'function') {
161
+ if (dialog.open)
162
+ dialog.close();
163
+ }
164
+ else {
165
+ dialog.removeAttribute('open');
166
+ }
167
+ if (triggerRef.current instanceof HTMLElement)
168
+ triggerRef.current.focus();
169
+ };
170
+ // Mount/unmount only: the caller mounts a fresh instance per opened attachment (never reuses one
171
+ // instance across two different open attachments), so there is no "attachment changed while
172
+ // still open" transition for this effect to react to.
173
+ // eslint-disable-next-line react-hooks/exhaustive-deps
174
+ }, []);
175
+ function handleNativeCancel(event) {
176
+ // Always prevented, same reasoning as `ConfirmDialog.hooks.tsx`: the effect above is the single
177
+ // source of truth for open/closed, so Escape still closes — it just does so through `onClose`
178
+ // (which unmounts this controller) rather than letting the browser desync from React state.
179
+ event.preventDefault();
180
+ onClose();
181
+ }
182
+ function handleBackdropClick(event) {
183
+ // A `<dialog>` element's own box is sized to its content; a click landing on the `<dialog>`
184
+ // element itself (rather than a descendant) is a click on the backdrop area outside that box.
185
+ if (event.target === dialogRef.current)
186
+ onClose();
187
+ }
188
+ return {
189
+ dialogRef,
190
+ status,
191
+ imageUrl,
192
+ onImageError: () => setImageFailed(true),
193
+ textLoading,
194
+ text,
195
+ sizeLabel: formatAttachmentSize(attachment.size),
196
+ handleNativeCancel,
197
+ handleBackdropClick,
198
+ };
199
+ }
200
+ //# sourceMappingURL=AttachmentPreviewModal.hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttachmentPreviewModal.hooks.js","sourceRoot":"","sources":["../../../src/react/components/AttachmentPreviewModal.hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * @module AttachmentPreviewModal
4
+ *
5
+ * The "can we see it again" modal `MessageRow.tsx`'s attachment chip opens: an image scaled to fit,
6
+ * a scrollable monospace pane for a text-ish file, or - honestly, never a faked preview - the
7
+ * filename/type/size for anything else. All state/effects live in `useAttachmentPreviewModal`; this
8
+ * is the presentational shell, native-`<dialog>`-based like `Markdown.tsx`'s `TableBlock` pop-out.
9
+ */
10
+ import { useT } from '../hooks/context.js';
11
+ import { Icon } from './Icon.js';
12
+ import { looksLikeImageAttachment, useAttachmentPreviewModal } from './AttachmentPreviewModal.hooks.js';
13
+ export function AttachmentPreviewModal({ attachment, onClose }) {
14
+ const t = useT();
15
+ const c = useAttachmentPreviewModal(attachment, onClose);
16
+ return (_jsxs("dialog", { ref: c.dialogRef, className: "jini-attachment-preview-dialog", role: "dialog", "aria-modal": "true", "aria-label": t('{name} preview', { name: attachment.name }), onCancel: c.handleNativeCancel, onClick: c.handleBackdropClick, children: [_jsxs("div", { className: "jini-attachment-preview-header", children: [_jsx("span", { className: "jini-attachment-preview-name", title: attachment.name, children: attachment.name }), _jsx("button", { type: "button", className: "jini-attachment-preview-close", onClick: onClose, title: t('Close'), "aria-label": t('Close'), children: _jsx(Icon, { name: "close", size: 16 }) })] }), _jsx("div", { className: "jini-attachment-preview-body", children: c.status === 'image' && c.imageUrl ? (_jsx("img", { src: c.imageUrl, alt: attachment.name, className: "jini-attachment-preview-image", onError: c.onImageError })) : c.status === 'text' ? (c.textLoading ? (_jsx("div", { className: "jini-attachment-preview-loading", children: t('Loading…') })) : (_jsxs(_Fragment, { children: [_jsx("pre", { className: "jini-attachment-preview-text", children: c.text?.content ?? '' }), c.text?.truncated ? (_jsx("div", { className: "jini-attachment-preview-truncated", children: t('Preview truncated — this file is larger than the preview limit.') })) : null] }))) : (_jsxs("div", { className: "jini-attachment-preview-meta", children: [_jsxs("div", { className: "jini-attachment-preview-meta-row", children: [_jsx("span", { className: "jini-attachment-preview-meta-label", children: t('Name') }), _jsx("span", { children: attachment.name })] }), _jsxs("div", { className: "jini-attachment-preview-meta-row", children: [_jsx("span", { className: "jini-attachment-preview-meta-label", children: t('Type') }), _jsx("span", { children: looksLikeImageAttachment(attachment) ? t('Image') : t('File') })] }), c.sizeLabel ? (_jsxs("div", { className: "jini-attachment-preview-meta-row", children: [_jsx("span", { className: "jini-attachment-preview-meta-label", children: t('Size') }), _jsx("span", { children: c.sizeLabel })] })) : null, _jsx("div", { className: "jini-attachment-preview-meta-note", children: t('A preview is not available for this file.') })] })) })] }));
17
+ }
18
+ //# sourceMappingURL=AttachmentPreviewModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttachmentPreviewModal.js","sourceRoot":"","sources":["../../../src/react/components/AttachmentPreviewModal.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Composer.d.ts","sourceRoot":"","sources":["../../../src/react/components/Composer.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAmD,aAAa,EAAE,MAAM,aAAa,CAAC;AAalG,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kFAAkF;IAClF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,gBAAgB,CAAC,EAAE;QACjB,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IACF;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;;;;;;;;;OAUG;IACH,wBAAwB,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D;;;;;;;;;OASG;IACH,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;CACrC;AA+CD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EACR,MAAM,EACN,QAAgB,EAChB,YAAoB,EACpB,WAAW,EACX,KAAK,EACL,gBAAgB,EAChB,OAAe,EACf,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,GACvB,EAAE,aAAa,+BAibf"}
1
+ {"version":3,"file":"Composer.d.ts","sourceRoot":"","sources":["../../../src/react/components/Composer.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAmD,aAAa,EAAE,MAAM,aAAa,CAAC;AAalG,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kFAAkF;IAClF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,gBAAgB,CAAC,EAAE;QACjB,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IACF;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;;;;;;;;;OAUG;IACH,wBAAwB,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D;;;;;;;;;OASG;IACH,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;CACrC;AA+CD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EACR,MAAM,EACN,QAAgB,EAChB,YAAoB,EACpB,WAAW,EACX,KAAK,EACL,gBAAgB,EAChB,OAAe,EACf,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,GACvB,EAAE,aAAa,+BAobf"}
@@ -334,7 +334,7 @@ export function Composer({ composer, onSend, disabled = false, sendDisabled = fa
334
334
  setDismissedSlashDraft(null);
335
335
  }, onKeyDown: handleKeyDown, onPaste: handleAttachmentPaste, "aria-controls": slashOpen ? 'jini-composer-slash-menu' : undefined, "aria-expanded": slashOpen, "aria-activedescendant": slashOpen
336
336
  ? `jini-composer-slash-option-${Math.min(slashActiveIndex, slashMatches.length - 1)}`
337
- : undefined, rows: 3 }), slashOpen ? (_jsx(ComposerSlashMenu, { matches: slashMatches, activeIndex: Math.min(slashActiveIndex, slashMatches.length - 1), onSelect: (item) => selectSlashItem(slashMatches.findIndex((match) => match.item === item)), showFilterHint: showSlashFilterHint, style: slashMenuPosition, t: t })) : null, _jsxs("div", { className: "jini-composer-footer", children: [attachmentPicker && !hasDiscoveryItems ? (_jsxs("div", { className: "jini-composer-attachment-picker", children: [_jsx("input", { ref: attachmentInputRef, className: "jini-composer-file-input", "data-testid": "composer-attachment-input", type: "file", multiple: true, "aria-label": t('Attach files'), accept: attachmentPicker.accept, disabled: disabled || attachmentPicker.uploading, onChange: handleAttachmentChange }), _jsx("button", { type: "button", className: "jini-composer-attach", disabled: disabled || attachmentPicker.uploading, onClick: () => attachmentInputRef.current?.click(), title: t(attachmentPicker.uploading ? 'Attaching files…' : 'Attach files'), "aria-label": t(attachmentPicker.uploading ? 'Attaching files…' : 'Attach files'), children: _jsx(RemixIcon, { name: attachmentPicker.uploading ? 'refresh-line' : 'add-line', size: 20, ...(attachmentPicker.uploading ? { className: 'jini-composer-spinner' } : {}) }) })] })) : null, hasDiscoveryItems ? (_jsx(ComposerDiscoveryMenu, { groups: discoveryGroups, open: discoveryMenuOpen, disabled: disabled, ...(attachmentPicker ? { attachmentPicker } : {}), attachmentInputRef: attachmentInputRef, onToggle: () => setDiscoveryMenuOpen((open) => !open), onClose: () => setDiscoveryMenuOpen(false), onSelect: selectPlusItem, onAttachmentChange: handleAttachmentChange, style: discoveryMenuPosition, t: t })) : null, onChangeWorkingDirectory || onPickWorkingDirectory ? (_jsxs("div", { className: "jini-composer-workdir", "data-testid": "composer-workdir", children: [_jsx("button", { type: "button", className: "jini-composer-attach", "data-testid": "composer-workdir-trigger", disabled: disabled, onClick: onPickWorkingDirectory ? () => onPickWorkingDirectory() : toggleWorkdir, ...(onPickWorkingDirectory ? {} : { 'aria-haspopup': 'dialog', 'aria-expanded': workdirOpen }), title: workingDirectory ?? t('Set working directory'), "aria-label": workingDirectory
337
+ : undefined, rows: 3 }), slashOpen ? (_jsx(ComposerSlashMenu, { matches: slashMatches, activeIndex: Math.min(slashActiveIndex, slashMatches.length - 1), onSelect: (item) => selectSlashItem(slashMatches.findIndex((match) => match.item === item)), showFilterHint: showSlashFilterHint, style: slashMenuPosition, t: t })) : null, _jsxs("div", { className: "jini-composer-footer", children: [attachmentPicker && !hasDiscoveryItems ? (_jsxs("div", { className: "jini-composer-attachment-picker", children: [_jsx("input", { ref: attachmentInputRef, className: "jini-composer-file-input", "data-testid": "composer-attachment-input", type: "file", multiple: true, "aria-label": t('Attach files'), accept: attachmentPicker.accept, disabled: disabled || attachmentPicker.uploading, onChange: handleAttachmentChange }), _jsx("button", { type: "button", className: "jini-composer-attach", disabled: disabled || attachmentPicker.uploading, onClick: () => attachmentInputRef.current?.click(), title: t(attachmentPicker.uploading ? 'Attaching files…' : 'Attach files'), "aria-label": t(attachmentPicker.uploading ? 'Attaching files…' : 'Attach files'), children: _jsx(RemixIcon, { name: attachmentPicker.uploading ? 'refresh-line' : 'add-line', size: 20, ...(attachmentPicker.uploading ? { className: 'jini-composer-spinner' } : {}) }) })] })) : null, hasDiscoveryItems ? (_jsx(ComposerDiscoveryMenu, { groups: discoveryGroups, open: discoveryMenuOpen, disabled: disabled, ...(attachmentPicker ? { attachmentPicker } : {}), attachmentInputRef: attachmentInputRef, onToggle: () => setDiscoveryMenuOpen((open) => !open), onClose: () => setDiscoveryMenuOpen(false), onSelect: selectPlusItem, onAttachmentChange: handleAttachmentChange, style: discoveryMenuPosition, t: t })) : null, slots?.footerLeadingAccessory ? (_jsx("div", { className: "jini-composer-footer-leading", children: slots.footerLeadingAccessory })) : null, onChangeWorkingDirectory || onPickWorkingDirectory ? (_jsxs("div", { className: "jini-composer-workdir", "data-testid": "composer-workdir", children: [_jsx("button", { type: "button", className: "jini-composer-attach", "data-testid": "composer-workdir-trigger", disabled: disabled, onClick: onPickWorkingDirectory ? () => onPickWorkingDirectory() : toggleWorkdir, ...(onPickWorkingDirectory ? {} : { 'aria-haspopup': 'dialog', 'aria-expanded': workdirOpen }), title: workingDirectory ?? t('Set working directory'), "aria-label": workingDirectory
338
338
  ? t('Working directory: {dir}', { dir: workingDirectory })
339
339
  : t('Set working directory'), children: _jsx(RemixIcon, { name: "folder-line", size: 20 }) }), !onPickWorkingDirectory && workdirOpen ? (_jsxs("div", { className: "jini-composer-workdir-panel", "data-testid": "composer-workdir-panel", role: "dialog", "aria-label": t('Working directory'), style: workdirPosition, children: [_jsx("input", { type: "text", className: "jini-composer-workdir-input", "data-testid": "composer-workdir-input", value: workdirDraft, onChange: (e) => setWorkdirDraft(e.target.value), onKeyDown: (e) => {
340
340
  if (e.key === 'Enter') {
@@ -1 +1 @@
1
- {"version":3,"file":"Composer.js","sourceRoot":"","sources":["../../../src/react/components/Composer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Composer.js","sourceRoot":"","sources":["../../../src/react/components/Composer.tsx"],"names":[],"mappings":"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"}
@@ -39,6 +39,14 @@
39
39
  * markdown *source* — `message.content` (user) or `visibleContent`
40
40
  * (assistant, post `stripArtifact`) — never a flattened read of the rendered
41
41
  * DOM, so a table, fence, or `**bold**` marker survives the round trip.
42
+ *
43
+ * The assistant action row is further withheld while `message.runStatus`
44
+ * has not yet reached a terminal state (`isRunInProgress` below) — not just
45
+ * while there is literally nothing to show (`isPendingWithNoContent`).
46
+ * Text and tool rows can settle onto the screen before the run itself ends
47
+ * (e.g. a trailing tool call still in flight), and the copy affordance must
48
+ * not appear until the whole message is done, not merely until its current
49
+ * chunk stopped arriving.
42
50
  */
43
51
  import React, { type ReactNode } from 'react';
44
52
  import type { ChatAttachment, ChatMessage } from '../../core/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"MessageRow.d.ts","sourceRoot":"","sources":["../../../src/react/components/MessageRow.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,KAAK,EAAc,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAcnF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,WAAW,CAAC;IACrB,yDAAyD;IACzD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wFAAwF;IACxF,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,4BAA4B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IACjE,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;IAC1F,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,+FAA+F;IAC/F,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,SAAS,CAAC;CAC9D;AAoFD,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,YAAoB,EACpB,YAAoB,EACpB,uBAA+B,EAC/B,4BAA4B,EAC5B,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,GACjB,EAAE,eAAe,qBAmKjB"}
1
+ {"version":3,"file":"MessageRow.d.ts","sourceRoot":"","sources":["../../../src/react/components/MessageRow.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,OAAO,KAAK,EAAE,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACxD,OAAO,KAAK,EAAc,cAAc,EAAE,WAAW,EAAiB,MAAM,qBAAqB,CAAC;AAelG,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,WAAW,CAAC;IACrB,yDAAyD;IACzD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wFAAwF;IACxF,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,4BAA4B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IACjE,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;IAC1F,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,+FAA+F;IAC/F,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,SAAS,CAAC;CAC9D;AAyGD,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,YAAoB,EACpB,YAAoB,EACpB,uBAA+B,EAC/B,4BAA4B,EAC5B,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,GACjB,EAAE,eAAe,qBAkLjB"}
@@ -40,9 +40,17 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
40
40
  * markdown *source* — `message.content` (user) or `visibleContent`
41
41
  * (assistant, post `stripArtifact`) — never a flattened read of the rendered
42
42
  * DOM, so a table, fence, or `**bold**` marker survives the round trip.
43
+ *
44
+ * The assistant action row is further withheld while `message.runStatus`
45
+ * has not yet reached a terminal state (`isRunInProgress` below) — not just
46
+ * while there is literally nothing to show (`isPendingWithNoContent`).
47
+ * Text and tool rows can settle onto the screen before the run itself ends
48
+ * (e.g. a trailing tool call still in flight), and the copy affordance must
49
+ * not appear until the whole message is done, not merely until its current
50
+ * chunk stopped arriving.
43
51
  */
44
- import React, {} from 'react';
45
- import { splitOnQuestionForms, stripArtifact } from '../../core/index.js';
52
+ import React, { useState } from 'react';
53
+ import { isTerminalRunStatus, splitOnQuestionForms, stripArtifact } from '../../core/index.js';
46
54
  import { useToolTimeline } from '../hooks/useToolTimeline.js';
47
55
  import { useExtEventGroups } from '../hooks/useExtEventGroups.js';
48
56
  import { useCopyToClipboard } from '../hooks/useCopyToClipboard.js';
@@ -50,6 +58,7 @@ import { interleaveMessageBlocks } from '../message-blocks.js';
50
58
  import { useT } from '../hooks/context.js';
51
59
  import { getExtEventRenderer } from '../ext-event-renderer-registry.js';
52
60
  import { ExtEventErrorBoundary } from './ExtEventErrorBoundary.js';
61
+ import { AttachmentPreviewModal } from './AttachmentPreviewModal.js';
53
62
  import { Icon } from './Icon.js';
54
63
  import { Markdown } from './Markdown.js';
55
64
  import { ToolCard } from './ToolCard.js';
@@ -76,6 +85,26 @@ function formatDuration(ms) {
76
85
  function isPendingWithNoContent(message, visibleContent, toolRowCount) {
77
86
  return message.runStatus === 'running' && !visibleContent.trim() && toolRowCount === 0;
78
87
  }
88
+ /**
89
+ * True while an assistant message's own run has been handed a lifecycle status but has not yet
90
+ * reached a terminal one (`succeeded` | `failed` | `canceled`) — this covers `running` and also
91
+ * `queued`, the brief window before streaming starts. A message whose `runStatus` is `undefined`
92
+ * (no live run ever attached — e.g. history loaded from storage) is never "in progress": only a
93
+ * message actively wired to a lifecycle status can be mid-run, so those messages fall through to
94
+ * "done" rather than being treated as perpetually running.
95
+ *
96
+ * This is deliberately broader than `isPendingWithNoContent` above: that predicate answers "is
97
+ * there nothing to show yet" (content OR a tool row already arriving flips it to false), while
98
+ * this one answers "has the run itself finished" — the actual reported bug was text/tool rows
99
+ * already on screen while a trailing tool call was still in flight, i.e. not-pending but also
100
+ * not-done. The two are combined at the copy-button call site rather than merged into one
101
+ * predicate, since `isPendingWithNoContent` still owns the separate "Thinking…" placeholder.
102
+ * @param runStatus - `message.runStatus` from the message being rendered.
103
+ * @complexity O(1) — one comparison plus a set lookup via `isTerminalRunStatus`.
104
+ */
105
+ function isRunInProgress(runStatus) {
106
+ return runStatus !== undefined && !isTerminalRunStatus(runStatus);
107
+ }
79
108
  /** One "Done · 6m 29s · 2612 out · $0.4028" summary line, from the run's own `kind:'usage'` event — never estimated client-side. Renders only the fields the event actually carries, so a transport that supplies partial usage data degrades gracefully instead of showing fabricated zeros. */
80
109
  function UsageSummary({ usage }) {
81
110
  const t = useT();
@@ -110,8 +139,12 @@ export function MessageRow({ message, runStreaming = false, runSucceeded = false
110
139
  const t = useT();
111
140
  const timeline = useToolTimeline(message.events, { runStreaming, runSucceeded });
112
141
  const extGroups = useExtEventGroups(message.events);
142
+ // Which attachment chip (if any) this row's preview modal is open for. Row-local, not
143
+ // module-level: two attachments in the same message can never be "open" at once, but two
144
+ // different messages opening their own attachments independently is fine and expected.
145
+ const [openAttachment, setOpenAttachment] = useState(null);
113
146
  if (message.role === 'user') {
114
- return (_jsxs("div", { className: "jini-message jini-message-user", "data-message-id": message.id, "data-agent-element": `chat-message-${message.id}`, "data-agent-role": "region", "data-agent-label": "A message from the user", children: [message.attachments && message.attachments.length > 0 ? (_jsx("div", { className: "jini-message-attachments", children: message.attachments.map((a) => (_jsx("span", { className: "jini-message-attachment-chip", children: renderAttachment ? renderAttachment(a) : a.name }, a.path))) })) : null, _jsx("div", { className: "jini-message-content", children: message.content }), _jsx("div", { className: "jini-message-actions jini-message-actions--user", children: _jsx(CopyMessageButton, { text: message.content, label: t('Copy message') }) })] }));
147
+ return (_jsxs("div", { className: "jini-message jini-message-user", "data-message-id": message.id, "data-agent-element": `chat-message-${message.id}`, "data-agent-role": "region", "data-agent-label": "A message from the user", children: [message.attachments && message.attachments.length > 0 ? (_jsx("div", { className: "jini-message-attachments", children: message.attachments.map((a) => (_jsx("button", { type: "button", className: "jini-message-attachment-chip", onClick: () => setOpenAttachment(a), title: t('Open {name}', { name: a.name }), "aria-label": t('Open {name}', { name: a.name }), children: renderAttachment ? renderAttachment(a) : a.name }, a.path))) })) : null, _jsx("div", { className: "jini-message-content", children: message.content }), _jsx("div", { className: "jini-message-actions jini-message-actions--user", children: _jsx(CopyMessageButton, { text: message.content, label: t('Copy message') }) }), openAttachment ? (_jsx(AttachmentPreviewModal, { attachment: openAttachment, onClose: () => setOpenAttachment(null) })) : null] }));
115
148
  }
116
149
  const visibleContent = stripArtifact(message.content);
117
150
  const segments = splitOnQuestionForms(visibleContent);
@@ -123,6 +156,7 @@ export function MessageRow({ message, runStreaming = false, runSucceeded = false
123
156
  // messages are dominated by the artifact panel anyway, so the ordering matters least there.
124
157
  const blocks = visibleContent === message.content ? interleaveMessageBlocks(message.events, message.content, timeline.rows) : null;
125
158
  const pending = isPendingWithNoContent(message, visibleContent, timeline.rows.length);
159
+ const runInProgress = isRunInProgress(message.runStatus);
126
160
  const renderToolCard = (row) => (_jsx(ToolCard, { use: row.use, result: row.result, runStreaming: runStreaming, runSucceeded: runSucceeded, ...(projectFileNames !== undefined ? { projectFileNames } : {}), ...(onRequestOpenFile !== undefined ? { onRequestOpenFile } : {}) }, row.id));
127
161
  const renderExtGroup = (group) => {
128
162
  const renderer = getExtEventRenderer(group.name);
@@ -151,6 +185,6 @@ export function MessageRow({ message, runStreaming = false, runSucceeded = false
151
185
  return null;
152
186
  return (_jsx("div", { className: "jini-message-ext-events", children: renderExtGroup(group) }, block.key));
153
187
  })
154
- : (_jsxs(_Fragment, { children: [segments.map((segment, i) => segment.kind === 'text' ? (segment.text.trim() ? (_jsx("div", { className: "jini-message-content", children: _jsx(Markdown, { children: segment.text }) }, i)) : null) : (_jsx(QuestionForm, { form: segment.form, interactive: questionFormInteractive, ...(questionFormSubmittedAnswers !== undefined ? { submittedAnswers: questionFormSubmittedAnswers } : {}), ...(onQuestionFormSubmit !== undefined ? { onSubmit: onQuestionFormSubmit } : {}) }, i))), timeline.rows.length > 0 ? (_jsx("div", { className: "jini-message-tools", children: timeline.rows.map(renderToolCard) })) : null, extGroups.length > 0 ? _jsx("div", { className: "jini-message-ext-events", children: extGroups.map(renderExtGroup) }) : null] })), usageEvent ? _jsx(UsageSummary, { usage: usageEvent }) : null, message.runStatus === 'failed' ? _jsx("div", { className: "jini-message-error", children: t('This turn failed.') }) : null, !pending ? (_jsx("div", { className: "jini-message-actions jini-message-actions--assistant", children: _jsx(CopyMessageButton, { text: visibleContent, label: t('Copy message') }) })) : null, pending ? (_jsx("div", { className: "jini-message-pending", "aria-live": "polite", children: t('Thinking…') })) : null] }));
188
+ : (_jsxs(_Fragment, { children: [segments.map((segment, i) => segment.kind === 'text' ? (segment.text.trim() ? (_jsx("div", { className: "jini-message-content", children: _jsx(Markdown, { children: segment.text }) }, i)) : null) : (_jsx(QuestionForm, { form: segment.form, interactive: questionFormInteractive, ...(questionFormSubmittedAnswers !== undefined ? { submittedAnswers: questionFormSubmittedAnswers } : {}), ...(onQuestionFormSubmit !== undefined ? { onSubmit: onQuestionFormSubmit } : {}) }, i))), timeline.rows.length > 0 ? (_jsx("div", { className: "jini-message-tools", children: timeline.rows.map(renderToolCard) })) : null, extGroups.length > 0 ? _jsx("div", { className: "jini-message-ext-events", children: extGroups.map(renderExtGroup) }) : null] })), usageEvent ? _jsx(UsageSummary, { usage: usageEvent }) : null, message.runStatus === 'failed' ? _jsx("div", { className: "jini-message-error", children: t('This turn failed.') }) : null, !pending && !runInProgress ? (_jsx("div", { className: "jini-message-actions jini-message-actions--assistant", children: _jsx(CopyMessageButton, { text: visibleContent, label: t('Copy message') }) })) : null, pending ? (_jsx("div", { className: "jini-message-pending", "aria-live": "polite", children: t('Thinking…') })) : null] }));
155
189
  }
156
190
  //# sourceMappingURL=MessageRow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageRow.js","sourceRoot":"","sources":["../../../src/react/components/MessageRow.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MessageRow.js","sourceRoot":"","sources":["../../../src/react/components/MessageRow.tsx"],"names":[],"mappings":"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"}
@@ -118,7 +118,7 @@ export function resolveComposerSlashKeyAction(key, shiftKey) {
118
118
  * Both popovers were previously plain `position: absolute` descendants of `.jini-composer`, which
119
119
  * is itself nested inside `.jini-chat-pane__body` — an ancestor that sets `overflow: hidden`
120
120
  * unconditionally (`styles.ts`), plus whatever clipping box a host's own dock chrome adds on top
121
- * (Tovu admin's `.admin-chat-dock` is `overflow: hidden` too, and its mobile "peek" sheet caps the
121
+ * (a host admin's `.admin-chat-dock` is `overflow: hidden` too, and its mobile "peek" sheet caps the
122
122
  * whole dock at `58vh`). CSS alone cannot know how much room that leaves above the composer on a
123
123
  * given host; when the popover's natural content is taller than the available space, the
124
124
  * ancestor's hard clip boundary slices through whichever row sits at the clip line instead of the