diff --git a/packages/ui/src/components/message-stream-v2.tsx b/packages/ui/src/components/message-stream-v2.tsx index 6f44df17..9a0dcf08 100644 --- a/packages/ui/src/components/message-stream-v2.tsx +++ b/packages/ui/src/components/message-stream-v2.tsx @@ -798,9 +798,7 @@ function StepCard(props: StepCardProps) { } } - type UsageInfo = NonNullable> - - const renderUsageChips = (usage: UsageInfo) => ( + const renderUsageChips = (usage: NonNullable>) => (
Input @@ -919,21 +917,27 @@ function ReasoningCard(props: ReasoningCardProps) { const toggle = () => setExpanded((prev) => !prev) return ( -
-
-
- Thinking -
-
- - {timestamp()} -
-
+
+ + -
-
{reasoningText() || ""}
+
+
diff --git a/packages/ui/src/styles/messaging/message-base.css b/packages/ui/src/styles/messaging/message-base.css index 8450e2d6..ce7bb9c6 100644 --- a/packages/ui/src/styles/messaging/message-base.css +++ b/packages/ui/src/styles/messaging/message-base.css @@ -186,35 +186,108 @@ @apply mt-4; } -.reasoning-card-header { - @apply flex items-center justify-between; +.message-reasoning-card { + background-color: var(--message-assistant-bg); + border-left: 4px solid var(--message-assistant-border); + margin-top: 0; + margin-bottom: 0; + padding: 0; + display: flex; + flex-direction: column; + gap: 0; } -.reasoning-card-header-right { - @apply flex items-center gap-2; -} - -.reasoning-card-toggle { - @apply inline-flex items-center justify-center rounded border border-[var(--border-base)] text-[var(--text-muted)] bg-transparent px-3 py-0.5 text-xs font-semibold; -} - -.reasoning-card-toggle:hover { - color: var(--accent-primary); - border-color: var(--accent-primary); -} - -.reasoning-card-time { - @apply text-[11px] text-[var(--text-muted)]; -} - -.reasoning-card-body { - @apply pt-1; -} - -.reasoning-card-text { - @apply whitespace-pre-wrap break-words leading-[1.1] text-[var(--text-muted)] text-sm; - font-family: inherit; - background: transparent; +.message-reasoning-toggle { + width: 100%; + display: flex; + align-items: center; + justify-content: space-between; + gap: 0.65rem; + background: none; border: none; + padding: 0.25rem 0.6rem; + font: inherit; + color: inherit; + text-align: left; + cursor: pointer; + transition: background-color 0.2s ease, box-shadow 0.2s ease; +} + +.message-reasoning-toggle:hover { + background-color: var(--surface-hover); +} + +.message-reasoning-toggle:focus-visible { + outline: none; + box-shadow: 0 0 0 1px var(--accent-primary); +} + +.message-reasoning-label { + font-size: 0.75rem; + font-weight: var(--font-weight-medium); + color: var(--message-assistant-border); +} + +.message-reasoning-meta { + display: inline-flex; + align-items: center; + gap: 0.5rem; +} + +.message-reasoning-indicator { + line-height: 1; + display: inline-flex; + align-items: center; + justify-content: center; + min-width: 2.25rem; + height: 1.5rem; + padding: 0 0.65rem; + border: 1px solid var(--border-base); + border-radius: 0.375rem; + background-color: transparent; + color: var(--text-muted); + font-weight: var(--font-weight-semibold); + font-size: 0.85rem; + transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease, transform 0.2s ease; +} + +.message-reasoning-toggle:hover .message-reasoning-indicator { + background-color: var(--surface-hover); + border-color: var(--accent-primary); + color: var(--accent-primary); +} + +.message-reasoning-indicator:active { + transform: scale(0.97); +} + +.message-reasoning-time { + font-size: 11px; + color: var(--text-muted); +} + +.message-reasoning-expanded { + display: flex; + flex-direction: column; + gap: 0.35rem; +} + +.message-reasoning-divider { + width: 100%; + height: 1px; + background-color: var(--border-base); +} + +.message-reasoning-body { + padding: 0.25rem 0.6rem 0.4rem; +} + +.message-reasoning-text { + font-family: var(--font-family-mono); + font-size: var(--font-size-sm); + line-height: var(--line-height-tight); + color: var(--text-muted); + white-space: pre-wrap; + margin: 0; }