zudoku 0.0.0-e09234c → 0.0.0-e259486
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/dist/config/validators/SidebarSchema.d.ts +24 -1
- package/dist/config/validators/SidebarSchema.js +73 -32
- package/dist/config/validators/SidebarSchema.js.map +1 -1
- package/dist/config/validators/validate.d.ts +264 -254
- package/dist/config/validators/validate.js +4 -0
- package/dist/config/validators/validate.js.map +1 -1
- package/dist/lib/components/Heading.d.ts +1 -1
- package/dist/lib/components/MobileTopNavigation.js.map +1 -1
- package/dist/lib/components/TopNavigation.js +8 -1
- package/dist/lib/components/TopNavigation.js.map +1 -1
- package/dist/lib/components/context/ZudokuContext.d.ts +1 -0
- package/dist/lib/plugins/openapi/playground/Playground.js +1 -0
- package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
- package/dist/lib/ui/Button.d.ts +1 -1
- package/dist/vite/plugin-frontmatter.d.ts +2 -1
- package/dist/vite/plugin-frontmatter.js +27 -24
- package/dist/vite/plugin-frontmatter.js.map +1 -1
- package/dist/vite/plugin-sidebar.js +4 -6
- package/dist/vite/plugin-sidebar.js.map +1 -1
- package/dist/vite/plugin.js +1 -1
- package/dist/vite/plugin.js.map +1 -1
- package/lib/{OperationList-yuVHI6ul.js → OperationList-ulcORU8G.js} +2 -2
- package/lib/{OperationList-yuVHI6ul.js.map → OperationList-ulcORU8G.js.map} +1 -1
- package/lib/{Route-BaAjY0N-.js → Route-CwldVMgy.js} +2 -2
- package/lib/{Route-BaAjY0N-.js.map → Route-CwldVMgy.js.map} +1 -1
- package/lib/{index-vPSN3k3e.js → index-DDQnHcw-.js} +94 -93
- package/lib/index-DDQnHcw-.js.map +1 -0
- package/lib/zudoku.components.js +122 -120
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.plugin-openapi.js +1 -1
- package/package.json +1 -1
- package/src/lib/components/MobileTopNavigation.tsx +1 -0
- package/src/lib/components/TopNavigation.tsx +11 -1
- package/src/lib/plugins/openapi/playground/Playground.tsx +1 -0
- package/lib/index-vPSN3k3e.js.map +0 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type LucideIcon } from "lucide-react";
|
|
2
2
|
import type { BaseInputSidebarItemCategoryLinkDoc, BaseInputSidebarItemDoc, InputSidebarItem, InputSidebarItemCategory, InputSidebarItemLink } from "./InputSidebarSchema.js";
|
|
3
|
+
import type { ZudokuConfig } from "./validate.js";
|
|
3
4
|
export type SidebarItemDoc = Omit<BaseInputSidebarItemDoc, "icon"> & {
|
|
4
5
|
label: string;
|
|
5
6
|
categoryLabel?: string;
|
|
@@ -18,6 +19,28 @@ export type SidebarItemCategory = Omit<InputSidebarItemCategory, "items" | "link
|
|
|
18
19
|
icon?: LucideIcon | string;
|
|
19
20
|
};
|
|
20
21
|
export type SidebarItem = SidebarItemDoc | SidebarItemLink | SidebarItemCategory;
|
|
21
|
-
export declare
|
|
22
|
+
export declare class SidebarManager {
|
|
23
|
+
sidebars: SidebarClass[];
|
|
24
|
+
private switchQueue;
|
|
25
|
+
constructor(rootDir: string, sidebarConfig: ZudokuConfig["sidebar"]);
|
|
26
|
+
resolveSidebars(): Promise<{
|
|
27
|
+
[k: string]: SidebarItem[];
|
|
28
|
+
}>;
|
|
29
|
+
switchSidebar(from: string, to: string, item: SidebarItem): void;
|
|
30
|
+
}
|
|
31
|
+
export declare class SidebarClass {
|
|
32
|
+
private manager;
|
|
33
|
+
rootDir: string;
|
|
34
|
+
parent: string;
|
|
35
|
+
private items;
|
|
36
|
+
resolvedItems: SidebarItem[];
|
|
37
|
+
constructor(manager: SidebarManager, rootDir: string, parent: string, items: InputSidebarItem[]);
|
|
38
|
+
resolve(): Promise<void>;
|
|
39
|
+
private resolveDoc;
|
|
40
|
+
private resolveLink;
|
|
41
|
+
private resolveItemCategoryLinkDoc;
|
|
42
|
+
private resolveSidebarItemDoc;
|
|
43
|
+
private resolveItem;
|
|
44
|
+
}
|
|
22
45
|
export type Sidebar = SidebarItem[];
|
|
23
46
|
export type SidebarConfig = Record<string, Sidebar>;
|
|
@@ -2,11 +2,51 @@ import { glob } from "glob";
|
|
|
2
2
|
import matter from "gray-matter";
|
|
3
3
|
import fs from "node:fs/promises";
|
|
4
4
|
const extractTitleFromContent = (content) => content.match(/^\s*#\s(.*)$/m)?.at(1);
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
const isSidebarItem = (item) => item !== undefined;
|
|
6
|
+
export class SidebarManager {
|
|
7
|
+
sidebars;
|
|
8
|
+
switchQueue = [];
|
|
9
|
+
constructor(rootDir, sidebarConfig) {
|
|
10
|
+
this.sidebars = Object.entries(sidebarConfig ?? {}).map(([parent, items]) => new SidebarClass(this, rootDir, parent, items));
|
|
11
|
+
}
|
|
12
|
+
async resolveSidebars() {
|
|
13
|
+
await Promise.all(this.sidebars.map((sidebar) => sidebar.resolve()));
|
|
14
|
+
// switch all collected items
|
|
15
|
+
for (const { from, to, item } of this.switchQueue) {
|
|
16
|
+
const fromSidebar = this.sidebars.find((s) => s.parent === from);
|
|
17
|
+
const toSidebar = this.sidebars.find((s) => s.parent === to);
|
|
18
|
+
if (!fromSidebar || !toSidebar) {
|
|
19
|
+
throw new Error(`Sidebar ${from} or ${to} not found`);
|
|
20
|
+
}
|
|
21
|
+
fromSidebar.resolvedItems = fromSidebar.resolvedItems.filter((resolvedItem) => resolvedItem !== item);
|
|
22
|
+
toSidebar.resolvedItems.push(item);
|
|
23
|
+
}
|
|
24
|
+
return Object.fromEntries(this.sidebars.map((sidebar) => [sidebar.parent, sidebar.resolvedItems]));
|
|
25
|
+
}
|
|
26
|
+
switchSidebar(from, to, item) {
|
|
27
|
+
this.switchQueue.push({ from, to, item });
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export class SidebarClass {
|
|
31
|
+
manager;
|
|
32
|
+
rootDir;
|
|
33
|
+
parent;
|
|
34
|
+
items;
|
|
35
|
+
resolvedItems = [];
|
|
36
|
+
constructor(manager, rootDir, parent, items) {
|
|
37
|
+
this.manager = manager;
|
|
38
|
+
this.rootDir = rootDir;
|
|
39
|
+
this.parent = parent;
|
|
40
|
+
this.items = items;
|
|
41
|
+
}
|
|
42
|
+
async resolve() {
|
|
43
|
+
const resolvedSidebar = (await Promise.all(this.items.map((item) => this.resolveItem(item)))).filter(isSidebarItem);
|
|
44
|
+
this.resolvedItems = resolvedSidebar;
|
|
45
|
+
}
|
|
46
|
+
async resolveDoc(id, categoryLabel) {
|
|
7
47
|
const foundMatches = await glob(`/**/${id}.{md,mdx}`, {
|
|
8
48
|
ignore: ["**/node_modules/**", "**/.git/**", "**/dist/**"],
|
|
9
|
-
root: rootDir,
|
|
49
|
+
root: this.rootDir,
|
|
10
50
|
});
|
|
11
51
|
if (foundMatches.length === 0) {
|
|
12
52
|
throw new Error(`File not found for document '${id}'. Check your sidebar configuration.`);
|
|
@@ -18,51 +58,53 @@ export const resolveSidebar = async (rootDir, sidebar) => {
|
|
|
18
58
|
extractTitleFromContent(content) ??
|
|
19
59
|
id;
|
|
20
60
|
const icon = data.sidebar_icon;
|
|
21
|
-
|
|
61
|
+
const doc = {
|
|
22
62
|
type: "doc",
|
|
23
63
|
id,
|
|
24
64
|
label,
|
|
25
65
|
icon,
|
|
26
66
|
categoryLabel,
|
|
27
67
|
};
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
68
|
+
if (data.sidebar && data.sidebar !== this.parent) {
|
|
69
|
+
this.manager.switchSidebar(this.parent, data.sidebar, doc);
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
return doc;
|
|
73
|
+
}
|
|
74
|
+
async resolveLink(id) {
|
|
75
|
+
const doc = await this.resolveDoc(id);
|
|
76
|
+
return doc
|
|
77
|
+
? { type: "doc", id: id, label: doc.label, icon: doc.icon }
|
|
78
|
+
: undefined;
|
|
79
|
+
}
|
|
80
|
+
async resolveItemCategoryLinkDoc(item) {
|
|
39
81
|
if (typeof item === "string") {
|
|
40
|
-
return resolveLink(item);
|
|
82
|
+
return this.resolveLink(item);
|
|
41
83
|
}
|
|
42
|
-
const
|
|
43
|
-
return { ...item, label, icon };
|
|
44
|
-
}
|
|
45
|
-
|
|
84
|
+
const doc = await this.resolveDoc(item.id);
|
|
85
|
+
return doc ? { ...item, label: doc.label, icon: doc.icon } : undefined;
|
|
86
|
+
}
|
|
87
|
+
async resolveSidebarItemDoc(item, categoryLabel) {
|
|
46
88
|
if (typeof item === "string") {
|
|
47
|
-
return resolveDoc(item, categoryLabel);
|
|
89
|
+
return this.resolveDoc(item, categoryLabel);
|
|
48
90
|
}
|
|
49
|
-
const doc = await resolveDoc(item.id, categoryLabel);
|
|
50
|
-
return { ...doc, ...item };
|
|
51
|
-
}
|
|
52
|
-
|
|
91
|
+
const doc = await this.resolveDoc(item.id, categoryLabel);
|
|
92
|
+
return doc ? { ...doc, ...item } : undefined;
|
|
93
|
+
}
|
|
94
|
+
async resolveItem(item, categoryLabel) {
|
|
53
95
|
if (typeof item === "string") {
|
|
54
|
-
return resolveDoc(item, categoryLabel);
|
|
96
|
+
return this.resolveDoc(item, categoryLabel);
|
|
55
97
|
}
|
|
56
98
|
switch (item.type) {
|
|
57
99
|
case "doc":
|
|
58
|
-
return resolveSidebarItemDoc(item, categoryLabel);
|
|
100
|
+
return this.resolveSidebarItemDoc(item, categoryLabel);
|
|
59
101
|
case "link":
|
|
60
102
|
return item;
|
|
61
103
|
case "category": {
|
|
62
104
|
const categoryItem = item;
|
|
63
|
-
const items = await Promise.all(categoryItem.items.map((subItem) =>
|
|
105
|
+
const items = (await Promise.all(categoryItem.items.map((subItem) => this.resolveItem(subItem, categoryItem.label)))).filter((item) => item !== undefined);
|
|
64
106
|
const resolvedLink = categoryItem.link
|
|
65
|
-
? await
|
|
107
|
+
? await this.resolveItemCategoryLinkDoc(categoryItem.link)
|
|
66
108
|
: undefined;
|
|
67
109
|
return {
|
|
68
110
|
...categoryItem,
|
|
@@ -71,7 +113,6 @@ export const resolveSidebar = async (rootDir, sidebar) => {
|
|
|
71
113
|
};
|
|
72
114
|
}
|
|
73
115
|
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
};
|
|
116
|
+
}
|
|
117
|
+
}
|
|
77
118
|
//# sourceMappingURL=SidebarSchema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SidebarSchema.js","sourceRoot":"","sources":["../../../src/config/validators/SidebarSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"SidebarSchema.js","sourceRoot":"","sources":["../../../src/config/validators/SidebarSchema.ts"],"names":[],"mappings":"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"}
|