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
}
}