Problem
We have not systematically verified Escape-key behaviour across the app's popups. Two requirements:
- Every popup/modal closes on ESC — SGDS
Modals generally do this via onHide, but some of ours may not wire onHide, or use static backdrops, or are custom panels (not SGDS Modal) with no key handling at all.
- Nested popups: ESC closes only the topmost layer — e.g. NodeDetails in monitor mode is itself a modal; from it you can open EntityDetailModal (nested IP drill-down), the evidence-model explainer modal, or AdjudicationPanel's add-evidence modal (
tp-nested-modal + raised z-index). Pressing ESC there must dismiss just that top layer, not the whole stack.
Known nesting surfaces to check
NodeDetails (modal-in-modal in monitor mode) → nested EntityDetailModal (nestedIp)
NodeDetails → evidence-model explainer Modal (evidenceInfoOpen, tp-nested-modal)
AdjudicationPanel → add-evidence Modal (raised zIndex prop for monitor mode)
EntityDetailModal sections that spawn further modals
- Any non-SGDS custom popups (search for
role="dialog", fixed-position panels)
Acceptance criteria
Why deferred
NodeDetails.tsx is mid-refactor (classification-axes evidence redesign); doing the ESC audit concurrently would conflict. Pick this up after that lands.
Problem
We have not systematically verified Escape-key behaviour across the app's popups. Two requirements:
Modals generally do this viaonHide, but some of ours may not wireonHide, or usestaticbackdrops, or are custom panels (not SGDS Modal) with no key handling at all.tp-nested-modal+ raised z-index). Pressing ESC there must dismiss just that top layer, not the whole stack.Known nesting surfaces to check
NodeDetails(modal-in-modal in monitor mode) → nestedEntityDetailModal(nestedIp)NodeDetails→ evidence-model explainerModal(evidenceInfoOpen,tp-nested-modal)AdjudicationPanel→ add-evidenceModal(raisedzIndexprop for monitor mode)EntityDetailModalsections that spawn further modalsrole="dialog", fixed-position panels)Acceptance criteria
Why deferred
NodeDetails.tsxis mid-refactor (classification-axes evidence redesign); doing the ESC audit concurrently would conflict. Pick this up after that lands.