Updates

Some updates

* Using `modal` to do all the showing and hiding
* Using only structural styles
* Allows for confirmation too (not sure this belongs here, but a dialog and a confirmation are so similar, they use almost all the same code and styles)