enhance(sidenav): add promise API for .when()

Fixes #974.