Is Cytoscape.js still the best free solution for DAGs with client-side events? I've also tried d3 with dagre but Cytoscape was a bit cleaner for me. But it's still enough of a struggle that I wonder if there's a newer alternative I'm missing.