| 1 | export type TerminalFocusOwner = "drawer" | "right-panel"; |
| 2 | |
| 3 | export function getTerminalFocusOwner(): TerminalFocusOwner | null { |
| 4 | const activeElement = document.activeElement; |
| 5 | if (!(activeElement instanceof HTMLElement)) return null; |
| 6 | if (!activeElement.isConnected) return null; |
| 7 | const owner = activeElement.closest<HTMLElement>("[data-terminal-owner]")?.dataset.terminalOwner; |
| 8 | if (owner === "drawer" || owner === "right-panel") return owner; |
| 9 | return null; |
| 10 | } |
| 11 | |
| 12 | export function isTerminalFocused(): boolean { |
| 13 | return getTerminalFocusOwner() !== null; |
| 14 | } |