fix(dialog): cancel instead of hiding when user escapes/clicks out