{% from "nhsuk/components/card/macro.njk" import card %}
{% from "nhsuk/macros/icon.njk" import nhsukIcon %}

{#- Set icon or (deprecated) type for this component #}
{%- set icon = "cross" if (params.icon or params.type) == "cross" else "tick" %}
{%- set items = params.items | select("mapping") if params.items | length else [] %}

{%- macro _listItem(params, data, icon) %}
  {% set item = {
    text: data.item if data.item is string,
    html: data.item if data.item is escaped
  } if data.item else data -%}

  {{ nhsukIcon(icon) | trim }}
  {% if not params.hidePrefix and (params.prefixText or icon == "cross") %}
    {{- (params.prefixText if params.prefixText else "do not") ~ " " -}}
  {% endif %}
  {{- item.html | safe | trim | indent(4) if item.html else item.text }}
{% endmacro -%}

{% set listHtml %}
<ul class="nhsuk-list nhsuk-list--{{ icon }}" role="list">
{% for data in items %}
  <li>
    {{ _listItem(params, data, icon) | trim | indent(4) }}
  </li>
{% endfor %}
</ul>
{% endset -%}

{{ card({
  id: params.id,
  heading: params.title,
  headingLevel: params.headingLevel if params.headingLevel else 3,
  descriptionHtml: listHtml,
  classes: params.classes,
  attributes: params.attributes,
  variant: "feature"
}) | trim }}
