zudoku 0.16.2 → 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.
Files changed (174) hide show
  1. package/dist/app/entry.server.js +4 -5
  2. package/dist/app/entry.server.js.map +1 -1
  3. package/dist/app/main.d.ts +1 -1
  4. package/dist/app/main.js +2 -2
  5. package/dist/app/main.js.map +1 -1
  6. package/dist/config/validators/validate.d.ts +44 -44
  7. package/dist/config/validators/validate.js.map +1 -1
  8. package/dist/index.d.ts +2 -2
  9. package/dist/index.js +1 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/lib/authentication/authentication.d.ts +2 -2
  12. package/dist/lib/authentication/state.d.ts +1 -1
  13. package/dist/lib/authentication/state.js +5 -3
  14. package/dist/lib/authentication/state.js.map +1 -1
  15. package/dist/lib/authentication/use-broadcast/shared.d.ts +48 -0
  16. package/dist/lib/authentication/use-broadcast/shared.js +243 -0
  17. package/dist/lib/authentication/use-broadcast/shared.js.map +1 -0
  18. package/dist/lib/authentication/use-broadcast/useBroadcast.d.ts +24 -0
  19. package/dist/lib/authentication/use-broadcast/useBroadcast.js +106 -0
  20. package/dist/lib/authentication/use-broadcast/useBroadcast.js.map +1 -0
  21. package/dist/lib/components/ClientOnly.d.ts +4 -2
  22. package/dist/lib/components/ClientOnly.js +1 -1
  23. package/dist/lib/components/ClientOnly.js.map +1 -1
  24. package/dist/lib/components/Header.js +4 -2
  25. package/dist/lib/components/Header.js.map +1 -1
  26. package/dist/lib/components/{DevPortal.d.ts → Zudoku.d.ts} +3 -3
  27. package/dist/lib/components/{DevPortal.js → Zudoku.js} +11 -11
  28. package/dist/lib/components/Zudoku.js.map +1 -0
  29. package/dist/lib/components/context/ZudokuContext.d.ts +4 -4
  30. package/dist/lib/components/context/ZudokuContext.js +1 -1
  31. package/dist/lib/components/context/ZudokuContext.js.map +1 -1
  32. package/dist/lib/components/context/ZudokuProvider.d.ts +2 -2
  33. package/dist/lib/components/context/ZudokuProvider.js.map +1 -1
  34. package/dist/lib/components/index.d.ts +4 -7
  35. package/dist/lib/components/index.js +2 -3
  36. package/dist/lib/components/index.js.map +1 -1
  37. package/dist/lib/core/{DevPortalContext.d.ts → ZudokuContext.d.ts} +5 -5
  38. package/dist/lib/core/{DevPortalContext.js → ZudokuContext.js} +2 -2
  39. package/dist/lib/core/ZudokuContext.js.map +1 -0
  40. package/dist/lib/core/plugins.d.ts +12 -12
  41. package/dist/lib/core/plugins.js.map +1 -1
  42. package/dist/lib/plugins/api-keys/index.d.ts +9 -9
  43. package/dist/lib/plugins/api-keys/index.js.map +1 -1
  44. package/dist/lib/plugins/custom-pages/index.d.ts +2 -2
  45. package/dist/lib/plugins/custom-pages/index.js.map +1 -1
  46. package/dist/lib/plugins/markdown/index.d.ts +2 -2
  47. package/dist/lib/plugins/markdown/index.js.map +1 -1
  48. package/dist/lib/plugins/openapi/CollapsibleCode.js +4 -2
  49. package/dist/lib/plugins/openapi/CollapsibleCode.js.map +1 -1
  50. package/dist/lib/plugins/openapi/OperationList.js +1 -1
  51. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  52. package/dist/lib/plugins/openapi/ParameterListItem.js +6 -1
  53. package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
  54. package/dist/lib/plugins/openapi/Sidecar.js +28 -24
  55. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  56. package/dist/lib/plugins/openapi/client/createMemoryClient.d.ts +1 -4
  57. package/dist/lib/plugins/openapi/client/createMemoryClient.js +9 -1
  58. package/dist/lib/plugins/openapi/client/createMemoryClient.js.map +1 -1
  59. package/dist/lib/plugins/openapi/client/createWorkerClient.js +2 -1
  60. package/dist/lib/plugins/openapi/client/createWorkerClient.js.map +1 -1
  61. package/dist/lib/plugins/openapi/index.d.ts +2 -2
  62. package/dist/lib/plugins/openapi/index.js.map +1 -1
  63. package/dist/lib/plugins/redirect/index.d.ts +2 -2
  64. package/dist/lib/plugins/redirect/index.js.map +1 -1
  65. package/dist/lib/plugins/search-inkeep/index.d.ts +2 -2
  66. package/dist/lib/plugins/search-inkeep/index.js.map +1 -1
  67. package/dist/lib/ui/ActionButton.d.ts +4 -0
  68. package/dist/lib/ui/ActionButton.js +10 -0
  69. package/dist/lib/ui/ActionButton.js.map +1 -0
  70. package/dist/lib/util/useIsomorphicLayoutEffect.d.ts +3 -0
  71. package/dist/lib/util/useIsomorphicLayoutEffect.js +4 -0
  72. package/dist/lib/util/useIsomorphicLayoutEffect.js.map +1 -0
  73. package/dist/lib/util/useOnScreen.d.ts +4 -0
  74. package/dist/lib/util/useOnScreen.js +19 -0
  75. package/dist/lib/util/useOnScreen.js.map +1 -0
  76. package/dist/vite/plugin-mdx.d.ts +0 -6
  77. package/dist/vite/plugin-mdx.js.map +1 -1
  78. package/lib/{AnchorLink-BbB2q-jx.js → AnchorLink-DYbUOP9U.js} +2 -2
  79. package/lib/{AnchorLink-BbB2q-jx.js.map → AnchorLink-DYbUOP9U.js.map} +1 -1
  80. package/lib/{AuthenticationPlugin-C9BHGXlE.js → AuthenticationPlugin-bqGAKfot.js} +3 -3
  81. package/lib/{AuthenticationPlugin-C9BHGXlE.js.map → AuthenticationPlugin-bqGAKfot.js.map} +1 -1
  82. package/lib/{ClientOnly-CVN6leDu.js → ClientOnly-E7hGysn1.js} +4 -4
  83. package/lib/ClientOnly-E7hGysn1.js.map +1 -0
  84. package/lib/{Markdown-BDcCAWwm.js → Markdown-D6UxMbZm.js} +2 -2
  85. package/lib/{Markdown-BDcCAWwm.js.map → Markdown-D6UxMbZm.js.map} +1 -1
  86. package/lib/{MdxPage-DKMH_t0f.js → MdxPage-DRKqyn2b.js} +5 -5
  87. package/lib/{MdxPage-DKMH_t0f.js.map → MdxPage-DRKqyn2b.js.map} +1 -1
  88. package/lib/{OperationList-35iw_Gil.js → OperationList-BHUBGM0c.js} +116 -113
  89. package/lib/OperationList-BHUBGM0c.js.map +1 -0
  90. package/lib/{Route-BsEZmkNl.js → Route-B0XuN1oC.js} +3 -3
  91. package/lib/{Route-BsEZmkNl.js.map → Route-B0XuN1oC.js.map} +1 -1
  92. package/lib/{Select-Bagt3Bme.js → Select-DYKDahHt.js} +3 -3
  93. package/lib/{Select-Bagt3Bme.js.map → Select-DYKDahHt.js.map} +1 -1
  94. package/lib/{Spinner-C6zroowC.js → SidebarBadge-Bbt92M5K.js} +16 -18
  95. package/lib/SidebarBadge-Bbt92M5K.js.map +1 -0
  96. package/lib/{SlotletProvider-Da7eFgd2.js → SlotletProvider-mhjLPG44.js} +4 -4
  97. package/lib/{SlotletProvider-Da7eFgd2.js.map → SlotletProvider-mhjLPG44.js.map} +1 -1
  98. package/lib/Spinner-ChOGyPls.js +51 -0
  99. package/lib/Spinner-ChOGyPls.js.map +1 -0
  100. package/lib/{hook-sn0zMTkE.js → hook-CjQERPa7.js} +3 -3
  101. package/lib/{hook-sn0zMTkE.js.map → hook-CjQERPa7.js.map} +1 -1
  102. package/lib/{index-BdD8UbS-.js → index-BRg5pi5D.js} +1351 -1364
  103. package/lib/index-BRg5pi5D.js.map +1 -0
  104. package/lib/{index-CRo94sKK.js → index-DM9hrcCG.js} +4 -4
  105. package/lib/{index-CRo94sKK.js.map → index-DM9hrcCG.js.map} +1 -1
  106. package/lib/state-BsPrOUAh.js +252 -0
  107. package/lib/state-BsPrOUAh.js.map +1 -0
  108. package/lib/ui/ActionButton.js +24 -0
  109. package/lib/ui/ActionButton.js.map +1 -0
  110. package/lib/urql-core-35Qt_U4i.js +1511 -0
  111. package/lib/{urql-core-KJnLL26g.js.map → urql-core-35Qt_U4i.js.map} +1 -1
  112. package/lib/{useExposedProps-ChOIUaS4.js → useExposedProps-BxyHjPNN.js} +2 -2
  113. package/lib/{useExposedProps-ChOIUaS4.js.map → useExposedProps-BxyHjPNN.js.map} +1 -1
  114. package/lib/{ZudokuContext-BKXGJTmu.js → utils-DNAltzXc.js} +153 -152
  115. package/lib/utils-DNAltzXc.js.map +1 -0
  116. package/lib/zudoku.auth-auth0.js +1 -1
  117. package/lib/zudoku.auth-clerk.js +2 -2
  118. package/lib/zudoku.auth-openid.js +4 -4
  119. package/lib/zudoku.components.js +690 -667
  120. package/lib/zudoku.components.js.map +1 -1
  121. package/lib/zudoku.openapi-worker.js +737 -729
  122. package/lib/zudoku.openapi-worker.js.map +1 -1
  123. package/lib/zudoku.plugin-api-keys.js +5 -5
  124. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  125. package/lib/zudoku.plugin-custom-pages.js +2 -2
  126. package/lib/zudoku.plugin-custom-pages.js.map +1 -1
  127. package/lib/zudoku.plugin-markdown.js +1 -1
  128. package/lib/zudoku.plugin-markdown.js.map +1 -1
  129. package/lib/zudoku.plugin-openapi.js +6 -6
  130. package/lib/zudoku.plugin-redirect.js.map +1 -1
  131. package/lib/zudoku.plugin-search-inkeep.js +1 -1
  132. package/lib/zudoku.plugin-search-inkeep.js.map +1 -1
  133. package/package.json +2 -2
  134. package/src/app/entry.server.tsx +9 -5
  135. package/src/app/main.tsx +4 -4
  136. package/src/lib/authentication/authentication.ts +2 -2
  137. package/src/lib/authentication/state.ts +12 -5
  138. package/{LICENSE.md → src/lib/authentication/use-broadcast/LICENSE.md} +2 -2
  139. package/src/lib/authentication/use-broadcast/shared.ts +372 -0
  140. package/src/lib/authentication/use-broadcast/useBroadcast.ts +146 -0
  141. package/src/lib/components/ClientOnly.tsx +6 -3
  142. package/src/lib/components/Header.tsx +31 -25
  143. package/src/lib/components/Zudoku.tsx +113 -0
  144. package/src/lib/components/context/ZudokuContext.ts +3 -3
  145. package/src/lib/components/context/ZudokuProvider.tsx +2 -2
  146. package/src/lib/components/index.ts +2 -3
  147. package/src/lib/core/{DevPortalContext.ts → ZudokuContext.ts} +5 -5
  148. package/src/lib/core/plugins.ts +12 -16
  149. package/src/lib/plugins/api-keys/index.tsx +9 -9
  150. package/src/lib/plugins/custom-pages/index.tsx +2 -2
  151. package/src/lib/plugins/markdown/index.tsx +2 -2
  152. package/src/lib/plugins/openapi/CollapsibleCode.tsx +5 -8
  153. package/src/lib/plugins/openapi/OperationList.tsx +2 -1
  154. package/src/lib/plugins/openapi/ParameterListItem.tsx +37 -31
  155. package/src/lib/plugins/openapi/Sidecar.tsx +65 -51
  156. package/src/lib/plugins/openapi/client/createMemoryClient.ts +17 -3
  157. package/src/lib/plugins/openapi/client/createWorkerClient.ts +5 -1
  158. package/src/lib/plugins/openapi/index.tsx +2 -4
  159. package/src/lib/plugins/redirect/index.tsx +2 -2
  160. package/src/lib/plugins/search-inkeep/index.tsx +2 -2
  161. package/src/lib/ui/ActionButton.tsx +28 -0
  162. package/src/lib/util/useIsomorphicLayoutEffect.ts +5 -0
  163. package/src/lib/util/useOnScreen.ts +32 -0
  164. package/dist/lib/components/DevPortal.js.map +0 -1
  165. package/dist/lib/core/DevPortalContext.js.map +0 -1
  166. package/lib/ClientOnly-CVN6leDu.js.map +0 -1
  167. package/lib/OperationList-35iw_Gil.js.map +0 -1
  168. package/lib/Spinner-C6zroowC.js.map +0 -1
  169. package/lib/ZudokuContext-BKXGJTmu.js.map +0 -1
  170. package/lib/index-BdD8UbS-.js.map +0 -1
  171. package/lib/state-CsuHT8ZO.js +0 -183
  172. package/lib/state-CsuHT8ZO.js.map +0 -1
  173. package/lib/urql-core-KJnLL26g.js +0 -1455
  174. 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-BbB2q-jx.js";
4
- import { L as v } from "./index-CRo94sKK.js";
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-BDcCAWwm.js";
7
- import { a as E, b as I } from "./ZudokuContext-BKXGJTmu.js";
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-DKMH_t0f.js.map
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":"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"}
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,21 +1,21 @@
1
1
  import { j as e } from "./jsx-runtime-B6kdoens.js";
2
- import { g as v, u as w, a as q, S as $, C as L, b as R, E as z } from "./index-BdD8UbS-.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-BRg5pi5D.js";
3
3
  import { C as O } from "./CategoryHeading-Bb9dqxD3.js";
4
- import { D as E } from "./DeveloperHint-DHdLXGHA.js";
5
- import { I as b, M as x, H as h, P as u, S as F } from "./Markdown-BDcCAWwm.js";
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-D6UxMbZm.js";
6
6
  import { c as j } from "./cn-BmFQLtkS.js";
7
- import { CheckIcon as D, CopyIcon as H, ChevronDownIcon as B, CircleFadingPlusIcon as M, CircleDotIcon as G, CircleIcon as Q, SquareMinusIcon as V, SquarePlusIcon as _, ListPlusIcon as J } from "lucide-react";
8
- import { useTransition as K, useState as y, useCallback as U } from "react";
9
- import { a as W } from "./state-CsuHT8ZO.js";
10
- import { Button as P } from "./ui/Button.js";
11
- import { Tabs as Z, TabsList as X, TabsTrigger as Y, TabsContent as ee } from "./ui/Tabs.js";
12
- import { S as se } from "./StaggeredRender-DDHSzQKE.js";
13
- import { Card as p, CardHeader as te, CardTitle as re, CardContent as ne } from "./ui/Card.js";
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
+ import { useTransition as J, useState as y, useCallback as K } from "react";
9
+ import { a as U } from "./state-BsPrOUAh.js";
10
+ import { Button as q } from "./ui/Button.js";
11
+ import { Tabs as W, TabsList as Z, TabsTrigger as X, TabsContent as Y } from "./ui/Tabs.js";
12
+ import { S as ee } from "./StaggeredRender-DDHSzQKE.js";
13
+ import { Card as p, CardHeader as se, CardTitle as te, CardContent as re } from "./ui/Card.js";
14
14
  import * as m from "@radix-ui/react-collapsible";
15
- function ie(t, s) {
15
+ function ne(t, s) {
16
16
  return s;
17
17
  }
18
- const ae = v(
18
+ const ie = v(
19
19
  /* GraphQL */
20
20
  `
21
21
  query ServersQuery($input: JSON!, $type: SchemaType!) {
@@ -28,26 +28,26 @@ const ae = v(
28
28
  }
29
29
  `
30
30
  ), S = ({ url: t }) => {
31
- const [s, n] = y(!1);
31
+ const [s, i] = y(!1);
32
32
  return /* @__PURE__ */ e.jsx(
33
- P,
33
+ q,
34
34
  {
35
35
  onClick: () => {
36
36
  navigator.clipboard.writeText(t).then(() => {
37
- n(!0), setTimeout(() => n(!1), 2e3);
37
+ i(!0), setTimeout(() => i(!1), 2e3);
38
38
  });
39
39
  },
40
40
  variant: "ghost",
41
41
  size: "icon",
42
- children: s ? /* @__PURE__ */ e.jsx(D, { className: "text-green-600", size: 14 }) : /* @__PURE__ */ e.jsx(H, { size: 14, strokeWidth: 1.3 })
42
+ children: s ? /* @__PURE__ */ e.jsx(F, { className: "text-green-600", size: 14 }) : /* @__PURE__ */ e.jsx(D, { size: 14, strokeWidth: 1.3 })
43
43
  }
44
44
  );
45
- }, oe = { suspense: !0 }, le = () => {
46
- const [t] = w({
47
- query: ae,
48
- variables: q(),
49
- context: oe
50
- }), [, s] = K(), { selectedServer: n, setSelectedServer: i } = W();
45
+ }, ae = { suspense: !0 }, oe = () => {
46
+ const [t] = I({
47
+ query: ie,
48
+ variables: w(),
49
+ context: ae
50
+ }), [, s] = J(), { selectedServer: i, setSelectedServer: n } = U();
51
51
  if (!t.data) return null;
52
52
  const { servers: r } = t.data.schema;
53
53
  return r.length === 1 ? /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-2", children: [
@@ -60,13 +60,13 @@ const ae = v(
60
60
  ":"
61
61
  ] }),
62
62
  /* @__PURE__ */ e.jsx(
63
- $,
63
+ k,
64
64
  {
65
65
  className: "font-mono text-xs bg-border/50 dark:bg-border/70 py-1.5 max-w-[450px] truncate",
66
66
  onChange: (a) => s(() => {
67
- i(a.target.value);
67
+ n(a.target.value);
68
68
  }),
69
- value: n ?? t.data.schema.url,
69
+ value: i ?? t.data.schema.url,
70
70
  showChevrons: r.length > 1,
71
71
  options: r.map((a) => ({
72
72
  value: a.url,
@@ -74,59 +74,62 @@ const ae = v(
74
74
  }))
75
75
  }
76
76
  ),
77
- /* @__PURE__ */ e.jsx(S, { url: n ?? t.data.schema.url })
77
+ /* @__PURE__ */ e.jsx(S, { url: i ?? t.data.schema.url })
78
78
  ] });
79
- }, T = (t, s) => t.reduce(
80
- (n, i) => {
81
- const r = s(i);
82
- return n[r] || (n[r] = []), n[r].push(i), n;
79
+ }, P = (t, s) => t.reduce(
80
+ (i, n) => {
81
+ const r = s(n);
82
+ return i[r] || (i[r] = []), i[r].push(n), i;
83
83
  },
84
84
  {}
85
- ), ce = (t, s) => t ? s(t) : void 0, I = (t) => t.schema != null && typeof t.schema == "object" ? t.schema : {
85
+ ), le = (t, s) => t ? s(t) : void 0, ce = (t) => t.schema != null && typeof t.schema == "object" ? t.schema : {
86
86
  type: "string"
87
87
  }, de = ({
88
88
  parameter: t,
89
89
  group: s,
90
- id: n
91
- }) => /* @__PURE__ */ e.jsxs("li", { className: "p-4 bg-border/20 text-sm flex flex-col gap-1", children: [
92
- /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-2", children: [
93
- /* @__PURE__ */ e.jsx("code", { children: s === "path" ? /* @__PURE__ */ e.jsx(
94
- L,
90
+ id: i
91
+ }) => {
92
+ const n = ce(t);
93
+ return /* @__PURE__ */ e.jsxs("li", { className: "p-4 bg-border/20 text-sm flex flex-col gap-1", children: [
94
+ /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-2", children: [
95
+ /* @__PURE__ */ e.jsx("code", { children: s === "path" ? /* @__PURE__ */ e.jsx(
96
+ $,
97
+ {
98
+ name: t.name,
99
+ backgroundOpacity: "15%",
100
+ slug: i + "-" + t.name.toLocaleLowerCase()
101
+ }
102
+ ) : t.name }),
103
+ t.required && /* @__PURE__ */ e.jsx("span", { className: "py-px px-1.5 font-medium bg-primary/75 text-muted rounded-lg", children: "required" }),
104
+ n.type && /* @__PURE__ */ e.jsx("span", { className: "text-muted-foreground", children: n.type === "array" ? `${n.items.type}[]` : n.type })
105
+ ] }),
106
+ t.description && /* @__PURE__ */ e.jsx(
107
+ x,
95
108
  {
96
- name: t.name,
97
- backgroundOpacity: "15%",
98
- slug: n + "-" + t.name.toLocaleLowerCase()
109
+ content: t.description,
110
+ className: "text-sm prose-p:my-1 prose-code:whitespace-pre-line"
99
111
  }
100
- ) : t.name }),
101
- t.required && /* @__PURE__ */ e.jsx("span", { className: "py-px px-1.5 font-medium bg-primary/75 text-muted rounded-lg", children: "required" }),
102
- I(t).type && /* @__PURE__ */ e.jsx("span", { className: "text-muted-foreground", children: I(t).type })
103
- ] }),
104
- t.description && /* @__PURE__ */ e.jsx(
105
- x,
106
- {
107
- content: t.description,
108
- className: "text-sm prose-p:my-1 prose-code:whitespace-pre-line"
109
- }
110
- )
111
- ] }), pe = ({
112
+ )
113
+ ] });
114
+ }, pe = ({
112
115
  group: t,
113
116
  parameters: s,
114
- id: n
117
+ id: i
115
118
  }) => /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
116
- /* @__PURE__ */ e.jsx(h, { level: 3, id: `${n}/${t}-parameters`, className: "capitalize", children: t === "header" ? "Headers" : `${t} Parameters` }),
117
- /* @__PURE__ */ e.jsx(p, { children: /* @__PURE__ */ e.jsx("ul", { className: "list-none m-0 px-0 divide-y ", children: s.sort((i, r) => i.required === r.required ? 0 : i.required ? -1 : 1).map((i) => /* @__PURE__ */ e.jsx(
119
+ /* @__PURE__ */ e.jsx(h, { level: 3, id: `${i}/${t}-parameters`, className: "capitalize", children: t === "header" ? "Headers" : `${t} Parameters` }),
120
+ /* @__PURE__ */ e.jsx(p, { children: /* @__PURE__ */ e.jsx("ul", { className: "list-none m-0 px-0 divide-y ", children: s.sort((n, r) => n.required === r.required ? 0 : n.required ? -1 : 1).map((n) => /* @__PURE__ */ e.jsx(
118
121
  de,
119
122
  {
120
- parameter: i,
121
- id: n,
123
+ parameter: n,
124
+ id: i,
122
125
  group: t
123
126
  },
124
- `${i.name}-${i.in}`
127
+ `${n.name}-${n.in}`
125
128
  )) }) })
126
129
  ] }), me = (t) => Object.entries(t), xe = {
127
- AND: /* @__PURE__ */ e.jsx(M, { size: 16, className: "fill-card" }),
128
- OR: /* @__PURE__ */ e.jsx(G, { size: 16, className: "fill-card" }),
129
- ONE: /* @__PURE__ */ e.jsx(Q, { size: 14, className: "fill-card" })
130
+ AND: /* @__PURE__ */ e.jsx(B, { size: 16, className: "fill-card" }),
131
+ OR: /* @__PURE__ */ e.jsx(M, { size: 16, className: "fill-card" }),
132
+ ONE: /* @__PURE__ */ e.jsx(G, { size: 14, className: "fill-card" })
130
133
  }, ue = {
131
134
  AND: "text-green-500 dark:text-green-300/60",
132
135
  OR: "text-blue-400 dark:text-blue-500",
@@ -134,7 +137,7 @@ const ae = v(
134
137
  }, je = ({
135
138
  type: t,
136
139
  isOpen: s,
137
- className: n
140
+ className: i
138
141
  }) => /* @__PURE__ */ e.jsx(
139
142
  "div",
140
143
  {
@@ -142,7 +145,7 @@ const ae = v(
142
145
  ue[t],
143
146
  "relative text-sm flex py-2",
144
147
  "before:border-l before:absolute before:-top-2 before:-bottom-2 before:border-border before:border-dashed before:content-['']",
145
- n
148
+ i
146
149
  ),
147
150
  children: /* @__PURE__ */ e.jsxs("div", { className: "-translate-x-[7px] flex gap-1 items-center", children: [
148
151
  xe[t],
@@ -153,18 +156,18 @@ const ae = v(
153
156
  "translate-y-px mx-px opacity-0 group-hover:opacity-100 transition",
154
157
  !s && "-rotate-90"
155
158
  ),
156
- children: /* @__PURE__ */ e.jsx(B, { size: 16 })
159
+ children: /* @__PURE__ */ e.jsx(H, { size: 16 })
157
160
  }
158
161
  )
159
162
  ] })
160
163
  }
161
164
  ), ge = (t) => {
162
- const [s, n] = y(!0);
165
+ const [s, i] = y(!0);
163
166
  return /* @__PURE__ */ e.jsxs(
164
167
  m.Root,
165
168
  {
166
169
  open: s,
167
- onOpenChange: () => n((i) => !i),
170
+ onOpenChange: () => i((n) => !n),
168
171
  className: "group",
169
172
  children: [
170
173
  /* @__PURE__ */ e.jsx(m.Trigger, { children: /* @__PURE__ */ e.jsx(je, { type: t.type, isOpen: s }) }),
@@ -180,12 +183,12 @@ const ae = v(
180
183
  }, fe = ({
181
184
  schemas: t,
182
185
  type: s,
183
- isOpen: n,
184
- level: i,
186
+ isOpen: i,
187
+ level: n,
185
188
  toggleOpen: r
186
- }) => /* @__PURE__ */ e.jsx(m.Root, { open: n, onOpenChange: r, asChild: !0, children: /* @__PURE__ */ e.jsxs(p, { className: "px-6", children: [
189
+ }) => /* @__PURE__ */ e.jsx(m.Root, { open: i, onOpenChange: r, asChild: !0, children: /* @__PURE__ */ e.jsxs(p, { className: "px-6", children: [
187
190
  /* @__PURE__ */ e.jsxs(m.Trigger, { className: "flex gap-2 items-center py-2 w-full text-sm text-muted-foreground -translate-x-1.5", children: [
188
- n ? /* @__PURE__ */ e.jsx(V, { size: 14 }) : /* @__PURE__ */ e.jsx(_, { size: 14 }),
191
+ i ? /* @__PURE__ */ e.jsx(Q, { size: 14 }) : /* @__PURE__ */ e.jsx(V, { size: 14 }),
189
192
  /* @__PURE__ */ e.jsx("span", { children: he[s] })
190
193
  ] }),
191
194
  /* @__PURE__ */ e.jsx(m.Content, { className: "pb-4", children: t.map((a, l) => (
@@ -195,7 +198,7 @@ const ae = v(
195
198
  {
196
199
  type: s,
197
200
  schema: a,
198
- level: i
201
+ level: n
199
202
  },
200
203
  l
201
204
  )
@@ -204,11 +207,11 @@ const ae = v(
204
207
  allOf: "AND",
205
208
  anyOf: "OR",
206
209
  oneOf: "ONE"
207
- }, A = ({
210
+ }, T = ({
208
211
  schema: t,
209
212
  level: s
210
213
  }) => {
211
- const [n, i] = y(!0), r = U(() => i((a) => !a), []);
214
+ const [i, n] = y(!0), r = K(() => n((a) => !a), []);
212
215
  for (const [a, l] of me(be))
213
216
  if (t[a])
214
217
  return /* @__PURE__ */ e.jsx(
@@ -216,7 +219,7 @@ const ae = v(
216
219
  {
217
220
  schemas: t[a],
218
221
  type: l,
219
- isOpen: n,
222
+ isOpen: i,
220
223
  toggleOpen: r,
221
224
  level: s
222
225
  }
@@ -224,8 +227,8 @@ const ae = v(
224
227
  }, Ne = ({
225
228
  name: t,
226
229
  schema: s,
227
- group: n,
228
- level: i,
230
+ group: i,
231
+ level: n,
229
232
  defaultOpen: r = !1,
230
233
  showCollapseButton: a = !0
231
234
  }) => {
@@ -237,7 +240,7 @@ const ae = v(
237
240
  s.items.type,
238
241
  "[]"
239
242
  ] }) : Array.isArray(s.type) ? /* @__PURE__ */ e.jsx("span", { children: s.type.join(" | ") }) : /* @__PURE__ */ e.jsx("span", { children: s.type }) }),
240
- n === "optional" && /* @__PURE__ */ e.jsx("span", { className: "py-px px-1.5 font-medium border rounded-lg", children: "optional" })
243
+ i === "optional" && /* @__PURE__ */ e.jsx("span", { className: "py-px px-1.5 font-medium border rounded-lg", children: "optional" })
241
244
  ] }),
242
245
  s.description && /* @__PURE__ */ e.jsx(
243
246
  x,
@@ -254,18 +257,18 @@ const ae = v(
254
257
  onOpenChange: () => g(!l),
255
258
  children: [
256
259
  a && /* @__PURE__ */ e.jsx(m.Trigger, { asChild: !0, children: /* @__PURE__ */ e.jsxs(
257
- P,
260
+ q,
258
261
  {
259
262
  variant: "outline",
260
263
  size: "sm",
261
264
  className: "mt-2 flex gap-1.5",
262
265
  children: [
263
- /* @__PURE__ */ e.jsx(J, { size: 18 }),
266
+ /* @__PURE__ */ e.jsx(_, { size: 18 }),
264
267
  l ? "Hide nested properties" : "Show nested properties"
265
268
  ]
266
269
  }
267
270
  ) }),
268
- /* @__PURE__ */ e.jsx(m.Content, { children: /* @__PURE__ */ e.jsx("div", { className: "mt-2", children: N(s) ? /* @__PURE__ */ e.jsx(A, { schema: s, level: i + 1 }) : s.type === "object" ? /* @__PURE__ */ e.jsx(f, { schema: s, level: i + 1 }) : s.type === "array" && typeof s.items == "object" && /* @__PURE__ */ e.jsx(f, { schema: s.items, level: i + 1 }) }) })
271
+ /* @__PURE__ */ e.jsx(m.Content, { children: /* @__PURE__ */ e.jsx("div", { className: "mt-2", children: N(s) ? /* @__PURE__ */ e.jsx(T, { schema: s, level: n + 1 }) : s.type === "object" ? /* @__PURE__ */ e.jsx(f, { schema: s, level: n + 1 }) : s.type === "array" && typeof s.items == "object" && /* @__PURE__ */ e.jsx(f, { schema: s.items, level: n + 1 }) }) })
269
272
  ]
270
273
  }
271
274
  )
@@ -273,13 +276,13 @@ const ae = v(
273
276
  }, f = ({
274
277
  schema: t,
275
278
  level: s = 0,
276
- defaultOpen: n = !1
279
+ defaultOpen: i = !1
277
280
  }) => {
278
281
  if (!t || Object.keys(t).length === 0)
279
282
  return /* @__PURE__ */ e.jsx(p, { className: "p-4", children: /* @__PURE__ */ e.jsx("span", { className: "text-sm text-muted-foreground italic", children: "No response specified" }) });
280
- const i = (r, a) => {
283
+ const n = (r, a) => {
281
284
  if (N(r))
282
- return /* @__PURE__ */ e.jsx(A, { schema: r, level: a });
285
+ return /* @__PURE__ */ e.jsx(T, { schema: r, level: a });
283
286
  if (r.type === "array" && r.items) {
284
287
  const l = r.items;
285
288
  return typeof l.type == "string" && ["string", "number", "boolean", "integer"].includes(l.type) ? /* @__PURE__ */ e.jsxs(p, { className: "p-4", children: [
@@ -299,8 +302,8 @@ const ae = v(
299
302
  )
300
303
  ] }) : l.type === "object" ? /* @__PURE__ */ e.jsxs(p, { className: "flex flex-col gap-2 bg-border/30 p-4", children: [
301
304
  /* @__PURE__ */ e.jsx("span", { className: "text-sm text-muted-foreground", children: "object[]" }),
302
- i(l, a + 1)
303
- ] }) : i(l, a + 1);
305
+ n(l, a + 1)
306
+ ] }) : n(l, a + 1);
304
307
  }
305
308
  if (r.type === "object" && (!r.properties || Object.keys(r.properties).length === 0))
306
309
  return /* @__PURE__ */ e.jsxs(p, { className: "p-4 flex gap-2 items-center", children: [
@@ -318,7 +321,7 @@ const ae = v(
318
321
  )
319
322
  ] });
320
323
  if (r.properties) {
321
- const l = T(
324
+ const l = P(
322
325
  Object.entries(r.properties),
323
326
  ([d, o]) => {
324
327
  var c;
@@ -333,7 +336,7 @@ const ae = v(
333
336
  schema: c,
334
337
  group: d,
335
338
  level: a,
336
- defaultOpen: n
339
+ defaultOpen: i
337
340
  },
338
341
  o
339
342
  )) }, d)
@@ -352,22 +355,22 @@ const ae = v(
352
355
  }
353
356
  )
354
357
  ] }) : r.additionalProperties ? /* @__PURE__ */ e.jsxs(p, { className: "my-2", children: [
355
- /* @__PURE__ */ e.jsx(te, { children: /* @__PURE__ */ e.jsx(re, { children: "Additional Properties:" }) }),
356
- /* @__PURE__ */ e.jsx(ne, { children: i(
358
+ /* @__PURE__ */ e.jsx(se, { children: /* @__PURE__ */ e.jsx(te, { children: "Additional Properties:" }) }),
359
+ /* @__PURE__ */ e.jsx(re, { children: n(
357
360
  r.additionalProperties,
358
361
  a + 1
359
362
  ) })
360
363
  ] }) : null;
361
364
  };
362
- return i(t, s);
365
+ return n(t, s);
363
366
  }, ve = ["path", "query", "header", "cookie"], Ce = ({
364
367
  operationFragment: t
365
368
  }) => {
366
369
  var l, g, d;
367
- const s = ie(Oe, t), n = T(
370
+ const s = ne(Oe, t), i = P(
368
371
  s.parameters ?? [],
369
372
  (o) => o.in
370
- ), i = s.responses.at(0), [r, a] = y(i == null ? void 0 : i.statusCode);
373
+ ), n = s.responses.at(0), [r, a] = y(n == null ? void 0 : n.statusCode);
371
374
  return /* @__PURE__ */ e.jsxs(
372
375
  "div",
373
376
  {
@@ -385,18 +388,18 @@ const ae = v(
385
388
  s.parameters && s.parameters.length > 0 && /* @__PURE__ */ e.jsx(e.Fragment, { children: ve.flatMap(
386
389
  (o) => {
387
390
  var c;
388
- return (c = n[o]) != null && c.length ? /* @__PURE__ */ e.jsx(
391
+ return (c = i[o]) != null && c.length ? /* @__PURE__ */ e.jsx(
389
392
  pe,
390
393
  {
391
394
  id: s.slug,
392
- parameters: n[o],
395
+ parameters: i[o],
393
396
  group: o
394
397
  },
395
398
  o
396
399
  ) : [];
397
400
  }
398
401
  ) }),
399
- ce((d = (g = (l = s.requestBody) == null ? void 0 : l.content) == null ? void 0 : g.at(0)) == null ? void 0 : d.schema, (o) => /* @__PURE__ */ e.jsxs("div", { className: "mt-4 flex flex-col gap-4", children: [
402
+ le((d = (g = (l = s.requestBody) == null ? void 0 : l.content) == null ? void 0 : g.at(0)) == null ? void 0 : d.schema, (o) => /* @__PURE__ */ e.jsxs("div", { className: "mt-4 flex flex-col gap-4", children: [
400
403
  /* @__PURE__ */ e.jsx(
401
404
  h,
402
405
  {
@@ -421,13 +424,13 @@ const ae = v(
421
424
  }
422
425
  ),
423
426
  /* @__PURE__ */ e.jsxs(
424
- Z,
427
+ W,
425
428
  {
426
429
  onValueChange: (o) => a(o),
427
430
  value: r,
428
431
  children: [
429
- s.responses.length > 1 && /* @__PURE__ */ e.jsx(X, { children: s.responses.map((o) => /* @__PURE__ */ e.jsx(
430
- Y,
432
+ s.responses.length > 1 && /* @__PURE__ */ e.jsx(Z, { children: s.responses.map((o) => /* @__PURE__ */ e.jsx(
433
+ X,
431
434
  {
432
435
  value: o.statusCode,
433
436
  title: o.description ?? void 0,
@@ -438,13 +441,13 @@ const ae = v(
438
441
  /* @__PURE__ */ e.jsx("ul", { className: "list-none m-0 px-0", children: s.responses.map((o) => {
439
442
  var c, C;
440
443
  return /* @__PURE__ */ e.jsx(
441
- ee,
444
+ Y,
442
445
  {
443
446
  value: o.statusCode,
444
447
  children: /* @__PURE__ */ e.jsx(
445
448
  f,
446
449
  {
447
- schema: (C = (c = o.content) == null ? void 0 : c.find((k) => k.schema)) == null ? void 0 : C.schema
450
+ schema: (C = (c = o.content) == null ? void 0 : c.find((A) => A.schema)) == null ? void 0 : C.schema
448
451
  }
449
452
  )
450
453
  },
@@ -457,7 +460,7 @@ const ae = v(
457
460
  ] })
458
461
  ] }),
459
462
  /* @__PURE__ */ e.jsx(
460
- R,
463
+ L,
461
464
  {
462
465
  selectedResponse: r,
463
466
  onSelectResponse: a,
@@ -555,18 +558,18 @@ const ae = v(
555
558
  `
556
559
  ), Ie = { suspense: !0 }, He = () => {
557
560
  var r;
558
- const { type: t, input: s } = q(), [n] = w({
561
+ const { type: t, input: s } = w(), [i] = I({
559
562
  query: Se,
560
563
  variables: { type: t, input: s },
561
564
  context: Ie
562
- }), i = (r = n.error) == null ? void 0 : r.graphQLErrors.at(0);
563
- return i ? /* @__PURE__ */ e.jsx(
564
- z,
565
+ }), n = (r = i.error) == null ? void 0 : r.graphQLErrors.at(0);
566
+ return n ? /* @__PURE__ */ e.jsx(
567
+ R,
565
568
  {
566
569
  category: "Error",
567
570
  title: "Schema cannot be displayed",
568
571
  message: /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
569
- /* @__PURE__ */ e.jsxs(E, { className: "mb-4", children: [
572
+ /* @__PURE__ */ e.jsxs(z, { className: "mb-4", children: [
570
573
  "Check your configuration value ",
571
574
  /* @__PURE__ */ e.jsx(b, { children: "apis.type" }),
572
575
  " ",
@@ -575,24 +578,24 @@ const ae = v(
575
578
  " in the Zudoku config."
576
579
  ] }),
577
580
  "An error occurred while trying to fetch the API reference:",
578
- /* @__PURE__ */ e.jsx(F, { code: i.toString(), language: "plain" })
581
+ /* @__PURE__ */ e.jsx(E, { code: n.toString(), language: "plain" })
579
582
  ] })
580
583
  }
581
- ) : n.data ? /* @__PURE__ */ e.jsxs("div", { className: "pt-[--padding-content-top]", children: [
584
+ ) : i.data ? /* @__PURE__ */ e.jsxs("div", { className: "pt-[--padding-content-top]", children: [
582
585
  /* @__PURE__ */ e.jsxs(
583
586
  "div",
584
587
  {
585
588
  className: j(u, "mb-16 max-w-full prose-img:max-w-prose"),
586
589
  children: [
587
590
  /* @__PURE__ */ e.jsx(O, { children: "Overview" }),
588
- /* @__PURE__ */ e.jsx(h, { level: 1, id: "description", registerSidebarAnchor: !0, children: n.data.schema.title }),
589
- /* @__PURE__ */ e.jsx(x, { content: n.data.schema.description ?? "" })
591
+ /* @__PURE__ */ e.jsx(h, { level: 1, id: "description", registerSidebarAnchor: !0, children: i.data.schema.title }),
592
+ /* @__PURE__ */ e.jsx(x, { content: i.data.schema.description ?? "" })
590
593
  ]
591
594
  }
592
595
  ),
593
596
  /* @__PURE__ */ e.jsx("hr", {}),
594
- /* @__PURE__ */ e.jsx("div", { className: "my-4 flex justify-end", children: /* @__PURE__ */ e.jsx(le, {}) }),
595
- n.data.schema.tags.filter((a) => a.operations.length > 0).map((a) => /* @__PURE__ */ e.jsxs("div", { children: [
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", { className: "[content-visibility:auto]", children: [
596
599
  a.name && /* @__PURE__ */ e.jsx(O, { children: a.name }),
597
600
  a.description && /* @__PURE__ */ e.jsx(
598
601
  x,
@@ -601,7 +604,7 @@ const ae = v(
601
604
  content: a.description
602
605
  }
603
606
  ),
604
- /* @__PURE__ */ e.jsx("div", { className: "operation mb-12", children: /* @__PURE__ */ e.jsx(se, { children: a.operations.map((l) => /* @__PURE__ */ e.jsx(
607
+ /* @__PURE__ */ e.jsx("div", { className: "operation mb-12", children: /* @__PURE__ */ e.jsx(ee, { children: a.operations.map((l) => /* @__PURE__ */ e.jsx(
605
608
  Ce,
606
609
  {
607
610
  operationFragment: l
@@ -615,4 +618,4 @@ export {
615
618
  He as OperationList,
616
619
  Oe as OperationsFragment
617
620
  };
618
- //# sourceMappingURL=OperationList-35iw_Gil.js.map
621
+ //# sourceMappingURL=OperationList-BHUBGM0c.js.map