zudoku 0.3.0-dev.83 → 0.3.0-dev.84
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/cli.js +5 -1
- package/dist/app/demo.js +5 -4
- package/dist/app/demo.js.map +1 -1
- package/dist/app/main.js +3 -1
- package/dist/app/main.js.map +1 -1
- package/dist/app/standalone.js +5 -4
- package/dist/app/standalone.js.map +1 -1
- package/dist/config/validators/ResolvedSidebarSchema.d.ts +18 -0
- package/dist/config/validators/ResolvedSidebarSchema.js +76 -0
- package/dist/config/validators/ResolvedSidebarSchema.js.map +1 -0
- package/dist/config/validators/SidebarSchema.d.ts +177 -0
- package/dist/config/validators/SidebarSchema.js +71 -0
- package/dist/config/validators/SidebarSchema.js.map +1 -0
- package/dist/config/validators/validate.d.ts +411 -59
- package/dist/config/validators/validate.js +22 -4
- package/dist/config/validators/validate.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/lib/components/DevPortal.js +1 -1
- package/dist/lib/components/DevPortal.js.map +1 -1
- package/dist/lib/components/Header.js.map +1 -1
- package/dist/lib/components/Heading.d.ts +1 -1
- package/dist/lib/components/Layout.js +2 -2
- package/dist/lib/components/Layout.js.map +1 -1
- package/dist/lib/components/TopNavigation.js +5 -5
- package/dist/lib/components/TopNavigation.js.map +1 -1
- package/dist/lib/components/context/DevPortalProvider.d.ts +9 -3
- package/dist/lib/components/context/DevPortalProvider.js +11 -23
- package/dist/lib/components/context/DevPortalProvider.js.map +1 -1
- package/dist/lib/components/context/ThemeContext.d.ts +1 -4
- package/dist/lib/components/context/ThemeContext.js +3 -29
- package/dist/lib/components/context/ThemeContext.js.map +1 -1
- package/dist/lib/components/context/ThemeProvider.d.ts +4 -0
- package/dist/lib/components/context/ThemeProvider.js +23 -0
- package/dist/lib/components/context/ThemeProvider.js.map +1 -0
- package/dist/lib/components/navigation/Sidebar.d.ts +1 -0
- package/dist/lib/components/navigation/Sidebar.js +12 -0
- package/dist/lib/components/navigation/Sidebar.js.map +1 -0
- package/dist/lib/components/navigation/SidebarBadge.d.ts +22 -0
- package/dist/lib/components/navigation/SidebarBadge.js +24 -0
- package/dist/lib/components/navigation/SidebarBadge.js.map +1 -0
- package/dist/lib/components/navigation/SidebarCategory.d.ts +5 -0
- package/dist/lib/components/navigation/SidebarCategory.js +33 -0
- package/dist/lib/components/navigation/SidebarCategory.js.map +1 -0
- package/dist/lib/components/navigation/SidebarItem.d.ts +12 -0
- package/dist/lib/components/navigation/SidebarItem.js +42 -0
- package/dist/lib/components/navigation/SidebarItem.js.map +1 -0
- package/dist/lib/components/navigation/{SideNavigationWrapper.d.ts → SidebarWrapper.d.ts} +1 -1
- package/dist/lib/components/navigation/{SideNavigationWrapper.js → SidebarWrapper.js} +2 -2
- package/dist/lib/components/navigation/SidebarWrapper.js.map +1 -0
- package/dist/lib/components/navigation/utils.d.ts +16 -0
- package/dist/lib/components/navigation/utils.js +85 -0
- package/dist/lib/components/navigation/utils.js.map +1 -0
- package/dist/lib/core/DevPortalContext.d.ts +9 -32
- package/dist/lib/core/DevPortalContext.js +8 -5
- package/dist/lib/core/DevPortalContext.js.map +1 -1
- package/dist/lib/core/plugins.d.ts +6 -8
- package/dist/lib/core/plugins.js.map +1 -1
- package/dist/lib/plugins/markdown/MdxPage.js +5 -36
- package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
- package/dist/lib/plugins/markdown/generateRoutes.js +20 -43
- package/dist/lib/plugins/markdown/generateRoutes.js.map +1 -1
- package/dist/lib/plugins/openapi/Sidecar.js +12 -2
- package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
- package/dist/lib/plugins/openapi/index.js +14 -11
- package/dist/lib/plugins/openapi/index.js.map +1 -1
- package/dist/lib/plugins/openapi/interfaces.d.ts +1 -1
- package/dist/lib/util/useScrollToAnchor.js +31 -17
- package/dist/lib/util/useScrollToAnchor.js.map +1 -1
- package/dist/vite/plugin-sidebar.d.ts +3 -0
- package/dist/vite/plugin-sidebar.js +23 -0
- package/dist/vite/plugin-sidebar.js.map +1 -0
- package/dist/vite/plugin.js +2 -0
- package/dist/vite/plugin.js.map +1 -1
- package/lib/{AuthenticationPlugin-XS0DoAhE.js → AuthenticationPlugin-DgwV0hVu.js} +7 -7
- package/lib/{AuthenticationPlugin-XS0DoAhE.js.map → AuthenticationPlugin-DgwV0hVu.js.map} +1 -1
- package/lib/{CategoryHeading-DCmchnA1.js → CategoryHeading-BWq12Bfa.js} +3 -3
- package/lib/{CategoryHeading-DCmchnA1.js.map → CategoryHeading-BWq12Bfa.js.map} +1 -1
- package/lib/{Combination-C442XfGG.js → Combination-DkycFHkm.js} +4 -4
- package/lib/{Combination-C442XfGG.js.map → Combination-DkycFHkm.js.map} +1 -1
- package/lib/{DevPortalProvider-BWeAysxF.js → DevPortalProvider-CTxoCHIT.js} +375 -417
- package/lib/DevPortalProvider-CTxoCHIT.js.map +1 -0
- package/lib/DeveloperHint-BQSFXH01.js +10 -0
- package/lib/{DeveloperHint-DQVwIery.js.map → DeveloperHint-BQSFXH01.js.map} +1 -1
- package/lib/{Input-3IEt27jb.js → Input-BclXSY0g.js} +5 -5
- package/lib/{Input-3IEt27jb.js.map → Input-BclXSY0g.js.map} +1 -1
- package/lib/{Markdown-QsZ-PHET.js → Markdown-B_Gax7at.js} +1136 -1152
- package/lib/{Markdown-QsZ-PHET.js.map → Markdown-B_Gax7at.js.map} +1 -1
- package/lib/{MdxPage-CA1WmW14.js → MdxPage-Crlr0GmN.js} +67 -81
- package/lib/MdxPage-Crlr0GmN.js.map +1 -0
- package/lib/{OperationList-CHK_erYP.js → OperationList-nQ0bd8TU.js} +8 -8
- package/lib/{OperationList-CHK_erYP.js.map → OperationList-nQ0bd8TU.js.map} +1 -1
- package/lib/Route-CNvxEBnR.js +14 -0
- package/lib/{Route-D70pGn9n.js.map → Route-CNvxEBnR.js.map} +1 -1
- package/lib/{SlotletProvider-B71hNEUL.js → SlotletProvider-CzMAO73_.js} +12 -12
- package/lib/{SlotletProvider-B71hNEUL.js.map → SlotletProvider-CzMAO73_.js.map} +1 -1
- package/lib/Spinner-fF-Xv-gw.js +274 -0
- package/lib/Spinner-fF-Xv-gw.js.map +1 -0
- package/lib/index-7kcHaXD6.js +1771 -0
- package/lib/index-7kcHaXD6.js.map +1 -0
- package/lib/{index-Bl6YeerK.js → index-CgCPw6Jn.js} +1026 -1043
- package/lib/index-CgCPw6Jn.js.map +1 -0
- package/lib/{index-BH-Ub36F.js → index-DkuZvRNP.js} +4 -4
- package/lib/{index-BH-Ub36F.js.map → index-DkuZvRNP.js.map} +1 -1
- package/lib/joinPath-VeNuJa7y.js +8 -0
- package/lib/joinPath-VeNuJa7y.js.map +1 -0
- package/lib/jsx-runtime-B6kdoens.js +635 -0
- package/lib/jsx-runtime-B6kdoens.js.map +1 -0
- package/lib/{AnchorLink-BZcpTwOs.js → utils-CzT_9Tsn.js} +258 -214
- package/lib/utils-CzT_9Tsn.js.map +1 -0
- package/lib/zudoku.auth-clerk.js +1 -1
- package/lib/zudoku.auth-openid.js +2 -2
- package/lib/zudoku.components.js +1229 -1227
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.plugin-api-keys.js +19 -19
- package/lib/zudoku.plugin-custom-page.js +2 -2
- package/lib/zudoku.plugin-markdown.js +21 -38
- package/lib/zudoku.plugin-markdown.js.map +1 -1
- package/lib/zudoku.plugin-openapi.js +8 -6
- package/lib/zudoku.plugin-openapi.js.map +1 -1
- package/package.json +4 -1
- package/src/app/demo.tsx +5 -4
- package/src/app/main.css +2 -2
- package/src/app/main.tsx +3 -1
- package/src/app/standalone.tsx +5 -4
- package/src/lib/components/DevPortal.tsx +1 -1
- package/src/lib/components/Header.tsx +2 -2
- package/src/lib/components/Layout.tsx +2 -2
- package/src/lib/components/TopNavigation.tsx +5 -5
- package/src/lib/components/context/DevPortalProvider.ts +11 -28
- package/src/lib/components/context/ThemeContext.tsx +3 -41
- package/src/lib/components/context/ThemeProvider.tsx +27 -0
- package/src/lib/components/navigation/{SideNavigation.tsx → Sidebar.tsx} +7 -7
- package/src/lib/components/navigation/SidebarBadge.tsx +40 -0
- package/src/lib/components/navigation/SidebarCategory.tsx +105 -0
- package/src/lib/components/navigation/SidebarItem.tsx +96 -0
- package/src/lib/components/navigation/{SideNavigationWrapper.tsx → SidebarWrapper.tsx} +1 -1
- package/src/lib/components/navigation/utils.ts +120 -0
- package/src/lib/core/DevPortalContext.ts +12 -44
- package/src/lib/core/plugins.ts +6 -13
- package/src/lib/plugins/markdown/MdxPage.tsx +14 -50
- package/src/lib/plugins/markdown/generateRoutes.tsx +29 -57
- package/src/lib/plugins/openapi/Sidecar.tsx +15 -2
- package/src/lib/plugins/openapi/index.tsx +17 -23
- package/src/lib/plugins/openapi/interfaces.ts +1 -1
- package/src/lib/util/useScrollToAnchor.ts +39 -18
- package/dist/lib/components/navigation/SideNavigation.d.ts +0 -1
- package/dist/lib/components/navigation/SideNavigation.js +0 -12
- package/dist/lib/components/navigation/SideNavigation.js.map +0 -1
- package/dist/lib/components/navigation/SideNavigationCategory.d.ts +0 -4
- package/dist/lib/components/navigation/SideNavigationCategory.js +0 -26
- package/dist/lib/components/navigation/SideNavigationCategory.js.map +0 -1
- package/dist/lib/components/navigation/SideNavigationItem.d.ts +0 -9
- package/dist/lib/components/navigation/SideNavigationItem.js +0 -44
- package/dist/lib/components/navigation/SideNavigationItem.js.map +0 -1
- package/dist/lib/components/navigation/SideNavigationWrapper.js.map +0 -1
- package/dist/lib/components/navigation/useNavigationCollapsibleState.d.ts +0 -9
- package/dist/lib/components/navigation/useNavigationCollapsibleState.js +0 -28
- package/dist/lib/components/navigation/useNavigationCollapsibleState.js.map +0 -1
- package/dist/lib/components/navigation/util.d.ts +0 -8
- package/dist/lib/components/navigation/util.js +0 -15
- package/dist/lib/components/navigation/util.js.map +0 -1
- package/dist/lib/plugins/openapi/MethodBadge.d.ts +0 -13
- package/dist/lib/plugins/openapi/MethodBadge.js +0 -26
- package/dist/lib/plugins/openapi/MethodBadge.js.map +0 -1
- package/dist/lib/util/traverseNavigation.d.ts +0 -6
- package/dist/lib/util/traverseNavigation.js +0 -30
- package/dist/lib/util/traverseNavigation.js.map +0 -1
- package/lib/AnchorLink-BZcpTwOs.js.map +0 -1
- package/lib/DevPortalProvider-BWeAysxF.js.map +0 -1
- package/lib/DeveloperHint-DQVwIery.js +0 -10
- package/lib/MdxPage-CA1WmW14.js.map +0 -1
- package/lib/Route-D70pGn9n.js +0 -13
- package/lib/Spinner-Coi7ORUV.js +0 -244
- package/lib/Spinner-Coi7ORUV.js.map +0 -1
- package/lib/index-Bl6YeerK.js.map +0 -1
- package/lib/index-Dt-pU7Vu.js +0 -916
- package/lib/index-Dt-pU7Vu.js.map +0 -1
- package/lib/jsx-runtime-CJBdjYYx.js +0 -1526
- package/lib/jsx-runtime-CJBdjYYx.js.map +0 -1
- package/src/lib/components/navigation/SideNavigationCategory.tsx +0 -72
- package/src/lib/components/navigation/SideNavigationItem.tsx +0 -148
- package/src/lib/components/navigation/useNavigationCollapsibleState.ts +0 -42
- package/src/lib/components/navigation/util.ts +0 -38
- package/src/lib/plugins/openapi/MethodBadge.tsx +0 -36
- package/src/lib/util/traverseNavigation.ts +0 -55
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ResolvedSidebarItem, ResolvedSidebarItemCategory } from "../../../config/validators/ResolvedSidebarSchema.js";
|
|
2
|
+
export type TraverseCallback<T> = (item: ResolvedSidebarItem, parentCategories: ResolvedSidebarItem[]) => T | void;
|
|
3
|
+
export declare const traverseSidebar: <T>(sidebar: ResolvedSidebarItem[], callback: TraverseCallback<T>) => T | undefined;
|
|
4
|
+
export declare const traverseSidebarItem: <T>(item: ResolvedSidebarItem, callback: TraverseCallback<T>, parentCategories?: ResolvedSidebarItem[]) => T | undefined;
|
|
5
|
+
export declare const useCurrentItem: () => import("../../../config/validators/ResolvedSidebarSchema.js").ResolvedSidebarItemDoc | undefined;
|
|
6
|
+
export declare const useIsCategoryOpen: (category: ResolvedSidebarItemCategory) => true | undefined;
|
|
7
|
+
export declare const usePrevNext: () => {
|
|
8
|
+
prev?: {
|
|
9
|
+
label: string;
|
|
10
|
+
id: string;
|
|
11
|
+
};
|
|
12
|
+
next?: {
|
|
13
|
+
label: string;
|
|
14
|
+
id: string;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { useLocation } from "react-router-dom";
|
|
2
|
+
import { joinPath } from "../../util/joinPath.js";
|
|
3
|
+
import { useDevPortal, useTopNavigationItem, } from "../context/DevPortalProvider.js";
|
|
4
|
+
export const traverseSidebar = (sidebar, callback) => {
|
|
5
|
+
for (const item of sidebar) {
|
|
6
|
+
const result = traverseSidebarItem(item, callback);
|
|
7
|
+
if (result !== undefined)
|
|
8
|
+
return result;
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
export const traverseSidebarItem = (item, callback, parentCategories = []) => {
|
|
12
|
+
const result = callback(item, parentCategories);
|
|
13
|
+
if (result !== undefined)
|
|
14
|
+
return result;
|
|
15
|
+
if (item.type === "category") {
|
|
16
|
+
for (const child of item.items) {
|
|
17
|
+
const childResult = traverseSidebarItem(child, callback, [
|
|
18
|
+
...parentCategories,
|
|
19
|
+
item,
|
|
20
|
+
]);
|
|
21
|
+
if (childResult !== undefined)
|
|
22
|
+
return childResult;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
export const useCurrentItem = () => {
|
|
27
|
+
const location = useLocation();
|
|
28
|
+
const topNavItem = useTopNavigationItem();
|
|
29
|
+
const { sidebars } = useDevPortal();
|
|
30
|
+
const currentSidebar = topNavItem?.id ? sidebars[topNavItem.id] : [];
|
|
31
|
+
return traverseSidebar(currentSidebar, (item) => {
|
|
32
|
+
if (item.type === "doc" &&
|
|
33
|
+
joinPath(topNavItem?.id, item.id) === location.pathname) {
|
|
34
|
+
return item;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
export const useIsCategoryOpen = (category) => {
|
|
39
|
+
const location = useLocation();
|
|
40
|
+
const topNavItem = useTopNavigationItem();
|
|
41
|
+
return traverseSidebarItem(category, (item) => {
|
|
42
|
+
if (item.type === "category" && item.link) {
|
|
43
|
+
const categoryLinkPath = joinPath(topNavItem?.id, item.link.id);
|
|
44
|
+
if (categoryLinkPath === location.pathname) {
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (item.type === "doc") {
|
|
49
|
+
const docPath = joinPath(topNavItem?.id, item.id);
|
|
50
|
+
if (docPath === location.pathname) {
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
export const usePrevNext = () => {
|
|
57
|
+
const currentId = useLocation().pathname;
|
|
58
|
+
const { sidebars } = useDevPortal();
|
|
59
|
+
const topNavItem = useTopNavigationItem();
|
|
60
|
+
const currentSidebar = topNavItem?.id ? sidebars[topNavItem.id] : [];
|
|
61
|
+
let prev;
|
|
62
|
+
let next;
|
|
63
|
+
let foundCurrent = false;
|
|
64
|
+
traverseSidebar(currentSidebar, (item) => {
|
|
65
|
+
const itemId = item.type === "doc"
|
|
66
|
+
? joinPath(topNavItem?.id, item.id)
|
|
67
|
+
: item.type === "category" && item.link
|
|
68
|
+
? joinPath(topNavItem?.id, item.link.id)
|
|
69
|
+
: undefined;
|
|
70
|
+
if (!itemId)
|
|
71
|
+
return;
|
|
72
|
+
if (foundCurrent) {
|
|
73
|
+
next = { label: item.label, id: itemId };
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
if (currentId === itemId) {
|
|
77
|
+
foundCurrent = true;
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
prev = { label: item.label, id: itemId };
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
return { prev, next };
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { QueryClient } from "@tanstack/react-query";
|
|
2
|
-
import { type ReactNode } from "react";
|
|
3
2
|
import { NavigateFunction } from "react-router-dom";
|
|
3
|
+
import type { ResolvedSidebarConfig } from "../../config/validators/ResolvedSidebarSchema.js";
|
|
4
4
|
import { type AuthenticationProvider } from "../authentication/authentication.js";
|
|
5
5
|
import type { ComponentsContextType } from "../components/context/ComponentsContext.js";
|
|
6
|
-
import { type DevPortalPath } from "../components/DevPortal.js";
|
|
7
6
|
import { Slotlets } from "../components/SlotletProvider.js";
|
|
8
7
|
import type { MdxComponentsType } from "../util/MdxComponents.js";
|
|
9
8
|
import { type DevPortalPlugin } from "./plugins.js";
|
|
@@ -12,33 +11,6 @@ export interface ApiIdentity {
|
|
|
12
11
|
label: string;
|
|
13
12
|
id: string;
|
|
14
13
|
}
|
|
15
|
-
type BaseNavigationCategoryItem = {
|
|
16
|
-
label: ReactNode;
|
|
17
|
-
title?: string;
|
|
18
|
-
muted?: boolean;
|
|
19
|
-
icon?: ReactNode;
|
|
20
|
-
};
|
|
21
|
-
export type PathNavigationCategoryItem = BaseNavigationCategoryItem & {
|
|
22
|
-
path: string;
|
|
23
|
-
children?: NavigationCategoryItem[];
|
|
24
|
-
};
|
|
25
|
-
export type HrefNavigationCategoryItem = BaseNavigationCategoryItem & {
|
|
26
|
-
href: string;
|
|
27
|
-
};
|
|
28
|
-
export type NavigationCategoryItem = PathNavigationCategoryItem | HrefNavigationCategoryItem;
|
|
29
|
-
export type NavigationCategory = {
|
|
30
|
-
label: string;
|
|
31
|
-
path?: string;
|
|
32
|
-
expanded?: boolean;
|
|
33
|
-
collapsible?: boolean;
|
|
34
|
-
icon?: ReactNode;
|
|
35
|
-
children: NavigationCategoryItem[];
|
|
36
|
-
};
|
|
37
|
-
export type NavigationItem = {
|
|
38
|
-
label: string;
|
|
39
|
-
path: DevPortalPath;
|
|
40
|
-
categories?: NavigationCategory[];
|
|
41
|
-
};
|
|
42
14
|
export declare const queryClient: QueryClient;
|
|
43
15
|
export type ApiKeyCache = "api-keys";
|
|
44
16
|
export type DevPortalCacheKey = ApiKeyCache | string;
|
|
@@ -70,7 +42,11 @@ export type ZudokuContextOptions = {
|
|
|
70
42
|
metadata?: Metadata;
|
|
71
43
|
page?: Page;
|
|
72
44
|
authentication?: AuthenticationProvider;
|
|
73
|
-
|
|
45
|
+
topNavigation?: Array<{
|
|
46
|
+
id: string;
|
|
47
|
+
label: string;
|
|
48
|
+
}>;
|
|
49
|
+
sidebars?: ResolvedSidebarConfig;
|
|
74
50
|
plugins?: DevPortalPlugin[];
|
|
75
51
|
slotlets?: Slotlets;
|
|
76
52
|
mdx?: {
|
|
@@ -80,7 +56,8 @@ export type ZudokuContextOptions = {
|
|
|
80
56
|
};
|
|
81
57
|
export declare class DevPortalContext {
|
|
82
58
|
plugins: NonNullable<ZudokuContextOptions["plugins"]>;
|
|
83
|
-
|
|
59
|
+
sidebars: NonNullable<ZudokuContextOptions["sidebars"]>;
|
|
60
|
+
topNavigation: NonNullable<ZudokuContextOptions["topNavigation"]>;
|
|
84
61
|
meta: ZudokuContextOptions["metadata"];
|
|
85
62
|
page: ZudokuContextOptions["page"];
|
|
86
63
|
authentication?: ZudokuContextOptions["authentication"];
|
|
@@ -91,7 +68,7 @@ export declare class DevPortalContext {
|
|
|
91
68
|
}) => Promise<void>;
|
|
92
69
|
invalidateCache: (key: DevPortalCacheKey[]) => Promise<void>;
|
|
93
70
|
getApiIdentities: () => Promise<ApiIdentity[]>;
|
|
94
|
-
|
|
71
|
+
getPluginNavigation: (path: string) => Promise<import("../../config/validators/ResolvedSidebarSchema.js").ResolvedSidebarItem[]>;
|
|
95
72
|
signRequest: (request: Request) => Promise<Request>;
|
|
96
73
|
}
|
|
97
74
|
export {};
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { QueryClient } from "@tanstack/react-query";
|
|
2
|
+
import { joinPath } from "../util/joinPath.js";
|
|
2
3
|
import { isApiIdentityPlugin, isNavigationPlugin, needsInitialization, } from "./plugins.js";
|
|
3
4
|
export const queryClient = new QueryClient();
|
|
4
5
|
export class DevPortalContext {
|
|
5
|
-
plugins
|
|
6
|
-
|
|
6
|
+
plugins;
|
|
7
|
+
sidebars;
|
|
8
|
+
topNavigation;
|
|
7
9
|
meta;
|
|
8
10
|
page;
|
|
9
11
|
authentication;
|
|
10
12
|
navigationPlugins;
|
|
11
13
|
constructor(config) {
|
|
12
14
|
this.plugins = config.plugins ?? [];
|
|
13
|
-
this.
|
|
15
|
+
this.topNavigation = config.topNavigation ?? [];
|
|
16
|
+
this.sidebars = config.sidebars ?? {};
|
|
14
17
|
this.navigationPlugins = this.plugins.filter(isNavigationPlugin);
|
|
15
18
|
this.authentication = config.authentication;
|
|
16
19
|
this.meta = config.metadata;
|
|
@@ -30,8 +33,8 @@ export class DevPortalContext {
|
|
|
30
33
|
.map((plugin) => plugin.getIdentities(this)));
|
|
31
34
|
return keys.flat();
|
|
32
35
|
};
|
|
33
|
-
|
|
34
|
-
const navigations = await Promise.all(this.navigationPlugins.map(
|
|
36
|
+
getPluginNavigation = async (path) => {
|
|
37
|
+
const navigations = await Promise.all(this.navigationPlugins.map((plugin) => plugin.getNavigation?.(joinPath(path))));
|
|
35
38
|
return navigations.flatMap((nav) => nav ?? []);
|
|
36
39
|
};
|
|
37
40
|
signRequest = async (request) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevPortalContext.js","sourceRoot":"","sources":["../../../src/lib/core/DevPortalContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"DevPortalContext.js","sourceRoot":"","sources":["../../../src/lib/core/DevPortalContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,23 @@
|
|
|
1
1
|
import { type ReactElement } from "react";
|
|
2
2
|
import { NavigateFunction, type RouteObject } from "react-router-dom";
|
|
3
|
+
import type { ResolvedSidebar } from "../../config/validators/ResolvedSidebarSchema.js";
|
|
3
4
|
import { MdxComponentsType } from "../util/MdxComponents.js";
|
|
4
|
-
import { DevPortalContext, type ApiIdentity
|
|
5
|
-
export type PluginNavigationCategory = {
|
|
6
|
-
path: string;
|
|
7
|
-
} & NavigationCategory;
|
|
5
|
+
import { DevPortalContext, type ApiIdentity } from "./DevPortalContext.js";
|
|
8
6
|
export type DevPortalPlugin = CommonPlugin | ProfileMenuPlugin | NavigationPlugin | ApiIdentityPlugin;
|
|
9
7
|
export interface NavigationPlugin {
|
|
10
8
|
getRoutes: () => RouteObject[];
|
|
11
|
-
getNavigation?: (path: string) => Promise<
|
|
9
|
+
getNavigation?: (path: string) => Promise<ResolvedSidebar>;
|
|
12
10
|
}
|
|
13
11
|
export interface ApiIdentityPlugin {
|
|
14
12
|
getIdentities: (context: DevPortalContext) => Promise<ApiIdentity[]>;
|
|
15
13
|
}
|
|
16
14
|
export interface ProfileMenuPlugin {
|
|
17
|
-
getProfileMenuItems: (context: DevPortalContext) =>
|
|
15
|
+
getProfileMenuItems: (context: DevPortalContext) => ProfileNavigationItem[];
|
|
18
16
|
}
|
|
19
|
-
export type
|
|
17
|
+
export type ProfileNavigationItem = {
|
|
20
18
|
label: string;
|
|
21
19
|
path?: string;
|
|
22
|
-
children?:
|
|
20
|
+
children?: ProfileNavigationItem[];
|
|
23
21
|
};
|
|
24
22
|
export interface CommonPlugin {
|
|
25
23
|
initialize?: (context: DevPortalContext, options: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../../src/lib/core/plugins.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../../src/lib/core/plugins.ts"],"names":[],"mappings":"AAwCA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,GAAoB,EACM,EAAE,CAC5B,qBAAqB,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,mBAAmB,KAAK,UAAU,CAAC;AAEhF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,GAAoB,EACK,EAAE,CAC3B,WAAW,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,CAAC;AAE5D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,GAAoB,EACC,EAAE,CACvB,YAAY,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,UAAU,CAAC;AAE9D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAoB,EAAuB,EAAE,CACnE,SAAS,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,CAAC;AAExD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,GAAoB,EACC,EAAE,CACvB,kBAAkB,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,gBAAgB,KAAK,UAAU,CAAC;AAE1E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,GAAoB,EACM,EAAE,CAC5B,eAAe,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,aAAa,KAAK,UAAU,CAAC"}
|
|
@@ -1,31 +1,20 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useMDXComponents } from "@mdx-js/react";
|
|
3
3
|
import { Helmet } from "@zudoku/react-helmet-async";
|
|
4
|
-
import {
|
|
5
|
-
import { Link, useLocation } from "react-router-dom";
|
|
4
|
+
import { Link } from "react-router-dom";
|
|
6
5
|
import { CategoryHeading } from "../../components/CategoryHeading.js";
|
|
7
6
|
import { Heading } from "../../components/Heading.js";
|
|
8
7
|
import { ProseClasses } from "../../components/Markdown.js";
|
|
9
|
-
import {
|
|
10
|
-
import { isPathItem } from "../../components/navigation/util.js";
|
|
8
|
+
import { useCurrentItem, usePrevNext, } from "../../components/navigation/utils.js";
|
|
11
9
|
import { cn } from "../../util/cn.js";
|
|
12
10
|
import slugify from "../../util/slugify.js";
|
|
13
|
-
import { traverseNavigation } from "../../util/traverseNavigation.js";
|
|
14
11
|
import { Toc } from "./Toc.js";
|
|
15
12
|
const MarkdownHeadings = {
|
|
16
13
|
h2: ({ children, id }) => (_jsx(Heading, { level: 2, id: id, registerSidebarAnchor: true, children: children })),
|
|
17
14
|
h3: ({ children, id }) => (_jsxs(Heading, { level: 3, id: id, registerSidebarAnchor: true, children: [" ", children] })),
|
|
18
15
|
};
|
|
19
16
|
export const MdxPage = ({ mdxComponent: MdxComponent, frontmatter = {}, defaultOptions, tableOfContents, }) => {
|
|
20
|
-
const
|
|
21
|
-
const location = useLocation();
|
|
22
|
-
const categoryTitle = navItem
|
|
23
|
-
? traverseNavigation(navItem, (_node, fullPath, parentNodes) => {
|
|
24
|
-
if (fullPath === location.pathname) {
|
|
25
|
-
return parentNodes.at(0)?.label;
|
|
26
|
-
}
|
|
27
|
-
})
|
|
28
|
-
: undefined;
|
|
17
|
+
const categoryTitle = useCurrentItem()?.categoryLabel;
|
|
29
18
|
const title = frontmatter.title;
|
|
30
19
|
const category = frontmatter.category ?? categoryTitle;
|
|
31
20
|
const hideToc = frontmatter.toc === false || defaultOptions?.toc === false;
|
|
@@ -35,27 +24,7 @@ export const MdxPage = ({ mdxComponent: MdxComponent, frontmatter = {}, defaultO
|
|
|
35
24
|
// if `title` is provided by frontmatter it does not appear in the table of contents
|
|
36
25
|
tableOfContents.filter((item) => item.depth === 2);
|
|
37
26
|
const showToc = !hideToc && tocEntries.length > 0;
|
|
38
|
-
const { prev, next } =
|
|
39
|
-
|
|
40
|
-
let next = { path: "", label: "" };
|
|
41
|
-
let shouldStop = false;
|
|
42
|
-
if (!navItem)
|
|
43
|
-
return { prev, next };
|
|
44
|
-
traverseNavigation(navItem, (node, fullPath) => {
|
|
45
|
-
const item = { path: fullPath, label: node.label };
|
|
46
|
-
if (shouldStop && isPathItem(node) && !node.children?.length) {
|
|
47
|
-
next = item;
|
|
48
|
-
return true;
|
|
49
|
-
}
|
|
50
|
-
if (fullPath === location.pathname) {
|
|
51
|
-
shouldStop = true;
|
|
52
|
-
}
|
|
53
|
-
if (!shouldStop && isPathItem(node) && !node.children?.length) {
|
|
54
|
-
prev = item;
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
return { prev, next };
|
|
58
|
-
}, [navItem, location.pathname]);
|
|
59
|
-
return (_jsxs("div", { className: "xl:grid grid-cols-[--sidecar-grid-cols] gap-8 justify-between", children: [_jsx(Helmet, { children: _jsx("title", { children: pageTitle }) }), _jsxs("div", { className: cn(ProseClasses, "max-w-full xl:w-full xl:max-w-prose flex-1 flex-shrink pt-[--padding-content-top] pb-[--padding-content-bottom]"), children: [_jsxs("header", { children: [category && _jsx(CategoryHeading, { children: category }), title && (_jsx(Heading, { level: 1, id: slugify(title, { lower: true }), children: title })), frontmatter.description && (_jsx("p", { className: "prose-lg", children: frontmatter.description }))] }), _jsx(MdxComponent, { components: { ...useMDXComponents(), ...MarkdownHeadings } }), !hidePager && (_jsxs(_Fragment, { children: [_jsx("hr", {}), _jsxs("div", { className: "not-prose flex items-center justify-between gap-8", children: [prev.path ? (_jsxs(Link, { to: prev.path, className: "flex flex-col items-stretch gap-2 flex-1 truncate border rounded px-6 py-4 text-start hover:border-primary/85 transition shadow-sm hover:shadow-md", title: typeof prev.label === "string" ? prev.label : undefined, children: [_jsx("div", { className: "text-sm text-muted-foreground", children: "\u2190 Previous page" }), _jsx("div", { className: "text-lg text-primary truncate", children: prev.label })] })) : (_jsx("div", { className: "flex-1" })), next.path ? (_jsxs(Link, { to: next.path, className: "flex flex-col items-stretch gap-2 flex-1 truncate border rounded px-6 py-4 text-end hover:border-primary/85 transition shadow-sm hover:shadow-md", title: typeof next.label === "string" ? next.label : undefined, children: [_jsx("div", { className: "text-sm text-muted-foreground", children: "Next page \u2192" }), _jsx("div", { className: "text-lg text-primary truncate", children: next.label })] })) : (_jsx("div", { className: "flex-1" }))] })] }))] }), _jsx("div", { className: "hidden xl:block", children: showToc && _jsx(Toc, { entries: tocEntries }) })] }));
|
|
27
|
+
const { prev, next } = usePrevNext();
|
|
28
|
+
return (_jsxs("div", { className: "xl:grid grid-cols-[--sidecar-grid-cols] gap-8 justify-between", children: [_jsx(Helmet, { children: _jsx("title", { children: pageTitle }) }), _jsxs("div", { className: cn(ProseClasses, "max-w-full xl:w-full xl:max-w-prose flex-1 flex-shrink pt-[--padding-content-top] pb-[--padding-content-bottom]"), children: [_jsxs("header", { children: [category && _jsx(CategoryHeading, { children: category }), title && (_jsx(Heading, { level: 1, id: slugify(title, { lower: true }), children: title })), frontmatter.description && (_jsx("p", { className: "prose-lg", children: frontmatter.description }))] }), _jsx(MdxComponent, { components: { ...useMDXComponents(), ...MarkdownHeadings } }), !hidePager && (_jsxs(_Fragment, { children: [_jsx("hr", {}), _jsxs("div", { className: "not-prose flex items-center justify-between gap-8", children: [prev ? (_jsxs(Link, { to: prev.id, className: "flex flex-col items-stretch gap-2 flex-1 truncate border rounded px-6 py-4 text-start hover:border-primary/85 transition shadow-sm hover:shadow-md", title: prev.label, children: [_jsx("div", { className: "text-sm text-muted-foreground", children: "\u2190 Previous page" }), _jsx("div", { className: "text-lg text-primary truncate", children: prev.label })] })) : (_jsx("div", { className: "flex-1" })), next ? (_jsxs(Link, { to: next.id, className: "flex flex-col items-stretch gap-2 flex-1 truncate border rounded px-6 py-4 text-end hover:border-primary/85 transition shadow-sm hover:shadow-md", title: next.label, children: [_jsx("div", { className: "text-sm text-muted-foreground", children: "Next page \u2192" }), _jsx("div", { className: "text-lg text-primary truncate", children: next.label })] })) : (_jsx("div", { className: "flex-1" }))] })] }))] }), _jsx("div", { className: "hidden xl:block", children: showToc && _jsx(Toc, { entries: tocEntries }) })] }));
|
|
60
29
|
};
|
|
61
30
|
//# sourceMappingURL=MdxPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MdxPage.js","sourceRoot":"","sources":["../../../../src/lib/plugins/markdown/MdxPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"MdxPage.js","sourceRoot":"","sources":["../../../../src/lib/plugins/markdown/MdxPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,45 +1,22 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const { default: Component, ...props } = await importPromise();
|
|
23
|
-
return {
|
|
24
|
-
element: (_jsx(MdxPage, { mdxComponent: Component, ...props, defaultOptions: defaultOptions })),
|
|
25
|
-
};
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
});
|
|
29
|
-
const rootRoutes = Array.from(new Set(routes.map((route) => route.path.split("/").at(0)))).map((dir) => ({
|
|
30
|
-
path: `/${dir}`,
|
|
31
|
-
element: _jsx(Redirect, {}),
|
|
32
|
-
}));
|
|
33
|
-
return [...routes, ...rootRoutes];
|
|
34
|
-
};
|
|
35
|
-
const Redirect = () => {
|
|
36
|
-
const navItem = useTopNavigationItem();
|
|
37
|
-
if (!navItem)
|
|
38
|
-
return null;
|
|
39
|
-
return traverseNavigation(navItem, (node, fullPath) => {
|
|
40
|
-
if ("children" in node || !isPathItem(node))
|
|
41
|
-
return;
|
|
42
|
-
return _jsx(Navigate, { to: fullPath, replace: true });
|
|
43
|
-
});
|
|
44
|
-
};
|
|
2
|
+
export const generateRoutes = (markdownFiles, defaultOptions) => Object.entries(markdownFiles).flatMap(([file, importPromise]) => {
|
|
3
|
+
// @todo we can pass in the folder name and then filter the markdown files based on that path
|
|
4
|
+
const match = file.match(/pages\/(.*).mdx?$/);
|
|
5
|
+
const path = match?.at(1);
|
|
6
|
+
if (!path)
|
|
7
|
+
return [];
|
|
8
|
+
const pathSegments = path.split("/");
|
|
9
|
+
const isIndexFile = pathSegments.at(-1) === "index";
|
|
10
|
+
const routePath = isIndexFile ? pathSegments.slice(0, -1).join("/") : path;
|
|
11
|
+
return {
|
|
12
|
+
path: routePath,
|
|
13
|
+
lazy: async () => {
|
|
14
|
+
const { MdxPage } = await import("./MdxPage.js");
|
|
15
|
+
const { default: Component, ...props } = await importPromise();
|
|
16
|
+
return {
|
|
17
|
+
element: (_jsx(MdxPage, { mdxComponent: Component, ...props, defaultOptions: defaultOptions })),
|
|
18
|
+
};
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
});
|
|
45
22
|
//# sourceMappingURL=generateRoutes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateRoutes.js","sourceRoot":"","sources":["../../../../src/lib/plugins/markdown/generateRoutes.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"generateRoutes.js","sourceRoot":"","sources":["../../../../src/lib/plugins/markdown/generateRoutes.tsx"],"names":[],"mappings":";AAOA,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,aAAqD,EACrD,cAA6C,EAC9B,EAAE,CACjB,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,EAAE;IAC9D,6FAA6F;IAC7F,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAE1B,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;IACpD,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE3E,OAAO;QACL,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;YACjD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,aAAa,EAAE,CAAC;YAC/D,OAAO;gBACL,OAAO,EAAE,CACP,KAAC,OAAO,IACN,YAAY,EAAE,SAAS,KACnB,KAAK,EACT,cAAc,EAAE,cAAc,GAC9B,CACH;aACF,CAAC;QACJ,CAAC;KACoB,CAAC;AAC1B,CAAC,CAAC,CAAC"}
|
|
@@ -2,12 +2,12 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { HTTPSnippet } from "@zudoku/httpsnippet";
|
|
3
3
|
import { Fragment, useMemo, useTransition } from "react";
|
|
4
4
|
import { useSearchParams } from "react-router-dom";
|
|
5
|
+
import { TextColorMap } from "../../components/navigation/SidebarBadge.js";
|
|
5
6
|
import { SyntaxHighlight } from "../../components/SyntaxHighlight.js";
|
|
6
7
|
import { cn } from "../../util/cn.js";
|
|
7
8
|
import { ColorizedParam } from "./ColorizedParam.js";
|
|
8
9
|
import { useOasConfig } from "./context.js";
|
|
9
10
|
import { graphql } from "./graphql/index.js";
|
|
10
|
-
import { MethodTextColorMap } from "./MethodBadge.js";
|
|
11
11
|
import { PlaygroundDialogWrapper } from "./PlaygroundDialogWrapper.js";
|
|
12
12
|
import { RequestBodySidecarBox } from "./RequestBodySidecarBox.js";
|
|
13
13
|
import { ResponsesSidecarBox } from "./ResponsesSidecarBox.js";
|
|
@@ -65,6 +65,16 @@ export const GetServerQuery = graphql(/* GraphQL */ `
|
|
|
65
65
|
}
|
|
66
66
|
`);
|
|
67
67
|
const context = { suspense: true };
|
|
68
|
+
const methodToColor = {
|
|
69
|
+
get: TextColorMap.green,
|
|
70
|
+
post: TextColorMap.blue,
|
|
71
|
+
put: TextColorMap.yellow,
|
|
72
|
+
delete: TextColorMap.red,
|
|
73
|
+
patch: TextColorMap.purple,
|
|
74
|
+
options: TextColorMap.indigo,
|
|
75
|
+
head: TextColorMap.gray,
|
|
76
|
+
trace: TextColorMap.gray,
|
|
77
|
+
};
|
|
68
78
|
export const Sidecar = ({ operation, }) => {
|
|
69
79
|
const oasConfig = useOasConfig();
|
|
70
80
|
const [result] = useQuery({
|
|
@@ -72,7 +82,7 @@ export const Sidecar = ({ operation, }) => {
|
|
|
72
82
|
variables: oasConfig,
|
|
73
83
|
context,
|
|
74
84
|
});
|
|
75
|
-
const methodTextColor =
|
|
85
|
+
const methodTextColor = methodToColor[operation.method.toLocaleLowerCase()] ?? TextColorMap.gray;
|
|
76
86
|
const [searchParams, setSearchParams] = useSearchParams();
|
|
77
87
|
const [, startTransition] = useTransition();
|
|
78
88
|
const selectedLang = searchParams.get("lang") ?? "shell";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidecar.js","sourceRoot":"","sources":["../../../../src/lib/plugins/openapi/Sidecar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAEtE,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"Sidecar.js","sourceRoot":"","sources":["../../../../src/lib/plugins/openapi/Sidecar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { matchPath, useRouteError } from "react-router-dom";
|
|
3
3
|
import { graphql } from "./graphql/index.js";
|
|
4
|
-
import { MethodBadge } from "./MethodBadge.js";
|
|
5
4
|
import { Client as UrqlClient, cacheExchange, fetchExchange, } from "./util/urql.js";
|
|
6
5
|
import { useQuery } from "@tanstack/react-query";
|
|
7
6
|
import { CirclePlayIcon, LogInIcon } from "lucide-react";
|
|
@@ -10,6 +9,7 @@ import { useAuth } from "../../authentication/hook.js";
|
|
|
10
9
|
import { ErrorPage } from "../../components/ErrorPage.js";
|
|
11
10
|
import { SyntaxHighlight } from "../../components/SyntaxHighlight.js";
|
|
12
11
|
import { Button } from "../../ui/Button.js";
|
|
12
|
+
import { joinPath } from "../../util/joinPath.js";
|
|
13
13
|
import { PlaygroundDialog } from "./playground/PlaygroundDialog.js";
|
|
14
14
|
import { GetServerQuery } from "./Sidecar.js";
|
|
15
15
|
const GetCategoriesQuery = graphql(`
|
|
@@ -37,7 +37,7 @@ const OpenApiErrorPage = () => {
|
|
|
37
37
|
return (_jsx(ErrorPage, { category: "Error", title: "An error occurred", message: message }));
|
|
38
38
|
};
|
|
39
39
|
export const openApiPlugin = (config) => {
|
|
40
|
-
const basePath = config.
|
|
40
|
+
const basePath = joinPath(config.navigationId ?? "/reference");
|
|
41
41
|
const client = config.server
|
|
42
42
|
? new UrqlClient({
|
|
43
43
|
url: config.server,
|
|
@@ -86,21 +86,24 @@ export const openApiPlugin = (config) => {
|
|
|
86
86
|
const categories = data.schema.tags
|
|
87
87
|
.filter((tag) => tag.operations.length > 0)
|
|
88
88
|
.map((tag) => ({
|
|
89
|
-
|
|
89
|
+
type: "category",
|
|
90
90
|
label: tag.name ?? "",
|
|
91
91
|
collapsible: false,
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
92
|
+
collapsed: false,
|
|
93
|
+
items: tag.operations.map((operation) => ({
|
|
94
|
+
type: "link",
|
|
95
|
+
label: operation.summary ?? operation.path,
|
|
96
|
+
href: `#${operation.slug}`,
|
|
97
|
+
badge: {
|
|
98
|
+
label: operation.method,
|
|
99
|
+
color: "green",
|
|
100
|
+
},
|
|
97
101
|
})),
|
|
98
102
|
}));
|
|
99
103
|
categories.unshift({
|
|
100
|
-
|
|
104
|
+
type: "link",
|
|
101
105
|
label: "Overview",
|
|
102
|
-
|
|
103
|
-
children: [{ path: "#description", label: "Description" }],
|
|
106
|
+
href: "#description",
|
|
104
107
|
});
|
|
105
108
|
return categories;
|
|
106
109
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/plugins/openapi/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAoB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/plugins/openapi/index.tsx"],"names":[],"mappings":"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"}
|