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
|
@@ -1,45 +1,44 @@
|
|
|
1
|
-
import { j as e
|
|
2
|
-
import { A as
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { s as J } from "./slugify-CiPVjteN.js";
|
|
1
|
+
import { j as e } from "./jsx-runtime-B6kdoens.js";
|
|
2
|
+
import { A, c as T, d as P, a as C, b as M } from "./utils-CzT_9Tsn.js";
|
|
3
|
+
import { L as y } from "./index-7kcHaXD6.js";
|
|
4
|
+
import { C as H } from "./CategoryHeading-BWq12Bfa.js";
|
|
5
|
+
import { c as L, d as R, a as x, P as S, H as m } from "./Markdown-B_Gax7at.js";
|
|
6
|
+
import { s as E } from "./slugify-CiPVjteN.js";
|
|
7
|
+
import { useRef as f, useState as I, useEffect as _ } from "react";
|
|
9
8
|
/**
|
|
10
9
|
* @license lucide-react v0.378.0 - ISC
|
|
11
10
|
*
|
|
12
11
|
* This source code is licensed under the ISC license.
|
|
13
12
|
* See the LICENSE file in the root directory of this source tree.
|
|
14
13
|
*/
|
|
15
|
-
const
|
|
14
|
+
const $ = L("ListTree", [
|
|
16
15
|
["path", { d: "M21 12h-8", key: "1bmf0i" }],
|
|
17
16
|
["path", { d: "M21 6H8", key: "1pqkrb" }],
|
|
18
17
|
["path", { d: "M21 18h-8", key: "1tm79t" }],
|
|
19
18
|
["path", { d: "M3 6v4c0 1.1.9 2 2 2h3", key: "1ywdgy" }],
|
|
20
19
|
["path", { d: "M3 10v6c0 1.1.9 2 2 2h3", key: "2wc746" }]
|
|
21
|
-
]),
|
|
20
|
+
]), N = "data-active", b = ({
|
|
22
21
|
item: r,
|
|
23
22
|
children: t,
|
|
24
23
|
className: s,
|
|
25
|
-
isActive:
|
|
24
|
+
isActive: c
|
|
26
25
|
}) => /* @__PURE__ */ e.jsxs(
|
|
27
26
|
"li",
|
|
28
27
|
{
|
|
29
|
-
className:
|
|
28
|
+
className: x(
|
|
30
29
|
"truncate",
|
|
31
|
-
|
|
30
|
+
c ? "text-primary" : "text-foreground/65 dark:text-foreground/75",
|
|
32
31
|
s
|
|
33
32
|
),
|
|
34
33
|
title: r.value,
|
|
35
34
|
children: [
|
|
36
35
|
/* @__PURE__ */ e.jsx(
|
|
37
|
-
|
|
36
|
+
A,
|
|
38
37
|
{
|
|
39
38
|
to: `#${r.id}`,
|
|
40
|
-
[
|
|
41
|
-
className:
|
|
42
|
-
|
|
39
|
+
[N]: r.id,
|
|
40
|
+
className: x(
|
|
41
|
+
c ? "text-primary" : "text-foreground/65 dark:text-foreground/75 hover:text-foreground"
|
|
43
42
|
),
|
|
44
43
|
children: r.value
|
|
45
44
|
}
|
|
@@ -47,30 +46,30 @@ const K = V("ListTree", [
|
|
|
47
46
|
t
|
|
48
47
|
]
|
|
49
48
|
}
|
|
50
|
-
),
|
|
51
|
-
const { activeAnchor: t } =
|
|
49
|
+
), q = ({ entries: r }) => {
|
|
50
|
+
const { activeAnchor: t } = R(), s = f(null), c = f(!1), [p, i] = I({
|
|
52
51
|
top: 0,
|
|
53
52
|
opacity: 0
|
|
54
53
|
});
|
|
55
|
-
return
|
|
54
|
+
return _(() => {
|
|
56
55
|
if (!s.current) return;
|
|
57
|
-
const
|
|
58
|
-
`[${
|
|
56
|
+
const a = s.current.querySelector(
|
|
57
|
+
`[${N}='${t}']`
|
|
59
58
|
);
|
|
60
|
-
if (!
|
|
61
|
-
|
|
59
|
+
if (!a) {
|
|
60
|
+
i({ top: 0, opacity: 0 });
|
|
62
61
|
return;
|
|
63
62
|
}
|
|
64
|
-
const n = s.current.getBoundingClientRect().top,
|
|
65
|
-
|
|
63
|
+
const n = s.current.getBoundingClientRect().top, h = a.getBoundingClientRect().top;
|
|
64
|
+
i({
|
|
66
65
|
opacity: 1,
|
|
67
|
-
top: `${
|
|
68
|
-
}), !
|
|
69
|
-
|
|
66
|
+
top: `${h - n}px`
|
|
67
|
+
}), !c.current && requestIdleCallback(() => {
|
|
68
|
+
c.current = !0;
|
|
70
69
|
});
|
|
71
70
|
}, [t]), /* @__PURE__ */ e.jsxs("aside", { className: "sticky top-[--header-height] h-[calc(100vh-var(--header-height))] pt-[--padding-content-top] pb-[--padding-content-bottom] overflow-y-auto ps-1 text-sm", children: [
|
|
72
71
|
/* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-2 font-medium mb-2", children: [
|
|
73
|
-
/* @__PURE__ */ e.jsx(
|
|
72
|
+
/* @__PURE__ */ e.jsx($, { size: 16 }),
|
|
74
73
|
"On this page"
|
|
75
74
|
] }),
|
|
76
75
|
/* @__PURE__ */ e.jsxs("div", { className: "relative ms-2 ps-4", children: [
|
|
@@ -78,11 +77,11 @@ const K = V("ListTree", [
|
|
|
78
77
|
/* @__PURE__ */ e.jsx(
|
|
79
78
|
"div",
|
|
80
79
|
{
|
|
81
|
-
className:
|
|
80
|
+
className: x(
|
|
82
81
|
"absolute -left-px -translate-y-1 h-6 w-[4px] rounded bg-primary",
|
|
83
|
-
|
|
82
|
+
c.current && "ease-out [transition:top_150ms,opacity_325ms]"
|
|
84
83
|
),
|
|
85
|
-
style:
|
|
84
|
+
style: p
|
|
86
85
|
}
|
|
87
86
|
),
|
|
88
87
|
/* @__PURE__ */ e.jsx(
|
|
@@ -90,14 +89,14 @@ const K = V("ListTree", [
|
|
|
90
89
|
{
|
|
91
90
|
ref: s,
|
|
92
91
|
className: "relative font-medium list-none space-y-2",
|
|
93
|
-
children: r.map((
|
|
94
|
-
|
|
92
|
+
children: r.map((a) => /* @__PURE__ */ e.jsx(
|
|
93
|
+
b,
|
|
95
94
|
{
|
|
96
|
-
isActive:
|
|
97
|
-
item:
|
|
95
|
+
isActive: a.id === t,
|
|
96
|
+
item: a,
|
|
98
97
|
className: "pl-0",
|
|
99
|
-
children:
|
|
100
|
-
|
|
98
|
+
children: a.children && /* @__PURE__ */ e.jsx("ul", { className: "list-none pl-4 pt-2 space-y-2", children: a.children.map((n) => /* @__PURE__ */ e.jsx(
|
|
99
|
+
b,
|
|
101
100
|
{
|
|
102
101
|
item: n,
|
|
103
102
|
isActive: n.id === t
|
|
@@ -105,85 +104,72 @@ const K = V("ListTree", [
|
|
|
105
104
|
n.id
|
|
106
105
|
)) })
|
|
107
106
|
},
|
|
108
|
-
|
|
107
|
+
a.id
|
|
109
108
|
))
|
|
110
109
|
}
|
|
111
110
|
)
|
|
112
111
|
] })
|
|
113
112
|
] });
|
|
114
|
-
},
|
|
115
|
-
h2: ({ children: r, id: t }) => /* @__PURE__ */ e.jsx(
|
|
116
|
-
h3: ({ children: r, id: t }) => /* @__PURE__ */ e.jsxs(
|
|
113
|
+
}, B = {
|
|
114
|
+
h2: ({ children: r, id: t }) => /* @__PURE__ */ e.jsx(m, { level: 2, id: t, registerSidebarAnchor: !0, children: r }),
|
|
115
|
+
h3: ({ children: r, id: t }) => /* @__PURE__ */ e.jsxs(m, { level: 3, id: t, registerSidebarAnchor: !0, children: [
|
|
117
116
|
" ",
|
|
118
117
|
r
|
|
119
118
|
] })
|
|
120
|
-
},
|
|
119
|
+
}, J = ({
|
|
121
120
|
mdxComponent: r,
|
|
122
121
|
frontmatter: t = {},
|
|
123
122
|
defaultOptions: s,
|
|
124
|
-
tableOfContents:
|
|
123
|
+
tableOfContents: c
|
|
125
124
|
}) => {
|
|
126
|
-
var j,
|
|
127
|
-
const
|
|
128
|
-
|
|
129
|
-
if (x === d.pathname)
|
|
130
|
-
return (o = m.at(0)) == null ? void 0 : o.label;
|
|
131
|
-
}) : void 0, n = t.title, u = t.category ?? i, I = t.toc === !1 || (s == null ? void 0 : s.toc) === !1, L = ((j = a.find((l) => l.depth === 1)) == null ? void 0 : j.value) ?? n, R = t.disablePager ?? (s == null ? void 0 : s.disablePager) ?? !1, f = ((y = a.find((l) => l.depth === 1)) == null ? void 0 : y.children) ?? // if `title` is provided by frontmatter it does not appear in the table of contents
|
|
132
|
-
a.filter((l) => l.depth === 2), S = !I && f.length > 0, { prev: p, next: h } = D(() => {
|
|
133
|
-
let l = { path: "", label: "" }, x = { path: "", label: "" }, m = !1;
|
|
134
|
-
return c ? (M(c, (o, b) => {
|
|
135
|
-
var w, k;
|
|
136
|
-
const N = { path: b, label: o.label };
|
|
137
|
-
if (m && P(o) && !((w = o.children) != null && w.length))
|
|
138
|
-
return x = N, !0;
|
|
139
|
-
b === d.pathname && (m = !0), !m && P(o) && !((k = o.children) != null && k.length) && (l = N);
|
|
140
|
-
}), { prev: l, next: x }) : { prev: l, next: x };
|
|
141
|
-
}, [c, d.pathname]);
|
|
125
|
+
var g, j, v;
|
|
126
|
+
const p = (g = T()) == null ? void 0 : g.categoryLabel, i = t.title, a = t.category ?? p, n = t.toc === !1 || (s == null ? void 0 : s.toc) === !1, h = ((j = c.find((o) => o.depth === 1)) == null ? void 0 : j.value) ?? i, w = t.disablePager ?? (s == null ? void 0 : s.disablePager) ?? !1, u = ((v = c.find((o) => o.depth === 1)) == null ? void 0 : v.children) ?? // if `title` is provided by frontmatter it does not appear in the table of contents
|
|
127
|
+
c.filter((o) => o.depth === 2), k = !n && u.length > 0, { prev: l, next: d } = P();
|
|
142
128
|
return /* @__PURE__ */ e.jsxs("div", { className: "xl:grid grid-cols-[--sidecar-grid-cols] gap-8 justify-between", children: [
|
|
143
|
-
/* @__PURE__ */ e.jsx(
|
|
129
|
+
/* @__PURE__ */ e.jsx(C, { children: /* @__PURE__ */ e.jsx("title", { children: h }) }),
|
|
144
130
|
/* @__PURE__ */ e.jsxs(
|
|
145
131
|
"div",
|
|
146
132
|
{
|
|
147
|
-
className:
|
|
148
|
-
|
|
133
|
+
className: x(
|
|
134
|
+
S,
|
|
149
135
|
"max-w-full xl:w-full xl:max-w-prose flex-1 flex-shrink pt-[--padding-content-top] pb-[--padding-content-bottom]"
|
|
150
136
|
),
|
|
151
137
|
children: [
|
|
152
138
|
/* @__PURE__ */ e.jsxs("header", { children: [
|
|
153
|
-
|
|
154
|
-
|
|
139
|
+
a && /* @__PURE__ */ e.jsx(H, { children: a }),
|
|
140
|
+
i && /* @__PURE__ */ e.jsx(m, { level: 1, id: E(i, { lower: !0 }), children: i }),
|
|
155
141
|
t.description && /* @__PURE__ */ e.jsx("p", { className: "prose-lg", children: t.description })
|
|
156
142
|
] }),
|
|
157
143
|
/* @__PURE__ */ e.jsx(
|
|
158
144
|
r,
|
|
159
145
|
{
|
|
160
|
-
components: { ...
|
|
146
|
+
components: { ...M(), ...B }
|
|
161
147
|
}
|
|
162
148
|
),
|
|
163
|
-
!
|
|
149
|
+
!w && /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
164
150
|
/* @__PURE__ */ e.jsx("hr", {}),
|
|
165
151
|
/* @__PURE__ */ e.jsxs("div", { className: "not-prose flex items-center justify-between gap-8", children: [
|
|
166
|
-
|
|
167
|
-
|
|
152
|
+
l ? /* @__PURE__ */ e.jsxs(
|
|
153
|
+
y,
|
|
168
154
|
{
|
|
169
|
-
to:
|
|
155
|
+
to: l.id,
|
|
170
156
|
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",
|
|
171
|
-
title:
|
|
157
|
+
title: l.label,
|
|
172
158
|
children: [
|
|
173
159
|
/* @__PURE__ */ e.jsx("div", { className: "text-sm text-muted-foreground", children: "← Previous page" }),
|
|
174
|
-
/* @__PURE__ */ e.jsx("div", { className: "text-lg text-primary truncate", children:
|
|
160
|
+
/* @__PURE__ */ e.jsx("div", { className: "text-lg text-primary truncate", children: l.label })
|
|
175
161
|
]
|
|
176
162
|
}
|
|
177
163
|
) : /* @__PURE__ */ e.jsx("div", { className: "flex-1" }),
|
|
178
|
-
|
|
179
|
-
|
|
164
|
+
d ? /* @__PURE__ */ e.jsxs(
|
|
165
|
+
y,
|
|
180
166
|
{
|
|
181
|
-
to:
|
|
167
|
+
to: d.id,
|
|
182
168
|
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",
|
|
183
|
-
title:
|
|
169
|
+
title: d.label,
|
|
184
170
|
children: [
|
|
185
171
|
/* @__PURE__ */ e.jsx("div", { className: "text-sm text-muted-foreground", children: "Next page →" }),
|
|
186
|
-
/* @__PURE__ */ e.jsx("div", { className: "text-lg text-primary truncate", children:
|
|
172
|
+
/* @__PURE__ */ e.jsx("div", { className: "text-lg text-primary truncate", children: d.label })
|
|
187
173
|
]
|
|
188
174
|
}
|
|
189
175
|
) : /* @__PURE__ */ e.jsx("div", { className: "flex-1" })
|
|
@@ -192,10 +178,10 @@ const K = V("ListTree", [
|
|
|
192
178
|
]
|
|
193
179
|
}
|
|
194
180
|
),
|
|
195
|
-
/* @__PURE__ */ e.jsx("div", { className: "hidden xl:block", children:
|
|
181
|
+
/* @__PURE__ */ e.jsx("div", { className: "hidden xl:block", children: k && /* @__PURE__ */ e.jsx(q, { entries: u }) })
|
|
196
182
|
] });
|
|
197
183
|
};
|
|
198
184
|
export {
|
|
199
|
-
|
|
185
|
+
J as MdxPage
|
|
200
186
|
};
|
|
201
|
-
//# sourceMappingURL=MdxPage-
|
|
187
|
+
//# sourceMappingURL=MdxPage-Crlr0GmN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MdxPage-Crlr0GmN.js","sources":["../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/list-tree.js","../src/lib/plugins/markdown/Toc.tsx","../src/lib/plugins/markdown/MdxPage.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ListTree = createLucideIcon(\"ListTree\", [\n [\"path\", { d: \"M21 12h-8\", key: \"1bmf0i\" }],\n [\"path\", { d: \"M21 6H8\", key: \"1pqkrb\" }],\n [\"path\", { d: \"M21 18h-8\", key: \"1tm79t\" }],\n [\"path\", { d: \"M3 6v4c0 1.1.9 2 2 2h3\", key: \"1ywdgy\" }],\n [\"path\", { d: \"M3 10v6c0 1.1.9 2 2 2h3\", key: \"2wc746\" }]\n]);\n\nexport { ListTree as default };\n//# sourceMappingURL=list-tree.js.map\n","import type { TocEntry } from \"@stefanprobst/rehype-extract-toc\";\nimport { ListTreeIcon } from \"lucide-react\";\nimport {\n useEffect,\n useRef,\n useState,\n type CSSProperties,\n type PropsWithChildren,\n} from \"react\";\nimport { AnchorLink } from \"../../components/AnchorLink.js\";\nimport { useViewportAnchor } from \"../../components/context/ViewportAnchorContext.js\";\nimport { cn } from \"../../util/cn.js\";\n\nconst DATA_ANCHOR_ATTR = \"data-active\";\n\nconst TocItem = ({\n item,\n children,\n className,\n isActive,\n}: PropsWithChildren<{\n item: TocEntry;\n isActive: boolean;\n className?: string;\n}>) => {\n return (\n <li\n className={cn(\n \"truncate\",\n isActive\n ? \"text-primary\"\n : \"text-foreground/65 dark:text-foreground/75\",\n className,\n )}\n title={item.value}\n >\n <AnchorLink\n to={`#${item.id}`}\n {...{ [DATA_ANCHOR_ATTR]: item.id }}\n className={cn(\n isActive\n ? \"text-primary\"\n : \"text-foreground/65 dark:text-foreground/75 hover:text-foreground\",\n )}\n >\n {item.value}\n </AnchorLink>\n {children}\n </li>\n );\n};\n\nexport const Toc = ({ entries }: { entries: TocEntry[] }) => {\n const { activeAnchor } = useViewportAnchor();\n const listWrapperRef = useRef<HTMLUListElement>(null);\n const paintedOnce = useRef(false);\n const [indicatorStyle, setIndicatorStyles] = useState<CSSProperties>({\n top: 0,\n opacity: 0,\n });\n\n // synchronize active anchor indicator with the scroll position\n useEffect(() => {\n if (!listWrapperRef.current) return;\n\n const activeElement = listWrapperRef.current.querySelector(\n `[${DATA_ANCHOR_ATTR}='${activeAnchor}']`,\n );\n\n if (!activeElement) {\n setIndicatorStyles({ top: 0, opacity: 0 });\n return;\n }\n\n const topParent = listWrapperRef.current.getBoundingClientRect().top;\n const topElement = activeElement.getBoundingClientRect().top;\n\n setIndicatorStyles({\n opacity: 1,\n top: `${topElement - topParent}px`,\n });\n\n if (paintedOnce.current) return;\n\n // after all is painted, the indicator should animate\n requestIdleCallback(() => {\n paintedOnce.current = true;\n });\n }, [activeAnchor]);\n\n return (\n <aside className=\"sticky top-[--header-height] h-[calc(100vh-var(--header-height))] pt-[--padding-content-top] pb-[--padding-content-bottom] overflow-y-auto ps-1 text-sm\">\n <div className=\"flex items-center gap-2 font-medium mb-2\">\n <ListTreeIcon size={16} />\n On this page\n </div>\n <div className=\"relative ms-2 ps-4\">\n <div className=\"absolute inset-0 right-auto bg-border w-[2px]\" />\n <div\n className={cn(\n \"absolute -left-px -translate-y-1 h-6 w-[4px] rounded bg-primary\",\n paintedOnce.current &&\n \"ease-out [transition:top_150ms,opacity_325ms]\",\n )}\n style={indicatorStyle}\n />\n <ul\n ref={listWrapperRef}\n className=\"relative font-medium list-none space-y-2\"\n >\n {entries.map((item) => (\n <TocItem\n isActive={item.id === activeAnchor}\n key={item.id}\n item={item}\n className=\"pl-0\"\n >\n {item.children && (\n <ul className=\"list-none pl-4 pt-2 space-y-2\">\n {item.children.map((child) => (\n <TocItem\n item={child}\n isActive={child.id === activeAnchor}\n key={child.id}\n />\n ))}\n </ul>\n )}\n </TocItem>\n ))}\n </ul>\n </div>\n </aside>\n );\n};\n","import { useMDXComponents } from \"@mdx-js/react\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { type PropsWithChildren } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { CategoryHeading } from \"../../components/CategoryHeading.js\";\nimport { Heading } from \"../../components/Heading.js\";\nimport { ProseClasses } from \"../../components/Markdown.js\";\nimport {\n useCurrentItem,\n usePrevNext,\n} from \"../../components/navigation/utils.js\";\nimport type { MdxComponentsType } from \"../../util/MdxComponents.js\";\nimport { cn } from \"../../util/cn.js\";\nimport slugify from \"../../util/slugify.js\";\nimport { Toc } from \"./Toc.js\";\nimport { MarkdownPluginDefaultOptions, MDXImport } from \"./index.js\";\n\nconst MarkdownHeadings = {\n h2: ({ children, id }) => (\n <Heading level={2} id={id} registerSidebarAnchor>\n {children}\n </Heading>\n ),\n h3: ({ children, id }) => (\n <Heading level={3} id={id} registerSidebarAnchor>\n {\" \"}\n {children}\n </Heading>\n ),\n} satisfies MdxComponentsType;\n\nexport const MdxPage = ({\n mdxComponent: MdxComponent,\n frontmatter = {},\n defaultOptions,\n tableOfContents,\n}: PropsWithChildren<\n Omit<MDXImport, \"default\"> & {\n mdxComponent: MDXImport[\"default\"];\n defaultOptions?: MarkdownPluginDefaultOptions;\n }\n>) => {\n const categoryTitle = useCurrentItem()?.categoryLabel;\n const title = frontmatter.title;\n const category = frontmatter.category ?? categoryTitle;\n const hideToc = frontmatter.toc === false || defaultOptions?.toc === false;\n const pageTitle =\n tableOfContents.find((item) => item.depth === 1)?.value ?? title;\n const hidePager =\n frontmatter.disablePager ?? defaultOptions?.disablePager ?? false;\n\n const tocEntries =\n tableOfContents.find((item) => item.depth === 1)?.children ??\n // if `title` is provided by frontmatter it does not appear in the table of contents\n tableOfContents.filter((item) => item.depth === 2);\n\n const showToc = !hideToc && tocEntries.length > 0;\n\n const { prev, next } = usePrevNext();\n\n return (\n <div className=\"xl:grid grid-cols-[--sidecar-grid-cols] gap-8 justify-between\">\n <Helmet>\n <title>{pageTitle}</title>\n </Helmet>\n <div\n className={cn(\n ProseClasses,\n \"max-w-full xl:w-full xl:max-w-prose flex-1 flex-shrink pt-[--padding-content-top] pb-[--padding-content-bottom]\",\n )}\n >\n <header>\n {category && <CategoryHeading>{category}</CategoryHeading>}\n {title && (\n <Heading level={1} id={slugify(title, { lower: true })}>\n {title}\n </Heading>\n )}\n {frontmatter.description && (\n <p className=\"prose-lg\">{frontmatter.description}</p>\n )}\n </header>\n <MdxComponent\n components={{ ...useMDXComponents(), ...MarkdownHeadings }}\n />\n {!hidePager && (\n <>\n <hr />\n <div className=\"not-prose flex items-center justify-between gap-8\">\n {prev ? (\n <Link\n to={prev.id}\n 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\"\n title={prev.label}\n >\n <div className=\"text-sm text-muted-foreground\">\n ← Previous page\n </div>\n <div className=\"text-lg text-primary truncate\">\n {prev.label}\n </div>\n </Link>\n ) : (\n <div className=\"flex-1\" />\n )}\n {next ? (\n <Link\n to={next.id}\n 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\"\n title={next.label}\n >\n <div className=\"text-sm text-muted-foreground\">\n Next page →\n </div>\n <div className=\"text-lg text-primary truncate\">\n {next.label}\n </div>\n </Link>\n ) : (\n <div className=\"flex-1\" />\n )}\n </div>\n </>\n )}\n </div>\n <div className=\"hidden xl:block\">\n {showToc && <Toc entries={tocEntries} />}\n </div>\n </div>\n );\n};\n"],"names":["ListTree","createLucideIcon","DATA_ANCHOR_ATTR","TocItem","item","children","className","isActive","jsxs","cn","jsx","AnchorLink","Toc","entries","activeAnchor","useViewportAnchor","listWrapperRef","useRef","paintedOnce","indicatorStyle","setIndicatorStyles","useState","useEffect","activeElement","topParent","topElement","ListTreeIcon","child","MarkdownHeadings","id","Heading","MdxPage","MdxComponent","frontmatter","defaultOptions","tableOfContents","categoryTitle","_a","useCurrentItem","title","category","hideToc","pageTitle","_b","hidePager","tocEntries","_c","showToc","prev","next","usePrevNext","Helmet","ProseClasses","CategoryHeading","slugify","useMDXComponents","Fragment","Link"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { j as e } from "./jsx-runtime-
|
|
2
|
-
import { C as g } from "./CategoryHeading-
|
|
3
|
-
import { D as w } from "./DeveloperHint-
|
|
4
|
-
import { C as S, T as q, a as L, b as I, c as T, S as $, g as N, u as k, E as R } from "./index-
|
|
5
|
-
import { c as A, h as m, H as x, a as h, P as F, I as f, S as H } from "./Markdown-
|
|
6
|
-
import { R as y, T as C, C as O, a as M } from "./index-
|
|
1
|
+
import { j as e } from "./jsx-runtime-B6kdoens.js";
|
|
2
|
+
import { C as g } from "./CategoryHeading-BWq12Bfa.js";
|
|
3
|
+
import { D as w } from "./DeveloperHint-BQSFXH01.js";
|
|
4
|
+
import { C as S, T as q, a as L, b as I, c as T, S as $, g as N, u as k, E as R } from "./index-CgCPw6Jn.js";
|
|
5
|
+
import { c as A, h as m, H as x, a as h, P as F, I as f, S as H } from "./Markdown-B_Gax7at.js";
|
|
6
|
+
import { R as y, T as C, C as O, a as M } from "./index-DkuZvRNP.js";
|
|
7
7
|
import { u as z } from "./urql-DrBfkb92.js";
|
|
8
8
|
import { useState as B } from "react";
|
|
9
|
-
import { B as E } from "./Combination-
|
|
9
|
+
import { B as E } from "./Combination-DkycFHkm.js";
|
|
10
10
|
/**
|
|
11
11
|
* @license lucide-react v0.378.0 - ISC
|
|
12
12
|
*
|
|
@@ -429,4 +429,4 @@ export {
|
|
|
429
429
|
le as OperationList,
|
|
430
430
|
W as OperationsFragment
|
|
431
431
|
};
|
|
432
|
-
//# sourceMappingURL=OperationList-
|
|
432
|
+
//# sourceMappingURL=OperationList-nQ0bd8TU.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OperationList-CHK_erYP.js","sources":["../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/list-plus.js","../src/lib/plugins/openapi/graphql/fragment-masking.ts","../src/lib/util/groupBy.ts","../src/lib/util/renderIf.ts","../src/lib/plugins/openapi/ParameterListItem.tsx","../src/lib/plugins/openapi/ParameterList.tsx","../src/lib/util/objectEntries.ts","../src/lib/plugins/openapi/SchemaListViewItem.tsx","../src/lib/plugins/openapi/SchemaListViewItemGroup.tsx","../src/lib/plugins/openapi/util/prose.ts","../src/lib/plugins/openapi/SchemaListView.tsx","../src/lib/plugins/openapi/OperationListItem.tsx","../src/lib/plugins/openapi/OperationList.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ListPlus = createLucideIcon(\"ListPlus\", [\n [\"path\", { d: \"M11 12H3\", key: \"51ecnj\" }],\n [\"path\", { d: \"M16 6H3\", key: \"1wxfjs\" }],\n [\"path\", { d: \"M16 18H3\", key: \"12xzn7\" }],\n [\"path\", { d: \"M18 9v6\", key: \"1twb98\" }],\n [\"path\", { d: \"M21 12h-6\", key: \"bt1uis\" }]\n]);\n\nexport { ListPlus as default };\n//# sourceMappingURL=list-plus.js.map\n","/* eslint-disable */\nimport type {\n DocumentTypeDecoration,\n ResultOf,\n TypedDocumentNode,\n} from \"@graphql-typed-document-node/core\";\nimport type { FragmentDefinitionNode } from \"graphql\";\nimport type { Incremental } from \"./graphql.js\";\n\nexport type FragmentType<\n TDocumentType extends DocumentTypeDecoration<any, any>,\n> =\n TDocumentType extends DocumentTypeDecoration<infer TType, any>\n ? [TType] extends [{ \" $fragmentName\"?: infer TKey }]\n ? TKey extends string\n ? { \" $fragmentRefs\"?: { [key in TKey]: TType } }\n : never\n : never\n : never;\n\n// return non-nullable if `fragmentType` is non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>>,\n): TType;\n// return nullable if `fragmentType` is undefined\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | undefined,\n): TType | undefined;\n// return nullable if `fragmentType` is nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | null,\n): TType | null;\n// return nullable if `fragmentType` is nullable or undefined\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | null\n | undefined,\n): TType | null | undefined;\n// return array of non-nullable if `fragmentType` is array of non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: Array<FragmentType<DocumentTypeDecoration<TType, any>>>,\n): Array<TType>;\n// return array of nullable if `fragmentType` is array of nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | Array<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined,\n): Array<TType> | null | undefined;\n// return readonly array of non-nullable if `fragmentType` is array of non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>,\n): ReadonlyArray<TType>;\n// return readonly array of nullable if `fragmentType` is array of nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined,\n): ReadonlyArray<TType> | null | undefined;\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | Array<FragmentType<DocumentTypeDecoration<TType, any>>>\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined,\n): TType | Array<TType> | ReadonlyArray<TType> | null | undefined {\n return fragmentType as any;\n}\n\nexport function makeFragmentData<\n F extends DocumentTypeDecoration<any, any>,\n FT extends ResultOf<F>,\n>(data: FT, _fragment: F): FragmentType<F> {\n return data as FragmentType<F>;\n}\nexport function isFragmentReady<TQuery, TFrag>(\n queryNode: DocumentTypeDecoration<TQuery, any>,\n fragmentNode: TypedDocumentNode<TFrag>,\n data:\n | FragmentType<TypedDocumentNode<Incremental<TFrag>, any>>\n | null\n | undefined,\n): data is FragmentType<typeof fragmentNode> {\n const deferredFields = (\n queryNode as {\n __meta__?: { deferredFields: Record<string, (keyof TFrag)[]> };\n }\n ).__meta__?.deferredFields;\n\n if (!deferredFields) return true;\n\n const fragDef = fragmentNode.definitions[0] as\n | FragmentDefinitionNode\n | undefined;\n const fragName = fragDef?.name?.value;\n\n const fields = (fragName && deferredFields[fragName]) || [];\n return fields.length > 0 && fields.every((field) => data && field in data);\n}\n","export const groupBy = <\n T extends Record<PropertyKey, any>,\n KeySelector extends (item: T) => PropertyKey,\n>(\n arr: T[],\n keySelector: KeySelector,\n): Partial<Record<ReturnType<KeySelector>, T[]>> => {\n return arr.reduce(\n (accumulator, val) => {\n const groupedKey = keySelector(val) as ReturnType<KeySelector>;\n if (!accumulator[groupedKey]) {\n accumulator[groupedKey] = [];\n }\n accumulator[groupedKey].push(val);\n return accumulator;\n },\n {} as Record<ReturnType<KeySelector>, T[]>,\n );\n};\n","export const renderIf = <G, R>(\n variable: G | undefined | null,\n callback: (variable: G) => R,\n): R | undefined => (variable ? callback(variable) : undefined);\n","import { Markdown } from \"../../components/Markdown.js\";\nimport { type SchemaObject } from \"../../oas/graphql/index.js\";\nimport { ColorizedParam } from \"./ColorizedParam.js\";\nimport type { OperationListItemResult } from \"./OperationList.js\";\nimport type { ParameterGroup } from \"./OperationListItem.js\";\n\nconst getParameterSchema = (\n parameter: ParameterListItemResult,\n): SchemaObject => {\n if (parameter.schema != null && typeof parameter.schema === \"object\") {\n return parameter.schema;\n }\n return {\n type: \"string\",\n };\n};\n\nexport type ParameterListItemResult = NonNullable<\n OperationListItemResult[\"parameters\"]\n>[number];\n\nexport const ParameterListItem = ({\n parameter,\n group,\n id,\n}: {\n parameter: ParameterListItemResult;\n group: ParameterGroup;\n id: string;\n}) => (\n <li className=\"p-4 bg-border/20 text-sm flex flex-col gap-1\">\n <div className=\"flex items-center gap-2\">\n <code>\n {group === \"path\" ? (\n <ColorizedParam\n name={parameter.name}\n backgroundOpacity=\"15%\"\n slug={id + \"-\" + parameter.name.toLocaleLowerCase()}\n />\n ) : (\n parameter.name\n )}\n </code>\n {parameter.required && (\n <span className=\"py-px px-1.5 font-medium bg-primary/75 text-muted rounded-lg\">\n required\n </span>\n )}\n {getParameterSchema(parameter).type && (\n <span className=\"text-muted-foreground\">\n {getParameterSchema(parameter).type}\n </span>\n )}\n </div>\n {parameter.description && (\n <Markdown\n content={parameter.description}\n className=\"text-sm prose-p:my-1\"\n />\n )}\n </li>\n);\n","import { Heading } from \"../../components/Heading.js\";\nimport type { ParameterGroup } from \"./OperationListItem.js\";\nimport {\n ParameterListItem,\n type ParameterListItemResult,\n} from \"./ParameterListItem.js\";\n\nexport const ParameterList = ({\n group,\n parameters,\n id,\n}: {\n group: ParameterGroup;\n parameters: ParameterListItemResult[];\n id: string;\n}) => (\n <>\n <Heading level={3} id={`${id}/${group}-parameters`} className=\"capitalize\">\n {group === \"header\" ? \"Headers\" : `${group} Parameters`}\n </Heading>\n <ul className=\"list-none m-0 px-0 overflow-hidden border divide-y divide-border rounded\">\n {parameters.map((parameter) => (\n <ParameterListItem\n key={`${parameter.name}-${parameter.in}`}\n parameter={parameter}\n id={id}\n group={group}\n />\n ))}\n </ul>\n </>\n);\n","type ValueOf<T> = T[keyof T];\ntype Entries<T> = [keyof T, ValueOf<T>][];\n\nexport const objectEntries = <T extends object>(obj: T): Entries<T> =>\n Object.entries(obj) as Entries<T>;\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { ListPlusIcon } from \"lucide-react\";\nimport { Markdown } from \"../../components/Markdown.js\";\nimport { SchemaObject } from \"../../oas/parser/index.js\";\nimport { Button } from \"../../ui/Button.js\";\nimport { cn } from \"../../util/cn.js\";\nimport { SchemaListView } from \"./SchemaListView.js\";\n\nexport const SchemaListViewItem = ({\n propertyName,\n property,\n nestingLevel,\n isRequired,\n}: {\n propertyName: string;\n isRequired: boolean;\n property: SchemaObject;\n nestingLevel: number;\n}) => {\n if (!property) {\n return <div>no property</div>;\n }\n return (\n <div\n key={propertyName}\n className={cn(\n \"p-4 bg-border/20 hover:bg-border/30 flex gap-1 flex-col text-sm\",\n property.deprecated && \"opacity-50\",\n )}\n >\n <div className=\"flex items-center gap-2 relative\">\n <code>\n {propertyName} {property.title}\n </code>\n\n {property.type && (\n <span className=\"text-muted-foreground\">{property.type}</span>\n )}\n {property.deprecated && (\n <span className=\"text-muted-foreground\">Deprecated</span>\n )}\n {!isRequired && (\n <span className=\"py-px px-1.5 font-medium border rounded-lg\">\n optional {property.required}\n </span>\n )}\n </div>\n {property.description && (\n <Markdown\n content={property.description}\n className=\"text-sm leading-normal line-clamp-4 \"\n />\n )}\n\n {property.enum && (\n <span className=\"text-sm text-muted-foreground flex gap-1 flex-wrap items-center\">\n <span>Possible values</span>\n {/* Make values unique, some schemas have duplicates */}\n {[...new Set(property.enum.filter((value) => value))]\n .map((value) => (\n <span\n key={value}\n className=\"font-mono text-xs border bg-muted rounded px-1\"\n >\n {value}\n </span>\n ))\n .slice(0, 4)}\n {property.enum.length > 4 && (\n <span className=\"font-mono text-xs border bg-muted rounded px-1\">\n ...\n </span>\n )}\n </span>\n )}\n\n {(property.type === \"object\" &&\n (property.properties?.length ??\n Object.entries(property.additionalProperties ?? {}).length > 0)) ||\n (property.type === \"array\" &&\n // this check is needed because the `items` can be undefined despite the type being defined\n typeof property.items !== \"undefined\" &&\n property.items.type === \"object\") ? (\n <Collapsible.Root className=\"CollapsibleRoot\" defaultOpen={false}>\n <Collapsible.Trigger asChild>\n <Button variant=\"ghost\" size=\"sm\">\n Show nested fields\n <ListPlusIcon size={18} className=\"ml-1.5\" />\n </Button>\n </Collapsible.Trigger>\n\n <Collapsible.Content>\n {property.type === \"object\" && (\n <div className=\"mt-2.5\">\n <SchemaListView\n schema={property}\n level={nestingLevel + 1}\n defaultOpen\n />\n </div>\n )}\n {property.type === \"array\" && property.items.type === \"object\" && (\n <div className=\"mt-2.5\">\n <SchemaListView\n schema={property.items}\n defaultOpen\n level={nestingLevel + 1}\n />\n </div>\n )}\n </Collapsible.Content>\n </Collapsible.Root>\n ) : null}\n </div>\n );\n};\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { useState } from \"react\";\nimport { SchemaObject } from \"../../oas/parser/index.js\";\nimport { cn } from \"../../util/cn.js\";\nimport { SchemaListViewItem } from \"./SchemaListViewItem.js\";\n\nexport const SchemaListViewItemGroup = ({\n group,\n properties,\n nestingLevel,\n required,\n defaultOpen = false,\n}: {\n group: \"optional\" | \"required\" | \"deprecated\";\n defaultOpen?: boolean;\n properties: [string, SchemaObject][];\n nestingLevel: number;\n required: string[];\n}) => {\n const notCollapsible =\n defaultOpen ||\n group === \"required\" ||\n properties.length === 1 ||\n nestingLevel === 0;\n\n const [open, setOpen] = useState(notCollapsible);\n\n if (properties.length === 0) {\n return;\n }\n\n return (\n <Collapsible.Root\n className=\"CollapsibleRoot\"\n open={open}\n onOpenChange={setOpen}\n >\n {!open && (\n <Collapsible.Trigger\n className={cn(\n \"py-2 hover:bg-muted w-full\",\n group === \"optional\" && \"font-semibold\",\n group === \"deprecated\" && \"text-muted-foreground\",\n )}\n >\n {properties.length} {group} fields\n </Collapsible.Trigger>\n )}\n\n <Collapsible.Content className=\"divide-y divide-border\">\n {properties.map(([propertyName, property]) => (\n <SchemaListViewItem\n key={propertyName}\n property={property}\n propertyName={propertyName}\n nestingLevel={nestingLevel}\n isRequired={required.includes(propertyName)}\n />\n ))}\n </Collapsible.Content>\n </Collapsible.Root>\n );\n};\n","import { ProseClasses } from \"../../../components/Markdown.js\";\nimport { cn } from \"../../../util/cn.js\";\n\nexport const SchemaProseClasses = cn(\n ProseClasses,\n \"max-w-full prose-img:max-w-prose\",\n);\n","import { Markdown } from \"../../components/Markdown.js\";\nimport { SchemaObject } from \"../../oas/parser/index.js\";\nimport { groupBy } from \"../../util/groupBy.js\";\nimport { objectEntries } from \"../../util/objectEntries.js\";\nimport { SchemaListViewItemGroup } from \"./SchemaListViewItemGroup.js\";\nimport { SchemaProseClasses } from \"./util/prose.js\";\n\nexport const SchemaListView = ({\n name,\n schema,\n level = 0,\n defaultOpen = false,\n}: {\n level?: number;\n defaultOpen?: boolean;\n name?: string;\n schema: SchemaObject;\n}) => {\n const properties = Object.entries(schema.properties ?? {});\n const additionalProperties =\n typeof schema.additionalProperties === \"object\"\n ? Object.entries(schema.additionalProperties)\n : [];\n\n const combinedProperties = properties.concat(\n Array.isArray(additionalProperties) ? additionalProperties : [],\n );\n\n const groups = groupBy(combinedProperties, ([propertyName, property]) => {\n return property.deprecated\n ? \"deprecated\"\n : schema.required?.includes(propertyName)\n ? \"required\"\n : \"optional\";\n });\n\n return (\n <div className=\"flex flex-col gap-2.5\">\n {(schema.title ?? name) && (\n <div className=\"ml-2 my-1 font-bold\">{schema.title ?? name}</div>\n )}\n {level === 0 && schema.description && (\n <Markdown className={SchemaProseClasses} content={schema.description} />\n )}\n <ul className=\"border-border border rounded overflow-hidden\">\n {objectEntries(groups).map(([group, properties]) => (\n <SchemaListViewItemGroup\n key={group}\n defaultOpen={defaultOpen}\n group={group}\n nestingLevel={level}\n properties={properties ?? []}\n required={schema.required ?? []}\n />\n ))}\n </ul>\n </div>\n );\n};\n","import { Heading } from \"../../components/Heading.js\";\nimport { Markdown } from \"../../components/Markdown.js\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"../../ui/Tabs.js\";\nimport { groupBy } from \"../../util/groupBy.js\";\nimport { renderIf } from \"../../util/renderIf.js\";\nimport { OperationsFragment } from \"./OperationList.js\";\nimport { ParameterList } from \"./ParameterList.js\";\nimport { SchemaListView } from \"./SchemaListView.js\";\nimport { Sidecar } from \"./Sidecar.js\";\nimport { FragmentType, useFragment } from \"./graphql/index.js\";\nimport { SchemaProseClasses } from \"./util/prose.js\";\n\nexport const PARAM_GROUPS = [\"path\", \"query\", \"header\", \"cookie\"] as const;\nexport type ParameterGroup = (typeof PARAM_GROUPS)[number];\n\nexport const OperationListItem = ({\n operationFragment,\n}: {\n operationFragment: FragmentType<typeof OperationsFragment>;\n}) => {\n const operation = useFragment(OperationsFragment, operationFragment);\n const groupedParameters = groupBy(\n operation.parameters ?? [],\n (param) => param.in,\n );\n\n const first = operation.responses.at(0);\n return (\n <div\n key={operation.operationId}\n className=\"grid grid-cols-1 lg:grid-cols-[4fr_3fr] gap-8 items-start border-b-2 mb-16 pb-16 border-border\"\n >\n <div className=\"flex flex-col gap-4\">\n <Heading level={2} id={operation.slug} registerSidebarAnchor>\n {operation.summary}\n </Heading>\n {operation.description && (\n <Markdown\n className={SchemaProseClasses}\n content={operation.description}\n />\n )}\n {operation.parameters && operation.parameters.length > 0 && (\n <>\n {PARAM_GROUPS.flatMap((group) =>\n groupedParameters[group]?.length ? (\n <ParameterList\n key={group}\n id={operation.slug}\n parameters={groupedParameters[group]}\n group={group}\n />\n ) : (\n []\n ),\n )}\n </>\n )}\n {renderIf(operation.requestBody?.content?.at(0)?.schema, (schema) => (\n <div className=\"mt-4 flex flex-col gap-4\">\n <Heading level={3} className=\"capitalize\">\n Request Body\n </Heading>\n <SchemaListView schema={schema} />\n </div>\n ))}\n {operation.responses.length > 0 && (\n <>\n <Heading level={3} className=\"capitalize mt-8 pt-8 border-t\">\n Responses\n </Heading>\n <Tabs defaultValue={`${first?.statusCode}${first?.description}`}>\n {operation.responses.length > 1 && (\n <TabsList>\n {operation.responses.map((response) => (\n <TabsTrigger\n value={response.statusCode + response.description}\n key={response.statusCode}\n title={response.description}\n >\n {response.statusCode}\n </TabsTrigger>\n ))}\n </TabsList>\n )}\n <ul className=\"list-none m-0 px-0 overflow-hidden\">\n {operation.responses.map((response) => (\n <TabsContent\n value={response.statusCode + response.description}\n key={response.statusCode}\n >\n {renderIf(\n response.content?.find((content) => content.schema),\n (content) => {\n return (\n <SchemaListView schema={content.schema} name=\"\" />\n );\n },\n ) ?? (\n <div className=\"border-border font-mono text-sm border rounded p-4\">\n No response body\n </div>\n )}\n </TabsContent>\n ))}\n </ul>\n </Tabs>\n </>\n )}\n </div>\n\n <Sidecar operation={operation} />\n </div>\n );\n};\n","import { ResultOf } from \"@graphql-typed-document-node/core\";\nimport { CategoryHeading } from \"../../components/CategoryHeading.js\";\nimport { DeveloperHint } from \"../../components/DeveloperHint.js\";\nimport { ErrorPage } from \"../../components/ErrorPage.js\";\nimport { Heading } from \"../../components/Heading.js\";\nimport { InlineCode } from \"../../components/InlineCode.js\";\nimport { Markdown } from \"../../components/Markdown.js\";\nimport { SyntaxHighlight } from \"../../components/SyntaxHighlight.js\";\nimport { cn } from \"../../util/cn.js\";\nimport { OperationListItem } from \"./OperationListItem.js\";\nimport StaggeredRender from \"./StaggeredRender.js\";\nimport { useOasConfig } from \"./context.js\";\nimport { graphql } from \"./graphql/index.js\";\nimport { SchemaProseClasses } from \"./util/prose.js\";\nimport { useQuery } from \"./util/urql.js\";\n\nexport const OperationsFragment = graphql(/* GraphQL */ `\n fragment OperationsFragment on OperationItem {\n slug\n summary\n method\n description\n operationId\n contentTypes\n path\n parameters {\n name\n in\n description\n required\n schema\n style\n examples {\n name\n description\n externalValue\n value\n summary\n }\n }\n requestBody {\n content {\n mediaType\n encoding {\n name\n }\n schema\n }\n description\n required\n }\n responses {\n statusCode\n links\n description\n content {\n mediaType\n encoding {\n name\n }\n schema\n }\n }\n }\n`);\n\nexport type OperationListItemResult = ResultOf<typeof OperationsFragment>;\n\nconst AllOperationsQuery = graphql(/* GraphQL */ `\n query AllOperations($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n description\n title\n url\n version\n tags {\n name\n description\n operations {\n slug\n ...OperationsFragment\n }\n }\n }\n }\n`);\n\nconst suspenseContext = { suspense: true };\n\nexport const OperationList = () => {\n const { type, input } = useOasConfig();\n\n const [result] = useQuery({\n query: AllOperationsQuery,\n variables: { type, input },\n context: suspenseContext,\n });\n\n const error = result.error?.graphQLErrors.at(0);\n\n // Looks like there is no Suspense level error handling (yet)?\n // So we handle the error case in the component directly\n if (error) {\n return (\n <ErrorPage\n category=\"Error\"\n title=\"Schema cannot be displayed\"\n message={\n <>\n <DeveloperHint className=\"mb-4\">\n Check your configuration value <InlineCode>apis.type</InlineCode>{\" \"}\n and <InlineCode>apis.input</InlineCode> in the Zudoku config.\n </DeveloperHint>\n An error occurred while trying to fetch the API reference:\n <SyntaxHighlight code={error.toString()} language=\"plain\" />\n </>\n }\n />\n );\n }\n\n if (!result.data) return null;\n\n return (\n <div className=\"pt-[--padding-content-top]\">\n <div\n className={cn(\n SchemaProseClasses,\n \"mb-16 max-w-full prose-img:max-w-prose\",\n )}\n >\n <CategoryHeading>Overview</CategoryHeading>\n <Heading level={1} id=\"description\" registerSidebarAnchor>\n {result.data.schema.title}\n </Heading>\n <Markdown content={result.data.schema.description ?? \"\"} />\n </div>\n {result.data.schema.tags\n .filter((tag) => tag.operations.length > 0)\n .map((tag) => (\n <div key={tag.name}>\n {tag.name && <CategoryHeading>{tag.name}</CategoryHeading>}\n {tag.description && (\n <Markdown\n className={`${SchemaProseClasses} mt-2 mb-12`}\n content={tag.description}\n />\n )}\n <div className=\"operation mb-12\">\n <StaggeredRender>\n {tag.operations.map((fragment) => (\n <OperationListItem\n key={fragment.slug}\n operationFragment={fragment}\n />\n ))}\n </StaggeredRender>\n </div>\n </div>\n ))}\n </div>\n );\n};\n"],"names":["ListPlus","createLucideIcon","useFragment","_documentNode","fragmentType","groupBy","arr","keySelector","accumulator","val","groupedKey","renderIf","variable","callback","getParameterSchema","parameter","ParameterListItem","group","id","jsxs","jsx","ColorizedParam","Markdown","ParameterList","parameters","Fragment","Heading","objectEntries","obj","SchemaListViewItem","propertyName","property","nestingLevel","isRequired","cn","value","_a","Collapsible.Root","Collapsible.Trigger","Button","ListPlusIcon","Collapsible.Content","SchemaListView","SchemaListViewItemGroup","properties","required","defaultOpen","notCollapsible","open","setOpen","useState","SchemaProseClasses","ProseClasses","name","schema","level","additionalProperties","combinedProperties","groups","PARAM_GROUPS","OperationListItem","operationFragment","operation","OperationsFragment","groupedParameters","param","first","_c","_b","Tabs","TabsList","response","TabsTrigger","TabsContent","content","Sidecar","graphql","AllOperationsQuery","suspenseContext","OperationList","type","input","useOasConfig","result","useQuery","error","ErrorPage","DeveloperHint","InlineCode","SyntaxHighlight","CategoryHeading","tag","StaggeredRender","fragment"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"OperationList-nQ0bd8TU.js","sources":["../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/list-plus.js","../src/lib/plugins/openapi/graphql/fragment-masking.ts","../src/lib/util/groupBy.ts","../src/lib/util/renderIf.ts","../src/lib/plugins/openapi/ParameterListItem.tsx","../src/lib/plugins/openapi/ParameterList.tsx","../src/lib/util/objectEntries.ts","../src/lib/plugins/openapi/SchemaListViewItem.tsx","../src/lib/plugins/openapi/SchemaListViewItemGroup.tsx","../src/lib/plugins/openapi/util/prose.ts","../src/lib/plugins/openapi/SchemaListView.tsx","../src/lib/plugins/openapi/OperationListItem.tsx","../src/lib/plugins/openapi/OperationList.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ListPlus = createLucideIcon(\"ListPlus\", [\n [\"path\", { d: \"M11 12H3\", key: \"51ecnj\" }],\n [\"path\", { d: \"M16 6H3\", key: \"1wxfjs\" }],\n [\"path\", { d: \"M16 18H3\", key: \"12xzn7\" }],\n [\"path\", { d: \"M18 9v6\", key: \"1twb98\" }],\n [\"path\", { d: \"M21 12h-6\", key: \"bt1uis\" }]\n]);\n\nexport { ListPlus as default };\n//# sourceMappingURL=list-plus.js.map\n","/* eslint-disable */\nimport type {\n DocumentTypeDecoration,\n ResultOf,\n TypedDocumentNode,\n} from \"@graphql-typed-document-node/core\";\nimport type { FragmentDefinitionNode } from \"graphql\";\nimport type { Incremental } from \"./graphql.js\";\n\nexport type FragmentType<\n TDocumentType extends DocumentTypeDecoration<any, any>,\n> =\n TDocumentType extends DocumentTypeDecoration<infer TType, any>\n ? [TType] extends [{ \" $fragmentName\"?: infer TKey }]\n ? TKey extends string\n ? { \" $fragmentRefs\"?: { [key in TKey]: TType } }\n : never\n : never\n : never;\n\n// return non-nullable if `fragmentType` is non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>>,\n): TType;\n// return nullable if `fragmentType` is undefined\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | undefined,\n): TType | undefined;\n// return nullable if `fragmentType` is nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | null,\n): TType | null;\n// return nullable if `fragmentType` is nullable or undefined\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | null\n | undefined,\n): TType | null | undefined;\n// return array of non-nullable if `fragmentType` is array of non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: Array<FragmentType<DocumentTypeDecoration<TType, any>>>,\n): Array<TType>;\n// return array of nullable if `fragmentType` is array of nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | Array<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined,\n): Array<TType> | null | undefined;\n// return readonly array of non-nullable if `fragmentType` is array of non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>,\n): ReadonlyArray<TType>;\n// return readonly array of nullable if `fragmentType` is array of nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined,\n): ReadonlyArray<TType> | null | undefined;\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | Array<FragmentType<DocumentTypeDecoration<TType, any>>>\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined,\n): TType | Array<TType> | ReadonlyArray<TType> | null | undefined {\n return fragmentType as any;\n}\n\nexport function makeFragmentData<\n F extends DocumentTypeDecoration<any, any>,\n FT extends ResultOf<F>,\n>(data: FT, _fragment: F): FragmentType<F> {\n return data as FragmentType<F>;\n}\nexport function isFragmentReady<TQuery, TFrag>(\n queryNode: DocumentTypeDecoration<TQuery, any>,\n fragmentNode: TypedDocumentNode<TFrag>,\n data:\n | FragmentType<TypedDocumentNode<Incremental<TFrag>, any>>\n | null\n | undefined,\n): data is FragmentType<typeof fragmentNode> {\n const deferredFields = (\n queryNode as {\n __meta__?: { deferredFields: Record<string, (keyof TFrag)[]> };\n }\n ).__meta__?.deferredFields;\n\n if (!deferredFields) return true;\n\n const fragDef = fragmentNode.definitions[0] as\n | FragmentDefinitionNode\n | undefined;\n const fragName = fragDef?.name?.value;\n\n const fields = (fragName && deferredFields[fragName]) || [];\n return fields.length > 0 && fields.every((field) => data && field in data);\n}\n","export const groupBy = <\n T extends Record<PropertyKey, any>,\n KeySelector extends (item: T) => PropertyKey,\n>(\n arr: T[],\n keySelector: KeySelector,\n): Partial<Record<ReturnType<KeySelector>, T[]>> => {\n return arr.reduce(\n (accumulator, val) => {\n const groupedKey = keySelector(val) as ReturnType<KeySelector>;\n if (!accumulator[groupedKey]) {\n accumulator[groupedKey] = [];\n }\n accumulator[groupedKey].push(val);\n return accumulator;\n },\n {} as Record<ReturnType<KeySelector>, T[]>,\n );\n};\n","export const renderIf = <G, R>(\n variable: G | undefined | null,\n callback: (variable: G) => R,\n): R | undefined => (variable ? callback(variable) : undefined);\n","import { Markdown } from \"../../components/Markdown.js\";\nimport { type SchemaObject } from \"../../oas/graphql/index.js\";\nimport { ColorizedParam } from \"./ColorizedParam.js\";\nimport type { OperationListItemResult } from \"./OperationList.js\";\nimport type { ParameterGroup } from \"./OperationListItem.js\";\n\nconst getParameterSchema = (\n parameter: ParameterListItemResult,\n): SchemaObject => {\n if (parameter.schema != null && typeof parameter.schema === \"object\") {\n return parameter.schema;\n }\n return {\n type: \"string\",\n };\n};\n\nexport type ParameterListItemResult = NonNullable<\n OperationListItemResult[\"parameters\"]\n>[number];\n\nexport const ParameterListItem = ({\n parameter,\n group,\n id,\n}: {\n parameter: ParameterListItemResult;\n group: ParameterGroup;\n id: string;\n}) => (\n <li className=\"p-4 bg-border/20 text-sm flex flex-col gap-1\">\n <div className=\"flex items-center gap-2\">\n <code>\n {group === \"path\" ? (\n <ColorizedParam\n name={parameter.name}\n backgroundOpacity=\"15%\"\n slug={id + \"-\" + parameter.name.toLocaleLowerCase()}\n />\n ) : (\n parameter.name\n )}\n </code>\n {parameter.required && (\n <span className=\"py-px px-1.5 font-medium bg-primary/75 text-muted rounded-lg\">\n required\n </span>\n )}\n {getParameterSchema(parameter).type && (\n <span className=\"text-muted-foreground\">\n {getParameterSchema(parameter).type}\n </span>\n )}\n </div>\n {parameter.description && (\n <Markdown\n content={parameter.description}\n className=\"text-sm prose-p:my-1\"\n />\n )}\n </li>\n);\n","import { Heading } from \"../../components/Heading.js\";\nimport type { ParameterGroup } from \"./OperationListItem.js\";\nimport {\n ParameterListItem,\n type ParameterListItemResult,\n} from \"./ParameterListItem.js\";\n\nexport const ParameterList = ({\n group,\n parameters,\n id,\n}: {\n group: ParameterGroup;\n parameters: ParameterListItemResult[];\n id: string;\n}) => (\n <>\n <Heading level={3} id={`${id}/${group}-parameters`} className=\"capitalize\">\n {group === \"header\" ? \"Headers\" : `${group} Parameters`}\n </Heading>\n <ul className=\"list-none m-0 px-0 overflow-hidden border divide-y divide-border rounded\">\n {parameters.map((parameter) => (\n <ParameterListItem\n key={`${parameter.name}-${parameter.in}`}\n parameter={parameter}\n id={id}\n group={group}\n />\n ))}\n </ul>\n </>\n);\n","type ValueOf<T> = T[keyof T];\ntype Entries<T> = [keyof T, ValueOf<T>][];\n\nexport const objectEntries = <T extends object>(obj: T): Entries<T> =>\n Object.entries(obj) as Entries<T>;\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { ListPlusIcon } from \"lucide-react\";\nimport { Markdown } from \"../../components/Markdown.js\";\nimport { SchemaObject } from \"../../oas/parser/index.js\";\nimport { Button } from \"../../ui/Button.js\";\nimport { cn } from \"../../util/cn.js\";\nimport { SchemaListView } from \"./SchemaListView.js\";\n\nexport const SchemaListViewItem = ({\n propertyName,\n property,\n nestingLevel,\n isRequired,\n}: {\n propertyName: string;\n isRequired: boolean;\n property: SchemaObject;\n nestingLevel: number;\n}) => {\n if (!property) {\n return <div>no property</div>;\n }\n return (\n <div\n key={propertyName}\n className={cn(\n \"p-4 bg-border/20 hover:bg-border/30 flex gap-1 flex-col text-sm\",\n property.deprecated && \"opacity-50\",\n )}\n >\n <div className=\"flex items-center gap-2 relative\">\n <code>\n {propertyName} {property.title}\n </code>\n\n {property.type && (\n <span className=\"text-muted-foreground\">{property.type}</span>\n )}\n {property.deprecated && (\n <span className=\"text-muted-foreground\">Deprecated</span>\n )}\n {!isRequired && (\n <span className=\"py-px px-1.5 font-medium border rounded-lg\">\n optional {property.required}\n </span>\n )}\n </div>\n {property.description && (\n <Markdown\n content={property.description}\n className=\"text-sm leading-normal line-clamp-4 \"\n />\n )}\n\n {property.enum && (\n <span className=\"text-sm text-muted-foreground flex gap-1 flex-wrap items-center\">\n <span>Possible values</span>\n {/* Make values unique, some schemas have duplicates */}\n {[...new Set(property.enum.filter((value) => value))]\n .map((value) => (\n <span\n key={value}\n className=\"font-mono text-xs border bg-muted rounded px-1\"\n >\n {value}\n </span>\n ))\n .slice(0, 4)}\n {property.enum.length > 4 && (\n <span className=\"font-mono text-xs border bg-muted rounded px-1\">\n ...\n </span>\n )}\n </span>\n )}\n\n {(property.type === \"object\" &&\n (property.properties?.length ??\n Object.entries(property.additionalProperties ?? {}).length > 0)) ||\n (property.type === \"array\" &&\n // this check is needed because the `items` can be undefined despite the type being defined\n typeof property.items !== \"undefined\" &&\n property.items.type === \"object\") ? (\n <Collapsible.Root className=\"CollapsibleRoot\" defaultOpen={false}>\n <Collapsible.Trigger asChild>\n <Button variant=\"ghost\" size=\"sm\">\n Show nested fields\n <ListPlusIcon size={18} className=\"ml-1.5\" />\n </Button>\n </Collapsible.Trigger>\n\n <Collapsible.Content>\n {property.type === \"object\" && (\n <div className=\"mt-2.5\">\n <SchemaListView\n schema={property}\n level={nestingLevel + 1}\n defaultOpen\n />\n </div>\n )}\n {property.type === \"array\" && property.items.type === \"object\" && (\n <div className=\"mt-2.5\">\n <SchemaListView\n schema={property.items}\n defaultOpen\n level={nestingLevel + 1}\n />\n </div>\n )}\n </Collapsible.Content>\n </Collapsible.Root>\n ) : null}\n </div>\n );\n};\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { useState } from \"react\";\nimport { SchemaObject } from \"../../oas/parser/index.js\";\nimport { cn } from \"../../util/cn.js\";\nimport { SchemaListViewItem } from \"./SchemaListViewItem.js\";\n\nexport const SchemaListViewItemGroup = ({\n group,\n properties,\n nestingLevel,\n required,\n defaultOpen = false,\n}: {\n group: \"optional\" | \"required\" | \"deprecated\";\n defaultOpen?: boolean;\n properties: [string, SchemaObject][];\n nestingLevel: number;\n required: string[];\n}) => {\n const notCollapsible =\n defaultOpen ||\n group === \"required\" ||\n properties.length === 1 ||\n nestingLevel === 0;\n\n const [open, setOpen] = useState(notCollapsible);\n\n if (properties.length === 0) {\n return;\n }\n\n return (\n <Collapsible.Root\n className=\"CollapsibleRoot\"\n open={open}\n onOpenChange={setOpen}\n >\n {!open && (\n <Collapsible.Trigger\n className={cn(\n \"py-2 hover:bg-muted w-full\",\n group === \"optional\" && \"font-semibold\",\n group === \"deprecated\" && \"text-muted-foreground\",\n )}\n >\n {properties.length} {group} fields\n </Collapsible.Trigger>\n )}\n\n <Collapsible.Content className=\"divide-y divide-border\">\n {properties.map(([propertyName, property]) => (\n <SchemaListViewItem\n key={propertyName}\n property={property}\n propertyName={propertyName}\n nestingLevel={nestingLevel}\n isRequired={required.includes(propertyName)}\n />\n ))}\n </Collapsible.Content>\n </Collapsible.Root>\n );\n};\n","import { ProseClasses } from \"../../../components/Markdown.js\";\nimport { cn } from \"../../../util/cn.js\";\n\nexport const SchemaProseClasses = cn(\n ProseClasses,\n \"max-w-full prose-img:max-w-prose\",\n);\n","import { Markdown } from \"../../components/Markdown.js\";\nimport { SchemaObject } from \"../../oas/parser/index.js\";\nimport { groupBy } from \"../../util/groupBy.js\";\nimport { objectEntries } from \"../../util/objectEntries.js\";\nimport { SchemaListViewItemGroup } from \"./SchemaListViewItemGroup.js\";\nimport { SchemaProseClasses } from \"./util/prose.js\";\n\nexport const SchemaListView = ({\n name,\n schema,\n level = 0,\n defaultOpen = false,\n}: {\n level?: number;\n defaultOpen?: boolean;\n name?: string;\n schema: SchemaObject;\n}) => {\n const properties = Object.entries(schema.properties ?? {});\n const additionalProperties =\n typeof schema.additionalProperties === \"object\"\n ? Object.entries(schema.additionalProperties)\n : [];\n\n const combinedProperties = properties.concat(\n Array.isArray(additionalProperties) ? additionalProperties : [],\n );\n\n const groups = groupBy(combinedProperties, ([propertyName, property]) => {\n return property.deprecated\n ? \"deprecated\"\n : schema.required?.includes(propertyName)\n ? \"required\"\n : \"optional\";\n });\n\n return (\n <div className=\"flex flex-col gap-2.5\">\n {(schema.title ?? name) && (\n <div className=\"ml-2 my-1 font-bold\">{schema.title ?? name}</div>\n )}\n {level === 0 && schema.description && (\n <Markdown className={SchemaProseClasses} content={schema.description} />\n )}\n <ul className=\"border-border border rounded overflow-hidden\">\n {objectEntries(groups).map(([group, properties]) => (\n <SchemaListViewItemGroup\n key={group}\n defaultOpen={defaultOpen}\n group={group}\n nestingLevel={level}\n properties={properties ?? []}\n required={schema.required ?? []}\n />\n ))}\n </ul>\n </div>\n );\n};\n","import { Heading } from \"../../components/Heading.js\";\nimport { Markdown } from \"../../components/Markdown.js\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"../../ui/Tabs.js\";\nimport { groupBy } from \"../../util/groupBy.js\";\nimport { renderIf } from \"../../util/renderIf.js\";\nimport { OperationsFragment } from \"./OperationList.js\";\nimport { ParameterList } from \"./ParameterList.js\";\nimport { SchemaListView } from \"./SchemaListView.js\";\nimport { Sidecar } from \"./Sidecar.js\";\nimport { FragmentType, useFragment } from \"./graphql/index.js\";\nimport { SchemaProseClasses } from \"./util/prose.js\";\n\nexport const PARAM_GROUPS = [\"path\", \"query\", \"header\", \"cookie\"] as const;\nexport type ParameterGroup = (typeof PARAM_GROUPS)[number];\n\nexport const OperationListItem = ({\n operationFragment,\n}: {\n operationFragment: FragmentType<typeof OperationsFragment>;\n}) => {\n const operation = useFragment(OperationsFragment, operationFragment);\n const groupedParameters = groupBy(\n operation.parameters ?? [],\n (param) => param.in,\n );\n\n const first = operation.responses.at(0);\n return (\n <div\n key={operation.operationId}\n className=\"grid grid-cols-1 lg:grid-cols-[4fr_3fr] gap-8 items-start border-b-2 mb-16 pb-16 border-border\"\n >\n <div className=\"flex flex-col gap-4\">\n <Heading level={2} id={operation.slug} registerSidebarAnchor>\n {operation.summary}\n </Heading>\n {operation.description && (\n <Markdown\n className={SchemaProseClasses}\n content={operation.description}\n />\n )}\n {operation.parameters && operation.parameters.length > 0 && (\n <>\n {PARAM_GROUPS.flatMap((group) =>\n groupedParameters[group]?.length ? (\n <ParameterList\n key={group}\n id={operation.slug}\n parameters={groupedParameters[group]}\n group={group}\n />\n ) : (\n []\n ),\n )}\n </>\n )}\n {renderIf(operation.requestBody?.content?.at(0)?.schema, (schema) => (\n <div className=\"mt-4 flex flex-col gap-4\">\n <Heading level={3} className=\"capitalize\">\n Request Body\n </Heading>\n <SchemaListView schema={schema} />\n </div>\n ))}\n {operation.responses.length > 0 && (\n <>\n <Heading level={3} className=\"capitalize mt-8 pt-8 border-t\">\n Responses\n </Heading>\n <Tabs defaultValue={`${first?.statusCode}${first?.description}`}>\n {operation.responses.length > 1 && (\n <TabsList>\n {operation.responses.map((response) => (\n <TabsTrigger\n value={response.statusCode + response.description}\n key={response.statusCode}\n title={response.description}\n >\n {response.statusCode}\n </TabsTrigger>\n ))}\n </TabsList>\n )}\n <ul className=\"list-none m-0 px-0 overflow-hidden\">\n {operation.responses.map((response) => (\n <TabsContent\n value={response.statusCode + response.description}\n key={response.statusCode}\n >\n {renderIf(\n response.content?.find((content) => content.schema),\n (content) => {\n return (\n <SchemaListView schema={content.schema} name=\"\" />\n );\n },\n ) ?? (\n <div className=\"border-border font-mono text-sm border rounded p-4\">\n No response body\n </div>\n )}\n </TabsContent>\n ))}\n </ul>\n </Tabs>\n </>\n )}\n </div>\n\n <Sidecar operation={operation} />\n </div>\n );\n};\n","import { ResultOf } from \"@graphql-typed-document-node/core\";\nimport { CategoryHeading } from \"../../components/CategoryHeading.js\";\nimport { DeveloperHint } from \"../../components/DeveloperHint.js\";\nimport { ErrorPage } from \"../../components/ErrorPage.js\";\nimport { Heading } from \"../../components/Heading.js\";\nimport { InlineCode } from \"../../components/InlineCode.js\";\nimport { Markdown } from \"../../components/Markdown.js\";\nimport { SyntaxHighlight } from \"../../components/SyntaxHighlight.js\";\nimport { cn } from \"../../util/cn.js\";\nimport { OperationListItem } from \"./OperationListItem.js\";\nimport StaggeredRender from \"./StaggeredRender.js\";\nimport { useOasConfig } from \"./context.js\";\nimport { graphql } from \"./graphql/index.js\";\nimport { SchemaProseClasses } from \"./util/prose.js\";\nimport { useQuery } from \"./util/urql.js\";\n\nexport const OperationsFragment = graphql(/* GraphQL */ `\n fragment OperationsFragment on OperationItem {\n slug\n summary\n method\n description\n operationId\n contentTypes\n path\n parameters {\n name\n in\n description\n required\n schema\n style\n examples {\n name\n description\n externalValue\n value\n summary\n }\n }\n requestBody {\n content {\n mediaType\n encoding {\n name\n }\n schema\n }\n description\n required\n }\n responses {\n statusCode\n links\n description\n content {\n mediaType\n encoding {\n name\n }\n schema\n }\n }\n }\n`);\n\nexport type OperationListItemResult = ResultOf<typeof OperationsFragment>;\n\nconst AllOperationsQuery = graphql(/* GraphQL */ `\n query AllOperations($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n description\n title\n url\n version\n tags {\n name\n description\n operations {\n slug\n ...OperationsFragment\n }\n }\n }\n }\n`);\n\nconst suspenseContext = { suspense: true };\n\nexport const OperationList = () => {\n const { type, input } = useOasConfig();\n\n const [result] = useQuery({\n query: AllOperationsQuery,\n variables: { type, input },\n context: suspenseContext,\n });\n\n const error = result.error?.graphQLErrors.at(0);\n\n // Looks like there is no Suspense level error handling (yet)?\n // So we handle the error case in the component directly\n if (error) {\n return (\n <ErrorPage\n category=\"Error\"\n title=\"Schema cannot be displayed\"\n message={\n <>\n <DeveloperHint className=\"mb-4\">\n Check your configuration value <InlineCode>apis.type</InlineCode>{\" \"}\n and <InlineCode>apis.input</InlineCode> in the Zudoku config.\n </DeveloperHint>\n An error occurred while trying to fetch the API reference:\n <SyntaxHighlight code={error.toString()} language=\"plain\" />\n </>\n }\n />\n );\n }\n\n if (!result.data) return null;\n\n return (\n <div className=\"pt-[--padding-content-top]\">\n <div\n className={cn(\n SchemaProseClasses,\n \"mb-16 max-w-full prose-img:max-w-prose\",\n )}\n >\n <CategoryHeading>Overview</CategoryHeading>\n <Heading level={1} id=\"description\" registerSidebarAnchor>\n {result.data.schema.title}\n </Heading>\n <Markdown content={result.data.schema.description ?? \"\"} />\n </div>\n {result.data.schema.tags\n .filter((tag) => tag.operations.length > 0)\n .map((tag) => (\n <div key={tag.name}>\n {tag.name && <CategoryHeading>{tag.name}</CategoryHeading>}\n {tag.description && (\n <Markdown\n className={`${SchemaProseClasses} mt-2 mb-12`}\n content={tag.description}\n />\n )}\n <div className=\"operation mb-12\">\n <StaggeredRender>\n {tag.operations.map((fragment) => (\n <OperationListItem\n key={fragment.slug}\n operationFragment={fragment}\n />\n ))}\n </StaggeredRender>\n </div>\n </div>\n ))}\n </div>\n );\n};\n"],"names":["ListPlus","createLucideIcon","useFragment","_documentNode","fragmentType","groupBy","arr","keySelector","accumulator","val","groupedKey","renderIf","variable","callback","getParameterSchema","parameter","ParameterListItem","group","id","jsxs","jsx","ColorizedParam","Markdown","ParameterList","parameters","Fragment","Heading","objectEntries","obj","SchemaListViewItem","propertyName","property","nestingLevel","isRequired","cn","value","_a","Collapsible.Root","Collapsible.Trigger","Button","ListPlusIcon","Collapsible.Content","SchemaListView","SchemaListViewItemGroup","properties","required","defaultOpen","notCollapsible","open","setOpen","useState","SchemaProseClasses","ProseClasses","name","schema","level","additionalProperties","combinedProperties","groups","PARAM_GROUPS","OperationListItem","operationFragment","operation","OperationsFragment","groupedParameters","param","first","_c","_b","Tabs","TabsList","response","TabsTrigger","TabsContent","content","Sidecar","graphql","AllOperationsQuery","suspenseContext","OperationList","type","input","useOasConfig","result","useQuery","error","ErrorPage","DeveloperHint","InlineCode","SyntaxHighlight","CategoryHeading","tag","StaggeredRender","fragment"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { j as r } from "./jsx-runtime-B6kdoens.js";
|
|
2
|
+
import { O as i } from "./index-CgCPw6Jn.js";
|
|
3
|
+
import { P as t } from "./urql-DrBfkb92.js";
|
|
4
|
+
import { O as s } from "./index-7kcHaXD6.js";
|
|
5
|
+
function u({
|
|
6
|
+
config: o,
|
|
7
|
+
client: e
|
|
8
|
+
}) {
|
|
9
|
+
return /* @__PURE__ */ r.jsx(t, { value: e, children: /* @__PURE__ */ r.jsx(i, { value: { config: o }, children: /* @__PURE__ */ r.jsx(s, {}) }) });
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
u as OpenApiRoute
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=Route-CNvxEBnR.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Route-
|
|
1
|
+
{"version":3,"file":"Route-CNvxEBnR.js","sources":["../src/lib/plugins/openapi/Route.tsx"],"sourcesContent":["import { Outlet } from \"react-router-dom\";\nimport { OasConfigProvider } from \"./context.js\";\nimport { OasPluginConfig } from \"./interfaces.js\";\n\nimport { Provider, Client as UrqlClient } from \"./util/urql.js\";\n\nexport function OpenApiRoute({\n config,\n client,\n}: {\n config: OasPluginConfig;\n client: typeof UrqlClient;\n}) {\n return (\n <Provider value={client}>\n <OasConfigProvider value={{ config }}>\n <Outlet />\n </OasConfigProvider>\n </Provider>\n );\n}\n"],"names":["OpenApiRoute","config","client","jsx","Provider","OasConfigProvider","Outlet"],"mappings":";;;;AAMO,SAASA,EAAa;AAAA,EAC3B,QAAAC;AAAA,EACA,QAAAC;AACF,GAGG;AACD,SACGC,gBAAAA,EAAAA,IAAAC,GAAA,EAAS,OAAOF,GACf,UAACC,gBAAAA,EAAA,IAAAE,GAAA,EAAkB,OAAO,EAAE,QAAAJ,EAAO,GACjC,UAACE,gBAAAA,EAAA,IAAAG,GAAA,EAAO,GACV,EACF,CAAA;AAEJ;"}
|