zudoku 0.42.2 → 0.43.1
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 +21 -0
- package/dist/app/entry.client.js.map +1 -1
- package/dist/config/loader.d.ts +1 -16
- package/dist/config/loader.js +9 -90
- package/dist/config/loader.js.map +1 -1
- package/dist/config/validators/common.d.ts +193 -0
- package/dist/config/validators/common.js +2 -0
- package/dist/config/validators/common.js.map +1 -1
- package/dist/config/validators/validate.d.ts +70 -0
- package/dist/lib/components/Banner.js +1 -1
- package/dist/lib/components/Banner.js.map +1 -1
- package/dist/lib/components/Heading.d.ts +2 -2
- package/dist/lib/components/Heading.js +1 -1
- package/dist/lib/components/Heading.js.map +1 -1
- package/dist/lib/components/Layout.js +1 -1
- package/dist/lib/components/Layout.js.map +1 -1
- package/dist/lib/components/Main.js +3 -2
- package/dist/lib/components/Main.js.map +1 -1
- package/dist/lib/components/MobileTopNavigation.js +1 -1
- package/dist/lib/components/MobileTopNavigation.js.map +1 -1
- package/dist/lib/components/Pagination.js +2 -2
- package/dist/lib/components/Pagination.js.map +1 -1
- package/dist/lib/components/Search.js +1 -1
- package/dist/lib/components/Search.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/navigation/PoweredByZudoku.js +1 -1
- package/dist/lib/components/navigation/PoweredByZudoku.js.map +1 -1
- package/dist/lib/components/navigation/Sidebar.js +1 -1
- package/dist/lib/components/navigation/Sidebar.js.map +1 -1
- package/dist/lib/components/navigation/SidebarCategory.js +9 -5
- package/dist/lib/components/navigation/SidebarCategory.js.map +1 -1
- package/dist/lib/components/navigation/SidebarItem.js +2 -3
- package/dist/lib/components/navigation/SidebarItem.js.map +1 -1
- package/dist/lib/components/navigation/Toc.js +2 -2
- package/dist/lib/components/navigation/Toc.js.map +1 -1
- package/dist/lib/core/ZudokuContext.d.ts +2 -1
- package/dist/lib/core/ZudokuContext.js.map +1 -1
- package/dist/lib/oas/parser/upgrade/index.d.ts +1 -0
- package/dist/lib/oas/parser/upgrade/index.js +76 -24
- package/dist/lib/oas/parser/upgrade/index.js.map +1 -1
- package/dist/lib/plugins/openapi/CollapsibleCode.js +1 -1
- package/dist/lib/plugins/openapi/OperationList.js +1 -1
- package/dist/lib/plugins/openapi/OperationListItem.js +4 -2
- package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/ParamInfos.js +1 -0
- package/dist/lib/plugins/openapi/ParamInfos.js.map +1 -1
- package/dist/lib/plugins/openapi/SchemaList.js +1 -1
- package/dist/lib/plugins/openapi/client/useCreateQuery.d.ts +5 -0
- package/dist/lib/plugins/openapi/client/useCreateQuery.js +10 -4
- package/dist/lib/plugins/openapi/client/useCreateQuery.js.map +1 -1
- package/dist/lib/plugins/openapi/components/ConstValue.d.ts +5 -0
- package/dist/lib/plugins/openapi/components/ConstValue.js +6 -0
- package/dist/lib/plugins/openapi/components/ConstValue.js.map +1 -0
- package/dist/lib/plugins/openapi/index.d.ts +3 -4
- package/dist/lib/plugins/openapi/index.js +6 -4
- package/dist/lib/plugins/openapi/index.js.map +1 -1
- package/dist/lib/plugins/openapi/interfaces.d.ts +4 -3
- package/dist/lib/plugins/openapi/playground/IdentitySelector.js +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/plugins/openapi/playground/QueryParams.d.ts +1 -1
- package/dist/lib/plugins/openapi/playground/QueryParams.js +1 -1
- package/dist/lib/plugins/openapi/playground/SubmitButton.d.ts +1 -1
- package/dist/lib/plugins/openapi/playground/SubmitButton.js +1 -1
- package/dist/lib/plugins/openapi/playground/result-panel/RequestTab.js +1 -1
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +1 -1
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js +1 -1
- package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js +6 -4
- package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js.map +1 -1
- package/dist/lib/plugins/openapi/schema/SchemaView.js +8 -5
- package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
- package/dist/lib/plugins/openapi/util/generateSchemaExample.js +40 -0
- package/dist/lib/plugins/openapi/util/generateSchemaExample.js.map +1 -1
- package/dist/lib/plugins/openapi/util/getRoutes.js +33 -3
- package/dist/lib/plugins/openapi/util/getRoutes.js.map +1 -1
- package/dist/lib/ui/SyntaxHighlight.js +1 -1
- package/dist/lib/ui/SyntaxHighlight.js.map +1 -1
- package/dist/lib/util/traverse.d.ts +1 -1
- package/dist/lib/util/traverse.js +6 -5
- package/dist/lib/util/traverse.js.map +1 -1
- package/dist/vite/build.js +1 -0
- package/dist/vite/build.js.map +1 -1
- package/dist/vite/config.js +1 -1
- package/dist/vite/config.js.map +1 -1
- package/dist/vite/dev-server.js +5 -2
- package/dist/vite/dev-server.js.map +1 -1
- package/dist/vite/html.d.ts +6 -2
- package/dist/vite/html.js +11 -8
- package/dist/vite/html.js.map +1 -1
- package/dist/vite/plugin-api.js +2 -2
- package/dist/vite/plugin-api.js.map +1 -1
- package/lib/{AuthenticationPlugin-ByDF051g.js → AuthenticationPlugin-BxoEZCSJ.js} +4 -4
- package/lib/{AuthenticationPlugin-ByDF051g.js.map → AuthenticationPlugin-BxoEZCSJ.js.map} +1 -1
- package/lib/{Markdown-mFpg_n9p.js → Markdown-DvdVn1O7.js} +1839 -1836
- package/lib/Markdown-DvdVn1O7.js.map +1 -0
- package/lib/{MdxPage-Cm7atiW3.js → MdxPage-DUcuusMU.js} +7 -7
- package/lib/{MdxPage-Cm7atiW3.js.map → MdxPage-DUcuusMU.js.map} +1 -1
- package/lib/{OasProvider-CDtbrUG_.js → OasProvider-CjMm8pB7.js} +8 -9
- package/lib/{OasProvider-CDtbrUG_.js.map → OasProvider-CjMm8pB7.js.map} +1 -1
- package/lib/{OperationList-DTyJIxKW.js → OperationList-BhJcPgGi.js} +1353 -1316
- package/lib/{OperationList-DTyJIxKW.js.map → OperationList-BhJcPgGi.js.map} +1 -1
- package/lib/Pagination-BgQxwq5j.js +48 -0
- package/lib/Pagination-BgQxwq5j.js.map +1 -0
- package/lib/{RouteGuard-DRtEu9nh.js → RouteGuard-D2gX29iI.js} +3 -3
- package/lib/{RouteGuard-DRtEu9nh.js.map → RouteGuard-D2gX29iI.js.map} +1 -1
- package/lib/{SchemaList-B9lvArDe.js → SchemaList-BexhT_Z0.js} +22 -23
- package/lib/{SchemaList-B9lvArDe.js.map → SchemaList-BexhT_Z0.js.map} +1 -1
- package/lib/SchemaView-Dt_-u8rW.js +365 -0
- package/lib/SchemaView-Dt_-u8rW.js.map +1 -0
- package/lib/{Select-CT64Ou40.js → Select-CYaEBIYK.js} +3 -3
- package/lib/{Select-CT64Ou40.js.map → Select-CYaEBIYK.js.map} +1 -1
- package/lib/{SlotletProvider-CS_nO-XT.js → SlotletProvider-wWbHYqWf.js} +7 -7
- package/lib/SlotletProvider-wWbHYqWf.js.map +1 -0
- package/lib/{SyntaxHighlight-CxhyyMkF.js → SyntaxHighlight-o7q0acut.js} +81 -81
- package/lib/{SyntaxHighlight-CxhyyMkF.js.map → SyntaxHighlight-o7q0acut.js.map} +1 -1
- package/lib/{Toc-D_tV8_Ri.js → Toc-BnN4zBb3.js} +17 -17
- package/lib/Toc-BnN4zBb3.js.map +1 -0
- package/lib/{chunk-BAXFHI7N-BVBOl9s0.js → chunk-BAXFHI7N-BLTsN6tl.js} +679 -659
- package/lib/{chunk-BAXFHI7N-BVBOl9s0.js.map → chunk-BAXFHI7N-BLTsN6tl.js.map} +1 -1
- package/lib/{circular-ByJI6Mci.js → circular-BWEIet3w.js} +4616 -5567
- package/lib/circular-BWEIet3w.js.map +1 -0
- package/lib/{createServer-IW7v5hWm.js → createServer-BQD3Eeqb.js} +1998 -1970
- package/lib/createServer-BQD3Eeqb.js.map +1 -0
- package/lib/{hook-CldJlP5c.js → hook-8GM2HXNM.js} +24 -24
- package/lib/{hook-CldJlP5c.js.map → hook-8GM2HXNM.js.map} +1 -1
- package/lib/index-CFf9AN-y.js +3208 -0
- package/lib/index-CFf9AN-y.js.map +1 -0
- package/lib/{index-DnQftvP4.js → index-DGNSSXgR.js} +77 -69
- package/lib/{index-DnQftvP4.js.map → index-DGNSSXgR.js.map} +1 -1
- package/lib/{mutation-DBQh7AOZ.js → mutation-Bq5bn7Hf.js} +2 -2
- package/lib/{mutation-DBQh7AOZ.js.map → mutation-Bq5bn7Hf.js.map} +1 -1
- package/lib/processors/traverse.js +9 -7
- package/lib/processors/traverse.js.map +1 -1
- package/lib/ui/SyntaxHighlight.js +1 -1
- package/lib/{useExposedProps-DbIZXspi.js → useExposedProps-DmTJxEXG.js} +2 -2
- package/lib/{useExposedProps-DbIZXspi.js.map → useExposedProps-DmTJxEXG.js.map} +1 -1
- package/lib/zudoku.auth-auth0.js +1 -1
- package/lib/zudoku.auth-clerk.js +2 -2
- package/lib/zudoku.auth-openid.js +3 -3
- package/lib/zudoku.components.js +6 -6
- package/lib/zudoku.hooks.js +1 -1
- package/lib/zudoku.plugin-api-catalog.js +5 -5
- package/lib/zudoku.plugin-api-keys.js +4 -4
- package/lib/zudoku.plugin-custom-pages.js +2 -2
- package/lib/zudoku.plugin-markdown.js +1 -1
- package/lib/zudoku.plugin-openapi.js +6 -5
- package/lib/zudoku.plugin-redirect.js +1 -1
- package/lib/zudoku.plugin-search-pagefind.js +3 -3
- package/package.json +4 -4
- package/src/app/entry.client.tsx +26 -0
- package/src/app/main.css +2 -2
- package/src/lib/components/Banner.tsx +1 -1
- package/src/lib/components/Heading.tsx +3 -3
- package/src/lib/components/Layout.tsx +1 -4
- package/src/lib/components/Main.tsx +4 -3
- package/src/lib/components/MobileTopNavigation.tsx +2 -2
- package/src/lib/components/Pagination.tsx +3 -3
- package/src/lib/components/Search.tsx +1 -1
- package/src/lib/components/TopNavigation.tsx +1 -1
- package/src/lib/components/navigation/PoweredByZudoku.tsx +6 -1
- package/src/lib/components/navigation/Sidebar.tsx +1 -1
- package/src/lib/components/navigation/SidebarCategory.tsx +9 -5
- package/src/lib/components/navigation/SidebarItem.tsx +2 -3
- package/src/lib/components/navigation/Toc.tsx +4 -4
- package/src/lib/core/ZudokuContext.ts +2 -1
- package/src/lib/oas/parser/upgrade/index.ts +97 -27
- package/src/lib/plugins/openapi/CollapsibleCode.tsx +2 -2
- package/src/lib/plugins/openapi/OperationList.tsx +1 -1
- package/src/lib/plugins/openapi/OperationListItem.tsx +15 -6
- package/src/lib/plugins/openapi/ParamInfos.tsx +1 -0
- package/src/lib/plugins/openapi/SchemaList.tsx +1 -1
- package/src/lib/plugins/openapi/client/useCreateQuery.ts +23 -4
- package/src/lib/plugins/openapi/components/ConstValue.tsx +24 -0
- package/src/lib/plugins/openapi/index.tsx +8 -7
- package/src/lib/plugins/openapi/interfaces.ts +4 -3
- package/src/lib/plugins/openapi/playground/IdentitySelector.tsx +2 -2
- package/src/lib/plugins/openapi/playground/Playground.tsx +5 -5
- package/src/lib/plugins/openapi/playground/QueryParams.tsx +2 -2
- package/src/lib/plugins/openapi/playground/SubmitButton.tsx +2 -2
- package/src/lib/plugins/openapi/playground/result-panel/RequestTab.tsx +2 -2
- package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +1 -1
- package/src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx +1 -1
- package/src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx +6 -3
- package/src/lib/plugins/openapi/schema/SchemaView.tsx +31 -15
- package/src/lib/plugins/openapi/util/generateSchemaExample.ts +45 -0
- package/src/lib/plugins/openapi/util/getRoutes.tsx +67 -3
- package/src/lib/ui/SyntaxHighlight.tsx +2 -2
- package/src/lib/util/traverse.ts +8 -5
- package/lib/Markdown-mFpg_n9p.js.map +0 -1
- package/lib/Pagination-DLPL5z77.js +0 -48
- package/lib/Pagination-DLPL5z77.js.map +0 -1
- package/lib/SchemaView-DXjql-Bl.js +0 -356
- package/lib/SchemaView-DXjql-Bl.js.map +0 -1
- package/lib/SlotletProvider-CS_nO-XT.js.map +0 -1
- package/lib/Toc-D_tV8_Ri.js.map +0 -1
- package/lib/circular-ByJI6Mci.js.map +0 -1
- package/lib/context-Lrf2Y9bR.js +0 -22
- package/lib/context-Lrf2Y9bR.js.map +0 -1
- package/lib/createServer-IW7v5hWm.js.map +0 -1
- package/lib/index-Ckl3s_w-.js +0 -2184
- package/lib/index-Ckl3s_w-.js.map +0 -1
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { j as s } from "./jsx-runtime-C5mzlN2N.js";
|
|
2
|
-
import { ArrowLeftIcon as i, ArrowRightIcon as l } from "lucide-react";
|
|
3
|
-
import { L as o } from "./chunk-BAXFHI7N-BVBOl9s0.js";
|
|
4
|
-
import { c } from "./cn-qaFjX9_3.js";
|
|
5
|
-
import { B as r } from "./index-DnQftvP4.js";
|
|
6
|
-
const f = ({
|
|
7
|
-
prev: t,
|
|
8
|
-
next: a,
|
|
9
|
-
className: n
|
|
10
|
-
}) => {
|
|
11
|
-
const e = "group transition-all p-5 space-x-1 transition-all hover:text-foreground";
|
|
12
|
-
return /* @__PURE__ */ s.jsxs(
|
|
13
|
-
"div",
|
|
14
|
-
{
|
|
15
|
-
className: c(
|
|
16
|
-
"flex -mx-4 text-muted-foreground font-semibold",
|
|
17
|
-
t ? "justify-between" : "justify-end",
|
|
18
|
-
n
|
|
19
|
-
),
|
|
20
|
-
children: [
|
|
21
|
-
t && /* @__PURE__ */ s.jsx(r, { variant: "ghost", asChild: !0, children: /* @__PURE__ */ s.jsxs(o, { to: t.to, relative: "path", className: e, children: [
|
|
22
|
-
/* @__PURE__ */ s.jsx(
|
|
23
|
-
i,
|
|
24
|
-
{
|
|
25
|
-
className: "group-hover:motion-safe:animate-bounce-x-start",
|
|
26
|
-
size: 12
|
|
27
|
-
}
|
|
28
|
-
),
|
|
29
|
-
/* @__PURE__ */ s.jsx("span", { className: "truncate", children: t.label })
|
|
30
|
-
] }) }),
|
|
31
|
-
a && /* @__PURE__ */ s.jsx(r, { variant: "ghost", asChild: !0, children: /* @__PURE__ */ s.jsxs(o, { to: a.to, relative: "path", className: e, children: [
|
|
32
|
-
/* @__PURE__ */ s.jsx("span", { className: "truncate ", children: a.label }),
|
|
33
|
-
/* @__PURE__ */ s.jsx(
|
|
34
|
-
l,
|
|
35
|
-
{
|
|
36
|
-
className: "group-hover:motion-safe:animate-bounce-x-end",
|
|
37
|
-
size: 12
|
|
38
|
-
}
|
|
39
|
-
)
|
|
40
|
-
] }) })
|
|
41
|
-
]
|
|
42
|
-
}
|
|
43
|
-
);
|
|
44
|
-
};
|
|
45
|
-
export {
|
|
46
|
-
f as P
|
|
47
|
-
};
|
|
48
|
-
//# sourceMappingURL=Pagination-DLPL5z77.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination-DLPL5z77.js","sources":["../src/lib/components/Pagination.tsx"],"sourcesContent":["import { ArrowLeftIcon, ArrowRightIcon } from \"lucide-react\";\nimport { Link } from \"react-router\";\nimport { cn } from \"../util/cn.js\";\nimport { Button } from \"./index.js\";\n\nexport const Pagination = ({\n prev,\n next,\n className,\n}: {\n prev: { to: string; label: string } | undefined;\n next: { to: string; label: string } | undefined;\n className?: string;\n}) => {\n const linkClass =\n \"group transition-all p-5 space-x-1 transition-all hover:text-foreground\";\n\n return (\n <div\n className={cn(\n \"flex -mx-4 text-muted-foreground font-semibold\",\n prev ? \"justify-between\" : \"justify-end\",\n className,\n )}\n >\n {prev && (\n <Button variant=\"ghost\" asChild>\n <Link to={prev.to} relative=\"path\" className={linkClass}>\n <ArrowLeftIcon\n className=\"group-hover:motion-safe:animate-bounce-x-start\"\n size={12}\n />\n <span className=\"truncate\">{prev.label}</span>\n </Link>\n </Button>\n )}\n {next && (\n <Button variant=\"ghost\" asChild>\n <Link to={next.to} relative=\"path\" className={linkClass}>\n <span className=\"truncate \">{next.label}</span>\n <ArrowRightIcon\n className=\"group-hover:motion-safe:animate-bounce-x-end\"\n size={12}\n />\n </Link>\n </Button>\n )}\n </div>\n );\n};\n"],"names":["Pagination","prev","next","className","linkClass","jsxs","cn","jsx","Button","Link","ArrowLeftIcon","ArrowRightIcon"],"mappings":";;;;;AAKO,MAAMA,IAAa,CAAC;AAAA,EACzB,MAAAC;AAAA,EACA,MAAAC;AAAA,EACA,WAAAC;AACF,MAIM;AACJ,QAAMC,IACJ;AAGA,SAAAC,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAL,IAAO,oBAAoB;AAAA,QAC3BE;AAAA,MACF;AAAA,MAEC,UAAA;AAAA,QAAAF,KACEM,gBAAAA,EAAAA,IAAAC,GAAA,EAAO,SAAQ,SAAQ,SAAO,IAC7B,UAAAH,gBAAAA,EAAAA,KAACI,GAAK,EAAA,IAAIR,EAAK,IAAI,UAAS,QAAO,WAAWG,GAC5C,UAAA;AAAA,UAAAG,gBAAAA,EAAA;AAAA,YAACG;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,MAAM;AAAA,YAAA;AAAA,UACR;AAAA,UACCH,gBAAAA,EAAA,IAAA,QAAA,EAAK,WAAU,YAAY,YAAK,MAAM,CAAA;AAAA,QAAA,EAAA,CACzC,EACF,CAAA;AAAA,QAEDL,KACCK,gBAAAA,EAAAA,IAACC,GAAO,EAAA,SAAQ,SAAQ,SAAO,IAC7B,UAACH,gBAAAA,EAAAA,KAAAI,GAAA,EAAK,IAAIP,EAAK,IAAI,UAAS,QAAO,WAAWE,GAC5C,UAAA;AAAA,UAAAG,gBAAAA,EAAA,IAAC,QAAK,EAAA,WAAU,aAAa,UAAAL,EAAK,OAAM;AAAA,UACxCK,gBAAAA,EAAA;AAAA,YAACI;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,MAAM;AAAA,YAAA;AAAA,UAAA;AAAA,QACR,EAAA,CACF,EACF,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAEJ;AAEJ;"}
|
|
@@ -1,356 +0,0 @@
|
|
|
1
|
-
import { use as S, isValidElement as E, useState as p, useCallback as R } from "react";
|
|
2
|
-
import { a as A } from "./context-Lrf2Y9bR.js";
|
|
3
|
-
import { i as z, S as T, L as B, T as j, a as $, p as D, C as q } from "./circular-ByJI6Mci.js";
|
|
4
|
-
import { j as s } from "./jsx-runtime-C5mzlN2N.js";
|
|
5
|
-
import { I, S as u, M as k, P } from "./Markdown-mFpg_n9p.js";
|
|
6
|
-
import { Card as c, CardHeader as G, CardTitle as M, CardContent as K } from "./ui/Card.js";
|
|
7
|
-
import { c as d } from "./cn-qaFjX9_3.js";
|
|
8
|
-
import { ChevronsLeftRightIcon as F, ChevronUpIcon as Q, ChevronDownIcon as v, CircleIcon as H, CircleDotIcon as J, CircleFadingPlusIcon as U, SquareMinusIcon as _, SquarePlusIcon as V, MinusIcon as W, PlusIcon as X, RefreshCcwDotIcon as Y } from "lucide-react";
|
|
9
|
-
import { B as Z } from "./Button-BBNrKpQd.js";
|
|
10
|
-
import * as a from "@radix-ui/react-collapsible";
|
|
11
|
-
import { Button as ee } from "./ui/Button.js";
|
|
12
|
-
import { o as se } from "./objectEntries-yMIkr2mI.js";
|
|
13
|
-
function te(e) {
|
|
14
|
-
const t = z(e) ? e : new T(e), r = t.body, i = new B(t);
|
|
15
|
-
let n = "", o = !1;
|
|
16
|
-
for (; i.advance().kind !== j.EOF; ) {
|
|
17
|
-
const l = i.token, m = l.kind, C = !$(l.kind);
|
|
18
|
-
o && (C || l.kind === j.SPREAD) && (n += " ");
|
|
19
|
-
const L = r.slice(l.start, l.end);
|
|
20
|
-
m === j.BLOCK_STRING ? n += D(l.value, {
|
|
21
|
-
minimize: !0
|
|
22
|
-
}) : n += L, o = C;
|
|
23
|
-
}
|
|
24
|
-
return n;
|
|
25
|
-
}
|
|
26
|
-
const Le = (e, ...[t]) => {
|
|
27
|
-
const r = S(A);
|
|
28
|
-
if (r === void 0)
|
|
29
|
-
throw new Error("useGraphQL must be used within a GraphQLProvider");
|
|
30
|
-
return {
|
|
31
|
-
queryFn: () => r.fetch(e, t),
|
|
32
|
-
queryKey: [te(e.toString()), t]
|
|
33
|
-
};
|
|
34
|
-
}, re = (e, t) => e.reduce(
|
|
35
|
-
(r, i) => {
|
|
36
|
-
const n = t(i);
|
|
37
|
-
return r[n] || (r[n] = []), r[n].push(i), r;
|
|
38
|
-
},
|
|
39
|
-
{}
|
|
40
|
-
), ne = ({ pattern: e }) => {
|
|
41
|
-
const [t, r] = p(!1), i = e.length > 20, n = i ? `${e.slice(0, 20)}…` : e;
|
|
42
|
-
return /* @__PURE__ */ s.jsxs(
|
|
43
|
-
I,
|
|
44
|
-
{
|
|
45
|
-
className: d("text-xs", i && "cursor-pointer"),
|
|
46
|
-
onClick: () => r(!t),
|
|
47
|
-
selectOnClick: !1,
|
|
48
|
-
children: [
|
|
49
|
-
t ? e : n,
|
|
50
|
-
i && /* @__PURE__ */ s.jsx("button", { type: "button", className: "p-1 translate-y-[2px]", children: !t && /* @__PURE__ */ s.jsx(F, { size: 12 }) })
|
|
51
|
-
]
|
|
52
|
-
}
|
|
53
|
-
);
|
|
54
|
-
}, ie = (e) => e ? [
|
|
55
|
-
e.type === "array" && e.items.type ? `${e.items.type}[]` : Array.isArray(e.type) ? e.type.join(" | ") : e.type,
|
|
56
|
-
e.enum && "enum",
|
|
57
|
-
e.format,
|
|
58
|
-
e.minimum && `min: ${e.minimum}`,
|
|
59
|
-
e.maximum && `max: ${e.maximum}`,
|
|
60
|
-
e.minLength && `minLength: ${e.minLength}`,
|
|
61
|
-
e.maxLength && `maxLength: ${e.maxLength}`,
|
|
62
|
-
e.minItems && `minItems: ${e.minItems}`,
|
|
63
|
-
e.maxItems && `maxItems: ${e.maxItems}`,
|
|
64
|
-
e.uniqueItems && "unique",
|
|
65
|
-
e.minProperties && `minProps: ${e.minProperties}`,
|
|
66
|
-
e.maxProperties && `maxProps: ${e.maxProperties}`,
|
|
67
|
-
e.readOnly && "readOnly",
|
|
68
|
-
e.writeOnly && "writeOnly",
|
|
69
|
-
e.deprecated && "deprecated",
|
|
70
|
-
e.pattern && /* @__PURE__ */ s.jsxs(s.Fragment, { children: [
|
|
71
|
-
"pattern: ",
|
|
72
|
-
/* @__PURE__ */ s.jsx(ne, { pattern: e.pattern })
|
|
73
|
-
] })
|
|
74
|
-
] : [], g = ({
|
|
75
|
-
schema: e,
|
|
76
|
-
extraItems: t = [],
|
|
77
|
-
className: r
|
|
78
|
-
}) => {
|
|
79
|
-
const i = [...ie(e), ...t].flatMap(
|
|
80
|
-
(n) => typeof n == "string" || E(n) ? n : []
|
|
81
|
-
);
|
|
82
|
-
return /* @__PURE__ */ s.jsx("span", { className: r, children: i.map((n, o) => /* @__PURE__ */ s.jsxs("span", { className: "text-muted-foreground", children: [
|
|
83
|
-
n,
|
|
84
|
-
o < i.length - 1 && /* @__PURE__ */ s.jsx("span", { className: "text-muted-foreground/50", children: " · " })
|
|
85
|
-
] }, o)) });
|
|
86
|
-
}, N = ({
|
|
87
|
-
values: e,
|
|
88
|
-
className: t,
|
|
89
|
-
maxVisibleValues: r = 8
|
|
90
|
-
}) => {
|
|
91
|
-
const [i, n] = p(!1);
|
|
92
|
-
if (!e.length) return null;
|
|
93
|
-
const o = e.length > r, l = o && !i ? e.slice(0, r) : e;
|
|
94
|
-
return /* @__PURE__ */ s.jsxs("div", { className: d("flex flex-wrap gap-1.5 text-xs", t), children: [
|
|
95
|
-
/* @__PURE__ */ s.jsx("span", { className: "text-muted-foreground", children: "Enum values: " }),
|
|
96
|
-
l.map((m) => /* @__PURE__ */ s.jsx("div", { children: /* @__PURE__ */ s.jsx(u, { className: "border rounded px-1 font-mono", children: m }) }, m)),
|
|
97
|
-
o && /* @__PURE__ */ s.jsx(
|
|
98
|
-
Z,
|
|
99
|
-
{
|
|
100
|
-
variant: "ghost",
|
|
101
|
-
size: "sm",
|
|
102
|
-
className: "h-fit px-0",
|
|
103
|
-
onClick: () => n(!i),
|
|
104
|
-
children: i ? /* @__PURE__ */ s.jsxs("div", { className: "flex items-center gap-1", children: [
|
|
105
|
-
/* @__PURE__ */ s.jsx(Q, { size: 12 }),
|
|
106
|
-
/* @__PURE__ */ s.jsx("span", { className: "text-muted-foreground", children: "show less" })
|
|
107
|
-
] }) : /* @__PURE__ */ s.jsxs("div", { className: "flex items-center gap-1", children: [
|
|
108
|
-
/* @__PURE__ */ s.jsx(v, { size: 12 }),
|
|
109
|
-
/* @__PURE__ */ s.jsxs("span", { className: "text-muted-foreground", children: [
|
|
110
|
-
"show ",
|
|
111
|
-
e.length - r,
|
|
112
|
-
" more"
|
|
113
|
-
] })
|
|
114
|
-
] })
|
|
115
|
-
}
|
|
116
|
-
)
|
|
117
|
-
] });
|
|
118
|
-
}, b = ({
|
|
119
|
-
schema: e
|
|
120
|
-
}) => {
|
|
121
|
-
var i;
|
|
122
|
-
const t = (i = e.examples) == null ? void 0 : i.at(0), r = e.default;
|
|
123
|
-
return !t && !r ? null : /* @__PURE__ */ s.jsxs("div", { className: "flex flex-col gap-1 text-xs", children: [
|
|
124
|
-
t && /* @__PURE__ */ s.jsxs("div", { children: [
|
|
125
|
-
/* @__PURE__ */ s.jsx("span", { className: "text-muted-foreground", children: "Example: " }),
|
|
126
|
-
/* @__PURE__ */ s.jsx(u, { className: "border rounded px-1 font-mono", children: typeof t == "object" ? JSON.stringify(t) : t })
|
|
127
|
-
] }),
|
|
128
|
-
r && /* @__PURE__ */ s.jsxs("div", { children: [
|
|
129
|
-
/* @__PURE__ */ s.jsx("span", { className: "text-muted-foreground", children: "Default: " }),
|
|
130
|
-
/* @__PURE__ */ s.jsx(u, { className: "border rounded px-1 font-mono", children: typeof r == "object" ? JSON.stringify(r) : r })
|
|
131
|
-
] })
|
|
132
|
-
] });
|
|
133
|
-
}, oe = {
|
|
134
|
-
AND: /* @__PURE__ */ s.jsx(U, { size: 16, className: "fill-card" }),
|
|
135
|
-
OR: /* @__PURE__ */ s.jsx(J, { size: 16, className: "fill-card" }),
|
|
136
|
-
ONE: /* @__PURE__ */ s.jsx(H, { size: 14, className: "fill-card" })
|
|
137
|
-
}, le = {
|
|
138
|
-
AND: "text-green-500 dark:text-green-300/60",
|
|
139
|
-
OR: "text-blue-400 dark:text-blue-500",
|
|
140
|
-
ONE: "text-purple-500 dark:text-purple-300/60"
|
|
141
|
-
}, ae = ({
|
|
142
|
-
type: e,
|
|
143
|
-
isOpen: t,
|
|
144
|
-
className: r,
|
|
145
|
-
schemeName: i
|
|
146
|
-
}) => /* @__PURE__ */ s.jsx(
|
|
147
|
-
"div",
|
|
148
|
-
{
|
|
149
|
-
className: d(
|
|
150
|
-
le[e],
|
|
151
|
-
"relative text-sm flex py-2",
|
|
152
|
-
"before:border-l before:absolute before:-top-2 before:-bottom-2 before:border-border before:border-dashed before:content-['']",
|
|
153
|
-
r
|
|
154
|
-
),
|
|
155
|
-
children: /* @__PURE__ */ s.jsxs("div", { className: "-translate-x-[7px] flex gap-1 items-center", children: [
|
|
156
|
-
oe[e],
|
|
157
|
-
/* @__PURE__ */ s.jsx(
|
|
158
|
-
"div",
|
|
159
|
-
{
|
|
160
|
-
className: d(
|
|
161
|
-
"translate-y-px mx-px opacity-0 group-hover:opacity-100 transition",
|
|
162
|
-
!t && "-rotate-90"
|
|
163
|
-
),
|
|
164
|
-
children: /* @__PURE__ */ s.jsx(v, { size: 16 })
|
|
165
|
-
}
|
|
166
|
-
),
|
|
167
|
-
/* @__PURE__ */ s.jsx("span", { className: "text-sm text-foreground", children: i })
|
|
168
|
-
] })
|
|
169
|
-
}
|
|
170
|
-
), de = (e) => {
|
|
171
|
-
const [t, r] = p(!0);
|
|
172
|
-
return /* @__PURE__ */ s.jsxs(
|
|
173
|
-
a.Root,
|
|
174
|
-
{
|
|
175
|
-
open: t,
|
|
176
|
-
onOpenChange: () => r((i) => !i),
|
|
177
|
-
className: "group",
|
|
178
|
-
children: [
|
|
179
|
-
/* @__PURE__ */ s.jsx(a.Trigger, { children: /* @__PURE__ */ s.jsx(
|
|
180
|
-
ae,
|
|
181
|
-
{
|
|
182
|
-
type: e.type,
|
|
183
|
-
isOpen: t,
|
|
184
|
-
schemeName: e.schema.title
|
|
185
|
-
}
|
|
186
|
-
) }),
|
|
187
|
-
!t && /* @__PURE__ */ s.jsx("div", { className: "wavy-line bg-border translate-y-1" }),
|
|
188
|
-
/* @__PURE__ */ s.jsx(a.Content, { children: /* @__PURE__ */ s.jsx(x, { schema: e.schema }) })
|
|
189
|
-
]
|
|
190
|
-
}
|
|
191
|
-
);
|
|
192
|
-
}, ce = {
|
|
193
|
-
AND: "All of",
|
|
194
|
-
OR: "Any of",
|
|
195
|
-
ONE: "One of"
|
|
196
|
-
}, xe = ({
|
|
197
|
-
schemas: e,
|
|
198
|
-
type: t,
|
|
199
|
-
isOpen: r,
|
|
200
|
-
toggleOpen: i
|
|
201
|
-
}) => /* @__PURE__ */ s.jsx(a.Root, { open: r, onOpenChange: i, asChild: !0, children: /* @__PURE__ */ s.jsxs(c, { className: "px-6", children: [
|
|
202
|
-
/* @__PURE__ */ s.jsxs(a.Trigger, { className: "flex gap-2 items-center py-2 w-full text-sm text-muted-foreground -translate-x-1.5", children: [
|
|
203
|
-
r ? /* @__PURE__ */ s.jsx(_, { size: 14 }) : /* @__PURE__ */ s.jsx(V, { size: 14 }),
|
|
204
|
-
/* @__PURE__ */ s.jsx("span", { children: ce[t] })
|
|
205
|
-
] }),
|
|
206
|
-
/* @__PURE__ */ s.jsx(a.Content, { className: "pb-4", children: e.map((n, o) => (
|
|
207
|
-
// eslint-disable-next-line react/no-array-index-key
|
|
208
|
-
/* @__PURE__ */ s.jsx(de, { type: t, schema: n }, o)
|
|
209
|
-
)) })
|
|
210
|
-
] }) }), pe = (e) => typeof e == "string" && ["string", "number", "boolean", "integer", "null"].includes(e), f = (e) => e.type === "array" || // schema.type might be an array of types, so we need to check if "array" is one of them
|
|
211
|
-
Array.isArray(e.type) && e.type.includes("array"), me = (e) => e.type === "object" && Object.keys(e.properties ?? {}).length > 0 || e.type === "array" && typeof e.items == "object" && (!e.items.type || e.items.type === "object"), h = (e) => !!(e.oneOf ?? e.allOf ?? e.anyOf), ue = {
|
|
212
|
-
allOf: "AND",
|
|
213
|
-
anyOf: "OR",
|
|
214
|
-
oneOf: "ONE"
|
|
215
|
-
}, y = (e) => e === q, w = ({ schema: e }) => {
|
|
216
|
-
const [t, r] = p(!0), i = R(() => r((n) => !n), []);
|
|
217
|
-
for (const [n, o] of se(ue))
|
|
218
|
-
if (e[n])
|
|
219
|
-
return /* @__PURE__ */ s.jsx(
|
|
220
|
-
xe,
|
|
221
|
-
{
|
|
222
|
-
schemas: e[n],
|
|
223
|
-
type: o,
|
|
224
|
-
isOpen: t,
|
|
225
|
-
toggleOpen: i
|
|
226
|
-
}
|
|
227
|
-
);
|
|
228
|
-
}, O = () => /* @__PURE__ */ s.jsxs(
|
|
229
|
-
I,
|
|
230
|
-
{
|
|
231
|
-
className: "inline-flex items-center gap-1.5 italic text-xs translate-y-0.5",
|
|
232
|
-
selectOnClick: !1,
|
|
233
|
-
children: [
|
|
234
|
-
/* @__PURE__ */ s.jsx(Y, { size: 13 }),
|
|
235
|
-
/* @__PURE__ */ s.jsx("span", { children: "circular" })
|
|
236
|
-
]
|
|
237
|
-
}
|
|
238
|
-
), je = ({
|
|
239
|
-
name: e,
|
|
240
|
-
schema: t,
|
|
241
|
-
group: r,
|
|
242
|
-
defaultOpen: i = !1,
|
|
243
|
-
showCollapseButton: n = !0
|
|
244
|
-
}) => {
|
|
245
|
-
const [o, l] = p(i);
|
|
246
|
-
return y(t) ? /* @__PURE__ */ s.jsx("li", { className: "p-4 bg-border/20 hover:bg-border/30", children: /* @__PURE__ */ s.jsxs("div", { className: "flex flex-col gap-2.5 justify-between text-sm", children: [
|
|
247
|
-
/* @__PURE__ */ s.jsxs("div", { className: "space-x-2", children: [
|
|
248
|
-
/* @__PURE__ */ s.jsx("code", { children: e }),
|
|
249
|
-
/* @__PURE__ */ s.jsx(
|
|
250
|
-
g,
|
|
251
|
-
{
|
|
252
|
-
schema: t,
|
|
253
|
-
extraItems: [/* @__PURE__ */ s.jsx(O, {}, "circular-ref")]
|
|
254
|
-
}
|
|
255
|
-
)
|
|
256
|
-
] }),
|
|
257
|
-
/* @__PURE__ */ s.jsx(b, { schema: t })
|
|
258
|
-
] }) }) : /* @__PURE__ */ s.jsx("li", { className: "p-4 bg-border/20 hover:bg-border/30", children: /* @__PURE__ */ s.jsxs("div", { className: "flex flex-col gap-2.5 justify-between text-sm", children: [
|
|
259
|
-
/* @__PURE__ */ s.jsxs("div", { className: "space-x-2", children: [
|
|
260
|
-
/* @__PURE__ */ s.jsx(u, { asChild: !0, children: /* @__PURE__ */ s.jsx("code", { children: e }) }),
|
|
261
|
-
/* @__PURE__ */ s.jsx(
|
|
262
|
-
g,
|
|
263
|
-
{
|
|
264
|
-
schema: t,
|
|
265
|
-
extraItems: [
|
|
266
|
-
r !== "optional" && /* @__PURE__ */ s.jsx("span", { className: "text-primary", children: "required" }),
|
|
267
|
-
f(t) && "items" in t && y(t.items) && /* @__PURE__ */ s.jsx(O, {})
|
|
268
|
-
]
|
|
269
|
-
}
|
|
270
|
-
)
|
|
271
|
-
] }),
|
|
272
|
-
t.description && /* @__PURE__ */ s.jsx(
|
|
273
|
-
k,
|
|
274
|
-
{
|
|
275
|
-
className: d(P, "text-sm leading-normal line-clamp-4"),
|
|
276
|
-
content: t.description
|
|
277
|
-
}
|
|
278
|
-
),
|
|
279
|
-
t.type === "array" && "items" in t && t.items.enum && /* @__PURE__ */ s.jsx(N, { values: t.items.enum }),
|
|
280
|
-
t.enum && /* @__PURE__ */ s.jsx(N, { values: t.enum }),
|
|
281
|
-
/* @__PURE__ */ s.jsx(b, { schema: t }),
|
|
282
|
-
(h(t) || me(t) || f(t)) && /* @__PURE__ */ s.jsxs(
|
|
283
|
-
a.Root,
|
|
284
|
-
{
|
|
285
|
-
defaultOpen: i,
|
|
286
|
-
open: o,
|
|
287
|
-
onOpenChange: () => l(!o),
|
|
288
|
-
children: [
|
|
289
|
-
n && /* @__PURE__ */ s.jsx(a.Trigger, { asChild: !0, children: /* @__PURE__ */ s.jsxs(ee, { variant: "expand", size: "sm", children: [
|
|
290
|
-
o ? /* @__PURE__ */ s.jsx(W, { size: 12 }) : /* @__PURE__ */ s.jsx(X, { size: 12 }),
|
|
291
|
-
o ? "Hide properties" : "Show properties"
|
|
292
|
-
] }) }),
|
|
293
|
-
/* @__PURE__ */ s.jsx(a.Content, { children: /* @__PURE__ */ s.jsx("div", { className: "mt-2", children: h(t) ? /* @__PURE__ */ s.jsx(w, { schema: t }) : t.type === "object" ? /* @__PURE__ */ s.jsx(x, { schema: t }) : f(t) && "items" in t && typeof t.items == "object" && !y(t.items) && /* @__PURE__ */ s.jsx(x, { schema: t.items }) }) })
|
|
294
|
-
]
|
|
295
|
-
}
|
|
296
|
-
)
|
|
297
|
-
] }) });
|
|
298
|
-
}, fe = (e) => e && /* @__PURE__ */ s.jsx(
|
|
299
|
-
k,
|
|
300
|
-
{
|
|
301
|
-
className: d(P, "text-sm leading-normal line-clamp-4"),
|
|
302
|
-
content: e
|
|
303
|
-
}
|
|
304
|
-
), ye = (e) => /* @__PURE__ */ s.jsxs(c, { className: "p-4 space-y-2", children: [
|
|
305
|
-
/* @__PURE__ */ s.jsx("span", { className: "text-sm text-muted-foreground", children: /* @__PURE__ */ s.jsx(g, { schema: e }) }),
|
|
306
|
-
e.enum && /* @__PURE__ */ s.jsx(N, { values: e.enum }),
|
|
307
|
-
fe(e.description),
|
|
308
|
-
/* @__PURE__ */ s.jsx(b, { schema: e })
|
|
309
|
-
] }), x = ({
|
|
310
|
-
schema: e,
|
|
311
|
-
defaultOpen: t = !1
|
|
312
|
-
}) => {
|
|
313
|
-
if (!e || Object.keys(e).length === 0)
|
|
314
|
-
return /* @__PURE__ */ s.jsx(c, { className: "p-4", children: /* @__PURE__ */ s.jsx("span", { className: "text-sm text-muted-foreground italic", children: "No schema specified" }) });
|
|
315
|
-
if (h(e))
|
|
316
|
-
return /* @__PURE__ */ s.jsx(w, { schema: e });
|
|
317
|
-
if (pe(e.type))
|
|
318
|
-
return ye(e);
|
|
319
|
-
if (e.type === "array" && typeof e.items == "object")
|
|
320
|
-
return /* @__PURE__ */ s.jsx(x, { schema: e.items });
|
|
321
|
-
if (e.type === "object") {
|
|
322
|
-
const r = re(
|
|
323
|
-
Object.entries(e.properties ?? {}),
|
|
324
|
-
([n, o]) => {
|
|
325
|
-
var l;
|
|
326
|
-
return o.deprecated ? "deprecated" : (l = e.required) != null && l.includes(n) ? "required" : "optional";
|
|
327
|
-
}
|
|
328
|
-
), i = ["required", "optional", "deprecated"];
|
|
329
|
-
return /* @__PURE__ */ s.jsx(c, { className: "divide-y overflow-hidden", children: i.map(
|
|
330
|
-
(n) => r[n] && /* @__PURE__ */ s.jsx("ul", { className: "divide-y", children: r[n].map(([o, l]) => /* @__PURE__ */ s.jsx(
|
|
331
|
-
je,
|
|
332
|
-
{
|
|
333
|
-
name: o,
|
|
334
|
-
schema: l,
|
|
335
|
-
group: n,
|
|
336
|
-
defaultOpen: t
|
|
337
|
-
},
|
|
338
|
-
o
|
|
339
|
-
)) }, n)
|
|
340
|
-
) });
|
|
341
|
-
}
|
|
342
|
-
return e.additionalProperties ? /* @__PURE__ */ s.jsxs(c, { className: "my-2", children: [
|
|
343
|
-
/* @__PURE__ */ s.jsx(G, { children: /* @__PURE__ */ s.jsx(M, { children: "Additional Properties:" }) }),
|
|
344
|
-
/* @__PURE__ */ s.jsx(K, { children: /* @__PURE__ */ s.jsx(x, { schema: e.additionalProperties }) })
|
|
345
|
-
] }) : null;
|
|
346
|
-
};
|
|
347
|
-
export {
|
|
348
|
-
N as E,
|
|
349
|
-
g as P,
|
|
350
|
-
x as S,
|
|
351
|
-
b as a,
|
|
352
|
-
re as g,
|
|
353
|
-
f as i,
|
|
354
|
-
Le as u
|
|
355
|
-
};
|
|
356
|
-
//# sourceMappingURL=SchemaView-DXjql-Bl.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaView-DXjql-Bl.js","sources":["../../../node_modules/.pnpm/graphql@16.10.0/node_modules/graphql/utilities/stripIgnoredCharacters.mjs","../src/lib/plugins/openapi/client/useCreateQuery.ts","../src/lib/util/groupBy.ts","../src/lib/plugins/openapi/ParamInfos.tsx","../src/lib/plugins/openapi/components/EnumValues.tsx","../src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx","../src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.tsx","../src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.tsx","../src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.tsx","../src/lib/plugins/openapi/schema/utils.ts","../src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx","../src/lib/plugins/openapi/schema/SchemaView.tsx"],"sourcesContent":["import { printBlockString } from '../language/blockString.mjs';\nimport { isPunctuatorTokenKind, Lexer } from '../language/lexer.mjs';\nimport { isSource, Source } from '../language/source.mjs';\nimport { TokenKind } from '../language/tokenKind.mjs';\n/**\n * Strips characters that are not significant to the validity or execution\n * of a GraphQL document:\n * - UnicodeBOM\n * - WhiteSpace\n * - LineTerminator\n * - Comment\n * - Comma\n * - BlockString indentation\n *\n * Note: It is required to have a delimiter character between neighboring\n * non-punctuator tokens and this function always uses single space as delimiter.\n *\n * It is guaranteed that both input and output documents if parsed would result\n * in the exact same AST except for nodes location.\n *\n * Warning: It is guaranteed that this function will always produce stable results.\n * However, it's not guaranteed that it will stay the same between different\n * releases due to bugfixes or changes in the GraphQL specification.\n *\n * Query example:\n *\n * ```graphql\n * query SomeQuery($foo: String!, $bar: String) {\n * someField(foo: $foo, bar: $bar) {\n * a\n * b {\n * c\n * d\n * }\n * }\n * }\n * ```\n *\n * Becomes:\n *\n * ```graphql\n * query SomeQuery($foo:String!$bar:String){someField(foo:$foo bar:$bar){a b{c d}}}\n * ```\n *\n * SDL example:\n *\n * ```graphql\n * \"\"\"\n * Type description\n * \"\"\"\n * type Foo {\n * \"\"\"\n * Field description\n * \"\"\"\n * bar: String\n * }\n * ```\n *\n * Becomes:\n *\n * ```graphql\n * \"\"\"Type description\"\"\" type Foo{\"\"\"Field description\"\"\" bar:String}\n * ```\n */\n\nexport function stripIgnoredCharacters(source) {\n const sourceObj = isSource(source) ? source : new Source(source);\n const body = sourceObj.body;\n const lexer = new Lexer(sourceObj);\n let strippedBody = '';\n let wasLastAddedTokenNonPunctuator = false;\n\n while (lexer.advance().kind !== TokenKind.EOF) {\n const currentToken = lexer.token;\n const tokenKind = currentToken.kind;\n /**\n * Every two non-punctuator tokens should have space between them.\n * Also prevent case of non-punctuator token following by spread resulting\n * in invalid token (e.g. `1...` is invalid Float token).\n */\n\n const isNonPunctuator = !isPunctuatorTokenKind(currentToken.kind);\n\n if (wasLastAddedTokenNonPunctuator) {\n if (isNonPunctuator || currentToken.kind === TokenKind.SPREAD) {\n strippedBody += ' ';\n }\n }\n\n const tokenBody = body.slice(currentToken.start, currentToken.end);\n\n if (tokenKind === TokenKind.BLOCK_STRING) {\n strippedBody += printBlockString(currentToken.value, {\n minimize: true,\n });\n } else {\n strippedBody += tokenBody;\n }\n\n wasLastAddedTokenNonPunctuator = isNonPunctuator;\n }\n\n return strippedBody;\n}\n","import { stripIgnoredCharacters } from \"graphql\";\nimport { use } from \"react\";\nimport type { TypedDocumentString } from \"../graphql/graphql.js\";\nimport { GraphQLContext } from \"./GraphQLContext.js\";\n\ntype NoExtraProps<T, U extends T = T> = U & {\n [K in Exclude<keyof U, keyof T>]?: never;\n};\n\nexport const useCreateQuery = <TResult, TVariables>(\n query: TypedDocumentString<TResult, TVariables>,\n ...[variables]: TVariables extends Record<string, never>\n ? []\n : [NoExtraProps<TVariables>]\n) => {\n const graphQLClient = use(GraphQLContext);\n\n if (graphQLClient === undefined) {\n throw new Error(\"useGraphQL must be used within a GraphQLProvider\");\n }\n\n return {\n queryFn: () => graphQLClient.fetch(query, variables),\n queryKey: [stripIgnoredCharacters(query.toString()), variables],\n } as const;\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","import { ChevronsLeftRightIcon } from \"lucide-react\";\nimport { isValidElement, useState } from \"react\";\nimport { InlineCode } from \"../../components/InlineCode.js\";\nimport { type SchemaObject } from \"../../oas/parser/index.js\";\nimport { cn } from \"../../util/cn.js\";\n\nconst Pattern = ({ pattern }: { pattern: string }) => {\n const [isExpanded, setIsExpanded] = useState(false);\n const isExpandable = pattern.length > 20;\n const shortPattern = isExpandable ? `${pattern.slice(0, 20)}…` : pattern;\n\n return (\n <InlineCode\n className={cn(\"text-xs\", isExpandable && \"cursor-pointer\")}\n onClick={() => setIsExpanded(!isExpanded)}\n selectOnClick={false}\n >\n {isExpanded ? pattern : shortPattern}\n {isExpandable && (\n <button type=\"button\" className=\"p-1 translate-y-[2px]\">\n {!isExpanded && <ChevronsLeftRightIcon size={12} />}\n </button>\n )}\n </InlineCode>\n );\n};\n\nconst getSchemaInfos = (schema?: SchemaObject) => {\n if (!schema) return [];\n\n return [\n schema.type === \"array\" && schema.items.type\n ? `${schema.items.type}[]`\n : Array.isArray(schema.type)\n ? schema.type.join(\" | \")\n : schema.type,\n\n schema.enum && \"enum\",\n schema.format,\n schema.minimum && `min: ${schema.minimum}`,\n schema.maximum && `max: ${schema.maximum}`,\n schema.minLength && `minLength: ${schema.minLength}`,\n schema.maxLength && `maxLength: ${schema.maxLength}`,\n schema.minItems && `minItems: ${schema.minItems}`,\n schema.maxItems && `maxItems: ${schema.maxItems}`,\n schema.uniqueItems && \"unique\",\n schema.minProperties && `minProps: ${schema.minProperties}`,\n schema.maxProperties && `maxProps: ${schema.maxProperties}`,\n schema.readOnly && \"readOnly\",\n schema.writeOnly && \"writeOnly\",\n schema.deprecated && \"deprecated\",\n schema.pattern && (\n <>\n pattern: <Pattern pattern={schema.pattern} />\n </>\n ),\n ];\n};\n\nexport const ParamInfos = ({\n schema,\n extraItems = [],\n className,\n}: {\n schema?: SchemaObject;\n extraItems?: unknown[];\n className?: string;\n}) => {\n const filteredItems = [...getSchemaInfos(schema), ...extraItems].flatMap(\n (item) => (typeof item === \"string\" || isValidElement(item) ? item : []),\n );\n\n return (\n <span className={className}>\n {filteredItems.map((item, index) => (\n <span className=\"text-muted-foreground\" key={index}>\n {item}\n {index < filteredItems.length - 1 && (\n <span className=\"text-muted-foreground/50\">\n · \n </span>\n )}\n </span>\n ))}\n </span>\n );\n};\n","import { ChevronDownIcon, ChevronUpIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { SelectOnClick } from \"./SelectOnClick.js\";\n\nexport const EnumValues = ({\n values,\n className,\n maxVisibleValues = 8,\n}: {\n values: Array<string | number>;\n className?: string;\n maxVisibleValues?: number;\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n\n if (!values.length) return null;\n\n const shouldCollapse = values.length > maxVisibleValues;\n const visibleValues =\n shouldCollapse && !isOpen ? values.slice(0, maxVisibleValues) : values;\n\n return (\n <div className={cn(\"flex flex-wrap gap-1.5 text-xs\", className)}>\n <span className=\"text-muted-foreground\">Enum values: </span>\n {visibleValues.map((value) => (\n <div key={value}>\n <SelectOnClick className=\"border rounded px-1 font-mono\">\n {value}\n </SelectOnClick>\n </div>\n ))}\n {shouldCollapse && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-fit px-0\"\n onClick={() => setIsOpen(!isOpen)}\n >\n {isOpen ? (\n <div className=\"flex items-center gap-1\">\n <ChevronUpIcon size={12} />\n <span className=\"text-muted-foreground\">show less</span>\n </div>\n ) : (\n <div className=\"flex items-center gap-1\">\n <ChevronDownIcon size={12} />\n <span className=\"text-muted-foreground\">\n show {values.length - maxVisibleValues} more\n </span>\n </div>\n )}\n </Button>\n )}\n </div>\n );\n};\n","import type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { SelectOnClick } from \"../components/SelectOnClick.js\";\n\nexport const SchemaExampleAndDefault = ({\n schema,\n}: {\n schema: SchemaObject;\n}) => {\n const example = schema.examples?.at(0);\n const defaultValue = schema.default;\n\n if (!example && !defaultValue) return null;\n\n return (\n <div className=\"flex flex-col gap-1 text-xs\">\n {example && (\n <div>\n <span className=\"text-muted-foreground\">Example: </span>\n <SelectOnClick className=\"border rounded px-1 font-mono\">\n {typeof example === \"object\" ? JSON.stringify(example) : example}\n </SelectOnClick>\n </div>\n )}\n {defaultValue && (\n <div>\n <span className=\"text-muted-foreground\">Default: </span>\n <SelectOnClick className=\"border rounded px-1 font-mono\">\n {typeof defaultValue === \"object\"\n ? JSON.stringify(defaultValue)\n : defaultValue}\n </SelectOnClick>\n </div>\n )}\n </div>\n );\n};\n","import {\n ChevronDownIcon,\n CircleDotIcon,\n CircleFadingPlusIcon,\n CircleIcon,\n} from \"lucide-react\";\nimport { cn } from \"../../../../util/cn.js\";\n\nimport type { LogicalGroupType } from \"../utils.js\";\n\nconst iconMap = {\n AND: <CircleFadingPlusIcon size={16} className=\"fill-card\" />,\n OR: <CircleDotIcon size={16} className=\"fill-card\" />,\n ONE: <CircleIcon size={14} className=\"fill-card\" />,\n} as const;\n\nconst colorClass = {\n AND: \"text-green-500 dark:text-green-300/60\",\n OR: \"text-blue-400 dark:text-blue-500\",\n ONE: \"text-purple-500 dark:text-purple-300/60\",\n} as const;\n\nexport const LogicalGroupConnector = ({\n type,\n isOpen,\n className,\n schemeName,\n}: {\n type: LogicalGroupType;\n isOpen: boolean;\n className?: string;\n schemeName?: string;\n}) => {\n return (\n <div\n className={cn(\n colorClass[type],\n \"relative text-sm flex py-2\",\n \"before:border-l before:absolute before:-top-2 before:-bottom-2 before:border-border before:border-dashed before:content-['']\",\n className,\n )}\n >\n <div className=\"-translate-x-[7px] flex gap-1 items-center\">\n {iconMap[type]}\n <div\n className={cn(\n \"translate-y-px mx-px opacity-0 group-hover:opacity-100 transition\",\n !isOpen && \"-rotate-90\",\n )}\n >\n <ChevronDownIcon size={16} />\n </div>\n <span className=\"text-sm text-foreground\">{schemeName}</span>\n </div>\n </div>\n );\n};\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { useState } from \"react\";\nimport type { SchemaObject } from \"../../../../oas/parser/index.js\";\nimport { SchemaView } from \"../SchemaView.js\";\nimport type { LogicalGroupType } from \"../utils.js\";\nimport { LogicalGroupConnector } from \"./LogicalGroupConnector.js\";\n\nexport const LogicalGroupItem = (props: {\n type: LogicalGroupType;\n schema: SchemaObject;\n}) => {\n const [isOpen, setIsOpen] = useState(true);\n\n return (\n <Collapsible.Root\n open={isOpen}\n onOpenChange={() => setIsOpen((prev) => !prev)}\n className=\"group\"\n >\n <Collapsible.Trigger>\n <LogicalGroupConnector\n type={props.type}\n isOpen={isOpen}\n schemeName={props.schema.title}\n />\n </Collapsible.Trigger>\n {!isOpen && <div className=\"wavy-line bg-border translate-y-1\" />}\n <Collapsible.Content>\n <SchemaView schema={props.schema} />\n </Collapsible.Content>\n </Collapsible.Root>\n );\n};\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { SquareMinusIcon, SquarePlusIcon } from \"lucide-react\";\nimport type { SchemaObject } from \"../../../../oas/parser/index.js\";\nimport { Card } from \"../../../../ui/Card.js\";\nimport type { LogicalGroupType } from \"../utils.js\";\nimport { LogicalGroupItem } from \"./LogicalGroupItem.js\";\n\nconst typeLabel = {\n AND: \"All of\",\n OR: \"Any of\",\n ONE: \"One of\",\n};\n\nexport const LogicalGroup = ({\n schemas,\n type,\n isOpen,\n toggleOpen,\n}: {\n schemas: SchemaObject[];\n type: LogicalGroupType;\n isOpen: boolean;\n toggleOpen: () => void;\n}) => (\n <Collapsible.Root open={isOpen} onOpenChange={toggleOpen} asChild>\n <Card className=\"px-6\">\n <Collapsible.Trigger className=\"flex gap-2 items-center py-2 w-full text-sm text-muted-foreground -translate-x-1.5\">\n {isOpen ? <SquareMinusIcon size={14} /> : <SquarePlusIcon size={14} />}\n <span>{typeLabel[type]}</span>\n </Collapsible.Trigger>\n\n <Collapsible.Content className=\"pb-4\">\n {schemas.map((subSchema, index) => (\n // eslint-disable-next-line react/no-array-index-key\n <LogicalGroupItem key={index} type={type} schema={subSchema} />\n ))}\n </Collapsible.Content>\n </Card>\n </Collapsible.Root>\n);\n","import { CIRCULAR_REF } from \"../../../oas/graphql/circular.js\";\nimport type { SchemaObject } from \"../../../oas/parser/index.js\";\n\nexport const isBasicType = (\n type: unknown,\n): type is \"string\" | \"number\" | \"boolean\" | \"integer\" | \"null\" =>\n typeof type === \"string\" &&\n [\"string\", \"number\", \"boolean\", \"integer\", \"null\"].includes(type);\n\nexport const isArrayType = (value: SchemaObject) =>\n value.type === \"array\" ||\n // schema.type might be an array of types, so we need to check if \"array\" is one of them\n (Array.isArray(value.type) && value.type.includes(\"array\"));\n\nexport const isComplexType = (value: SchemaObject) =>\n (value.type === \"object\" && Object.keys(value.properties ?? {}).length > 0) ||\n (value.type === \"array\" &&\n typeof value.items === \"object\" &&\n (!value.items.type || value.items.type === \"object\"));\n\nexport const hasLogicalGroupings = (value: SchemaObject) =>\n Boolean(value.oneOf ?? value.allOf ?? value.anyOf);\n\nexport const LogicalSchemaTypeMap = {\n allOf: \"AND\",\n anyOf: \"OR\",\n oneOf: \"ONE\",\n} as const;\n\nexport type LogicalGroupType = \"AND\" | \"OR\" | \"ONE\";\n\nexport const isCircularRef = (schema: unknown): schema is string =>\n schema === CIRCULAR_REF;\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { MinusIcon, PlusIcon, RefreshCcwDotIcon } from \"lucide-react\";\nimport { useCallback, useState } from \"react\";\nimport { InlineCode } from \"../../../components/InlineCode.js\";\nimport { Markdown, ProseClasses } from \"../../../components/Markdown.js\";\nimport type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { Button } from \"../../../ui/Button.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { objectEntries } from \"../../../util/objectEntries.js\";\nimport { EnumValues } from \"../components/EnumValues.js\";\nimport { SelectOnClick } from \"../components/SelectOnClick.js\";\nimport { ParamInfos } from \"../ParamInfos.js\";\nimport { LogicalGroup } from \"./LogicalGroup/LogicalGroup.js\";\nimport { SchemaExampleAndDefault } from \"./SchemaExampleAndDefault.js\";\nimport { SchemaView } from \"./SchemaView.js\";\nimport {\n hasLogicalGroupings,\n isArrayType,\n isCircularRef,\n isComplexType,\n LogicalSchemaTypeMap,\n} from \"./utils.js\";\n\nexport const SchemaLogicalGroup = ({ schema }: { schema: SchemaObject }) => {\n const [isOpen, setIsOpen] = useState(true);\n const toggleOpen = useCallback(() => setIsOpen((prev) => !prev), []);\n\n for (const [key, type] of objectEntries(LogicalSchemaTypeMap)) {\n if (!schema[key]) continue;\n\n return (\n <LogicalGroup\n schemas={schema[key]}\n type={type}\n isOpen={isOpen}\n toggleOpen={toggleOpen}\n />\n );\n }\n};\n\nconst RecursiveIndicator = () => (\n <InlineCode\n className=\"inline-flex items-center gap-1.5 italic text-xs translate-y-0.5\"\n selectOnClick={false}\n >\n <RefreshCcwDotIcon size={13} />\n <span>circular</span>\n </InlineCode>\n);\n\nexport const SchemaPropertyItem = ({\n name,\n schema,\n group,\n defaultOpen = false,\n showCollapseButton = true,\n}: {\n name: string;\n schema: SchemaObject;\n group: \"required\" | \"optional\" | \"deprecated\";\n defaultOpen?: boolean;\n showCollapseButton?: boolean;\n}) => {\n const [isOpen, setIsOpen] = useState(defaultOpen);\n\n if (isCircularRef(schema)) {\n return (\n <li className=\"p-4 bg-border/20 hover:bg-border/30\">\n <div className=\"flex flex-col gap-2.5 justify-between text-sm\">\n <div className=\"space-x-2\">\n <code>{name}</code>\n <ParamInfos\n schema={schema}\n extraItems={[<RecursiveIndicator key=\"circular-ref\" />]}\n />\n </div>\n <SchemaExampleAndDefault schema={schema} />\n </div>\n </li>\n );\n }\n\n return (\n <li className=\"p-4 bg-border/20 hover:bg-border/30\">\n <div className=\"flex flex-col gap-2.5 justify-between text-sm\">\n <div className=\"space-x-2\">\n <SelectOnClick asChild>\n <code>{name}</code>\n </SelectOnClick>\n <ParamInfos\n schema={schema}\n extraItems={[\n group !== \"optional\" && (\n <span className=\"text-primary\">required</span>\n ),\n isArrayType(schema) &&\n \"items\" in schema &&\n isCircularRef(schema.items) && <RecursiveIndicator />,\n ]}\n />\n </div>\n {schema.description && (\n <Markdown\n className={cn(ProseClasses, \"text-sm leading-normal line-clamp-4\")}\n content={schema.description}\n />\n )}\n {schema.type === \"array\" && \"items\" in schema && schema.items.enum && (\n <EnumValues values={schema.items.enum} />\n )}\n {schema.enum && <EnumValues values={schema.enum} />}\n <SchemaExampleAndDefault schema={schema} />\n {(hasLogicalGroupings(schema) ||\n isComplexType(schema) ||\n isArrayType(schema)) && (\n <Collapsible.Root\n defaultOpen={defaultOpen}\n open={isOpen}\n onOpenChange={() => setIsOpen(!isOpen)}\n >\n {showCollapseButton && (\n <Collapsible.Trigger asChild>\n <Button variant=\"expand\" size=\"sm\">\n {isOpen ? <MinusIcon size={12} /> : <PlusIcon size={12} />}\n {!isOpen ? \"Show properties\" : \"Hide properties\"}\n </Button>\n </Collapsible.Trigger>\n )}\n <Collapsible.Content>\n <div className=\"mt-2\">\n {hasLogicalGroupings(schema) ? (\n <SchemaLogicalGroup schema={schema} />\n ) : schema.type === \"object\" ? (\n <SchemaView schema={schema} />\n ) : (\n isArrayType(schema) &&\n \"items\" in schema &&\n typeof schema.items === \"object\" &&\n !isCircularRef(schema.items) && (\n <SchemaView schema={schema.items} />\n )\n )}\n </div>\n </Collapsible.Content>\n </Collapsible.Root>\n )}\n </div>\n </li>\n );\n};\n","import { Markdown, ProseClasses } from \"../../../components/Markdown.js\";\nimport type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { Card, CardContent, CardHeader, CardTitle } from \"../../../ui/Card.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { groupBy } from \"../../../util/groupBy.js\";\nimport { EnumValues } from \"../components/EnumValues.js\";\nimport { ParamInfos } from \"../ParamInfos.js\";\nimport { SchemaExampleAndDefault } from \"./SchemaExampleAndDefault.js\";\nimport {\n SchemaLogicalGroup,\n SchemaPropertyItem,\n} from \"./SchemaPropertyItem.js\";\nimport { hasLogicalGroupings, isBasicType } from \"./utils.js\";\n\nconst renderMarkdown = (content?: string) =>\n content && (\n <Markdown\n className={cn(ProseClasses, \"text-sm leading-normal line-clamp-4\")}\n content={content}\n />\n );\n\nconst renderBasicSchema = (schema: SchemaObject) => (\n <Card className=\"p-4 space-y-2\">\n <span className=\"text-sm text-muted-foreground\">\n <ParamInfos schema={schema} />\n </span>\n {schema.enum && <EnumValues values={schema.enum} />}\n {renderMarkdown(schema.description)}\n <SchemaExampleAndDefault schema={schema} />\n </Card>\n);\n\nexport const SchemaView = ({\n schema,\n defaultOpen = false,\n}: {\n schema?: SchemaObject | null;\n defaultOpen?: boolean;\n}) => {\n if (!schema || Object.keys(schema).length === 0) {\n return (\n <Card className=\"p-4\">\n <span className=\"text-sm text-muted-foreground italic\">\n No schema specified\n </span>\n </Card>\n );\n }\n\n if (hasLogicalGroupings(schema)) {\n return <SchemaLogicalGroup schema={schema} />;\n }\n\n if (isBasicType(schema.type)) {\n return renderBasicSchema(schema);\n }\n\n if (schema.type === \"array\" && typeof schema.items === \"object\") {\n return <SchemaView schema={schema.items as SchemaObject} />;\n }\n\n if (schema.type === \"object\") {\n const groupedProperties = groupBy(\n Object.entries(schema.properties ?? {}),\n ([propertyName, property]) => {\n return property.deprecated\n ? \"deprecated\"\n : schema.required?.includes(propertyName)\n ? \"required\"\n : \"optional\";\n },\n );\n const groupNames = [\"required\", \"optional\", \"deprecated\"] as const;\n\n return (\n <Card className=\"divide-y overflow-hidden\">\n {groupNames.map(\n (group) =>\n groupedProperties[group] && (\n <ul key={group} className=\"divide-y\">\n {groupedProperties[group].map(([name, schema]) => (\n <SchemaPropertyItem\n key={name}\n name={name}\n schema={schema}\n group={group}\n defaultOpen={defaultOpen}\n />\n ))}\n </ul>\n ),\n )}\n </Card>\n );\n }\n\n if (schema.additionalProperties) {\n return (\n <Card className=\"my-2\">\n <CardHeader>\n <CardTitle>Additional Properties:</CardTitle>\n </CardHeader>\n <CardContent>\n <SchemaView schema={schema.additionalProperties as SchemaObject} />\n </CardContent>\n </Card>\n );\n }\n\n return null;\n};\n"],"names":["stripIgnoredCharacters","source","sourceObj","isSource","Source","body","lexer","Lexer","strippedBody","wasLastAddedTokenNonPunctuator","TokenKind","currentToken","tokenKind","isNonPunctuator","isPunctuatorTokenKind","tokenBody","printBlockString","useCreateQuery","query","variables","graphQLClient","use","GraphQLContext","groupBy","arr","keySelector","accumulator","val","groupedKey","Pattern","pattern","isExpanded","setIsExpanded","useState","isExpandable","shortPattern","jsxs","InlineCode","cn","jsx","ChevronsLeftRightIcon","getSchemaInfos","schema","Fragment","ParamInfos","extraItems","className","filteredItems","item","isValidElement","index","EnumValues","values","maxVisibleValues","isOpen","setIsOpen","shouldCollapse","visibleValues","value","SelectOnClick","Button","ChevronUpIcon","ChevronDownIcon","SchemaExampleAndDefault","example","_a","defaultValue","iconMap","CircleFadingPlusIcon","CircleDotIcon","CircleIcon","colorClass","LogicalGroupConnector","type","schemeName","LogicalGroupItem","props","Collapsible","prev","SchemaView","typeLabel","LogicalGroup","schemas","toggleOpen","Card","SquareMinusIcon","SquarePlusIcon","subSchema","isBasicType","isArrayType","isComplexType","hasLogicalGroupings","LogicalSchemaTypeMap","isCircularRef","CIRCULAR_REF","SchemaLogicalGroup","useCallback","key","objectEntries","RecursiveIndicator","RefreshCcwDotIcon","SchemaPropertyItem","name","group","defaultOpen","showCollapseButton","Markdown","ProseClasses","MinusIcon","PlusIcon","renderMarkdown","content","renderBasicSchema","groupedProperties","propertyName","property","groupNames","CardHeader","CardTitle","CardContent"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SlotletProvider-CS_nO-XT.js","sources":["../src/lib/components/DeveloperHint.tsx","../src/lib/components/NotFoundPage.tsx","../src/lib/ui/SyntaxHighlight.tsx","../src/lib/errors/ErrorAlert.tsx","../src/lib/errors/RouterError.tsx","../../../node_modules/.pnpm/react-is@19.1.0/node_modules/react-is/cjs/react-is.production.js","../../../node_modules/.pnpm/react-is@19.1.0/node_modules/react-is/cjs/react-is.development.js","../../../node_modules/.pnpm/react-is@19.1.0/node_modules/react-is/index.js","../src/lib/components/SlotletProvider.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Callout } from \"../ui/Callout.js\";\nimport { Markdown } from \"./Markdown.js\";\n\nexport const DeveloperHint = ({\n children,\n className,\n}: {\n children: ReactNode;\n className?: string;\n}) => {\n if (process.env.NODE_ENV !== \"development\") return;\n\n return (\n <Callout type=\"caution\" title=\"Developer hint\" className={className}>\n <div className=\"flex flex-col gap-2\">\n {typeof children === \"string\" ? (\n <Markdown content={children} />\n ) : (\n <div>{children}</div>\n )}\n <small className=\"italic\">\n Note: This hint is only shown in development mode.\n </small>\n </div>\n </Callout>\n );\n};\n","import { UnlinkIcon } from \"lucide-react\";\nimport { Link, useParams } from \"react-router\";\nimport { CategoryHeading } from \"./CategoryHeading.js\";\nimport { DeveloperHint } from \"./DeveloperHint.js\";\nimport { Heading } from \"./Heading.js\";\nimport { ProseClasses } from \"./Markdown.js\";\n\nexport const NotFoundPage = () => {\n const params = useParams();\n\n return (\n <div className={ProseClasses + \" h-full pt-[--padding-content-top]\"}>\n <CategoryHeading>404</CategoryHeading>\n <Heading level={1} className=\"flex gap-3.5 items-center\">\n Page not found\n <UnlinkIcon size={24} />\n </Heading>\n <DeveloperHint>\n Start by adding a file at{\" \"}\n <code>\n {\"{PROJECT_ROOT}\"}/{params[\"*\"]}.mdx\n </code>{\" \"}\n and add some content to make this error go away.\n </DeveloperHint>\n <p>\n It seems that the page you are looking for does not exist or may have\n been moved. Please check the URL for any typos or use the navigation\n menu to find the correct page.\n </p>\n <Link to=\"/\">Go back home</Link>\n </div>\n );\n};\n","import {\n Highlight,\n Prism,\n themes,\n type HighlightProps,\n} from \"prism-react-renderer\";\n\nimport { CheckIcon, CopyIcon } from \"lucide-react\";\n\nglobalThis.Prism = Prism;\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-bash.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-ruby.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-markup.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-json.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-java.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-csharp.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-objectivec.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-markdown.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-javascript.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-typescript.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-jsstacktrace.min.js\");\n\nimport { useTheme } from \"next-themes\";\nimport { memo, useState } from \"react\";\nimport { ClientOnly } from \"../components/ClientOnly.js\";\nimport { cn } from \"../util/cn.js\";\n\nexport type SyntaxHighlightProps = {\n className?: string;\n noBackground?: boolean;\n wrapLines?: boolean;\n showLanguageIndicator?: boolean;\n language?: string;\n title?: string;\n children?: string;\n code?: string;\n showCopy?: \"hover\" | \"always\" | \"never\";\n showCopyText?: boolean;\n disabled?: boolean;\n} & Omit<HighlightProps, \"children\" | \"language\">;\n\nconst remapLang = {\n mdx: \"md\",\n} as Record<string, string>;\n\nconst SyntaxHighlightInner = ({\n language = \"plain\",\n showCopy = \"hover\",\n showCopyText,\n title,\n children,\n disabled,\n ...props\n}: SyntaxHighlightProps) => {\n const { resolvedTheme } = useTheme();\n const [isCopied, setIsCopied] = useState(false);\n\n const code = children ?? props.code;\n\n if (!code) {\n return null;\n }\n\n const highlightTheme =\n resolvedTheme === \"dark\" ? themes.vsDark : themes.github;\n\n // hardcoded values from the themes to avoid color flash in SSR\n const themeColorClasses =\n \"bg-[#f6f8fa] text-[#393a34] dark:bg-[#1e1e1e] dark:text-[#9cdcfe]\";\n\n const Wrapper = ({\n children,\n className,\n style,\n }: {\n children: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n }) => (\n <div className=\"relative group\">\n {title && (\n <div className=\"text-xs text-muted-foreground absolute top-2 font-mono border-b w-full pb-2 px-4 \">\n {title}\n </div>\n )}\n <pre\n className={cn(\n \"relative scrollbar overflow-x-auto\",\n props.className,\n props.noBackground ? \"!bg-transparent\" : themeColorClasses,\n props.wrapLines && \"whitespace-pre-wrap break-words\",\n title && \"pt-10\",\n className,\n )}\n style={style}\n >\n {children}\n </pre>\n {props.showLanguageIndicator && (\n <span className=\"absolute top-1.5 right-3 text-[11px] font-mono text-muted-foreground transition group-hover:opacity-0\">\n {language}\n </span>\n )}\n {showCopy !== \"never\" && (\n <button\n type=\"button\"\n aria-label=\"Copy code\"\n title=\"Copy code\"\n className={cn(\n \"absolute top-2 right-2 p-2 hover:outline hover:outline-border/75 dark:hover:outline-border rounded-md text-sm text-muted-foreground transition\",\n showCopy === \"hover\"\n ? \"opacity-0 group-hover:opacity-100 group-hover:bg-zinc-100 group-hover:dark:bg-zinc-700\"\n : \"bg-zinc-100 dark:bg-zinc-700\",\n showCopyText && \"flex gap-2 items-center font-medium\",\n )}\n disabled={isCopied}\n onClick={() => {\n setIsCopied(true);\n void navigator.clipboard.writeText(code);\n setTimeout(() => setIsCopied(false), 2000);\n }}\n >\n {isCopied ? (\n <CheckIcon\n className=\"text-emerald-600\"\n size={16}\n strokeWidth={2.5}\n absoluteStrokeWidth\n />\n ) : (\n <CopyIcon size={16} />\n )}\n {showCopyText && \"Copy\"}\n </button>\n )}\n </div>\n );\n\n if (disabled) {\n return (\n <ClientOnly fallback={<Wrapper>{code}</Wrapper>}>\n <Wrapper>{code}</Wrapper>\n </ClientOnly>\n );\n }\n\n return (\n <ClientOnly fallback={<Wrapper>{code}</Wrapper>}>\n <Highlight\n theme={highlightTheme}\n language={remapLang[language] ?? language}\n {...props}\n code={code}\n >\n {({ className, style, tokens, getLineProps, getTokenProps }) => (\n <Wrapper className={className} style={style}>\n {tokens.map((line, i) => (\n // eslint-disable-next-line react/no-array-index-key\n <div key={i} {...getLineProps({ line })}>\n {line.map((token, key) => (\n // eslint-disable-next-line react/no-array-index-key\n <span key={key} {...getTokenProps({ token })} />\n ))}\n </div>\n ))}\n </Wrapper>\n )}\n </Highlight>\n </ClientOnly>\n );\n};\n\nexport const SyntaxHighlight = memo(SyntaxHighlightInner);\n\nSyntaxHighlight.displayName = \"SyntaxHighlight\";\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nimport { SyntaxHighlight } from \"zudoku/ui/SyntaxHighlight.js\";\nimport { DeveloperHint } from \"../components/DeveloperHint.js\";\nimport { Heading } from \"../components/Heading.js\";\nimport { ProseClasses } from \"../components/Markdown.js\";\nimport { cn } from \"../util/cn.js\";\nimport { ZudokuError } from \"../util/invariant.js\";\n\nexport function ErrorAlert({ error }: { error: unknown }) {\n const message =\n error instanceof Error ? error.message : \"Something went wrong\";\n\n const hint = error instanceof ZudokuError ? error.developerHint : undefined;\n const title =\n error instanceof ZudokuError ? error.title : \"Something went wrong\";\n const stack = error instanceof Error ? error.stack : undefined;\n const cause = error instanceof Error ? error.cause : undefined;\n\n const stringError = cause instanceof Error ? String(cause.stack) : stack;\n\n return (\n <div\n className={cn(\n ProseClasses,\n \"grid grid-cols-1 !max-w-none pt-[--padding-content-top]\",\n )}\n >\n <Heading level={1}>{title}</Heading>\n Error: {message}\n {hint && <DeveloperHint className=\"mb-4\">{hint}</DeveloperHint>}\n {stringError && (\n <div>\n <SyntaxHighlight\n className=\"max-h-[400px] border mt-2\"\n language=\"jsstacktrace\"\n code={stringError}\n />\n </div>\n )}\n </div>\n );\n}\n","import { isRouteErrorResponse, useRouteError } from \"react-router\";\nimport { NotFoundPage } from \"../components/NotFoundPage.js\";\nimport { ErrorAlert } from \"./ErrorAlert.js\";\n\nexport function RouterError() {\n const error = useRouteError();\n\n if (isRouteErrorResponse(error) && error.status === 404) {\n return <NotFoundPage />;\n }\n\n return <ErrorAlert error={error} />;\n}\n","/**\n * @license React\n * react-is.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\nSymbol.for(\"react.provider\");\nvar REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_VIEW_TRANSITION_TYPE = Symbol.for(\"react.view_transition\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction typeOf(object) {\n if (\"object\" === typeof object && null !== object) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n switch (((object = object.type), object)) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n case REACT_VIEW_TRANSITION_TYPE:\n return object;\n default:\n switch (((object = object && object.$$typeof), object)) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return object;\n case REACT_CONSUMER_TYPE:\n return object;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n}\nexports.ContextConsumer = REACT_CONSUMER_TYPE;\nexports.ContextProvider = REACT_CONTEXT_TYPE;\nexports.Element = REACT_ELEMENT_TYPE;\nexports.ForwardRef = REACT_FORWARD_REF_TYPE;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Lazy = REACT_LAZY_TYPE;\nexports.Memo = REACT_MEMO_TYPE;\nexports.Portal = REACT_PORTAL_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nexports.isContextConsumer = function (object) {\n return typeOf(object) === REACT_CONSUMER_TYPE;\n};\nexports.isContextProvider = function (object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n};\nexports.isElement = function (object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n};\nexports.isForwardRef = function (object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n};\nexports.isFragment = function (object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n};\nexports.isLazy = function (object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n};\nexports.isMemo = function (object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n};\nexports.isPortal = function (object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n};\nexports.isProfiler = function (object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n};\nexports.isStrictMode = function (object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n};\nexports.isSuspense = function (object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n};\nexports.isSuspenseList = function (object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n};\nexports.isValidElementType = function (type) {\n return \"string\" === typeof type ||\n \"function\" === typeof type ||\n type === REACT_FRAGMENT_TYPE ||\n type === REACT_PROFILER_TYPE ||\n type === REACT_STRICT_MODE_TYPE ||\n type === REACT_SUSPENSE_TYPE ||\n type === REACT_SUSPENSE_LIST_TYPE ||\n (\"object\" === typeof type &&\n null !== type &&\n (type.$$typeof === REACT_LAZY_TYPE ||\n type.$$typeof === REACT_MEMO_TYPE ||\n type.$$typeof === REACT_CONTEXT_TYPE ||\n type.$$typeof === REACT_CONSUMER_TYPE ||\n type.$$typeof === REACT_FORWARD_REF_TYPE ||\n type.$$typeof === REACT_CLIENT_REFERENCE ||\n void 0 !== type.getModuleId))\n ? !0\n : !1;\n};\nexports.typeOf = typeOf;\n","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function typeOf(object) {\n if (\"object\" === typeof object && null !== object) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n switch (((object = object.type), object)) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n case REACT_VIEW_TRANSITION_TYPE:\n return object;\n default:\n switch (((object = object && object.$$typeof), object)) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return object;\n case REACT_CONSUMER_TYPE:\n return object;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n }\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_VIEW_TRANSITION_TYPE = Symbol.for(\"react.view_transition\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\n exports.ContextConsumer = REACT_CONSUMER_TYPE;\n exports.ContextProvider = REACT_CONTEXT_TYPE;\n exports.Element = REACT_ELEMENT_TYPE;\n exports.ForwardRef = REACT_FORWARD_REF_TYPE;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Lazy = REACT_LAZY_TYPE;\n exports.Memo = REACT_MEMO_TYPE;\n exports.Portal = REACT_PORTAL_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.SuspenseList = REACT_SUSPENSE_LIST_TYPE;\n exports.isContextConsumer = function (object) {\n return typeOf(object) === REACT_CONSUMER_TYPE;\n };\n exports.isContextProvider = function (object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n };\n exports.isElement = function (object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n };\n exports.isForwardRef = function (object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n };\n exports.isFragment = function (object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n };\n exports.isLazy = function (object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n };\n exports.isMemo = function (object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n };\n exports.isPortal = function (object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n };\n exports.isProfiler = function (object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n };\n exports.isStrictMode = function (object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n };\n exports.isSuspense = function (object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n };\n exports.isSuspenseList = function (object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n };\n exports.isValidElementType = function (type) {\n return \"string\" === typeof type ||\n \"function\" === typeof type ||\n type === REACT_FRAGMENT_TYPE ||\n type === REACT_PROFILER_TYPE ||\n type === REACT_STRICT_MODE_TYPE ||\n type === REACT_SUSPENSE_TYPE ||\n type === REACT_SUSPENSE_LIST_TYPE ||\n (\"object\" === typeof type &&\n null !== type &&\n (type.$$typeof === REACT_LAZY_TYPE ||\n type.$$typeof === REACT_MEMO_TYPE ||\n type.$$typeof === REACT_CONTEXT_TYPE ||\n type.$$typeof === REACT_CONSUMER_TYPE ||\n type.$$typeof === REACT_FORWARD_REF_TYPE ||\n type.$$typeof === REACT_CLIENT_REFERENCE ||\n void 0 !== type.getModuleId))\n ? !0\n : !1;\n };\n exports.typeOf = typeOf;\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import React, {\n type ComponentType,\n type ReactElement,\n ReactNode,\n useContext,\n} from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport {\n type Location,\n type NavigateFunction,\n type Params,\n type SetURLSearchParams,\n} from \"react-router\";\nimport { useExposedProps } from \"../util/useExposedProps.js\";\n\nexport type Slotlets = Record<\n string,\n ReactNode | ReactElement | ComponentType<ExposedComponentProps>\n>;\n\nconst SlotletContext = React.createContext<Slotlets | undefined>({});\n\nexport const SlotletProvider = ({\n slotlets,\n children,\n}: {\n children: ReactNode;\n slotlets?: Slotlets;\n}) => {\n return (\n <SlotletContext.Provider value={slotlets}>\n {children}\n </SlotletContext.Provider>\n );\n};\n\nexport type ExposedComponentProps = {\n location: Location;\n navigate: NavigateFunction;\n searchParams: URLSearchParams;\n setSearchParams: SetURLSearchParams;\n params: Params;\n};\n\nexport const Slotlet = ({ name }: { name: string }) => {\n const context = useContext(SlotletContext);\n const componentOrElement = context?.[name];\n const slotletProps = useExposedProps();\n\n if (isValidElementType(componentOrElement)) {\n return React.createElement(componentOrElement, slotletProps);\n }\n\n return componentOrElement as ReactNode;\n};\n"],"names":["DeveloperHint","children","className","jsx","Callout","jsxs","Markdown","NotFoundPage","params","useParams","ProseClasses","CategoryHeading","Heading","UnlinkIcon","Link","Prism","n","remapLang","SyntaxHighlightInner","language","showCopy","showCopyText","title","disabled","props","resolvedTheme","useTheme","isCopied","setIsCopied","useState","code","highlightTheme","themes","themeColorClasses","Wrapper","style","cn","CheckIcon","CopyIcon","ClientOnly","Highlight","tokens","getLineProps","getTokenProps","line","i","token","key","SyntaxHighlight","memo","ErrorAlert","error","message","hint","ZudokuError","stack","cause","stringError","RouterError","useRouteError","isRouteErrorResponse","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_CONSUMER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_VIEW_TRANSITION_TYPE","REACT_CLIENT_REFERENCE","typeOf","object","$$typeof","reactIs_production","type","reactIs_development","reactIsModule","require$$0","require$$1","SlotletContext","React","SlotletProvider","slotlets","Slotlet","name","context","useContext","componentOrElement","slotletProps","useExposedProps","isValidElementType"],"mappings":";;;;;;;;;;;;;AAIO,MAAMA,IAAgB,CAAC;AAAA,EAC5B,UAAAC;AAAA,EACA,WAAAC;AACF,MAGM;AACA,MAAA,QAAQ,IAAI,aAAa;AAG3B,WAAAC,gBAAAA,EAAAA,IAACC,GAAQ,EAAA,MAAK,WAAU,OAAM,kBAAiB,WAAAF,GAC7C,UAAAG,gBAAAA,EAAA,KAAC,OAAI,EAAA,WAAU,uBACZ,UAAA;AAAA,MAAO,OAAAJ,KAAa,WAClBE,gBAAAA,EAAA,IAAAG,GAAA,EAAS,SAASL,EAAU,CAAA,IAE5BE,gBAAAA,EAAA,IAAA,OAAA,EAAK,UAAAF,EAAS,CAAA;AAAA,MAEhBE,gBAAAA,EAAA,IAAA,SAAA,EAAM,WAAU,UAAS,UAE1B,qDAAA,CAAA;AAAA,IAAA,EAAA,CACF,EACF,CAAA;AAEJ,GCpBaI,KAAe,MAAM;AAChC,QAAMC,IAASC,EAAU;AAEzB,SACGJ,gBAAAA,EAAAA,KAAA,OAAA,EAAI,WAAWK,IAAe,sCAC7B,UAAA;AAAA,IAAAP,gBAAAA,EAAAA,IAACQ,KAAgB,UAAG,MAAA,CAAA;AAAA,IACnBN,gBAAAA,EAAA,KAAAO,GAAA,EAAQ,OAAO,GAAG,WAAU,6BAA4B,UAAA;AAAA,MAAA;AAAA,MAEvDT,gBAAAA,EAAAA,IAACU,GAAW,EAAA,MAAM,GAAI,CAAA;AAAA,IAAA,GACxB;AAAA,2BACCb,GAAc,EAAA,UAAA;AAAA,MAAA;AAAA,MACa;AAAA,6BACzB,QACE,EAAA,UAAA;AAAA,QAAA;AAAA,QAAiB;AAAA,QAAEQ,EAAO,GAAG;AAAA,QAAE;AAAA,MAAA,GAClC;AAAA,MAAQ;AAAA,MAAI;AAAA,IAAA,GAEd;AAAA,IACAL,gBAAAA,EAAAA,IAAC,OAAE,UAIH,4KAAA,CAAA;AAAA,IACCA,gBAAAA,EAAA,IAAAW,GAAA,EAAK,IAAG,KAAI,UAAY,eAAA,CAAA;AAAA,EAAA,GAC3B;AAEJ;ACvBA,WAAW,QAAQC;AAEd,OAAO,8BAAsC;AAE7C,OAAO,8BAAsC,EAAA,KAAA,CAAAC,MAAAA,EAAA,CAAA;AAE7C,OAAO,4BAAoC;AAE3C,OAAO,8BAAsC;AAE7C,OAAO,8BAAsC,EAAA,KAAA,CAAAA,MAAAA,EAAA,CAAA;AAE7C,OAAO,gCAAwC,EAAA,KAAA,CAAAA,MAAAA,EAAA,CAAA;AAE/C,OAAO,oCAA4C;AAEnD,OAAO,kCAA0C;AAEjD,OAAO,oCAA4C;AAEnD,OAAO,oCAA4C,EAAA,KAAA,CAAAA,MAAAA,EAAA,CAAA;AAEnD,OAAO,sCAA8C;AAqB1D,MAAMC,KAAY;AAAA,EAChB,KAAK;AACP,GAEMC,KAAuB,CAAC;AAAA,EAC5B,UAAAC,IAAW;AAAA,EACX,UAAAC,IAAW;AAAA,EACX,cAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAArB;AAAA,EACA,UAAAsB;AAAA,EACA,GAAGC;AACL,MAA4B;AACpB,QAAA,EAAE,eAAAC,EAAc,IAAIC,EAAS,GAC7B,CAACC,GAAUC,CAAW,IAAIC,GAAS,EAAK,GAExCC,IAAO7B,KAAYuB,EAAM;AAE/B,MAAI,CAACM;AACI,WAAA;AAGT,QAAMC,IACJN,MAAkB,SAASO,EAAO,SAASA,EAAO,QAG9CC,IACJ,qEAEIC,IAAU,CAAC;AAAA,IACf,UAAAjC;AAAAA,IACA,WAAAC;AAAA,IACA,OAAAiC;AAAA,EAMA,MAAA9B,gBAAAA,EAAA,KAAC,OAAI,EAAA,WAAU,kBACZ,UAAA;AAAA,IAAAiB,KACEnB,gBAAAA,EAAA,IAAA,OAAA,EAAI,WAAU,qFACZ,UACHmB,GAAA;AAAA,IAEFnB,gBAAAA,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWiC;AAAA,UACT;AAAA,UACAZ,EAAM;AAAA,UACNA,EAAM,eAAe,oBAAoBS;AAAA,UACzCT,EAAM,aAAa;AAAA,UACnBF,KAAS;AAAA,UACTpB;AAAA,QACF;AAAA,QACA,OAAAiC;AAAA,QAEC,UAAAlC;AAAAA,MAAA;AAAA,IACH;AAAA,IACCuB,EAAM,yBACLrB,gBAAAA,EAAAA,IAAC,QAAK,EAAA,WAAU,yGACb,UACHgB,GAAA;AAAA,IAEDC,MAAa,WACZf,gBAAAA,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,cAAW;AAAA,QACX,OAAM;AAAA,QACN,WAAW+B;AAAA,UACT;AAAA,UACAhB,MAAa,UACT,2FACA;AAAA,UACJC,KAAgB;AAAA,QAClB;AAAA,QACA,UAAUM;AAAA,QACV,SAAS,MAAM;AACb,UAAAC,EAAY,EAAI,GACX,UAAU,UAAU,UAAUE,CAAI,GACvC,WAAW,MAAMF,EAAY,EAAK,GAAG,GAAI;AAAA,QAC3C;AAAA,QAEC,UAAA;AAAA,UACCD,IAAAxB,gBAAAA,EAAA;AAAA,YAACkC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,MAAM;AAAA,cACN,aAAa;AAAA,cACb,qBAAmB;AAAA,YAAA;AAAA,UAGrB,IAAAlC,gBAAAA,EAAA,IAACmC,GAAS,EAAA,MAAM,GAAI,CAAA;AAAA,UAErBjB,KAAgB;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACnB,GAEJ;AAGF,SAAIE,IAEApB,gBAAAA,EAAAA,IAACoC,GAAW,EAAA,UAAWpC,gBAAAA,EAAAA,IAAA+B,GAAA,EAAS,YAAK,CAAA,GACnC,UAAA/B,gBAAAA,EAAAA,IAAC+B,GAAS,EAAA,UAAAJ,EAAK,CAAA,GACjB,0BAKDS,GAAW,EAAA,UAAWpC,gBAAAA,EAAA,IAAA+B,GAAA,EAAS,aAAK,GACnC,UAAA/B,gBAAAA,EAAA;AAAA,IAACqC;AAAAA,IAAA;AAAA,MACC,OAAOT;AAAA,MACP,UAAUd,GAAUE,CAAQ,KAAKA;AAAA,MAChC,GAAGK;AAAA,MACJ,MAAAM;AAAA,MAEC,UAAC,CAAA,EAAE,WAAA5B,GAAW,OAAAiC,GAAO,QAAAM,GAAQ,cAAAC,GAAc,eAAAC,QAC1CxC,gBAAAA,EAAAA,IAAC+B,KAAQ,WAAAhC,GAAsB,OAAAiC,GAC5B,UAAOM,EAAA,IAAI,CAACG,GAAMC;AAAA;AAAA,QAEjB1C,gBAAAA,EAAAA,IAAC,OAAa,EAAA,GAAGuC,EAAa,EAAE,MAAAE,EAAK,CAAC,GACnC,UAAAA,EAAK,IAAI,CAACE,GAAOC;AAAA;AAAA,UAEhB5C,gBAAAA,EAAA,IAAC,UAAgB,GAAGwC,EAAc,EAAE,OAAAG,EAAM,CAAC,KAAhCC,CAAmC;AAAA,SAC/C,KAJOF,CAKV;AAAA,OACD,EACH,CAAA;AAAA,IAAA;AAAA,EAAA,GAGN;AAEJ,GAEaG,IAAkBC,EAAK/B,EAAoB;AAExD8B,EAAgB,cAAc;ACjLd,SAAAE,GAAW,EAAE,OAAAC,KAA6B;AACxD,QAAMC,IACJD,aAAiB,QAAQA,EAAM,UAAU,wBAErCE,IAAOF,aAAiBG,IAAcH,EAAM,gBAAgB,QAC5D7B,IACJ6B,aAAiBG,IAAcH,EAAM,QAAQ,wBACzCI,IAAQJ,aAAiB,QAAQA,EAAM,QAAQ,QAC/CK,IAAQL,aAAiB,QAAQA,EAAM,QAAQ,QAE/CM,IAAcD,aAAiB,QAAQ,OAAOA,EAAM,KAAK,IAAID;AAGjE,SAAAlD,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW+B;AAAA,QACT1B;AAAA,QACA;AAAA,MACF;AAAA,MAEA,UAAA;AAAA,QAACP,gBAAAA,EAAA,IAAAS,GAAA,EAAQ,OAAO,GAAI,UAAMU,GAAA;AAAA,QAAU;AAAA,QAC5B8B;AAAA,QACPC,KAAQlD,gBAAAA,EAAA,IAACH,GAAc,EAAA,WAAU,QAAQ,UAAKqD,GAAA;AAAA,QAC9CI,2BACE,OACC,EAAA,UAAAtD,gBAAAA,EAAA;AAAA,UAAC6C;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,UAAS;AAAA,YACT,MAAMS;AAAA,UAAA;AAAA,QAAA,EAEV,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAEJ;AAEJ;ACrCO,SAASC,KAAc;AAC5B,QAAMP,IAAQQ,EAAc;AAE5B,SAAIC,EAAqBT,CAAK,KAAKA,EAAM,WAAW,4BAC1C5C,IAAa,EAAA,IAGhBJ,gBAAAA,MAAC+C,MAAW,OAAAC,GAAc;AACnC;;;;;;;;;;;;;;;ACDA,MAAIU,IAAqB,OAAO,IAAI,4BAA4B,GAC9DC,IAAoB,OAAO,IAAI,cAAc,GAC7CC,IAAsB,OAAO,IAAI,gBAAgB,GACjDC,IAAyB,OAAO,IAAI,mBAAmB,GACvDC,IAAsB,OAAO,IAAI,gBAAgB,GAE/CC,IAAsB,OAAO,IAAI,gBAAgB,GACnDC,IAAqB,OAAO,IAAI,eAAe,GAC/CC,IAAyB,OAAO,IAAI,mBAAmB,GACvDC,IAAsB,OAAO,IAAI,gBAAgB,GACjDC,IAA2B,OAAO,IAAI,qBAAqB,GAC3DC,IAAkB,OAAO,IAAI,YAAY,GACzCC,IAAkB,OAAO,IAAI,YAAY,GACzCC,IAA6B,OAAO,IAAI,uBAAuB,GAC/DC,IAAyB,OAAO,IAAI,wBAAwB;AAC9D,WAASC,EAAOC,GAAQ;AACtB,QAAiB,OAAOA,KAApB,YAAuCA,MAAT,MAAiB;AACjD,UAAIC,IAAWD,EAAO;AACtB,cAAQC,GAAQ;AAAA,QACd,KAAKhB;AACH,kBAAUe,IAASA,EAAO,MAAOA,GAAM;AAAA,YACrC,KAAKb;AAAA,YACL,KAAKE;AAAA,YACL,KAAKD;AAAA,YACL,KAAKK;AAAA,YACL,KAAKC;AAAA,YACL,KAAKG;AACH,qBAAOG;AAAA,YACT;AACE,sBAAUA,IAASA,KAAUA,EAAO,UAAWA,GAAM;AAAA,gBACnD,KAAKT;AAAA,gBACL,KAAKC;AAAA,gBACL,KAAKI;AAAA,gBACL,KAAKD;AACH,yBAAOK;AAAA,gBACT,KAAKV;AACH,yBAAOU;AAAA,gBACT;AACE,yBAAOC;AAAA,cACvB;AAAA,UACA;AAAA,QACM,KAAKf;AACH,iBAAOe;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA,SAAAC,EAAA,kBAA0BZ,GAC1BY,EAAA,kBAA0BX,GAC1BW,EAAA,UAAkBjB,GAClBiB,EAAA,aAAqBV,GACrBU,EAAA,WAAmBf,GACnBe,EAAA,OAAeN,GACfM,EAAA,OAAeP,GACfO,EAAA,SAAiBhB,GACjBgB,EAAA,WAAmBb,GACnBa,EAAA,aAAqBd,GACrBc,EAAA,WAAmBT,GACnBS,EAAA,eAAuBR,GACEQ,EAAA,oBAAG,SAAUF,GAAQ;AAC5C,WAAOD,EAAOC,CAAM,MAAMV;AAAA,EAC3B,GACwBY,EAAA,oBAAG,SAAUF,GAAQ;AAC5C,WAAOD,EAAOC,CAAM,MAAMT;AAAA,EAC3B,GACgBW,EAAA,YAAG,SAAUF,GAAQ;AACpC,WACe,OAAOA,KAApB,YACSA,MAAT,QACAA,EAAO,aAAaf;AAAA,EAEvB,GACmBiB,EAAA,eAAG,SAAUF,GAAQ;AACvC,WAAOD,EAAOC,CAAM,MAAMR;AAAA,EAC3B,GACiBU,EAAA,aAAG,SAAUF,GAAQ;AACrC,WAAOD,EAAOC,CAAM,MAAMb;AAAA,EAC3B,GACae,EAAA,SAAG,SAAUF,GAAQ;AACjC,WAAOD,EAAOC,CAAM,MAAMJ;AAAA,EAC3B,GACaM,EAAA,SAAG,SAAUF,GAAQ;AACjC,WAAOD,EAAOC,CAAM,MAAML;AAAA,EAC3B,GACeO,EAAA,WAAG,SAAUF,GAAQ;AACnC,WAAOD,EAAOC,CAAM,MAAMd;AAAA,EAC3B,GACiBgB,EAAA,aAAG,SAAUF,GAAQ;AACrC,WAAOD,EAAOC,CAAM,MAAMX;AAAA,EAC3B,GACmBa,EAAA,eAAG,SAAUF,GAAQ;AACvC,WAAOD,EAAOC,CAAM,MAAMZ;AAAA,EAC3B,GACiBc,EAAA,aAAG,SAAUF,GAAQ;AACrC,WAAOD,EAAOC,CAAM,MAAMP;AAAA,EAC3B,GACqBS,EAAA,iBAAG,SAAUF,GAAQ;AACzC,WAAOD,EAAOC,CAAM,MAAMN;AAAA,EAC3B,GACyBQ,EAAA,qBAAG,SAAUC,GAAM;AAC3C,WAAoB,OAAOA,KAApB,YACU,OAAOA,KAAtB,cACAA,MAAShB,KACTgB,MAASd,KACTc,MAASf,KACTe,MAASV,KACTU,MAAST,KACK,OAAOS,KAApB,YACUA,MAAT,SACCA,EAAK,aAAaP,KACjBO,EAAK,aAAaR,KAClBQ,EAAK,aAAaZ,KAClBY,EAAK,aAAab,KAClBa,EAAK,aAAaX,KAClBW,EAAK,aAAaL,KACPK,EAAK,gBAAhB;AAAA,EAGP,GACDD,EAAA,SAAiBH;;;;;;;;;;;;;;sBCtHA,QAAQ,IAAI,aAA7B,gBACG,WAAY;AACX,aAASA,EAAOC,GAAQ;AACtB,UAAiB,OAAOA,KAApB,YAAuCA,MAAT,MAAiB;AACjD,YAAIC,IAAWD,EAAO;AACtB,gBAAQC,GAAQ;AAAA,UACd,KAAKhB;AACH,oBAAUe,IAASA,EAAO,MAAOA,GAAM;AAAA,cACrC,KAAKb;AAAA,cACL,KAAKE;AAAA,cACL,KAAKD;AAAA,cACL,KAAKK;AAAA,cACL,KAAKC;AAAA,cACL,KAAKG;AACH,uBAAOG;AAAA,cACT;AACE,wBAAUA,IAASA,KAAUA,EAAO,UAAWA,GAAM;AAAA,kBACnD,KAAKT;AAAA,kBACL,KAAKC;AAAA,kBACL,KAAKI;AAAA,kBACL,KAAKD;AACH,2BAAOK;AAAA,kBACT,KAAKV;AACH,2BAAOU;AAAA,kBACT;AACE,2BAAOC;AAAA,gBAC3B;AAAA,YACA;AAAA,UACU,KAAKf;AACH,mBAAOe;AAAA,QACnB;AAAA,MACA;AAAA,IACA;AACI,QAAIhB,IAAqB,OAAO,IAAI,4BAA4B,GAC9DC,IAAoB,OAAO,IAAI,cAAc,GAC7CC,IAAsB,OAAO,IAAI,gBAAgB,GACjDC,IAAyB,OAAO,IAAI,mBAAmB,GACvDC,IAAsB,OAAO,IAAI,gBAAgB,GAE/CC,IAAsB,OAAO,IAAI,gBAAgB,GACnDC,IAAqB,OAAO,IAAI,eAAe,GAC/CC,IAAyB,OAAO,IAAI,mBAAmB,GACvDC,IAAsB,OAAO,IAAI,gBAAgB,GACjDC,IAA2B,OAAO,IAAI,qBAAqB,GAC3DC,IAAkB,OAAO,IAAI,YAAY,GACzCC,IAAkB,OAAO,IAAI,YAAY,GACzCC,IAA6B,OAAO,IAAI,uBAAuB,GAC/DC,IAAyB,OAAO,IAAI,wBAAwB;AAC9D,IAAAM,EAAA,kBAA0Bd,GAC1Bc,EAAA,kBAA0Bb,GAC1Ba,EAAA,UAAkBnB,GAClBmB,EAAA,aAAqBZ,GACrBY,EAAA,WAAmBjB,GACnBiB,EAAA,OAAeR,GACfQ,EAAA,OAAeT,GACfS,EAAA,SAAiBlB,GACjBkB,EAAA,WAAmBf,GACnBe,EAAA,aAAqBhB,GACrBgB,EAAA,WAAmBX,GACnBW,EAAA,eAAuBV,GACvBU,EAAyB,oBAAG,SAAUJ,GAAQ;AAC5C,aAAOD,EAAOC,CAAM,MAAMV;AAAA,IAC3B,GACDc,EAAyB,oBAAG,SAAUJ,GAAQ;AAC5C,aAAOD,EAAOC,CAAM,MAAMT;AAAA,IAC3B,GACDa,EAAiB,YAAG,SAAUJ,GAAQ;AACpC,aACe,OAAOA,KAApB,YACSA,MAAT,QACAA,EAAO,aAAaf;AAAA,IAEvB,GACDmB,EAAoB,eAAG,SAAUJ,GAAQ;AACvC,aAAOD,EAAOC,CAAM,MAAMR;AAAA,IAC3B,GACDY,EAAkB,aAAG,SAAUJ,GAAQ;AACrC,aAAOD,EAAOC,CAAM,MAAMb;AAAA,IAC3B,GACDiB,EAAc,SAAG,SAAUJ,GAAQ;AACjC,aAAOD,EAAOC,CAAM,MAAMJ;AAAA,IAC3B,GACDQ,EAAc,SAAG,SAAUJ,GAAQ;AACjC,aAAOD,EAAOC,CAAM,MAAML;AAAA,IAC3B,GACDS,EAAgB,WAAG,SAAUJ,GAAQ;AACnC,aAAOD,EAAOC,CAAM,MAAMd;AAAA,IAC3B,GACDkB,EAAkB,aAAG,SAAUJ,GAAQ;AACrC,aAAOD,EAAOC,CAAM,MAAMX;AAAA,IAC3B,GACDe,EAAoB,eAAG,SAAUJ,GAAQ;AACvC,aAAOD,EAAOC,CAAM,MAAMZ;AAAA,IAC3B,GACDgB,EAAkB,aAAG,SAAUJ,GAAQ;AACrC,aAAOD,EAAOC,CAAM,MAAMP;AAAA,IAC3B,GACDW,EAAsB,iBAAG,SAAUJ,GAAQ;AACzC,aAAOD,EAAOC,CAAM,MAAMN;AAAA,IAC3B,GACDU,EAA0B,qBAAG,SAAUD,GAAM;AAC3C,aAAoB,OAAOA,KAApB,YACU,OAAOA,KAAtB,cACAA,MAAShB,KACTgB,MAASd,KACTc,MAASf,KACTe,MAASV,KACTU,MAAST,KACK,OAAOS,KAApB,YACUA,MAAT,SACCA,EAAK,aAAaP,KACjBO,EAAK,aAAaR,KAClBQ,EAAK,aAAaZ,KAClBY,EAAK,aAAab,KAClBa,EAAK,aAAaX,KAClBW,EAAK,aAAaL,KACPK,EAAK,gBAAhB;AAAA,IAGP,GACDC,EAAA,SAAiBL;AAAA,EACrB,EAAM;;;;sBClIF,QAAQ,IAAI,aAAa,eAC3BM,EAAA,UAAwDC,gBAAAA,GAAA,IAExDD,EAAA,UAAyDE,gBAAAA,GAAA;;;ACe3D,MAAMC,IAAiBC,EAAM,cAAoC,EAAE,GAEtDC,KAAkB,CAAC;AAAA,EAC9B,UAAAC;AAAA,EACA,UAAAtF;AACF,4BAKKmF,EAAe,UAAf,EAAwB,OAAOG,GAC7B,UAAAtF,GACH,GAYSuF,KAAU,CAAC,EAAE,MAAAC,QAA6B;AAC/C,QAAAC,IAAUC,GAAWP,CAAc,GACnCQ,IAAqBF,KAAA,gBAAAA,EAAUD,IAC/BI,IAAeC,GAAgB;AAEjC,SAAAC,GAAAA,mBAAmBH,CAAkB,IAChCP,EAAM,cAAcO,GAAoBC,CAAY,IAGtDD;AACT;","x_google_ignoreList":[5,6,7]}
|
package/lib/Toc-D_tV8_Ri.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Toc-D_tV8_Ri.js","sources":["../src/lib/components/navigation/Toc.tsx"],"sourcesContent":["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 { cn } from \"../../util/cn.js\";\nimport { AnchorLink } from \"../AnchorLink.js\";\nimport { useViewportAnchor } from \"../context/ViewportAnchorContext.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 className={cn(\"truncate\", className)} title={item.value}>\n <AnchorLink\n to={`#${item.id}`}\n {...{ [DATA_ANCHOR_ATTR]: item.id }}\n className={cn(\n isActive\n ? \"text-primary\"\n : \"hover:text-accent-foreground text-muted-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 scrollbar top-8 lg: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"],"names":["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"],"mappings":"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"}
|