EscapeKeyListener

Primitive #10

🔍 Problem it solves

Users expect to press the Escape key to close modals, dropdowns, popovers, and toasts. Manually adding and removing keydown listeners everywhere leads to memory leaks and conflicts.

✅ Solution

A single, reusable Escape key listener that attaches to `document`, triggers a callback, and provides a simple cleanup function. SSR‑safe (no-op on server).

🧩 Used by components

Dialog, Dropdown, Popover, Modal, Toast, Tooltip, Combobox, Sheet

🎮 Interactive demo