This is great. This is something I was tinkering with a while back (Filterable Dataview Table / Change Work Mode / Filter Note List), but js is above my pay grade. Your implementation is MUCH better.
I notice that the filters are persistent through note closings and even Obsidian restarts. How long will it stay filtered?
Actually, I think I found a bug; after testing the Obsidian restart, I am no longer able to click the buttons. Just nothing happens when I click.