zudoku 0.3.0-dev.58 → 0.3.0-dev.59
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/entry.client.js +1 -1
- package/dist/app/entry.client.js.map +1 -1
- package/dist/app/entry.server.d.ts +2 -0
- package/dist/app/entry.server.js +1 -0
- package/dist/app/entry.server.js.map +1 -1
- package/dist/app/main.js +8 -2
- package/dist/app/main.js.map +1 -1
- package/dist/config/validators/validate.d.ts +121 -102
- package/dist/config/validators/validate.js +4 -0
- package/dist/config/validators/validate.js.map +1 -1
- package/dist/lib/authentication/AuthenticationPlugin.d.ts +16 -0
- package/dist/lib/authentication/AuthenticationPlugin.js +31 -0
- package/dist/lib/authentication/AuthenticationPlugin.js.map +1 -0
- package/dist/lib/authentication/authentication.d.ts +3 -4
- package/dist/lib/authentication/components/Login.d.ts +1 -0
- package/dist/lib/authentication/components/Login.js +10 -0
- package/dist/lib/authentication/components/Login.js.map +1 -0
- package/dist/lib/authentication/components/Logout.d.ts +1 -0
- package/dist/lib/authentication/components/Logout.js +10 -0
- package/dist/lib/authentication/components/Logout.js.map +1 -0
- package/dist/lib/authentication/providers/clerk.js +43 -27
- package/dist/lib/authentication/providers/clerk.js.map +1 -1
- package/dist/lib/authentication/providers/openid.d.ts +11 -3
- package/dist/lib/authentication/providers/openid.js +22 -11
- package/dist/lib/authentication/providers/openid.js.map +1 -1
- package/dist/lib/authentication/routes.d.ts +5 -0
- package/dist/lib/authentication/routes.js +12 -0
- package/dist/lib/authentication/routes.js.map +1 -0
- package/dist/lib/components/Bootstrap.d.ts +2 -1
- package/dist/lib/components/Bootstrap.js +4 -1
- package/dist/lib/components/Bootstrap.js.map +1 -1
- package/dist/lib/components/DevPortal.js +14 -2
- package/dist/lib/components/DevPortal.js.map +1 -1
- package/dist/lib/components/Header.js +16 -3
- package/dist/lib/components/Header.js.map +1 -1
- package/dist/lib/components/InlineCode.js +1 -1
- package/dist/lib/components/InlineCode.js.map +1 -1
- package/dist/lib/components/TopNavigation.js +1 -1
- package/dist/lib/components/TopNavigation.js.map +1 -1
- package/dist/lib/components/context/DevPortalProvider.js +18 -1
- package/dist/lib/components/context/DevPortalProvider.js.map +1 -1
- package/dist/lib/components/index.d.ts +5 -1
- package/dist/lib/components/index.js +4 -0
- package/dist/lib/components/index.js.map +1 -1
- package/dist/lib/components/navigation/SideNavigationItem.js +1 -1
- package/dist/lib/components/navigation/SideNavigationItem.js.map +1 -1
- package/dist/lib/core/DevPortalContext.d.ts +1 -1
- package/dist/lib/core/DevPortalContext.js.map +1 -1
- package/dist/lib/core/plugins.d.ts +10 -1
- package/dist/lib/core/plugins.js +1 -0
- package/dist/lib/core/plugins.js.map +1 -1
- package/dist/lib/plugins/api-keys/CreateApiKey.js +1 -1
- package/dist/lib/plugins/api-keys/CreateApiKey.js.map +1 -1
- package/dist/lib/plugins/api-keys/SettingsApiKeys.js +2 -2
- package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
- package/dist/lib/plugins/api-keys/index.d.ts +2 -2
- package/dist/lib/plugins/api-keys/index.js +6 -0
- package/dist/lib/plugins/api-keys/index.js.map +1 -1
- package/dist/lib/plugins/custom-page/index.d.ts +8 -0
- package/dist/lib/plugins/custom-page/index.js +12 -0
- package/dist/lib/plugins/custom-page/index.js.map +1 -0
- package/dist/lib/plugins/markdown/MdxPage.js +1 -1
- package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationListItem.js +1 -1
- package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/ParameterList.js +1 -1
- package/dist/lib/plugins/openapi/ParameterList.js.map +1 -1
- package/dist/lib/plugins/openapi/SchemaListViewItem.js +3 -3
- package/dist/lib/plugins/openapi/SchemaListViewItem.js.map +1 -1
- package/dist/lib/plugins/openapi/SidecarBox.js +1 -1
- package/dist/lib/plugins/openapi/SidecarBox.js.map +1 -1
- package/dist/lib/plugins/openapi/StaggeredRender.d.ts +3 -0
- package/dist/lib/plugins/openapi/StaggeredRender.js +10 -5
- package/dist/lib/plugins/openapi/StaggeredRender.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/Playground.js +2 -2
- package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
- package/dist/lib/ui/Card.js +1 -1
- package/dist/lib/ui/Card.js.map +1 -1
- package/dist/lib/ui/DropdownMenu.d.ts +27 -0
- package/dist/lib/ui/DropdownMenu.js +36 -0
- package/dist/lib/ui/DropdownMenu.js.map +1 -0
- package/dist/lib/ui/button-variants.d.ts +2 -2
- package/dist/lib/ui/button-variants.js +1 -0
- package/dist/lib/ui/button-variants.js.map +1 -1
- package/dist/lib/util/MdxComponents.js +1 -1
- package/dist/lib/util/MdxComponents.js.map +1 -1
- package/dist/lib/util/joinPath.js +2 -1
- package/dist/lib/util/joinPath.js.map +1 -1
- package/dist/vite/build.js +5 -2
- package/dist/vite/build.js.map +1 -1
- package/dist/vite/config.d.ts +8 -1
- package/dist/vite/config.js +13 -6
- package/dist/vite/config.js.map +1 -1
- package/dist/vite/plugin-component.js +1 -0
- package/dist/vite/plugin-component.js.map +1 -1
- package/dist/vite/prerender.d.ts +1 -1
- package/dist/vite/prerender.js +23 -3
- package/dist/vite/prerender.js.map +1 -1
- package/lib/{AnchorLink-B4IgsA83.js → AnchorLink-Bj1hwDuD.js} +3 -3
- package/lib/{AnchorLink-B4IgsA83.js.map → AnchorLink-Bj1hwDuD.js.map} +1 -1
- package/lib/AuthenticationPlugin-CG6Bw32B.js +46 -0
- package/lib/AuthenticationPlugin-CG6Bw32B.js.map +1 -0
- package/lib/CategoryHeading-DMkTmmBh.js +10 -0
- package/lib/CategoryHeading-DMkTmmBh.js.map +1 -0
- package/lib/Combination-lAFQBd6U.js +2774 -0
- package/lib/Combination-lAFQBd6U.js.map +1 -0
- package/lib/DevPortalProvider-BBhQ8kgI.js +1125 -0
- package/lib/DevPortalProvider-BBhQ8kgI.js.map +1 -0
- package/lib/{Markdown-DQrAhTkw.js → Markdown-BjRJKl_E.js} +1376 -1379
- package/lib/Markdown-BjRJKl_E.js.map +1 -0
- package/lib/{MdxPage-DMP-pM_g.js → MdxPage-DJTFOCbZ.js} +17 -17
- package/lib/{MdxPage-DMP-pM_g.js.map → MdxPage-DJTFOCbZ.js.map} +1 -1
- package/lib/OperationList-DDTtK3I7.js +5403 -0
- package/lib/OperationList-DDTtK3I7.js.map +1 -0
- package/lib/{Route-C1LyvITr.js → Route-Bsrd0acQ.js} +2 -2
- package/lib/{Route-C1LyvITr.js.map → Route-Bsrd0acQ.js.map} +1 -1
- package/lib/Select-CEnkyfyn.js +2223 -0
- package/lib/Select-CEnkyfyn.js.map +1 -0
- package/lib/Spinner-Ciq_pWU7.js +359 -0
- package/lib/Spinner-Ciq_pWU7.js.map +1 -0
- package/lib/{hook-CrQMC_eg.js → hook-Q_gAL2NZ.js} +20 -19
- package/lib/{hook-CrQMC_eg.js.map → hook-Q_gAL2NZ.js.map} +1 -1
- package/lib/{index-tOwoT-uJ.js → index-BE2a6gGC.js} +24 -23
- package/lib/{index-tOwoT-uJ.js.map → index-BE2a6gGC.js.map} +1 -1
- package/lib/{jsx-runtime-CJZJivg2.js → jsx-runtime-BIr0WBt_.js} +119 -119
- package/lib/jsx-runtime-BIr0WBt_.js.map +1 -0
- package/lib/{router-CBw2vqJE.js → router-BiRCp01d.js} +671 -673
- package/lib/router-BiRCp01d.js.map +1 -0
- package/lib/zudoku.auth-clerk.js +47 -32
- package/lib/zudoku.auth-clerk.js.map +1 -1
- package/lib/zudoku.auth-openid.js +170 -159
- package/lib/zudoku.auth-openid.js.map +1 -1
- package/lib/zudoku.components.js +1494 -591
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.plugin-api-keys.js +31 -25
- package/lib/zudoku.plugin-api-keys.js.map +1 -1
- package/lib/zudoku.plugin-custom-page.js +13 -0
- package/lib/zudoku.plugin-custom-page.js.map +1 -0
- package/lib/zudoku.plugin-markdown.js +19 -20
- package/lib/zudoku.plugin-markdown.js.map +1 -1
- package/lib/zudoku.plugin-openapi.js +4 -4
- package/lib/zudoku.plugin-redirect.js +3 -3
- package/package.json +29 -14
- package/src/app/entry.client.tsx +1 -1
- package/src/app/entry.server.tsx +2 -0
- package/src/app/main.css +6 -0
- package/src/app/main.tsx +8 -2
- package/src/lib/authentication/AuthenticationPlugin.tsx +36 -0
- package/src/lib/authentication/authentication.ts +3 -4
- package/src/lib/authentication/components/Login.tsx +11 -0
- package/src/lib/authentication/components/Logout.tsx +11 -0
- package/src/lib/authentication/providers/clerk.tsx +43 -27
- package/src/lib/authentication/providers/openid.tsx +25 -13
- package/src/lib/authentication/routes.tsx +10 -0
- package/src/lib/components/Bootstrap.tsx +14 -7
- package/src/lib/components/DevPortal.tsx +29 -9
- package/src/lib/components/Header.tsx +63 -24
- package/src/lib/components/InlineCode.tsx +1 -1
- package/src/lib/components/TopNavigation.tsx +1 -1
- package/src/lib/components/context/DevPortalProvider.ts +22 -2
- package/src/lib/components/index.ts +4 -0
- package/src/lib/components/navigation/SideNavigationItem.tsx +1 -1
- package/src/lib/core/DevPortalContext.ts +1 -1
- package/src/lib/core/plugins.ts +16 -0
- package/src/lib/plugins/api-keys/CreateApiKey.tsx +1 -1
- package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +4 -4
- package/src/lib/plugins/api-keys/index.tsx +8 -1
- package/src/lib/plugins/custom-page/index.tsx +22 -0
- package/src/lib/plugins/markdown/MdxPage.tsx +2 -2
- package/src/lib/plugins/openapi/OperationListItem.tsx +1 -4
- package/src/lib/plugins/openapi/ParameterList.tsx +1 -1
- package/src/lib/plugins/openapi/SchemaListViewItem.tsx +3 -3
- package/src/lib/plugins/openapi/SidecarBox.tsx +1 -1
- package/src/lib/plugins/openapi/StaggeredRender.tsx +19 -5
- package/src/lib/plugins/openapi/playground/Playground.tsx +2 -2
- package/src/lib/ui/Card.tsx +1 -1
- package/src/lib/ui/DropdownMenu.tsx +199 -0
- package/src/lib/ui/button-variants.ts +1 -0
- package/src/lib/util/MdxComponents.tsx +1 -1
- package/src/lib/util/joinPath.tsx +2 -1
- package/dist/app/zudoku-manifest.d.ts +0 -1
- package/dist/app/zudoku-manifest.js +0 -20
- package/dist/app/zudoku-manifest.js.map +0 -1
- package/lib/Button-CnuhSW99.js +0 -4571
- package/lib/Button-CnuhSW99.js.map +0 -1
- package/lib/DevPortalProvider-Do9oJqme.js +0 -1081
- package/lib/DevPortalProvider-Do9oJqme.js.map +0 -1
- package/lib/Markdown-DQrAhTkw.js.map +0 -1
- package/lib/OperationList-Dw2SadHL.js +0 -5578
- package/lib/OperationList-Dw2SadHL.js.map +0 -1
- package/lib/Spinner-BuBOzK_8.js +0 -182
- package/lib/Spinner-BuBOzK_8.js.map +0 -1
- package/lib/index-gsAuUwQh.js +0 -418
- package/lib/index-gsAuUwQh.js.map +0 -1
- package/lib/jsx-runtime-CJZJivg2.js.map +0 -1
- package/lib/router-CBw2vqJE.js.map +0 -1
- package/lib/util-_jwUlTBU.js +0 -41
- package/lib/util-_jwUlTBU.js.map +0 -1
- package/src/app/zudoku-manifest.ts +0 -22
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { j as e,
|
|
2
|
-
import { A as
|
|
3
|
-
import { useRef as q, useState as
|
|
4
|
-
import { c as F, e as V,
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
1
|
+
import { j as e, a as I } from "./jsx-runtime-BIr0WBt_.js";
|
|
2
|
+
import { A as _, a as E, u as $ } from "./AnchorLink-Bj1hwDuD.js";
|
|
3
|
+
import { useRef as q, useState as z, useEffect as B, useMemo as D } from "react";
|
|
4
|
+
import { c as F, e as V, a as g, P as W, H as u, L as T } from "./Markdown-BjRJKl_E.js";
|
|
5
|
+
import { C as X } from "./CategoryHeading-DMkTmmBh.js";
|
|
6
|
+
import { v as G, z as A, l as M } from "./DevPortalProvider-BBhQ8kgI.js";
|
|
7
7
|
import { s as J } from "./slugify-CiPVjteN.js";
|
|
8
8
|
/**
|
|
9
9
|
* @license lucide-react v0.378.0 - ISC
|
|
@@ -33,7 +33,7 @@ const K = F("ListTree", [
|
|
|
33
33
|
title: s.value,
|
|
34
34
|
children: [
|
|
35
35
|
/* @__PURE__ */ e.jsx(
|
|
36
|
-
|
|
36
|
+
_,
|
|
37
37
|
{
|
|
38
38
|
to: `#${s.id}`,
|
|
39
39
|
[H]: s.id,
|
|
@@ -47,8 +47,8 @@ const K = F("ListTree", [
|
|
|
47
47
|
]
|
|
48
48
|
}
|
|
49
49
|
), Q = ({ entries: s }) => {
|
|
50
|
-
const { activeAnchor: t } = V(), r = q(null), [o, n] =
|
|
51
|
-
return
|
|
50
|
+
const { activeAnchor: t } = V(), r = q(null), [o, n] = z({});
|
|
51
|
+
return B(() => {
|
|
52
52
|
if (!r.current) return;
|
|
53
53
|
const a = r.current.querySelector(
|
|
54
54
|
`[${H}='${t}']`
|
|
@@ -112,13 +112,13 @@ const K = F("ListTree", [
|
|
|
112
112
|
defaultOptions: r,
|
|
113
113
|
tableOfContents: o
|
|
114
114
|
}) => {
|
|
115
|
-
var
|
|
116
|
-
const n = G(), a =
|
|
115
|
+
var y, b;
|
|
116
|
+
const n = G(), a = I(), l = n ? A(n, (i, x, m) => {
|
|
117
117
|
var c;
|
|
118
118
|
if (x === a.pathname)
|
|
119
119
|
return (c = m.at(0)) == null ? void 0 : c.label;
|
|
120
|
-
}) : void 0, d = t.title, f = t.category ?? l, L = t.toc === !1 || (r == null ? void 0 : r.toc) === !1, R = ((
|
|
121
|
-
o.filter((i) => i.depth === 2),
|
|
120
|
+
}) : void 0, d = t.title, f = t.category ?? l, L = t.toc === !1 || (r == null ? void 0 : r.toc) === !1, R = ((y = o.find((i) => i.depth === 1)) == null ? void 0 : y.value) ?? d, S = t.disablePager ?? (r == null ? void 0 : r.disablePager) ?? !1, v = ((b = o.find((i) => i.depth === 1)) == null ? void 0 : b.children) ?? // if `title` is provided by frontmatter it does not appear in the table of contents
|
|
121
|
+
o.filter((i) => i.depth === 2), C = !L && v.length > 0, { prev: p, next: h } = D(() => {
|
|
122
122
|
let i = { path: "", label: "" }, x = { path: "", label: "" }, m = !1;
|
|
123
123
|
return n ? (A(n, (c, j) => {
|
|
124
124
|
var w, k;
|
|
@@ -156,7 +156,7 @@ const K = F("ListTree", [
|
|
|
156
156
|
T,
|
|
157
157
|
{
|
|
158
158
|
to: p.path,
|
|
159
|
-
className: "flex flex-col items-stretch gap-2 flex-1 truncate border
|
|
159
|
+
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",
|
|
160
160
|
title: typeof p.label == "string" ? p.label : void 0,
|
|
161
161
|
children: [
|
|
162
162
|
/* @__PURE__ */ e.jsx("div", { className: "text-sm text-muted-foreground", children: "← Previous page" }),
|
|
@@ -168,7 +168,7 @@ const K = F("ListTree", [
|
|
|
168
168
|
T,
|
|
169
169
|
{
|
|
170
170
|
to: h.path,
|
|
171
|
-
className: "flex flex-col items-stretch gap-2 flex-1 truncate border
|
|
171
|
+
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",
|
|
172
172
|
title: typeof h.label == "string" ? h.label : void 0,
|
|
173
173
|
children: [
|
|
174
174
|
/* @__PURE__ */ e.jsx("div", { className: "text-sm text-muted-foreground", children: "Next page →" }),
|
|
@@ -181,10 +181,10 @@ const K = F("ListTree", [
|
|
|
181
181
|
]
|
|
182
182
|
}
|
|
183
183
|
),
|
|
184
|
-
/* @__PURE__ */ e.jsx("div", { className: "hidden xl:block", children:
|
|
184
|
+
/* @__PURE__ */ e.jsx("div", { className: "hidden xl:block", children: C && /* @__PURE__ */ e.jsx(Q, { entries: v }) })
|
|
185
185
|
] });
|
|
186
186
|
};
|
|
187
187
|
export {
|
|
188
188
|
ae as MdxPage
|
|
189
189
|
};
|
|
190
|
-
//# sourceMappingURL=MdxPage-
|
|
190
|
+
//# sourceMappingURL=MdxPage-DJTFOCbZ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MdxPage-DMP-pM_g.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 [indicatorStyle, setIndicatorStyles] = useState<CSSProperties>({});\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({\n \"--indicator-top\": \"0\",\n \"--indicator-opacity\": 0,\n } as CSSProperties);\n return;\n }\n\n const topParent = listWrapperRef.current.getBoundingClientRect().top;\n const topElement = activeElement.getBoundingClientRect().top;\n\n setIndicatorStyles({\n \"--indicator-top\": `${topElement - topParent}px`,\n \"--indicator-opacity\": 1,\n } as CSSProperties);\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\n <ul\n ref={listWrapperRef}\n style={indicatorStyle}\n className={cn(\n \"relative ms-2 ps-4 font-medium list-none mt-0 space-y-2\",\n \"before:absolute before:inset-0 before:right-auto before:bg-border before:w-[2px]\",\n \"after:absolute after:-left-px after:-translate-y-1 after:top-[--indicator-top] after:opacity-[--indicator-opacity] after:h-6 after:bg-primary after:w-[4px] after:rounded after:ease-out after:[transition:top__150ms,opacity_325ms]\",\n )}\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 </aside>\n );\n};\n","import { useMDXComponents } from \"@mdx-js/react\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { useMemo, type PropsWithChildren, type ReactNode } from \"react\";\nimport { Link, useLocation } from \"react-router-dom\";\nimport { CategoryHeading } from \"../../components/CategoryHeading.js\";\nimport { Heading } from \"../../components/Heading.js\";\nimport { ProseClasses } from \"../../components/Markdown.js\";\nimport { useTopNavigationItem } from \"../../components/context/DevPortalProvider.js\";\nimport { isPathItem } from \"../../components/navigation/util.js\";\nimport type { MdxComponentsType } from \"../../util/MdxComponents.js\";\nimport { cn } from \"../../util/cn.js\";\nimport slugify from \"../../util/slugify.js\";\nimport { traverseNavigation } from \"../../util/traverseNavigation.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 navItem = useTopNavigationItem();\n const location = useLocation();\n\n const categoryTitle = navItem\n ? traverseNavigation(navItem, (_node, fullPath, parentNodes) => {\n if (fullPath === location.pathname) {\n return parentNodes.at(0)?.label;\n }\n })\n : undefined;\n\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 } = useMemo(() => {\n let prev = { path: \"\", label: \"\" as ReactNode };\n let next = { path: \"\", label: \"\" as ReactNode };\n let shouldStop = false;\n\n if (!navItem) return { prev, next };\n\n traverseNavigation(navItem, (node, fullPath) => {\n const item = { path: fullPath, label: node.label };\n\n if (shouldStop && isPathItem(node) && !node.children?.length) {\n next = item;\n return true;\n }\n if (fullPath === location.pathname) {\n shouldStop = true;\n }\n if (!shouldStop && isPathItem(node) && !node.children?.length) {\n prev = item;\n }\n });\n\n return { prev, next } as const;\n }, [navItem, location.pathname]);\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.path ? (\n <Link\n to={prev.path}\n className=\"flex flex-col items-stretch gap-2 flex-1 truncate border border-border rounded px-6 py-4 text-start hover:border-primary/85 transition shadow-sm hover:shadow-md\"\n title={\n typeof prev.label === \"string\" ? prev.label : undefined\n }\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.path ? (\n <Link\n to={next.path}\n className=\"flex flex-col items-stretch gap-2 flex-1 truncate border border-border rounded px-6 py-4 text-end hover:border-primary/85 transition shadow-sm hover:shadow-md\"\n title={\n typeof next.label === \"string\" ? next.label : undefined\n }\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","indicatorStyle","setIndicatorStyles","useState","useEffect","activeElement","topParent","topElement","ListTreeIcon","child","MarkdownHeadings","id","Heading","MdxPage","MdxComponent","frontmatter","defaultOptions","tableOfContents","navItem","useTopNavigationItem","location","useLocation","categoryTitle","traverseNavigation","_node","fullPath","parentNodes","_a","title","category","hideToc","pageTitle","hidePager","tocEntries","_b","showToc","prev","next","useMemo","shouldStop","node","isPathItem","Helmet","ProseClasses","CategoryHeading","slugify","useMDXComponents","Fragment","Link"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"MdxPage-DJTFOCbZ.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 [indicatorStyle, setIndicatorStyles] = useState<CSSProperties>({});\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({\n \"--indicator-top\": \"0\",\n \"--indicator-opacity\": 0,\n } as CSSProperties);\n return;\n }\n\n const topParent = listWrapperRef.current.getBoundingClientRect().top;\n const topElement = activeElement.getBoundingClientRect().top;\n\n setIndicatorStyles({\n \"--indicator-top\": `${topElement - topParent}px`,\n \"--indicator-opacity\": 1,\n } as CSSProperties);\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\n <ul\n ref={listWrapperRef}\n style={indicatorStyle}\n className={cn(\n \"relative ms-2 ps-4 font-medium list-none mt-0 space-y-2\",\n \"before:absolute before:inset-0 before:right-auto before:bg-border before:w-[2px]\",\n \"after:absolute after:-left-px after:-translate-y-1 after:top-[--indicator-top] after:opacity-[--indicator-opacity] after:h-6 after:bg-primary after:w-[4px] after:rounded after:ease-out after:[transition:top__150ms,opacity_325ms]\",\n )}\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 </aside>\n );\n};\n","import { useMDXComponents } from \"@mdx-js/react\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { useMemo, type PropsWithChildren, type ReactNode } from \"react\";\nimport { Link, useLocation } from \"react-router-dom\";\nimport { CategoryHeading } from \"../../components/CategoryHeading.js\";\nimport { Heading } from \"../../components/Heading.js\";\nimport { ProseClasses } from \"../../components/Markdown.js\";\nimport { useTopNavigationItem } from \"../../components/context/DevPortalProvider.js\";\nimport { isPathItem } from \"../../components/navigation/util.js\";\nimport type { MdxComponentsType } from \"../../util/MdxComponents.js\";\nimport { cn } from \"../../util/cn.js\";\nimport slugify from \"../../util/slugify.js\";\nimport { traverseNavigation } from \"../../util/traverseNavigation.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 navItem = useTopNavigationItem();\n const location = useLocation();\n\n const categoryTitle = navItem\n ? traverseNavigation(navItem, (_node, fullPath, parentNodes) => {\n if (fullPath === location.pathname) {\n return parentNodes.at(0)?.label;\n }\n })\n : undefined;\n\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 } = useMemo(() => {\n let prev = { path: \"\", label: \"\" as ReactNode };\n let next = { path: \"\", label: \"\" as ReactNode };\n let shouldStop = false;\n\n if (!navItem) return { prev, next };\n\n traverseNavigation(navItem, (node, fullPath) => {\n const item = { path: fullPath, label: node.label };\n\n if (shouldStop && isPathItem(node) && !node.children?.length) {\n next = item;\n return true;\n }\n if (fullPath === location.pathname) {\n shouldStop = true;\n }\n if (!shouldStop && isPathItem(node) && !node.children?.length) {\n prev = item;\n }\n });\n\n return { prev, next } as const;\n }, [navItem, location.pathname]);\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.path ? (\n <Link\n to={prev.path}\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={\n typeof prev.label === \"string\" ? prev.label : undefined\n }\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.path ? (\n <Link\n to={next.path}\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={\n typeof next.label === \"string\" ? next.label : undefined\n }\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","indicatorStyle","setIndicatorStyles","useState","useEffect","activeElement","topParent","topElement","ListTreeIcon","child","MarkdownHeadings","id","Heading","MdxPage","MdxComponent","frontmatter","defaultOptions","tableOfContents","navItem","useTopNavigationItem","location","useLocation","categoryTitle","traverseNavigation","_node","fullPath","parentNodes","_a","title","category","hideToc","pageTitle","hidePager","tocEntries","_b","showToc","prev","next","useMemo","shouldStop","node","isPathItem","Helmet","ProseClasses","CategoryHeading","slugify","useMDXComponents","Fragment","Link"],"mappings":"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","x_google_ignoreList":[0]}
|