zudoku 0.16.3 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/main.d.ts +1 -1
- package/dist/app/main.js +2 -2
- package/dist/app/main.js.map +1 -1
- package/dist/config/validators/validate.d.ts +44 -44
- package/dist/config/validators/validate.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/authentication/authentication.d.ts +2 -2
- package/dist/lib/authentication/state.d.ts +1 -1
- package/dist/lib/authentication/state.js +5 -3
- package/dist/lib/authentication/state.js.map +1 -1
- package/dist/lib/authentication/use-broadcast/shared.d.ts +48 -0
- package/dist/lib/authentication/use-broadcast/shared.js +243 -0
- package/dist/lib/authentication/use-broadcast/shared.js.map +1 -0
- package/dist/lib/authentication/use-broadcast/useBroadcast.d.ts +24 -0
- package/dist/lib/authentication/use-broadcast/useBroadcast.js +106 -0
- package/dist/lib/authentication/use-broadcast/useBroadcast.js.map +1 -0
- package/dist/lib/components/ClientOnly.d.ts +4 -2
- package/dist/lib/components/ClientOnly.js +1 -1
- package/dist/lib/components/ClientOnly.js.map +1 -1
- package/dist/lib/components/Header.js +3 -1
- package/dist/lib/components/Header.js.map +1 -1
- package/dist/lib/components/{DevPortal.d.ts → Zudoku.d.ts} +3 -3
- package/dist/lib/components/{DevPortal.js → Zudoku.js} +11 -11
- package/dist/lib/components/Zudoku.js.map +1 -0
- package/dist/lib/components/context/ZudokuContext.d.ts +4 -4
- package/dist/lib/components/context/ZudokuContext.js +1 -1
- package/dist/lib/components/context/ZudokuContext.js.map +1 -1
- package/dist/lib/components/context/ZudokuProvider.d.ts +2 -2
- package/dist/lib/components/context/ZudokuProvider.js.map +1 -1
- package/dist/lib/components/index.d.ts +4 -7
- package/dist/lib/components/index.js +2 -3
- package/dist/lib/components/index.js.map +1 -1
- package/dist/lib/core/{DevPortalContext.d.ts → ZudokuContext.d.ts} +5 -5
- package/dist/lib/core/{DevPortalContext.js → ZudokuContext.js} +2 -2
- package/dist/lib/core/ZudokuContext.js.map +1 -0
- package/dist/lib/core/plugins.d.ts +12 -12
- package/dist/lib/core/plugins.js.map +1 -1
- package/dist/lib/plugins/api-keys/index.d.ts +9 -9
- package/dist/lib/plugins/api-keys/index.js.map +1 -1
- package/dist/lib/plugins/custom-pages/index.d.ts +2 -2
- package/dist/lib/plugins/custom-pages/index.js.map +1 -1
- package/dist/lib/plugins/markdown/index.d.ts +2 -2
- package/dist/lib/plugins/markdown/index.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationList.js +1 -1
- package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
- package/dist/lib/plugins/openapi/Sidecar.js +28 -24
- package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
- package/dist/lib/plugins/openapi/index.d.ts +2 -2
- package/dist/lib/plugins/openapi/index.js.map +1 -1
- package/dist/lib/plugins/redirect/index.d.ts +2 -2
- package/dist/lib/plugins/redirect/index.js.map +1 -1
- package/dist/lib/plugins/search-inkeep/index.d.ts +2 -2
- package/dist/lib/plugins/search-inkeep/index.js.map +1 -1
- package/dist/lib/ui/ActionButton.d.ts +3 -1
- package/dist/lib/util/useOnScreen.d.ts +4 -0
- package/dist/lib/util/useOnScreen.js +19 -0
- package/dist/lib/util/useOnScreen.js.map +1 -0
- package/dist/vite/plugin-mdx.d.ts +0 -6
- package/dist/vite/plugin-mdx.js.map +1 -1
- package/lib/{AnchorLink-BbB2q-jx.js → AnchorLink-DYbUOP9U.js} +2 -2
- package/lib/{AnchorLink-BbB2q-jx.js.map → AnchorLink-DYbUOP9U.js.map} +1 -1
- package/lib/{AuthenticationPlugin-C9BHGXlE.js → AuthenticationPlugin-bqGAKfot.js} +3 -3
- package/lib/{AuthenticationPlugin-C9BHGXlE.js.map → AuthenticationPlugin-bqGAKfot.js.map} +1 -1
- package/lib/{ClientOnly-CVN6leDu.js → ClientOnly-E7hGysn1.js} +4 -4
- package/lib/ClientOnly-E7hGysn1.js.map +1 -0
- package/lib/{Markdown-BDcCAWwm.js → Markdown-D6UxMbZm.js} +2 -2
- package/lib/{Markdown-BDcCAWwm.js.map → Markdown-D6UxMbZm.js.map} +1 -1
- package/lib/{MdxPage-DKMH_t0f.js → MdxPage-DRKqyn2b.js} +5 -5
- package/lib/{MdxPage-DKMH_t0f.js.map → MdxPage-DRKqyn2b.js.map} +1 -1
- package/lib/{OperationList-BjppA5yM.js → OperationList-BHUBGM0c.js} +5 -5
- package/lib/{OperationList-BjppA5yM.js.map → OperationList-BHUBGM0c.js.map} +1 -1
- package/lib/{Route-D_djzMv3.js → Route-B0XuN1oC.js} +3 -3
- package/lib/{Route-D_djzMv3.js.map → Route-B0XuN1oC.js.map} +1 -1
- package/lib/{Select-Bagt3Bme.js → Select-DYKDahHt.js} +3 -3
- package/lib/{Select-Bagt3Bme.js.map → Select-DYKDahHt.js.map} +1 -1
- package/lib/{SlotletProvider-Da7eFgd2.js → SlotletProvider-mhjLPG44.js} +4 -4
- package/lib/{SlotletProvider-Da7eFgd2.js.map → SlotletProvider-mhjLPG44.js.map} +1 -1
- package/lib/{hook-sn0zMTkE.js → hook-CjQERPa7.js} +3 -3
- package/lib/{hook-sn0zMTkE.js.map → hook-CjQERPa7.js.map} +1 -1
- package/lib/{index-_gtpPhlu.js → index-BRg5pi5D.js} +1190 -1165
- package/lib/index-BRg5pi5D.js.map +1 -0
- package/lib/{index-CRo94sKK.js → index-DM9hrcCG.js} +4 -4
- package/lib/{index-CRo94sKK.js.map → index-DM9hrcCG.js.map} +1 -1
- package/lib/state-BsPrOUAh.js +252 -0
- package/lib/state-BsPrOUAh.js.map +1 -0
- package/lib/ui/ActionButton.js.map +1 -1
- package/lib/{useExposedProps-ChOIUaS4.js → useExposedProps-BxyHjPNN.js} +2 -2
- package/lib/{useExposedProps-ChOIUaS4.js.map → useExposedProps-BxyHjPNN.js.map} +1 -1
- package/lib/{ZudokuContext-BKXGJTmu.js → utils-DNAltzXc.js} +153 -152
- package/lib/utils-DNAltzXc.js.map +1 -0
- package/lib/zudoku.auth-auth0.js +1 -1
- package/lib/zudoku.auth-clerk.js +2 -2
- package/lib/zudoku.auth-openid.js +4 -4
- package/lib/zudoku.components.js +672 -650
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.plugin-api-keys.js +5 -5
- package/lib/zudoku.plugin-api-keys.js.map +1 -1
- package/lib/zudoku.plugin-custom-pages.js +2 -2
- package/lib/zudoku.plugin-custom-pages.js.map +1 -1
- package/lib/zudoku.plugin-markdown.js +1 -1
- package/lib/zudoku.plugin-markdown.js.map +1 -1
- package/lib/zudoku.plugin-openapi.js +5 -5
- package/lib/zudoku.plugin-redirect.js.map +1 -1
- package/lib/zudoku.plugin-search-inkeep.js +1 -1
- package/lib/zudoku.plugin-search-inkeep.js.map +1 -1
- package/package.json +2 -2
- package/src/app/main.tsx +4 -4
- package/src/lib/authentication/authentication.ts +2 -2
- package/src/lib/authentication/state.ts +12 -5
- package/{LICENSE.md → src/lib/authentication/use-broadcast/LICENSE.md} +2 -2
- package/src/lib/authentication/use-broadcast/shared.ts +372 -0
- package/src/lib/authentication/use-broadcast/useBroadcast.ts +146 -0
- package/src/lib/components/ClientOnly.tsx +6 -3
- package/src/lib/components/Header.tsx +26 -20
- package/src/lib/components/Zudoku.tsx +113 -0
- package/src/lib/components/context/ZudokuContext.ts +3 -3
- package/src/lib/components/context/ZudokuProvider.tsx +2 -2
- package/src/lib/components/index.ts +2 -3
- package/src/lib/core/{DevPortalContext.ts → ZudokuContext.ts} +5 -5
- package/src/lib/core/plugins.ts +12 -16
- package/src/lib/plugins/api-keys/index.tsx +9 -9
- package/src/lib/plugins/custom-pages/index.tsx +2 -2
- package/src/lib/plugins/markdown/index.tsx +2 -2
- package/src/lib/plugins/openapi/OperationList.tsx +2 -1
- package/src/lib/plugins/openapi/Sidecar.tsx +65 -51
- package/src/lib/plugins/openapi/index.tsx +2 -4
- package/src/lib/plugins/redirect/index.tsx +2 -2
- package/src/lib/plugins/search-inkeep/index.tsx +2 -2
- package/src/lib/ui/ActionButton.tsx +1 -1
- package/src/lib/util/useOnScreen.ts +32 -0
- package/dist/lib/components/DevPortal.js.map +0 -1
- package/dist/lib/core/DevPortalContext.js.map +0 -1
- package/lib/ClientOnly-CVN6leDu.js.map +0 -1
- package/lib/ZudokuContext-BKXGJTmu.js.map +0 -1
- package/lib/index-_gtpPhlu.js.map +0 -1
- package/lib/state-CsuHT8ZO.js +0 -183
- package/lib/state-CsuHT8ZO.js.map +0 -1
- package/src/lib/components/DevPortal.tsx +0 -111
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { j as e } from "./jsx-runtime-B6kdoens.js";
|
|
2
2
|
import { s as T } from "./index-LNp6rxyU.js";
|
|
3
|
-
import { A as k, H as P, u as C } from "./AnchorLink-
|
|
4
|
-
import { L as v } from "./index-
|
|
3
|
+
import { A as k, H as P, u as C } from "./AnchorLink-DYbUOP9U.js";
|
|
4
|
+
import { L as v } from "./index-DM9hrcCG.js";
|
|
5
5
|
import { C as H } from "./CategoryHeading-Bb9dqxD3.js";
|
|
6
|
-
import { u as R, P as S, H as h } from "./Markdown-
|
|
7
|
-
import { a as E, b as I } from "./
|
|
6
|
+
import { u as R, P as S, H as h } from "./Markdown-D6UxMbZm.js";
|
|
7
|
+
import { a as E, b as I } from "./utils-DNAltzXc.js";
|
|
8
8
|
import { c as x } from "./cn-BmFQLtkS.js";
|
|
9
9
|
import { ListTreeIcon as L } from "lucide-react";
|
|
10
10
|
import { useRef as y, useState as _, useEffect as $ } from "react";
|
|
@@ -171,4 +171,4 @@ const N = "data-active", b = ({
|
|
|
171
171
|
export {
|
|
172
172
|
Q as MdxPage
|
|
173
173
|
};
|
|
174
|
-
//# sourceMappingURL=MdxPage-
|
|
174
|
+
//# sourceMappingURL=MdxPage-DRKqyn2b.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MdxPage-DKMH_t0f.js","sources":["../src/lib/plugins/markdown/Toc.tsx","../src/lib/plugins/markdown/MdxPage.tsx"],"sourcesContent":["import type { TocEntry } from \"@stefanprobst/rehype-extract-toc\";\nimport { ListTreeIcon } from \"lucide-react\";\nimport {\n useEffect,\n useRef,\n useState,\n type CSSProperties,\n type PropsWithChildren,\n} from \"react\";\nimport { AnchorLink } from \"../../components/AnchorLink.js\";\nimport { useViewportAnchor } from \"../../components/context/ViewportAnchorContext.js\";\nimport { cn } from \"../../util/cn.js\";\n\nconst DATA_ANCHOR_ATTR = \"data-active\";\n\nconst TocItem = ({\n item,\n children,\n className,\n isActive,\n}: PropsWithChildren<{\n item: TocEntry;\n isActive: boolean;\n className?: string;\n}>) => {\n return (\n <li\n className={cn(\n \"truncate\",\n isActive\n ? \"text-primary\"\n : \"text-foreground/65 dark:text-foreground/75\",\n className,\n )}\n title={item.value}\n >\n <AnchorLink\n to={`#${item.id}`}\n {...{ [DATA_ANCHOR_ATTR]: item.id }}\n className={cn(\n isActive\n ? \"text-primary\"\n : \"text-foreground/65 dark:text-foreground/75 hover:text-foreground\",\n )}\n >\n {item.value}\n </AnchorLink>\n {children}\n </li>\n );\n};\n\nexport const Toc = ({ entries }: { entries: TocEntry[] }) => {\n const { activeAnchor } = useViewportAnchor();\n const listWrapperRef = useRef<HTMLUListElement>(null);\n const paintedOnce = useRef(false);\n const [indicatorStyle, setIndicatorStyles] = useState<CSSProperties>({\n top: 0,\n opacity: 0,\n });\n\n // synchronize active anchor indicator with the scroll position\n useEffect(() => {\n if (!listWrapperRef.current) return;\n\n const activeElement = listWrapperRef.current.querySelector(\n `[${DATA_ANCHOR_ATTR}='${activeAnchor}']`,\n );\n\n if (!activeElement) {\n setIndicatorStyles({ top: 0, opacity: 0 });\n return;\n }\n\n const topParent = listWrapperRef.current.getBoundingClientRect().top;\n const topElement = activeElement.getBoundingClientRect().top;\n\n setIndicatorStyles({\n opacity: 1,\n top: `${topElement - topParent}px`,\n });\n\n if (paintedOnce.current) return;\n\n // after all is painted, the indicator should animate\n requestIdleCallback(() => {\n paintedOnce.current = true;\n });\n }, [activeAnchor]);\n\n return (\n <aside className=\"sticky scrollbar top-[--header-height] h-[calc(100vh-var(--header-height))] pt-[--padding-content-top] pb-[--padding-content-bottom] overflow-y-auto ps-1 text-sm\">\n <div className=\"flex items-center gap-2 font-medium mb-2\">\n <ListTreeIcon size={16} />\n On this page\n </div>\n <div className=\"relative ms-2 ps-4\">\n <div className=\"absolute inset-0 right-auto bg-border w-[2px]\" />\n <div\n className={cn(\n \"absolute -left-px -translate-y-1 h-6 w-[4px] rounded bg-primary\",\n paintedOnce.current &&\n \"ease-out [transition:top_150ms,opacity_325ms]\",\n )}\n style={indicatorStyle}\n />\n <ul\n ref={listWrapperRef}\n className=\"relative font-medium list-none space-y-2\"\n >\n {entries.map((item) => (\n <TocItem\n isActive={item.id === activeAnchor}\n key={item.id}\n item={item}\n className=\"pl-0\"\n >\n {item.children && (\n <ul className=\"list-none pl-4 pt-2 space-y-2\">\n {item.children.map((child) => (\n <TocItem\n item={child}\n isActive={child.id === activeAnchor}\n key={child.id}\n />\n ))}\n </ul>\n )}\n </TocItem>\n ))}\n </ul>\n </div>\n </aside>\n );\n};\n","import { useMDXComponents } from \"@mdx-js/react\";\nimport slugify from \"@sindresorhus/slugify\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { type PropsWithChildren } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { CategoryHeading } from \"../../components/CategoryHeading.js\";\nimport { Heading } from \"../../components/Heading.js\";\nimport { ProseClasses } from \"../../components/Markdown.js\";\nimport {\n useCurrentItem,\n usePrevNext,\n} from \"../../components/navigation/utils.js\";\nimport type { MdxComponentsType } from \"../../util/MdxComponents.js\";\nimport { cn } from \"../../util/cn.js\";\nimport { Toc } from \"./Toc.js\";\nimport { MarkdownPluginDefaultOptions, MDXImport } from \"./index.js\";\n\nconst MarkdownHeadings = {\n h2: ({ children, id }) => (\n <Heading level={2} id={id} registerSidebarAnchor>\n {children}\n </Heading>\n ),\n h3: ({ children, id }) => (\n <Heading level={3} id={id} registerSidebarAnchor>\n {children}\n </Heading>\n ),\n} satisfies MdxComponentsType;\n\nexport const MdxPage = ({\n mdxComponent: MdxComponent,\n frontmatter = {},\n defaultOptions,\n tableOfContents,\n}: PropsWithChildren<\n Omit<MDXImport, \"default\"> & {\n mdxComponent: MDXImport[\"default\"];\n defaultOptions?: MarkdownPluginDefaultOptions;\n }\n>) => {\n const categoryTitle = useCurrentItem()?.categoryLabel;\n const title = frontmatter.title;\n const category = frontmatter.category ?? categoryTitle;\n const hideToc = frontmatter.toc === false || defaultOptions?.toc === false;\n const pageTitle =\n tableOfContents.find((item) => item.depth === 1)?.value ?? title;\n const hidePager =\n frontmatter.disablePager ?? defaultOptions?.disablePager ?? false;\n\n const tocEntries =\n tableOfContents.find((item) => item.depth === 1)?.children ??\n // if `title` is provided by frontmatter it does not appear in the table of contents\n tableOfContents.filter((item) => item.depth === 2);\n\n const showToc = !hideToc && tocEntries.length > 0;\n\n const { prev, next } = usePrevNext();\n\n return (\n <div className=\"xl:grid grid-cols-[--sidecar-grid-cols] gap-8 justify-between\">\n <Helmet>\n <title>{pageTitle}</title>\n </Helmet>\n <div\n className={cn(\n ProseClasses,\n \"max-w-full xl:w-full xl:max-w-prose flex-1 flex-shrink pt-[--padding-content-top] pb-[--padding-content-bottom]\",\n )}\n >\n {(category || title) && (\n <header>\n {category && <CategoryHeading>{category}</CategoryHeading>}\n {title && (\n <Heading level={1} id={slugify(title)}>\n {title}\n </Heading>\n )}\n </header>\n )}\n <MdxComponent\n components={{ ...useMDXComponents(), ...MarkdownHeadings }}\n />\n {!hidePager && (\n <>\n <hr />\n <div className=\"not-prose flex flex-wrap items-center justify-between gap-2 lg:gap-8\">\n {prev ? (\n <Link\n to={prev.id}\n className=\"flex flex-col items-stretch gap-2 flex-1 min-w-max border rounded px-6 py-4 text-start hover:border-primary/85 transition shadow-sm hover:shadow-md\"\n title={prev.label}\n >\n <div className=\"text-sm text-muted-foreground\">\n ← Previous page\n </div>\n <div className=\"text-lg text-primary truncate\">\n {prev.label}\n </div>\n </Link>\n ) : (\n <div className=\"flex-1\" />\n )}\n {next ? (\n <Link\n to={next.id}\n className=\"flex flex-col items-stretch gap-2 flex-1 min-w-max border rounded px-6 py-4 text-end hover:border-primary/85 transition shadow-sm hover:shadow-md\"\n title={next.label}\n >\n <div className=\"text-sm text-muted-foreground\">\n Next page →\n </div>\n <div className=\"text-lg text-primary truncate\">\n {next.label}\n </div>\n </Link>\n ) : (\n <div className=\"flex-1\" />\n )}\n </div>\n </>\n )}\n </div>\n <div className=\"hidden xl:block\">\n {showToc && <Toc entries={tocEntries} />}\n </div>\n </div>\n );\n};\n"],"names":["DATA_ANCHOR_ATTR","TocItem","item","children","className","isActive","jsxs","cn","jsx","AnchorLink","Toc","entries","activeAnchor","useViewportAnchor","listWrapperRef","useRef","paintedOnce","indicatorStyle","setIndicatorStyles","useState","useEffect","activeElement","topParent","topElement","ListTreeIcon","child","MarkdownHeadings","id","Heading","MdxPage","MdxComponent","frontmatter","defaultOptions","tableOfContents","categoryTitle","_a","useCurrentItem","title","category","hideToc","pageTitle","_b","hidePager","tocEntries","_c","showToc","prev","next","usePrevNext","Helmet","ProseClasses","CategoryHeading","slugify","useMDXComponents","Fragment","Link"],"mappings":";;;;;;;;;;AAaA,MAAMA,IAAmB,eAEnBC,IAAU,CAAC;AAAA,EACf,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AACF,MAMIC,gBAAAA,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWC;AAAA,MACT;AAAA,MACAF,IACI,iBACA;AAAA,MACJD;AAAA,IACF;AAAA,IACA,OAAOF,EAAK;AAAA,IAEZ,UAAA;AAAA,MAAAM,gBAAAA,EAAA;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,IAAI,IAAIP,EAAK,EAAE;AAAA,UACT,CAACF,CAAgB,GAAGE,EAAK;AAAA,UAC/B,WAAWK;AAAA,YACTF,IACI,iBACA;AAAA,UACN;AAAA,UAEC,UAAKH,EAAA;AAAA,QAAA;AAAA,MACR;AAAA,MACCC;AAAA,IAAA;AAAA,EAAA;AAAA,GAKMO,IAAM,CAAC,EAAE,SAAAC,QAAuC;AACrD,QAAA,EAAE,cAAAC,MAAiBC,KACnBC,IAAiBC,EAAyB,IAAI,GAC9CC,IAAcD,EAAO,EAAK,GAC1B,CAACE,GAAgBC,CAAkB,IAAIC,EAAwB;AAAA,IACnE,KAAK;AAAA,IACL,SAAS;AAAA,EAAA,CACV;AAGD,SAAAC,EAAU,MAAM;AACV,QAAA,CAACN,EAAe,QAAS;AAEvB,UAAAO,IAAgBP,EAAe,QAAQ;AAAA,MAC3C,IAAId,CAAgB,KAAKY,CAAY;AAAA,IAAA;AAGvC,QAAI,CAACS,GAAe;AAClB,MAAAH,EAAmB,EAAE,KAAK,GAAG,SAAS,EAAG,CAAA;AACzC;AAAA,IACF;AAEA,UAAMI,IAAYR,EAAe,QAAQ,sBAAA,EAAwB,KAC3DS,IAAaF,EAAc,sBAAA,EAAwB;AAOzD,IALmBH,EAAA;AAAA,MACjB,SAAS;AAAA,MACT,KAAK,GAAGK,IAAaD,CAAS;AAAA,IAAA,CAC/B,GAEG,CAAAN,EAAY,WAGhB,oBAAoB,MAAM;AACxB,MAAAA,EAAY,UAAU;AAAA,IAAA,CACvB;AAAA,EAAA,GACA,CAACJ,CAAY,CAAC,GAGfN,gBAAAA,EAAA,KAAC,SAAM,EAAA,WAAU,qKACf,UAAA;AAAA,IAACA,gBAAAA,EAAAA,KAAA,OAAA,EAAI,WAAU,4CACb,UAAA;AAAA,MAACE,gBAAAA,EAAAA,IAAAgB,GAAA,EAAa,MAAM,GAAI,CAAA;AAAA,MAAE;AAAA,IAAA,GAE5B;AAAA,IACAlB,gBAAAA,EAAAA,KAAC,OAAI,EAAA,WAAU,sBACb,UAAA;AAAA,MAACE,gBAAAA,EAAAA,IAAA,OAAA,EAAI,WAAU,gDAAgD,CAAA;AAAA,MAC/DA,gBAAAA,EAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWD;AAAA,YACT;AAAA,YACAS,EAAY,WACV;AAAA,UACJ;AAAA,UACA,OAAOC;AAAA,QAAA;AAAA,MACT;AAAA,MACAT,gBAAAA,EAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAKM;AAAA,UACL,WAAU;AAAA,UAET,UAAAH,EAAQ,IAAI,CAACT,MACZM,gBAAAA,EAAA;AAAA,YAACP;AAAA,YAAA;AAAA,cACC,UAAUC,EAAK,OAAOU;AAAA,cAEtB,MAAAV;AAAA,cACA,WAAU;AAAA,cAET,UAAAA,EAAK,YACJM,gBAAAA,EAAAA,IAAC,MAAG,EAAA,WAAU,iCACX,UAAKN,EAAA,SAAS,IAAI,CAACuB,MAClBjB,gBAAAA,EAAA;AAAA,gBAACP;AAAA,gBAAA;AAAA,kBACC,MAAMwB;AAAA,kBACN,UAAUA,EAAM,OAAOb;AAAA,gBAAA;AAAA,gBAClBa,EAAM;AAAA,cAEd,CAAA,GACH;AAAA,YAAA;AAAA,YAbGvB,EAAK;AAAA,UAAA,CAgBb;AAAA,QAAA;AAAA,MACH;AAAA,IAAA,GACF;AAAA,EACF,EAAA,CAAA;AAEJ,GCrHMwB,IAAmB;AAAA,EACvB,IAAI,CAAC,EAAE,UAAAvB,GAAU,IAAAwB,EAAG,MACjBnB,gBAAAA,EAAA,IAAAoB,GAAA,EAAQ,OAAO,GAAG,IAAAD,GAAQ,uBAAqB,IAC7C,UAAAxB,EACH,CAAA;AAAA,EAEF,IAAI,CAAC,EAAE,UAAAA,GAAU,IAAAwB,EAAG,MACjBnB,gBAAAA,EAAA,IAAAoB,GAAA,EAAQ,OAAO,GAAG,IAAAD,GAAQ,uBAAqB,IAC7C,UAAAxB,EACH,CAAA;AAEJ,GAEa0B,IAAU,CAAC;AAAA,EACtB,cAAcC;AAAA,EACd,aAAAC,IAAc,CAAC;AAAA,EACf,gBAAAC;AAAA,EACA,iBAAAC;AACF,MAKM;;AACE,QAAAC,KAAgBC,IAAAC,EAAkB,MAAlB,gBAAAD,EAAkB,eAClCE,IAAQN,EAAY,OACpBO,IAAWP,EAAY,YAAYG,GACnCK,IAAUR,EAAY,QAAQ,OAASC,KAAA,gBAAAA,EAAgB,SAAQ,IAC/DQ,MACJC,IAAAR,EAAgB,KAAK,CAAC/B,MAASA,EAAK,UAAU,CAAC,MAA/C,gBAAAuC,EAAkD,UAASJ,GACvDK,IACJX,EAAY,iBAAgBC,KAAA,gBAAAA,EAAgB,iBAAgB,IAExDW,MACJC,IAAAX,EAAgB,KAAK,CAAC/B,MAASA,EAAK,UAAU,CAAC,MAA/C,gBAAA0C,EAAkD;AAAA,EAElDX,EAAgB,OAAO,CAAC/B,MAASA,EAAK,UAAU,CAAC,GAE7C2C,IAAU,CAACN,KAAWI,EAAW,SAAS,GAE1C,EAAE,MAAAG,GAAM,MAAAC,EAAK,IAAIC,EAAY;AAGjC,SAAA1C,gBAAAA,EAAA,KAAC,OAAI,EAAA,WAAU,iEACb,UAAA;AAAA,IAAAE,gBAAAA,MAACyC,GACC,EAAA,UAAAzC,gBAAAA,EAAA,IAAC,SAAO,EAAA,UAAAgC,EAAU,CAAA,GACpB;AAAA,IACAlC,gBAAAA,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWC;AAAA,UACT2C;AAAA,UACA;AAAA,QACF;AAAA,QAEE,UAAA;AAAA,WAAYZ,KAAAD,6BACX,UACE,EAAA,UAAA;AAAA,YAAYC,KAAA9B,gBAAAA,EAAAA,IAAC2C,KAAiB,UAASb,EAAA,CAAA;AAAA,YACvCD,2BACET,GAAQ,EAAA,OAAO,GAAG,IAAIwB,EAAQf,CAAK,GACjC,UACHA,EAAA,CAAA;AAAA,UAAA,GAEJ;AAAA,UAEF7B,gBAAAA,EAAA;AAAA,YAACsB;AAAA,YAAA;AAAA,cACC,YAAY,EAAE,GAAGuB,EAAiB,GAAG,GAAG3B,EAAiB;AAAA,YAAA;AAAA,UAC3D;AAAA,UACC,CAACgB,KAEEpC,gBAAAA,EAAAA,KAAAgD,EAAA,UAAA,EAAA,UAAA;AAAA,YAAA9C,gBAAAA,EAAA,IAAC,MAAG,EAAA;AAAA,YACJF,gBAAAA,EAAAA,KAAC,OAAI,EAAA,WAAU,wEACZ,UAAA;AAAA,cACCwC,IAAAxC,gBAAAA,EAAA;AAAA,gBAACiD;AAAA,gBAAA;AAAA,kBACC,IAAIT,EAAK;AAAA,kBACT,WAAU;AAAA,kBACV,OAAOA,EAAK;AAAA,kBAEZ,UAAA;AAAA,oBAACtC,gBAAAA,EAAA,IAAA,OAAA,EAAI,WAAU,iCAAgC,UAE/C,mBAAA;AAAA,oBACCA,gBAAAA,EAAA,IAAA,OAAA,EAAI,WAAU,iCACZ,YAAK,OACR;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAGF,IAAAA,gBAAAA,EAAA,IAAC,OAAI,EAAA,WAAU,SAAS,CAAA;AAAA,cAEzBuC,IACCzC,gBAAAA,EAAA;AAAA,gBAACiD;AAAA,gBAAA;AAAA,kBACC,IAAIR,EAAK;AAAA,kBACT,WAAU;AAAA,kBACV,OAAOA,EAAK;AAAA,kBAEZ,UAAA;AAAA,oBAACvC,gBAAAA,EAAA,IAAA,OAAA,EAAI,WAAU,iCAAgC,UAE/C,eAAA;AAAA,oBACCA,gBAAAA,EAAA,IAAA,OAAA,EAAI,WAAU,iCACZ,YAAK,OACR;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAGF,IAAAA,gBAAAA,EAAA,IAAC,OAAI,EAAA,WAAU,SAAS,CAAA;AAAA,YAAA,GAE5B;AAAA,UAAA,GACF;AAAA,QAAA;AAAA,MAAA;AAAA,IAEJ;AAAA,IACAA,gBAAAA,EAAAA,IAAC,SAAI,WAAU,mBACZ,eAAYA,gBAAAA,EAAA,IAAAE,GAAA,EAAI,SAASiC,EAAA,CAAY,EACxC,CAAA;AAAA,EACF,EAAA,CAAA;AAEJ;"}
|
|
1
|
+
{"version":3,"file":"MdxPage-DRKqyn2b.js","sources":["../src/lib/plugins/markdown/Toc.tsx","../src/lib/plugins/markdown/MdxPage.tsx"],"sourcesContent":["import type { TocEntry } from \"@stefanprobst/rehype-extract-toc\";\nimport { ListTreeIcon } from \"lucide-react\";\nimport {\n useEffect,\n useRef,\n useState,\n type CSSProperties,\n type PropsWithChildren,\n} from \"react\";\nimport { AnchorLink } from \"../../components/AnchorLink.js\";\nimport { useViewportAnchor } from \"../../components/context/ViewportAnchorContext.js\";\nimport { cn } from \"../../util/cn.js\";\n\nconst DATA_ANCHOR_ATTR = \"data-active\";\n\nconst TocItem = ({\n item,\n children,\n className,\n isActive,\n}: PropsWithChildren<{\n item: TocEntry;\n isActive: boolean;\n className?: string;\n}>) => {\n return (\n <li\n className={cn(\n \"truncate\",\n isActive\n ? \"text-primary\"\n : \"text-foreground/65 dark:text-foreground/75\",\n className,\n )}\n title={item.value}\n >\n <AnchorLink\n to={`#${item.id}`}\n {...{ [DATA_ANCHOR_ATTR]: item.id }}\n className={cn(\n isActive\n ? \"text-primary\"\n : \"text-foreground/65 dark:text-foreground/75 hover:text-foreground\",\n )}\n >\n {item.value}\n </AnchorLink>\n {children}\n </li>\n );\n};\n\nexport const Toc = ({ entries }: { entries: TocEntry[] }) => {\n const { activeAnchor } = useViewportAnchor();\n const listWrapperRef = useRef<HTMLUListElement>(null);\n const paintedOnce = useRef(false);\n const [indicatorStyle, setIndicatorStyles] = useState<CSSProperties>({\n top: 0,\n opacity: 0,\n });\n\n // synchronize active anchor indicator with the scroll position\n useEffect(() => {\n if (!listWrapperRef.current) return;\n\n const activeElement = listWrapperRef.current.querySelector(\n `[${DATA_ANCHOR_ATTR}='${activeAnchor}']`,\n );\n\n if (!activeElement) {\n setIndicatorStyles({ top: 0, opacity: 0 });\n return;\n }\n\n const topParent = listWrapperRef.current.getBoundingClientRect().top;\n const topElement = activeElement.getBoundingClientRect().top;\n\n setIndicatorStyles({\n opacity: 1,\n top: `${topElement - topParent}px`,\n });\n\n if (paintedOnce.current) return;\n\n // after all is painted, the indicator should animate\n requestIdleCallback(() => {\n paintedOnce.current = true;\n });\n }, [activeAnchor]);\n\n return (\n <aside className=\"sticky scrollbar top-[--header-height] h-[calc(100vh-var(--header-height))] pt-[--padding-content-top] pb-[--padding-content-bottom] overflow-y-auto ps-1 text-sm\">\n <div className=\"flex items-center gap-2 font-medium mb-2\">\n <ListTreeIcon size={16} />\n On this page\n </div>\n <div className=\"relative ms-2 ps-4\">\n <div className=\"absolute inset-0 right-auto bg-border w-[2px]\" />\n <div\n className={cn(\n \"absolute -left-px -translate-y-1 h-6 w-[4px] rounded bg-primary\",\n paintedOnce.current &&\n \"ease-out [transition:top_150ms,opacity_325ms]\",\n )}\n style={indicatorStyle}\n />\n <ul\n ref={listWrapperRef}\n className=\"relative font-medium list-none space-y-2\"\n >\n {entries.map((item) => (\n <TocItem\n isActive={item.id === activeAnchor}\n key={item.id}\n item={item}\n className=\"pl-0\"\n >\n {item.children && (\n <ul className=\"list-none pl-4 pt-2 space-y-2\">\n {item.children.map((child) => (\n <TocItem\n item={child}\n isActive={child.id === activeAnchor}\n key={child.id}\n />\n ))}\n </ul>\n )}\n </TocItem>\n ))}\n </ul>\n </div>\n </aside>\n );\n};\n","import { useMDXComponents } from \"@mdx-js/react\";\nimport slugify from \"@sindresorhus/slugify\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { type PropsWithChildren } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { CategoryHeading } from \"../../components/CategoryHeading.js\";\nimport { Heading } from \"../../components/Heading.js\";\nimport { ProseClasses } from \"../../components/Markdown.js\";\nimport {\n useCurrentItem,\n usePrevNext,\n} from \"../../components/navigation/utils.js\";\nimport type { MdxComponentsType } from \"../../util/MdxComponents.js\";\nimport { cn } from \"../../util/cn.js\";\nimport { Toc } from \"./Toc.js\";\nimport { MarkdownPluginDefaultOptions, MDXImport } from \"./index.js\";\n\nconst MarkdownHeadings = {\n h2: ({ children, id }) => (\n <Heading level={2} id={id} registerSidebarAnchor>\n {children}\n </Heading>\n ),\n h3: ({ children, id }) => (\n <Heading level={3} id={id} registerSidebarAnchor>\n {children}\n </Heading>\n ),\n} satisfies MdxComponentsType;\n\nexport const MdxPage = ({\n mdxComponent: MdxComponent,\n frontmatter = {},\n defaultOptions,\n tableOfContents,\n}: PropsWithChildren<\n Omit<MDXImport, \"default\"> & {\n mdxComponent: MDXImport[\"default\"];\n defaultOptions?: MarkdownPluginDefaultOptions;\n }\n>) => {\n const categoryTitle = useCurrentItem()?.categoryLabel;\n const title = frontmatter.title;\n const category = frontmatter.category ?? categoryTitle;\n const hideToc = frontmatter.toc === false || defaultOptions?.toc === false;\n const pageTitle =\n tableOfContents.find((item) => item.depth === 1)?.value ?? title;\n const hidePager =\n frontmatter.disablePager ?? defaultOptions?.disablePager ?? false;\n\n const tocEntries =\n tableOfContents.find((item) => item.depth === 1)?.children ??\n // if `title` is provided by frontmatter it does not appear in the table of contents\n tableOfContents.filter((item) => item.depth === 2);\n\n const showToc = !hideToc && tocEntries.length > 0;\n\n const { prev, next } = usePrevNext();\n\n return (\n <div className=\"xl:grid grid-cols-[--sidecar-grid-cols] gap-8 justify-between\">\n <Helmet>\n <title>{pageTitle}</title>\n </Helmet>\n <div\n className={cn(\n ProseClasses,\n \"max-w-full xl:w-full xl:max-w-prose flex-1 flex-shrink pt-[--padding-content-top] pb-[--padding-content-bottom]\",\n )}\n >\n {(category || title) && (\n <header>\n {category && <CategoryHeading>{category}</CategoryHeading>}\n {title && (\n <Heading level={1} id={slugify(title)}>\n {title}\n </Heading>\n )}\n </header>\n )}\n <MdxComponent\n components={{ ...useMDXComponents(), ...MarkdownHeadings }}\n />\n {!hidePager && (\n <>\n <hr />\n <div className=\"not-prose flex flex-wrap items-center justify-between gap-2 lg:gap-8\">\n {prev ? (\n <Link\n to={prev.id}\n className=\"flex flex-col items-stretch gap-2 flex-1 min-w-max border rounded px-6 py-4 text-start hover:border-primary/85 transition shadow-sm hover:shadow-md\"\n title={prev.label}\n >\n <div className=\"text-sm text-muted-foreground\">\n ← Previous page\n </div>\n <div className=\"text-lg text-primary truncate\">\n {prev.label}\n </div>\n </Link>\n ) : (\n <div className=\"flex-1\" />\n )}\n {next ? (\n <Link\n to={next.id}\n className=\"flex flex-col items-stretch gap-2 flex-1 min-w-max border rounded px-6 py-4 text-end hover:border-primary/85 transition shadow-sm hover:shadow-md\"\n title={next.label}\n >\n <div className=\"text-sm text-muted-foreground\">\n Next page →\n </div>\n <div className=\"text-lg text-primary truncate\">\n {next.label}\n </div>\n </Link>\n ) : (\n <div className=\"flex-1\" />\n )}\n </div>\n </>\n )}\n </div>\n <div className=\"hidden xl:block\">\n {showToc && <Toc entries={tocEntries} />}\n </div>\n </div>\n );\n};\n"],"names":["DATA_ANCHOR_ATTR","TocItem","item","children","className","isActive","jsxs","cn","jsx","AnchorLink","Toc","entries","activeAnchor","useViewportAnchor","listWrapperRef","useRef","paintedOnce","indicatorStyle","setIndicatorStyles","useState","useEffect","activeElement","topParent","topElement","ListTreeIcon","child","MarkdownHeadings","id","Heading","MdxPage","MdxComponent","frontmatter","defaultOptions","tableOfContents","categoryTitle","_a","useCurrentItem","title","category","hideToc","pageTitle","_b","hidePager","tocEntries","_c","showToc","prev","next","usePrevNext","Helmet","ProseClasses","CategoryHeading","slugify","useMDXComponents","Fragment","Link"],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { j as e } from "./jsx-runtime-B6kdoens.js";
|
|
2
|
-
import { g as v, u as I, a as w, S as k, C as $, b as L, E as R } from "./index-
|
|
2
|
+
import { g as v, u as I, a as w, S as k, C as $, b as L, E as R } from "./index-BRg5pi5D.js";
|
|
3
3
|
import { C as O } from "./CategoryHeading-Bb9dqxD3.js";
|
|
4
4
|
import { D as z } from "./DeveloperHint-DHdLXGHA.js";
|
|
5
|
-
import { I as b, M as x, H as h, P as u, S as E } from "./Markdown-
|
|
5
|
+
import { I as b, M as x, H as h, P as u, S as E } from "./Markdown-D6UxMbZm.js";
|
|
6
6
|
import { c as j } from "./cn-BmFQLtkS.js";
|
|
7
7
|
import { CheckIcon as F, CopyIcon as D, ChevronDownIcon as H, CircleFadingPlusIcon as B, CircleDotIcon as M, CircleIcon as G, SquareMinusIcon as Q, SquarePlusIcon as V, ListPlusIcon as _ } from "lucide-react";
|
|
8
8
|
import { useTransition as J, useState as y, useCallback as K } from "react";
|
|
9
|
-
import { a as U } from "./state-
|
|
9
|
+
import { a as U } from "./state-BsPrOUAh.js";
|
|
10
10
|
import { Button as q } from "./ui/Button.js";
|
|
11
11
|
import { Tabs as W, TabsList as Z, TabsTrigger as X, TabsContent as Y } from "./ui/Tabs.js";
|
|
12
12
|
import { S as ee } from "./StaggeredRender-DDHSzQKE.js";
|
|
@@ -595,7 +595,7 @@ const ie = v(
|
|
|
595
595
|
),
|
|
596
596
|
/* @__PURE__ */ e.jsx("hr", {}),
|
|
597
597
|
/* @__PURE__ */ e.jsx("div", { className: "my-4 flex justify-end", children: /* @__PURE__ */ e.jsx(oe, {}) }),
|
|
598
|
-
i.data.schema.tags.filter((a) => a.operations.length > 0).map((a) => /* @__PURE__ */ e.jsxs("div", { children: [
|
|
598
|
+
i.data.schema.tags.filter((a) => a.operations.length > 0).map((a) => /* @__PURE__ */ e.jsxs("div", { className: "[content-visibility:auto]", children: [
|
|
599
599
|
a.name && /* @__PURE__ */ e.jsx(O, { children: a.name }),
|
|
600
600
|
a.description && /* @__PURE__ */ e.jsx(
|
|
601
601
|
x,
|
|
@@ -618,4 +618,4 @@ export {
|
|
|
618
618
|
He as OperationList,
|
|
619
619
|
Oe as OperationsFragment
|
|
620
620
|
};
|
|
621
|
-
//# sourceMappingURL=OperationList-
|
|
621
|
+
//# sourceMappingURL=OperationList-BHUBGM0c.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OperationList-BjppA5yM.js","sources":["../src/lib/plugins/openapi/graphql/fragment-masking.ts","../src/lib/plugins/openapi/Endpoint.tsx","../src/lib/util/groupBy.ts","../src/lib/util/renderIf.ts","../src/lib/plugins/openapi/ParameterListItem.tsx","../src/lib/plugins/openapi/ParameterList.tsx","../src/lib/util/objectEntries.ts","../src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.tsx","../src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.tsx","../src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.tsx","../src/lib/plugins/openapi/schema/utils.ts","../src/lib/plugins/openapi/schema/SchemaComponents.tsx","../src/lib/plugins/openapi/schema/SchemaView.tsx","../src/lib/plugins/openapi/OperationListItem.tsx","../src/lib/plugins/openapi/OperationList.tsx"],"sourcesContent":["/* eslint-disable */\nimport type {\n DocumentTypeDecoration,\n ResultOf,\n TypedDocumentNode,\n} from \"@graphql-typed-document-node/core\";\nimport type { FragmentDefinitionNode } from \"graphql\";\nimport type { Incremental } from \"./graphql.js\";\n\nexport type FragmentType<\n TDocumentType extends DocumentTypeDecoration<any, any>,\n> =\n TDocumentType extends DocumentTypeDecoration<infer TType, any>\n ? [TType] extends [{ \" $fragmentName\"?: infer TKey }]\n ? TKey extends string\n ? { \" $fragmentRefs\"?: { [key in TKey]: TType } }\n : never\n : never\n : never;\n\n// return non-nullable if `fragmentType` is non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>>,\n): TType;\n// return nullable if `fragmentType` is undefined\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | undefined,\n): TType | undefined;\n// return nullable if `fragmentType` is nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | null,\n): TType | null;\n// return nullable if `fragmentType` is nullable or undefined\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | null\n | undefined,\n): TType | null | undefined;\n// return array of non-nullable if `fragmentType` is array of non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: Array<FragmentType<DocumentTypeDecoration<TType, any>>>,\n): Array<TType>;\n// return array of nullable if `fragmentType` is array of nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | Array<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined,\n): Array<TType> | null | undefined;\n// return readonly array of non-nullable if `fragmentType` is array of non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>,\n): ReadonlyArray<TType>;\n// return readonly array of nullable if `fragmentType` is array of nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined,\n): ReadonlyArray<TType> | null | undefined;\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | Array<FragmentType<DocumentTypeDecoration<TType, any>>>\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined,\n): TType | Array<TType> | ReadonlyArray<TType> | null | undefined {\n return fragmentType as any;\n}\n\nexport function makeFragmentData<\n F extends DocumentTypeDecoration<any, any>,\n FT extends ResultOf<F>,\n>(data: FT, _fragment: F): FragmentType<F> {\n return data as FragmentType<F>;\n}\nexport function isFragmentReady<TQuery, TFrag>(\n queryNode: DocumentTypeDecoration<TQuery, any>,\n fragmentNode: TypedDocumentNode<TFrag>,\n data:\n | FragmentType<TypedDocumentNode<Incremental<TFrag>, any>>\n | null\n | undefined,\n): data is FragmentType<typeof fragmentNode> {\n const deferredFields = (\n queryNode as {\n __meta__?: { deferredFields: Record<string, (keyof TFrag)[]> };\n }\n ).__meta__?.deferredFields;\n\n if (!deferredFields) return true;\n\n const fragDef = fragmentNode.definitions[0] as\n | FragmentDefinitionNode\n | undefined;\n const fragName = fragDef?.name?.value;\n\n const fields = (fragName && deferredFields[fragName]) || [];\n return fields.length > 0 && fields.every((field) => data && field in data);\n}\n","import { CheckIcon, CopyIcon } from \"lucide-react\";\nimport { useState, useTransition } from \"react\";\nimport { useQuery } from \"urql\";\nimport { useSelectedServerStore } from \"../../authentication/state.js\";\nimport { InlineCode } from \"../../components/InlineCode.js\";\nimport { Button } from \"../../ui/Button.js\";\nimport { useOasConfig } from \"./context.js\";\nimport { graphql } from \"./graphql/index.js\";\nimport { SimpleSelect } from \"./SimpleSelect.js\";\n\nconst ServersQuery = graphql(/* GraphQL */ `\n query ServersQuery($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n servers {\n url\n }\n }\n }\n`);\n\nconst CopyButton = ({ url }: { url: string }) => {\n const [isCopied, setIsCopied] = useState(false);\n\n return (\n <Button\n onClick={() => {\n void navigator.clipboard.writeText(url).then(() => {\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), 2000);\n });\n }}\n variant=\"ghost\"\n size=\"icon\"\n >\n {isCopied ? (\n <CheckIcon className=\"text-green-600\" size={14} />\n ) : (\n <CopyIcon size={14} strokeWidth={1.3} />\n )}\n </Button>\n );\n};\n\nconst context = { suspense: true } as const;\n\nexport const Endpoint = () => {\n const [result] = useQuery({\n query: ServersQuery,\n variables: useOasConfig(),\n context,\n });\n const [, startTransition] = useTransition();\n const { selectedServer, setSelectedServer } = useSelectedServerStore();\n\n if (!result.data) return null;\n\n const { servers } = result.data.schema;\n\n if (servers.length === 1) {\n return (\n <div className=\"flex items-center gap-2\">\n <span className=\"font-medium text-sm\">Endpoint:</span>\n <InlineCode className=\"text-xs px-2 py-1.5\" selectOnClick>\n {servers[0]!.url}\n </InlineCode>\n <CopyButton url={servers[0]!.url} />\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-wrap items-center gap-2\">\n <span className=\"font-medium text-sm\">\n {servers.length > 1 ? \"Endpoints\" : \"Endpoint\"}:\n </span>\n\n <SimpleSelect\n className=\"font-mono text-xs bg-border/50 dark:bg-border/70 py-1.5 max-w-[450px] truncate\"\n onChange={(e) =>\n startTransition(() => {\n setSelectedServer(e.target.value);\n })\n }\n value={selectedServer ?? result.data.schema.url}\n showChevrons={servers.length > 1}\n options={servers.map((server) => ({\n value: server.url,\n label: server.url,\n }))}\n />\n <CopyButton url={selectedServer ?? result.data.schema.url} />\n </div>\n );\n};\n","export const groupBy = <\n T extends Record<PropertyKey, any>,\n KeySelector extends (item: T) => PropertyKey,\n>(\n arr: T[],\n keySelector: KeySelector,\n): Partial<Record<ReturnType<KeySelector>, T[]>> => {\n return arr.reduce(\n (accumulator, val) => {\n const groupedKey = keySelector(val) as ReturnType<KeySelector>;\n if (!accumulator[groupedKey]) {\n accumulator[groupedKey] = [];\n }\n accumulator[groupedKey].push(val);\n return accumulator;\n },\n {} as Record<ReturnType<KeySelector>, T[]>,\n );\n};\n","export const renderIf = <G, R>(\n variable: G | undefined | null,\n callback: (variable: G) => R,\n): R | undefined => (variable ? callback(variable) : undefined);\n","import { Markdown } from \"../../components/Markdown.js\";\nimport { type SchemaObject } from \"../../oas/graphql/index.js\";\nimport { ColorizedParam } from \"./ColorizedParam.js\";\nimport type { OperationListItemResult } from \"./OperationList.js\";\nimport type { ParameterGroup } from \"./OperationListItem.js\";\n\nconst getParameterSchema = (\n parameter: ParameterListItemResult,\n): SchemaObject => {\n if (parameter.schema != null && typeof parameter.schema === \"object\") {\n return parameter.schema;\n }\n return {\n type: \"string\",\n };\n};\n\nexport type ParameterListItemResult = NonNullable<\n OperationListItemResult[\"parameters\"]\n>[number];\n\nexport const ParameterListItem = ({\n parameter,\n group,\n id,\n}: {\n parameter: ParameterListItemResult;\n group: ParameterGroup;\n id: string;\n}) => {\n const paramSchema = getParameterSchema(parameter);\n\n return (\n <li className=\"p-4 bg-border/20 text-sm flex flex-col gap-1\">\n <div className=\"flex items-center gap-2\">\n <code>\n {group === \"path\" ? (\n <ColorizedParam\n name={parameter.name}\n backgroundOpacity=\"15%\"\n slug={id + \"-\" + parameter.name.toLocaleLowerCase()}\n />\n ) : (\n parameter.name\n )}\n </code>\n {parameter.required && (\n <span className=\"py-px px-1.5 font-medium bg-primary/75 text-muted rounded-lg\">\n required\n </span>\n )}\n {paramSchema.type && (\n <span className=\"text-muted-foreground\">\n {paramSchema.type === \"array\"\n ? `${paramSchema.items.type}[]`\n : paramSchema.type}\n </span>\n )}\n </div>\n {parameter.description && (\n <Markdown\n content={parameter.description}\n className=\"text-sm prose-p:my-1 prose-code:whitespace-pre-line\"\n />\n )}\n </li>\n );\n};\n","import { Heading } from \"../../components/Heading.js\";\nimport { Card } from \"../../ui/Card.js\";\nimport type { ParameterGroup } from \"./OperationListItem.js\";\nimport {\n ParameterListItem,\n type ParameterListItemResult,\n} from \"./ParameterListItem.js\";\n\nexport const ParameterList = ({\n group,\n parameters,\n id,\n}: {\n group: ParameterGroup;\n parameters: ParameterListItemResult[];\n id: string;\n}) => (\n <>\n <Heading level={3} id={`${id}/${group}-parameters`} className=\"capitalize\">\n {group === \"header\" ? \"Headers\" : `${group} Parameters`}\n </Heading>\n <Card>\n <ul className=\"list-none m-0 px-0 divide-y \">\n {parameters\n .sort((a, b) => (a.required === b.required ? 0 : a.required ? -1 : 1))\n .map((parameter) => (\n <ParameterListItem\n key={`${parameter.name}-${parameter.in}`}\n parameter={parameter}\n id={id}\n group={group}\n />\n ))}\n </ul>\n </Card>\n </>\n);\n","type ValueOf<T> = T[keyof T];\ntype Entries<T> = [keyof T, ValueOf<T>][];\n\nexport const objectEntries = <T extends object>(obj: T): Entries<T> =>\n Object.entries(obj) as Entries<T>;\n","import {\n ChevronDownIcon,\n CircleDotIcon,\n CircleFadingPlusIcon,\n CircleIcon,\n} from \"lucide-react\";\nimport { cn } from \"../../../../util/cn.js\";\n\nimport type { LogicalGroupType } from \"../utils.js\";\n\nconst iconMap = {\n AND: <CircleFadingPlusIcon size={16} className=\"fill-card\" />,\n OR: <CircleDotIcon size={16} className=\"fill-card\" />,\n ONE: <CircleIcon size={14} className=\"fill-card\" />,\n} as const;\n\nconst colorClass = {\n AND: \"text-green-500 dark:text-green-300/60\",\n OR: \"text-blue-400 dark:text-blue-500\",\n ONE: \"text-purple-500 dark:text-purple-300/60\",\n} as const;\n\nexport const LogicalGroupConnector = ({\n type,\n isOpen,\n className,\n}: {\n type: LogicalGroupType;\n isOpen: boolean;\n className?: string;\n}) => {\n return (\n <div\n className={cn(\n colorClass[type],\n \"relative text-sm flex py-2\",\n \"before:border-l before:absolute before:-top-2 before:-bottom-2 before:border-border before:border-dashed before:content-['']\",\n className,\n )}\n >\n <div className=\"-translate-x-[7px] flex gap-1 items-center\">\n {iconMap[type]}\n <div\n className={cn(\n \"translate-y-px mx-px opacity-0 group-hover:opacity-100 transition\",\n !isOpen && \"-rotate-90\",\n )}\n >\n <ChevronDownIcon size={16} />\n </div>\n </div>\n </div>\n );\n};\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { useState } from \"react\";\nimport type { SchemaObject } from \"../../../../oas/parser/index.js\";\nimport { SchemaView } from \"../SchemaView.js\";\nimport type { LogicalGroupType } from \"../utils.js\";\nimport { LogicalGroupConnector } from \"./LogicalGroupConnector.js\";\n\nexport const LogicalGroupItem = (props: {\n type: LogicalGroupType;\n schema: SchemaObject;\n level: number;\n}) => {\n const [isOpen, setIsOpen] = useState(true);\n\n return (\n <Collapsible.Root\n open={isOpen}\n onOpenChange={() => setIsOpen((prev) => !prev)}\n className=\"group\"\n >\n <Collapsible.Trigger>\n <LogicalGroupConnector type={props.type} isOpen={isOpen} />\n </Collapsible.Trigger>\n {!isOpen && <div className=\"wavy-line bg-border translate-y-1\" />}\n <Collapsible.Content>\n <SchemaView schema={props.schema} level={props.level + 1} />\n </Collapsible.Content>\n </Collapsible.Root>\n );\n};\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { SquareMinusIcon, SquarePlusIcon } from \"lucide-react\";\nimport type { SchemaObject } from \"../../../../oas/parser/index.js\";\nimport { Card } from \"../../../../ui/Card.js\";\nimport type { LogicalGroupType } from \"../utils.js\";\nimport { LogicalGroupItem } from \"./LogicalGroupItem.js\";\n\nconst typeLabel = {\n AND: \"All of\",\n OR: \"Any of\",\n ONE: \"One of\",\n};\n\nexport const LogicalGroup = ({\n schemas,\n type,\n isOpen,\n level,\n toggleOpen,\n}: {\n schemas: SchemaObject[];\n type: LogicalGroupType;\n isOpen: boolean;\n toggleOpen: () => void;\n level: number;\n}) => (\n <Collapsible.Root open={isOpen} onOpenChange={toggleOpen} asChild>\n <Card className=\"px-6\">\n <Collapsible.Trigger className=\"flex gap-2 items-center py-2 w-full text-sm text-muted-foreground -translate-x-1.5\">\n {isOpen ? <SquareMinusIcon size={14} /> : <SquarePlusIcon size={14} />}\n <span>{typeLabel[type]}</span>\n </Collapsible.Trigger>\n\n <Collapsible.Content className=\"pb-4\">\n {schemas.map((subSchema, index) => (\n // eslint-disable-next-line react/no-array-index-key\n <LogicalGroupItem\n key={index}\n type={type}\n schema={subSchema}\n level={level}\n />\n ))}\n </Collapsible.Content>\n </Card>\n </Collapsible.Root>\n);\n","import type { SchemaObject } from \"../../../oas/parser/index.js\";\n\nexport const isComplexType = (value: SchemaObject) =>\n value.type === \"object\" ||\n (value.type === \"array\" &&\n typeof value.items === \"object\" &&\n (!value.items.type || value.items.type === \"object\"));\n\nexport const hasLogicalGroupings = (value: SchemaObject) =>\n Boolean(value.oneOf ?? value.allOf ?? value.anyOf);\n\nexport const LogicalSchemaTypeMap = {\n allOf: \"AND\",\n anyOf: \"OR\",\n oneOf: \"ONE\",\n} as const;\n\nexport type LogicalGroupType = \"AND\" | \"OR\" | \"ONE\";\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { ListPlusIcon } from \"lucide-react\";\nimport { useCallback, useState } from \"react\";\nimport { Markdown, ProseClasses } from \"../../../components/Markdown.js\";\nimport type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { Button } from \"../../../ui/Button.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { objectEntries } from \"../../../util/objectEntries.js\";\nimport { LogicalGroup } from \"./LogicalGroup/LogicalGroup.js\";\nimport { SchemaView } from \"./SchemaView.js\";\nimport {\n hasLogicalGroupings,\n isComplexType,\n LogicalSchemaTypeMap,\n} from \"./utils.js\";\n\nexport const SchemaLogicalGroup = ({\n schema,\n level,\n}: {\n schema: SchemaObject;\n level: number;\n}) => {\n const [isOpen, setIsOpen] = useState(true);\n const toggleOpen = useCallback(() => setIsOpen((prev) => !prev), []);\n\n for (const [key, type] of objectEntries(LogicalSchemaTypeMap)) {\n if (!schema[key]) continue;\n\n return (\n <LogicalGroup\n schemas={schema[key]}\n type={type}\n isOpen={isOpen}\n toggleOpen={toggleOpen}\n level={level}\n />\n );\n }\n};\n\nexport const SchemaPropertyItem = ({\n name,\n schema,\n group,\n level,\n defaultOpen = false,\n showCollapseButton = true,\n}: {\n name: string;\n schema: SchemaObject;\n group: \"required\" | \"optional\" | \"deprecated\";\n level: number;\n defaultOpen?: boolean;\n showCollapseButton?: boolean;\n}) => {\n const [isOpen, setIsOpen] = useState(defaultOpen);\n\n return (\n <li className=\"p-4 bg-border/20 hover:bg-border/30\">\n <div className=\"flex flex-col gap-1 justify-between text-sm\">\n <div className=\"flex gap-2 items-center\">\n <code>{name}</code>\n <span className=\"text-muted-foreground\">\n {schema.type === \"array\" && schema.items.type ? (\n <span>{schema.items.type}[]</span>\n ) : Array.isArray(schema.type) ? (\n <span>{schema.type.join(\" | \")}</span>\n ) : (\n <span>{schema.type}</span>\n )}\n </span>\n {group === \"optional\" && (\n <span className=\"py-px px-1.5 font-medium border rounded-lg\">\n optional\n </span>\n )}\n </div>\n\n {schema.description && (\n <Markdown\n className={cn(ProseClasses, \"text-sm leading-normal line-clamp-4\")}\n content={schema.description}\n />\n )}\n\n {(hasLogicalGroupings(schema) || isComplexType(schema)) && (\n <Collapsible.Root\n defaultOpen={defaultOpen}\n open={isOpen}\n onOpenChange={() => setIsOpen(!isOpen)}\n >\n {showCollapseButton && (\n <Collapsible.Trigger asChild>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"mt-2 flex gap-1.5\"\n >\n <ListPlusIcon size={18} />\n {!isOpen\n ? \"Show nested properties\"\n : \"Hide nested properties\"}\n </Button>\n </Collapsible.Trigger>\n )}\n <Collapsible.Content>\n <div className=\"mt-2\">\n {hasLogicalGroupings(schema) ? (\n <SchemaLogicalGroup schema={schema} level={level + 1} />\n ) : schema.type === \"object\" ? (\n <SchemaView schema={schema} level={level + 1} />\n ) : (\n schema.type === \"array\" &&\n typeof schema.items === \"object\" && (\n <SchemaView schema={schema.items} level={level + 1} />\n )\n )}\n </div>\n </Collapsible.Content>\n </Collapsible.Root>\n )}\n </div>\n </li>\n );\n};\n","import { Markdown, ProseClasses } from \"../../../components/Markdown.js\";\nimport type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { Card, CardContent, CardHeader, CardTitle } from \"../../../ui/Card.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { groupBy } from \"../../../util/groupBy.js\";\nimport { SchemaLogicalGroup, SchemaPropertyItem } from \"./SchemaComponents.js\";\nimport { hasLogicalGroupings } from \"./utils.js\";\n\nexport const SchemaView = ({\n schema,\n level = 0,\n defaultOpen = false,\n}: {\n schema?: SchemaObject | null;\n level?: number;\n defaultOpen?: boolean;\n}) => {\n if (!schema || Object.keys(schema).length === 0) {\n return (\n <Card className=\"p-4\">\n <span className=\"text-sm text-muted-foreground italic\">\n No response specified\n </span>\n </Card>\n );\n }\n\n const renderSchema = (schema: SchemaObject, level: number) => {\n if (hasLogicalGroupings(schema)) {\n return <SchemaLogicalGroup schema={schema} level={level} />;\n }\n\n // Sometimes items is not defined\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (schema.type === \"array\" && schema.items) {\n const itemsSchema = schema.items as SchemaObject;\n\n if (\n typeof itemsSchema.type === \"string\" &&\n [\"string\", \"number\", \"boolean\", \"integer\"].includes(itemsSchema.type)\n ) {\n return (\n <Card className=\"p-4\">\n <span className=\"text-sm text-muted-foreground\">\n {itemsSchema.type}[]\n </span>\n {schema.description && (\n <Markdown\n className={cn(\n ProseClasses,\n \"text-sm leading-normal line-clamp-4\",\n )}\n content={schema.description}\n />\n )}\n </Card>\n );\n } else if (itemsSchema.type === \"object\") {\n return (\n <Card className=\"flex flex-col gap-2 bg-border/30 p-4\">\n <span className=\"text-sm text-muted-foreground\">object[]</span>\n {renderSchema(itemsSchema, level + 1)}\n </Card>\n );\n } else {\n return renderSchema(itemsSchema, level + 1);\n }\n }\n\n if (\n schema.type === \"object\" &&\n (!schema.properties || Object.keys(schema.properties).length === 0)\n ) {\n return (\n <Card className=\"p-4 flex gap-2 items-center\">\n {\"name\" in schema && <>{schema.name}</>}\n <span className=\"text-sm text-muted-foreground\">object</span>\n {schema.description && (\n <Markdown\n className={cn(\n ProseClasses,\n \"text-sm leading-normal line-clamp-4\",\n )}\n content={schema.description}\n />\n )}\n </Card>\n );\n }\n\n if (schema.properties) {\n const groupedProperties = groupBy(\n Object.entries(schema.properties),\n ([propertyName, property]) => {\n return property.deprecated\n ? \"deprecated\"\n : schema.required?.includes(propertyName)\n ? \"required\"\n : \"optional\";\n },\n );\n\n const groupNames = [\"required\", \"optional\", \"deprecated\"] as const;\n\n return (\n <Card className=\"divide-y overflow-hidden\">\n {groupNames.map(\n (group) =>\n groupedProperties[group] && (\n <ul key={group} className=\"divide-y\">\n {groupedProperties[group].map(([name, schema]) => (\n <SchemaPropertyItem\n key={name}\n name={name}\n schema={schema}\n group={group}\n level={level}\n defaultOpen={defaultOpen}\n />\n ))}\n </ul>\n ),\n )}\n </Card>\n );\n }\n\n if (\n typeof schema.type === \"string\" &&\n [\"string\", \"number\", \"boolean\", \"integer\", \"null\"].includes(schema.type)\n ) {\n return (\n <Card className=\"p-4\">\n <span className=\"text-sm text-muted-foreground\">{schema.type}</span>\n {schema.description && (\n <Markdown\n className={cn(\n ProseClasses,\n \"text-sm leading-normal line-clamp-4\",\n )}\n content={schema.description}\n />\n )}\n </Card>\n );\n }\n\n if (schema.additionalProperties) {\n return (\n <Card className=\"my-2\">\n <CardHeader>\n <CardTitle>Additional Properties:</CardTitle>\n </CardHeader>\n <CardContent>\n {renderSchema(\n schema.additionalProperties as SchemaObject,\n level + 1,\n )}\n </CardContent>\n </Card>\n );\n }\n\n return null;\n };\n\n return renderSchema(schema, level);\n};\n","import { useState } from \"react\";\nimport { Heading } from \"../../components/Heading.js\";\nimport { Markdown, ProseClasses } from \"../../components/Markdown.js\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"../../ui/Tabs.js\";\nimport { groupBy } from \"../../util/groupBy.js\";\nimport { renderIf } from \"../../util/renderIf.js\";\nimport { OperationsFragment } from \"./OperationList.js\";\nimport { ParameterList } from \"./ParameterList.js\";\nimport { Sidecar } from \"./Sidecar.js\";\nimport { FragmentType, useFragment } from \"./graphql/index.js\";\nimport { SchemaView } from \"./schema/SchemaView.js\";\n\nexport const PARAM_GROUPS = [\"path\", \"query\", \"header\", \"cookie\"] as const;\nexport type ParameterGroup = (typeof PARAM_GROUPS)[number];\n\nexport const OperationListItem = ({\n operationFragment,\n}: {\n operationFragment: FragmentType<typeof OperationsFragment>;\n}) => {\n const operation = useFragment(OperationsFragment, operationFragment);\n const groupedParameters = groupBy(\n operation.parameters ?? [],\n (param) => param.in,\n );\n\n const first = operation.responses.at(0);\n const [selectedResponse, setSelectedResponse] = useState(first?.statusCode);\n\n return (\n <div\n key={operation.operationId}\n className=\"grid grid-cols-1 lg:grid-cols-[4fr_3fr] gap-8 items-start border-b-2 mb-16 pb-16\"\n >\n <div className=\"flex flex-col gap-4\">\n <Heading level={2} id={operation.slug} registerSidebarAnchor>\n {operation.summary}\n </Heading>\n {operation.description && (\n <Markdown\n className={`${ProseClasses} max-w-full prose-img:max-w-prose`}\n content={operation.description}\n />\n )}\n {operation.parameters && operation.parameters.length > 0 && (\n <>\n {PARAM_GROUPS.flatMap((group) =>\n groupedParameters[group]?.length ? (\n <ParameterList\n key={group}\n id={operation.slug}\n parameters={groupedParameters[group]}\n group={group}\n />\n ) : (\n []\n ),\n )}\n </>\n )}\n {renderIf(operation.requestBody?.content?.at(0)?.schema, (schema) => (\n <div className=\"mt-4 flex flex-col gap-4\">\n <Heading\n level={3}\n className=\"capitalize\"\n id={`${operation.slug}/request-body`}\n registerSidebarAnchor\n >\n Request Body\n </Heading>\n <SchemaView schema={schema} />\n </div>\n ))}\n {operation.responses.length > 0 && (\n <>\n <Heading\n level={3}\n className=\"capitalize mt-8 pt-8 border-t\"\n id={`${operation.slug}/responses`}\n registerSidebarAnchor\n >\n Responses\n </Heading>\n <Tabs\n onValueChange={(value) => setSelectedResponse(value)}\n value={selectedResponse}\n >\n {operation.responses.length > 1 && (\n <TabsList>\n {operation.responses.map((response) => (\n <TabsTrigger\n value={response.statusCode}\n key={response.statusCode}\n title={response.description ?? undefined}\n >\n {response.statusCode}\n </TabsTrigger>\n ))}\n </TabsList>\n )}\n <ul className=\"list-none m-0 px-0\">\n {operation.responses.map((response) => (\n <TabsContent\n value={response.statusCode}\n key={response.statusCode}\n >\n <SchemaView\n schema={\n response.content?.find((content) => content.schema)\n ?.schema\n }\n />\n </TabsContent>\n ))}\n </ul>\n </Tabs>\n </>\n )}\n </div>\n\n <Sidecar\n selectedResponse={selectedResponse}\n onSelectResponse={setSelectedResponse}\n operation={operation}\n />\n </div>\n );\n};\n","import { ResultOf } from \"@graphql-typed-document-node/core\";\nimport { useQuery } from \"urql\";\nimport { CategoryHeading } from \"../../components/CategoryHeading.js\";\nimport { DeveloperHint } from \"../../components/DeveloperHint.js\";\nimport { ErrorPage } from \"../../components/ErrorPage.js\";\nimport { Heading } from \"../../components/Heading.js\";\nimport { InlineCode } from \"../../components/InlineCode.js\";\nimport { Markdown, ProseClasses } from \"../../components/Markdown.js\";\nimport { SyntaxHighlight } from \"../../components/SyntaxHighlight.js\";\nimport { cn } from \"../../util/cn.js\";\nimport { Endpoint } from \"./Endpoint.js\";\nimport { OperationListItem } from \"./OperationListItem.js\";\nimport StaggeredRender from \"./StaggeredRender.js\";\nimport { useOasConfig } from \"./context.js\";\nimport { graphql } from \"./graphql/index.js\";\n\nexport const OperationsFragment = graphql(/* GraphQL */ `\n fragment OperationsFragment on OperationItem {\n slug\n summary\n method\n description\n operationId\n contentTypes\n path\n parameters {\n name\n in\n description\n required\n schema\n style\n examples {\n name\n description\n externalValue\n value\n summary\n }\n }\n requestBody {\n content {\n mediaType\n encoding {\n name\n }\n examples {\n name\n description\n externalValue\n value\n summary\n }\n schema\n }\n description\n required\n }\n responses {\n statusCode\n links\n description\n content {\n examples {\n name\n description\n externalValue\n value\n summary\n }\n mediaType\n encoding {\n name\n }\n schema\n }\n }\n }\n`);\n\nexport type OperationListItemResult = ResultOf<typeof OperationsFragment>;\n\nconst AllOperationsQuery = graphql(/* GraphQL */ `\n query AllOperations($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n description\n title\n url\n version\n tags {\n name\n description\n operations {\n slug\n ...OperationsFragment\n }\n }\n }\n }\n`);\n\nconst suspenseContext = { suspense: true };\n\nexport const OperationList = () => {\n const { type, input } = useOasConfig();\n\n const [result] = useQuery({\n query: AllOperationsQuery,\n variables: { type, input },\n context: suspenseContext,\n });\n\n const error = result.error?.graphQLErrors.at(0);\n\n // Looks like there is no Suspense level error handling (yet)?\n // So we handle the error case in the component directly\n if (error) {\n return (\n <ErrorPage\n category=\"Error\"\n title=\"Schema cannot be displayed\"\n message={\n <>\n <DeveloperHint className=\"mb-4\">\n Check your configuration value <InlineCode>apis.type</InlineCode>{\" \"}\n and <InlineCode>apis.input</InlineCode> in the Zudoku config.\n </DeveloperHint>\n An error occurred while trying to fetch the API reference:\n <SyntaxHighlight code={error.toString()} language=\"plain\" />\n </>\n }\n />\n );\n }\n\n if (!result.data) return null;\n\n return (\n <div className=\"pt-[--padding-content-top]\">\n <div\n className={cn(ProseClasses, \"mb-16 max-w-full prose-img:max-w-prose\")}\n >\n <CategoryHeading>Overview</CategoryHeading>\n <Heading level={1} id=\"description\" registerSidebarAnchor>\n {result.data.schema.title}\n </Heading>\n <Markdown content={result.data.schema.description ?? \"\"} />\n </div>\n <hr />\n <div className=\"my-4 flex justify-end\">\n <Endpoint />\n </div>\n\n {result.data.schema.tags\n .filter((tag) => tag.operations.length > 0)\n .map((tag) => (\n <div key={tag.name}>\n {tag.name && <CategoryHeading>{tag.name}</CategoryHeading>}\n {tag.description && (\n <Markdown\n className={`${ProseClasses} max-w-full prose-img:max-w-prose w-full mt-2 mb-12`}\n content={tag.description}\n />\n )}\n <div className=\"operation mb-12\">\n <StaggeredRender>\n {tag.operations.map((fragment) => (\n <OperationListItem\n key={fragment.slug}\n operationFragment={fragment}\n />\n ))}\n </StaggeredRender>\n </div>\n </div>\n ))}\n </div>\n );\n};\n"],"names":["useFragment","_documentNode","fragmentType","ServersQuery","graphql","CopyButton","url","isCopied","setIsCopied","useState","jsx","Button","CheckIcon","CopyIcon","context","Endpoint","result","useQuery","useOasConfig","startTransition","useTransition","selectedServer","setSelectedServer","useSelectedServerStore","servers","jsxs","InlineCode","SimpleSelect","e","server","groupBy","arr","keySelector","accumulator","val","groupedKey","renderIf","variable","callback","getParameterSchema","parameter","ParameterListItem","group","id","paramSchema","ColorizedParam","Markdown","ParameterList","parameters","Fragment","Heading","Card","a","b","objectEntries","obj","iconMap","CircleFadingPlusIcon","CircleDotIcon","CircleIcon","colorClass","LogicalGroupConnector","type","isOpen","className","cn","ChevronDownIcon","LogicalGroupItem","props","setIsOpen","Collapsible","prev","SchemaView","typeLabel","LogicalGroup","schemas","level","toggleOpen","SquareMinusIcon","SquarePlusIcon","subSchema","index","isComplexType","value","hasLogicalGroupings","LogicalSchemaTypeMap","SchemaLogicalGroup","schema","useCallback","key","SchemaPropertyItem","name","defaultOpen","showCollapseButton","ProseClasses","ListPlusIcon","renderSchema","itemsSchema","groupedProperties","propertyName","property","groupNames","CardHeader","CardTitle","CardContent","PARAM_GROUPS","OperationListItem","operationFragment","operation","OperationsFragment","groupedParameters","param","first","selectedResponse","setSelectedResponse","_a","_c","_b","Tabs","TabsList","response","TabsTrigger","TabsContent","content","Sidecar","AllOperationsQuery","suspenseContext","OperationList","input","error","ErrorPage","DeveloperHint","SyntaxHighlight","CategoryHeading","tag","StaggeredRender","fragment"],"mappings":";;;;;;;;;;;;;;AAqEgB,SAAAA,GACdC,GACAC,GAMgE;AACzD,SAAAA;AACT;ACrEA,MAAMC,KAAeC;AAAA;AAAA,EAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAS1C,GAEKC,IAAa,CAAC,EAAE,KAAAC,QAA2B;AAC/C,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAS,EAAK;AAG5C,SAAAC,gBAAAA,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,SAAS,MAAM;AACb,QAAK,UAAU,UAAU,UAAUL,CAAG,EAAE,KAAK,MAAM;AACjD,UAAAE,EAAY,EAAI,GAChB,WAAW,MAAMA,EAAY,EAAK,GAAG,GAAI;AAAA,QAAA,CAC1C;AAAA,MACH;AAAA,MACA,SAAQ;AAAA,MACR,MAAK;AAAA,MAEJ,UACCD,IAAAG,gBAAAA,MAACE,GAAU,EAAA,WAAU,kBAAiB,MAAM,GAAI,CAAA,IAE/CF,gBAAAA,EAAAA,IAAAG,GAAA,EAAS,MAAM,IAAI,aAAa,KAAK;AAAA,IAAA;AAAA,EAAA;AAI9C,GAEMC,KAAU,EAAE,UAAU,MAEfC,KAAW,MAAM;AACtB,QAAA,CAACC,CAAM,IAAIC,EAAS;AAAA,IACxB,OAAOd;AAAA,IACP,WAAWe,EAAa;AAAA,IACxB,SAAAJ;AAAA,EAAA,CACD,GACK,CAAG,EAAAK,CAAe,IAAIC,KACtB,EAAE,gBAAAC,GAAgB,mBAAAC,EAAkB,IAAIC,EAAuB;AAEjE,MAAA,CAACP,EAAO,KAAa,QAAA;AAEzB,QAAM,EAAE,SAAAQ,EAAY,IAAAR,EAAO,KAAK;AAE5B,SAAAQ,EAAQ,WAAW,IAEnBC,gBAAAA,EAAA,KAAC,OAAI,EAAA,WAAU,2BACb,UAAA;AAAA,IAACf,gBAAAA,EAAA,IAAA,QAAA,EAAK,WAAU,uBAAsB,UAAS,aAAA;AAAA,IAC/CA,gBAAAA,EAAAA,IAACgB,KAAW,WAAU,uBAAsB,eAAa,IACtD,UAAAF,EAAQ,CAAC,EAAG,IACf,CAAA;AAAA,0BACCnB,GAAW,EAAA,KAAKmB,EAAQ,CAAC,EAAG,KAAK;AAAA,EACpC,EAAA,CAAA,IAKFC,gBAAAA,EAAA,KAAC,OAAI,EAAA,WAAU,qCACb,UAAA;AAAA,IAACA,gBAAAA,EAAAA,KAAA,QAAA,EAAK,WAAU,uBACb,UAAA;AAAA,MAAQD,EAAA,SAAS,IAAI,cAAc;AAAA,MAAW;AAAA,IAAA,GACjD;AAAA,IAEAd,gBAAAA,EAAA;AAAA,MAACiB;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,UAAU,CAACC,MACTT,EAAgB,MAAM;AACF,UAAAG,EAAAM,EAAE,OAAO,KAAK;AAAA,QAAA,CACjC;AAAA,QAEH,OAAOP,KAAkBL,EAAO,KAAK,OAAO;AAAA,QAC5C,cAAcQ,EAAQ,SAAS;AAAA,QAC/B,SAASA,EAAQ,IAAI,CAACK,OAAY;AAAA,UAChC,OAAOA,EAAO;AAAA,UACd,OAAOA,EAAO;AAAA,QAAA,EACd;AAAA,MAAA;AAAA,IACJ;AAAA,0BACCxB,GAAW,EAAA,KAAKgB,KAAkBL,EAAO,KAAK,OAAO,KAAK;AAAA,EAC7D,EAAA,CAAA;AAEJ,GC9Fac,IAAU,CAIrBC,GACAC,MAEOD,EAAI;AAAA,EACT,CAACE,GAAaC,MAAQ;AACd,UAAAC,IAAaH,EAAYE,CAAG;AAC9B,WAACD,EAAYE,CAAU,MACbF,EAAAE,CAAU,IAAI,KAEhBF,EAAAE,CAAU,EAAE,KAAKD,CAAG,GACzBD;AAAA,EACT;AAAA,EACA,CAAC;AAAA,GChBQG,KAAW,CACtBC,GACAC,MACmBD,IAAWC,EAASD,CAAQ,IAAI,QCG/CE,KAAqB,CACzBC,MAEIA,EAAU,UAAU,QAAQ,OAAOA,EAAU,UAAW,WACnDA,EAAU,SAEZ;AAAA,EACL,MAAM;AAAA,GAQGC,KAAoB,CAAC;AAAA,EAChC,WAAAD;AAAA,EACA,OAAAE;AAAA,EACA,IAAAC;AACF,MAIM;AACE,QAAAC,IAAcL,GAAmBC,CAAS;AAG9C,SAAAf,gBAAAA,EAAA,KAAC,MAAG,EAAA,WAAU,gDACZ,UAAA;AAAA,IAACA,gBAAAA,EAAAA,KAAA,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,MAACf,gBAAAA,EAAAA,IAAA,QAAA,EACE,gBAAU,SACTA,gBAAAA,EAAA;AAAA,QAACmC;AAAA,QAAA;AAAA,UACC,MAAML,EAAU;AAAA,UAChB,mBAAkB;AAAA,UAClB,MAAMG,IAAK,MAAMH,EAAU,KAAK,kBAAkB;AAAA,QAAA;AAAA,MAAA,IAGpDA,EAAU,MAEd;AAAA,MACCA,EAAU,YACT9B,gBAAAA,EAAAA,IAAC,QAAK,EAAA,WAAU,gEAA+D,UAE/E,YAAA;AAAA,MAEDkC,EAAY,QACVlC,gBAAAA,EAAAA,IAAA,QAAA,EAAK,WAAU,yBACb,UAAAkC,EAAY,SAAS,UAClB,GAAGA,EAAY,MAAM,IAAI,OACzBA,EAAY,MAClB;AAAA,IAAA,GAEJ;AAAA,IACCJ,EAAU,eACT9B,gBAAAA,EAAA;AAAA,MAACoC;AAAA,MAAA;AAAA,QACC,SAASN,EAAU;AAAA,QACnB,WAAU;AAAA,MAAA;AAAA,IACZ;AAAA,EAEJ,EAAA,CAAA;AAEJ,GC3DaO,KAAgB,CAAC;AAAA,EAC5B,OAAAL;AAAA,EACA,YAAAM;AAAA,EACA,IAAAL;AACF,MAMIlB,gBAAAA,EAAA,KAAAwB,YAAA,EAAA,UAAA;AAAA,EAAAvC,gBAAAA,MAACwC,KAAQ,OAAO,GAAG,IAAI,GAAGP,CAAE,IAAID,CAAK,eAAe,WAAU,cAC3D,UAAUA,MAAA,WAAW,YAAY,GAAGA,CAAK,eAC5C;AAAA,EACAhC,gBAAAA,EAAAA,IAACyC,KACC,UAACzC,gBAAAA,EAAAA,IAAA,MAAA,EAAG,WAAU,gCACX,UAAAsC,EACE,KAAK,CAACI,GAAGC,MAAOD,EAAE,aAAaC,EAAE,WAAW,IAAID,EAAE,WAAW,KAAK,CAAE,EACpE,IAAI,CAACZ,MACJ9B,gBAAAA,EAAA;AAAA,IAAC+B;AAAA,IAAA;AAAA,MAEC,WAAAD;AAAA,MACA,IAAAG;AAAA,MACA,OAAAD;AAAA,IAAA;AAAA,IAHK,GAAGF,EAAU,IAAI,IAAIA,EAAU,EAAE;AAAA,EAAA,CAKzC,GACL,EACF,CAAA;AAAA,GACF,GChCWc,KAAgB,CAAmBC,MAC9C,OAAO,QAAQA,CAAG,GCMdC,KAAU;AAAA,EACd,KAAM9C,gBAAAA,EAAA,IAAA+C,GAAA,EAAqB,MAAM,IAAI,WAAU,aAAY;AAAA,EAC3D,IAAK/C,gBAAAA,EAAA,IAAAgD,GAAA,EAAc,MAAM,IAAI,WAAU,aAAY;AAAA,EACnD,KAAMhD,gBAAAA,EAAA,IAAAiD,GAAA,EAAW,MAAM,IAAI,WAAU,aAAY;AACnD,GAEMC,KAAa;AAAA,EACjB,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,KAAK;AACP,GAEaC,KAAwB,CAAC;AAAA,EACpC,MAAAC;AAAA,EACA,QAAAC;AAAA,EACA,WAAAC;AACF,MAMItD,gBAAAA,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWuD;AAAA,MACTL,GAAWE,CAAI;AAAA,MACf;AAAA,MACA;AAAA,MACAE;AAAA,IACF;AAAA,IAEA,UAAAvC,gBAAAA,EAAA,KAAC,OAAI,EAAA,WAAU,8CACZ,UAAA;AAAA,MAAA+B,GAAQM,CAAI;AAAA,MACbpD,gBAAAA,EAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWuD;AAAA,YACT;AAAA,YACA,CAACF,KAAU;AAAA,UACb;AAAA,UAEA,UAAArD,gBAAAA,EAAAA,IAACwD,GAAgB,EAAA,MAAM,GAAI,CAAA;AAAA,QAAA;AAAA,MAC7B;AAAA,IAAA,GACF;AAAA,EAAA;AAAA,GC3COC,KAAmB,CAACC,MAI3B;AACJ,QAAM,CAACL,GAAQM,CAAS,IAAI5D,EAAS,EAAI;AAGvC,SAAAgB,gBAAAA,EAAA;AAAA,IAAC6C,EAAY;AAAA,IAAZ;AAAA,MACC,MAAMP;AAAA,MACN,cAAc,MAAMM,EAAU,CAACE,MAAS,CAACA,CAAI;AAAA,MAC7C,WAAU;AAAA,MAEV,UAAA;AAAA,QAAC7D,gBAAAA,EAAAA,IAAA4D,EAAY,SAAZ,EACC,UAAA5D,gBAAAA,EAAAA,IAACmD,MAAsB,MAAMO,EAAM,MAAM,QAAAL,EAAA,CAAgB,EAC3D,CAAA;AAAA,QACC,CAACA,KAAWrD,gBAAAA,EAAAA,IAAA,OAAA,EAAI,WAAU,oCAAoC,CAAA;AAAA,QAC9DA,gBAAAA,EAAA,IAAA4D,EAAY,SAAZ,EACC,UAAC5D,gBAAAA,EAAAA,IAAA8D,GAAA,EAAW,QAAQJ,EAAM,QAAQ,OAAOA,EAAM,QAAQ,EAAG,CAAA,GAC5D;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN,GCtBMK,KAAY;AAAA,EAChB,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,KAAK;AACP,GAEaC,KAAe,CAAC;AAAA,EAC3B,SAAAC;AAAA,EACA,MAAAb;AAAA,EACA,QAAAC;AAAA,EACA,OAAAa;AAAA,EACA,YAAAC;AACF,MAOGnE,gBAAAA,EAAAA,IAAA4D,EAAY,MAAZ,EAAiB,MAAMP,GAAQ,cAAcc,GAAY,SAAO,IAC/D,UAACpD,gBAAAA,OAAA0B,GAAA,EAAK,WAAU,QACd,UAAA;AAAA,EAAA1B,gBAAAA,EAAA,KAAC6C,EAAY,SAAZ,EAAoB,WAAU,sFAC5B,UAAA;AAAA,IAASP,IAAArD,gBAAAA,EAAA,IAACoE,KAAgB,MAAM,GAAA,CAAI,IAAMpE,gBAAAA,EAAAA,IAAAqE,GAAA,EAAe,MAAM,GAAI,CAAA;AAAA,IACnErE,gBAAAA,EAAA,IAAA,QAAA,EAAM,UAAU+D,GAAAX,CAAI,EAAE,CAAA;AAAA,EAAA,GACzB;AAAA,EAEApD,gBAAAA,EAAAA,IAAC4D,EAAY,SAAZ,EAAoB,WAAU,QAC5B,UAAAK,EAAQ,IAAI,CAACK,GAAWC;AAAA;AAAA,IAEvBvE,gBAAAA,EAAA;AAAA,MAACyD;AAAA,MAAA;AAAA,QAEC,MAAAL;AAAA,QACA,QAAQkB;AAAA,QACR,OAAAJ;AAAA,MAAA;AAAA,MAHKK;AAAA,IAIP;AAAA,GACD,GACH;AAAA,EAAA,CACF,EACF,CAAA,GC3CWC,KAAgB,CAACC,MAC5BA,EAAM,SAAS,YACdA,EAAM,SAAS,WACd,OAAOA,EAAM,SAAU,aACtB,CAACA,EAAM,MAAM,QAAQA,EAAM,MAAM,SAAS,WAElCC,IAAsB,CAACD,MAClC,GAAQA,EAAM,SAASA,EAAM,SAASA,EAAM,QAEjCE,KAAuB;AAAA,EAClC,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AACT,GCCaC,IAAqB,CAAC;AAAA,EACjC,QAAAC;AAAA,EACA,OAAAX;AACF,MAGM;AACJ,QAAM,CAACb,GAAQM,CAAS,IAAI5D,EAAS,EAAI,GACnCoE,IAAaW,EAAY,MAAMnB,EAAU,CAACE,MAAS,CAACA,CAAI,GAAG,CAAA,CAAE;AAEnE,aAAW,CAACkB,GAAK3B,CAAI,KAAKR,GAAc+B,EAAoB;AACtD,QAACE,EAAOE,CAAG;AAGb,aAAA/E,gBAAAA,EAAA;AAAA,QAACgE;AAAA,QAAA;AAAA,UACC,SAASa,EAAOE,CAAG;AAAA,UACnB,MAAA3B;AAAA,UACA,QAAAC;AAAA,UACA,YAAAc;AAAA,UACA,OAAAD;AAAA,QAAA;AAAA,MAAA;AAIR,GAEac,KAAqB,CAAC;AAAA,EACjC,MAAAC;AAAA,EACA,QAAAJ;AAAA,EACA,OAAA7C;AAAA,EACA,OAAAkC;AAAA,EACA,aAAAgB,IAAc;AAAA,EACd,oBAAAC,IAAqB;AACvB,MAOM;AACJ,QAAM,CAAC9B,GAAQM,CAAS,IAAI5D,EAASmF,CAAW;AAEhD,+BACG,MAAG,EAAA,WAAU,uCACZ,UAACnE,gBAAAA,EAAA,KAAA,OAAA,EAAI,WAAU,+CACb,UAAA;AAAA,IAACA,gBAAAA,EAAAA,KAAA,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,MAAAf,gBAAAA,EAAAA,IAAC,UAAM,UAAKiF,EAAA,CAAA;AAAA,MACZjF,gBAAAA,EAAA,IAAC,QAAK,EAAA,WAAU,yBACb,UAAA6E,EAAO,SAAS,WAAWA,EAAO,MAAM,OACvC9D,gBAAAA,EAAAA,KAAC,QAAM,EAAA,UAAA;AAAA,QAAA8D,EAAO,MAAM;AAAA,QAAK;AAAA,MAAA,GAAE,IACzB,MAAM,QAAQA,EAAO,IAAI,0BAC1B,QAAM,EAAA,UAAAA,EAAO,KAAK,KAAK,KAAK,GAAE,0BAE9B,QAAM,EAAA,UAAAA,EAAO,KAAK,CAAA,GAEvB;AAAA,MACC7C,MAAU,cACThC,gBAAAA,EAAAA,IAAC,QAAK,EAAA,WAAU,8CAA6C,UAE7D,YAAA;AAAA,IAAA,GAEJ;AAAA,IAEC6E,EAAO,eACN7E,gBAAAA,EAAA;AAAA,MAACoC;AAAA,MAAA;AAAA,QACC,WAAWmB,EAAG6B,GAAc,qCAAqC;AAAA,QACjE,SAASP,EAAO;AAAA,MAAA;AAAA,IAClB;AAAA,KAGAH,EAAoBG,CAAM,KAAKL,GAAcK,CAAM,MACnD9D,gBAAAA,EAAA;AAAA,MAAC6C,EAAY;AAAA,MAAZ;AAAA,QACC,aAAAsB;AAAA,QACA,MAAM7B;AAAA,QACN,cAAc,MAAMM,EAAU,CAACN,CAAM;AAAA,QAEpC,UAAA;AAAA,UAAA8B,KACEnF,gBAAAA,EAAA,IAAA4D,EAAY,SAAZ,EAAoB,SAAO,IAC1B,UAAA7C,gBAAAA,EAAA;AAAA,YAACd;AAAA,YAAA;AAAA,cACC,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,WAAU;AAAA,cAEV,UAAA;AAAA,gBAACD,gBAAAA,EAAAA,IAAAqF,GAAA,EAAa,MAAM,GAAI,CAAA;AAAA,gBACtBhC,IAEE,2BADA;AAAA,cACA;AAAA,YAAA;AAAA,UAAA,GAER;AAAA,UAEFrD,gBAAAA,EAAAA,IAAC4D,EAAY,SAAZ,EACC,gCAAC,OAAI,EAAA,WAAU,QACZ,UAAoBc,EAAAG,CAAM,IACxB7E,gBAAAA,MAAA4E,GAAA,EAAmB,QAAAC,GAAgB,OAAOX,IAAQ,GAAG,IACpDW,EAAO,SAAS,WAClB7E,gBAAAA,EAAAA,IAAC8D,KAAW,QAAAe,GAAgB,OAAOX,IAAQ,EAAG,CAAA,IAE9CW,EAAO,SAAS,WAChB,OAAOA,EAAO,SAAU,YACrB7E,gBAAAA,EAAAA,IAAA8D,GAAA,EAAW,QAAQe,EAAO,OAAO,OAAOX,IAAQ,GAAG,GAG1D,EACF,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA,EAEJ,CAAA,EACF,CAAA;AAEJ,GCrHaJ,IAAa,CAAC;AAAA,EACzB,QAAAe;AAAA,EACA,OAAAX,IAAQ;AAAA,EACR,aAAAgB,IAAc;AAChB,MAIM;AACJ,MAAI,CAACL,KAAU,OAAO,KAAKA,CAAM,EAAE,WAAW;AAE1C,WAAA7E,gBAAAA,EAAAA,IAACyC,KAAK,WAAU,OACd,gCAAC,QAAK,EAAA,WAAU,wCAAuC,UAAA,wBAEvD,CAAA,EACF,CAAA;AAIE,QAAA6C,IAAe,CAACT,GAAsBX,MAAkB;AACxD,QAAAQ,EAAoBG,CAAM;AAC5B,aAAQ7E,gBAAAA,EAAAA,IAAA4E,GAAA,EAAmB,QAAQC,GAAQ,OAAOX,EAAO,CAAA;AAK3D,QAAIW,EAAO,SAAS,WAAWA,EAAO,OAAO;AAC3C,YAAMU,IAAcV,EAAO;AAE3B,aACE,OAAOU,EAAY,QAAS,YAC5B,CAAC,UAAU,UAAU,WAAW,SAAS,EAAE,SAASA,EAAY,IAAI,IAGlExE,gBAAAA,EAAA,KAAC0B,GAAK,EAAA,WAAU,OACd,UAAA;AAAA,QAAC1B,gBAAAA,EAAAA,KAAA,QAAA,EAAK,WAAU,iCACb,UAAA;AAAA,UAAYwE,EAAA;AAAA,UAAK;AAAA,QAAA,GACpB;AAAA,QACCV,EAAO,eACN7E,gBAAAA,EAAA;AAAA,UAACoC;AAAA,UAAA;AAAA,YACC,WAAWmB;AAAA,cACT6B;AAAA,cACA;AAAA,YACF;AAAA,YACA,SAASP,EAAO;AAAA,UAAA;AAAA,QAClB;AAAA,MAEJ,EAAA,CAAA,IAEOU,EAAY,SAAS,WAE5BxE,gBAAAA,EAAA,KAAC0B,GAAK,EAAA,WAAU,wCACd,UAAA;AAAA,QAACzC,gBAAAA,EAAA,IAAA,QAAA,EAAK,WAAU,iCAAgC,UAAQ,YAAA;AAAA,QACvDsF,EAAaC,GAAarB,IAAQ,CAAC;AAAA,MACtC,EAAA,CAAA,IAGKoB,EAAaC,GAAarB,IAAQ,CAAC;AAAA,IAE9C;AAEA,QACEW,EAAO,SAAS,aACf,CAACA,EAAO,cAAc,OAAO,KAAKA,EAAO,UAAU,EAAE,WAAW;AAG/D,aAAA9D,gBAAAA,EAAA,KAAC0B,GAAK,EAAA,WAAU,+BACb,UAAA;AAAA,QAAA,UAAUoC,KAAU7E,gBAAAA,MAAAuC,EAAAA,UAAA,EAAG,UAAAsC,EAAO,MAAK;AAAA,QACnC7E,gBAAAA,EAAA,IAAA,QAAA,EAAK,WAAU,iCAAgC,UAAM,UAAA;AAAA,QACrD6E,EAAO,eACN7E,gBAAAA,EAAA;AAAA,UAACoC;AAAA,UAAA;AAAA,YACC,WAAWmB;AAAA,cACT6B;AAAA,cACA;AAAA,YACF;AAAA,YACA,SAASP,EAAO;AAAA,UAAA;AAAA,QAClB;AAAA,MAEJ,EAAA,CAAA;AAIJ,QAAIA,EAAO,YAAY;AACrB,YAAMW,IAAoBpE;AAAA,QACxB,OAAO,QAAQyD,EAAO,UAAU;AAAA,QAChC,CAAC,CAACY,GAAcC,CAAQ,MAAM;;AACrB,iBAAAA,EAAS,aACZ,gBACAb,IAAAA,EAAO,aAAPA,QAAAA,EAAiB,SAASY,KACxB,aACA;AAAA,QACR;AAAA,MAAA,GAGIE,IAAa,CAAC,YAAY,YAAY,YAAY;AAExD,aACG3F,gBAAAA,EAAAA,IAAAyC,GAAA,EAAK,WAAU,4BACb,UAAWkD,EAAA;AAAA,QACV,CAAC3D,MACCwD,EAAkBxD,CAAK,2BACpB,MAAe,EAAA,WAAU,YACvB,UAAAwD,EAAkBxD,CAAK,EAAE,IAAI,CAAC,CAACiD,GAAMJ,CAAM,MAC1C7E,gBAAAA,EAAA;AAAA,UAACgF;AAAA,UAAA;AAAA,YAEC,MAAAC;AAAA,YACA,QAAQJ;AAAAA,YACR,OAAA7C;AAAA,YACA,OAAOkC;AAAAA,YACP,aAAAgB;AAAA,UAAA;AAAA,UALKD;AAAA,QAAA,CAOR,KAVMjD,CAWT;AAAA,MAGR,EAAA,CAAA;AAAA,IAEJ;AAEA,WACE,OAAO6C,EAAO,QAAS,YACvB,CAAC,UAAU,UAAU,WAAW,WAAW,MAAM,EAAE,SAASA,EAAO,IAAI,IAGrE9D,gBAAAA,EAAA,KAAC0B,GAAK,EAAA,WAAU,OACd,UAAA;AAAA,MAAAzC,gBAAAA,EAAA,IAAC,QAAK,EAAA,WAAU,iCAAiC,UAAA6E,EAAO,MAAK;AAAA,MAC5DA,EAAO,eACN7E,gBAAAA,EAAA;AAAA,QAACoC;AAAA,QAAA;AAAA,UACC,WAAWmB;AAAA,YACT6B;AAAA,YACA;AAAA,UACF;AAAA,UACA,SAASP,EAAO;AAAA,QAAA;AAAA,MAClB;AAAA,IAEJ,EAAA,CAAA,IAIAA,EAAO,uBAEP9D,gBAAAA,EAAA,KAAC0B,GAAK,EAAA,WAAU,QACd,UAAA;AAAA,MAAAzC,gBAAAA,MAAC4F,IACC,EAAA,UAAA5F,gBAAAA,EAAA,IAAC6F,IAAU,EAAA,UAAA,yBAAsB,CAAA,GACnC;AAAA,4BACCC,IACE,EAAA,UAAAR;AAAA,QACCT,EAAO;AAAA,QACPX,IAAQ;AAAA,MAAA,GAEZ;AAAA,IACF,EAAA,CAAA,IAIG;AAAA,EAAA;AAGF,SAAAoB,EAAaT,GAAQX,CAAK;AACnC,GC3Ja6B,KAAe,CAAC,QAAQ,SAAS,UAAU,QAAQ,GAGnDC,KAAoB,CAAC;AAAA,EAChC,mBAAAC;AACF,MAEM;;AACE,QAAAC,IAAY5G,GAAY6G,IAAoBF,CAAiB,GAC7DG,IAAoBhF;AAAA,IACxB8E,EAAU,cAAc,CAAC;AAAA,IACzB,CAACG,MAAUA,EAAM;AAAA,EAAA,GAGbC,IAAQJ,EAAU,UAAU,GAAG,CAAC,GAChC,CAACK,GAAkBC,CAAmB,IAAIzG,EAASuG,KAAA,gBAAAA,EAAO,UAAU;AAGxE,SAAAvF,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,WAAU;AAAA,MAEV,UAAA;AAAA,QAACA,gBAAAA,EAAAA,KAAA,OAAA,EAAI,WAAU,uBACb,UAAA;AAAA,UAACf,gBAAAA,EAAAA,IAAAwC,GAAA,EAAQ,OAAO,GAAG,IAAI0D,EAAU,MAAM,uBAAqB,IACzD,UAAAA,EAAU,QACb,CAAA;AAAA,UACCA,EAAU,eACTlG,gBAAAA,EAAA;AAAA,YAACoC;AAAA,YAAA;AAAA,cACC,WAAW,GAAGgD,CAAY;AAAA,cAC1B,SAASc,EAAU;AAAA,YAAA;AAAA,UACrB;AAAA,UAEDA,EAAU,cAAcA,EAAU,WAAW,SAAS,yCAElD,UAAaH,GAAA;AAAA,YAAQ,CAAC/D,MAAA;;AACrB,sBAAAyE,IAAAL,EAAkBpE,CAAK,MAAvB,QAAAyE,EAA0B,SACxBzG,gBAAAA,EAAA;AAAA,gBAACqC;AAAA,gBAAA;AAAA,kBAEC,IAAI6D,EAAU;AAAA,kBACd,YAAYE,EAAkBpE,CAAK;AAAA,kBACnC,OAAAA;AAAA,gBAAA;AAAA,gBAHKA;AAAA,cAAA,IAMP,CAAC;AAAA;AAAA,UAAA,GAGP;AAAA,UAEDN,IAASgF,KAAAC,KAAAF,IAAAP,EAAU,gBAAV,gBAAAO,EAAuB,YAAvB,gBAAAE,EAAgC,GAAG,OAAnC,gBAAAD,EAAuC,QAAQ,CAAC7B,MACvD9D,gBAAAA,EAAA,KAAA,OAAA,EAAI,WAAU,4BACb,UAAA;AAAA,YAAAf,gBAAAA,EAAA;AAAA,cAACwC;AAAA,cAAA;AAAA,gBACC,OAAO;AAAA,gBACP,WAAU;AAAA,gBACV,IAAI,GAAG0D,EAAU,IAAI;AAAA,gBACrB,uBAAqB;AAAA,gBACtB,UAAA;AAAA,cAAA;AAAA,YAED;AAAA,YACAlG,gBAAAA,MAAC8D,KAAW,QAAAe,GAAgB;AAAA,UAAA,EAAA,CAC9B,CACD;AAAA,UACAqB,EAAU,UAAU,SAAS,KAE1BnF,gBAAAA,EAAAA,KAAAwB,EAAAA,UAAA,EAAA,UAAA;AAAA,YAAAvC,gBAAAA,EAAA;AAAA,cAACwC;AAAA,cAAA;AAAA,gBACC,OAAO;AAAA,gBACP,WAAU;AAAA,gBACV,IAAI,GAAG0D,EAAU,IAAI;AAAA,gBACrB,uBAAqB;AAAA,gBACtB,UAAA;AAAA,cAAA;AAAA,YAED;AAAA,YACAnF,gBAAAA,EAAA;AAAA,cAAC6F;AAAA,cAAA;AAAA,gBACC,eAAe,CAACnC,MAAU+B,EAAoB/B,CAAK;AAAA,gBACnD,OAAO8B;AAAA,gBAEN,UAAA;AAAA,kBAAUL,EAAA,UAAU,SAAS,KAC5BlG,gBAAAA,EAAA,IAAC6G,KACE,UAAUX,EAAA,UAAU,IAAI,CAACY,MACxB9G,gBAAAA,EAAA;AAAA,oBAAC+G;AAAA,oBAAA;AAAA,sBACC,OAAOD,EAAS;AAAA,sBAEhB,OAAOA,EAAS,eAAe;AAAA,sBAE9B,UAASA,EAAA;AAAA,oBAAA;AAAA,oBAHLA,EAAS;AAAA,kBAKjB,CAAA,GACH;AAAA,kBAEF9G,gBAAAA,EAAAA,IAAC,QAAG,WAAU,sBACX,YAAU,UAAU,IAAI,CAAC8G;;AACxB9G,2CAAAA,EAAA;AAAA,sBAACgH;AAAA,sBAAA;AAAA,wBACC,OAAOF,EAAS;AAAA,wBAGhB,UAAA9G,gBAAAA,EAAA;AAAA,0BAAC8D;AAAA,0BAAA;AAAA,4BACC,SACE6C,KAAAF,IAAAK,EAAS,YAAT,gBAAAL,EAAkB,KAAK,CAACQ,MAAYA,EAAQ,YAA5C,gBAAAN,EACI;AAAA,0BAAA;AAAA,wBAER;AAAA,sBAAA;AAAA,sBAPKG,EAAS;AAAA,oBASjB;AAAA,mBAAA,GACH;AAAA,gBAAA;AAAA,cAAA;AAAA,YACF;AAAA,UAAA,GACF;AAAA,QAAA,GAEJ;AAAA,QAEA9G,gBAAAA,EAAA;AAAA,UAACkH;AAAA,UAAA;AAAA,YACC,kBAAAX;AAAA,YACA,kBAAkBC;AAAA,YAClB,WAAAN;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IAAA;AAAA,IA7FKA,EAAU;AAAA,EAAA;AAgGrB,GC/GaC,KAAqBzG;AAAA;AAAA,EAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA8DvD,GAIKyH,KAAqBzH;AAAA;AAAA,EAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBhD,GAEK0H,KAAkB,EAAE,UAAU,MAEvBC,KAAgB,MAAM;;AACjC,QAAM,EAAE,MAAAjE,GAAM,OAAAkE,EAAM,IAAI9G,EAAa,GAE/B,CAACF,CAAM,IAAIC,EAAS;AAAA,IACxB,OAAO4G;AAAA,IACP,WAAW,EAAE,MAAA/D,GAAM,OAAAkE,EAAM;AAAA,IACzB,SAASF;AAAA,EAAA,CACV,GAEKG,KAAQd,IAAAnG,EAAO,UAAP,gBAAAmG,EAAc,cAAc,GAAG;AAI7C,SAAIc,IAEAvH,gBAAAA,EAAA;AAAA,IAACwH;AAAA,IAAA;AAAA,MACC,UAAS;AAAA,MACT,OAAM;AAAA,MACN,SAEIzG,gBAAAA,EAAA,KAAAwB,YAAA,EAAA,UAAA;AAAA,QAACxB,gBAAAA,EAAAA,KAAA0G,GAAA,EAAc,WAAU,QAAO,UAAA;AAAA,UAAA;AAAA,UACCzH,gBAAAA,EAAAA,IAACgB,KAAW,UAAS,YAAA,CAAA;AAAA,UAAc;AAAA,UAAI;AAAA,UAClEhB,gBAAAA,EAAAA,IAACgB,KAAW,UAAU,aAAA,CAAA;AAAA,UAAa;AAAA,QAAA,GACzC;AAAA,QAAgB;AAAA,8BAEf0G,GAAgB,EAAA,MAAMH,EAAM,YAAY,UAAS,SAAQ;AAAA,MAAA,GAC5D;AAAA,IAAA;AAAA,EAAA,IAMHjH,EAAO,OAGVS,gBAAAA,EAAA,KAAC,OAAI,EAAA,WAAU,8BACb,UAAA;AAAA,IAAAA,gBAAAA,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWwC,EAAG6B,GAAc,wCAAwC;AAAA,QAEpE,UAAA;AAAA,UAAApF,gBAAAA,EAAAA,IAAC2H,KAAgB,UAAQ,WAAA,CAAA;AAAA,UACzB3H,gBAAAA,EAAAA,IAACwC,GAAQ,EAAA,OAAO,GAAG,IAAG,eAAc,uBAAqB,IACtD,UAAAlC,EAAO,KAAK,OAAO,MACtB,CAAA;AAAA,gCACC8B,GAAS,EAAA,SAAS9B,EAAO,KAAK,OAAO,eAAe,IAAI;AAAA,QAAA;AAAA,MAAA;AAAA,IAC3D;AAAA,0BACC,MAAG,EAAA;AAAA,0BACH,OAAI,EAAA,WAAU,yBACb,UAAAN,gBAAAA,MAACK,KAAS,CAAA,GACZ;AAAA,IAECC,EAAO,KAAK,OAAO,KACjB,OAAO,CAACsH,MAAQA,EAAI,WAAW,SAAS,CAAC,EACzC,IAAI,CAACA,6BACH,OACE,EAAA,UAAA;AAAA,MAAAA,EAAI,QAAQ5H,gBAAAA,MAAC2H,GAAiB,EAAA,UAAAC,EAAI,MAAK;AAAA,MACvCA,EAAI,eACH5H,gBAAAA,EAAA;AAAA,QAACoC;AAAA,QAAA;AAAA,UACC,WAAW,GAAGgD,CAAY;AAAA,UAC1B,SAASwC,EAAI;AAAA,QAAA;AAAA,MACf;AAAA,MAEF5H,gBAAAA,EAAAA,IAAC,OAAI,EAAA,WAAU,mBACb,UAAAA,gBAAAA,EAAA,IAAC6H,MACE,UAAID,EAAA,WAAW,IAAI,CAACE,MACnB9H,gBAAAA,EAAA;AAAA,QAACgG;AAAA,QAAA;AAAA,UAEC,mBAAmB8B;AAAA,QAAA;AAAA,QADdA,EAAS;AAAA,MAAA,CAGjB,GACH,EACF,CAAA;AAAA,IAAA,KAjBQF,EAAI,IAkBd,CACD;AAAA,EACL,EAAA,CAAA,IAzCuB;AA2C3B;"}
|
|
1
|
+
{"version":3,"file":"OperationList-BHUBGM0c.js","sources":["../src/lib/plugins/openapi/graphql/fragment-masking.ts","../src/lib/plugins/openapi/Endpoint.tsx","../src/lib/util/groupBy.ts","../src/lib/util/renderIf.ts","../src/lib/plugins/openapi/ParameterListItem.tsx","../src/lib/plugins/openapi/ParameterList.tsx","../src/lib/util/objectEntries.ts","../src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.tsx","../src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.tsx","../src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.tsx","../src/lib/plugins/openapi/schema/utils.ts","../src/lib/plugins/openapi/schema/SchemaComponents.tsx","../src/lib/plugins/openapi/schema/SchemaView.tsx","../src/lib/plugins/openapi/OperationListItem.tsx","../src/lib/plugins/openapi/OperationList.tsx"],"sourcesContent":["/* eslint-disable */\nimport type {\n DocumentTypeDecoration,\n ResultOf,\n TypedDocumentNode,\n} from \"@graphql-typed-document-node/core\";\nimport type { FragmentDefinitionNode } from \"graphql\";\nimport type { Incremental } from \"./graphql.js\";\n\nexport type FragmentType<\n TDocumentType extends DocumentTypeDecoration<any, any>,\n> =\n TDocumentType extends DocumentTypeDecoration<infer TType, any>\n ? [TType] extends [{ \" $fragmentName\"?: infer TKey }]\n ? TKey extends string\n ? { \" $fragmentRefs\"?: { [key in TKey]: TType } }\n : never\n : never\n : never;\n\n// return non-nullable if `fragmentType` is non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>>,\n): TType;\n// return nullable if `fragmentType` is undefined\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | undefined,\n): TType | undefined;\n// return nullable if `fragmentType` is nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | null,\n): TType | null;\n// return nullable if `fragmentType` is nullable or undefined\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | null\n | undefined,\n): TType | null | undefined;\n// return array of non-nullable if `fragmentType` is array of non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: Array<FragmentType<DocumentTypeDecoration<TType, any>>>,\n): Array<TType>;\n// return array of nullable if `fragmentType` is array of nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | Array<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined,\n): Array<TType> | null | undefined;\n// return readonly array of non-nullable if `fragmentType` is array of non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>,\n): ReadonlyArray<TType>;\n// return readonly array of nullable if `fragmentType` is array of nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined,\n): ReadonlyArray<TType> | null | undefined;\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | Array<FragmentType<DocumentTypeDecoration<TType, any>>>\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined,\n): TType | Array<TType> | ReadonlyArray<TType> | null | undefined {\n return fragmentType as any;\n}\n\nexport function makeFragmentData<\n F extends DocumentTypeDecoration<any, any>,\n FT extends ResultOf<F>,\n>(data: FT, _fragment: F): FragmentType<F> {\n return data as FragmentType<F>;\n}\nexport function isFragmentReady<TQuery, TFrag>(\n queryNode: DocumentTypeDecoration<TQuery, any>,\n fragmentNode: TypedDocumentNode<TFrag>,\n data:\n | FragmentType<TypedDocumentNode<Incremental<TFrag>, any>>\n | null\n | undefined,\n): data is FragmentType<typeof fragmentNode> {\n const deferredFields = (\n queryNode as {\n __meta__?: { deferredFields: Record<string, (keyof TFrag)[]> };\n }\n ).__meta__?.deferredFields;\n\n if (!deferredFields) return true;\n\n const fragDef = fragmentNode.definitions[0] as\n | FragmentDefinitionNode\n | undefined;\n const fragName = fragDef?.name?.value;\n\n const fields = (fragName && deferredFields[fragName]) || [];\n return fields.length > 0 && fields.every((field) => data && field in data);\n}\n","import { CheckIcon, CopyIcon } from \"lucide-react\";\nimport { useState, useTransition } from \"react\";\nimport { useQuery } from \"urql\";\nimport { useSelectedServerStore } from \"../../authentication/state.js\";\nimport { InlineCode } from \"../../components/InlineCode.js\";\nimport { Button } from \"../../ui/Button.js\";\nimport { useOasConfig } from \"./context.js\";\nimport { graphql } from \"./graphql/index.js\";\nimport { SimpleSelect } from \"./SimpleSelect.js\";\n\nconst ServersQuery = graphql(/* GraphQL */ `\n query ServersQuery($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n servers {\n url\n }\n }\n }\n`);\n\nconst CopyButton = ({ url }: { url: string }) => {\n const [isCopied, setIsCopied] = useState(false);\n\n return (\n <Button\n onClick={() => {\n void navigator.clipboard.writeText(url).then(() => {\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), 2000);\n });\n }}\n variant=\"ghost\"\n size=\"icon\"\n >\n {isCopied ? (\n <CheckIcon className=\"text-green-600\" size={14} />\n ) : (\n <CopyIcon size={14} strokeWidth={1.3} />\n )}\n </Button>\n );\n};\n\nconst context = { suspense: true } as const;\n\nexport const Endpoint = () => {\n const [result] = useQuery({\n query: ServersQuery,\n variables: useOasConfig(),\n context,\n });\n const [, startTransition] = useTransition();\n const { selectedServer, setSelectedServer } = useSelectedServerStore();\n\n if (!result.data) return null;\n\n const { servers } = result.data.schema;\n\n if (servers.length === 1) {\n return (\n <div className=\"flex items-center gap-2\">\n <span className=\"font-medium text-sm\">Endpoint:</span>\n <InlineCode className=\"text-xs px-2 py-1.5\" selectOnClick>\n {servers[0]!.url}\n </InlineCode>\n <CopyButton url={servers[0]!.url} />\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-wrap items-center gap-2\">\n <span className=\"font-medium text-sm\">\n {servers.length > 1 ? \"Endpoints\" : \"Endpoint\"}:\n </span>\n\n <SimpleSelect\n className=\"font-mono text-xs bg-border/50 dark:bg-border/70 py-1.5 max-w-[450px] truncate\"\n onChange={(e) =>\n startTransition(() => {\n setSelectedServer(e.target.value);\n })\n }\n value={selectedServer ?? result.data.schema.url}\n showChevrons={servers.length > 1}\n options={servers.map((server) => ({\n value: server.url,\n label: server.url,\n }))}\n />\n <CopyButton url={selectedServer ?? result.data.schema.url} />\n </div>\n );\n};\n","export const groupBy = <\n T extends Record<PropertyKey, any>,\n KeySelector extends (item: T) => PropertyKey,\n>(\n arr: T[],\n keySelector: KeySelector,\n): Partial<Record<ReturnType<KeySelector>, T[]>> => {\n return arr.reduce(\n (accumulator, val) => {\n const groupedKey = keySelector(val) as ReturnType<KeySelector>;\n if (!accumulator[groupedKey]) {\n accumulator[groupedKey] = [];\n }\n accumulator[groupedKey].push(val);\n return accumulator;\n },\n {} as Record<ReturnType<KeySelector>, T[]>,\n );\n};\n","export const renderIf = <G, R>(\n variable: G | undefined | null,\n callback: (variable: G) => R,\n): R | undefined => (variable ? callback(variable) : undefined);\n","import { Markdown } from \"../../components/Markdown.js\";\nimport { type SchemaObject } from \"../../oas/graphql/index.js\";\nimport { ColorizedParam } from \"./ColorizedParam.js\";\nimport type { OperationListItemResult } from \"./OperationList.js\";\nimport type { ParameterGroup } from \"./OperationListItem.js\";\n\nconst getParameterSchema = (\n parameter: ParameterListItemResult,\n): SchemaObject => {\n if (parameter.schema != null && typeof parameter.schema === \"object\") {\n return parameter.schema;\n }\n return {\n type: \"string\",\n };\n};\n\nexport type ParameterListItemResult = NonNullable<\n OperationListItemResult[\"parameters\"]\n>[number];\n\nexport const ParameterListItem = ({\n parameter,\n group,\n id,\n}: {\n parameter: ParameterListItemResult;\n group: ParameterGroup;\n id: string;\n}) => {\n const paramSchema = getParameterSchema(parameter);\n\n return (\n <li className=\"p-4 bg-border/20 text-sm flex flex-col gap-1\">\n <div className=\"flex items-center gap-2\">\n <code>\n {group === \"path\" ? (\n <ColorizedParam\n name={parameter.name}\n backgroundOpacity=\"15%\"\n slug={id + \"-\" + parameter.name.toLocaleLowerCase()}\n />\n ) : (\n parameter.name\n )}\n </code>\n {parameter.required && (\n <span className=\"py-px px-1.5 font-medium bg-primary/75 text-muted rounded-lg\">\n required\n </span>\n )}\n {paramSchema.type && (\n <span className=\"text-muted-foreground\">\n {paramSchema.type === \"array\"\n ? `${paramSchema.items.type}[]`\n : paramSchema.type}\n </span>\n )}\n </div>\n {parameter.description && (\n <Markdown\n content={parameter.description}\n className=\"text-sm prose-p:my-1 prose-code:whitespace-pre-line\"\n />\n )}\n </li>\n );\n};\n","import { Heading } from \"../../components/Heading.js\";\nimport { Card } from \"../../ui/Card.js\";\nimport type { ParameterGroup } from \"./OperationListItem.js\";\nimport {\n ParameterListItem,\n type ParameterListItemResult,\n} from \"./ParameterListItem.js\";\n\nexport const ParameterList = ({\n group,\n parameters,\n id,\n}: {\n group: ParameterGroup;\n parameters: ParameterListItemResult[];\n id: string;\n}) => (\n <>\n <Heading level={3} id={`${id}/${group}-parameters`} className=\"capitalize\">\n {group === \"header\" ? \"Headers\" : `${group} Parameters`}\n </Heading>\n <Card>\n <ul className=\"list-none m-0 px-0 divide-y \">\n {parameters\n .sort((a, b) => (a.required === b.required ? 0 : a.required ? -1 : 1))\n .map((parameter) => (\n <ParameterListItem\n key={`${parameter.name}-${parameter.in}`}\n parameter={parameter}\n id={id}\n group={group}\n />\n ))}\n </ul>\n </Card>\n </>\n);\n","type ValueOf<T> = T[keyof T];\ntype Entries<T> = [keyof T, ValueOf<T>][];\n\nexport const objectEntries = <T extends object>(obj: T): Entries<T> =>\n Object.entries(obj) as Entries<T>;\n","import {\n ChevronDownIcon,\n CircleDotIcon,\n CircleFadingPlusIcon,\n CircleIcon,\n} from \"lucide-react\";\nimport { cn } from \"../../../../util/cn.js\";\n\nimport type { LogicalGroupType } from \"../utils.js\";\n\nconst iconMap = {\n AND: <CircleFadingPlusIcon size={16} className=\"fill-card\" />,\n OR: <CircleDotIcon size={16} className=\"fill-card\" />,\n ONE: <CircleIcon size={14} className=\"fill-card\" />,\n} as const;\n\nconst colorClass = {\n AND: \"text-green-500 dark:text-green-300/60\",\n OR: \"text-blue-400 dark:text-blue-500\",\n ONE: \"text-purple-500 dark:text-purple-300/60\",\n} as const;\n\nexport const LogicalGroupConnector = ({\n type,\n isOpen,\n className,\n}: {\n type: LogicalGroupType;\n isOpen: boolean;\n className?: string;\n}) => {\n return (\n <div\n className={cn(\n colorClass[type],\n \"relative text-sm flex py-2\",\n \"before:border-l before:absolute before:-top-2 before:-bottom-2 before:border-border before:border-dashed before:content-['']\",\n className,\n )}\n >\n <div className=\"-translate-x-[7px] flex gap-1 items-center\">\n {iconMap[type]}\n <div\n className={cn(\n \"translate-y-px mx-px opacity-0 group-hover:opacity-100 transition\",\n !isOpen && \"-rotate-90\",\n )}\n >\n <ChevronDownIcon size={16} />\n </div>\n </div>\n </div>\n );\n};\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { useState } from \"react\";\nimport type { SchemaObject } from \"../../../../oas/parser/index.js\";\nimport { SchemaView } from \"../SchemaView.js\";\nimport type { LogicalGroupType } from \"../utils.js\";\nimport { LogicalGroupConnector } from \"./LogicalGroupConnector.js\";\n\nexport const LogicalGroupItem = (props: {\n type: LogicalGroupType;\n schema: SchemaObject;\n level: number;\n}) => {\n const [isOpen, setIsOpen] = useState(true);\n\n return (\n <Collapsible.Root\n open={isOpen}\n onOpenChange={() => setIsOpen((prev) => !prev)}\n className=\"group\"\n >\n <Collapsible.Trigger>\n <LogicalGroupConnector type={props.type} isOpen={isOpen} />\n </Collapsible.Trigger>\n {!isOpen && <div className=\"wavy-line bg-border translate-y-1\" />}\n <Collapsible.Content>\n <SchemaView schema={props.schema} level={props.level + 1} />\n </Collapsible.Content>\n </Collapsible.Root>\n );\n};\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { SquareMinusIcon, SquarePlusIcon } from \"lucide-react\";\nimport type { SchemaObject } from \"../../../../oas/parser/index.js\";\nimport { Card } from \"../../../../ui/Card.js\";\nimport type { LogicalGroupType } from \"../utils.js\";\nimport { LogicalGroupItem } from \"./LogicalGroupItem.js\";\n\nconst typeLabel = {\n AND: \"All of\",\n OR: \"Any of\",\n ONE: \"One of\",\n};\n\nexport const LogicalGroup = ({\n schemas,\n type,\n isOpen,\n level,\n toggleOpen,\n}: {\n schemas: SchemaObject[];\n type: LogicalGroupType;\n isOpen: boolean;\n toggleOpen: () => void;\n level: number;\n}) => (\n <Collapsible.Root open={isOpen} onOpenChange={toggleOpen} asChild>\n <Card className=\"px-6\">\n <Collapsible.Trigger className=\"flex gap-2 items-center py-2 w-full text-sm text-muted-foreground -translate-x-1.5\">\n {isOpen ? <SquareMinusIcon size={14} /> : <SquarePlusIcon size={14} />}\n <span>{typeLabel[type]}</span>\n </Collapsible.Trigger>\n\n <Collapsible.Content className=\"pb-4\">\n {schemas.map((subSchema, index) => (\n // eslint-disable-next-line react/no-array-index-key\n <LogicalGroupItem\n key={index}\n type={type}\n schema={subSchema}\n level={level}\n />\n ))}\n </Collapsible.Content>\n </Card>\n </Collapsible.Root>\n);\n","import type { SchemaObject } from \"../../../oas/parser/index.js\";\n\nexport const isComplexType = (value: SchemaObject) =>\n value.type === \"object\" ||\n (value.type === \"array\" &&\n typeof value.items === \"object\" &&\n (!value.items.type || value.items.type === \"object\"));\n\nexport const hasLogicalGroupings = (value: SchemaObject) =>\n Boolean(value.oneOf ?? value.allOf ?? value.anyOf);\n\nexport const LogicalSchemaTypeMap = {\n allOf: \"AND\",\n anyOf: \"OR\",\n oneOf: \"ONE\",\n} as const;\n\nexport type LogicalGroupType = \"AND\" | \"OR\" | \"ONE\";\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { ListPlusIcon } from \"lucide-react\";\nimport { useCallback, useState } from \"react\";\nimport { Markdown, ProseClasses } from \"../../../components/Markdown.js\";\nimport type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { Button } from \"../../../ui/Button.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { objectEntries } from \"../../../util/objectEntries.js\";\nimport { LogicalGroup } from \"./LogicalGroup/LogicalGroup.js\";\nimport { SchemaView } from \"./SchemaView.js\";\nimport {\n hasLogicalGroupings,\n isComplexType,\n LogicalSchemaTypeMap,\n} from \"./utils.js\";\n\nexport const SchemaLogicalGroup = ({\n schema,\n level,\n}: {\n schema: SchemaObject;\n level: number;\n}) => {\n const [isOpen, setIsOpen] = useState(true);\n const toggleOpen = useCallback(() => setIsOpen((prev) => !prev), []);\n\n for (const [key, type] of objectEntries(LogicalSchemaTypeMap)) {\n if (!schema[key]) continue;\n\n return (\n <LogicalGroup\n schemas={schema[key]}\n type={type}\n isOpen={isOpen}\n toggleOpen={toggleOpen}\n level={level}\n />\n );\n }\n};\n\nexport const SchemaPropertyItem = ({\n name,\n schema,\n group,\n level,\n defaultOpen = false,\n showCollapseButton = true,\n}: {\n name: string;\n schema: SchemaObject;\n group: \"required\" | \"optional\" | \"deprecated\";\n level: number;\n defaultOpen?: boolean;\n showCollapseButton?: boolean;\n}) => {\n const [isOpen, setIsOpen] = useState(defaultOpen);\n\n return (\n <li className=\"p-4 bg-border/20 hover:bg-border/30\">\n <div className=\"flex flex-col gap-1 justify-between text-sm\">\n <div className=\"flex gap-2 items-center\">\n <code>{name}</code>\n <span className=\"text-muted-foreground\">\n {schema.type === \"array\" && schema.items.type ? (\n <span>{schema.items.type}[]</span>\n ) : Array.isArray(schema.type) ? (\n <span>{schema.type.join(\" | \")}</span>\n ) : (\n <span>{schema.type}</span>\n )}\n </span>\n {group === \"optional\" && (\n <span className=\"py-px px-1.5 font-medium border rounded-lg\">\n optional\n </span>\n )}\n </div>\n\n {schema.description && (\n <Markdown\n className={cn(ProseClasses, \"text-sm leading-normal line-clamp-4\")}\n content={schema.description}\n />\n )}\n\n {(hasLogicalGroupings(schema) || isComplexType(schema)) && (\n <Collapsible.Root\n defaultOpen={defaultOpen}\n open={isOpen}\n onOpenChange={() => setIsOpen(!isOpen)}\n >\n {showCollapseButton && (\n <Collapsible.Trigger asChild>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"mt-2 flex gap-1.5\"\n >\n <ListPlusIcon size={18} />\n {!isOpen\n ? \"Show nested properties\"\n : \"Hide nested properties\"}\n </Button>\n </Collapsible.Trigger>\n )}\n <Collapsible.Content>\n <div className=\"mt-2\">\n {hasLogicalGroupings(schema) ? (\n <SchemaLogicalGroup schema={schema} level={level + 1} />\n ) : schema.type === \"object\" ? (\n <SchemaView schema={schema} level={level + 1} />\n ) : (\n schema.type === \"array\" &&\n typeof schema.items === \"object\" && (\n <SchemaView schema={schema.items} level={level + 1} />\n )\n )}\n </div>\n </Collapsible.Content>\n </Collapsible.Root>\n )}\n </div>\n </li>\n );\n};\n","import { Markdown, ProseClasses } from \"../../../components/Markdown.js\";\nimport type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { Card, CardContent, CardHeader, CardTitle } from \"../../../ui/Card.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { groupBy } from \"../../../util/groupBy.js\";\nimport { SchemaLogicalGroup, SchemaPropertyItem } from \"./SchemaComponents.js\";\nimport { hasLogicalGroupings } from \"./utils.js\";\n\nexport const SchemaView = ({\n schema,\n level = 0,\n defaultOpen = false,\n}: {\n schema?: SchemaObject | null;\n level?: number;\n defaultOpen?: boolean;\n}) => {\n if (!schema || Object.keys(schema).length === 0) {\n return (\n <Card className=\"p-4\">\n <span className=\"text-sm text-muted-foreground italic\">\n No response specified\n </span>\n </Card>\n );\n }\n\n const renderSchema = (schema: SchemaObject, level: number) => {\n if (hasLogicalGroupings(schema)) {\n return <SchemaLogicalGroup schema={schema} level={level} />;\n }\n\n // Sometimes items is not defined\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (schema.type === \"array\" && schema.items) {\n const itemsSchema = schema.items as SchemaObject;\n\n if (\n typeof itemsSchema.type === \"string\" &&\n [\"string\", \"number\", \"boolean\", \"integer\"].includes(itemsSchema.type)\n ) {\n return (\n <Card className=\"p-4\">\n <span className=\"text-sm text-muted-foreground\">\n {itemsSchema.type}[]\n </span>\n {schema.description && (\n <Markdown\n className={cn(\n ProseClasses,\n \"text-sm leading-normal line-clamp-4\",\n )}\n content={schema.description}\n />\n )}\n </Card>\n );\n } else if (itemsSchema.type === \"object\") {\n return (\n <Card className=\"flex flex-col gap-2 bg-border/30 p-4\">\n <span className=\"text-sm text-muted-foreground\">object[]</span>\n {renderSchema(itemsSchema, level + 1)}\n </Card>\n );\n } else {\n return renderSchema(itemsSchema, level + 1);\n }\n }\n\n if (\n schema.type === \"object\" &&\n (!schema.properties || Object.keys(schema.properties).length === 0)\n ) {\n return (\n <Card className=\"p-4 flex gap-2 items-center\">\n {\"name\" in schema && <>{schema.name}</>}\n <span className=\"text-sm text-muted-foreground\">object</span>\n {schema.description && (\n <Markdown\n className={cn(\n ProseClasses,\n \"text-sm leading-normal line-clamp-4\",\n )}\n content={schema.description}\n />\n )}\n </Card>\n );\n }\n\n if (schema.properties) {\n const groupedProperties = groupBy(\n Object.entries(schema.properties),\n ([propertyName, property]) => {\n return property.deprecated\n ? \"deprecated\"\n : schema.required?.includes(propertyName)\n ? \"required\"\n : \"optional\";\n },\n );\n\n const groupNames = [\"required\", \"optional\", \"deprecated\"] as const;\n\n return (\n <Card className=\"divide-y overflow-hidden\">\n {groupNames.map(\n (group) =>\n groupedProperties[group] && (\n <ul key={group} className=\"divide-y\">\n {groupedProperties[group].map(([name, schema]) => (\n <SchemaPropertyItem\n key={name}\n name={name}\n schema={schema}\n group={group}\n level={level}\n defaultOpen={defaultOpen}\n />\n ))}\n </ul>\n ),\n )}\n </Card>\n );\n }\n\n if (\n typeof schema.type === \"string\" &&\n [\"string\", \"number\", \"boolean\", \"integer\", \"null\"].includes(schema.type)\n ) {\n return (\n <Card className=\"p-4\">\n <span className=\"text-sm text-muted-foreground\">{schema.type}</span>\n {schema.description && (\n <Markdown\n className={cn(\n ProseClasses,\n \"text-sm leading-normal line-clamp-4\",\n )}\n content={schema.description}\n />\n )}\n </Card>\n );\n }\n\n if (schema.additionalProperties) {\n return (\n <Card className=\"my-2\">\n <CardHeader>\n <CardTitle>Additional Properties:</CardTitle>\n </CardHeader>\n <CardContent>\n {renderSchema(\n schema.additionalProperties as SchemaObject,\n level + 1,\n )}\n </CardContent>\n </Card>\n );\n }\n\n return null;\n };\n\n return renderSchema(schema, level);\n};\n","import { useState } from \"react\";\nimport { Heading } from \"../../components/Heading.js\";\nimport { Markdown, ProseClasses } from \"../../components/Markdown.js\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"../../ui/Tabs.js\";\nimport { groupBy } from \"../../util/groupBy.js\";\nimport { renderIf } from \"../../util/renderIf.js\";\nimport { OperationsFragment } from \"./OperationList.js\";\nimport { ParameterList } from \"./ParameterList.js\";\nimport { Sidecar } from \"./Sidecar.js\";\nimport { FragmentType, useFragment } from \"./graphql/index.js\";\nimport { SchemaView } from \"./schema/SchemaView.js\";\n\nexport const PARAM_GROUPS = [\"path\", \"query\", \"header\", \"cookie\"] as const;\nexport type ParameterGroup = (typeof PARAM_GROUPS)[number];\n\nexport const OperationListItem = ({\n operationFragment,\n}: {\n operationFragment: FragmentType<typeof OperationsFragment>;\n}) => {\n const operation = useFragment(OperationsFragment, operationFragment);\n const groupedParameters = groupBy(\n operation.parameters ?? [],\n (param) => param.in,\n );\n\n const first = operation.responses.at(0);\n const [selectedResponse, setSelectedResponse] = useState(first?.statusCode);\n\n return (\n <div\n key={operation.operationId}\n className=\"grid grid-cols-1 lg:grid-cols-[4fr_3fr] gap-8 items-start border-b-2 mb-16 pb-16\"\n >\n <div className=\"flex flex-col gap-4\">\n <Heading level={2} id={operation.slug} registerSidebarAnchor>\n {operation.summary}\n </Heading>\n {operation.description && (\n <Markdown\n className={`${ProseClasses} max-w-full prose-img:max-w-prose`}\n content={operation.description}\n />\n )}\n {operation.parameters && operation.parameters.length > 0 && (\n <>\n {PARAM_GROUPS.flatMap((group) =>\n groupedParameters[group]?.length ? (\n <ParameterList\n key={group}\n id={operation.slug}\n parameters={groupedParameters[group]}\n group={group}\n />\n ) : (\n []\n ),\n )}\n </>\n )}\n {renderIf(operation.requestBody?.content?.at(0)?.schema, (schema) => (\n <div className=\"mt-4 flex flex-col gap-4\">\n <Heading\n level={3}\n className=\"capitalize\"\n id={`${operation.slug}/request-body`}\n registerSidebarAnchor\n >\n Request Body\n </Heading>\n <SchemaView schema={schema} />\n </div>\n ))}\n {operation.responses.length > 0 && (\n <>\n <Heading\n level={3}\n className=\"capitalize mt-8 pt-8 border-t\"\n id={`${operation.slug}/responses`}\n registerSidebarAnchor\n >\n Responses\n </Heading>\n <Tabs\n onValueChange={(value) => setSelectedResponse(value)}\n value={selectedResponse}\n >\n {operation.responses.length > 1 && (\n <TabsList>\n {operation.responses.map((response) => (\n <TabsTrigger\n value={response.statusCode}\n key={response.statusCode}\n title={response.description ?? undefined}\n >\n {response.statusCode}\n </TabsTrigger>\n ))}\n </TabsList>\n )}\n <ul className=\"list-none m-0 px-0\">\n {operation.responses.map((response) => (\n <TabsContent\n value={response.statusCode}\n key={response.statusCode}\n >\n <SchemaView\n schema={\n response.content?.find((content) => content.schema)\n ?.schema\n }\n />\n </TabsContent>\n ))}\n </ul>\n </Tabs>\n </>\n )}\n </div>\n\n <Sidecar\n selectedResponse={selectedResponse}\n onSelectResponse={setSelectedResponse}\n operation={operation}\n />\n </div>\n );\n};\n","import { ResultOf } from \"@graphql-typed-document-node/core\";\nimport type { CSSProperties } from \"react\";\nimport { useQuery } from \"urql\";\nimport { CategoryHeading } from \"../../components/CategoryHeading.js\";\nimport { DeveloperHint } from \"../../components/DeveloperHint.js\";\nimport { ErrorPage } from \"../../components/ErrorPage.js\";\nimport { Heading } from \"../../components/Heading.js\";\nimport { InlineCode } from \"../../components/InlineCode.js\";\nimport { Markdown, ProseClasses } from \"../../components/Markdown.js\";\nimport { SyntaxHighlight } from \"../../components/SyntaxHighlight.js\";\nimport { cn } from \"../../util/cn.js\";\nimport { Endpoint } from \"./Endpoint.js\";\nimport { OperationListItem } from \"./OperationListItem.js\";\nimport StaggeredRender from \"./StaggeredRender.js\";\nimport { useOasConfig } from \"./context.js\";\nimport { graphql } from \"./graphql/index.js\";\n\nexport const OperationsFragment = graphql(/* GraphQL */ `\n fragment OperationsFragment on OperationItem {\n slug\n summary\n method\n description\n operationId\n contentTypes\n path\n parameters {\n name\n in\n description\n required\n schema\n style\n examples {\n name\n description\n externalValue\n value\n summary\n }\n }\n requestBody {\n content {\n mediaType\n encoding {\n name\n }\n examples {\n name\n description\n externalValue\n value\n summary\n }\n schema\n }\n description\n required\n }\n responses {\n statusCode\n links\n description\n content {\n examples {\n name\n description\n externalValue\n value\n summary\n }\n mediaType\n encoding {\n name\n }\n schema\n }\n }\n }\n`);\n\nexport type OperationListItemResult = ResultOf<typeof OperationsFragment>;\n\nconst AllOperationsQuery = graphql(/* GraphQL */ `\n query AllOperations($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n description\n title\n url\n version\n tags {\n name\n description\n operations {\n slug\n ...OperationsFragment\n }\n }\n }\n }\n`);\n\nconst suspenseContext = { suspense: true };\n\nexport const OperationList = () => {\n const { type, input } = useOasConfig();\n\n const [result] = useQuery({\n query: AllOperationsQuery,\n variables: { type, input },\n context: suspenseContext,\n });\n\n const error = result.error?.graphQLErrors.at(0);\n\n // Looks like there is no Suspense level error handling (yet)?\n // So we handle the error case in the component directly\n if (error) {\n return (\n <ErrorPage\n category=\"Error\"\n title=\"Schema cannot be displayed\"\n message={\n <>\n <DeveloperHint className=\"mb-4\">\n Check your configuration value <InlineCode>apis.type</InlineCode>{\" \"}\n and <InlineCode>apis.input</InlineCode> in the Zudoku config.\n </DeveloperHint>\n An error occurred while trying to fetch the API reference:\n <SyntaxHighlight code={error.toString()} language=\"plain\" />\n </>\n }\n />\n );\n }\n\n if (!result.data) return null;\n\n return (\n <div className=\"pt-[--padding-content-top]\">\n <div\n className={cn(ProseClasses, \"mb-16 max-w-full prose-img:max-w-prose\")}\n >\n <CategoryHeading>Overview</CategoryHeading>\n <Heading level={1} id=\"description\" registerSidebarAnchor>\n {result.data.schema.title}\n </Heading>\n <Markdown content={result.data.schema.description ?? \"\"} />\n </div>\n <hr />\n <div className=\"my-4 flex justify-end\">\n <Endpoint />\n </div>\n\n {result.data.schema.tags\n .filter((tag) => tag.operations.length > 0)\n .map((tag) => (\n <div key={tag.name} className=\"[content-visibility:auto]\">\n {tag.name && <CategoryHeading>{tag.name}</CategoryHeading>}\n {tag.description && (\n <Markdown\n className={`${ProseClasses} max-w-full prose-img:max-w-prose w-full mt-2 mb-12`}\n content={tag.description}\n />\n )}\n <div className=\"operation mb-12\">\n <StaggeredRender>\n {tag.operations.map((fragment) => (\n <OperationListItem\n key={fragment.slug}\n operationFragment={fragment}\n />\n ))}\n </StaggeredRender>\n </div>\n </div>\n ))}\n </div>\n );\n};\n"],"names":["useFragment","_documentNode","fragmentType","ServersQuery","graphql","CopyButton","url","isCopied","setIsCopied","useState","jsx","Button","CheckIcon","CopyIcon","context","Endpoint","result","useQuery","useOasConfig","startTransition","useTransition","selectedServer","setSelectedServer","useSelectedServerStore","servers","jsxs","InlineCode","SimpleSelect","e","server","groupBy","arr","keySelector","accumulator","val","groupedKey","renderIf","variable","callback","getParameterSchema","parameter","ParameterListItem","group","id","paramSchema","ColorizedParam","Markdown","ParameterList","parameters","Fragment","Heading","Card","a","b","objectEntries","obj","iconMap","CircleFadingPlusIcon","CircleDotIcon","CircleIcon","colorClass","LogicalGroupConnector","type","isOpen","className","cn","ChevronDownIcon","LogicalGroupItem","props","setIsOpen","Collapsible","prev","SchemaView","typeLabel","LogicalGroup","schemas","level","toggleOpen","SquareMinusIcon","SquarePlusIcon","subSchema","index","isComplexType","value","hasLogicalGroupings","LogicalSchemaTypeMap","SchemaLogicalGroup","schema","useCallback","key","SchemaPropertyItem","name","defaultOpen","showCollapseButton","ProseClasses","ListPlusIcon","renderSchema","itemsSchema","groupedProperties","propertyName","property","groupNames","CardHeader","CardTitle","CardContent","PARAM_GROUPS","OperationListItem","operationFragment","operation","OperationsFragment","groupedParameters","param","first","selectedResponse","setSelectedResponse","_a","_c","_b","Tabs","TabsList","response","TabsTrigger","TabsContent","content","Sidecar","AllOperationsQuery","suspenseContext","OperationList","input","error","ErrorPage","DeveloperHint","SyntaxHighlight","CategoryHeading","tag","StaggeredRender","fragment"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { j as r } from "./jsx-runtime-B6kdoens.js";
|
|
2
|
-
import { f as t, O as i } from "./index-
|
|
3
|
-
import { O as s } from "./index-
|
|
2
|
+
import { f as t, O as i } from "./index-BRg5pi5D.js";
|
|
3
|
+
import { O as s } from "./index-DM9hrcCG.js";
|
|
4
4
|
function u({
|
|
5
5
|
config: o,
|
|
6
6
|
client: e
|
|
@@ -10,4 +10,4 @@ function u({
|
|
|
10
10
|
export {
|
|
11
11
|
u as OpenApiRoute
|
|
12
12
|
};
|
|
13
|
-
//# sourceMappingURL=Route-
|
|
13
|
+
//# sourceMappingURL=Route-B0XuN1oC.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Route-
|
|
1
|
+
{"version":3,"file":"Route-B0XuN1oC.js","sources":["../src/lib/plugins/openapi/Route.tsx"],"sourcesContent":["import { Outlet } from \"react-router-dom\";\nimport { Provider, Client as UrqlClient } from \"urql\";\nimport { OasConfigProvider } from \"./context.js\";\nimport { OasPluginConfig } from \"./interfaces.js\";\n\nexport function OpenApiRoute({\n config,\n client,\n}: {\n config: OasPluginConfig;\n client: typeof UrqlClient;\n}) {\n return (\n <Provider value={client}>\n <OasConfigProvider value={{ config }}>\n <Outlet />\n </OasConfigProvider>\n </Provider>\n );\n}\n"],"names":["OpenApiRoute","config","client","jsx","Provider","OasConfigProvider","Outlet"],"mappings":";;;AAKO,SAASA,EAAa;AAAA,EAC3B,QAAAC;AAAA,EACA,QAAAC;AACF,GAGG;AACD,SACGC,gBAAAA,EAAAA,IAAAC,GAAA,EAAS,OAAOF,GACf,UAACC,gBAAAA,EAAA,IAAAE,GAAA,EAAkB,OAAO,EAAE,QAAAJ,EAAO,GACjC,UAACE,gBAAAA,EAAA,IAAAG,GAAA,EAAO,GACV,EACF,CAAA;AAEJ;"}
|
|
@@ -4,8 +4,8 @@ var M = (s) => {
|
|
|
4
4
|
var v = (s, t, e) => t.has(s) || M("Cannot " + e);
|
|
5
5
|
var r = (s, t, e) => (v(s, t, "read from private field"), e ? e.call(s) : t.get(s)), x = (s, t, e) => t.has(s) ? M("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(s) : t.set(s, e), y = (s, t, e, a) => (v(s, t, "write to private field"), a ? a.call(s, e) : t.set(s, e), e), g = (s, t, e) => (v(s, t, "access private method"), e);
|
|
6
6
|
import * as l from "react";
|
|
7
|
-
import { g as K } from "./hook-
|
|
8
|
-
import { S as L, s as T, h as E, n as U, d as z, e as P, f as V } from "./
|
|
7
|
+
import { g as K } from "./hook-CjQERPa7.js";
|
|
8
|
+
import { S as L, s as T, h as E, n as U, d as z, e as P, f as V } from "./utils-DNAltzXc.js";
|
|
9
9
|
import { j as i } from "./jsx-runtime-B6kdoens.js";
|
|
10
10
|
import * as o from "@radix-ui/react-select";
|
|
11
11
|
import { ChevronDown as k, ChevronUp as q, Check as G } from "lucide-react";
|
|
@@ -220,4 +220,4 @@ export {
|
|
|
220
220
|
J as e,
|
|
221
221
|
et as u
|
|
222
222
|
};
|
|
223
|
-
//# sourceMappingURL=Select-
|
|
223
|
+
//# sourceMappingURL=Select-DYKDahHt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select-Bagt3Bme.js","sources":["../../../node_modules/.pnpm/@tanstack+query-core@5.59.13/node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../../../node_modules/.pnpm/@tanstack+react-query@5.59.13_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useMutation.js","../src/lib/ui/Select.tsx"],"sourcesContent":["// src/mutationObserver.ts\nimport { getDefaultState } from \"./mutation.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { hashKey, shallowEqualObjects } from \"./utils.js\";\nvar MutationObserver = class extends Subscribable {\n #client;\n #currentResult = void 0;\n #currentMutation;\n #mutateOptions;\n constructor(client, options) {\n super();\n this.#client = client;\n this.setOptions(options);\n this.bindMethods();\n this.#updateResult();\n }\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n this.options = this.#client.defaultMutationOptions(options);\n if (!shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getMutationCache().notify({\n type: \"observerOptionsUpdated\",\n mutation: this.#currentMutation,\n observer: this\n });\n }\n if (prevOptions?.mutationKey && this.options.mutationKey && hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)) {\n this.reset();\n } else if (this.#currentMutation?.state.status === \"pending\") {\n this.#currentMutation.setOptions(this.options);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this);\n }\n }\n onMutationUpdate(action) {\n this.#updateResult();\n this.#notify(action);\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n reset() {\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = void 0;\n this.#updateResult();\n this.#notify();\n }\n mutate(variables, options) {\n this.#mutateOptions = options;\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);\n this.#currentMutation.addObserver(this);\n return this.#currentMutation.execute(variables);\n }\n #updateResult() {\n const state = this.#currentMutation?.state ?? getDefaultState();\n this.#currentResult = {\n ...state,\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n isIdle: state.status === \"idle\",\n mutate: this.mutate,\n reset: this.reset\n };\n }\n #notify(action) {\n notifyManager.batch(() => {\n if (this.#mutateOptions && this.hasListeners()) {\n const variables = this.#currentResult.variables;\n const context = this.#currentResult.context;\n if (action?.type === \"success\") {\n this.#mutateOptions.onSuccess?.(action.data, variables, context);\n this.#mutateOptions.onSettled?.(action.data, null, variables, context);\n } else if (action?.type === \"error\") {\n this.#mutateOptions.onError?.(action.error, variables, context);\n this.#mutateOptions.onSettled?.(\n void 0,\n action.error,\n variables,\n context\n );\n }\n }\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n });\n }\n};\nexport {\n MutationObserver\n};\n//# sourceMappingURL=mutationObserver.js.map","\"use client\";\n\n// src/useMutation.ts\nimport * as React from \"react\";\nimport { MutationObserver, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { noop, shouldThrowError } from \"./utils.js\";\nfunction useMutation(options, queryClient) {\n const client = useQueryClient(queryClient);\n const [observer] = React.useState(\n () => new MutationObserver(\n client,\n options\n )\n );\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n const mutate = React.useCallback(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n },\n [observer]\n );\n if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {\n throw result.error;\n }\n return { ...result, mutate, mutateAsync: result.mutate };\n}\nexport {\n useMutation\n};\n//# sourceMappingURL=useMutation.js.map","import * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\";\nimport * as React from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nconst Select = SelectPrimitive.Root;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"truncate\">{children}</span>\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"flex-shrink-0 h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName;\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"py-1.5 pl-8 pr-2 text-sm font-semibold\", className)}\n {...props}\n />\n));\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n));\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n"],"names":["MutationObserver","_a","Subscribable","client","options","__privateAdd","_MutationObserver_instances","_client","_currentResult","_currentMutation","_mutateOptions","__privateSet","__privateMethod","updateResult_fn","prevOptions","__privateGet","shallowEqualObjects","hashKey","action","notify_fn","variables","state","getDefaultState","notifyManager","context","_b","_d","_c","_f","_e","_h","_g","listener","useMutation","queryClient","useQueryClient","observer","React","result","onStoreChange","mutate","mutateOptions","noop","shouldThrowError","Select","SelectPrimitive","SelectGroup","SelectValue","SelectTrigger","className","children","props","ref","jsxs","cn","jsx","ChevronDown","SelectScrollUpButton","ChevronUp","SelectScrollDownButton","SelectContent","position","SelectLabel","SelectItem","Check","SelectSeparator"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
1
|
+
{"version":3,"file":"Select-DYKDahHt.js","sources":["../../../node_modules/.pnpm/@tanstack+query-core@5.59.13/node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../../../node_modules/.pnpm/@tanstack+react-query@5.59.13_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useMutation.js","../src/lib/ui/Select.tsx"],"sourcesContent":["// src/mutationObserver.ts\nimport { getDefaultState } from \"./mutation.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { hashKey, shallowEqualObjects } from \"./utils.js\";\nvar MutationObserver = class extends Subscribable {\n #client;\n #currentResult = void 0;\n #currentMutation;\n #mutateOptions;\n constructor(client, options) {\n super();\n this.#client = client;\n this.setOptions(options);\n this.bindMethods();\n this.#updateResult();\n }\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n this.options = this.#client.defaultMutationOptions(options);\n if (!shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getMutationCache().notify({\n type: \"observerOptionsUpdated\",\n mutation: this.#currentMutation,\n observer: this\n });\n }\n if (prevOptions?.mutationKey && this.options.mutationKey && hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)) {\n this.reset();\n } else if (this.#currentMutation?.state.status === \"pending\") {\n this.#currentMutation.setOptions(this.options);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this);\n }\n }\n onMutationUpdate(action) {\n this.#updateResult();\n this.#notify(action);\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n reset() {\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = void 0;\n this.#updateResult();\n this.#notify();\n }\n mutate(variables, options) {\n this.#mutateOptions = options;\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);\n this.#currentMutation.addObserver(this);\n return this.#currentMutation.execute(variables);\n }\n #updateResult() {\n const state = this.#currentMutation?.state ?? getDefaultState();\n this.#currentResult = {\n ...state,\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n isIdle: state.status === \"idle\",\n mutate: this.mutate,\n reset: this.reset\n };\n }\n #notify(action) {\n notifyManager.batch(() => {\n if (this.#mutateOptions && this.hasListeners()) {\n const variables = this.#currentResult.variables;\n const context = this.#currentResult.context;\n if (action?.type === \"success\") {\n this.#mutateOptions.onSuccess?.(action.data, variables, context);\n this.#mutateOptions.onSettled?.(action.data, null, variables, context);\n } else if (action?.type === \"error\") {\n this.#mutateOptions.onError?.(action.error, variables, context);\n this.#mutateOptions.onSettled?.(\n void 0,\n action.error,\n variables,\n context\n );\n }\n }\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n });\n }\n};\nexport {\n MutationObserver\n};\n//# sourceMappingURL=mutationObserver.js.map","\"use client\";\n\n// src/useMutation.ts\nimport * as React from \"react\";\nimport { MutationObserver, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { noop, shouldThrowError } from \"./utils.js\";\nfunction useMutation(options, queryClient) {\n const client = useQueryClient(queryClient);\n const [observer] = React.useState(\n () => new MutationObserver(\n client,\n options\n )\n );\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n const mutate = React.useCallback(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n },\n [observer]\n );\n if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {\n throw result.error;\n }\n return { ...result, mutate, mutateAsync: result.mutate };\n}\nexport {\n useMutation\n};\n//# sourceMappingURL=useMutation.js.map","import * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\";\nimport * as React from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nconst Select = SelectPrimitive.Root;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"truncate\">{children}</span>\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"flex-shrink-0 h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName;\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"py-1.5 pl-8 pr-2 text-sm font-semibold\", className)}\n {...props}\n />\n));\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n));\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n"],"names":["MutationObserver","_a","Subscribable","client","options","__privateAdd","_MutationObserver_instances","_client","_currentResult","_currentMutation","_mutateOptions","__privateSet","__privateMethod","updateResult_fn","prevOptions","__privateGet","shallowEqualObjects","hashKey","action","notify_fn","variables","state","getDefaultState","notifyManager","context","_b","_d","_c","_f","_e","_h","_g","listener","useMutation","queryClient","useQueryClient","observer","React","result","onStoreChange","mutate","mutateOptions","noop","shouldThrowError","Select","SelectPrimitive","SelectGroup","SelectValue","SelectTrigger","className","children","props","ref","jsxs","cn","jsx","ChevronDown","SelectScrollUpButton","ChevronUp","SelectScrollDownButton","SelectContent","position","SelectLabel","SelectItem","Check","SelectSeparator"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { j as s } from "./jsx-runtime-B6kdoens.js";
|
|
2
2
|
import { UnlinkIcon as fe } from "lucide-react";
|
|
3
|
-
import { c as le, L as me, d as de } from "./index-
|
|
3
|
+
import { c as le, L as me, d as de } from "./index-DM9hrcCG.js";
|
|
4
4
|
import { C as pe } from "./CategoryHeading-Bb9dqxD3.js";
|
|
5
5
|
import { D as L } from "./DeveloperHint-DHdLXGHA.js";
|
|
6
|
-
import { P as Ee, H as ve } from "./Markdown-
|
|
6
|
+
import { P as Ee, H as ve } from "./Markdown-D6UxMbZm.js";
|
|
7
7
|
import { Z as w } from "./invariant-Caa8-XvF.js";
|
|
8
8
|
import { c as xe } from "./router-BsfSoK2j.js";
|
|
9
9
|
import N, { useContext as ye } from "react";
|
|
10
|
-
import { u as Se } from "./useExposedProps-
|
|
10
|
+
import { u as Se } from "./useExposedProps-BxyHjPNN.js";
|
|
11
11
|
const be = () => {
|
|
12
12
|
const n = le();
|
|
13
13
|
return /* @__PURE__ */ s.jsxs("div", { className: Ee + " h-full pt-[--padding-content-top]", children: [
|
|
@@ -238,4 +238,4 @@ export {
|
|
|
238
238
|
Oe as S,
|
|
239
239
|
Fe as a
|
|
240
240
|
};
|
|
241
|
-
//# sourceMappingURL=SlotletProvider-
|
|
241
|
+
//# sourceMappingURL=SlotletProvider-mhjLPG44.js.map
|