{% set base_input_classes = 'shadow-sm focus:ring-blue-500/75 focus:border-blue-500/75 block w-full sm:text-sm border-gray-300 rounded-md' %} {% set read_only_classes = 'bg-gray-50 text-gray-600 cursor-not-allowed' %} {% macro form_help(form_field) %}

{{ form_field.description }}

{% endmacro %} {% macro form_label(form_field, class='') %} {% endmacro %} {% macro form_errors(form_field) %} {% if form_field.errors %} {% endif %} {% endmacro %} {% macro render_form_field(field, form_field) %} {% include field.form_field_template %} {% if field.description %} {{ form_help(field) }} {% endif %} {% if field.errors %} {{ form_errors(field) }} {% endif %} {% endmacro %} {% macro render_form_label(field, class) %} {{ form_label(field, class) }} {% endmacro %} {% macro checkbox_input(form_field) %} {{ form_field.widget(form_field, class='focus:ring-blue-300/75 h-4 w-4 text-blue-600 border-gray-300 rounded') }} {% endmacro %} {% macro textarea_input(form_field) %}
{{ form_field.widget(form_field, class=base_input_classes) }}
{% endmacro %} {% macro select_input(form_field) %}
{{ form_field.widget(form_field, class=base_input_classes) }}
{% endmacro %} {% macro text_input(form_field) %} {% set attrs = form_field.render_kw.copy() %} {% do attrs.update(kwargs) %}
{{ form_field.widget(form_field, class=base_input_classes, **attrs) }}
{% endmacro %} {% macro form_input(form_field) %} {% set inputs = { 'BooleanField': checkbox_input, 'SelectField': select_input, 'SelectMultipleField': select_input, 'TextAreaField': textarea_input, } %} {{ inputs.get(form_field.type, text_input)(form_field) }} {% endmacro %} {% macro form_field(form_field) %} {{ form_label(form_field, class='mb-1') }} {{ form_input(form_field) }} {% if form_field.description %} {{ form_help(form_field) }} {% endif %} {% if form_field.errors %} {{ form_errors(form_field) }} {% endif %} {% endmacro %}