{
const target = event.target as HTMLElement | null;
const shouldCapture =
isLanguageMenuOpen || Boolean(target?.closest("[data-hud-interactive='true']"));
setHudMouseEventsEnabled(shouldCapture);
}}
onPointerLeave={() => {
if (!isLanguageMenuOpen) {
setHudMouseEventsEnabled(false);
}
}}
>
{systemLocaleSuggestion && (
{t("systemLanguagePrompt.title")}
{t("systemLanguagePrompt.description", {
language: suggestedLanguageName,
})}
)}
{/* Device selectors — fixed above HUD bar, viewport-relative, never clipped */}
{(showMicControls || showWebcamControls) && (
{/* Mic selector */}
{showMicControls && (
setIsMicHovered(true)}
onMouseLeave={() => setIsMicHovered(false)}
onFocus={() => setIsMicFocused(true)}
onBlur={() => setIsMicFocused(false)}
style={{ width: micExpanded ? "240px" : "140px", transition: "width 300ms ease" }}
>
{!micExpanded && (
{selectedMicLabel}
)}
{micExpanded && (
)}
)}
{/* Webcam selector */}
{showWebcamControls && (
setIsWebcamHovered(true)}
onMouseLeave={() => setIsWebcamHovered(false)}
onFocus={() => setIsWebcamFocused(true)}
onBlur={() => setIsWebcamFocused(false)}
style={{ width: webcamExpanded ? "240px" : "140px", transition: "width 300ms ease" }}
>
{!webcamExpanded && (
{selectedCameraLabel}
)}
{webcamExpanded &&
(isCameraDevicesLoading ? (
{t("webcam.searching")}
) : cameraDevicesError ? (
{t("webcam.unavailable")}
) : cameraDevices.length === 0 ? (
{t("webcam.noneFound")}
) : (
<>
>
))}
{(!webcamExpanded || cameraDevices.length === 0) && (
)}
)}
)}
{/* HUD bar — fixed at bottom center, viewport-relative, never moves */}
setHudMouseEventsEnabled(true)}
onPointerDown={() => setHudMouseEventsEnabled(true)}
onMouseEnter={() => setHudMouseEventsEnabled(true)}
onMouseLeave={() => {
if (!isLanguageMenuOpen) {
setHudMouseEventsEnabled(false);
}
}}
>
{/* Drag handle */}
{getIcon("drag", "text-white/30")}
{/* Source selector */}
{/* Audio controls group */}
{supportsCursorModeToggle && (
)}
{/* Record/Stop group */}
{recording && (
{canPauseRecording && (
)}
)}
{!recording && (
<>
{/* Open video file */}
{/* Open project */}
>
)}
{/* Right sidebar controls */}
{isLanguageMenuOpen
? createPortal(
event.stopPropagation()}
onPointerEnter={() => setHudMouseEventsEnabled(true)}
onPointerMove={() => setHudMouseEventsEnabled(true)}
onWheel={(event) => {
setHudMouseEventsEnabled(true);
event.stopPropagation();
}}
>
{availableLocales.map((loc) => (
))}
,
document.body,
)
: null}
{/* Window controls */}