// DialogBar — fixed bottom dialog. Question text + multiple-choice // buttons. Emits onAnswer({ optionIdx }). const { useState, useEffect } = React; window.DialogBar = function DialogBar({ question, qIndex, total, onAnswer, onBack, history, tone = 'serif-dark' }) { const [hovered, setHovered] = useState(null); const [selectedIdx, setSelectedIdx] = useState(null); useEffect(() => { setSelectedIdx(null); }, [question?.id]); if (!question) return null; const submit = (idx) => { onAnswer({ optionIdx: idx }); }; const handleSelect = (idx) => { setSelectedIdx(idx); setTimeout(() => submit(idx), 280); }; return (
{question.id}·Ring {question.ring + 1} / {window.TAXONOMY.rings[question.ring].label}
{String(qIndex + 1).padStart(2, '0')} / {String(total).padStart(2, '0')}
{question.text}
{question.hint &&
{question.hint}
}
{question.options.map((opt, i) => ( ))}
); };