zudoku 0.3.0-dev.83 → 0.3.0-dev.85
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.js +5 -1
- package/dist/app/demo.js +5 -4
- package/dist/app/demo.js.map +1 -1
- package/dist/app/main.js +3 -1
- package/dist/app/main.js.map +1 -1
- package/dist/app/standalone.js +5 -4
- package/dist/app/standalone.js.map +1 -1
- package/dist/config/validators/ResolvedSidebarSchema.d.ts +18 -0
- package/dist/config/validators/ResolvedSidebarSchema.js +76 -0
- package/dist/config/validators/ResolvedSidebarSchema.js.map +1 -0
- package/dist/config/validators/SidebarSchema.d.ts +177 -0
- package/dist/config/validators/SidebarSchema.js +71 -0
- package/dist/config/validators/SidebarSchema.js.map +1 -0
- package/dist/config/validators/validate.d.ts +411 -59
- package/dist/config/validators/validate.js +22 -4
- package/dist/config/validators/validate.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/lib/components/DevPortal.js +1 -1
- package/dist/lib/components/DevPortal.js.map +1 -1
- package/dist/lib/components/Header.js +5 -4
- package/dist/lib/components/Header.js.map +1 -1
- package/dist/lib/components/Heading.d.ts +1 -1
- package/dist/lib/components/Layout.js +2 -2
- package/dist/lib/components/Layout.js.map +1 -1
- package/dist/lib/components/TopNavigation.js +5 -5
- package/dist/lib/components/TopNavigation.js.map +1 -1
- package/dist/lib/components/context/DevPortalProvider.d.ts +9 -3
- package/dist/lib/components/context/DevPortalProvider.js +11 -23
- package/dist/lib/components/context/DevPortalProvider.js.map +1 -1
- package/dist/lib/components/context/ThemeContext.d.ts +1 -4
- package/dist/lib/components/context/ThemeContext.js +3 -29
- package/dist/lib/components/context/ThemeContext.js.map +1 -1
- package/dist/lib/components/context/ThemeProvider.d.ts +4 -0
- package/dist/lib/components/context/ThemeProvider.js +23 -0
- package/dist/lib/components/context/ThemeProvider.js.map +1 -0
- package/dist/lib/components/navigation/Sidebar.d.ts +1 -0
- package/dist/lib/components/navigation/Sidebar.js +12 -0
- package/dist/lib/components/navigation/Sidebar.js.map +1 -0
- package/dist/lib/components/navigation/SidebarBadge.d.ts +22 -0
- package/dist/lib/components/navigation/SidebarBadge.js +24 -0
- package/dist/lib/components/navigation/SidebarBadge.js.map +1 -0
- package/dist/lib/components/navigation/SidebarCategory.d.ts +5 -0
- package/dist/lib/components/navigation/SidebarCategory.js +33 -0
- package/dist/lib/components/navigation/SidebarCategory.js.map +1 -0
- package/dist/lib/components/navigation/SidebarItem.d.ts +12 -0
- package/dist/lib/components/navigation/SidebarItem.js +42 -0
- package/dist/lib/components/navigation/SidebarItem.js.map +1 -0
- package/dist/lib/components/navigation/{SideNavigationWrapper.d.ts → SidebarWrapper.d.ts} +1 -1
- package/dist/lib/components/navigation/{SideNavigationWrapper.js → SidebarWrapper.js} +2 -2
- package/dist/lib/components/navigation/SidebarWrapper.js.map +1 -0
- package/dist/lib/components/navigation/utils.d.ts +16 -0
- package/dist/lib/components/navigation/utils.js +85 -0
- package/dist/lib/components/navigation/utils.js.map +1 -0
- package/dist/lib/core/DevPortalContext.d.ts +9 -32
- package/dist/lib/core/DevPortalContext.js +8 -5
- package/dist/lib/core/DevPortalContext.js.map +1 -1
- package/dist/lib/core/plugins.d.ts +6 -8
- package/dist/lib/core/plugins.js.map +1 -1
- package/dist/lib/plugins/markdown/MdxPage.js +5 -36
- package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
- package/dist/lib/plugins/markdown/generateRoutes.js +20 -43
- package/dist/lib/plugins/markdown/generateRoutes.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationListItem.js +4 -3
- package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/ParameterList.js +2 -1
- package/dist/lib/plugins/openapi/ParameterList.js.map +1 -1
- package/dist/lib/plugins/openapi/SchemaListView.js +6 -1
- package/dist/lib/plugins/openapi/SchemaListView.js.map +1 -1
- package/dist/lib/plugins/openapi/SchemaListViewItem.d.ts +3 -2
- package/dist/lib/plugins/openapi/SchemaListViewItem.js +6 -3
- package/dist/lib/plugins/openapi/SchemaListViewItem.js.map +1 -1
- package/dist/lib/plugins/openapi/Sidecar.js +12 -2
- package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
- package/dist/lib/plugins/openapi/index.js +14 -11
- package/dist/lib/plugins/openapi/index.js.map +1 -1
- package/dist/lib/plugins/openapi/interfaces.d.ts +1 -1
- package/dist/lib/plugins/openapi/playground/Headers.js +1 -1
- package/dist/lib/plugins/openapi/playground/Headers.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/Playground.js +1 -1
- package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
- package/dist/lib/util/useScrollToAnchor.js +31 -17
- package/dist/lib/util/useScrollToAnchor.js.map +1 -1
- package/dist/vite/plugin-sidebar.d.ts +3 -0
- package/dist/vite/plugin-sidebar.js +23 -0
- package/dist/vite/plugin-sidebar.js.map +1 -0
- package/dist/vite/plugin.js +2 -0
- package/dist/vite/plugin.js.map +1 -1
- package/lib/{AuthenticationPlugin-XS0DoAhE.js → AuthenticationPlugin-DgwV0hVu.js} +7 -7
- package/lib/{AuthenticationPlugin-XS0DoAhE.js.map → AuthenticationPlugin-DgwV0hVu.js.map} +1 -1
- package/lib/{CategoryHeading-DCmchnA1.js → CategoryHeading-BWq12Bfa.js} +3 -3
- package/lib/{CategoryHeading-DCmchnA1.js.map → CategoryHeading-BWq12Bfa.js.map} +1 -1
- package/lib/{Combination-C442XfGG.js → Combination-DkycFHkm.js} +4 -4
- package/lib/{Combination-C442XfGG.js.map → Combination-DkycFHkm.js.map} +1 -1
- package/lib/{DevPortalProvider-BWeAysxF.js → DevPortalProvider-CTxoCHIT.js} +375 -417
- package/lib/DevPortalProvider-CTxoCHIT.js.map +1 -0
- package/lib/DeveloperHint-BQSFXH01.js +10 -0
- package/lib/{DeveloperHint-DQVwIery.js.map → DeveloperHint-BQSFXH01.js.map} +1 -1
- package/lib/{Input-3IEt27jb.js → Input-BclXSY0g.js} +5 -5
- package/lib/{Input-3IEt27jb.js.map → Input-BclXSY0g.js.map} +1 -1
- package/lib/{Markdown-QsZ-PHET.js → Markdown-B_Gax7at.js} +1136 -1152
- package/lib/{Markdown-QsZ-PHET.js.map → Markdown-B_Gax7at.js.map} +1 -1
- package/lib/{MdxPage-CA1WmW14.js → MdxPage-Crlr0GmN.js} +67 -81
- package/lib/MdxPage-Crlr0GmN.js.map +1 -0
- package/lib/{OperationList-CHK_erYP.js → OperationList-CMH3DPpj.js} +145 -129
- package/lib/OperationList-CMH3DPpj.js.map +1 -0
- package/lib/Route-CwXfyIUw.js +14 -0
- package/lib/{Route-D70pGn9n.js.map → Route-CwXfyIUw.js.map} +1 -1
- package/lib/{SlotletProvider-B71hNEUL.js → SlotletProvider-CzMAO73_.js} +12 -12
- package/lib/{SlotletProvider-B71hNEUL.js.map → SlotletProvider-CzMAO73_.js.map} +1 -1
- package/lib/Spinner-fF-Xv-gw.js +274 -0
- package/lib/Spinner-fF-Xv-gw.js.map +1 -0
- package/lib/index-7kcHaXD6.js +1771 -0
- package/lib/index-7kcHaXD6.js.map +1 -0
- package/lib/{index-Bl6YeerK.js → index-DUrF63A6.js} +1028 -1044
- package/lib/index-DUrF63A6.js.map +1 -0
- package/lib/{index-BH-Ub36F.js → index-DkuZvRNP.js} +4 -4
- package/lib/{index-BH-Ub36F.js.map → index-DkuZvRNP.js.map} +1 -1
- package/lib/joinPath-VeNuJa7y.js +8 -0
- package/lib/joinPath-VeNuJa7y.js.map +1 -0
- package/lib/jsx-runtime-B6kdoens.js +635 -0
- package/lib/jsx-runtime-B6kdoens.js.map +1 -0
- package/lib/{AnchorLink-BZcpTwOs.js → utils-CzT_9Tsn.js} +258 -214
- package/lib/utils-CzT_9Tsn.js.map +1 -0
- package/lib/zudoku.auth-clerk.js +1 -1
- package/lib/zudoku.auth-openid.js +2 -2
- package/lib/zudoku.components.js +1229 -1227
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.plugin-api-keys.js +19 -19
- package/lib/zudoku.plugin-custom-page.js +2 -2
- package/lib/zudoku.plugin-markdown.js +21 -38
- package/lib/zudoku.plugin-markdown.js.map +1 -1
- package/lib/zudoku.plugin-openapi.js +8 -6
- package/lib/zudoku.plugin-openapi.js.map +1 -1
- package/package.json +4 -1
- package/src/app/demo.tsx +5 -4
- package/src/app/main.css +2 -2
- package/src/app/main.tsx +3 -1
- package/src/app/standalone.tsx +5 -4
- package/src/lib/components/DevPortal.tsx +1 -1
- package/src/lib/components/Header.tsx +21 -19
- package/src/lib/components/Layout.tsx +2 -2
- package/src/lib/components/TopNavigation.tsx +5 -5
- package/src/lib/components/context/DevPortalProvider.ts +11 -28
- package/src/lib/components/context/ThemeContext.tsx +3 -41
- package/src/lib/components/context/ThemeProvider.tsx +27 -0
- package/src/lib/components/navigation/{SideNavigation.tsx → Sidebar.tsx} +7 -7
- package/src/lib/components/navigation/SidebarBadge.tsx +40 -0
- package/src/lib/components/navigation/SidebarCategory.tsx +105 -0
- package/src/lib/components/navigation/SidebarItem.tsx +96 -0
- package/src/lib/components/navigation/{SideNavigationWrapper.tsx → SidebarWrapper.tsx} +1 -1
- package/src/lib/components/navigation/utils.ts +120 -0
- package/src/lib/core/DevPortalContext.ts +12 -44
- package/src/lib/core/plugins.ts +6 -13
- package/src/lib/plugins/markdown/MdxPage.tsx +14 -50
- package/src/lib/plugins/markdown/generateRoutes.tsx +29 -57
- package/src/lib/plugins/openapi/OperationListItem.tsx +5 -6
- package/src/lib/plugins/openapi/ParameterList.tsx +13 -10
- package/src/lib/plugins/openapi/SchemaListView.tsx +18 -2
- package/src/lib/plugins/openapi/SchemaListViewItem.tsx +16 -7
- package/src/lib/plugins/openapi/Sidecar.tsx +15 -2
- package/src/lib/plugins/openapi/index.tsx +17 -23
- package/src/lib/plugins/openapi/interfaces.ts +1 -1
- package/src/lib/plugins/openapi/playground/Headers.tsx +1 -1
- package/src/lib/plugins/openapi/playground/Playground.tsx +1 -1
- package/src/lib/util/useScrollToAnchor.ts +39 -18
- package/dist/lib/components/navigation/SideNavigation.d.ts +0 -1
- package/dist/lib/components/navigation/SideNavigation.js +0 -12
- package/dist/lib/components/navigation/SideNavigation.js.map +0 -1
- package/dist/lib/components/navigation/SideNavigationCategory.d.ts +0 -4
- package/dist/lib/components/navigation/SideNavigationCategory.js +0 -26
- package/dist/lib/components/navigation/SideNavigationCategory.js.map +0 -1
- package/dist/lib/components/navigation/SideNavigationItem.d.ts +0 -9
- package/dist/lib/components/navigation/SideNavigationItem.js +0 -44
- package/dist/lib/components/navigation/SideNavigationItem.js.map +0 -1
- package/dist/lib/components/navigation/SideNavigationWrapper.js.map +0 -1
- package/dist/lib/components/navigation/useNavigationCollapsibleState.d.ts +0 -9
- package/dist/lib/components/navigation/useNavigationCollapsibleState.js +0 -28
- package/dist/lib/components/navigation/useNavigationCollapsibleState.js.map +0 -1
- package/dist/lib/components/navigation/util.d.ts +0 -8
- package/dist/lib/components/navigation/util.js +0 -15
- package/dist/lib/components/navigation/util.js.map +0 -1
- package/dist/lib/plugins/openapi/MethodBadge.d.ts +0 -13
- package/dist/lib/plugins/openapi/MethodBadge.js +0 -26
- package/dist/lib/plugins/openapi/MethodBadge.js.map +0 -1
- package/dist/lib/util/traverseNavigation.d.ts +0 -6
- package/dist/lib/util/traverseNavigation.js +0 -30
- package/dist/lib/util/traverseNavigation.js.map +0 -1
- package/lib/AnchorLink-BZcpTwOs.js.map +0 -1
- package/lib/DevPortalProvider-BWeAysxF.js.map +0 -1
- package/lib/DeveloperHint-DQVwIery.js +0 -10
- package/lib/MdxPage-CA1WmW14.js.map +0 -1
- package/lib/OperationList-CHK_erYP.js.map +0 -1
- package/lib/Route-D70pGn9n.js +0 -13
- package/lib/Spinner-Coi7ORUV.js +0 -244
- package/lib/Spinner-Coi7ORUV.js.map +0 -1
- package/lib/index-Bl6YeerK.js.map +0 -1
- package/lib/index-Dt-pU7Vu.js +0 -916
- package/lib/index-Dt-pU7Vu.js.map +0 -1
- package/lib/jsx-runtime-CJBdjYYx.js +0 -1526
- package/lib/jsx-runtime-CJBdjYYx.js.map +0 -1
- package/src/lib/components/navigation/SideNavigationCategory.tsx +0 -72
- package/src/lib/components/navigation/SideNavigationItem.tsx +0 -148
- package/src/lib/components/navigation/useNavigationCollapsibleState.ts +0 -42
- package/src/lib/components/navigation/util.ts +0 -38
- package/src/lib/plugins/openapi/MethodBadge.tsx +0 -36
- package/src/lib/util/traverseNavigation.ts +0 -55
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { useEffect, useRef, useState } from "react";
|
|
2
|
-
import { useLocation } from "react-router-dom";
|
|
3
|
-
import { checkHasActiveItem } from "./util.js";
|
|
4
|
-
export const useNavigationCollapsibleState = ({ item, defaultOpen, path, }) => {
|
|
5
|
-
const [open, setOpen] = useState(defaultOpen);
|
|
6
|
-
const location = useLocation();
|
|
7
|
-
const previousLocationPath = useRef(location.pathname);
|
|
8
|
-
const [shouldAnimate, setShouldAnimate] = useState(false);
|
|
9
|
-
useEffect(() => {
|
|
10
|
-
if (!open && previousLocationPath.current !== location.pathname) {
|
|
11
|
-
setOpen(checkHasActiveItem(item, location.pathname, path));
|
|
12
|
-
}
|
|
13
|
-
previousLocationPath.current = location.pathname;
|
|
14
|
-
}, [open, item, path, location.pathname]);
|
|
15
|
-
const onOpenChange = () => {
|
|
16
|
-
setShouldAnimate(true);
|
|
17
|
-
setOpen((prev) => !prev);
|
|
18
|
-
};
|
|
19
|
-
useEffect(() => {
|
|
20
|
-
setShouldAnimate(false);
|
|
21
|
-
}, []);
|
|
22
|
-
return {
|
|
23
|
-
open,
|
|
24
|
-
onOpenChange,
|
|
25
|
-
"data-animate": shouldAnimate,
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
|
-
//# sourceMappingURL=useNavigationCollapsibleState.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useNavigationCollapsibleState.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/useNavigationCollapsibleState.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,EAC5C,IAAI,EACJ,WAAW,EACX,IAAI,GAKL,EAA2D,EAAE;IAC5D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,oBAAoB,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI,IAAI,oBAAoB,CAAC,OAAO,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAChE,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,oBAAoB,CAAC,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACnD,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE1C,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,IAAI;QACJ,YAAY;QACZ,cAAc,EAAE,aAAa;KAC9B,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { HrefNavigationCategoryItem, PathNavigationCategoryItem } from "../../core/DevPortalContext.js";
|
|
2
|
-
import { type NavigationNode } from "../../util/traverseNavigation.js";
|
|
3
|
-
export declare const isPathItem: (item: NavigationNode) => item is PathNavigationCategoryItem;
|
|
4
|
-
export declare const isLinkItem: (item: NavigationNode) => item is HrefNavigationCategoryItem;
|
|
5
|
-
/**
|
|
6
|
-
* Recursively checks if the current item or any of its children are active.
|
|
7
|
-
*/
|
|
8
|
-
export declare const checkHasActiveItem: (item: NavigationNode, locationPath: string, basePath: string) => boolean;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { matchPath } from "react-router-dom";
|
|
2
|
-
import { traverseNavigationNode, } from "../../util/traverseNavigation.js";
|
|
3
|
-
export const isPathItem = (item) => "path" in item;
|
|
4
|
-
export const isLinkItem = (item) => "href" in item;
|
|
5
|
-
/**
|
|
6
|
-
* Recursively checks if the current item or any of its children are active.
|
|
7
|
-
*/
|
|
8
|
-
export const checkHasActiveItem = (item, locationPath, basePath) => {
|
|
9
|
-
return Boolean(traverseNavigationNode(item, (node, fullPath) => {
|
|
10
|
-
if (isPathItem(node) && matchPath(fullPath, locationPath)) {
|
|
11
|
-
return true;
|
|
12
|
-
}
|
|
13
|
-
}, basePath));
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=util.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAK7C,OAAO,EACL,sBAAsB,GAEvB,MAAM,kCAAkC,CAAC;AAE1C,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,IAAoB,EACgB,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC;AAExD,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,IAAoB,EACgB,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC;AAExD;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,IAAoB,EACpB,YAAoB,EACpB,QAAgB,EAChB,EAAE;IACF,OAAO,OAAO,CACZ,sBAAsB,CACpB,IAAI,EACJ,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;QACjB,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC;YAC1D,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,EACD,QAAQ,CACT,CACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export declare const MethodTextColorMap: {
|
|
2
|
-
get: string;
|
|
3
|
-
post: string;
|
|
4
|
-
put: string;
|
|
5
|
-
delete: string;
|
|
6
|
-
patch: string;
|
|
7
|
-
options: string;
|
|
8
|
-
head: string;
|
|
9
|
-
trace: string;
|
|
10
|
-
};
|
|
11
|
-
export declare const MethodBadge: ({ method }: {
|
|
12
|
-
method: string;
|
|
13
|
-
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { cn } from "../../util/cn.js";
|
|
3
|
-
export const MethodTextColorMap = {
|
|
4
|
-
get: "text-green-600",
|
|
5
|
-
post: "text-sky-600",
|
|
6
|
-
put: "text-yellow-600",
|
|
7
|
-
delete: "text-red-600",
|
|
8
|
-
patch: "text-purple-600",
|
|
9
|
-
options: "text-indigo-600",
|
|
10
|
-
head: "text-gray-600",
|
|
11
|
-
trace: "text-gray-600",
|
|
12
|
-
};
|
|
13
|
-
const MethodColorMap = {
|
|
14
|
-
get: "bg-green-400 dark:bg-green-800",
|
|
15
|
-
post: "bg-sky-400 dark:bg-sky-800",
|
|
16
|
-
put: "bg-yellow-400 dark:bg-yellow-800",
|
|
17
|
-
delete: "bg-red-400 dark:bg-red-800",
|
|
18
|
-
patch: "bg-purple-400 dark:bg-purple-600",
|
|
19
|
-
options: "bg-indigo-400 dark:bg-indigo-600",
|
|
20
|
-
head: "bg-gray-400 dark:bg-gray-600",
|
|
21
|
-
trace: "bg-gray-400 dark:bg-gray-600",
|
|
22
|
-
};
|
|
23
|
-
export const MethodBadge = ({ method }) => {
|
|
24
|
-
return (_jsx("span", { className: cn("mt-0.5 flex items-center duration-200 transition-opacity text-center uppercase font-mono text-[0.65rem] font-bold rounded text-background dark:text-zinc-50 h-4 px-1", MethodColorMap[method]), children: method }));
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=MethodBadge.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MethodBadge.js","sourceRoot":"","sources":["../../../../src/lib/plugins/openapi/MethodBadge.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,GAAG,EAAE,gBAAgB;IACrB,IAAI,EAAE,cAAc;IACpB,GAAG,EAAE,iBAAiB;IACtB,MAAM,EAAE,cAAc;IACtB,KAAK,EAAE,iBAAiB;IACxB,OAAO,EAAE,iBAAiB;IAC1B,IAAI,EAAE,eAAe;IACrB,KAAK,EAAE,eAAe;CACvB,CAAC;AAEF,MAAM,cAAc,GAAG;IACrB,GAAG,EAAE,gCAAgC;IACrC,IAAI,EAAE,4BAA4B;IAClC,GAAG,EAAE,kCAAkC;IACvC,MAAM,EAAE,4BAA4B;IACpC,KAAK,EAAE,kCAAkC;IACzC,OAAO,EAAE,kCAAkC;IAC3C,IAAI,EAAE,8BAA8B;IACpC,KAAK,EAAE,8BAA8B;CACtC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,MAAM,EAAsB,EAAE,EAAE;IAC5D,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,sKAAsK,EACtK,cAAc,CAAC,MAAqC,CAAC,CACtD,YAEA,MAAM,GACF,CACR,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { NavigationCategory, NavigationCategoryItem, NavigationItem } from "../core/DevPortalContext.js";
|
|
2
|
-
export type NavigationNode = NavigationCategoryItem | NavigationCategory;
|
|
3
|
-
type Callback<T> = (node: NavigationNode, fullPath: string, parentNodes: NavigationNode[]) => T | undefined;
|
|
4
|
-
export declare const traverseNavigationNode: <T>(node: NavigationNode, callback: Callback<T>, parentPath: string, parentNodes?: NavigationNode[]) => T | undefined;
|
|
5
|
-
export declare const traverseNavigation: <T>(navItem: NavigationItem, callback: Callback<T>) => T | undefined;
|
|
6
|
-
export {};
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { isPathItem } from "../components/navigation/util.js";
|
|
2
|
-
import { joinPath } from "./joinPath.js";
|
|
3
|
-
export const traverseNavigationNode = (node, callback, parentPath, parentNodes = []) => {
|
|
4
|
-
const newPath = isPathItem(node)
|
|
5
|
-
? joinPath(parentPath, node.path)
|
|
6
|
-
: parentPath;
|
|
7
|
-
const result = callback(node, newPath, parentNodes);
|
|
8
|
-
if (result !== undefined)
|
|
9
|
-
return result;
|
|
10
|
-
if ("children" in node && node.children) {
|
|
11
|
-
const newParentNodes = [...parentNodes, node];
|
|
12
|
-
for (const child of node.children) {
|
|
13
|
-
const childResult = traverseNavigationNode(child, callback, newPath, newParentNodes);
|
|
14
|
-
if (childResult !== undefined)
|
|
15
|
-
return childResult;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
return undefined;
|
|
19
|
-
};
|
|
20
|
-
export const traverseNavigation = (navItem, callback) => {
|
|
21
|
-
if (navItem.categories) {
|
|
22
|
-
for (const category of navItem.categories) {
|
|
23
|
-
const result = traverseNavigationNode(category, callback, navItem.path);
|
|
24
|
-
if (result !== undefined)
|
|
25
|
-
return result;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return undefined;
|
|
29
|
-
};
|
|
30
|
-
//# sourceMappingURL=traverseNavigation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"traverseNavigation.js","sourceRoot":"","sources":["../../../src/lib/util/traverseNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAM9D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AASzC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,IAAoB,EACpB,QAAqB,EACrB,UAAkB,EAClB,cAAgC,EAAE,EACnB,EAAE;IACjB,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC;QAC9B,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC;QACjC,CAAC,CAAC,UAAU,CAAC;IACf,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAEpD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAExC,IAAI,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,cAAc,GAAG,CAAC,GAAG,WAAW,EAAE,IAAI,CAAC,CAAC;QAC9C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,WAAW,GAAG,sBAAsB,CACxC,KAAK,EACL,QAAQ,EACR,OAAO,EACP,cAAc,CACf,CAAC;YACF,IAAI,WAAW,KAAK,SAAS;gBAAE,OAAO,WAAW,CAAC;QACpD,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,OAAuB,EACvB,QAAqB,EACN,EAAE;IACjB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACxE,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,MAAM,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AnchorLink-BZcpTwOs.js","sources":["../../../node_modules/.pnpm/@mdx-js+react@3.0.1_@types+react@18.3.3_react@18.3.1/node_modules/@mdx-js/react/lib/index.js","../../../node_modules/.pnpm/react-fast-compare@3.2.2/node_modules/react-fast-compare/index.js","../../../node_modules/.pnpm/invariant@2.2.4/node_modules/invariant/browser.js","../../../node_modules/.pnpm/shallowequal@1.1.0/node_modules/shallowequal/index.js","../../../node_modules/.pnpm/@zudoku+react-helmet-async@2.0.4_react@18.3.1/node_modules/@zudoku/react-helmet-async/lib/index.esm.js","../src/lib/components/AnchorLink.tsx"],"sourcesContent":["/**\n * @typedef {import('mdx/types.js').MDXComponents} MDXComponents\n * @typedef {import('react').Component<{}, {}, unknown>} Component\n * @typedef {import('react').ReactNode} ReactNode\n */\n\n/**\n * @callback MergeComponents\n * Custom merge function.\n * @param {Readonly<MDXComponents>} currentComponents\n * Current components from the context.\n * @returns {MDXComponents}\n * Additional components.\n *\n * @typedef Props\n * Configuration for `MDXProvider`.\n * @property {ReactNode | null | undefined} [children]\n * Children (optional).\n * @property {Readonly<MDXComponents> | MergeComponents | null | undefined} [components]\n * Additional components to use or a function that creates them (optional).\n * @property {boolean | null | undefined} [disableParentContext=false]\n * Turn off outer component context (default: `false`).\n */\n\nimport React from 'react'\n\n/** @type {Readonly<MDXComponents>} */\nconst emptyComponents = {}\n\nconst MDXContext = React.createContext(emptyComponents)\n\n/**\n * Get current components from the MDX Context.\n *\n * @param {Readonly<MDXComponents> | MergeComponents | null | undefined} [components]\n * Additional components to use or a function that creates them (optional).\n * @returns {MDXComponents}\n * Current components.\n */\nexport function useMDXComponents(components) {\n const contextComponents = React.useContext(MDXContext)\n\n // Memoize to avoid unnecessary top-level context changes\n return React.useMemo(\n function () {\n // Custom merge via a function prop\n if (typeof components === 'function') {\n return components(contextComponents)\n }\n\n return {...contextComponents, ...components}\n },\n [contextComponents, components]\n )\n}\n\n/**\n * Provider for MDX context.\n *\n * @param {Readonly<Props>} properties\n * Properties.\n * @returns {JSX.Element}\n * Element.\n * @satisfies {Component}\n */\nexport function MDXProvider(properties) {\n /** @type {Readonly<MDXComponents>} */\n let allComponents\n\n if (properties.disableParentContext) {\n allComponents =\n typeof properties.components === 'function'\n ? properties.components(emptyComponents)\n : properties.components || emptyComponents\n } else {\n allComponents = useMDXComponents(properties.components)\n }\n\n return React.createElement(\n MDXContext.Provider,\n {value: allComponents},\n properties.children\n )\n}\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","// src/index.tsx\nimport React3, { Component as Component3 } from \"react\";\nimport fastCompare from \"react-fast-compare\";\nimport invariant from \"invariant\";\n\n// src/Provider.tsx\nimport React2, { Component } from \"react\";\n\n// src/server.ts\nimport React from \"react\";\n\n// src/constants.ts\nvar TAG_NAMES = /* @__PURE__ */ ((TAG_NAMES2) => {\n TAG_NAMES2[\"BASE\"] = \"base\";\n TAG_NAMES2[\"BODY\"] = \"body\";\n TAG_NAMES2[\"HEAD\"] = \"head\";\n TAG_NAMES2[\"HTML\"] = \"html\";\n TAG_NAMES2[\"LINK\"] = \"link\";\n TAG_NAMES2[\"META\"] = \"meta\";\n TAG_NAMES2[\"NOSCRIPT\"] = \"noscript\";\n TAG_NAMES2[\"SCRIPT\"] = \"script\";\n TAG_NAMES2[\"STYLE\"] = \"style\";\n TAG_NAMES2[\"TITLE\"] = \"title\";\n TAG_NAMES2[\"FRAGMENT\"] = \"Symbol(react.fragment)\";\n return TAG_NAMES2;\n})(TAG_NAMES || {});\nvar SEO_PRIORITY_TAGS = {\n link: { rel: [\"amphtml\", \"canonical\", \"alternate\"] },\n script: { type: [\"application/ld+json\"] },\n meta: {\n charset: \"\",\n name: [\"generator\", \"robots\", \"description\"],\n property: [\n \"og:type\",\n \"og:title\",\n \"og:url\",\n \"og:image\",\n \"og:image:alt\",\n \"og:description\",\n \"twitter:url\",\n \"twitter:title\",\n \"twitter:description\",\n \"twitter:image\",\n \"twitter:image:alt\",\n \"twitter:card\",\n \"twitter:site\"\n ]\n }\n};\nvar VALID_TAG_NAMES = Object.values(TAG_NAMES);\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\nvar HTML_TAG_MAP = Object.entries(REACT_TAG_MAP).reduce(\n (carry, [key, value]) => {\n carry[value] = key;\n return carry;\n },\n {}\n);\nvar HELMET_ATTRIBUTE = \"data-rh\";\n\n// src/utils.ts\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\",\n PRIORITIZE_SEO_TAGS: \"prioritizeSeoTags\"\n};\nvar getInnermostProperty = (propsList, property) => {\n for (let i = propsList.length - 1; i >= 0; i -= 1) {\n const props = propsList[i];\n if (Object.prototype.hasOwnProperty.call(props, property)) {\n return props[property];\n }\n }\n return null;\n};\nvar getTitleFromPropsList = (propsList) => {\n let innermostTitle = getInnermostProperty(propsList, \"title\" /* TITLE */);\n const innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n if (Array.isArray(innermostTitle)) {\n innermostTitle = innermostTitle.join(\"\");\n }\n if (innermostTemplate && innermostTitle) {\n return innermostTemplate.replace(/%s/g, () => innermostTitle);\n }\n const innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n return innermostTitle || innermostDefaultTitle || void 0;\n};\nvar getOnChangeClientState = (propsList) => getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || (() => {\n});\nvar getAttributesFromPropsList = (tagType, propsList) => propsList.filter((props) => typeof props[tagType] !== \"undefined\").map((props) => props[tagType]).reduce((tagAttrs, current) => ({ ...tagAttrs, ...current }), {});\nvar getBaseTagFromPropsList = (primaryAttributes, propsList) => propsList.filter((props) => typeof props[\"base\" /* BASE */] !== \"undefined\").map((props) => props[\"base\" /* BASE */]).reverse().reduce((innermostBaseTag, tag) => {\n if (!innermostBaseTag.length) {\n const keys = Object.keys(tag);\n for (let i = 0; i < keys.length; i += 1) {\n const attributeKey = keys[i];\n const lowerCaseAttributeKey = attributeKey.toLowerCase();\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n return innermostBaseTag;\n}, []);\nvar warn = (msg) => console && typeof console.warn === \"function\" && console.warn(msg);\nvar getTagsFromPropsList = (tagName, primaryAttributes, propsList) => {\n const approvedSeenTags = {};\n return propsList.filter((props) => {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\n `Helmet: ${tagName} should be of type \"Array\". Instead found type \"${typeof props[tagName]}\"`\n );\n }\n return false;\n }).map((props) => props[tagName]).reverse().reduce((approvedTags, instanceTags) => {\n const instanceSeenTags = {};\n instanceTags.filter((tag) => {\n let primaryAttributeKey;\n const keys2 = Object.keys(tag);\n for (let i = 0; i < keys2.length; i += 1) {\n const attributeKey = keys2[i];\n const lowerCaseAttributeKey = attributeKey.toLowerCase();\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === \"rel\" /* REL */ && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === \"rel\" /* REL */ && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === \"innerHTML\" /* INNER_HTML */ || attributeKey === \"cssText\" /* CSS_TEXT */ || attributeKey === \"itemprop\" /* ITEM_PROP */)) {\n primaryAttributeKey = attributeKey;\n }\n }\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n const value = tag[primaryAttributeKey].toLowerCase();\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n return false;\n }).reverse().forEach((tag) => approvedTags.push(tag));\n const keys = Object.keys(instanceSeenTags);\n for (let i = 0; i < keys.length; i += 1) {\n const attributeKey = keys[i];\n const tagUnion = {\n ...approvedSeenTags[attributeKey],\n ...instanceSeenTags[attributeKey]\n };\n approvedSeenTags[attributeKey] = tagUnion;\n }\n return approvedTags;\n }, []).reverse();\n};\nvar getAnyTrueFromPropsList = (propsList, checkedTag) => {\n if (Array.isArray(propsList) && propsList.length) {\n for (let index = 0; index < propsList.length; index += 1) {\n const prop = propsList[index];\n if (prop[checkedTag]) {\n return true;\n }\n }\n }\n return false;\n};\nvar reducePropsToState = (propsList) => ({\n baseTag: getBaseTagFromPropsList([\"href\" /* HREF */], propsList),\n bodyAttributes: getAttributesFromPropsList(\"bodyAttributes\" /* BODY */, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(\"htmlAttributes\" /* HTML */, propsList),\n linkTags: getTagsFromPropsList(\n \"link\" /* LINK */,\n [\"rel\" /* REL */, \"href\" /* HREF */],\n propsList\n ),\n metaTags: getTagsFromPropsList(\n \"meta\" /* META */,\n [\n \"name\" /* NAME */,\n \"charset\" /* CHARSET */,\n \"http-equiv\" /* HTTPEQUIV */,\n \"property\" /* PROPERTY */,\n \"itemprop\" /* ITEM_PROP */\n ],\n propsList\n ),\n noscriptTags: getTagsFromPropsList(\"noscript\" /* NOSCRIPT */, [\"innerHTML\" /* INNER_HTML */], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(\n \"script\" /* SCRIPT */,\n [\"src\" /* SRC */, \"innerHTML\" /* INNER_HTML */],\n propsList\n ),\n styleTags: getTagsFromPropsList(\"style\" /* STYLE */, [\"cssText\" /* CSS_TEXT */], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(\"titleAttributes\" /* TITLE */, propsList),\n prioritizeSeoTags: getAnyTrueFromPropsList(propsList, HELMET_PROPS.PRIORITIZE_SEO_TAGS)\n});\nvar flattenArray = (possibleArray) => Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\nvar checkIfPropsMatch = (props, toMatch) => {\n const keys = Object.keys(props);\n for (let i = 0; i < keys.length; i += 1) {\n if (toMatch[keys[i]] && toMatch[keys[i]].includes(props[keys[i]])) {\n return true;\n }\n }\n return false;\n};\nvar prioritizer = (elementsList, propsToMatch) => {\n if (Array.isArray(elementsList)) {\n return elementsList.reduce(\n (acc, elementAttrs) => {\n if (checkIfPropsMatch(elementAttrs, propsToMatch)) {\n acc.priority.push(elementAttrs);\n } else {\n acc.default.push(elementAttrs);\n }\n return acc;\n },\n { priority: [], default: [] }\n );\n }\n return { default: elementsList, priority: [] };\n};\nvar without = (obj, key) => {\n return {\n ...obj,\n [key]: void 0\n };\n};\n\n// src/server.ts\nvar SELF_CLOSING_TAGS = [\"noscript\" /* NOSCRIPT */, \"script\" /* SCRIPT */, \"style\" /* STYLE */];\nvar encodeSpecialCharacters = (str, encode = true) => {\n if (encode === false) {\n return String(str);\n }\n return String(str).replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\nvar generateElementAttributesAsString = (attributes) => Object.keys(attributes).reduce((str, key) => {\n const attr = typeof attributes[key] !== \"undefined\" ? `${key}=\"${attributes[key]}\"` : `${key}`;\n return str ? `${str} ${attr}` : attr;\n}, \"\");\nvar generateTitleAsString = (type, title, attributes, encode) => {\n const attributeString = generateElementAttributesAsString(attributes);\n const flattenedTitle = flattenArray(title);\n return attributeString ? `<${type} ${HELMET_ATTRIBUTE}=\"true\" ${attributeString}>${encodeSpecialCharacters(\n flattenedTitle,\n encode\n )}</${type}>` : `<${type} ${HELMET_ATTRIBUTE}=\"true\">${encodeSpecialCharacters(\n flattenedTitle,\n encode\n )}</${type}>`;\n};\nvar generateTagsAsString = (type, tags, encode = true) => tags.reduce((str, t) => {\n const tag = t;\n const attributeHtml = Object.keys(tag).filter(\n (attribute) => !(attribute === \"innerHTML\" /* INNER_HTML */ || attribute === \"cssText\" /* CSS_TEXT */)\n ).reduce((string, attribute) => {\n const attr = typeof tag[attribute] === \"undefined\" ? attribute : `${attribute}=\"${encodeSpecialCharacters(tag[attribute], encode)}\"`;\n return string ? `${string} ${attr}` : attr;\n }, \"\");\n const tagContent = tag.innerHTML || tag.cssText || \"\";\n const isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n return `${str}<${type} ${HELMET_ATTRIBUTE}=\"true\" ${attributeHtml}${isSelfClosing ? `/>` : `>${tagContent}</${type}>`}`;\n}, \"\");\nvar convertElementAttributesToReactProps = (attributes, initProps = {}) => Object.keys(attributes).reduce((obj, key) => {\n const mapped = REACT_TAG_MAP[key];\n obj[mapped || key] = attributes[key];\n return obj;\n}, initProps);\nvar generateTitleAsReactComponent = (_type, title, attributes) => {\n const initProps = {\n key: title,\n [HELMET_ATTRIBUTE]: true\n };\n const props = convertElementAttributesToReactProps(attributes, initProps);\n return [React.createElement(\"title\" /* TITLE */, props, title)];\n};\nvar generateTagsAsReactComponent = (type, tags) => tags.map((tag, i) => {\n const mappedTag = {\n key: i,\n [HELMET_ATTRIBUTE]: true\n };\n Object.keys(tag).forEach((attribute) => {\n const mapped = REACT_TAG_MAP[attribute];\n const mappedAttribute = mapped || attribute;\n if (mappedAttribute === \"innerHTML\" /* INNER_HTML */ || mappedAttribute === \"cssText\" /* CSS_TEXT */) {\n const content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n return React.createElement(type, mappedTag);\n});\nvar getMethodsForTag = (type, tags, encode = true) => {\n switch (type) {\n case \"title\" /* TITLE */:\n return {\n toComponent: () => generateTitleAsReactComponent(type, tags.title, tags.titleAttributes),\n toString: () => generateTitleAsString(type, tags.title, tags.titleAttributes, encode)\n };\n case \"bodyAttributes\" /* BODY */:\n case \"htmlAttributes\" /* HTML */:\n return {\n toComponent: () => convertElementAttributesToReactProps(tags),\n toString: () => generateElementAttributesAsString(tags)\n };\n default:\n return {\n toComponent: () => generateTagsAsReactComponent(type, tags),\n toString: () => generateTagsAsString(type, tags, encode)\n };\n }\n};\nvar getPriorityMethods = ({ metaTags, linkTags, scriptTags, encode }) => {\n const meta = prioritizer(metaTags, SEO_PRIORITY_TAGS.meta);\n const link = prioritizer(linkTags, SEO_PRIORITY_TAGS.link);\n const script = prioritizer(scriptTags, SEO_PRIORITY_TAGS.script);\n const priorityMethods = {\n toComponent: () => [\n ...generateTagsAsReactComponent(\"meta\" /* META */, meta.priority),\n ...generateTagsAsReactComponent(\"link\" /* LINK */, link.priority),\n ...generateTagsAsReactComponent(\"script\" /* SCRIPT */, script.priority)\n ],\n toString: () => (\n // generate all the tags as strings and concatenate them\n `${getMethodsForTag(\"meta\" /* META */, meta.priority, encode)} ${getMethodsForTag(\n \"link\" /* LINK */,\n link.priority,\n encode\n )} ${getMethodsForTag(\"script\" /* SCRIPT */, script.priority, encode)}`\n )\n };\n return {\n priorityMethods,\n metaTags: meta.default,\n linkTags: link.default,\n scriptTags: script.default\n };\n};\nvar mapStateOnServer = (props) => {\n const {\n baseTag,\n bodyAttributes,\n encode = true,\n htmlAttributes,\n noscriptTags,\n styleTags,\n title = \"\",\n titleAttributes,\n prioritizeSeoTags\n } = props;\n let { linkTags, metaTags, scriptTags } = props;\n let priorityMethods = {\n toComponent: () => {\n },\n toString: () => \"\"\n };\n if (prioritizeSeoTags) {\n ({ priorityMethods, linkTags, metaTags, scriptTags } = getPriorityMethods(props));\n }\n return {\n priority: priorityMethods,\n base: getMethodsForTag(\"base\" /* BASE */, baseTag, encode),\n bodyAttributes: getMethodsForTag(\"bodyAttributes\" /* BODY */, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(\"htmlAttributes\" /* HTML */, htmlAttributes, encode),\n link: getMethodsForTag(\"link\" /* LINK */, linkTags, encode),\n meta: getMethodsForTag(\"meta\" /* META */, metaTags, encode),\n noscript: getMethodsForTag(\"noscript\" /* NOSCRIPT */, noscriptTags, encode),\n script: getMethodsForTag(\"script\" /* SCRIPT */, scriptTags, encode),\n style: getMethodsForTag(\"style\" /* STYLE */, styleTags, encode),\n title: getMethodsForTag(\"title\" /* TITLE */, { title, titleAttributes }, encode)\n };\n};\nvar server_default = mapStateOnServer;\n\n// src/HelmetData.ts\nvar instances = [];\nvar isDocument = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar HelmetData = class {\n instances = [];\n canUseDOM = isDocument;\n context;\n value = {\n setHelmet: (serverState) => {\n this.context.helmet = serverState;\n },\n helmetInstances: {\n get: () => this.canUseDOM ? instances : this.instances,\n add: (instance) => {\n (this.canUseDOM ? instances : this.instances).push(instance);\n },\n remove: (instance) => {\n const index = (this.canUseDOM ? instances : this.instances).indexOf(instance);\n (this.canUseDOM ? instances : this.instances).splice(index, 1);\n }\n }\n };\n constructor(context, canUseDOM) {\n this.context = context;\n this.canUseDOM = canUseDOM || false;\n if (!canUseDOM) {\n context.helmet = server_default({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n }\n};\n\n// src/Provider.tsx\nvar defaultValue = {};\nvar Context = React2.createContext(defaultValue);\nvar HelmetProvider = class _HelmetProvider extends Component {\n static canUseDOM = isDocument;\n helmetData;\n constructor(props) {\n super(props);\n this.helmetData = new HelmetData(this.props.context || {}, _HelmetProvider.canUseDOM);\n }\n render() {\n return /* @__PURE__ */ React2.createElement(Context.Provider, { value: this.helmetData.value }, this.props.children);\n }\n};\n\n// src/Dispatcher.tsx\nimport { Component as Component2 } from \"react\";\nimport shallowEqual from \"shallowequal\";\n\n// src/client.ts\nvar updateTags = (type, tags) => {\n const headElement = document.head || document.querySelector(\"head\" /* HEAD */);\n const tagNodes = headElement.querySelectorAll(`${type}[${HELMET_ATTRIBUTE}]`);\n const oldTags = [].slice.call(tagNodes);\n const newTags = [];\n let indexToDelete;\n if (tags && tags.length) {\n tags.forEach((tag) => {\n const newElement = document.createElement(type);\n for (const attribute in tag) {\n if (Object.prototype.hasOwnProperty.call(tag, attribute)) {\n if (attribute === \"innerHTML\" /* INNER_HTML */) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === \"cssText\" /* CSS_TEXT */) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n const attr = attribute;\n const value = typeof tag[attr] === \"undefined\" ? \"\" : tag[attr];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n if (oldTags.some((existingTag, index) => {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n oldTags.forEach((tag) => tag.parentNode?.removeChild(tag));\n newTags.forEach((tag) => headElement.appendChild(tag));\n return {\n oldTags,\n newTags\n };\n};\nvar updateAttributes = (tagName, attributes) => {\n const elementTag = document.getElementsByTagName(tagName)[0];\n if (!elementTag) {\n return;\n }\n const helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n const helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n const attributesToRemove = [...helmetAttributes];\n const attributeKeys = Object.keys(attributes);\n for (const attribute of attributeKeys) {\n const value = attributes[attribute] || \"\";\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n const indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n for (let i = attributesToRemove.length - 1; i >= 0; i -= 1) {\n elementTag.removeAttribute(attributesToRemove[i]);\n }\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\nvar updateTitle = (title, attributes) => {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n updateAttributes(\"title\" /* TITLE */, attributes);\n};\nvar commitTagChanges = (newState, cb) => {\n const {\n baseTag,\n bodyAttributes,\n htmlAttributes,\n linkTags,\n metaTags,\n noscriptTags,\n onChangeClientState,\n scriptTags,\n styleTags,\n title,\n titleAttributes\n } = newState;\n updateAttributes(\"body\" /* BODY */, bodyAttributes);\n updateAttributes(\"html\" /* HTML */, htmlAttributes);\n updateTitle(title, titleAttributes);\n const tagUpdates = {\n baseTag: updateTags(\"base\" /* BASE */, baseTag),\n linkTags: updateTags(\"link\" /* LINK */, linkTags),\n metaTags: updateTags(\"meta\" /* META */, metaTags),\n noscriptTags: updateTags(\"noscript\" /* NOSCRIPT */, noscriptTags),\n scriptTags: updateTags(\"script\" /* SCRIPT */, scriptTags),\n styleTags: updateTags(\"style\" /* STYLE */, styleTags)\n };\n const addedTags = {};\n const removedTags = {};\n Object.keys(tagUpdates).forEach((tagType) => {\n const { newTags, oldTags } = tagUpdates[tagType];\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n if (cb) {\n cb();\n }\n onChangeClientState(newState, addedTags, removedTags);\n};\nvar _helmetCallback = null;\nvar handleStateChangeOnClient = (newState) => {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(() => {\n commitTagChanges(newState, () => {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\nvar client_default = handleStateChangeOnClient;\n\n// src/Dispatcher.tsx\nvar HelmetDispatcher = class extends Component2 {\n rendered = false;\n shouldComponentUpdate(nextProps) {\n return !shallowEqual(nextProps, this.props);\n }\n componentDidUpdate() {\n this.emitChange();\n }\n componentWillUnmount() {\n const { helmetInstances } = this.props.context;\n helmetInstances.remove(this);\n this.emitChange();\n }\n emitChange() {\n const { helmetInstances, setHelmet } = this.props.context;\n let serverState = null;\n const state = reducePropsToState(\n helmetInstances.get().map((instance) => {\n const props = { ...instance.props };\n delete props.context;\n return props;\n })\n );\n if (HelmetProvider.canUseDOM) {\n client_default(state);\n } else if (server_default) {\n serverState = server_default(state);\n }\n setHelmet(serverState);\n }\n // componentWillMount will be deprecated\n // for SSR, initialize on first render\n // constructor is also unsafe in StrictMode\n init() {\n if (this.rendered) {\n return;\n }\n this.rendered = true;\n const { helmetInstances } = this.props.context;\n helmetInstances.add(this);\n this.emitChange();\n }\n render() {\n this.init();\n return null;\n }\n};\n\n// src/index.tsx\nvar Helmet = class extends Component3 {\n static defaultProps = {\n defer: true,\n encodeSpecialCharacters: true,\n prioritizeSeoTags: false\n };\n shouldComponentUpdate(nextProps) {\n return !fastCompare(without(this.props, \"helmetData\"), without(nextProps, \"helmetData\"));\n }\n mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n switch (child.type) {\n case \"script\" /* SCRIPT */:\n case \"noscript\" /* NOSCRIPT */:\n return {\n innerHTML: nestedChildren\n };\n case \"style\" /* STYLE */:\n return {\n cssText: nestedChildren\n };\n default:\n throw new Error(\n `<${child.type} /> elements are self-closing and can not contain children. Refer to our API for more information.`\n );\n }\n }\n flattenArrayTypeChildren(child, arrayTypeChildren, newChildProps, nestedChildren) {\n return {\n ...arrayTypeChildren,\n [child.type]: [\n ...arrayTypeChildren[child.type] || [],\n {\n ...newChildProps,\n ...this.mapNestedChildrenToProps(child, nestedChildren)\n }\n ]\n };\n }\n mapObjectTypeChildren(child, newProps, newChildProps, nestedChildren) {\n switch (child.type) {\n case \"title\" /* TITLE */:\n return {\n ...newProps,\n [child.type]: nestedChildren,\n titleAttributes: { ...newChildProps }\n };\n case \"body\" /* BODY */:\n return {\n ...newProps,\n bodyAttributes: { ...newChildProps }\n };\n case \"html\" /* HTML */:\n return {\n ...newProps,\n htmlAttributes: { ...newChildProps }\n };\n default:\n return {\n ...newProps,\n [child.type]: { ...newChildProps }\n };\n }\n }\n mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n let newFlattenedProps = { ...newProps };\n Object.keys(arrayTypeChildren).forEach((arrayChildName) => {\n newFlattenedProps = {\n ...newFlattenedProps,\n [arrayChildName]: arrayTypeChildren[arrayChildName]\n };\n });\n return newFlattenedProps;\n }\n warnOnInvalidChildren(child, nestedChildren) {\n invariant(\n VALID_TAG_NAMES.some((name) => child.type === name),\n typeof child.type === \"function\" ? `You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.` : `Only elements types ${VALID_TAG_NAMES.join(\n \", \"\n )} are allowed. Helmet does not support rendering <${child.type}> elements. Refer to our API for more information.`\n );\n invariant(\n !nestedChildren || typeof nestedChildren === \"string\" || Array.isArray(nestedChildren) && !nestedChildren.some((nestedChild) => typeof nestedChild !== \"string\"),\n `Helmet expects a string as a child of <${child.type}>. Did you forget to wrap your children in braces? ( <${child.type}>{\\`\\`}</${child.type}> ) Refer to our API for more information.`\n );\n return true;\n }\n mapChildrenToProps(children, newProps) {\n let arrayTypeChildren = {};\n React3.Children.forEach(children, (child) => {\n if (!child || !child.props) {\n return;\n }\n const { children: nestedChildren, ...childProps } = child.props;\n const newChildProps = Object.keys(childProps).reduce((obj, key) => {\n obj[HTML_TAG_MAP[key] || key] = childProps[key];\n return obj;\n }, {});\n let { type } = child;\n if (typeof type === \"symbol\") {\n type = type.toString();\n } else {\n this.warnOnInvalidChildren(child, nestedChildren);\n }\n switch (type) {\n case \"Symbol(react.fragment)\" /* FRAGMENT */:\n newProps = this.mapChildrenToProps(nestedChildren, newProps);\n break;\n case \"link\" /* LINK */:\n case \"meta\" /* META */:\n case \"noscript\" /* NOSCRIPT */:\n case \"script\" /* SCRIPT */:\n case \"style\" /* STYLE */:\n arrayTypeChildren = this.flattenArrayTypeChildren(\n child,\n arrayTypeChildren,\n newChildProps,\n nestedChildren\n );\n break;\n default:\n newProps = this.mapObjectTypeChildren(child, newProps, newChildProps, nestedChildren);\n break;\n }\n });\n return this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n }\n render() {\n const { children, ...props } = this.props;\n let newProps = { ...props };\n let { helmetData } = props;\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n if (helmetData && !(helmetData instanceof HelmetData)) {\n const data = helmetData;\n helmetData = new HelmetData(data.context, true);\n delete newProps.helmetData;\n }\n return helmetData ? /* @__PURE__ */ React3.createElement(HelmetDispatcher, { ...newProps, context: helmetData.value }) : /* @__PURE__ */ React3.createElement(Context.Consumer, null, (context) => /* @__PURE__ */ React3.createElement(HelmetDispatcher, { ...newProps, context }));\n }\n};\nexport {\n Helmet,\n HelmetData,\n HelmetProvider\n};\n","import React from \"react\";\nimport { Link, type LinkProps, useLocation } from \"react-router-dom\";\n\n/**\n * Link that scrolls to anchor even if the hash is already set in the URL.\n */\nexport const AnchorLink = (props: LinkProps) => {\n const location = useLocation();\n const hash = typeof props.to === \"string\" ? props.to : props.to.hash;\n\n const handleClick = (event: React.MouseEvent<HTMLAnchorElement>) => {\n if (!hash?.startsWith(\"#\") || hash !== location.hash) return;\n\n event.preventDefault();\n document.getElementById(hash.slice(1))?.scrollIntoView();\n };\n\n return <Link onClick={handleClick} {...props} />;\n};\n"],"names":["emptyComponents","MDXContext","React","useMDXComponents","components","contextComponents","MDXProvider","properties","allComponents","hasElementType","hasMap","hasSet","hasArrayBuffer","equal","a","b","length","i","keys","it","reactFastCompare","error","invariant","condition","format","c","d","e","f","args","argIndex","browser","shallowequal","objA","objB","compare","compareContext","ret","keysA","keysB","bHasOwnProperty","idx","key","valueA","valueB","TAG_NAMES","TAG_NAMES2","SEO_PRIORITY_TAGS","VALID_TAG_NAMES","REACT_TAG_MAP","HTML_TAG_MAP","carry","value","HELMET_ATTRIBUTE","HELMET_PROPS","getInnermostProperty","propsList","property","props","getTitleFromPropsList","innermostTitle","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","current","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","tag","lowerCaseAttributeKey","warn","msg","getTagsFromPropsList","tagName","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","keys2","attributeKey","tagUnion","getAnyTrueFromPropsList","checkedTag","index","reducePropsToState","flattenArray","possibleArray","checkIfPropsMatch","toMatch","prioritizer","elementsList","propsToMatch","acc","elementAttrs","without","obj","SELF_CLOSING_TAGS","encodeSpecialCharacters","str","encode","generateElementAttributesAsString","attributes","attr","generateTitleAsString","type","title","attributeString","flattenedTitle","generateTagsAsString","tags","t","attributeHtml","attribute","string","tagContent","isSelfClosing","convertElementAttributesToReactProps","initProps","mapped","generateTitleAsReactComponent","_type","generateTagsAsReactComponent","mappedTag","mappedAttribute","content","getMethodsForTag","getPriorityMethods","metaTags","linkTags","scriptTags","meta","link","script","mapStateOnServer","baseTag","bodyAttributes","htmlAttributes","noscriptTags","styleTags","titleAttributes","prioritizeSeoTags","priorityMethods","server_default","instances","isDocument","HelmetData","context","canUseDOM","__publicField","serverState","instance","defaultValue","Context","React2","HelmetProvider","_a","Component","updateTags","headElement","tagNodes","oldTags","newTags","indexToDelete","newElement","existingTag","updateAttributes","elementTag","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","indexToSave","updateTitle","commitTagChanges","newState","cb","onChangeClientState","tagUpdates","addedTags","removedTags","_helmetCallback","handleStateChangeOnClient","client_default","HelmetDispatcher","Component2","nextProps","shallowEqual","helmetInstances","setHelmet","state","Helmet","Component3","fastCompare","child","nestedChildren","arrayTypeChildren","newChildProps","newProps","newFlattenedProps","arrayChildName","name","nestedChild","children","React3","childProps","helmetData","data","AnchorLink","location","useLocation","hash","handleClick","event","jsx","Link"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DevPortalProvider-BWeAysxF.js","sources":["../../../node_modules/.pnpm/@tanstack+query-core@5.50.1/node_modules/@tanstack/query-core/build/modern/subscribable.js","../../../node_modules/.pnpm/@tanstack+query-core@5.50.1/node_modules/@tanstack/query-core/build/modern/utils.js","../../../node_modules/.pnpm/@tanstack+query-core@5.50.1/node_modules/@tanstack/query-core/build/modern/focusManager.js","../../../node_modules/.pnpm/@tanstack+query-core@5.50.1/node_modules/@tanstack/query-core/build/modern/onlineManager.js","../../../node_modules/.pnpm/@tanstack+query-core@5.50.1/node_modules/@tanstack/query-core/build/modern/retryer.js","../../../node_modules/.pnpm/@tanstack+query-core@5.50.1/node_modules/@tanstack/query-core/build/modern/notifyManager.js","../../../node_modules/.pnpm/@tanstack+query-core@5.50.1/node_modules/@tanstack/query-core/build/modern/removable.js","../../../node_modules/.pnpm/@tanstack+query-core@5.50.1/node_modules/@tanstack/query-core/build/modern/query.js","../../../node_modules/.pnpm/@tanstack+query-core@5.50.1/node_modules/@tanstack/query-core/build/modern/queryObserver.js","../../../node_modules/.pnpm/@tanstack+react-query@5.50.1_react@18.3.1/node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js","../../../node_modules/.pnpm/@tanstack+react-query@5.50.1_react@18.3.1/node_modules/@tanstack/react-query/build/modern/isRestoring.js","../../../node_modules/.pnpm/@tanstack+react-query@5.50.1_react@18.3.1/node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js","../../../node_modules/.pnpm/@tanstack+react-query@5.50.1_react@18.3.1/node_modules/@tanstack/react-query/build/modern/utils.js","../../../node_modules/.pnpm/@tanstack+react-query@5.50.1_react@18.3.1/node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js","../../../node_modules/.pnpm/@tanstack+react-query@5.50.1_react@18.3.1/node_modules/@tanstack/react-query/build/modern/suspense.js","../../../node_modules/.pnpm/@tanstack+react-query@5.50.1_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useBaseQuery.js","../../../node_modules/.pnpm/@tanstack+react-query@5.50.1_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useQuery.js","../../../node_modules/.pnpm/@tanstack+react-query@5.50.1_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useSuspenseQuery.js","../src/lib/components/navigation/util.ts","../src/lib/util/joinPath.tsx","../src/lib/util/traverseNavigation.ts","../src/lib/components/context/DevPortalProvider.ts"],"sourcesContent":["// src/subscribable.ts\nvar Subscribable = class {\n constructor() {\n this.listeners = /* @__PURE__ */ new Set();\n this.subscribe = this.subscribe.bind(this);\n }\n subscribe(listener) {\n this.listeners.add(listener);\n this.onSubscribe();\n return () => {\n this.listeners.delete(listener);\n this.onUnsubscribe();\n };\n }\n hasListeners() {\n return this.listeners.size > 0;\n }\n onSubscribe() {\n }\n onUnsubscribe() {\n }\n};\nexport {\n Subscribable\n};\n//# sourceMappingURL=subscribable.js.map","// src/utils.ts\nvar isServer = typeof window === \"undefined\" || \"Deno\" in globalThis;\nfunction noop() {\n return void 0;\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === \"function\" ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === \"number\" && value >= 0 && value !== Infinity;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction resolveStaleTime(staleTime, query) {\n return typeof staleTime === \"function\" ? staleTime(query) : staleTime;\n}\nfunction resolveEnabled(enabled, query) {\n return typeof enabled === \"function\" ? enabled(query) : enabled;\n}\nfunction matchQuery(filters, query) {\n const {\n type = \"all\",\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n if (queryKey) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n if (type !== \"all\") {\n const isActive = query.isActive();\n if (type === \"active\" && !isActive) {\n return false;\n }\n if (type === \"inactive\" && isActive) {\n return false;\n }\n }\n if (typeof stale === \"boolean\" && query.isStale() !== stale) {\n return false;\n }\n if (fetchStatus && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n if (predicate && !predicate(query)) {\n return false;\n }\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const { exact, status, predicate, mutationKey } = filters;\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n if (status && mutation.state.status !== status) {\n return false;\n }\n if (predicate && !predicate(mutation)) {\n return false;\n }\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = options?.queryKeyHashFn || hashKey;\n return hashFn(queryKey);\n}\nfunction hashKey(queryKey) {\n return JSON.stringify(\n queryKey,\n (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val\n );\n}\nfunction partialMatchKey(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (a && b && typeof a === \"object\" && typeof b === \"object\") {\n return !Object.keys(b).some((key) => !partialMatchKey(a[key], b[key]));\n }\n return false;\n}\nfunction replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n const array = isPlainArray(a) && isPlainArray(b);\n if (array || isPlainObject(a) && isPlainObject(b)) {\n const aItems = array ? a : Object.keys(a);\n const aSize = aItems.length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? [] : {};\n let equalItems = 0;\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n if ((!array && aItems.includes(key) || array) && a[key] === void 0 && b[key] === void 0) {\n copy[key] = void 0;\n equalItems++;\n } else {\n copy[key] = replaceEqualDeep(a[key], b[key]);\n if (copy[key] === a[key] && a[key] !== void 0) {\n equalItems++;\n }\n }\n }\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n return b;\n}\nfunction shallowEqualObjects(a, b) {\n if (!b || Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (ctor === void 0) {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n if (Object.getPrototypeOf(o) !== Object.prototype) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction sleep(ms) {\n return new Promise((resolve) => {\n setTimeout(resolve, ms);\n });\n}\nfunction replaceData(prevData, data, options) {\n if (typeof options.structuralSharing === \"function\") {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n return replaceEqualDeep(prevData, data);\n }\n return data;\n}\nfunction keepPreviousData(previousData) {\n return previousData;\n}\nfunction addToEnd(items, item, max = 0) {\n const newItems = [...items, item];\n return max && newItems.length > max ? newItems.slice(1) : newItems;\n}\nfunction addToStart(items, item, max = 0) {\n const newItems = [item, ...items];\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n}\nvar skipToken = Symbol();\nvar ensureQueryFn = (options, fetchOptions) => {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\n `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`\n );\n }\n }\n if (!options.queryFn && fetchOptions?.initialPromise) {\n return () => fetchOptions.initialPromise;\n }\n if (!options.queryFn || options.queryFn === skipToken) {\n return () => Promise.reject(new Error(`Missing queryFn: '${options.queryHash}'`));\n }\n return options.queryFn;\n};\nexport {\n addToEnd,\n addToStart,\n ensureQueryFn,\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n isPlainArray,\n isPlainObject,\n isServer,\n isValidTimeout,\n keepPreviousData,\n matchMutation,\n matchQuery,\n noop,\n partialMatchKey,\n replaceData,\n replaceEqualDeep,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n skipToken,\n sleep,\n timeUntilStale\n};\n//# sourceMappingURL=utils.js.map","// src/focusManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar FocusManager = class extends Subscribable {\n #focused;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onFocus) => {\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus();\n window.addEventListener(\"visibilitychange\", listener, false);\n return () => {\n window.removeEventListener(\"visibilitychange\", listener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup((focused) => {\n if (typeof focused === \"boolean\") {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n setFocused(focused) {\n const changed = this.#focused !== focused;\n if (changed) {\n this.#focused = focused;\n this.onFocus();\n }\n }\n onFocus() {\n const isFocused = this.isFocused();\n this.listeners.forEach((listener) => {\n listener(isFocused);\n });\n }\n isFocused() {\n if (typeof this.#focused === \"boolean\") {\n return this.#focused;\n }\n return globalThis.document?.visibilityState !== \"hidden\";\n }\n};\nvar focusManager = new FocusManager();\nexport {\n FocusManager,\n focusManager\n};\n//# sourceMappingURL=focusManager.js.map","// src/onlineManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar OnlineManager = class extends Subscribable {\n #online = true;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onOnline) => {\n if (!isServer && window.addEventListener) {\n const onlineListener = () => onOnline(true);\n const offlineListener = () => onOnline(false);\n window.addEventListener(\"online\", onlineListener, false);\n window.addEventListener(\"offline\", offlineListener, false);\n return () => {\n window.removeEventListener(\"online\", onlineListener);\n window.removeEventListener(\"offline\", offlineListener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup(this.setOnline.bind(this));\n }\n setOnline(online) {\n const changed = this.#online !== online;\n if (changed) {\n this.#online = online;\n this.listeners.forEach((listener) => {\n listener(online);\n });\n }\n }\n isOnline() {\n return this.#online;\n }\n};\nvar onlineManager = new OnlineManager();\nexport {\n OnlineManager,\n onlineManager\n};\n//# sourceMappingURL=onlineManager.js.map","// src/retryer.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { isServer, sleep } from \"./utils.js\";\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1e3 * 2 ** failureCount, 3e4);\n}\nfunction canFetch(networkMode) {\n return (networkMode ?? \"online\") === \"online\" ? onlineManager.isOnline() : true;\n}\nvar CancelledError = class {\n constructor(options) {\n this.revert = options?.revert;\n this.silent = options?.silent;\n }\n};\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let isResolved = false;\n let continueFn;\n let promiseResolve;\n let promiseReject;\n const promise = new Promise((outerResolve, outerReject) => {\n promiseResolve = outerResolve;\n promiseReject = outerReject;\n });\n const cancel = (cancelOptions) => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions));\n config.abort?.();\n }\n };\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n const canContinue = () => focusManager.isFocused() && (config.networkMode === \"always\" || onlineManager.isOnline()) && config.canRun();\n const canStart = () => canFetch(config.networkMode) && config.canRun();\n const resolve = (value) => {\n if (!isResolved) {\n isResolved = true;\n config.onSuccess?.(value);\n continueFn?.();\n promiseResolve(value);\n }\n };\n const reject = (value) => {\n if (!isResolved) {\n isResolved = true;\n config.onError?.(value);\n continueFn?.();\n promiseReject(value);\n }\n };\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n if (isResolved || canContinue()) {\n continueResolve(value);\n }\n };\n config.onPause?.();\n }).then(() => {\n continueFn = void 0;\n if (!isResolved) {\n config.onContinue?.();\n }\n });\n };\n const run = () => {\n if (isResolved) {\n return;\n }\n let promiseOrValue;\n const initialPromise = failureCount === 0 ? config.initialPromise : void 0;\n try {\n promiseOrValue = initialPromise ?? config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n Promise.resolve(promiseOrValue).then(resolve).catch((error) => {\n if (isResolved) {\n return;\n }\n const retry = config.retry ?? (isServer ? 0 : 3);\n const retryDelay = config.retryDelay ?? defaultRetryDelay;\n const delay = typeof retryDelay === \"function\" ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === \"number\" && failureCount < retry || typeof retry === \"function\" && retry(failureCount, error);\n if (isRetryCancelled || !shouldRetry) {\n reject(error);\n return;\n }\n failureCount++;\n config.onFail?.(failureCount, error);\n sleep(delay).then(() => {\n return canContinue() ? void 0 : pause();\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n };\n return {\n promise,\n cancel,\n continue: () => {\n continueFn?.();\n return promise;\n },\n cancelRetry,\n continueRetry,\n canStart,\n start: () => {\n if (canStart()) {\n run();\n } else {\n pause().then(run);\n }\n return promise;\n }\n };\n}\nexport {\n CancelledError,\n canFetch,\n createRetryer,\n isCancelledError\n};\n//# sourceMappingURL=retryer.js.map","// src/notifyManager.ts\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n let notifyFn = (callback) => {\n callback();\n };\n let batchNotifyFn = (callback) => {\n callback();\n };\n let scheduleFn = (cb) => setTimeout(cb, 0);\n const setScheduler = (fn) => {\n scheduleFn = fn;\n };\n const batch = (callback) => {\n let result;\n transactions++;\n try {\n result = callback();\n } finally {\n transactions--;\n if (!transactions) {\n flush();\n }\n }\n return result;\n };\n const schedule = (callback) => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleFn(() => {\n notifyFn(callback);\n });\n }\n };\n const batchCalls = (callback) => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n };\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n if (originalQueue.length) {\n scheduleFn(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n const setNotifyFunction = (fn) => {\n notifyFn = fn;\n };\n const setBatchNotifyFunction = (fn) => {\n batchNotifyFn = fn;\n };\n return {\n batch,\n batchCalls,\n schedule,\n setNotifyFunction,\n setBatchNotifyFunction,\n setScheduler\n };\n}\nvar notifyManager = createNotifyManager();\nexport {\n createNotifyManager,\n notifyManager\n};\n//# sourceMappingURL=notifyManager.js.map","// src/removable.ts\nimport { isServer, isValidTimeout } from \"./utils.js\";\nvar Removable = class {\n #gcTimeout;\n destroy() {\n this.clearGcTimeout();\n }\n scheduleGc() {\n this.clearGcTimeout();\n if (isValidTimeout(this.gcTime)) {\n this.#gcTimeout = setTimeout(() => {\n this.optionalRemove();\n }, this.gcTime);\n }\n }\n updateGcTime(newGcTime) {\n this.gcTime = Math.max(\n this.gcTime || 0,\n newGcTime ?? (isServer ? Infinity : 5 * 60 * 1e3)\n );\n }\n clearGcTimeout() {\n if (this.#gcTimeout) {\n clearTimeout(this.#gcTimeout);\n this.#gcTimeout = void 0;\n }\n }\n};\nexport {\n Removable\n};\n//# sourceMappingURL=removable.js.map","// src/query.ts\nimport {\n ensureQueryFn,\n noop,\n replaceData,\n resolveEnabled,\n timeUntilStale\n} from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { canFetch, createRetryer, isCancelledError } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\nvar Query = class extends Removable {\n #initialState;\n #revertState;\n #cache;\n #retryer;\n #defaultOptions;\n #abortSignalConsumed;\n constructor(config) {\n super();\n this.#abortSignalConsumed = false;\n this.#defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.#cache = config.cache;\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.#initialState = config.state || getDefaultState(this.options);\n this.state = this.#initialState;\n this.scheduleGc();\n }\n get meta() {\n return this.options.meta;\n }\n get promise() {\n return this.#retryer?.promise;\n }\n setOptions(options) {\n this.options = { ...this.#defaultOptions, ...options };\n this.updateGcTime(this.options.gcTime);\n }\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === \"idle\") {\n this.#cache.remove(this);\n }\n }\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options);\n this.#dispatch({\n data,\n type: \"success\",\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual\n });\n return data;\n }\n setState(state, setStateOptions) {\n this.#dispatch({ type: \"setState\", state, setStateOptions });\n }\n cancel(options) {\n const promise = this.#retryer?.promise;\n this.#retryer?.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n destroy() {\n super.destroy();\n this.cancel({ silent: true });\n }\n reset() {\n this.destroy();\n this.setState(this.#initialState);\n }\n isActive() {\n return this.observers.some(\n (observer) => resolveEnabled(observer.options.enabled, this) !== false\n );\n }\n isDisabled() {\n return this.getObserversCount() > 0 && !this.isActive();\n }\n isStale() {\n if (this.state.isInvalidated) {\n return true;\n }\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => observer.getCurrentResult().isStale\n );\n }\n return this.state.data === void 0;\n }\n isStaleByTime(staleTime = 0) {\n return this.state.isInvalidated || this.state.data === void 0 || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n onFocus() {\n const observer = this.observers.find((x) => x.shouldFetchOnWindowFocus());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n onOnline() {\n const observer = this.observers.find((x) => x.shouldFetchOnReconnect());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer);\n this.clearGcTimeout();\n this.#cache.notify({ type: \"observerAdded\", query: this, observer });\n }\n }\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter((x) => x !== observer);\n if (!this.observers.length) {\n if (this.#retryer) {\n if (this.#abortSignalConsumed) {\n this.#retryer.cancel({ revert: true });\n } else {\n this.#retryer.cancelRetry();\n }\n }\n this.scheduleGc();\n }\n this.#cache.notify({ type: \"observerRemoved\", query: this, observer });\n }\n }\n getObserversCount() {\n return this.observers.length;\n }\n invalidate() {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: \"invalidate\" });\n }\n }\n fetch(options, fetchOptions) {\n if (this.state.fetchStatus !== \"idle\") {\n if (this.state.data !== void 0 && fetchOptions?.cancelRefetch) {\n this.cancel({ silent: true });\n } else if (this.#retryer) {\n this.#retryer.continueRetry();\n return this.#retryer.promise;\n }\n }\n if (options) {\n this.setOptions(options);\n }\n if (!this.options.queryFn) {\n const observer = this.observers.find((x) => x.options.queryFn);\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`\n );\n }\n }\n const abortController = new AbortController();\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true;\n return abortController.signal;\n }\n });\n };\n const fetchFn = () => {\n const queryFn = ensureQueryFn(this.options, fetchOptions);\n const queryFnContext = {\n queryKey: this.queryKey,\n meta: this.meta\n };\n addSignalProperty(queryFnContext);\n this.#abortSignalConsumed = false;\n if (this.options.persister) {\n return this.options.persister(\n queryFn,\n queryFnContext,\n this\n );\n }\n return queryFn(queryFnContext);\n };\n const context = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context);\n this.options.behavior?.onFetch(\n context,\n this\n );\n this.#revertState = this.state;\n if (this.state.fetchStatus === \"idle\" || this.state.fetchMeta !== context.fetchOptions?.meta) {\n this.#dispatch({ type: \"fetch\", meta: context.fetchOptions?.meta });\n }\n const onError = (error) => {\n if (!(isCancelledError(error) && error.silent)) {\n this.#dispatch({\n type: \"error\",\n error\n });\n }\n if (!isCancelledError(error)) {\n this.#cache.config.onError?.(\n error,\n this\n );\n this.#cache.config.onSettled?.(\n this.state.data,\n error,\n this\n );\n }\n if (!this.isFetchingOptimistic) {\n this.scheduleGc();\n }\n this.isFetchingOptimistic = false;\n };\n this.#retryer = createRetryer({\n initialPromise: fetchOptions?.initialPromise,\n fn: context.fetchFn,\n abort: abortController.abort.bind(abortController),\n onSuccess: (data) => {\n if (data === void 0) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`\n );\n }\n onError(new Error(`${this.queryHash} data is undefined`));\n return;\n }\n this.setData(data);\n this.#cache.config.onSuccess?.(data, this);\n this.#cache.config.onSettled?.(\n data,\n this.state.error,\n this\n );\n if (!this.isFetchingOptimistic) {\n this.scheduleGc();\n }\n this.isFetchingOptimistic = false;\n },\n onError,\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n canRun: () => true\n });\n return this.#retryer.start();\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n fetchStatus: \"paused\"\n };\n case \"continue\":\n return {\n ...state,\n fetchStatus: \"fetching\"\n };\n case \"fetch\":\n return {\n ...state,\n ...fetchState(state.data, this.options),\n fetchMeta: action.meta ?? null\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: action.dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: \"success\",\n ...!action.manual && {\n fetchStatus: \"idle\",\n fetchFailureCount: 0,\n fetchFailureReason: null\n }\n };\n case \"error\":\n const error = action.error;\n if (isCancelledError(error) && error.revert && this.#revertState) {\n return { ...this.#revertState, fetchStatus: \"idle\" };\n }\n return {\n ...state,\n error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: \"idle\",\n status: \"error\"\n };\n case \"invalidate\":\n return {\n ...state,\n isInvalidated: true\n };\n case \"setState\":\n return {\n ...state,\n ...action.state\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onQueryUpdate();\n });\n this.#cache.notify({ query: this, type: \"updated\", action });\n });\n }\n};\nfunction fetchState(data, options) {\n return {\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchStatus: canFetch(options.networkMode) ? \"fetching\" : \"paused\",\n ...data === void 0 && {\n error: null,\n status: \"pending\"\n }\n };\n}\nfunction getDefaultState(options) {\n const data = typeof options.initialData === \"function\" ? options.initialData() : options.initialData;\n const hasData = data !== void 0;\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === \"function\" ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? \"success\" : \"pending\",\n fetchStatus: \"idle\"\n };\n}\nexport {\n Query,\n fetchState\n};\n//# sourceMappingURL=query.js.map","// src/queryObserver.ts\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n timeUntilStale\n} from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { fetchState } from \"./query.js\";\nvar QueryObserver = class extends Subscribable {\n constructor(client, options) {\n super();\n this.options = options;\n this.#client = client;\n this.#selectError = null;\n this.bindMethods();\n this.setOptions(options);\n }\n #client;\n #currentQuery = void 0;\n #currentQueryInitialState = void 0;\n #currentResult = void 0;\n #currentResultState;\n #currentResultOptions;\n #selectError;\n #selectFn;\n #selectResult;\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData;\n #staleTimeoutId;\n #refetchIntervalId;\n #currentRefetchInterval;\n #trackedProps = /* @__PURE__ */ new Set();\n bindMethods() {\n this.refetch = this.refetch.bind(this);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this);\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch();\n } else {\n this.updateResult();\n }\n this.#updateTimers();\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.destroy();\n }\n }\n shouldFetchOnReconnect() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect\n );\n }\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus\n );\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#clearStaleTimeout();\n this.#clearRefetchInterval();\n this.#currentQuery.removeObserver(this);\n }\n setOptions(options, notifyOptions) {\n const prevOptions = this.options;\n const prevQuery = this.#currentQuery;\n this.options = this.#client.defaultQueryOptions(options);\n if (this.options.enabled !== void 0 && typeof this.options.enabled !== \"boolean\" && typeof this.options.enabled !== \"function\" && typeof resolveEnabled(this.options.enabled, this.#currentQuery) !== \"boolean\") {\n throw new Error(\n \"Expected enabled to be a boolean or a callback that returns a boolean\"\n );\n }\n this.#updateQuery();\n this.#currentQuery.setOptions(this.options);\n if (prevOptions._defaulted && !shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getQueryCache().notify({\n type: \"observerOptionsUpdated\",\n query: this.#currentQuery,\n observer: this\n });\n }\n const mounted = this.hasListeners();\n if (mounted && shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions\n )) {\n this.#executeFetch();\n }\n this.updateResult(notifyOptions);\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || resolveStaleTime(this.options.staleTime, this.#currentQuery) !== resolveStaleTime(prevOptions.staleTime, this.#currentQuery))) {\n this.#updateStaleTimeout();\n }\n const nextRefetchInterval = this.#computeRefetchInterval();\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || nextRefetchInterval !== this.#currentRefetchInterval)) {\n this.#updateRefetchInterval(nextRefetchInterval);\n }\n }\n getOptimisticResult(options) {\n const query = this.#client.getQueryCache().build(this.#client, options);\n const result = this.createResult(query, options);\n if (shouldAssignObserverCurrentProperties(this, result)) {\n this.#currentResult = result;\n this.#currentResultOptions = this.options;\n this.#currentResultState = this.#currentQuery.state;\n }\n return result;\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n trackResult(result, onPropTracked) {\n const trackedResult = {};\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.trackProp(key);\n onPropTracked?.(key);\n return result[key];\n }\n });\n });\n return trackedResult;\n }\n trackProp(key) {\n this.#trackedProps.add(key);\n }\n getCurrentQuery() {\n return this.#currentQuery;\n }\n refetch({ ...options } = {}) {\n return this.fetch({\n ...options\n });\n }\n fetchOptimistic(options) {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const query = this.#client.getQueryCache().build(this.#client, defaultedOptions);\n query.isFetchingOptimistic = true;\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n fetch(fetchOptions) {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true\n }).then(() => {\n this.updateResult();\n return this.#currentResult;\n });\n }\n #executeFetch(fetchOptions) {\n this.#updateQuery();\n let promise = this.#currentQuery.fetch(\n this.options,\n fetchOptions\n );\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop);\n }\n return promise;\n }\n #updateStaleTimeout() {\n this.#clearStaleTimeout();\n const staleTime = resolveStaleTime(\n this.options.staleTime,\n this.#currentQuery\n );\n if (isServer || this.#currentResult.isStale || !isValidTimeout(staleTime)) {\n return;\n }\n const time = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime);\n const timeout = time + 1;\n this.#staleTimeoutId = setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n #computeRefetchInterval() {\n return (typeof this.options.refetchInterval === \"function\" ? this.options.refetchInterval(this.#currentQuery) : this.options.refetchInterval) ?? false;\n }\n #updateRefetchInterval(nextInterval) {\n this.#clearRefetchInterval();\n this.#currentRefetchInterval = nextInterval;\n if (isServer || resolveEnabled(this.options.enabled, this.#currentQuery) === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {\n return;\n }\n this.#refetchIntervalId = setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.#executeFetch();\n }\n }, this.#currentRefetchInterval);\n }\n #updateTimers() {\n this.#updateStaleTimeout();\n this.#updateRefetchInterval(this.#computeRefetchInterval());\n }\n #clearStaleTimeout() {\n if (this.#staleTimeoutId) {\n clearTimeout(this.#staleTimeoutId);\n this.#staleTimeoutId = void 0;\n }\n }\n #clearRefetchInterval() {\n if (this.#refetchIntervalId) {\n clearInterval(this.#refetchIntervalId);\n this.#refetchIntervalId = void 0;\n }\n }\n createResult(query, options) {\n const prevQuery = this.#currentQuery;\n const prevOptions = this.options;\n const prevResult = this.#currentResult;\n const prevResultState = this.#currentResultState;\n const prevResultOptions = this.#currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.#currentQueryInitialState;\n const { state } = query;\n let newState = { ...state };\n let isPlaceholderData = false;\n let data;\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n if (fetchOnMount || fetchOptionally) {\n newState = {\n ...newState,\n ...fetchState(state.data, query.options)\n };\n }\n if (options._optimisticResults === \"isRestoring\") {\n newState.fetchStatus = \"idle\";\n }\n }\n let { error, errorUpdatedAt, status } = newState;\n if (options.select && newState.data !== void 0) {\n if (prevResult && newState.data === prevResultState?.data && options.select === this.#selectFn) {\n data = this.#selectResult;\n } else {\n try {\n this.#selectFn = options.select;\n data = options.select(newState.data);\n data = replaceData(prevResult?.data, data, options);\n this.#selectResult = data;\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n } else {\n data = newState.data;\n }\n if (options.placeholderData !== void 0 && data === void 0 && status === \"pending\") {\n let placeholderData;\n if (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {\n placeholderData = prevResult.data;\n } else {\n placeholderData = typeof options.placeholderData === \"function\" ? options.placeholderData(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData\n ) : options.placeholderData;\n if (options.select && placeholderData !== void 0) {\n try {\n placeholderData = options.select(placeholderData);\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n }\n if (placeholderData !== void 0) {\n status = \"success\";\n data = replaceData(\n prevResult?.data,\n placeholderData,\n options\n );\n isPlaceholderData = true;\n }\n }\n if (this.#selectError) {\n error = this.#selectError;\n data = this.#selectResult;\n errorUpdatedAt = Date.now();\n status = \"error\";\n }\n const isFetching = newState.fetchStatus === \"fetching\";\n const isPending = status === \"pending\";\n const isError = status === \"error\";\n const isLoading = isPending && isFetching;\n const hasData = data !== void 0;\n const result = {\n status,\n fetchStatus: newState.fetchStatus,\n isPending,\n isSuccess: status === \"success\",\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: newState.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: newState.fetchFailureCount,\n failureReason: newState.fetchFailureReason,\n errorUpdateCount: newState.errorUpdateCount,\n isFetched: newState.dataUpdateCount > 0 || newState.errorUpdateCount > 0,\n isFetchedAfterMount: newState.dataUpdateCount > queryInitialState.dataUpdateCount || newState.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && !hasData,\n isPaused: newState.fetchStatus === \"paused\",\n isPlaceholderData,\n isRefetchError: isError && hasData,\n isStale: isStale(query, options),\n refetch: this.refetch\n };\n return result;\n }\n updateResult(notifyOptions) {\n const prevResult = this.#currentResult;\n const nextResult = this.createResult(this.#currentQuery, this.options);\n this.#currentResultState = this.#currentQuery.state;\n this.#currentResultOptions = this.options;\n if (this.#currentResultState.data !== void 0) {\n this.#lastQueryWithDefinedData = this.#currentQuery;\n }\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n this.#currentResult = nextResult;\n const defaultNotifyOptions = {};\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n const { notifyOnChangeProps } = this.options;\n const notifyOnChangePropsValue = typeof notifyOnChangeProps === \"function\" ? notifyOnChangeProps() : notifyOnChangeProps;\n if (notifyOnChangePropsValue === \"all\" || !notifyOnChangePropsValue && !this.#trackedProps.size) {\n return true;\n }\n const includedProps = new Set(\n notifyOnChangePropsValue ?? this.#trackedProps\n );\n if (this.options.throwOnError) {\n includedProps.add(\"error\");\n }\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key;\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n if (notifyOptions?.listeners !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true;\n }\n this.#notify({ ...defaultNotifyOptions, ...notifyOptions });\n }\n #updateQuery() {\n const query = this.#client.getQueryCache().build(this.#client, this.options);\n if (query === this.#currentQuery) {\n return;\n }\n const prevQuery = this.#currentQuery;\n this.#currentQuery = query;\n this.#currentQueryInitialState = query.state;\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this);\n query.addObserver(this);\n }\n }\n onQueryUpdate() {\n this.updateResult();\n if (this.hasListeners()) {\n this.#updateTimers();\n }\n }\n #notify(notifyOptions) {\n notifyManager.batch(() => {\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n }\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: \"observerResultsUpdated\"\n });\n });\n }\n};\nfunction shouldLoadOnMount(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.state.data === void 0 && !(query.state.status === \"error\" && options.retryOnMount === false);\n}\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.data !== void 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\nfunction shouldFetchOn(query, options, field) {\n if (resolveEnabled(options.enabled, query) !== false) {\n const value = typeof field === \"function\" ? field(query) : field;\n return value === \"always\" || value !== false && isStale(query, options);\n }\n return false;\n}\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return (query !== prevQuery || resolveEnabled(prevOptions.enabled, query) === false) && (!options.suspense || query.state.status !== \"error\") && isStale(query, options);\n}\nfunction isStale(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.isStaleByTime(resolveStaleTime(options.staleTime, query));\n}\nfunction shouldAssignObserverCurrentProperties(observer, optimisticResult) {\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true;\n }\n return false;\n}\nexport {\n QueryObserver\n};\n//# sourceMappingURL=queryObserver.js.map","\"use client\";\n\n// src/QueryClientProvider.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar QueryClientContext = React.createContext(\n void 0\n);\nvar useQueryClient = (queryClient) => {\n const client = React.useContext(QueryClientContext);\n if (queryClient) {\n return queryClient;\n }\n if (!client) {\n throw new Error(\"No QueryClient set, use QueryClientProvider to set one\");\n }\n return client;\n};\nvar QueryClientProvider = ({\n client,\n children\n}) => {\n React.useEffect(() => {\n client.mount();\n return () => {\n client.unmount();\n };\n }, [client]);\n return /* @__PURE__ */ jsx(QueryClientContext.Provider, { value: client, children });\n};\nexport {\n QueryClientContext,\n QueryClientProvider,\n useQueryClient\n};\n//# sourceMappingURL=QueryClientProvider.js.map","\"use client\";\n\n// src/isRestoring.ts\nimport * as React from \"react\";\nvar IsRestoringContext = React.createContext(false);\nvar useIsRestoring = () => React.useContext(IsRestoringContext);\nvar IsRestoringProvider = IsRestoringContext.Provider;\nexport {\n IsRestoringProvider,\n useIsRestoring\n};\n//# sourceMappingURL=isRestoring.js.map","\"use client\";\n\n// src/QueryErrorResetBoundary.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\nvar QueryErrorResetBoundaryContext = React.createContext(createValue());\nvar useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext);\nvar QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /* @__PURE__ */ jsx(QueryErrorResetBoundaryContext.Provider, { value, children: typeof children === \"function\" ? children(value) : children });\n};\nexport {\n QueryErrorResetBoundary,\n useQueryErrorResetBoundary\n};\n//# sourceMappingURL=QueryErrorResetBoundary.js.map","// src/utils.ts\nfunction shouldThrowError(throwError, params) {\n if (typeof throwError === \"function\") {\n return throwError(...params);\n }\n return !!throwError;\n}\nfunction noop() {\n}\nexport {\n noop,\n shouldThrowError\n};\n//# sourceMappingURL=utils.js.map","\"use client\";\n\n// src/errorBoundaryUtils.ts\nimport * as React from \"react\";\nimport { shouldThrowError } from \"./utils.js\";\nvar ensurePreventErrorBoundaryRetry = (options, errorResetBoundary) => {\n if (options.suspense || options.throwOnError) {\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false;\n }\n }\n};\nvar useClearResetErrorBoundary = (errorResetBoundary) => {\n React.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n};\nvar getHasError = ({\n result,\n errorResetBoundary,\n throwOnError,\n query\n}) => {\n return result.isError && !errorResetBoundary.isReset() && !result.isFetching && query && shouldThrowError(throwOnError, [result.error, query]);\n};\nexport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n};\n//# sourceMappingURL=errorBoundaryUtils.js.map","// src/suspense.ts\nvar defaultThrowOnError = (_error, query) => query.state.data === void 0;\nvar ensureStaleTime = (defaultedOptions) => {\n if (defaultedOptions.suspense) {\n if (typeof defaultedOptions.staleTime !== \"number\") {\n defaultedOptions.staleTime = 1e3;\n }\n }\n};\nvar willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;\nvar shouldSuspend = (defaultedOptions, result) => defaultedOptions?.suspense && result.isPending;\nvar fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).catch(() => {\n errorResetBoundary.clearReset();\n});\nexport {\n defaultThrowOnError,\n ensureStaleTime,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n};\n//# sourceMappingURL=suspense.js.map","\"use client\";\n\n// src/useBaseQuery.ts\nimport * as React from \"react\";\nimport { notifyManager } from \"@tanstack/query-core\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useIsRestoring } from \"./isRestoring.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport { ensureStaleTime, fetchOptimistic, shouldSuspend } from \"./suspense.js\";\nfunction useBaseQuery(options, Observer, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n throw new Error(\n 'Bad argument type. Starting with v5, only the \"Object\" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object'\n );\n }\n }\n const client = useQueryClient(queryClient);\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedOptions = client.defaultQueryOptions(options);\n client.getDefaultOptions().queries?._experimental_beforeQuery?.(\n defaultedOptions\n );\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n ensureStaleTime(defaultedOptions);\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary);\n useClearResetErrorBoundary(errorResetBoundary);\n const [observer] = React.useState(\n () => new Observer(\n client,\n defaultedOptions\n )\n );\n const result = observer.getOptimisticResult(defaultedOptions);\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n const unsubscribe = isRestoring ? () => void 0 : observer.subscribe(notifyManager.batchCalls(onStoreChange));\n observer.updateResult();\n return unsubscribe;\n },\n [observer, isRestoring]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setOptions(defaultedOptions, { listeners: false });\n }, [defaultedOptions, observer]);\n if (shouldSuspend(defaultedOptions, result)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n }\n if (getHasError({\n result,\n errorResetBoundary,\n throwOnError: defaultedOptions.throwOnError,\n query: client.getQueryCache().get(defaultedOptions.queryHash)\n })) {\n throw result.error;\n }\n ;\n client.getDefaultOptions().queries?._experimental_afterQuery?.(\n defaultedOptions,\n result\n );\n return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\nexport {\n useBaseQuery\n};\n//# sourceMappingURL=useBaseQuery.js.map","\"use client\";\n\n// src/useQuery.ts\nimport { QueryObserver } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nfunction useQuery(options, queryClient) {\n return useBaseQuery(options, QueryObserver, queryClient);\n}\nexport {\n useQuery\n};\n//# sourceMappingURL=useQuery.js.map","\"use client\";\n\n// src/useSuspenseQuery.ts\nimport { QueryObserver, skipToken } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nimport { defaultThrowOnError } from \"./suspense.js\";\nfunction useSuspenseQuery(options, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\"skipToken is not allowed for useSuspenseQuery\");\n }\n }\n return useBaseQuery(\n {\n ...options,\n enabled: true,\n suspense: true,\n throwOnError: defaultThrowOnError,\n placeholderData: void 0\n },\n QueryObserver,\n queryClient\n );\n}\nexport {\n useSuspenseQuery\n};\n//# sourceMappingURL=useSuspenseQuery.js.map","import { matchPath } from \"react-router-dom\";\nimport type {\n HrefNavigationCategoryItem,\n PathNavigationCategoryItem,\n} from \"../../core/DevPortalContext.js\";\nimport {\n traverseNavigationNode,\n type NavigationNode,\n} from \"../../util/traverseNavigation.js\";\n\nexport const isPathItem = (\n item: NavigationNode,\n): item is PathNavigationCategoryItem => \"path\" in item;\n\nexport const isLinkItem = (\n item: NavigationNode,\n): item is HrefNavigationCategoryItem => \"href\" in item;\n\n/**\n * Recursively checks if the current item or any of its children are active.\n */\nexport const checkHasActiveItem = (\n item: NavigationNode,\n locationPath: string,\n basePath: string,\n) => {\n return Boolean(\n traverseNavigationNode(\n item,\n (node, fullPath) => {\n if (isPathItem(node) && matchPath(fullPath, locationPath)) {\n return true;\n }\n },\n basePath,\n ),\n );\n};\n","export const joinPath = (\n ...parts: Array<string | null | undefined | boolean>\n) => {\n const cleanPath = parts\n .filter((part): part is string => Boolean(part))\n .map((part) => part.replace(/(^\\/+|\\/+$)/g, \"\")) // Strip leading and trailing slashes\n .join(\"/\")\n .replace(/(^\\/+|\\/+$)/g, \"\");\n\n return cleanPath ? `/${cleanPath}` : \"\";\n};\n","import { isPathItem } from \"../components/navigation/util.js\";\nimport type {\n NavigationCategory,\n NavigationCategoryItem,\n NavigationItem,\n} from \"../core/DevPortalContext.js\";\nimport { joinPath } from \"./joinPath.js\";\n\nexport type NavigationNode = NavigationCategoryItem | NavigationCategory;\ntype Callback<T> = (\n node: NavigationNode,\n fullPath: string,\n parentNodes: NavigationNode[],\n) => T | undefined;\n\nexport const traverseNavigationNode = <T>(\n node: NavigationNode,\n callback: Callback<T>,\n parentPath: string,\n parentNodes: NavigationNode[] = [],\n): T | undefined => {\n const newPath = isPathItem(node)\n ? joinPath(parentPath, node.path)\n : parentPath;\n const result = callback(node, newPath, parentNodes);\n\n if (result !== undefined) return result;\n\n if (\"children\" in node && node.children) {\n const newParentNodes = [...parentNodes, node];\n for (const child of node.children) {\n const childResult = traverseNavigationNode(\n child,\n callback,\n newPath,\n newParentNodes,\n );\n if (childResult !== undefined) return childResult;\n }\n }\n return undefined;\n};\n\nexport const traverseNavigation = <T>(\n navItem: NavigationItem,\n callback: Callback<T>,\n): T | undefined => {\n if (navItem.categories) {\n for (const category of navItem.categories) {\n const result = traverseNavigationNode(category, callback, navItem.path);\n if (result !== undefined) return result;\n }\n }\n return undefined;\n};\n","import { useQuery, useSuspenseQuery } from \"@tanstack/react-query\";\nimport { createContext, useContext } from \"react\";\nimport { matchPath, useLocation } from \"react-router-dom\";\nimport { DevPortalContext } from \"../../core/DevPortalContext.js\";\nimport { traverseNavigation } from \"../../util/traverseNavigation.js\";\n\nconst DevPortalReactContext = createContext<DevPortalContext | undefined>(\n undefined,\n);\n\nexport const DevPortalProvider = DevPortalReactContext.Provider;\n\nexport const useDevPortal = () => {\n const context = useContext(DevPortalReactContext);\n\n if (!context) {\n throw new Error(\"useDevPortal must be used within a DevPortalProvider.\");\n }\n\n return context;\n};\n\nexport const useApiIdentities = () => {\n const { getApiIdentities } = useDevPortal();\n return useQuery({\n queryFn: getApiIdentities,\n queryKey: [\"api-identities\"],\n });\n};\n\nexport const useTopNavigationItem = () => {\n const { navigation } = useDevPortal();\n const location = useLocation();\n\n // The `/` path needs this logic because it would always match:\n // Only if a leaf node actually matches the current path it is active\n for (const item of navigation) {\n const foundNavItem = traverseNavigation(item, (_node, fullPath) => {\n if (location.pathname === fullPath) {\n return item;\n }\n });\n\n if (foundNavItem) {\n return foundNavItem;\n }\n }\n if (location.pathname === \"/\") {\n return navigation.find((item) => item.path === \"/\");\n }\n\n return navigation.find(\n (item) =>\n item.path !== \"/\" &&\n matchPath({ path: item.path, end: false }, location.pathname),\n );\n};\n\nexport const useNavigation = () => {\n const { getNavigation } = useDevPortal();\n const navItem = useTopNavigationItem();\n\n const path = navItem?.path ?? \"\";\n\n return useSuspenseQuery({\n queryFn: async () => {\n return {\n items: [...(navItem?.categories ?? []), ...(await getNavigation(path))],\n currentTopNavItem: navItem,\n };\n },\n queryKey: [\"navigation\", path],\n });\n};\n"],"names":["Subscribable","listener","isServer","noop","functionalUpdate","updater","input","isValidTimeout","value","timeUntilStale","updatedAt","staleTime","resolveStaleTime","query","resolveEnabled","enabled","matchQuery","filters","type","exact","fetchStatus","predicate","queryKey","stale","hashQueryKeyByOptions","partialMatchKey","isActive","matchMutation","mutation","status","mutationKey","hashKey","options","_","val","isPlainObject","result","key","a","b","replaceEqualDeep","array","isPlainArray","aItems","aSize","bItems","bSize","copy","equalItems","i","shallowEqualObjects","o","hasObjectPrototype","ctor","prot","sleep","ms","resolve","replaceData","prevData","data","addToEnd","items","item","max","newItems","addToStart","skipToken","ensureQueryFn","fetchOptions","FocusManager","_a","__privateAdd","_focused","_cleanup","_setup","__privateSet","onFocus","__privateGet","setup","focused","isFocused","focusManager","OnlineManager","_online","onOnline","onlineListener","offlineListener","online","onlineManager","defaultRetryDelay","failureCount","canFetch","networkMode","CancelledError","isCancelledError","createRetryer","config","isRetryCancelled","isResolved","continueFn","promiseResolve","promiseReject","promise","outerResolve","outerReject","cancel","cancelOptions","reject","cancelRetry","continueRetry","canContinue","canStart","pause","continueResolve","run","promiseOrValue","initialPromise","error","retry","retryDelay","delay","shouldRetry","createNotifyManager","queue","transactions","notifyFn","callback","batchNotifyFn","scheduleFn","cb","setScheduler","fn","batch","flush","schedule","batchCalls","args","originalQueue","notifyManager","Removable","_gcTimeout","newGcTime","Query","_Query_instances","_initialState","_revertState","_cache","_retryer","_defaultOptions","_abortSignalConsumed","getDefaultState","newData","__privateMethod","dispatch_fn","state","setStateOptions","_b","observer","x","abortController","addSignalProperty","object","fetchFn","queryFn","queryFnContext","context","_c","onError","_d","action","reducer","fetchState","hasData","initialDataUpdatedAt","QueryObserver","client","_QueryObserver_instances","_client","_currentQuery","_currentQueryInitialState","_currentResult","_currentResultState","_currentResultOptions","_selectError","_selectFn","_selectResult","_lastQueryWithDefinedData","_staleTimeoutId","_refetchIntervalId","_currentRefetchInterval","_trackedProps","shouldFetchOnMount","executeFetch_fn","updateTimers_fn","shouldFetchOn","clearStaleTimeout_fn","clearRefetchInterval_fn","notifyOptions","prevOptions","prevQuery","updateQuery_fn","mounted","shouldFetchOptionally","updateStaleTimeout_fn","nextRefetchInterval","computeRefetchInterval_fn","updateRefetchInterval_fn","shouldAssignObserverCurrentProperties","onPropTracked","trackedResult","defaultedOptions","prevResult","prevResultState","prevResultOptions","queryInitialState","newState","isPlaceholderData","fetchOnMount","fetchOptionally","errorUpdatedAt","selectError","placeholderData","isFetching","isPending","isError","isLoading","isStale","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","notifyOnChangePropsValue","includedProps","typedKey","notify_fn","timeout","nextInterval","shouldLoadOnMount","field","optimisticResult","QueryClientContext","React","useQueryClient","queryClient","QueryClientProvider","children","jsx","IsRestoringContext","useIsRestoring","createValue","isReset","QueryErrorResetBoundaryContext","useQueryErrorResetBoundary","shouldThrowError","throwError","params","ensurePreventErrorBoundaryRetry","errorResetBoundary","useClearResetErrorBoundary","getHasError","throwOnError","defaultThrowOnError","_error","ensureStaleTime","shouldSuspend","fetchOptimistic","useBaseQuery","Observer","isRestoring","onStoreChange","unsubscribe","useQuery","useSuspenseQuery","isPathItem","isLinkItem","checkHasActiveItem","locationPath","basePath","traverseNavigationNode","node","fullPath","matchPath","joinPath","parts","cleanPath","part","parentPath","parentNodes","newPath","newParentNodes","child","childResult","traverseNavigation","navItem","category","DevPortalReactContext","createContext","DevPortalProvider","useDevPortal","useContext","useApiIdentities","getApiIdentities","useTopNavigationItem","navigation","location","useLocation","foundNavItem","_node","useNavigation","getNavigation","path"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]}
|