/* FreeToolzHub — All Tools browse with category filter + search */ function ToolsBrowse({ go, initialCat }) { const { ToolCard, Icon, Badge, Input } = window.DesignSystem_3a7ab0; const { TOOLS, CATS } = window.FTH; const [cat, setCat] = React.useState(initialCat || 'all'); const [q, setQ] = React.useState(''); React.useEffect(() => { setCat(initialCat || 'all'); }, [initialCat]); let list = TOOLS.filter(t => cat==='all' || t.cat===cat); if (q) list = list.filter(t => (t.title+' '+t.desc+' '+t.cat).toLowerCase().includes(q.toLowerCase())); const chips = [{ id:'all', label:'All Tools', icon:'grid-2x2' }, ...CATS]; return (
{/* breadcrumb */}
go('/')} style={{ cursor:'pointer', color:'var(--text-link)', fontWeight:600 }}>Home All Tools

All tools

Browse every tool. Functional tools are ready now; the rest are on the way.

setQ(e.target.value)} />
{/* category chips */}
{chips.map(c => { const on = c.id===cat; const n = c.id==='all' ? TOOLS.length : TOOLS.filter(t=>t.cat===c.id).length; return ( ); })}
{/* grid */} {list.length ? (
{list.map(t => (
go('/tool/'+t.id)} />
))}
) : (
No tools match “{q}”. Try another keyword.
)}
); } window.FTHToolsBrowse = ToolsBrowse;