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. |
||
|---|---|---|
| .. | ||
| app | ||
| components | ||
| hooks | ||
| lib | ||
| types | ||
| instrumentation.ts | ||