{% macro textbox(
  field,
  label=None,
  hint=False,
  highlight_tags=False,
  autofocus=False,
  help_link=None,
  help_link_text=None,
  width='2-3',
  suffix=None,
  safe_error_message=False,
  rows=8
) %}
  <div class="form-group{% if field.errors %} error{% endif %}" {% if autofocus %}data-module="autofocus"{% endif %}>
    <label class="form-label" for="{{ field.name }}">
      {% if label %}
        {{ label }}
      {% else %}
        {{ field.label.text }}
      {% endif %}
      {% if hint %}
        <span class="form-hint">
          {{ hint }}
        </span>
      {% endif %}
      {% if field.errors %}
        <span class="error-message">
          {% if not safe_error_message %}{{ field.errors[0] }}{% else %}{{ field.errors[0]|safe }}{% endif %}
        </span>
      {% endif %}
    </label>
    {{ field(**{
      'class':
        'form-control form-control-{} textbox-highlight-textbox'.format(width) if highlight_tags else
        'form-control form-control-{} {}'.format(width, 'textbox-right-aligned' if suffix else ''),
      'data-module': 'highlight-tags' if highlight_tags else '',
      'rows': rows|string
    }) }}
    {% if suffix %}
      <span>{{ suffix }}</span>
    {% endif %}
    {% if help_link and help_link_text %}
      <p class="textbox-help-link">
        <a href='{{ help_link }}'>{{ help_link_text }}</a>
      </p>
    {% endif %}
  </div>
{% endmacro %}
