{# We redefine <html/> for "basic/layout.html" to add a default `data-theme` attribute when
 # a default mode has been set. This also improves compatibility when JavaScript is disabled.
 #}
{% set html_tag %}
<html{% if not html5_doctype %} xmlns="http://www.w3.org/1999/xhtml"{% endif %}{% if language is not none %} lang="{{ language }}"{% endif %} {% if default_mode %}data-theme="{{ default_mode }}"{% endif %}>
{% endset %}
{%- extends "basic/layout.html" %}
{%- import "static/webpack-macros.html" as _webpack with context %}
{# Metadata and asset linking #}
{# Create the sidebar links HTML here to re-use in a few places #}
{# If we have no sidebar links, pop the links component from the sidebar list #}
{%- set sidebar_nav_html = generate_toctree_html("sidebar",
startdepth=0|int,
show_nav_level=theme_show_nav_level|int,
maxdepth=theme_navigation_depth|int,
collapse=theme_collapse_navigation|tobool,
includehidden=True,
titles_only=True)
-%}
{% if sidebar_nav_html | length == 0 %}
  {% set sidebars = sidebars | reject("in", "sidebar-nav-bs.html") | list %}
{% endif %}
{# A flag for whether we include a secondary sidebar based on the page metadata #}
{% set remove_sidebar_secondary = (meta is defined and meta is not none
and 'html_theme.sidebar_secondary.remove' in meta)
or not theme_secondary_sidebar_items %}
{%- block css %}
  {# The data-cfasync attribute disables CloudFlare's Rocket loader so that #}
  {# mode/theme are correctly set before the browser renders the page. #}
  {# https://github.com/pydata/pydata-sphinx-theme/pull/1045 #}
  <script type="module" src="https://static.cloud.coveo.com/atomic/v2/atomic.esm.js"></script>
  <script data-cfasync="false">
    // document.documentElement.dataset.mode = localStorage.getItem("mode") || "{{ default_mode }}";
    document.documentElement.dataset.mode = localStorage.getItem("mode") || "light";
    document.documentElement.dataset.theme = localStorage.getItem("theme") || "light";
  </script>
  {{ _webpack.head_pre_assets() }}
  {{ _webpack.head_pre_icons() }}
  {{- css() }}
  {{ _webpack.head_js_preload() }}
{%- endblock css %}
{%- block extrahead %}
  <meta name="viewport" content="width=device-width, initial-scale=1"/>
  <meta name="docsearch:language" content="{{ language }}"/>
  {%- if last_updated %}
    <meta name="docbuild:last-update" content="{{ last_updated | e }}"/>
  {%- endif %}
{%- endblock extrahead %}
{% block body_tag %}
  {# set up with scrollspy to update the toc as we scroll #}
  {# ref: https://getbootstrap.com/docs/4.0/components/scrollspy/ #}
  <body data-bs-spy="scroll" data-bs-target=".bd-toc-nav" data-offset="180" data-bs-root-margin="0px 0px -60%" data-default-mode="{{ default_mode }}">

  {# A button hidden by default to help assistive devices quickly jump to main content #}
  {# ref: https://www.youtube.com/watch?v=VUR0I5mqq7I #}
  <a class="skip-link" href="#main-content">{{ _("Skip to main content") }}</a>

{%- endblock %}

{%- block content %}
  {# A tiny helper pixel to detect if we've scrolled #}
  <div id="pst-scroll-pixel-helper"></div>

  {# the scroll to top button #}
  <button type="button" class="btn rounded-pill" id="pst-back-to-top">
    <i class="fa-solid fa-arrow-up"></i>
    {{ _("Back to top") }}
  </button>

  {# checkbox to toggle primary sidebar #}
  <input type="checkbox"
          class="sidebar-toggle"
          name="__primary"
          id="__primary"/>
  <label class="overlay overlay-primary" for="__primary"></label>
  {# Checkboxes to toggle the secondary sidebar #}
  <input type="checkbox"
          class="sidebar-toggle"
          name="__secondary"
          id="__secondary"/>
  <label class="overlay overlay-secondary" for="__secondary"></label>
  {# A search field pop-up that will only show when the search button is clicked #}
  <div class="search-button__wrapper">
    <div class="search-button__overlay"></div>
    <div class="search-button__search-container">{% include "../components/search-field.html" %}</div>
  </div>
  {%- if theme_announcement -%}
    {% include "sections/announcement.html" %}
  {%- endif %}
  {% block docs_navbar %}
    <nav class="bd-header navbar navbar-expand-lg bd-navbar">
      {%- include "sections/header.html" %}
    </nav>
  {% endblock docs_navbar %}
  <div class="bd-container">
    <div class="bd-container__inner bd-page-width">
      {# Primary sidebar #}
      <div id="bd-sidebar" class="bd-sidebar-primary bd-sidebar{% if not sidebars %} hide-on-wide{% endif %}">
        {% include "sections/sidebar-primary.html" %}
      </div>
      {# Using an ID here so that the skip-link works #}
      <div id="bd-resizer"></div>
      <main class="bd-main">
        {# Main content area #}
        {% block docs_main %}
          <div class="bd-content">
            <div class="bd-article-container">
              {# Article header #}
              <div class="bd-header-article">{% include "sections/header-article.html" %}</div>
              {# Article content #}
              {% block docs_body %}
              {# This is empty and only shows up if text has been highlighted by the URL #}
                {% include "components/searchbox.html" %}
                <article class="bd-article" role="main">
                  {% block body %}{% endblock %}
                </article>
              {% endblock docs_body %}
              {# Article Footer #}
              {% if theme_article_footer_items %}
                <footer class="bd-footer-article">
                  {% include "sections/footer-article.html" %}
                </footer>
              {% endif %}
              {# prev-next buttons #}
              {% if theme_show_prev_next %}
                <footer class="prev-next-footer">
                  {% include "components/prev-next.html" %}
                </footer>
              {% endif %}
            </div>
            {# Secondary sidebar #}
            {% block docs_toc %}
              {% if not remove_sidebar_secondary %}
                <div class="bd-sidebar-secondary bd-toc">{% include "sections/sidebar-secondary.html" %}</div>
              {% endif %}
            {% endblock docs_toc %}
          </div>
          <footer class="bd-footer-content">
            {% include "sections/footer-content.html" %}
          </footer>
        {% endblock docs_main %}
      </main>
    </div>
  </div>
  {# Scripts placed at the end of the page to cut down on time to first content #}
  {%- block scripts_end %}{{ _webpack.body_post() }}{%- endblock scripts_end %}
{%- endblock content %}
{# Footer #}
{%- block footer %}
    {%- include "footer.html" %}
{%- endblock footer %}
{# Silence the sidebars and relbars since we define our own #}
{% block header %}{% endblock %}
{% block relbar1 %}{% endblock %}
{% block relbar2 %}{% endblock %}
{% block sidebarsourcelink %}{% endblock %}
