{# Image widget — Char-backed. Accepts either an external URL or an uploaded ir.attachment (the upload returns a download URL we store in the same column). The Alpine component `pvImageWidget` mediates between the visible preview, the file picker, and the URL input. #} {% if readonly %}
{% if value %} {% else %}
no image
{% endif %}
{% else %}
{# type=text (not url): uploads store relative paths like /api/attachment/…/download #}

{# Hidden mirror of `url` — this is what the form submits. #}
{% endif %}