| import { type EventTarget, TerminalEvent } from './terminal-event.js' | |
| /** | |
| * Focus event for component focus changes. | |
| * | |
| * Dispatched when focus moves between elements. 'focus' fires on the | |
| * newly focused element, 'blur' fires on the previously focused one. | |
| * Both bubble, matching react-dom's use of focusin/focusout semantics | |
| * so parent components can observe descendant focus changes. | |
| */ | |
| export class FocusEvent extends TerminalEvent { | |
| readonly relatedTarget: EventTarget | null | |
| constructor( | |
| type: 'focus' | 'blur', | |
| relatedTarget: EventTarget | null = null, | |
| ) { | |
| super(type, { bubbles: true, cancelable: false }) | |
| this.relatedTarget = relatedTarget | |
| } | |
| } | |