feat(onboarding): the connect step's sign-in as one continuous sequence (#12863)

Picking a source starts the sign-in: the row collapses to the answer, the card opens where the credential link was, and the footer button walks Sign in -> Waiting for code -> Connecting before the step advances. Back unwinds it a beat at a time.

Nothing mounts to change layout - the card and the link are always rendered and their heights animate, with inert holding the a11y line - because a mount changes the page in one frame and no easing can smooth a step already taken.

Review fixes in the same branch: the displayed-code panel now reports its prompt upward (the OpenAI path could not leave the loading beat without it), the two-second hold is a cancellable beat rather than a dropped timer, unwinding a sequence that never opened a card no longer starts a login to cancel it, and the key field regains focus-on-open.
This commit is contained in:
Tonio authored and GitHub committed 2026-09-04 17:48:16 -07:00
1 parent 4b0e324c63
commit f2349990cc
16 files changed
+1939 -723

No files matched your search

+28
View File
@@ -0,0 +1,28 @@
<!DOCTYPE html>
<html lang="en" class="dark" style="color-scheme: dark">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
<meta name="theme-color" content="#18181b" />
<title>Connect step — the real wizard</title>
<link rel="icon" href="/favicon.svg" type="image/svg+xml" />
<style>
/*
Unlayered, for the same reason `connect-model-preview.html` carries the
same rule: index.css pins `html, body` to viewport height with
`overflow: hidden` inside @layer base, which is right for the app shell
and clips this page's footer out of reach on a short window.
*/
html,
body {
height: auto;
min-height: 100%;
overflow-y: auto;
}
</style>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/wizard-preview-main.tsx"></script>
</body>
</html>