Tool Call Card Alignment

Nucleic-Session: FFDE42E0-22AB-4478-B2E2-FF69B2753CEE
Co-authored-by: Nucleic <[email protected]>
This commit is contained in:
2026-07-05 19:45:21 -07:00
co-authored by Nucleic
parent 4390a42e0e
commit 2fa4c2c444
@@ -124,13 +124,26 @@ struct MessageBubble: View {
} }
} }
/// The agent's reasoning, set apart from its prose by a quiet left rule and a `sparkles` glyph,
/// italic and muted — the phone echo of the Mac's `thinkingRow`. Renders nothing for an
/// empty/redacted thinking block (matching the desktop), so a placeholder row never shows.
struct ThinkingRow: View { struct ThinkingRow: View {
let text: String let text: String
var body: some View { var body: some View {
Text(text) let trimmed = text.trimmingCharacters(in: .whitespacesAndNewlines)
.font(.callout.italic()) if !trimmed.isEmpty {
.foregroundStyle(.secondary) HStack(alignment: .top, spacing: 8) {
Rectangle().fill(.quaternary).frame(width: 2).cornerRadius(1)
HStack(alignment: .firstTextBaseline, spacing: 6) {
Image(systemName: "sparkles").font(.caption2).foregroundStyle(.tertiary)
Text(trimmed)
.font(.callout.italic()).foregroundStyle(.secondary)
.lineSpacing(4)
.textSelection(.enabled)
}
}
.frame(maxWidth: .infinity, alignment: .leading) .frame(maxWidth: .infinity, alignment: .leading)
}
} }
} }