// ModeTrioIntro โ€” landing-and-mode-orchestration-redesign decision 9. // // Educational, NON-CLICKABLE three-card row on HomePage middle band. Each // card shows: title, what-it's-for description, ONE fixed example query, // and a quota badge. On viewport < 768 px the cards stack vertically. // // Cards intentionally have no cursor:pointer / hover navigation โ€” per // design decision 9 they only set user expectations before they enter // QueryPage. const ModeTrioIntro = ({ lang }) => { const t = lang === 'zh'; const { isMobile } = useViewport(); const cards = [ { key: 'index', icon: '๐Ÿ”Ž', titleKey: 'mode_card_index_title', descKey: 'mode_card_index_desc', exampleKey: 'mode_card_index_example', quotaKey: 'mode_card_index_quota', quotaVariant: 'success', }, { key: 'semantic', icon: '๐Ÿงญ', titleKey: 'mode_card_semantic_title', descKey: 'mode_card_semantic_desc', exampleKey: 'mode_card_semantic_example', quotaKey: 'mode_card_semantic_quota', quotaVariant: 'success', }, { key: 'chat', icon: '๐Ÿ’ฌ', titleKey: 'mode_card_chat_title', descKey: 'mode_card_chat_desc', exampleKey: 'mode_card_chat_example', quotaKey: 'mode_card_chat_quota', quotaVariant: 'warning', }, ]; return (

{t ? 'ไธ‰็จฎๆ‰พ็ญ”ๆกˆ็š„ๆ–นๅผ' : 'Three ways to find answers'}

{t ? 'ไพๅ•้กŒ้กžๅž‹ๆŒ‘ๆจกๅผ๏ผŒๆญ้…ไฝฟ็”จๆ•ˆ็އๆœ€้ซ˜ใ€‚' : 'Pick the mode that fits your question โ€” they compose well.'}

{cards.map(c => (
{c.icon} {uiString(c.titleKey, lang)} {uiString(c.quotaKey, lang)}

{uiString(c.descKey, lang)}

{uiString(c.exampleKey, lang)}
))}
); }; Object.assign(window, { ModeTrioIntro });