.agents/skills/how-to-write-component/references/interactions.md
Read this document when a change involves application hotkeys, focus, dialogs, menus, popovers, or other secondary surfaces. Overlay primitive selection and layering are owned by the overlay guide.
focus-visible treatment. Follow an existing Dify UI pattern rather than inventing a call-site style.@tanstack/react-hotkeys for application commands; keep menu navigation, dialog Escape handling, editor behavior, and ARIA widget keys in their local primitive or owner.useHotkey or useHotkeys for registered commands. When an existing onKeyDown intentionally owns the command, use matchesKeyboardEvent rather than duplicating modifier parsing or adding another global listener.enabled, ignoreInputs, and target. Put a target ref on the actual behavior owner rather than creating wrapper DOM solely for hotkey scope.preventDefault and propagation behavior when migrating command APIs.web/docs/overlay.md for primitive choice. Dify UI primitives are the default, with package-approved Web wrappers such as Infotip where the overlay guide allows them.