PticaDrawer: proper modal focus management — - focus-trap: Tab/Shift+Tab wrap inside the dialog (focusables re-queried per Tab so it survives lazy panels/sub-tabs), focus-already-outside pulled back in; - focus-restore: the trigger element is captured on open and re-focused on close (guards null + detached node); - onClose held in a ref so the effect depends on [open] only — fixes focus thrashing when the host's URL/searchParams change mid-open. Esc/scrim close, body-scroll-lock, role=dialog/aria-modal preserved. Cleanups (code-review follow-ups): - MassingScene: drop duplicate initial mass build (floors/sections effect owns it); corrected the effect-ordering comment. - Static inline styles → CSS-module classes (scan/gauge/score/spaced rows). - DrawerPrimitives: remove !important on .dtabActive via specificity (.dtabs button.dtabActive). - Remove unused SoonCard component + its CSS. tsc/lint/prettier clean; next build green (route bundled). ptica-only, no any. |
||
|---|---|---|
| .. | ||
| public | ||
| src | ||
| .dockerignore | ||
| .env.example | ||
| .eslintrc.json | ||
| Dockerfile | ||
| next-env.d.ts | ||
| next.config.ts | ||
| package-lock.json | ||
| package.json | ||
| sentry.client.config.ts | ||
| sentry.edge.config.ts | ||
| sentry.server.config.ts | ||
| tsconfig.json | ||
| vitest-env.d.ts | ||
| vitest.config.ts | ||
| vitest.setup.ts | ||