ReasoningDisclosure
Collapsed, muted disclosure for a model's thinking trace — a pulsing 'Thinking' label while streaming, 'Thought for Xs' once settled, rendered through StreamingMarkdown.
The user wants a range, not a single date.
DatePickerbinds oneDate; the range preset keeps one popover for both bounds.I'll point them at
mode="range"and theonValueChangeshape.
01 Examples
Settled trace with a duration
The user is asking for a date range, so a single DatePicker will not do.
DatePickerbinds oneDate.For two bounds I want the range preset, keeping one popover.
I'll suggest DatePicker with mode="range" and note the onValueChange shape.
Streaming: the label pulses 'Thinking'
Localized header
Kurz abgewogen: Toast fuer die Bestaetigung, kein Dialog — die Aktion ist nicht destruktiv.
02 Accessibility
Disclosure semantics
The header is a real <button> carrying aria-expanded and aria-controls for the trace region — the standard
Collapsible contract. Tab to reach it, Enter or Space to toggle. Focus rings use focus-visible:.
Reduced motion
The "Thinking" pulse is guarded by motion-reduce:animate-none — readers who set prefers-reduced-motion get the same label without the
animation. The label change itself is enough of a status cue.
Untrusted output
The trace is model output, so it renders through StreamingMarkdown — never {@html} — and any links inherit the same strict urlPolicy as the rest of the chat surface.
03 API Reference
No matching properties |