From 5601a98335ddae1c088b19cb96fa13c902571088 Mon Sep 17 00:00:00 2001 From: amosblomqvist Date: Tue, 13 Oct 2026 09:54:43 +0300 Subject: [PATCH] dialogs: delete dialogs drop the serif display title for the abort-turn look MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Titles become text-sm font-semibold in destructive red — JetBrains Mono via the UI default, matching the abort-turn/dismiss-question dialogs the owner named as the ideal look. Node and session names below the title drop the sized-up text-lg for normal text-sm, still white mono, no code-block chrome. Settings and Setup keep their serif titles by owner ruling; abort-turn already renders this way. 1610/1610 both configs; verified live on the running dev server. --- components/delete-node-dialog.tsx | 13 ++++++++----- components/delete-session-dialog.tsx | 15 ++++++++++----- tests/delete-node-dialog.test.tsx | 14 +++++++++----- tests/session-context.test.tsx | 10 ++++++---- 4 files changed, 33 insertions(+), 19 deletions(-) diff --git a/components/delete-node-dialog.tsx b/components/delete-node-dialog.tsx index b26dd06..283f5cc 100644 --- a/components/delete-node-dialog.tsx +++ b/components/delete-node-dialog.tsx @@ -53,22 +53,25 @@ export function DeleteNodeBody({ onClick={(e) => e.stopPropagation()} className="w-[32rem] max-w-[calc(100vw-2rem)] rounded-xl border bg-card p-5 shadow-xl" > -

+

{nodes.length === 1 ? "Delete node?" : `Delete ${nodes.length} nodes?`}

{/* The node name(s) below the title in JetBrains Mono (owner, 2026-09-24): the name is the payload — mono suits it, and - NO code-block chrome (the font already says code), sized up - to text-lg so it reads. Same shape as the session dialog. + NO code-block chrome (the font already says code). Owner, + 2026-10-13 polish: title loses the serif display look for the + abort-turn look (text-sm font-semibold mono, red kept), and + the names drop the sized-up text-lg for normal text-sm — + still white, still mono. Same shape as the session dialog. A multi-selection lists its names (capped at 8 + "and K more" — the count in the title carries the full number). */}
{nodes.length === 1 ? ( - + {nodes[0]?.name} ) : ( - + {nodes.slice(0, 8).map((n) => n.name).join(", ")} {nodes.length > 8 ? `, and ${nodes.length - 8} more` : ""} diff --git a/components/delete-session-dialog.tsx b/components/delete-session-dialog.tsx index c0fb004..198bd84 100644 --- a/components/delete-session-dialog.tsx +++ b/components/delete-session-dialog.tsx @@ -20,8 +20,11 @@ export const TRACES_COPY = { * destructive-confirmation surface, portaled z-50 like the setup dialog, * now in the node dialog's shape (the two must read as one design): * - * - red serif title "Delete session?", the session name below it in - * JetBrains Mono, sized up, no code-block chrome; + * - red title "Delete session?" in the abort-turn look (owner, 2026-10-13 + * polish: text-sm font-semibold JetBrains Mono via the UI default — + * the serif display title is gone), the session name below it in + * JetBrains Mono at normal text-sm size (was sized-up text-lg), no + * code-block chrome; * - ONE unchecked-by-default checkbox "Also remove its graph traces" * (unchecked = preserve-graph: the session record, its jobs, and its * extraction bookkeeping die; the graph keeps every contribution. @@ -159,12 +162,14 @@ export function DeleteSessionBody({ onClick={(e) => e.stopPropagation()} className="w-[32rem] max-w-[calc(100vw-2rem)] rounded-xl border bg-card p-5 shadow-xl" > -

Delete session?

+

Delete session?

{/* The session name below the title in JetBrains Mono (owner, 2026-09-24): no code-block chrome — the font already says - code — sized up to text-lg. Same shape as the node dialog. */} + code. Owner, 2026-10-13 polish: normal text-sm size (was + sized-up text-lg), still white. Same shape as the node + dialog. */}
- + {chat.title}
diff --git a/tests/delete-node-dialog.test.tsx b/tests/delete-node-dialog.test.tsx index 6c94436..52754c7 100644 --- a/tests/delete-node-dialog.test.tsx +++ b/tests/delete-node-dialog.test.tsx @@ -55,13 +55,17 @@ describe("DeleteNodeBody — the minimal screen (owner, 2026-09-30)", () => { it("single: 'Delete node?' title, the name alone in mono, the one permanence line", () => { const html = bodyAt([{ id: "kepler", name: "Kepler's three laws" }]); assert.match(html, /data-testid="delete-node-dialog"/); - // (owner, 2026-09-24) the serif title in destructive red; the - // NAME rides below in JetBrains Mono, text-lg, NO code-block - // chrome — same shape as the session dialog. + // (owner, 2026-10-13 polish) the title in the abort-turn look — + // text-sm font-semibold (JetBrains Mono via the UI default), red + // kept, NO font-title serif; the NAME rides below in JetBrains + // Mono at normal text-sm size, NO code-block chrome — same shape + // as the session dialog. assert.match(html, /Delete node\?/); - assert.match(html, /text-destructive/); + const title = html.match(/]*>/)?.[0] ?? ""; + assert.match(title, /text-sm font-semibold text-destructive/); + assert.ok(!title.includes("font-title"), "no serif display title (owner, 2026-10-13)"); const name = html.match(/data-testid="node-name-code"[^>]*>/)?.[0] ?? ""; - assert.match(name, /font-mono text-lg/); + assert.match(name, /font-mono text-sm/); assert.ok(!name.includes("bg-muted"), "no code-block chrome — the font already says code"); assert.match(html, /data-testid="node-name-code"[^>]*>Kepler's three laws]*>This permanently deletes the node — this cannot be undone\./); diff --git a/tests/session-context.test.tsx b/tests/session-context.test.tsx index 01409ba..35e558b 100644 --- a/tests/session-context.test.tsx +++ b/tests/session-context.test.tsx @@ -59,7 +59,7 @@ describe("DeleteSessionDialog — the node-dialog shape (owner flow rework 2026- assert.equal(html, ""); }); - it("red serif title 'Delete session?', the session name below in mono, sized up, no code-block chrome", () => { + it("red mono title 'Delete session?' (abort-turn look), the session name below in mono at normal size, no code-block chrome", () => { const html = renderToStaticMarkup( , ); assert.match(html, /Delete session\?/); - assert.match(html, /text-destructive[^"]*">Delete session\?]*>/)?.[0] ?? ""; + assert.match(title, /text-sm font-semibold text-destructive/); // red, abort-turn look (owner, 2026-10-13) + assert.ok(!title.includes("font-title"), "no serif display title"); + // the name: mono, normal text-sm size (owner, 2026-10-13), NO bg-muted code-block chrome const name = html.match(/data-testid="session-name-code"[^>]*>/)?.[0] ?? ""; - assert.match(name, /font-mono text-lg/); + assert.match(name, /font-mono text-sm/); assert.ok(!name.includes("bg-muted"), "no code-block chrome"); assert.match(html, /data-testid="session-name-code"[^>]*>Orbital mechanics