{{- /*
  Renders an image or video from a front matter map.

  Usage:
    {{ partial "media.html" (dict "media" .Params.banner "class" "w-full h-full object-cover") }}

  Parameters:
    media  — map with keys: type (image|video), src, alt
    class  — CSS classes applied to the img/video element
    lazy   — set to false to disable lazy loading (default true)
*/ -}}

{{- $media := .media -}}
{{- $class := .class | default "" -}}
{{- $lazy  := .lazy  | default true -}}

{{- with $media -}}
  {{- if eq .type "video" -}}
  <video
    class="{{ $class }}"
    src="{{ .src }}"
    autoplay
    loop
    muted
    playsinline
    {{- with .alt }} aria-label="{{ . }}"{{ end }}
  ></video>
  {{- else -}}
  <img
    class="{{ $class }}"
    src="{{ .src }}"
    alt="{{ .alt | default "" }}"
    {{- if $lazy }} loading="lazy" decoding="async"{{ end }}
  >
  {{- end -}}
{{- end -}}
