{# Flowbite-style selectable radio cards with optional title/description/icon/image #}
{% for opt in field.get_options() %}
{% if opt is mapping %}
{% set value = opt.value if opt.value is defined else opt['value'] %}
{% set title = opt.title if opt.title is defined else (opt.label if opt.label is defined else value) %}
{% set description = opt.description if opt.description is defined else (opt.desc if opt.desc is defined else None) %}
{% set icon = opt.icon if opt.icon is defined else None %}
{% set image = opt.image if opt.image is defined else None %}
{% elif opt is iterable and opt|length > 1 %}
{% set value = opt[0] %}
{% set title = opt[1] %}
{% set description = opt[2] if opt|length > 2 else None %}
{% set icon = None %}
{% set image = None %}
{% else %}
{% set value = opt %}
{% set title = opt %}
{% set description = None %}
{% set icon = None %}
{% set image = None %}
{% endif %}
{% set input_id = field.get_key() ~ "-" ~ loop.index0 %}
{# `group` on
lets us use group-has-[input:checked] on any descendant,
bypassing the peer-sibling limitation of `peer-checked:`. #}