···5353- **Tabs**: Left/Right arrows
5454- **Dropdown**: Arrow keys, `Enter` to select, `Escape` to close
5555- **Menu**: Arrow keys, `Enter` to select
5656+5757+## Common Gotchas
5858+5959+### Router Components in Module-Level Constants
6060+6161+Router components (`<A>`, and hooks like `useNavigate`, `useParams`) must be created during component render, not at module initialization.
6262+6363+**Problem:**
6464+6565+```tsx
6666+// ✗ JSX created when module loads, before Router exists
6767+const config = {
6868+ action: <A href="/somewhere">Click me</A>
6969+}
7070+```
7171+7272+**Solution:**
7373+7474+```tsx
7575+// ✓ JSX created during render, inside Router context
7676+const getConfig = () => ({
7777+ action: () => <A href="/somewhere">Click me</A>
7878+})
7979+8080+const MyComponent = () => {
8181+ const config = getConfig();
8282+ return <div>{config.action()}</div>
8383+}
8484+```
8585+8686+**Why:** Module-level JSX executes immediately on import, before `<Router>` establishes its context. Router components need that context to function.
8787+8888+**Rule:** If storing JSX that contains router components, wrap it in a function to defer creation until render time.