const { useState, useEffect } = React; const { Badge, StatPill } = window.SpecComponents; const SplitView = ({ functionalities }) => { const [selected, setSelected] = useState(functionalities[0]?.id ?? null); useEffect(() => { if (!selected && functionalities.length) { setSelected(functionalities[0].id); } }, [functionalities, selected]); const selectedFunc = functionalities.find(f => f.id === selected); if (!selectedFunc) { return (
No functionality data available.
); } return (

Functionalities

{functionalities.map(func => { const req = func.requirements.filter(r => r.level === "required").length; const rec = func.requirements.filter(r => r.level === "recommended").length; const isActive = selected === func.id; const total = req + rec || 1; return ( ); })}
{selectedFunc.icon}

{selectedFunc.name}

{selectedFunc.description}

r.level === "required").length} rec={selectedFunc.requirements.filter(r => r.level === "recommended").length} />
{["required", "recommended"].map(level => { const group = selectedFunc.requirements.filter(r => r.level === level); if (!group.length) return null; return (
{level === "required" ? "● Required" : "◆ Recommended"}
{group.map(req => (
{req.id}

{req.title}

{req.detail}

))}
); })}
); }; window.SpecComponents = window.SpecComponents || {}; window.SpecComponents.SplitView = SplitView;