One stack per widget. Each module opens and closes its own panel; what none
of them can know is what else is open. The stack knows: Escape closes only
the newest thing, Tab stays inside it, a press outside closes a popover but
not a dialog, and focus goes back where it came from.
One stack per widget. Each module opens and closes its own panel; what none of them can know is what else is open. The stack knows: Escape closes only the newest thing, Tab stays inside it, a press outside closes a popover but not a dialog, and focus goes back where it came from.