import React from 'react';
import { UserPlus, UserCheck, Table2 } from 'lucide-react';
import AuthBadge from './AuthBadge';
import ParticipantDropdown from './ParticipantDropdown';
import DownloadMenu from './DownloadMenu';
import DevMenu from './DevMenu';
import HeaderMoreMenu from './HeaderMoreMenu';
function HumanParticipantButton({ humanParticipant, onOpenHumanModal, className }) {
return (
);
}
function TableViewButton({ hasChat, onShowTableView, className }) {
return (
);
}
/**
* Header bar: brand on the left; on the right, auth badge, participant
* dropdown, downloads dropdown, settings (gear) dropdown.
*
* The standalone Sun/Moon theme toggle that used to live here has moved
* inside the DevMenu (Theme is the top item in the settings panel).
*
* NOTE: every prop that goes to DevMenu is forwarded *explicitly* below
* (no `...devProps` rest spread). The previous spread pattern hid the
* `maxParticipants` value because Header destructured it for its own
* use, which silently stripped it from the spread that fed DevMenu;
* the Max Participants stepper then received `undefined` and produced
* NaN on every click, which manifested as "the +/- buttons do nothing".
*/
export default function Header({
theme,
onToggleTheme,
auth,
catalog,
expertPersonas,
selectedIds,
maxParticipants,
onToggleParticipant,
onOpenExpertModal,
autoSelectMode,
onToggleAutoSelectMode,
humanParticipant,
onOpenHumanModal,
// Models / display
allModels,
orchestratorModel,
onOrchestratorChange,
summarizerModel,
onSummarizerChange,
speedPriority,
onSpeedPriorityChange,
conversationFormats,
conversationStructureId,
onConversationStructureChange,
decisionMethodId,
onDecisionMethodChange,
showResponseTime,
onShowResponseTimeChange,
showChatStats,
onShowChatStatsChange,
onMaxParticipantsChange,
participants,
modelAssignments,
onModelAssignmentChange,
// Modals / transparency
onShowTableView,
onShowCredentials,
hasCredentials,
onShowPromptCatalog,
onShowConversationLimits,
conversationLimitsOverridden,
// Downloads
onDownloadChatTxt,
onDownloadChatMd,
onDownloadCsvTable,
onDownloadApiLog,
hasApiLog,
hasChat,
}) {
return (
Neon.ai
- Collaborative Conversational AI (CCAI) Demo