You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
chore(website): delete the superseded nav exports and dead drawer CSS
The rebuilt navbar left three kinds of dead weight behind.
`NavDesktop.tsx` still exported `links` (the old flat link array) and
`trackNavLink` (the old per-label analytics helper). Both were kept alive
only for the mobile drawer, which now reads `NAV_TRIGGERS` and tracks
through `trackNavItem`. Nothing outside the file referenced either.
The dead CSS in `chrome.css` falls into two groups, and the split matters
when reading this diff:
Orphaned by this branch's drill-in rewrite (Task 8) —
`.nav-mtabs`, `.nav-mtab`, `.nav-mtab[data-active]`, `.nav-mobile-site-link`.
Already dead before this branch started, leftovers from an older drawer —
`.nav-msubtabs-wrap`, `.nav-msubtabs`, `.nav-msubtab`,
`.nav-msubtab[data-active]`, `.nav-mobile-content-list`,
`.nav-mobile-item`, `.nav-mobile-item[data-active]`,
`.nav-mobile-item--strong`, `.nav-mobile-demo-link`,
`.nav-mobile-section-toggle`, `.nav-mobile-chevron`,
`.nav-mobile-chevron[data-open]`, `.nav-mobile-search`,
`.nav-mobile-search:focus-visible`. Removing them is in scope — same
drawer's leftovers — but they are not fallout from the redesign.
Every class was re-verified unreferenced across `src/`, `e2e/`, the rest
of `src/styles/`, `src/app/global.css` and the style contracts before
deletion; none is built dynamically, and the drawer's live classes
(`.nav-mobile-list`, `-overlay`, `-row`, `-back`, `-panel`, `-group`,
`-github-link`, `-cta`, `-dialog-close`) are untouched.
Finally, drill-in focus is now symmetric. Pushing a level focuses its
"Back to menu" row through an explicit ref; popping fell through to
`focusable()[0]`, which is not a designed destination. Both pop paths —
the Back button and Escape — now route through `popToRoot`, which records
the originating trigger id so the per-level focus effect can land on that
row once root has re-rendered. The restore reads a ref map rather than
the focus-trap query on purpose: jsdom's multi-clause `querySelectorAll`
groups by clause instead of returning document order, so a test written
against `focusable()[0]` would assert the Pricing anchor where a browser
gives the row.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
0 commit comments