@goauthentik/docusaurus-config 1.1.0 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/css/root.css CHANGED
@@ -9,7 +9,7 @@
9
9
  --ifm-color-primary-lighter: #fd7159;
10
10
  --ifm-color-primary-lightest: #fe9786;
11
11
 
12
- --ifm-hover-overlay: hsl(0deg 0% 100% / 25%);
12
+ --ifm-color-primary-inverse: var(--white);
13
13
 
14
- --ifm-color-content: hsl(216 35% 3%);
14
+ --ifm-hover-overlay: hsl(0deg 0% 100% / 25%);
15
15
  }
package/index.js CHANGED
@@ -4,3 +4,5 @@
4
4
 
5
5
  export * from "./lib/theme.js";
6
6
  export * from "./lib/common.js";
7
+ export * from "./lib/routing.js";
8
+ export * from "./lib/navbar.js";
package/lib/common.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @file Common Docusaurus configuration utilities.
3
3
  *
4
- * @import { Config as DocusaurusConfig } from "@docusaurus/types"
5
- * @import { UserThemeConfig } from "./theme.js"
4
+ * @import { Config, DocusaurusConfig } from "@docusaurus/types"
5
+ * @import { UserThemeConfig, UserThemeConfigExtra } from "./theme.js"
6
6
  */
7
7
  import { deepmerge } from "deepmerge-ts";
8
8
 
@@ -11,14 +11,14 @@ import { createThemeConfig } from "./theme.js";
11
11
  //#region Types
12
12
 
13
13
  /**
14
- * @typedef {Omit<DocusaurusConfig, 'themeConfig'>} DocusaurusConfigBase
14
+ * @typedef {Omit<Config, 'themeConfig'>} DocusaurusConfigBase
15
15
  *
16
16
  * Represents the base configuration for Docusaurus, excluding the theme configuration.
17
17
  */
18
18
 
19
19
  /**
20
20
  * @typedef DocusaurusConfigBaseTheme
21
- * @property {UserThemeConfig} themeConfig The theme configuration.
21
+ * @property {UserThemeConfig & UserThemeConfigExtra} themeConfig The theme configuration.
22
22
  *
23
23
  * Represents a configuration object, only including the theme configuration.
24
24
  */
@@ -39,31 +39,66 @@ import { createThemeConfig } from "./theme.js";
39
39
  //#region Functions
40
40
 
41
41
  /**
42
- * Create a Docusaurus configuration.
43
- *
44
- * @param {DocusaurusConfigInit} [overrides] The options to override.
45
- * @returns {DocusaurusConfig}
42
+ * Create a default Docusaurus configuration.
46
43
  */
47
- export function createDocusaurusConfig({ themeConfig, ...overrides } = {}) {
44
+ export function createDefaultDocusaurusConfig() {
45
+ const NodeEnvironment = process.env.AK_DOCUSAURUS_ENV || process.env.NODE_ENV || "development";
46
+ const production = NodeEnvironment === "production";
47
+
48
48
  /**
49
- * @type {DocusaurusConfig}
49
+ * @satisfies {Config}
50
50
  */
51
- const config = {
51
+ const DEFAULT_CONFIG = /** @type {const} */ ({
52
+ trailingSlash: true,
53
+ future: {
54
+ v4: {
55
+ removeLegacyPostBuildHeadAttribute: true,
56
+ useCssCascadeLayers: false,
57
+ },
58
+ experimental_faster: {
59
+ swcJsLoader: true,
60
+ rspackBundler: true,
61
+ lightningCssMinimizer: production,
62
+ swcJsMinimizer: production,
63
+ swcHtmlMinimizer: production,
64
+ ssgWorkerThreads: production,
65
+ mdxCrossCompilerCache: production,
66
+ rspackPersistentCache: production,
67
+ },
68
+ },
52
69
  title: "authentik",
53
70
  tagline: "Bring all of your authentication into a unified platform.",
54
71
  url: "https://docs.goauthentik.io",
55
72
  baseUrl: "/",
56
73
  onBrokenLinks: "throw",
57
74
  onBrokenAnchors: "throw",
75
+ onBrokenMarkdownLinks: "throw",
76
+ onDuplicateRoutes: "throw",
58
77
  favicon: "img/icon.png",
59
78
  organizationName: "Authentik Security Inc.",
60
79
  projectName: "authentik",
61
80
  markdown: {
62
81
  mermaid: true,
63
82
  },
83
+ });
84
+
85
+ return DEFAULT_CONFIG;
86
+ }
87
+
88
+ /**
89
+ * Create a Docusaurus configuration.
90
+ *
91
+ * @template {Partial<Config>} T
92
+ * @param {T} overrides The options to override.
93
+ * @returns {T & ReturnType<typeof createDefaultDocusaurusConfig>}
94
+ */
95
+ export function createDocusaurusConfig({ themeConfig, ...overrides }) {
96
+ const config = {
97
+ ...createDefaultDocusaurusConfig(),
64
98
  themeConfig: createThemeConfig(themeConfig),
65
99
  };
66
100
 
101
+ // @ts-ignore
67
102
  return deepmerge(config, overrides);
68
103
  }
69
104
 
package/lib/navbar.js ADDED
@@ -0,0 +1,110 @@
1
+ /**
2
+ * @file Docusaurus navbar configuration for the authentik website.
3
+ *
4
+ * @import { NavbarItem } from "@docusaurus/theme-common";
5
+ */
6
+ import { DocusaurusURL, SocialURL } from "./routing.js";
7
+
8
+ /**
9
+ * The navbar items for the authentik website.
10
+ *
11
+ * @type {NavbarItem[]}
12
+ */
13
+ export const SocialNavbarItems = /** @type {const} */ ([
14
+ {
15
+ "href": SocialURL.GitHub,
16
+ "data-icon": "github",
17
+ "aria-label": "GitHub",
18
+ "position": "right",
19
+ },
20
+ {
21
+ "href": SocialURL.Discord,
22
+ "data-icon": "discord",
23
+ "aria-label": "Discord",
24
+ "position": "right",
25
+ },
26
+ ]);
27
+
28
+ /**
29
+ * The navbar items for the authentik website.
30
+ *
31
+ * @satisfies {NavbarItem[]}
32
+ */
33
+ export const NavbarItemsTemplate = /** @type {const} */ ([
34
+ {
35
+ to: "{{WWW_URL}}/features",
36
+ label: "Features",
37
+ position: "left",
38
+ target: "_self",
39
+ },
40
+ {
41
+ to: "{{INTEGRATIONS_URL}}",
42
+ label: "Integrations",
43
+ target: "_self",
44
+ position: "left",
45
+ },
46
+ {
47
+ to: "{{DOCS_URL}}",
48
+
49
+ label: "Documentation",
50
+ position: "left",
51
+ target: "_self",
52
+ },
53
+ {
54
+ to: "{{WWW_URL}}/pricing/",
55
+ label: "Pricing",
56
+ position: "left",
57
+ target: "_self",
58
+ },
59
+ {
60
+ to: "{{WWW_URL}}/blog",
61
+ label: "Blog",
62
+ position: "left",
63
+ target: "_self",
64
+ },
65
+ ...SocialNavbarItems,
66
+ ]);
67
+
68
+ /**
69
+ * @typedef {Object} NavbarItemOverrides
70
+ *
71
+ * @prop {string} WWW_URL The URL for the WWW environment.
72
+ * @prop {string} DOCS_URL The URL for the documentation.
73
+ * @prop {string} INTEGRATIONS_URL The URL for the integrations.
74
+ */
75
+
76
+ const DEFAULT_NAVBAR_REPLACEMENTS = /** @type {const} */ ({
77
+ DOCS_URL: DocusaurusURL.Docs,
78
+ INTEGRATIONS_URL: DocusaurusURL.Integrations,
79
+ WWW_URL: DocusaurusURL.WWW,
80
+ });
81
+
82
+ /**
83
+ * Creates a navbar item array, replacing placeholders with the given replacements.
84
+ *
85
+ * @param {Partial<NavbarItemOverrides>} [overrides]
86
+ * @returns {NavbarItem[]}
87
+ */
88
+ export function createNavbarItems(overrides) {
89
+ const replacements = {
90
+ ...DEFAULT_NAVBAR_REPLACEMENTS,
91
+ ...overrides,
92
+ };
93
+
94
+ return NavbarItemsTemplate.map((item) => {
95
+ if (typeof item.to !== "string") return item;
96
+
97
+ return {
98
+ ...item,
99
+ to: item.to.replace(
100
+ /{{([^}]+)}}/g,
101
+ /**
102
+ * @param {keyof NavbarItemOverrides} key
103
+ */
104
+ (_, key) => {
105
+ return replacements[key];
106
+ },
107
+ ),
108
+ };
109
+ });
110
+ }
package/lib/routing.js ADDED
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @file Docusaurus routing configuration.
3
+ */
4
+
5
+ /**
6
+ * @typedef {'production'|'development'} NodeEnvironment
7
+ */
8
+
9
+ const NodeEnvironment = /** @type {NodeEnvironment} */ (process.env.NODE_ENV || "development");
10
+
11
+ /**
12
+ * @satisfies {Record<NodeEnvironment, Record<string, string>>}
13
+ */
14
+ export const DocusaurusURLByEnvironment = /** @type {const} */ ({
15
+ development: {
16
+ Docs: "http://localhost:3000",
17
+ Integrations: "http://localhost:3001",
18
+ WWW: "http://localhost:3002",
19
+ },
20
+ production: {
21
+ Docs: "https://docs.goauthentik.io",
22
+ Integrations: "https://integrations.goauthentik.io",
23
+ WWW: "https://goauthentik.io",
24
+ },
25
+ });
26
+
27
+ export const DocusaurusURL = DocusaurusURLByEnvironment[NodeEnvironment];
28
+
29
+ /**
30
+ * @satisfies {Record<string, string>}
31
+ */
32
+ export const SocialURL = /** @type {const} */ ({
33
+ Discord: "https://goauthentik.io/discord",
34
+ GitHub: "https://github.com/goauthentik/authentik",
35
+ });
package/lib/theme.js CHANGED
@@ -3,16 +3,26 @@
3
3
  *
4
4
  * @import { UserThemeConfig as UserThemeConfigCommon } from "@docusaurus/theme-common";
5
5
  * @import { UserThemeConfig as UserThemeConfigAlgolia } from "@docusaurus/theme-search-algolia";
6
+ * @import { NavbarItemOverrides } from "./navbar.js"
6
7
  */
7
8
  import { deepmerge } from "deepmerge-ts";
8
9
  import { themes as prismThemes } from "prism-react-renderer";
9
10
 
11
+ import { createNavbarItems } from "./navbar.js";
12
+
10
13
  //#region Types
11
14
 
12
15
  /**
13
- * Combined theme configuration for Docusaurus and Algolia.
16
+ * @typedef {Object} UserThemeConfigExtra
17
+ * @property {Partial<NavbarItemOverrides>} [navbarReplacements] The replacements for the navbar.
18
+ *
19
+ */
20
+
21
+ /**
22
+ * Combined theme configuration for Docusaurus, Algolia, and our own configuration.
14
23
  *
15
24
  * @typedef {UserThemeConfigCommon & UserThemeConfigAlgolia} UserThemeConfig
25
+ *
16
26
  */
17
27
 
18
28
  //#endregion
@@ -48,6 +58,7 @@ export function createPrismConfig(overrides = {}) {
48
58
  "nginx",
49
59
  "python",
50
60
  "bash",
61
+ "powershell",
51
62
  ],
52
63
  };
53
64
 
@@ -57,10 +68,10 @@ export function createPrismConfig(overrides = {}) {
57
68
  /**
58
69
  * Creates a theme configuration for Docusaurus.
59
70
  *
60
- * @param {Partial<UserThemeConfig>} overrides - Overrides for the default theme configuration.
71
+ * @param {Partial<UserThemeConfig & UserThemeConfigExtra>} overrides - Overrides for the default theme configuration.
61
72
  * @returns {UserThemeConfig}
62
73
  */
63
- export function createThemeConfig({ prism, ...overrides } = {}) {
74
+ export function createThemeConfig({ prism, navbarReplacements, ...overrides } = {}) {
64
75
  /**
65
76
  * @type {UserThemeConfig}
66
77
  */
@@ -77,6 +88,17 @@ export function createThemeConfig({ prism, ...overrides } = {}) {
77
88
  appId: "36ROD0O0FV",
78
89
  apiKey: "727db511300ca9aec5425645bbbddfb5",
79
90
  },
91
+ footer: {
92
+ copyright: `Copyright © ${new Date().getFullYear()} Authentik Security Inc. Built with Docusaurus.`,
93
+ },
94
+ navbar: {
95
+ logo: {
96
+ alt: "authentik logo",
97
+ src: "img/icon_left_brand.svg",
98
+ },
99
+
100
+ items: createNavbarItems(navbarReplacements),
101
+ },
80
102
  prism: createPrismConfig(prism),
81
103
  };
82
104
 
package/out/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
1
  export * from "./lib/theme.js";
2
2
  export * from "./lib/common.js";
3
+ export * from "./lib/routing.js";
4
+ export * from "./lib/navbar.js";
3
5
  //# sourceMappingURL=index.d.ts.map
@@ -1,11 +1,11 @@
1
1
  /**
2
- * @typedef {Omit<DocusaurusConfig, 'themeConfig'>} DocusaurusConfigBase
2
+ * @typedef {Omit<Config, 'themeConfig'>} DocusaurusConfigBase
3
3
  *
4
4
  * Represents the base configuration for Docusaurus, excluding the theme configuration.
5
5
  */
6
6
  /**
7
7
  * @typedef DocusaurusConfigBaseTheme
8
- * @property {UserThemeConfig} themeConfig The theme configuration.
8
+ * @property {UserThemeConfig & UserThemeConfigExtra} themeConfig The theme configuration.
9
9
  *
10
10
  * Represents a configuration object, only including the theme configuration.
11
11
  */
@@ -19,29 +19,67 @@
19
19
  * Much of the configuration is not strictly typed, however, this type
20
20
  * is a good starting point.
21
21
  */
22
+ /**
23
+ * Create a default Docusaurus configuration.
24
+ */
25
+ export function createDefaultDocusaurusConfig(): {
26
+ readonly trailingSlash: true;
27
+ readonly future: {
28
+ readonly v4: {
29
+ readonly removeLegacyPostBuildHeadAttribute: true;
30
+ readonly useCssCascadeLayers: false;
31
+ };
32
+ readonly experimental_faster: {
33
+ readonly swcJsLoader: true;
34
+ readonly rspackBundler: true;
35
+ readonly lightningCssMinimizer: boolean;
36
+ readonly swcJsMinimizer: boolean;
37
+ readonly swcHtmlMinimizer: boolean;
38
+ readonly ssgWorkerThreads: boolean;
39
+ readonly mdxCrossCompilerCache: boolean;
40
+ readonly rspackPersistentCache: boolean;
41
+ };
42
+ };
43
+ readonly title: "authentik";
44
+ readonly tagline: "Bring all of your authentication into a unified platform.";
45
+ readonly url: "https://docs.goauthentik.io";
46
+ readonly baseUrl: "/";
47
+ readonly onBrokenLinks: "throw";
48
+ readonly onBrokenAnchors: "throw";
49
+ readonly onBrokenMarkdownLinks: "throw";
50
+ readonly onDuplicateRoutes: "throw";
51
+ readonly favicon: "img/icon.png";
52
+ readonly organizationName: "Authentik Security Inc.";
53
+ readonly projectName: "authentik";
54
+ readonly markdown: {
55
+ readonly mermaid: true;
56
+ };
57
+ };
22
58
  /**
23
59
  * Create a Docusaurus configuration.
24
60
  *
25
- * @param {DocusaurusConfigInit} [overrides] The options to override.
26
- * @returns {DocusaurusConfig}
61
+ * @template {Partial<Config>} T
62
+ * @param {T} overrides The options to override.
63
+ * @returns {T & ReturnType<typeof createDefaultDocusaurusConfig>}
27
64
  */
28
- export function createDocusaurusConfig({ themeConfig, ...overrides }?: DocusaurusConfigInit): DocusaurusConfig;
65
+ export function createDocusaurusConfig<T extends Partial<Config>>({ themeConfig, ...overrides }: T): T & ReturnType<typeof createDefaultDocusaurusConfig>;
29
66
  /**
30
67
  * Represents the base configuration for Docusaurus, excluding the theme configuration.
31
68
  */
32
- export type DocusaurusConfigBase = Omit<DocusaurusConfig, "themeConfig">;
69
+ export type DocusaurusConfigBase = Omit<Config, "themeConfig">;
33
70
  export type DocusaurusConfigBaseTheme = {
34
71
  /**
35
72
  * The theme configuration.
36
73
  *
37
74
  * Represents a configuration object, only including the theme configuration.
38
75
  */
39
- themeConfig: UserThemeConfig;
76
+ themeConfig: UserThemeConfig & UserThemeConfigExtra;
40
77
  };
41
78
  /**
42
79
  * The initial configuration for Docusaurus.
43
80
  */
44
81
  export type DocusaurusConfigInit = Partial<DocusaurusConfigBase & DocusaurusConfigBaseTheme>;
45
- import type { Config as DocusaurusConfig } from "@docusaurus/types";
82
+ import type { Config } from "@docusaurus/types";
46
83
  import type { UserThemeConfig } from "./theme.js";
84
+ import type { UserThemeConfigExtra } from "./theme.js";
47
85
  //# sourceMappingURL=common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../lib/common.js"],"names":[],"mappings":"AAYA;;;;GAIG;AAEH;;;;;GAKG;AAEH;;;;;;;;;GASG;AAMH;;;;;GAKG;AACH,uEAHW,oBAAoB,GAClB,gBAAgB,CAuB5B;;;;mCAtDY,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC;;;;;;;iBAOpC,eAAe;;;;;mCAMhB,OAAO,CAAC,oBAAoB,GAAG,yBAAyB,CAAC;gDAvBvB,mBAAmB;qCAC9B,YAAY"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../lib/common.js"],"names":[],"mappings":"AAYA;;;;GAIG;AAEH;;;;;GAKG;AAEH;;;;;;;;;GASG;AAMH;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0CC;AAED;;;;;;GAMG;AACH,uCAJ+B,CAAC,SAAlB,OAAO,CAAC,MAAM,CAAE,iCACnB,CAAC,GACC,CAAC,GAAG,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAUhE;;;;mCAzFY,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC;;;;;;;iBAO1B,eAAe,GAAG,oBAAoB;;;;;mCAMvC,OAAO,CAAC,oBAAoB,GAAG,yBAAyB,CAAC;4BAvBzB,mBAAmB;qCACN,YAAY;0CAAZ,YAAY"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Creates a navbar item array, replacing placeholders with the given replacements.
3
+ *
4
+ * @param {Partial<NavbarItemOverrides>} [overrides]
5
+ * @returns {NavbarItem[]}
6
+ */
7
+ export function createNavbarItems(overrides?: Partial<NavbarItemOverrides>): NavbarItem[];
8
+ /**
9
+ * The navbar items for the authentik website.
10
+ *
11
+ * @type {NavbarItem[]}
12
+ */
13
+ export const SocialNavbarItems: NavbarItem[];
14
+ /**
15
+ * The navbar items for the authentik website.
16
+ *
17
+ * @satisfies {NavbarItem[]}
18
+ */
19
+ export const NavbarItemsTemplate: [{
20
+ readonly to: "{{WWW_URL}}/features";
21
+ readonly label: "Features";
22
+ readonly position: "left";
23
+ readonly target: "_self";
24
+ }, {
25
+ readonly to: "{{INTEGRATIONS_URL}}";
26
+ readonly label: "Integrations";
27
+ readonly target: "_self";
28
+ readonly position: "left";
29
+ }, {
30
+ readonly to: "{{DOCS_URL}}";
31
+ readonly label: "Documentation";
32
+ readonly position: "left";
33
+ readonly target: "_self";
34
+ }, {
35
+ readonly to: "{{WWW_URL}}/pricing/";
36
+ readonly label: "Pricing";
37
+ readonly position: "left";
38
+ readonly target: "_self";
39
+ }, {
40
+ readonly to: "{{WWW_URL}}/blog";
41
+ readonly label: "Blog";
42
+ readonly position: "left";
43
+ readonly target: "_self";
44
+ }, ...NavbarItem[]];
45
+ export type NavbarItemOverrides = {
46
+ /**
47
+ * The URL for the WWW environment.
48
+ */
49
+ WWW_URL: string;
50
+ /**
51
+ * The URL for the documentation.
52
+ */
53
+ DOCS_URL: string;
54
+ /**
55
+ * The URL for the integrations.
56
+ */
57
+ INTEGRATIONS_URL: string;
58
+ };
59
+ import type { NavbarItem } from "@docusaurus/theme-common";
60
+ //# sourceMappingURL=navbar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navbar.d.ts","sourceRoot":"","sources":["../../lib/navbar.js"],"names":[],"mappings":"AAiFA;;;;;GAKG;AACH,8CAHW,OAAO,CAAC,mBAAmB,CAAC,GAC1B,UAAU,EAAE,CAwBxB;AAtGD;;;;GAIG;AACH,gCAFU,UAAU,EAAE,CAenB;AAEH;;;;GAIG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;oBAiCG;;;;;aAKO,MAAM;;;;cACN,MAAM;;;;sBACN,MAAM;;gCArEe,0BAA0B"}
@@ -0,0 +1,30 @@
1
+ export namespace DocusaurusURLByEnvironment {
2
+ namespace development {
3
+ let Docs: "http://localhost:3000";
4
+ let Integrations: "http://localhost:3001";
5
+ let WWW: "http://localhost:3002";
6
+ }
7
+ namespace production {
8
+ let Docs_1: "https://docs.goauthentik.io";
9
+ export { Docs_1 as Docs };
10
+ let Integrations_1: "https://integrations.goauthentik.io";
11
+ export { Integrations_1 as Integrations };
12
+ let WWW_1: "https://goauthentik.io";
13
+ export { WWW_1 as WWW };
14
+ }
15
+ }
16
+ export const DocusaurusURL: {
17
+ readonly Docs: "http://localhost:3000";
18
+ readonly Integrations: "http://localhost:3001";
19
+ readonly WWW: "http://localhost:3002";
20
+ } | {
21
+ readonly Docs: "https://docs.goauthentik.io";
22
+ readonly Integrations: "https://integrations.goauthentik.io";
23
+ readonly WWW: "https://goauthentik.io";
24
+ };
25
+ export namespace SocialURL {
26
+ let Discord: "https://goauthentik.io/discord";
27
+ let GitHub: "https://github.com/goauthentik/authentik";
28
+ }
29
+ export type NodeEnvironment = "production" | "development";
30
+ //# sourceMappingURL=routing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../lib/routing.js"],"names":[],"mappings":";;;;;;;;;;;;;;;AA0BA;;;;;;;;EAAyE;;;;;8BArB5D,YAAY,GAAC,aAAa"}
@@ -1,7 +1,13 @@
1
1
  /**
2
- * Combined theme configuration for Docusaurus and Algolia.
2
+ * @typedef {Object} UserThemeConfigExtra
3
+ * @property {Partial<NavbarItemOverrides>} [navbarReplacements] The replacements for the navbar.
4
+ *
5
+ */
6
+ /**
7
+ * Combined theme configuration for Docusaurus, Algolia, and our own configuration.
3
8
  *
4
9
  * @typedef {UserThemeConfigCommon & UserThemeConfigAlgolia} UserThemeConfig
10
+ *
5
11
  */
6
12
  /**
7
13
  * @returns {string} The copyright string.
@@ -17,14 +23,21 @@ export function createPrismConfig(overrides?: Partial<UserThemeConfigCommon["pri
17
23
  /**
18
24
  * Creates a theme configuration for Docusaurus.
19
25
  *
20
- * @param {Partial<UserThemeConfig>} overrides - Overrides for the default theme configuration.
26
+ * @param {Partial<UserThemeConfig & UserThemeConfigExtra>} overrides - Overrides for the default theme configuration.
21
27
  * @returns {UserThemeConfig}
22
28
  */
23
- export function createThemeConfig({ prism, ...overrides }?: Partial<UserThemeConfig>): UserThemeConfig;
29
+ export function createThemeConfig({ prism, navbarReplacements, ...overrides }?: Partial<UserThemeConfig & UserThemeConfigExtra>): UserThemeConfig;
30
+ export type UserThemeConfigExtra = {
31
+ /**
32
+ * The replacements for the navbar.
33
+ */
34
+ navbarReplacements?: Partial<NavbarItemOverrides> | undefined;
35
+ };
24
36
  /**
25
- * Combined theme configuration for Docusaurus and Algolia.
37
+ * Combined theme configuration for Docusaurus, Algolia, and our own configuration.
26
38
  */
27
39
  export type UserThemeConfig = UserThemeConfigCommon & UserThemeConfigAlgolia;
28
40
  import type { UserThemeConfig as UserThemeConfigCommon } from "@docusaurus/theme-common";
41
+ import type { NavbarItemOverrides } from "./navbar.js";
29
42
  import type { UserThemeConfig as UserThemeConfigAlgolia } from "@docusaurus/theme-search-algolia";
30
43
  //# sourceMappingURL=theme.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../lib/theme.js"],"names":[],"mappings":"AAWA;;;;GAIG;AAMH;;GAEG;AACH,mCAFa,MAAM,CAIlB;AAED;;;;;GAKG;AACH,8CAHW,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,GACrC,qBAAqB,CAAC,OAAO,CAAC,CAsB1C;AAED;;;;;GAKG;AACH,4DAHW,OAAO,CAAC,eAAe,CAAC,GACtB,eAAe,CAuB3B;;;;8BArEY,qBAAqB,GAAG,sBAAsB;8DAXE,0BAA0B;+DACzB,kCAAkC"}
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../lib/theme.js"],"names":[],"mappings":"AAcA;;;;GAIG;AAEH;;;;;GAKG;AAMH;;GAEG;AACH,mCAFa,MAAM,CAIlB;AAED;;;;;GAKG;AACH,8CAHW,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,GACrC,qBAAqB,CAAC,OAAO,CAAC,CAuB1C;AAED;;;;;GAKG;AACH,gFAHW,OAAO,CAAC,eAAe,GAAG,oBAAoB,CAAC,GAC7C,eAAe,CAkC3B;;;;;;;;;;8BAlFY,qBAAqB,GAAG,sBAAsB;8DApBE,0BAA0B;yCAE/C,aAAa;+DADS,kCAAkC"}