execute method
Executes the builder function until an escape prompt is received.
Increases the FlowContext's depth and runs steps.
If closed the function will return it's given candidate or null.
Implementation
@override
FutureOr<Step?> execute(
final FlowController controller, [
FutureOr<Step?> candidate()?,
]) async {
await controller.createBubble(() => !leave ? builder() : null);
final none = () => null;
return (candidate ?? none)();
}