{% comment %}
The typeahead's results. Each row POSTs the tag it names; the "create" row POSTs
a name instead, and only appears when the term matches nothing AND the caller
holds manage_crm — creating a tag changes the workspace's vocabulary, while
attaching an existing one does not (SPEC §4's edit_contact_fields vs manage_crm).
{% endcomment %}
{% for tag in suggestions %}
{% endfor %}
{% if can_create %}
{% comment %}
hx-vals rather than hx-include: the search box is named `q` because that is
what the suggestion GET reads, and including it would post `q` where the add
endpoint expects `name`. escapejs is what makes the term safe inside a JSON
attribute — it escapes quotes and angle brackets to \uXXXX, so a tag called
`">