+ {# .input-group-prepend must be first child for Bootstrap styling to work #}
+
+ {% if label_display in ['before', 'invisible'] %}
+ {{ label }}
+ {% endif %}
+ {% if prefix is not empty %}
+
{{ prefix }}
+ {% endif %}
+ {% if description_display == 'before' and description.content %}
+
+ {{ description.content }}
+
+ {% endif %}
+ {{ children }}
+ {% if suffix is not empty %}
+
{{ suffix }}
+ {% endif %}
+ {% if label_display == 'after' %}
+ {{ label }}
+ {% endif %}
+ {% if errors %}
+
+ {{ errors }}
+
+ {% endif %}
+ {% if description_display in ['after', 'invisible'] and description.content %}
+
+ {{ description.content }}
+
+ {% endif %}
+
diff --git a/web/profiles/custom/os2loop/themes/os2loop_theme/templates/form/input--textfield.html.twig b/web/profiles/custom/os2loop/themes/os2loop_theme/templates/form/input--textfield.html.twig
new file mode 100644
index 000000000..8dd77af18
--- /dev/null
+++ b/web/profiles/custom/os2loop/themes/os2loop_theme/templates/form/input--textfield.html.twig
@@ -0,0 +1,18 @@
+{#
+/**
+ * @file
+ * Theme override for an 'input' #type form element.
+ *
+ * Available variables:
+ * - attributes: A list of HTML attributes for the input element.
+ * - children: Optional additional rendered elements.
+ *
+ * @see template_preprocess_input()
+ */
+#}
+
+{# Apparently using hook_form_alter to set the input type to "search" breaks autocompleting #}
+{% if 'search_api_autocomplete' == element['#type'] %}
+ {% set attributes = attributes.removeClass('form-text').setAttribute('type', 'search') %}
+{% endif %}
+