It is sounds possible by creating a visualization plugin, though it's important to point out that our plugin API is in a constant state of development and has recently gone through some big changes. We have documentation that is being worked on, and that you can follow here https://github.com/elastic/kibana/pull/12755/files until it is officially checked in.
We are also currently working on making it even easier to create simple dashboard embeddable panels, which might be a good use case for a simple button that when clicked, opens up a pop up. It's a work in progress though, and even more unstable at the moment than creating a new visualization plugin, with no documentation at the moment.