{% set has_error = field.vars.errors|length > 0 %}
{% set field_attrs = {
'class': 'input-field__control' ~ (select|default(false) ? ' auth-field__select' : ''),
'placeholder': placeholder|default(''),
'autocomplete': autocomplete|default('off')
} %}
{% if password|default(false) %}
{% set field_attrs = field_attrs|merge({'data-password-input': 'true'}) %}
{% endif %}
<label class="auth-field" for="{{ field.vars.id }}">
<span class="input-field input-field--compact{% if has_error %} input-field--error{% endif %}">
{% if icon is defined %}
{% set icon_id = icon == 'city' ? 'location-icon' : icon ~ '-icon' %}
<span class="input-field__icon" aria-hidden="true">
<svg class="icon20"><use href="#{{ icon_id }}"></use></svg>
</span>
{% endif %}
{{ form_widget(field, {'attr': field_attrs}) }}
{% if password|default(false) %}
<button class="input-field__password-toggle" type="button" data-password-toggle aria-label="Показать пароль" aria-pressed="false">
<svg class="icon20 input-field__password-icon input-field__password-icon--hidden" aria-hidden="true"><use href="#hide-icon"></use></svg>
<svg class="icon20 input-field__password-icon input-field__password-icon--shown" aria-hidden="true"><use href="#show-icon"></use></svg>
</button>
{% elseif select|default(false) %}
<span class="input-field__icon" aria-hidden="true">
<svg class="icon20"><use href="#chevron-1-icon"></use></svg>
</span>
{% endif %}
</span>
{% if has_error %}
<span class="form-error">{{ field.vars.errors|map(error => error.message)|join(' ') }}</span>
{% endif %}
</label>