Onboarding · Flows and highlights: focus that holds as the flow turns, a tip that closes

navigation::Wizard keeps one focus handle for Next and Finish, so a
second press on the step before last finishes; Back that reaches the
first step, and a finished step picked by key, hand focus to Next.
Popover::with_opener hands its content a close that gives focus back:
Got it closes the hotspot's tip before the owner hides it, and the
event details close before Edit and Delete run, so focus never lands
on a panel that left the tree. The wizard's count and the setup
checklist's tally name their selectors after their words, and the bar
takes the count's own value.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ZacharyZhang-NYandClaude Opus 5.5 committed 2026-09-27 14:48:20 -04:00
1 parent 996daed6e4
commit 973f10a6dc
15 files changed
+180 -54

No files matched your search

+2 -2
View File
@@ -8,7 +8,7 @@ use gpui::{
use crate::{
buttons::{ButtonVariant, IconButton},
data_display::color_mark,
forms::{ColorPalette, Enter, FormError, InlineEdit, Input, OnValue, TextInput},
forms::{ColorPalette, Enter, FormError, InlineEdit, Input, OnValue, Run, TextInput},
mail::Label,
overlays::Popover,
primitives::{Icon, IconName},
@@ -149,7 +149,7 @@ impl RenderOnce for LabelManager {
let swatch_id = (id.clone(), format!("hue-{key}"));
let palette = {
let (id, key, on_recolor) = (id.clone(), key.clone(), self.on_recolor.clone());
move |_: &mut Window, _: &mut App| {
move |_: Run, _: &mut Window, _: &mut App| {
let colors = HUE_NAMES
.iter()
.zip(chart)