{{- $page := .context -}}

{{- $grow := .grow -}}
{{- $hideLabel := .hideLabel | default false -}}

{{- $changeLanguage := (T "changeLanguage") | default "Change language" -}}

{{- if site.IsMultiLingual -}}
  <div class="flex justify-items-start {{ if $grow }}grow{{ end }}">
    <button
      title="{{ $changeLanguage }}"
      data-state="closed"
      class="language-switcher h-7 rounded-md px-2 text-left text-xs font-medium text-gray-600 transition-colors dark:text-gray-400 hover:bg-gray-100 hover:text-gray-900 dark:hover:bg-primary-100/5 dark:hover:text-gray-50 grow"
      type="button"
      aria-label="{{ $changeLanguage }}"
    >
      <div class="flex items-center gap-2 capitalize">
        {{- partial "utils/icon" (dict "name" "globe-alt" "attributes" "height=12") -}}
        {{- if not $hideLabel }}<span>{{ site.Language.LanguageName }}</span>{{ end -}}
      </div>
    </button>
    <ul
      class="language-options hidden z-20 max-h-64 overflow-auto rounded-md ring-1 ring-black/5 bg-white py-1 text-sm shadow-lg dark:ring-white/20 dark:bg-neutral-800"
      style="position: fixed; inset: auto auto 0px 0px; margin: 0px; min-width: 100px;"
    >
      {{ range site.Languages }}
        {{ $link := partial "utils/lang-link" (dict "lang" .Lang "context" $page) }}
        <li class="flex flex-col">
          <a
            href="{{ $link }}"
            class="text-gray-800 dark:text-gray-100 hover:bg-primary-50 hover:text-primary-600 hover:dark:bg-primary-500/10 hover:dark:text-primary-600 relative cursor-pointer whitespace-nowrap py-1.5 transition-colors ltr:pl-3 ltr:pr-9 rtl:pr-3 rtl:pl-9"
          >
            {{- .LanguageName -}}
            {{- if eq .LanguageName site.Language.LanguageName -}}
              <span class="absolute inset-y-0 flex items-center ltr:right-3 rtl:left-3">
                {{- partial "utils/icon" (dict "name" "check" "attributes" "height=1em width=1em") -}}
              </span>
            {{- end -}}
          </a>
        </li>
      {{ end -}}
    </ul>
  </div>
{{- end -}}
