@remit/ui 0.0.31 → 0.0.32
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/package.json
CHANGED
|
@@ -109,8 +109,9 @@ describe("AppShell render honors the pane layout (#784)", () => {
|
|
|
109
109
|
thread,
|
|
110
110
|
intelligence,
|
|
111
111
|
};
|
|
112
|
-
// The reading
|
|
113
|
-
|
|
112
|
+
// The desktop reading-pane toolbar keeps the kit's default shortcut hints;
|
|
113
|
+
// the mobile pane passes its own labels without them.
|
|
114
|
+
const readingPaneMarker = /title="Reply \(r\)"/;
|
|
114
115
|
// "Known sender" is the wellknown trust label, rendered only by the rail.
|
|
115
116
|
const intelligenceMarker = /Known sender/;
|
|
116
117
|
|
|
@@ -175,7 +176,7 @@ describe("AppShell narrow message view: width-gated in-place swap", () => {
|
|
|
175
176
|
// narrow single pane is showing the message view.
|
|
176
177
|
const messageViewMarker = /aria-label="Back to messages"/;
|
|
177
178
|
// The desktop reading-pane toolbar — present only at/above 1024.
|
|
178
|
-
const readingPaneMarker = /
|
|
179
|
+
const readingPaneMarker = /title="Reply \(r\)"/;
|
|
179
180
|
|
|
180
181
|
it("below 1024 defaults to the list, not the message view", () => {
|
|
181
182
|
const html = render({ ...withThread, initialWidth: 800 });
|
|
@@ -53,9 +53,10 @@ describe("ReadingPane", () => {
|
|
|
53
53
|
assert.match(html, /Select a thread to read/);
|
|
54
54
|
});
|
|
55
55
|
|
|
56
|
-
it("renders the
|
|
56
|
+
it("renders the message verbs and no search field — search is the app top bar's", () => {
|
|
57
57
|
const html = renderToString(createElement(ReadingPane, { thread }));
|
|
58
|
-
assert.match(html, /
|
|
58
|
+
assert.match(html, /title="Reply \(r\)"/);
|
|
59
|
+
assert.doesNotMatch(html, /Search mail/);
|
|
59
60
|
});
|
|
60
61
|
});
|
|
61
62
|
|
|
@@ -1,17 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ChevronDown,
|
|
3
|
-
ChevronRight,
|
|
4
|
-
Search,
|
|
5
|
-
ShieldAlert,
|
|
6
|
-
SquarePen,
|
|
7
|
-
} from "lucide-react";
|
|
1
|
+
import { ChevronDown, ChevronRight, ShieldAlert } from "lucide-react";
|
|
8
2
|
import { type ReactNode, useState } from "react";
|
|
9
3
|
import { cn } from "../lib/cn.js";
|
|
10
4
|
import { isSelfRowActivation } from "../lib/row-keyboard.js";
|
|
11
5
|
import type { ThreadData, ThreadMessageData } from "./app-shell-types.js";
|
|
12
6
|
import { Avatar } from "./avatar.js";
|
|
13
|
-
import { Button } from "./button.js";
|
|
14
|
-
import { Input } from "./input.js";
|
|
15
7
|
import { IntelligenceToggle } from "./intelligence-toggle.js";
|
|
16
8
|
import { MailActionToolbar } from "./mail-action-toolbar.js";
|
|
17
9
|
import { MessageBodyView } from "./message-body-view.js";
|
|
@@ -252,13 +244,14 @@ export function ExpandedMessage({
|
|
|
252
244
|
}
|
|
253
245
|
|
|
254
246
|
/**
|
|
255
|
-
* Message action toolbar on the pane-header datum: the reading pane's
|
|
256
|
-
*
|
|
257
|
-
*
|
|
258
|
-
*
|
|
259
|
-
*
|
|
260
|
-
*
|
|
261
|
-
*
|
|
247
|
+
* Message action toolbar on the pane-header datum: the reading pane's verbs
|
|
248
|
+
* (reply/reply-all/forward, delete/move/flag) and the intelligence toggle.
|
|
249
|
+
* Everything here acts on the open message; search, compose and the account
|
|
250
|
+
* menu belong to the app and live in the `AppTopBar` above every pane. Built on
|
|
251
|
+
* the shared `MailActionToolbar` so the mail verbs stay pressable with no thread
|
|
252
|
+
* open and explain inline rather than greying out (the never-disable tenet). The
|
|
253
|
+
* intelligence toggle is the exception: it holds its slot and greys out when
|
|
254
|
+
* there is no rail to open (#52).
|
|
262
255
|
*/
|
|
263
256
|
function MessageToolbar({
|
|
264
257
|
hasThread,
|
|
@@ -278,21 +271,6 @@ function MessageToolbar({
|
|
|
278
271
|
onUnavailable={() => setHint("Open a message first")}
|
|
279
272
|
unavailableHint={hint}
|
|
280
273
|
>
|
|
281
|
-
{/* Apple Mail geometry: search sits top-right over the message
|
|
282
|
-
area but still filters the current list / brief */}
|
|
283
|
-
<Input
|
|
284
|
-
icon={<Search className="size-4" />}
|
|
285
|
-
placeholder="Search mail"
|
|
286
|
-
className="h-8 w-64 min-w-40 shrink"
|
|
287
|
-
/>
|
|
288
|
-
<span className="mx-1 h-4 w-px bg-line" aria-hidden />
|
|
289
|
-
<Button
|
|
290
|
-
variant="ghost"
|
|
291
|
-
size="sm"
|
|
292
|
-
icon={<SquarePen className="size-4" />}
|
|
293
|
-
title="Compose (⌘N)"
|
|
294
|
-
aria-label="Compose"
|
|
295
|
-
/>
|
|
296
274
|
<IntelligenceToggle
|
|
297
275
|
open={intelligenceOpen}
|
|
298
276
|
enabled={canToggleIntelligence}
|