Files
authentik/website/src/utils.js
Teffen Ellis 5bdef1c4f6 website/docs: Prepare for monorepo. (#14119)
* docusaurus-theme: Fix header alignment, overscroll, vertical padding.

* docusaurus-theme: Lint.

* website/docs: Prepare for monorepo packages.

* website/docs: Clean up dependencies. Tidy table.

* website/docs: Fix issue where Prettier affects example content.

* website/docs: Temp fix for stale packages.
2025-04-24 18:22:56 +00:00

69 lines
2.4 KiB
JavaScript

/**
* @file Sidebar utilities.
*
* @todo This needs a revision to better align with Docusaurus's components.
*/
const html = String.raw;
/**
*
* @param {string[]} releases
* @returns
*/
export function generateVersionDropdown(releases) {
return html`<div
class="navbar__item dropdown dropdown--hoverable dropdown--right psuedo-dropdown"
>
<style>
.psuedo-dropdown .navbar__link.menu__link {
display: flex;
width: 100%;
justify-content: space-between;
font-weight: var(--ifm-font-weight-semibold);
}
.psuedo-dropdown .navbar__link.menu__link::after {
color: var(--ifm-color-emphasis-400);
filter: var(--ifm-menu-link-sublist-icon-filter);
margin-inline-end: calc(var(--ifm-navbar-padding-horizontal) * 0.5);
}
.psuedo-dropdown .dropdown__menu {
background: var(--ifm-dropdown-background-color);
box-shadow: var(--ifm-global-shadow-lw);
border: 1px solid var(--ifm-color-emphasis-200);
}
</style>
<div
aria-haspopup="true"
aria-expanded="false"
role="button"
class="navbar__link menu__link"
>
Version: Pre-Release
</div>
<ul class="dropdown__menu menu__list-item--collapsed">
${releases
.map((release, idx) => {
const version = release.replace(/releases\/\d+\/v/, "");
const subdomain = `version-${version.replace(".", "-")}`;
const label = `Version: ${version}${idx === 0 ? " (Current)" : ""}`;
return html`<li>
<a
href="https://${subdomain}.goauthentik.io/docs"
target="_blank"
rel="noopener noreferrer"
class="dropdown__link menu__link"
>${label}</a
>
</li>`;
})
.join("")}
</ul>
</div>
<hr />`;
}