{% extends "!layout.html" %}
{% block document %}
  {% if is_release %}
    <div class="wy-alert wy-alert-danger">
      The <a href="/latest/{{ pagename }}.html">latest development version</a>
      of this page may be more current than this released {{ version }} version.
    </div>
  {% else %}
    <div class="wy-alert wy-alert-danger">
     This is the documentation for the latest (main) development branch of
     Zephyr. If you are looking for the documentation of previous releases, use
     the drop-down menu on the left and select the desired version.
    </div>
  {% endif %}
  {{ super() }}
{% endblock %}
{% block menu %}
  {% include "zversions.html" %}
  {{ super() }}
  {% if reference_links %}
  <div class="toctree-wrapper compound">
    <p class="caption"><span class="caption-text">Reference</span></p>
    <ul>
      {% for title, url in reference_links.items() %}
      <li class="toctree-l1">
        <a class="reference internal" href="{{ url }}">{{ title }}</a>
      </li>
      {% endfor %}
    </ul>
  </div>
  {% endif %}
{% endblock %}
{% block extrahead %}
  <meta name="color-scheme" content="dark light">
  {# Light/Dark stylesheets added here due to https://github.com/readthedocs/sphinx_rtd_theme/issues/1100 #}
  <link rel="stylesheet" href="{{ pathto('_static/css/light.css', 1) }}" type="text/css" media="(prefers-color-scheme: light)"/>
  <link rel="stylesheet" href="{{ pathto('_static/css/dark.css', 1) }}" type="text/css" media="(prefers-color-scheme: dark)"/>
{% endblock %}
