From 1f7c0e553499294730bb6b1600b9f69b2e3ab76f Mon Sep 17 00:00:00 2001 From: Shirshanka Das Date: Thu, 21 May 2026 23:08:47 -0700 Subject: [PATCH] feat: tab to autocomplete the cycling agent name in onboarding MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The first step of the onboarding wizard ("Hello! I'm ___, your data analytics agent") already cycles through a typewriter list of sample names. Now pressing Tab while the input is empty fills in the name currently on screen — a small delight for keyboard-first users who spot a name they like as it cycles by. Co-Authored-By: Claude Opus 4.7 (1M context) --- frontend/src/components/Onboarding/OnboardingWizard.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/Onboarding/OnboardingWizard.tsx b/frontend/src/components/Onboarding/OnboardingWizard.tsx index 16e0e8a..15c2186 100644 --- a/frontend/src/components/Onboarding/OnboardingWizard.tsx +++ b/frontend/src/components/Onboarding/OnboardingWizard.tsx @@ -114,7 +114,14 @@ function Step1Name({ value, onChange, onSubmit }: { value: string; onChange: (v: type="text" value={value} onChange={(e) => onChange(e.target.value)} - onKeyDown={(e) => { if (e.key === "Enter") onSubmit(); }} + onKeyDown={(e) => { + if (e.key === "Enter") { + onSubmit(); + } else if (e.key === "Tab" && !value) { + e.preventDefault(); + onChange(SAMPLE_NAMES[nameIdx]); + } + }} placeholder="" style={{ width: inputWidth, height: "1.15em", lineHeight: 1, padding: 0 }} className="inline bg-transparent outline-none border-b-2 border-primary/40