<!DOCTYPE html>
<html lang={Map.get(assigns, :locale, "en")} dir={language_direction(assigns)}>
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link rel="apple-touch-icon" href="/img/icons/apple-touch-icon-152x152.png" sizes="152x152" />
    <link rel="mask-icon" href="/img/icons/safari-pinned-tab.svg" color={theme_color()} />
    <link rel="manifest" href="/manifest.webmanifest" />
    <meta name="theme-color" content={theme_color()} />
    <script>
      if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
        document.documentElement.classList.add('dark')
      } else {
        document.documentElement.classList.remove('dark')
      }
    </script>
    <%= if is_root(assigns) do %>
      <link rel="preload" href="/img/shape-1.svg" as="image" />
      <link rel="preload" href="/img/shape-2.svg" as="image" />
      <link rel="preload" href="/img/shape-3.svg" as="image" />
    <% end %>
    <%= tags(assigns) || assigns.tags %>
    <%= Vite.vite_client() %>
    <%= Vite.vite_snippet("src/main.ts") %>
  </head>
  <body>
    <noscript>
      <strong>
        We're sorry but Mobilizon doesn't work properly without JavaScript enabled. Please enable it to continue.
      </strong>
    </noscript>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>