Add immersive focus mode for task editing #300

Merged
talksik merged 3 commits from claude/dreamy-brahmagupta-1gx4i1 into main 2026-06-21 17:20:26 +00:00

3 Commits

Author SHA1 Message Date
Arjun Patel 641b3ebcb7 fix style of keyhint 2026-06-21 10:16:44 -07:00
Claude e68d5ca4dc refactor(desktop): make task focus mode self-contained
Handle editing focus entirely within TaskParticleView instead of threading
editing state up to StreamView and special-casing the navigation hook.

While editing, the card now registers a capture-phase key listener — the
same pattern the app's other focus overlays use — that consumes Escape
(blurring the field, which flushes the draft and resumes playback) and
swallows stream-navigation keys so they can't pull focus to another
particle. An "Esc to finish" hint shows while editing.

This restores use-stream-navigation-keys to its original form and reduces
the StreamView change to a single `immersive` prop.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BDWBJjERKk8zUmh6bcKWSM
2026-06-21 17:12:53 +00:00
Claude 8b9e1905d1 feat(desktop): immersive focus mode for editing tasks
Editing a task in the stream was ambiguous: nothing signalled that you
were editing, playback chrome stayed live, Escape exited the whole stream,
and arrow keys could navigate to another particle mid-edit.

Focusing any field now enters a focus mode: the surrounding stream chrome
dims and blurs while the task card lifts above it with a soft ring, so the
task you're editing is unmistakable. Escape (or clicking outside the card)
leaves the editor and resumes playback from where it paused instead of
exiting the stream, and arrow/list keys no longer pull focus to another
particle while editing.

Text particles already get this via their full-screen edit overlay, so the
two editing flows are now consistent.

Addresses #286

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BDWBJjERKk8zUmh6bcKWSM
2026-06-21 16:47:16 +00:00