'use client'; import { useState } from 'react'; import type { UITheme } from '@/lib/types'; interface HudHeaderProps { enabled: boolean; onToggle: () => void; uiTheme: UITheme; onUiThemeChange: (theme: UITheme) => void; onConfigureUISounds: () => void; masterVolume: number; onVolumeChange: (v: number) => void; } const UI_THEMES: { value: UITheme; label: string }[] = [ { value: 'sc2', label: 'SC2' }, { value: 'wc3', label: 'WC3' }, { value: 'ff7', label: 'FF7' }, { value: 'ff9', label: 'FF9' }, { value: 'off', label: 'OFF' }, ]; export function HudHeader({ enabled, onToggle, uiTheme, onUiThemeChange, onConfigureUISounds, masterVolume, onVolumeChange }: HudHeaderProps) { const [showDropdown, setShowDropdown] = useState(false); const activeLabel = UI_THEMES.find((t) => t.value === uiTheme)?.label ?? uiTheme.toUpperCase(); return (

AGENTCRAFT

v0.0.3
AUDIO ASSIGNMENT TERMINAL
{/* UI sound theme dropdown */}
UI SFX
{/* Click-away overlay */} {showDropdown && (
setShowDropdown(false)} /> )} {/* Trigger */} {/* Dropdown */} {showDropdown && (
{UI_THEMES.map((t, i) => ( ))}
)}
{/* Configure gear */}
{/* Master volume */}
VOL onVolumeChange(Number(e.target.value) / 100)} data-no-ui-sound className="w-16" style={{ cursor: 'pointer', accentColor: 'var(--sf-cyan)', verticalAlign: 'middle' }} /> {Math.round(masterVolume * 100)}%
{/* Master enable/disable */}
); }