=head2 validated_block

  $bytestream = $c->validated_block($name => %args, $code);

Example:

  %= validated_block email_address => begin
    %= input_field 'email_address';
  % end
  %= validated_block email_address => class => 'email-address', begin
    %= input_field 'email_address';
  % end
  %= validated_block email_address => tag => 'div', begin
    %= input_field 'email_address';
  % end

Default C<tag> is "p", not "div".

"class" will have "error" as well as any given C<class> if L</validate> found
an error.

"title" will have the error message ifL</validate> found any error.

=cut

sub validated_block {
  my $block = pop;
  my($c, $name, %args) = @_;
  my $errors = $c->stash('errors');
  my $is_validated = $errors ? 1 : 0;
  my $tag = delete $args{tag} || 'p';
  my @class;

  push @class, delete $args{class} if $args{class};
  push @class, 'error' if $errors->{$name};
  $args{class} = "@class";
  $args{title} = $errors->{$name} if $errors->{$name};

  $c->tag($tag, %args, $block);
}