zudoku 0.0.0-fix-downgrade-openapi-parser.aac00796 → 0.0.0-fix-prevent-full-deref-allof.b02efbe5

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 (548) hide show
  1. package/dist/app/main.d.ts +91 -1
  2. package/dist/app/main.js +5 -1
  3. package/dist/app/main.js.map +1 -1
  4. package/dist/config/config.d.ts +15 -46
  5. package/dist/config/validators/BuildSchema.js +18 -3
  6. package/dist/config/validators/BuildSchema.js.map +1 -1
  7. package/dist/config/validators/InputNavigationSchema.d.ts +61 -61
  8. package/dist/config/validators/NavigationSchema.js +2 -4
  9. package/dist/config/validators/NavigationSchema.js.map +1 -1
  10. package/dist/config/validators/ProtectedRoutesSchema.d.ts +1 -1
  11. package/dist/config/validators/validate.d.ts +203 -5
  12. package/dist/config/validators/validate.js +44 -1
  13. package/dist/config/validators/validate.js.map +1 -1
  14. package/dist/config/validators/validate.test.js +43 -0
  15. package/dist/config/validators/validate.test.js.map +1 -1
  16. package/dist/flat-config.d.ts +31 -2
  17. package/dist/lib/auth/issuer.js +3 -0
  18. package/dist/lib/auth/issuer.js.map +1 -1
  19. package/dist/lib/authentication/authentication.d.ts +1 -1
  20. package/dist/lib/authentication/providers/auth0.js +6 -1
  21. package/dist/lib/authentication/providers/auth0.js.map +1 -1
  22. package/dist/lib/authentication/providers/firebase.d.ts +4 -0
  23. package/dist/lib/authentication/providers/firebase.js +215 -0
  24. package/dist/lib/authentication/providers/firebase.js.map +1 -0
  25. package/dist/lib/authentication/providers/supabase.js +1 -6
  26. package/dist/lib/authentication/providers/supabase.js.map +1 -1
  27. package/dist/lib/authentication/ui/ZudokuAuthUi.d.ts +24 -0
  28. package/dist/lib/authentication/ui/ZudokuAuthUi.js +124 -0
  29. package/dist/lib/authentication/ui/ZudokuAuthUi.js.map +1 -0
  30. package/dist/lib/authentication/ui/icons/Apple.d.ts +3 -0
  31. package/dist/lib/authentication/ui/icons/Apple.js +4 -0
  32. package/dist/lib/authentication/ui/icons/Apple.js.map +1 -0
  33. package/dist/lib/authentication/ui/icons/Facebook.d.ts +3 -0
  34. package/dist/lib/authentication/ui/icons/Facebook.js +4 -0
  35. package/dist/lib/authentication/ui/icons/Facebook.js.map +1 -0
  36. package/dist/lib/authentication/ui/icons/Github.d.ts +3 -0
  37. package/dist/lib/authentication/ui/icons/Github.js +4 -0
  38. package/dist/lib/authentication/ui/icons/Github.js.map +1 -0
  39. package/dist/lib/authentication/ui/icons/Google.d.ts +3 -0
  40. package/dist/lib/authentication/ui/icons/Google.js +4 -0
  41. package/dist/lib/authentication/ui/icons/Google.js.map +1 -0
  42. package/dist/lib/authentication/ui/icons/Microsoft.d.ts +3 -0
  43. package/dist/lib/authentication/ui/icons/Microsoft.js +4 -0
  44. package/dist/lib/authentication/ui/icons/Microsoft.js.map +1 -0
  45. package/dist/lib/authentication/ui/icons/X.d.ts +3 -0
  46. package/dist/lib/authentication/ui/icons/X.js +4 -0
  47. package/dist/lib/authentication/ui/icons/X.js.map +1 -0
  48. package/dist/lib/components/Autocomplete.d.ts +3 -1
  49. package/dist/lib/components/Autocomplete.js +6 -2
  50. package/dist/lib/components/Autocomplete.js.map +1 -1
  51. package/dist/lib/components/Heading.d.ts +1 -1
  52. package/dist/lib/components/Layout.js +3 -2
  53. package/dist/lib/components/Layout.js.map +1 -1
  54. package/dist/lib/components/Mermaid.d.ts +7 -0
  55. package/dist/lib/components/Mermaid.js +42 -0
  56. package/dist/lib/components/Mermaid.js.map +1 -0
  57. package/dist/lib/components/PagefindSearchMeta.d.ts +8 -0
  58. package/dist/lib/components/PagefindSearchMeta.js +7 -0
  59. package/dist/lib/components/PagefindSearchMeta.js.map +1 -0
  60. package/dist/lib/components/Zudoku.js +2 -5
  61. package/dist/lib/components/Zudoku.js.map +1 -1
  62. package/dist/lib/components/navigation/NavigationItem.js +2 -2
  63. package/dist/lib/components/navigation/NavigationItem.js.map +1 -1
  64. package/dist/lib/core/RouteGuard.js +7 -7
  65. package/dist/lib/core/RouteGuard.js.map +1 -1
  66. package/dist/lib/core/plugins.d.ts +3 -3
  67. package/dist/lib/errors/ErrorAlert.js +1 -1
  68. package/dist/lib/errors/RouterError.d.ts +3 -1
  69. package/dist/lib/errors/RouterError.js +3 -2
  70. package/dist/lib/errors/RouterError.js.map +1 -1
  71. package/dist/lib/oas/parser/index.d.ts +1 -0
  72. package/dist/lib/oas/parser/index.js +7 -3
  73. package/dist/lib/oas/parser/index.js.map +1 -1
  74. package/dist/lib/plugins/api-keys/ProtectedRoute.js +4 -1
  75. package/dist/lib/plugins/api-keys/ProtectedRoute.js.map +1 -1
  76. package/dist/lib/plugins/openapi/CollapsibleCode.d.ts +1 -0
  77. package/dist/lib/plugins/openapi/CollapsibleCode.js +2 -1
  78. package/dist/lib/plugins/openapi/CollapsibleCode.js.map +1 -1
  79. package/dist/lib/plugins/openapi/DownloadSchemaButton.d.ts +3 -0
  80. package/dist/lib/plugins/openapi/DownloadSchemaButton.js +47 -0
  81. package/dist/lib/plugins/openapi/DownloadSchemaButton.js.map +1 -0
  82. package/dist/lib/plugins/openapi/Endpoint.js +3 -6
  83. package/dist/lib/plugins/openapi/Endpoint.js.map +1 -1
  84. package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.d.ts +5 -0
  85. package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.js +10 -0
  86. package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.js.map +1 -0
  87. package/dist/lib/plugins/openapi/OasProvider.js +22 -13
  88. package/dist/lib/plugins/openapi/OasProvider.js.map +1 -1
  89. package/dist/lib/plugins/openapi/OperationList.js +16 -6
  90. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  91. package/dist/lib/plugins/openapi/OperationListItem.d.ts +2 -1
  92. package/dist/lib/plugins/openapi/OperationListItem.js +4 -3
  93. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  94. package/dist/lib/plugins/openapi/ParameterList.js +7 -4
  95. package/dist/lib/plugins/openapi/ParameterList.js.map +1 -1
  96. package/dist/lib/plugins/openapi/ParameterListItem.js +17 -6
  97. package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
  98. package/dist/lib/plugins/openapi/RequestBodySidecarBox.d.ts +9 -2
  99. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js +5 -2
  100. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js.map +1 -1
  101. package/dist/lib/plugins/openapi/ResponsesSidecarBox.d.ts +4 -2
  102. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +26 -4
  103. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
  104. package/dist/lib/plugins/openapi/SchemaList.js +2 -1
  105. package/dist/lib/plugins/openapi/SchemaList.js.map +1 -1
  106. package/dist/lib/plugins/openapi/Sidecar.d.ts +2 -2
  107. package/dist/lib/plugins/openapi/Sidecar.js +61 -26
  108. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  109. package/dist/lib/plugins/openapi/SidecarBox.js +4 -4
  110. package/dist/lib/plugins/openapi/SidecarBox.js.map +1 -1
  111. package/dist/lib/plugins/openapi/SidecarExamples.d.ts +9 -2
  112. package/dist/lib/plugins/openapi/SidecarExamples.js +24 -43
  113. package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -1
  114. package/dist/lib/plugins/openapi/components/ConstValue.js +1 -1
  115. package/dist/lib/plugins/openapi/components/ConstValue.js.map +1 -1
  116. package/dist/lib/plugins/openapi/components/EnumValues.js +1 -1
  117. package/dist/lib/plugins/openapi/components/EnumValues.js.map +1 -1
  118. package/dist/lib/plugins/openapi/components/NonHighlightedCode.d.ts +4 -0
  119. package/dist/lib/plugins/openapi/components/NonHighlightedCode.js +5 -0
  120. package/dist/lib/plugins/openapi/components/NonHighlightedCode.js.map +1 -0
  121. package/dist/lib/plugins/openapi/components/ResponseContent.js +5 -6
  122. package/dist/lib/plugins/openapi/components/ResponseContent.js.map +1 -1
  123. package/dist/lib/plugins/openapi/index.js +11 -5
  124. package/dist/lib/plugins/openapi/index.js.map +1 -1
  125. package/dist/lib/plugins/openapi/interfaces.d.ts +29 -13
  126. package/dist/lib/plugins/openapi/playground/BodyPanel.js +67 -15
  127. package/dist/lib/plugins/openapi/playground/BodyPanel.js.map +1 -1
  128. package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js +2 -2
  129. package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js.map +1 -1
  130. package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js +1 -1
  131. package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js.map +1 -1
  132. package/dist/lib/plugins/openapi/playground/Headers.js +23 -83
  133. package/dist/lib/plugins/openapi/playground/Headers.js.map +1 -1
  134. package/dist/lib/plugins/openapi/playground/ParamsGrid.d.ts +10 -2
  135. package/dist/lib/plugins/openapi/playground/ParamsGrid.js +8 -1
  136. package/dist/lib/plugins/openapi/playground/ParamsGrid.js.map +1 -1
  137. package/dist/lib/plugins/openapi/playground/PathParams.js +2 -3
  138. package/dist/lib/plugins/openapi/playground/PathParams.js.map +1 -1
  139. package/dist/lib/plugins/openapi/playground/Playground.d.ts +7 -0
  140. package/dist/lib/plugins/openapi/playground/Playground.js +57 -25
  141. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  142. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +3 -2
  143. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js.map +1 -1
  144. package/dist/lib/plugins/openapi/playground/QueryParams.js +16 -40
  145. package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
  146. package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.d.ts +8 -0
  147. package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.js +19 -0
  148. package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.js.map +1 -0
  149. package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.js +1 -1
  150. package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.js.map +1 -1
  151. package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.d.ts +1 -0
  152. package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.js +540 -0
  153. package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.js.map +1 -0
  154. package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.d.ts +40 -0
  155. package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.js +205 -0
  156. package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.js.map +1 -0
  157. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +2 -2
  158. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js.map +1 -1
  159. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js +1 -1
  160. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js.map +1 -1
  161. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js +17 -8
  162. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js.map +1 -1
  163. package/dist/lib/plugins/openapi/schema/SchemaView.d.ts +1 -1
  164. package/dist/lib/plugins/openapi/schema/SchemaView.js +31 -16
  165. package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
  166. package/dist/lib/plugins/openapi/schema/UnionView.js +2 -5
  167. package/dist/lib/plugins/openapi/schema/UnionView.js.map +1 -1
  168. package/dist/lib/plugins/openapi/schema/union-helpers.js +0 -1
  169. package/dist/lib/plugins/openapi/schema/union-helpers.js.map +1 -1
  170. package/dist/lib/plugins/openapi/schema/utils.d.ts +2 -2
  171. package/dist/lib/plugins/openapi/schema/utils.js.map +1 -1
  172. package/dist/lib/plugins/openapi/util/generateSchemaExample.js +9 -11
  173. package/dist/lib/plugins/openapi/util/generateSchemaExample.js.map +1 -1
  174. package/dist/lib/plugins/openapi/util/getRoutes.d.ts +6 -1
  175. package/dist/lib/plugins/openapi/util/getRoutes.js +29 -2
  176. package/dist/lib/plugins/openapi/util/getRoutes.js.map +1 -1
  177. package/dist/lib/plugins/search-pagefind/IndexingDialog.d.ts +3 -0
  178. package/dist/lib/plugins/search-pagefind/IndexingDialog.js +64 -0
  179. package/dist/lib/plugins/search-pagefind/IndexingDialog.js.map +1 -0
  180. package/dist/lib/plugins/search-pagefind/PagefindSearch.js +22 -5
  181. package/dist/lib/plugins/search-pagefind/PagefindSearch.js.map +1 -1
  182. package/dist/lib/plugins/search-pagefind/ResultList.js +5 -4
  183. package/dist/lib/plugins/search-pagefind/ResultList.js.map +1 -1
  184. package/dist/lib/shiki.d.ts +1 -1
  185. package/dist/lib/shiki.js +18 -12
  186. package/dist/lib/shiki.js.map +1 -1
  187. package/dist/lib/ui/Badge.d.ts +3 -3
  188. package/dist/lib/ui/Badge.js +9 -7
  189. package/dist/lib/ui/Badge.js.map +1 -1
  190. package/dist/lib/ui/Button.d.ts +2 -2
  191. package/dist/lib/ui/Button.js +9 -7
  192. package/dist/lib/ui/Button.js.map +1 -1
  193. package/dist/lib/ui/ButtonGroup.d.ts +11 -0
  194. package/dist/lib/ui/ButtonGroup.js +28 -0
  195. package/dist/lib/ui/ButtonGroup.js.map +1 -0
  196. package/dist/lib/ui/Checkbox.d.ts +2 -2
  197. package/dist/lib/ui/Checkbox.js +4 -4
  198. package/dist/lib/ui/Checkbox.js.map +1 -1
  199. package/dist/lib/ui/CodeBlock.d.ts +0 -1
  200. package/dist/lib/ui/CodeBlock.js +1 -1
  201. package/dist/lib/ui/CodeBlock.js.map +1 -1
  202. package/dist/lib/ui/Collapsible.d.ts +4 -4
  203. package/dist/lib/ui/Collapsible.js +11 -4
  204. package/dist/lib/ui/Collapsible.js.map +1 -1
  205. package/dist/lib/ui/Command.d.ts +3 -3
  206. package/dist/lib/ui/Command.js +2 -2
  207. package/dist/lib/ui/Command.js.map +1 -1
  208. package/dist/lib/ui/DropdownMenu.d.ts +21 -23
  209. package/dist/lib/ui/DropdownMenu.js +47 -32
  210. package/dist/lib/ui/DropdownMenu.js.map +1 -1
  211. package/dist/lib/ui/EmbeddedCodeBlock.d.ts +0 -1
  212. package/dist/lib/ui/EmbeddedCodeBlock.js +3 -2
  213. package/dist/lib/ui/EmbeddedCodeBlock.js.map +1 -1
  214. package/dist/lib/ui/Frame.d.ts +8 -0
  215. package/dist/lib/ui/Frame.js +22 -0
  216. package/dist/lib/ui/Frame.js.map +1 -0
  217. package/dist/lib/ui/Item.d.ts +23 -0
  218. package/dist/lib/ui/Item.js +67 -0
  219. package/dist/lib/ui/Item.js.map +1 -0
  220. package/dist/lib/ui/Kbd.d.ts +3 -0
  221. package/dist/lib/ui/Kbd.js +10 -0
  222. package/dist/lib/ui/Kbd.js.map +1 -0
  223. package/dist/lib/ui/NativeSelect.d.ts +5 -0
  224. package/dist/lib/ui/NativeSelect.js +14 -0
  225. package/dist/lib/ui/NativeSelect.js.map +1 -0
  226. package/dist/lib/ui/Select.d.ts +13 -11
  227. package/dist/lib/ui/Select.js +34 -23
  228. package/dist/lib/ui/Select.js.map +1 -1
  229. package/dist/lib/ui/Separator.d.ts +4 -0
  230. package/dist/lib/ui/Separator.js +8 -0
  231. package/dist/lib/ui/Separator.js.map +1 -0
  232. package/dist/lib/ui/Tooltip.d.ts +7 -7
  233. package/dist/lib/ui/Tooltip.js +16 -10
  234. package/dist/lib/ui/Tooltip.js.map +1 -1
  235. package/dist/lib/util/MdxComponents.d.ts +1 -0
  236. package/dist/lib/util/MdxComponents.js +2 -0
  237. package/dist/lib/util/MdxComponents.js.map +1 -1
  238. package/dist/lib/util/createVariantComponent.d.ts +5 -2
  239. package/dist/lib/util/createVariantComponent.js +5 -2
  240. package/dist/lib/util/createVariantComponent.js.map +1 -1
  241. package/dist/lib/util/flattenAllOf.d.ts +4 -0
  242. package/dist/lib/util/flattenAllOf.js +88 -0
  243. package/dist/lib/util/flattenAllOf.js.map +1 -0
  244. package/dist/lib/util/flattenAllOf.test.d.ts +1 -0
  245. package/dist/lib/util/flattenAllOf.test.js +532 -0
  246. package/dist/lib/util/flattenAllOf.test.js.map +1 -0
  247. package/dist/lib/util/readFrontmatter.d.ts +6 -0
  248. package/dist/lib/util/readFrontmatter.js +12 -0
  249. package/dist/lib/util/readFrontmatter.js.map +1 -0
  250. package/dist/vite/api/SchemaManager.d.ts +5 -0
  251. package/dist/vite/api/SchemaManager.js +30 -18
  252. package/dist/vite/api/SchemaManager.js.map +1 -1
  253. package/dist/vite/config.js +7 -1
  254. package/dist/vite/config.js.map +1 -1
  255. package/dist/vite/dev-server.js +25 -0
  256. package/dist/vite/dev-server.js.map +1 -1
  257. package/dist/vite/mdx/remark-last-modified.js +57 -3
  258. package/dist/vite/mdx/remark-last-modified.js.map +1 -1
  259. package/dist/vite/pagefind-dev-index.d.ts +16 -0
  260. package/dist/vite/pagefind-dev-index.js +68 -0
  261. package/dist/vite/pagefind-dev-index.js.map +1 -0
  262. package/dist/vite/plugin-api.js +41 -3
  263. package/dist/vite/plugin-api.js.map +1 -1
  264. package/dist/vite/plugin-frontmatter.js +3 -5
  265. package/dist/vite/plugin-frontmatter.js.map +1 -1
  266. package/dist/vite/plugin-markdown-export.js +3 -4
  267. package/dist/vite/plugin-markdown-export.js.map +1 -1
  268. package/dist/vite/plugin-theme.js +10 -1
  269. package/dist/vite/plugin-theme.js.map +1 -1
  270. package/dist/vite/prerender/prerender.js +1 -19
  271. package/dist/vite/prerender/prerender.js.map +1 -1
  272. package/dist/vite/prerender/utils.d.ts +2 -0
  273. package/dist/vite/prerender/utils.js +24 -0
  274. package/dist/vite/prerender/utils.js.map +1 -0
  275. package/lib/Button-CynVW1JV.js +53 -0
  276. package/lib/Button-CynVW1JV.js.map +1 -0
  277. package/lib/ClaudeLogo-PxFjou9w.js +69 -0
  278. package/lib/ClaudeLogo-PxFjou9w.js.map +1 -0
  279. package/lib/{Command-CUcrW3qs.js → Command-BpT1iBE6.js} +25 -25
  280. package/lib/Command-BpT1iBE6.js.map +1 -0
  281. package/lib/Drawer-Ci7XwhqT.js.map +1 -1
  282. package/lib/DropdownMenu-C8SX_-S_.js +104 -0
  283. package/lib/DropdownMenu-C8SX_-S_.js.map +1 -0
  284. package/lib/{ErrorAlert-DE3Sf66a.js → ErrorAlert-BqjbNHIn.js} +475 -456
  285. package/lib/ErrorAlert-BqjbNHIn.js.map +1 -0
  286. package/lib/IndexingDialog-B5zCiUKr.js +100 -0
  287. package/lib/IndexingDialog-B5zCiUKr.js.map +1 -0
  288. package/lib/MdxPage-CVFatbHw.js +210 -0
  289. package/lib/MdxPage-CVFatbHw.js.map +1 -0
  290. package/lib/Mermaid-CIFixY6C.js +102 -0
  291. package/lib/Mermaid-CIFixY6C.js.map +1 -0
  292. package/lib/{OAuthErrorPage-BycMozgn.js → OAuthErrorPage-Dup79DJk.js} +7 -7
  293. package/lib/{OAuthErrorPage-BycMozgn.js.map → OAuthErrorPage-Dup79DJk.js.map} +1 -1
  294. package/lib/OasProvider-C10RPbY8.js +40 -0
  295. package/lib/OasProvider-C10RPbY8.js.map +1 -0
  296. package/lib/OperationList--zX7OAlH.js +5824 -0
  297. package/lib/OperationList--zX7OAlH.js.map +1 -0
  298. package/lib/RouteGuard-BXy13JSz.js +77 -0
  299. package/lib/RouteGuard-BXy13JSz.js.map +1 -0
  300. package/lib/RouterError-CKOZTsDD.js +42 -0
  301. package/lib/RouterError-CKOZTsDD.js.map +1 -0
  302. package/lib/{SchemaList-xZSf3IMh.js → SchemaList-CxafJA_P.js} +28 -27
  303. package/lib/SchemaList-CxafJA_P.js.map +1 -0
  304. package/lib/SchemaView-j0PtjY8U.js +597 -0
  305. package/lib/SchemaView-j0PtjY8U.js.map +1 -0
  306. package/lib/Select-VmDZ-nKe.js +337 -0
  307. package/lib/Select-VmDZ-nKe.js.map +1 -0
  308. package/lib/{SignUp-6SGx9Yyq.js → SignUp-Pm_LGm6T.js} +13 -13
  309. package/lib/{SignUp-6SGx9Yyq.js.map → SignUp-Pm_LGm6T.js.map} +1 -1
  310. package/lib/{SyntaxHighlight-zvlnSnHB.js → SyntaxHighlight-bkmst3oV.js} +710 -662
  311. package/lib/{SyntaxHighlight-zvlnSnHB.js.map → SyntaxHighlight-bkmst3oV.js.map} +1 -1
  312. package/lib/{Toc-Da9yp7lo.js → Toc-TUXNFbKl.js} +2 -2
  313. package/lib/{Toc-Da9yp7lo.js.map → Toc-TUXNFbKl.js.map} +1 -1
  314. package/lib/{ZudokuContext-BUZ5hkWB.js → ZudokuContext-np1wheDl.js} +8 -8
  315. package/lib/{ZudokuContext-BUZ5hkWB.js.map → ZudokuContext-np1wheDl.js.map} +1 -1
  316. package/lib/___vite-browser-external_commonjs-proxy-Cga3HsWk.js +9 -0
  317. package/lib/___vite-browser-external_commonjs-proxy-Cga3HsWk.js.map +1 -0
  318. package/lib/{chunk-PVWAREVJ-BMhpCH5D.js → chunk-PVWAREVJ-dLIqswPy.js} +5 -5
  319. package/lib/{chunk-PVWAREVJ-BMhpCH5D.js.map → chunk-PVWAREVJ-dLIqswPy.js.map} +1 -1
  320. package/lib/{circular-DvuimBGQ.js → circular-GQ_uaom2.js} +6360 -5953
  321. package/lib/circular-GQ_uaom2.js.map +1 -0
  322. package/lib/createServer-sU0O9wfJ.js +16693 -0
  323. package/lib/createServer-sU0O9wfJ.js.map +1 -0
  324. package/lib/{errors-CuGgh3hf.js → errors-B0hNTPFO.js} +3 -3
  325. package/lib/{errors-CuGgh3hf.js.map → errors-B0hNTPFO.js.map} +1 -1
  326. package/lib/{hook-CMeoxziF.js → hook-CvSwcbk6.js} +3 -3
  327. package/lib/{hook-CMeoxziF.js.map → hook-CvSwcbk6.js.map} +1 -1
  328. package/lib/index-B6SRNBIt.js +3700 -0
  329. package/lib/index-B6SRNBIt.js.map +1 -0
  330. package/lib/index-CrcNWbel.js.map +1 -1
  331. package/lib/index-DnMgJWrI.js +133 -0
  332. package/lib/index-DnMgJWrI.js.map +1 -0
  333. package/lib/{index-rYHsvtTo.js → index-DscsS121.js} +2 -2
  334. package/lib/{index-rYHsvtTo.js.map → index-DscsS121.js.map} +1 -1
  335. package/lib/{index-B1rmok4X.js → index-mfkNWYG-.js} +10 -10
  336. package/lib/{index-B1rmok4X.js.map → index-mfkNWYG-.js.map} +1 -1
  337. package/lib/{index.esm-BnYHxCYC.js → index.esm-DtzT_KoE.js} +20 -20
  338. package/lib/{index.esm-BnYHxCYC.js.map → index.esm-DtzT_KoE.js.map} +1 -1
  339. package/lib/{invariant-Bm-FVUQE.js → invariant-CGOLuIIz.js} +3 -3
  340. package/lib/{invariant-Bm-FVUQE.js.map → invariant-CGOLuIIz.js.map} +1 -1
  341. package/lib/{mutation-BSU0xu4m.js → mutation-BlmnL5qL.js} +2 -2
  342. package/lib/{mutation-BSU0xu4m.js.map → mutation-BlmnL5qL.js.map} +1 -1
  343. package/lib/ui/ActionButton.js +1 -1
  344. package/lib/ui/Badge.js +27 -13
  345. package/lib/ui/Badge.js.map +1 -1
  346. package/lib/ui/Button.js +26 -24
  347. package/lib/ui/Button.js.map +1 -1
  348. package/lib/ui/ButtonGroup.js +77 -0
  349. package/lib/ui/ButtonGroup.js.map +1 -0
  350. package/lib/ui/Checkbox.js +29 -26
  351. package/lib/ui/Checkbox.js.map +1 -1
  352. package/lib/ui/CodeBlock.js +7 -7
  353. package/lib/ui/CodeBlock.js.map +1 -1
  354. package/lib/ui/Collapsible.js +32 -5
  355. package/lib/ui/Collapsible.js.map +1 -1
  356. package/lib/ui/Command.js +3 -3
  357. package/lib/ui/Command.js.map +1 -1
  358. package/lib/ui/DropdownMenu.js +227 -140
  359. package/lib/ui/DropdownMenu.js.map +1 -1
  360. package/lib/ui/EmbeddedCodeBlock.js +26 -25
  361. package/lib/ui/EmbeddedCodeBlock.js.map +1 -1
  362. package/lib/ui/Frame.js +81 -0
  363. package/lib/ui/Frame.js.map +1 -0
  364. package/lib/ui/Item.js +188 -0
  365. package/lib/ui/Item.js.map +1 -0
  366. package/lib/ui/Kbd.js +32 -0
  367. package/lib/ui/Kbd.js.map +1 -0
  368. package/lib/ui/NativeSelect.js +57 -0
  369. package/lib/ui/NativeSelect.js.map +1 -0
  370. package/lib/ui/Select.js +166 -116
  371. package/lib/ui/Select.js.map +1 -1
  372. package/lib/ui/Separator.js +27 -0
  373. package/lib/ui/Separator.js.map +1 -0
  374. package/lib/ui/SyntaxHighlight.js +3 -3
  375. package/lib/ui/Tabs.js +10 -10
  376. package/lib/ui/Tooltip.js +55 -28
  377. package/lib/ui/Tooltip.js.map +1 -1
  378. package/lib/zudoku.__internal.js +349 -349
  379. package/lib/zudoku.__internal.js.map +1 -1
  380. package/lib/zudoku.auth-auth0.js +7 -7
  381. package/lib/zudoku.auth-auth0.js.map +1 -1
  382. package/lib/zudoku.auth-azureb2c.js +4 -4
  383. package/lib/zudoku.auth-clerk.js +2 -2
  384. package/lib/zudoku.auth-openid.js +5 -5
  385. package/lib/zudoku.auth-supabase.js +31 -34
  386. package/lib/zudoku.auth-supabase.js.map +1 -1
  387. package/lib/zudoku.components.js +7 -7
  388. package/lib/zudoku.hooks.js +11 -24
  389. package/lib/zudoku.hooks.js.map +1 -1
  390. package/lib/zudoku.mermaid.js +10 -0
  391. package/lib/zudoku.mermaid.js.map +1 -0
  392. package/lib/zudoku.plugin-api-catalog.js +6 -6
  393. package/lib/zudoku.plugin-api-keys.js +223 -198
  394. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  395. package/lib/zudoku.plugin-custom-pages.js +1 -1
  396. package/lib/zudoku.plugin-markdown.js +1 -1
  397. package/lib/zudoku.plugin-openapi.js +3 -3
  398. package/lib/zudoku.plugin-redirect.js +1 -1
  399. package/lib/zudoku.plugin-search-pagefind.js +184 -226
  400. package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
  401. package/lib/zudoku.plugins.js.map +1 -1
  402. package/lib/zudoku.router.js +2 -2
  403. package/package.json +36 -23
  404. package/src/app/main.css +1 -1
  405. package/src/app/main.tsx +5 -1
  406. package/src/lib/auth/issuer.ts +3 -0
  407. package/src/lib/authentication/authentication.ts +1 -1
  408. package/src/lib/authentication/providers/auth0.tsx +6 -1
  409. package/src/lib/authentication/providers/firebase.tsx +284 -0
  410. package/src/lib/authentication/providers/supabase.tsx +2 -7
  411. package/src/lib/authentication/ui/ZudokuAuthUi.tsx +335 -0
  412. package/src/lib/authentication/ui/icons/Apple.tsx +10 -0
  413. package/src/lib/authentication/ui/icons/Facebook.tsx +15 -0
  414. package/src/lib/authentication/ui/icons/Github.tsx +16 -0
  415. package/src/lib/authentication/ui/icons/Google.tsx +16 -0
  416. package/src/lib/authentication/ui/icons/Microsoft.tsx +12 -0
  417. package/src/lib/authentication/ui/icons/X.tsx +10 -0
  418. package/src/lib/components/Autocomplete.tsx +11 -2
  419. package/src/lib/components/Layout.tsx +3 -2
  420. package/src/lib/components/Mermaid.tsx +68 -0
  421. package/src/lib/components/PagefindSearchMeta.tsx +14 -0
  422. package/src/lib/components/Zudoku.tsx +4 -7
  423. package/src/lib/components/navigation/NavigationItem.tsx +7 -20
  424. package/src/lib/core/RouteGuard.tsx +9 -9
  425. package/src/lib/core/plugins.ts +2 -2
  426. package/src/lib/errors/ErrorAlert.tsx +1 -1
  427. package/src/lib/errors/RouterError.tsx +7 -2
  428. package/src/lib/oas/parser/index.ts +10 -3
  429. package/src/lib/plugins/api-keys/ProtectedRoute.tsx +11 -7
  430. package/src/lib/plugins/openapi/CollapsibleCode.tsx +5 -3
  431. package/src/lib/plugins/openapi/DownloadSchemaButton.tsx +115 -0
  432. package/src/lib/plugins/openapi/Endpoint.tsx +20 -27
  433. package/src/lib/plugins/openapi/GeneratedExampleSidecarBox.tsx +52 -0
  434. package/src/lib/plugins/openapi/OasProvider.tsx +30 -17
  435. package/src/lib/plugins/openapi/OperationList.tsx +46 -21
  436. package/src/lib/plugins/openapi/OperationListItem.tsx +15 -12
  437. package/src/lib/plugins/openapi/ParameterList.tsx +37 -23
  438. package/src/lib/plugins/openapi/ParameterListItem.tsx +105 -54
  439. package/src/lib/plugins/openapi/RequestBodySidecarBox.tsx +48 -7
  440. package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +101 -33
  441. package/src/lib/plugins/openapi/SchemaList.tsx +4 -0
  442. package/src/lib/plugins/openapi/Sidecar.tsx +145 -65
  443. package/src/lib/plugins/openapi/SidecarBox.tsx +26 -4
  444. package/src/lib/plugins/openapi/SidecarExamples.tsx +91 -79
  445. package/src/lib/plugins/openapi/components/ConstValue.tsx +1 -1
  446. package/src/lib/plugins/openapi/components/EnumValues.tsx +2 -2
  447. package/src/lib/plugins/openapi/components/NonHighlightedCode.tsx +22 -0
  448. package/src/lib/plugins/openapi/components/ResponseContent.tsx +63 -53
  449. package/src/lib/plugins/openapi/index.tsx +16 -7
  450. package/src/lib/plugins/openapi/interfaces.ts +28 -7
  451. package/src/lib/plugins/openapi/playground/BodyPanel.tsx +246 -30
  452. package/src/lib/plugins/openapi/playground/CollapsibleHeader.tsx +10 -6
  453. package/src/lib/plugins/openapi/playground/ExamplesDropdown.tsx +3 -2
  454. package/src/lib/plugins/openapi/playground/Headers.tsx +103 -219
  455. package/src/lib/plugins/openapi/playground/ParamsGrid.tsx +33 -1
  456. package/src/lib/plugins/openapi/playground/PathParams.tsx +26 -34
  457. package/src/lib/plugins/openapi/playground/Playground.tsx +74 -32
  458. package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +9 -30
  459. package/src/lib/plugins/openapi/playground/QueryParams.tsx +82 -136
  460. package/src/lib/plugins/openapi/playground/request-panel/MultipartField.tsx +91 -0
  461. package/src/lib/plugins/openapi/playground/request-panel/UrlQueryParams.tsx +1 -1
  462. package/src/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.tsx +872 -0
  463. package/src/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.ts +349 -0
  464. package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +2 -6
  465. package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +1 -1
  466. package/src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx +89 -55
  467. package/src/lib/plugins/openapi/schema/SchemaView.tsx +98 -60
  468. package/src/lib/plugins/openapi/schema/UnionView.tsx +6 -17
  469. package/src/lib/plugins/openapi/schema/union-helpers.ts +0 -1
  470. package/src/lib/plugins/openapi/schema/utils.ts +5 -2
  471. package/src/lib/plugins/openapi/util/generateSchemaExample.ts +11 -11
  472. package/src/lib/plugins/openapi/util/getRoutes.tsx +35 -3
  473. package/src/lib/plugins/search-pagefind/IndexingDialog.tsx +163 -0
  474. package/src/lib/plugins/search-pagefind/PagefindSearch.tsx +61 -22
  475. package/src/lib/plugins/search-pagefind/ResultList.tsx +8 -3
  476. package/src/lib/shiki.ts +21 -12
  477. package/src/lib/ui/Badge.tsx +21 -12
  478. package/src/lib/ui/Button.tsx +10 -9
  479. package/src/lib/ui/ButtonGroup.tsx +82 -0
  480. package/src/lib/ui/Checkbox.tsx +23 -24
  481. package/src/lib/ui/CodeBlock.tsx +3 -4
  482. package/src/lib/ui/Collapsible.tsx +26 -4
  483. package/src/lib/ui/Command.tsx +3 -3
  484. package/src/lib/ui/DropdownMenu.tsx +226 -170
  485. package/src/lib/ui/EmbeddedCodeBlock.tsx +21 -19
  486. package/src/lib/ui/Frame.tsx +81 -0
  487. package/src/lib/ui/Item.tsx +192 -0
  488. package/src/lib/ui/Kbd.tsx +28 -0
  489. package/src/lib/ui/NativeSelect.tsx +47 -0
  490. package/src/lib/ui/Select.tsx +153 -126
  491. package/src/lib/ui/Separator.tsx +25 -0
  492. package/src/lib/ui/Tooltip.tsx +54 -32
  493. package/src/lib/util/MdxComponents.tsx +2 -0
  494. package/src/lib/util/createVariantComponent.tsx +31 -5
  495. package/src/lib/util/flattenAllOf.test.ts +637 -0
  496. package/src/lib/util/flattenAllOf.ts +122 -0
  497. package/src/lib/util/readFrontmatter.ts +13 -0
  498. package/src/shiki/langs/markdown-nix.js +1 -0
  499. package/src/shiki/langs/openscad.js +1 -0
  500. package/dist/lib/plugins/openapi/playground/InlineInput.d.ts +0 -4
  501. package/dist/lib/plugins/openapi/playground/InlineInput.js +0 -3
  502. package/dist/lib/plugins/openapi/playground/InlineInput.js.map +0 -1
  503. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupConnector.d.ts +0 -5
  504. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupConnector.js +0 -7
  505. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupConnector.js.map +0 -1
  506. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupItem.d.ts +0 -4
  507. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupItem.js +0 -10
  508. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupItem.js.map +0 -1
  509. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupView.d.ts +0 -5
  510. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupView.js +0 -16
  511. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupView.js.map +0 -1
  512. package/dist/vite/create-pagefind-index.d.ts +0 -4
  513. package/dist/vite/create-pagefind-index.js +0 -12
  514. package/dist/vite/create-pagefind-index.js.map +0 -1
  515. package/lib/Button-DmS4u8Lj.js +0 -51
  516. package/lib/Button-DmS4u8Lj.js.map +0 -1
  517. package/lib/Command-CUcrW3qs.js.map +0 -1
  518. package/lib/DropdownMenu-BZ2NKQ3K.js +0 -126
  519. package/lib/DropdownMenu-BZ2NKQ3K.js.map +0 -1
  520. package/lib/ErrorAlert-DE3Sf66a.js.map +0 -1
  521. package/lib/MdxPage-DZfeC0QY.js +0 -240
  522. package/lib/MdxPage-DZfeC0QY.js.map +0 -1
  523. package/lib/OasProvider-Bf5zBDBY.js +0 -36
  524. package/lib/OasProvider-Bf5zBDBY.js.map +0 -1
  525. package/lib/OperationList-Cmiw1xm2.js +0 -5446
  526. package/lib/OperationList-Cmiw1xm2.js.map +0 -1
  527. package/lib/Pagination-CJszmeSA.js +0 -37
  528. package/lib/Pagination-CJszmeSA.js.map +0 -1
  529. package/lib/RouteGuard-DhU3LRr1.js +0 -81
  530. package/lib/RouteGuard-DhU3LRr1.js.map +0 -1
  531. package/lib/RouterError-VDLnrFqF.js +0 -41
  532. package/lib/RouterError-VDLnrFqF.js.map +0 -1
  533. package/lib/SchemaList-xZSf3IMh.js.map +0 -1
  534. package/lib/SchemaView-tHXTm5oM.js +0 -458
  535. package/lib/SchemaView-tHXTm5oM.js.map +0 -1
  536. package/lib/Select-C1DeCqKv.js +0 -372
  537. package/lib/Select-C1DeCqKv.js.map +0 -1
  538. package/lib/circular-DvuimBGQ.js.map +0 -1
  539. package/lib/createServer-D9UvCoDf.js +0 -12559
  540. package/lib/createServer-D9UvCoDf.js.map +0 -1
  541. package/lib/index-Cr9_YzOZ.js +0 -3364
  542. package/lib/index-Cr9_YzOZ.js.map +0 -1
  543. package/lib/useExposedProps-U3pmsHaG.js +0 -113
  544. package/lib/useExposedProps-U3pmsHaG.js.map +0 -1
  545. package/src/lib/plugins/openapi/playground/InlineInput.tsx +0 -6
  546. package/src/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupConnector.tsx +0 -36
  547. package/src/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupItem.tsx +0 -25
  548. package/src/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupView.tsx +0 -42
@@ -0,0 +1,3700 @@
1
+ import { j as t } from "./jsx-runtime-BzflLqGi.js";
2
+ import { ChevronsDownUpIcon as En, ChevronsUpDownIcon as kn, PlusCircleIcon as Je, XIcon as It, CheckIcon as Dt, PaperclipIcon as me, TrashIcon as Rn, FileInput as In, ScanTextIcon as yt, Grid2x2PlusIcon as vt, ChevronDownIcon as Dn, TableOfContentsIcon as Fn, LockIcon as zn, CircleAlertIcon as Vn, Circle as Bn, Unlink2Icon as _n, CornerDownRightIcon as qn, MinusCircleIcon as bt, CornerDownLeftIcon as Mn, SquareCodeIcon as Un, DownloadIcon as Gn, EyeOffIcon as Hn, EyeIcon as Qn, UnplugIcon as Jn, SendIcon as Wn, CopyIcon as Kn, IdCardLanyardIcon as Xn, ShapesIcon as Zn, PlayIcon as Yn, CirclePlayIcon as es } from "lucide-react";
3
+ import { r as ts, c as ns, a as ss, N as rs, aL as as, m as jt } from "./chunk-PVWAREVJ-dLIqswPy.js";
4
+ import { Button as Ft } from "./ui/Button.js";
5
+ import { J as Ze, K as Ye, L as zt, f as os, M as is, O as ls, j as V, e as cs } from "./ZudokuContext-np1wheDl.js";
6
+ import { Z as ds } from "./invariant-CGOLuIIz.js";
7
+ import * as Q from "react";
8
+ import { createContext as Vt, use as us, useRef as E, useEffect as G, useMemo as Bt, useCallback as D, startTransition as ms, useState as k, Fragment as le, useLayoutEffect as ps, useTransition as hs, useContext as fs } from "react";
9
+ import { VisuallyHidden as gs } from "@radix-ui/react-visually-hidden";
10
+ import { z as xs, b as ys } from "./index-DnMgJWrI.js";
11
+ import { B as q } from "./Button-CynVW1JV.js";
12
+ import { D as et, a as tt, c as nt, d as _t, e as qt, g as vs } from "./Dialog-BQciPiHN.js";
13
+ import { B as he, S as bs, b as js } from "./index-mfkNWYG-.js";
14
+ import { S as Mt, a as Ut, b as Gt, c as Ht, e as Te, g as Cs, u as Ns } from "./Select-VmDZ-nKe.js";
15
+ import { u as oe, b as Qt, C as Ct, a as Ss, F as ws } from "./index.esm-BYObtETB.js";
16
+ import * as st from "@radix-ui/react-collapsible";
17
+ import { h as Nt, i as St, j as wt, k as Ts, g as As } from "./ErrorAlert-BqjbNHIn.js";
18
+ import { c as w } from "./cn-dYga0KKN.js";
19
+ import { u as $s } from "./useCopyToClipboard-B_085nfO.js";
20
+ import { u as Ps } from "./useLatest-hmRS46UF.js";
21
+ import { D as Jt, a as Wt, b as Kt, d as Os, e as Ls, f as Es, c as Ae } from "./DropdownMenu-C8SX_-S_.js";
22
+ import { Slot as ks } from "@radix-ui/react-slot";
23
+ import * as Tt from "@radix-ui/react-checkbox";
24
+ import * as $e from "@radix-ui/react-popover";
25
+ import { PopoverAnchor as Rs } from "@radix-ui/react-popover";
26
+ import { P as Is } from "./index-CrcNWbel.js";
27
+ import { f as Ds, g as Fs, C as zs, b as Vs } from "./Command-BpT1iBE6.js";
28
+ import { C as Bs } from "./Card-KFniaZn5.js";
29
+ import * as Xt from "@radix-ui/react-label";
30
+ import { c as _s } from "./index-DI5SPFK9.js";
31
+ import * as fe from "@radix-ui/react-radio-group";
32
+ import { A as qs, a as Ms, b as Us } from "./Mermaid-CIFixY6C.js";
33
+ let _e;
34
+ const Gs = (e) => {
35
+ if (e.errors?.[0])
36
+ throw new ds(e.errors[0].message, {
37
+ developerHint: "Check your configuration value `apis.type` and `apis.input` in the Zudoku config."
38
+ });
39
+ };
40
+ class Hs {
41
+ constructor(n) {
42
+ this.config = n;
43
+ }
44
+ #e = async () => (_e || (_e = import("./createServer-sU0O9wfJ.js").then(
45
+ (n) => n.createServer(this.config)
46
+ )), _e);
47
+ #t = async (n) => this.config.server ? fetch(this.config.server, n) : (await this.#e()).fetch("http://localhost/graphql", n);
48
+ fetch = async (n, s) => {
49
+ const a = n.match(/query (\w+)/)?.[1], r = await this.#t({
50
+ method: "POST",
51
+ body: JSON.stringify({ query: n, variables: s, operationName: a }),
52
+ headers: { "Content-Type": "application/json" }
53
+ });
54
+ if (!r.ok)
55
+ throw new Error("Network response was not ok");
56
+ const o = await r.json();
57
+ return Gs(o), o.data;
58
+ };
59
+ }
60
+ function qe(e, n) {
61
+ if (!!!e)
62
+ throw new Error(n);
63
+ }
64
+ function Qs(e) {
65
+ return typeof e == "object" && e !== null;
66
+ }
67
+ function Js(e, n) {
68
+ if (!!!e)
69
+ throw new Error(
70
+ n ?? "Unexpected invariant triggered."
71
+ );
72
+ }
73
+ const Ws = /\r\n|[\n\r]/g;
74
+ function We(e, n) {
75
+ let s = 0, a = 1;
76
+ for (const r of e.body.matchAll(Ws)) {
77
+ if (typeof r.index == "number" || Js(!1), r.index >= n)
78
+ break;
79
+ s = r.index + r[0].length, a += 1;
80
+ }
81
+ return {
82
+ line: a,
83
+ column: n + 1 - s
84
+ };
85
+ }
86
+ function Ks(e) {
87
+ return Zt(
88
+ e.source,
89
+ We(e.source, e.start)
90
+ );
91
+ }
92
+ function Zt(e, n) {
93
+ const s = e.locationOffset.column - 1, a = "".padStart(s) + e.body, r = n.line - 1, o = e.locationOffset.line - 1, i = n.line + o, c = n.line === 1 ? s : 0, l = n.column + c, m = `${e.name}:${i}:${l}
94
+ `, d = a.split(/\r\n|[\n\r]/g), f = d[r];
95
+ if (f.length > 120) {
96
+ const x = Math.floor(l / 80), h = l % 80, v = [];
97
+ for (let u = 0; u < f.length; u += 80)
98
+ v.push(f.slice(u, u + 80));
99
+ return m + At([
100
+ [`${i} |`, v[0]],
101
+ ...v.slice(1, x + 1).map((u) => ["|", u]),
102
+ ["|", "^".padStart(h)],
103
+ ["|", v[x + 1]]
104
+ ]);
105
+ }
106
+ return m + At([
107
+ // Lines specified like this: ["prefix", "string"],
108
+ [`${i - 1} |`, d[r - 1]],
109
+ [`${i} |`, f],
110
+ ["|", "^".padStart(l)],
111
+ [`${i + 1} |`, d[r + 1]]
112
+ ]);
113
+ }
114
+ function At(e) {
115
+ const n = e.filter(([a, r]) => r !== void 0), s = Math.max(...n.map(([a]) => a.length));
116
+ return n.map(([a, r]) => a.padStart(s) + (r ? " " + r : "")).join(`
117
+ `);
118
+ }
119
+ function Xs(e) {
120
+ const n = e[0];
121
+ return n == null || "kind" in n || "length" in n ? {
122
+ nodes: n,
123
+ source: e[1],
124
+ positions: e[2],
125
+ path: e[3],
126
+ originalError: e[4],
127
+ extensions: e[5]
128
+ } : n;
129
+ }
130
+ class rt extends Error {
131
+ /**
132
+ * An array of `{ line, column }` locations within the source GraphQL document
133
+ * which correspond to this error.
134
+ *
135
+ * Errors during validation often contain multiple locations, for example to
136
+ * point out two things with the same name. Errors during execution include a
137
+ * single location, the field which produced the error.
138
+ *
139
+ * Enumerable, and appears in the result of JSON.stringify().
140
+ */
141
+ /**
142
+ * An array describing the JSON-path into the execution response which
143
+ * corresponds to this error. Only included for errors during execution.
144
+ *
145
+ * Enumerable, and appears in the result of JSON.stringify().
146
+ */
147
+ /**
148
+ * An array of GraphQL AST Nodes corresponding to this error.
149
+ */
150
+ /**
151
+ * The source GraphQL document for the first location of this error.
152
+ *
153
+ * Note that if this Error represents more than one node, the source may not
154
+ * represent nodes after the first node.
155
+ */
156
+ /**
157
+ * An array of character offsets within the source GraphQL document
158
+ * which correspond to this error.
159
+ */
160
+ /**
161
+ * The original error thrown from a field resolver during execution.
162
+ */
163
+ /**
164
+ * Extension fields to add to the formatted error.
165
+ */
166
+ /**
167
+ * @deprecated Please use the `GraphQLErrorOptions` constructor overload instead.
168
+ */
169
+ constructor(n, ...s) {
170
+ var a, r, o;
171
+ const { nodes: i, source: c, positions: l, path: m, originalError: d, extensions: f } = Xs(s);
172
+ super(n), this.name = "GraphQLError", this.path = m ?? void 0, this.originalError = d ?? void 0, this.nodes = $t(
173
+ Array.isArray(i) ? i : i ? [i] : void 0
174
+ );
175
+ const x = $t(
176
+ (a = this.nodes) === null || a === void 0 ? void 0 : a.map((v) => v.loc).filter((v) => v != null)
177
+ );
178
+ this.source = c ?? (x == null || (r = x[0]) === null || r === void 0 ? void 0 : r.source), this.positions = l ?? x?.map((v) => v.start), this.locations = l && c ? l.map((v) => We(c, v)) : x?.map((v) => We(v.source, v.start));
179
+ const h = Qs(
180
+ d?.extensions
181
+ ) ? d?.extensions : void 0;
182
+ this.extensions = (o = f ?? h) !== null && o !== void 0 ? o : /* @__PURE__ */ Object.create(null), Object.defineProperties(this, {
183
+ message: {
184
+ writable: !0,
185
+ enumerable: !0
186
+ },
187
+ name: {
188
+ enumerable: !1
189
+ },
190
+ nodes: {
191
+ enumerable: !1
192
+ },
193
+ source: {
194
+ enumerable: !1
195
+ },
196
+ positions: {
197
+ enumerable: !1
198
+ },
199
+ originalError: {
200
+ enumerable: !1
201
+ }
202
+ }), d != null && d.stack ? Object.defineProperty(this, "stack", {
203
+ value: d.stack,
204
+ writable: !0,
205
+ configurable: !0
206
+ }) : Error.captureStackTrace ? Error.captureStackTrace(this, rt) : Object.defineProperty(this, "stack", {
207
+ value: Error().stack,
208
+ writable: !0,
209
+ configurable: !0
210
+ });
211
+ }
212
+ get [Symbol.toStringTag]() {
213
+ return "GraphQLError";
214
+ }
215
+ toString() {
216
+ let n = this.message;
217
+ if (this.nodes)
218
+ for (const s of this.nodes)
219
+ s.loc && (n += `
220
+
221
+ ` + Ks(s.loc));
222
+ else if (this.source && this.locations)
223
+ for (const s of this.locations)
224
+ n += `
225
+
226
+ ` + Zt(this.source, s);
227
+ return n;
228
+ }
229
+ toJSON() {
230
+ const n = {
231
+ message: this.message
232
+ };
233
+ return this.locations != null && (n.locations = this.locations), this.path != null && (n.path = this.path), this.extensions != null && Object.keys(this.extensions).length > 0 && (n.extensions = this.extensions), n;
234
+ }
235
+ }
236
+ function $t(e) {
237
+ return e === void 0 || e.length === 0 ? void 0 : e;
238
+ }
239
+ function F(e, n, s) {
240
+ return new rt(`Syntax Error: ${s}`, {
241
+ source: e,
242
+ positions: [n]
243
+ });
244
+ }
245
+ class Ka {
246
+ /**
247
+ * The character offset at which this Node begins.
248
+ */
249
+ /**
250
+ * The character offset at which this Node ends.
251
+ */
252
+ /**
253
+ * The Token at which this Node begins.
254
+ */
255
+ /**
256
+ * The Token at which this Node ends.
257
+ */
258
+ /**
259
+ * The Source document the AST represents.
260
+ */
261
+ constructor(n, s, a) {
262
+ this.start = n.start, this.end = s.end, this.startToken = n, this.endToken = s, this.source = a;
263
+ }
264
+ get [Symbol.toStringTag]() {
265
+ return "Location";
266
+ }
267
+ toJSON() {
268
+ return {
269
+ start: this.start,
270
+ end: this.end
271
+ };
272
+ }
273
+ }
274
+ class Yt {
275
+ /**
276
+ * The kind of Token.
277
+ */
278
+ /**
279
+ * The character offset at which this Node begins.
280
+ */
281
+ /**
282
+ * The character offset at which this Node ends.
283
+ */
284
+ /**
285
+ * The 1-indexed line number on which this Token appears.
286
+ */
287
+ /**
288
+ * The 1-indexed column number at which this Token begins.
289
+ */
290
+ /**
291
+ * For non-punctuation tokens, represents the interpreted value of the token.
292
+ *
293
+ * Note: is undefined for punctuation tokens, but typed as string for
294
+ * convenience in the parser.
295
+ */
296
+ /**
297
+ * Tokens exist as nodes in a double-linked-list amongst all tokens
298
+ * including ignored tokens. <SOF> is always the first node and <EOF>
299
+ * the last.
300
+ */
301
+ constructor(n, s, a, r, o, i) {
302
+ this.kind = n, this.start = s, this.end = a, this.line = r, this.column = o, this.value = i, this.prev = null, this.next = null;
303
+ }
304
+ get [Symbol.toStringTag]() {
305
+ return "Token";
306
+ }
307
+ toJSON() {
308
+ return {
309
+ kind: this.kind,
310
+ value: this.value,
311
+ line: this.line,
312
+ column: this.column
313
+ };
314
+ }
315
+ }
316
+ const Zs = {
317
+ Name: [],
318
+ Document: ["definitions"],
319
+ OperationDefinition: [
320
+ "description",
321
+ "name",
322
+ "variableDefinitions",
323
+ "directives",
324
+ "selectionSet"
325
+ ],
326
+ VariableDefinition: [
327
+ "description",
328
+ "variable",
329
+ "type",
330
+ "defaultValue",
331
+ "directives"
332
+ ],
333
+ Variable: ["name"],
334
+ SelectionSet: ["selections"],
335
+ Field: ["alias", "name", "arguments", "directives", "selectionSet"],
336
+ Argument: ["name", "value"],
337
+ FragmentSpread: ["name", "directives"],
338
+ InlineFragment: ["typeCondition", "directives", "selectionSet"],
339
+ FragmentDefinition: [
340
+ "description",
341
+ "name",
342
+ // Note: fragment variable definitions are deprecated and will removed in v17.0.0
343
+ "variableDefinitions",
344
+ "typeCondition",
345
+ "directives",
346
+ "selectionSet"
347
+ ],
348
+ IntValue: [],
349
+ FloatValue: [],
350
+ StringValue: [],
351
+ BooleanValue: [],
352
+ NullValue: [],
353
+ EnumValue: [],
354
+ ListValue: ["values"],
355
+ ObjectValue: ["fields"],
356
+ ObjectField: ["name", "value"],
357
+ Directive: ["name", "arguments"],
358
+ NamedType: ["name"],
359
+ ListType: ["type"],
360
+ NonNullType: ["type"],
361
+ SchemaDefinition: ["description", "directives", "operationTypes"],
362
+ OperationTypeDefinition: ["type"],
363
+ ScalarTypeDefinition: ["description", "name", "directives"],
364
+ ObjectTypeDefinition: [
365
+ "description",
366
+ "name",
367
+ "interfaces",
368
+ "directives",
369
+ "fields"
370
+ ],
371
+ FieldDefinition: ["description", "name", "arguments", "type", "directives"],
372
+ InputValueDefinition: [
373
+ "description",
374
+ "name",
375
+ "type",
376
+ "defaultValue",
377
+ "directives"
378
+ ],
379
+ InterfaceTypeDefinition: [
380
+ "description",
381
+ "name",
382
+ "interfaces",
383
+ "directives",
384
+ "fields"
385
+ ],
386
+ UnionTypeDefinition: ["description", "name", "directives", "types"],
387
+ EnumTypeDefinition: ["description", "name", "directives", "values"],
388
+ EnumValueDefinition: ["description", "name", "directives"],
389
+ InputObjectTypeDefinition: ["description", "name", "directives", "fields"],
390
+ DirectiveDefinition: ["description", "name", "arguments", "locations"],
391
+ SchemaExtension: ["directives", "operationTypes"],
392
+ ScalarTypeExtension: ["name", "directives"],
393
+ ObjectTypeExtension: ["name", "interfaces", "directives", "fields"],
394
+ InterfaceTypeExtension: ["name", "interfaces", "directives", "fields"],
395
+ UnionTypeExtension: ["name", "directives", "types"],
396
+ EnumTypeExtension: ["name", "directives", "values"],
397
+ InputObjectTypeExtension: ["name", "directives", "fields"],
398
+ TypeCoordinate: ["name"],
399
+ MemberCoordinate: ["name", "memberName"],
400
+ ArgumentCoordinate: ["name", "fieldName", "argumentName"],
401
+ DirectiveCoordinate: ["name"],
402
+ DirectiveArgumentCoordinate: ["name", "argumentName"]
403
+ }, Ys = new Set(Object.keys(Zs));
404
+ function Xa(e) {
405
+ const n = e?.kind;
406
+ return typeof n == "string" && Ys.has(n);
407
+ }
408
+ var Pt;
409
+ (function(e) {
410
+ e.QUERY = "query", e.MUTATION = "mutation", e.SUBSCRIPTION = "subscription";
411
+ })(Pt || (Pt = {}));
412
+ function Ke(e) {
413
+ return e === 9 || e === 32;
414
+ }
415
+ function ge(e) {
416
+ return e >= 48 && e <= 57;
417
+ }
418
+ function en(e) {
419
+ return e >= 97 && e <= 122 || // A-Z
420
+ e >= 65 && e <= 90;
421
+ }
422
+ function tn(e) {
423
+ return en(e) || e === 95;
424
+ }
425
+ function er(e) {
426
+ return en(e) || ge(e) || e === 95;
427
+ }
428
+ function tr(e) {
429
+ var n;
430
+ let s = Number.MAX_SAFE_INTEGER, a = null, r = -1;
431
+ for (let i = 0; i < e.length; ++i) {
432
+ var o;
433
+ const c = e[i], l = nr(c);
434
+ l !== c.length && (a = (o = a) !== null && o !== void 0 ? o : i, r = i, i !== 0 && l < s && (s = l));
435
+ }
436
+ return e.map((i, c) => c === 0 ? i : i.slice(s)).slice(
437
+ (n = a) !== null && n !== void 0 ? n : 0,
438
+ r + 1
439
+ );
440
+ }
441
+ function nr(e) {
442
+ let n = 0;
443
+ for (; n < e.length && Ke(e.charCodeAt(n)); )
444
+ ++n;
445
+ return n;
446
+ }
447
+ function sr(e, n) {
448
+ const s = e.replace(/"""/g, '\\"""'), a = s.split(/\r\n|[\n\r]/g), r = a.length === 1, o = a.length > 1 && a.slice(1).every((h) => h.length === 0 || Ke(h.charCodeAt(0))), i = s.endsWith('\\"""'), c = e.endsWith('"') && !i, l = e.endsWith("\\"), m = c || l, d = !(n != null && n.minimize) && // add leading and trailing new lines only if it improves readability
449
+ (!r || e.length > 70 || m || o || i);
450
+ let f = "";
451
+ const x = r && Ke(e.charCodeAt(0));
452
+ return (d && !x || o) && (f += `
453
+ `), f += s, (d || m) && (f += `
454
+ `), '"""' + f + '"""';
455
+ }
456
+ var b;
457
+ (function(e) {
458
+ e.SOF = "<SOF>", e.EOF = "<EOF>", e.BANG = "!", e.DOLLAR = "$", e.AMP = "&", e.PAREN_L = "(", e.PAREN_R = ")", e.DOT = ".", e.SPREAD = "...", e.COLON = ":", e.EQUALS = "=", e.AT = "@", e.BRACKET_L = "[", e.BRACKET_R = "]", e.BRACE_L = "{", e.PIPE = "|", e.BRACE_R = "}", e.NAME = "Name", e.INT = "Int", e.FLOAT = "Float", e.STRING = "String", e.BLOCK_STRING = "BlockString", e.COMMENT = "Comment";
459
+ })(b || (b = {}));
460
+ class rr {
461
+ /**
462
+ * The previously focused non-ignored token.
463
+ */
464
+ /**
465
+ * The currently focused non-ignored token.
466
+ */
467
+ /**
468
+ * The (1-indexed) line containing the current token.
469
+ */
470
+ /**
471
+ * The character offset at which the current line begins.
472
+ */
473
+ constructor(n) {
474
+ const s = new Yt(b.SOF, 0, 0, 0, 0);
475
+ this.source = n, this.lastToken = s, this.token = s, this.line = 1, this.lineStart = 0;
476
+ }
477
+ get [Symbol.toStringTag]() {
478
+ return "Lexer";
479
+ }
480
+ /**
481
+ * Advances the token stream to the next non-ignored token.
482
+ */
483
+ advance() {
484
+ return this.lastToken = this.token, this.token = this.lookahead();
485
+ }
486
+ /**
487
+ * Looks ahead and returns the next non-ignored token, but does not change
488
+ * the state of Lexer.
489
+ */
490
+ lookahead() {
491
+ let n = this.token;
492
+ if (n.kind !== b.EOF)
493
+ do
494
+ if (n.next)
495
+ n = n.next;
496
+ else {
497
+ const s = or(this, n.end);
498
+ n.next = s, s.prev = n, n = s;
499
+ }
500
+ while (n.kind === b.COMMENT);
501
+ return n;
502
+ }
503
+ }
504
+ function ar(e) {
505
+ return e === b.BANG || e === b.DOLLAR || e === b.AMP || e === b.PAREN_L || e === b.PAREN_R || e === b.DOT || e === b.SPREAD || e === b.COLON || e === b.EQUALS || e === b.AT || e === b.BRACKET_L || e === b.BRACKET_R || e === b.BRACE_L || e === b.PIPE || e === b.BRACE_R;
506
+ }
507
+ function ie(e) {
508
+ return e >= 0 && e <= 55295 || e >= 57344 && e <= 1114111;
509
+ }
510
+ function Oe(e, n) {
511
+ return nn(e.charCodeAt(n)) && sn(e.charCodeAt(n + 1));
512
+ }
513
+ function nn(e) {
514
+ return e >= 55296 && e <= 56319;
515
+ }
516
+ function sn(e) {
517
+ return e >= 56320 && e <= 57343;
518
+ }
519
+ function Z(e, n) {
520
+ const s = e.source.body.codePointAt(n);
521
+ if (s === void 0)
522
+ return b.EOF;
523
+ if (s >= 32 && s <= 126) {
524
+ const a = String.fromCodePoint(s);
525
+ return a === '"' ? `'"'` : `"${a}"`;
526
+ }
527
+ return "U+" + s.toString(16).toUpperCase().padStart(4, "0");
528
+ }
529
+ function P(e, n, s, a, r) {
530
+ const o = e.line, i = 1 + s - e.lineStart;
531
+ return new Yt(n, s, a, o, i, r);
532
+ }
533
+ function or(e, n) {
534
+ const s = e.source.body, a = s.length;
535
+ let r = n;
536
+ for (; r < a; ) {
537
+ const o = s.charCodeAt(r);
538
+ switch (o) {
539
+ // Ignored ::
540
+ // - UnicodeBOM
541
+ // - WhiteSpace
542
+ // - LineTerminator
543
+ // - Comment
544
+ // - Comma
545
+ //
546
+ // UnicodeBOM :: "Byte Order Mark (U+FEFF)"
547
+ //
548
+ // WhiteSpace ::
549
+ // - "Horizontal Tab (U+0009)"
550
+ // - "Space (U+0020)"
551
+ //
552
+ // Comma :: ,
553
+ case 65279:
554
+ // <BOM>
555
+ case 9:
556
+ // \t
557
+ case 32:
558
+ // <space>
559
+ case 44:
560
+ ++r;
561
+ continue;
562
+ // LineTerminator ::
563
+ // - "New Line (U+000A)"
564
+ // - "Carriage Return (U+000D)" [lookahead != "New Line (U+000A)"]
565
+ // - "Carriage Return (U+000D)" "New Line (U+000A)"
566
+ case 10:
567
+ ++r, ++e.line, e.lineStart = r;
568
+ continue;
569
+ case 13:
570
+ s.charCodeAt(r + 1) === 10 ? r += 2 : ++r, ++e.line, e.lineStart = r;
571
+ continue;
572
+ // Comment
573
+ case 35:
574
+ return ir(e, r);
575
+ // Token ::
576
+ // - Punctuator
577
+ // - Name
578
+ // - IntValue
579
+ // - FloatValue
580
+ // - StringValue
581
+ //
582
+ // Punctuator :: one of ! $ & ( ) ... : = @ [ ] { | }
583
+ case 33:
584
+ return P(e, b.BANG, r, r + 1);
585
+ case 36:
586
+ return P(e, b.DOLLAR, r, r + 1);
587
+ case 38:
588
+ return P(e, b.AMP, r, r + 1);
589
+ case 40:
590
+ return P(e, b.PAREN_L, r, r + 1);
591
+ case 41:
592
+ return P(e, b.PAREN_R, r, r + 1);
593
+ case 46:
594
+ if (s.charCodeAt(r + 1) === 46 && s.charCodeAt(r + 2) === 46)
595
+ return P(e, b.SPREAD, r, r + 3);
596
+ break;
597
+ case 58:
598
+ return P(e, b.COLON, r, r + 1);
599
+ case 61:
600
+ return P(e, b.EQUALS, r, r + 1);
601
+ case 64:
602
+ return P(e, b.AT, r, r + 1);
603
+ case 91:
604
+ return P(e, b.BRACKET_L, r, r + 1);
605
+ case 93:
606
+ return P(e, b.BRACKET_R, r, r + 1);
607
+ case 123:
608
+ return P(e, b.BRACE_L, r, r + 1);
609
+ case 124:
610
+ return P(e, b.PIPE, r, r + 1);
611
+ case 125:
612
+ return P(e, b.BRACE_R, r, r + 1);
613
+ // StringValue
614
+ case 34:
615
+ return s.charCodeAt(r + 1) === 34 && s.charCodeAt(r + 2) === 34 ? pr(e, r) : cr(e, r);
616
+ }
617
+ if (ge(o) || o === 45)
618
+ return lr(e, r, o);
619
+ if (tn(o))
620
+ return hr(e, r);
621
+ throw F(
622
+ e.source,
623
+ r,
624
+ o === 39 ? `Unexpected single quote character ('), did you mean to use a double quote (")?` : ie(o) || Oe(s, r) ? `Unexpected character: ${Z(e, r)}.` : `Invalid character: ${Z(e, r)}.`
625
+ );
626
+ }
627
+ return P(e, b.EOF, a, a);
628
+ }
629
+ function ir(e, n) {
630
+ const s = e.source.body, a = s.length;
631
+ let r = n + 1;
632
+ for (; r < a; ) {
633
+ const o = s.charCodeAt(r);
634
+ if (o === 10 || o === 13)
635
+ break;
636
+ if (ie(o))
637
+ ++r;
638
+ else if (Oe(s, r))
639
+ r += 2;
640
+ else
641
+ break;
642
+ }
643
+ return P(
644
+ e,
645
+ b.COMMENT,
646
+ n,
647
+ r,
648
+ s.slice(n + 1, r)
649
+ );
650
+ }
651
+ function lr(e, n, s) {
652
+ const a = e.source.body;
653
+ let r = n, o = s, i = !1;
654
+ if (o === 45 && (o = a.charCodeAt(++r)), o === 48) {
655
+ if (o = a.charCodeAt(++r), ge(o))
656
+ throw F(
657
+ e.source,
658
+ r,
659
+ `Invalid number, unexpected digit after 0: ${Z(
660
+ e,
661
+ r
662
+ )}.`
663
+ );
664
+ } else
665
+ r = Me(e, r, o), o = a.charCodeAt(r);
666
+ if (o === 46 && (i = !0, o = a.charCodeAt(++r), r = Me(e, r, o), o = a.charCodeAt(r)), (o === 69 || o === 101) && (i = !0, o = a.charCodeAt(++r), (o === 43 || o === 45) && (o = a.charCodeAt(++r)), r = Me(e, r, o), o = a.charCodeAt(r)), o === 46 || tn(o))
667
+ throw F(
668
+ e.source,
669
+ r,
670
+ `Invalid number, expected digit but got: ${Z(
671
+ e,
672
+ r
673
+ )}.`
674
+ );
675
+ return P(
676
+ e,
677
+ i ? b.FLOAT : b.INT,
678
+ n,
679
+ r,
680
+ a.slice(n, r)
681
+ );
682
+ }
683
+ function Me(e, n, s) {
684
+ if (!ge(s))
685
+ throw F(
686
+ e.source,
687
+ n,
688
+ `Invalid number, expected digit but got: ${Z(
689
+ e,
690
+ n
691
+ )}.`
692
+ );
693
+ const a = e.source.body;
694
+ let r = n + 1;
695
+ for (; ge(a.charCodeAt(r)); )
696
+ ++r;
697
+ return r;
698
+ }
699
+ function cr(e, n) {
700
+ const s = e.source.body, a = s.length;
701
+ let r = n + 1, o = r, i = "";
702
+ for (; r < a; ) {
703
+ const c = s.charCodeAt(r);
704
+ if (c === 34)
705
+ return i += s.slice(o, r), P(e, b.STRING, n, r + 1, i);
706
+ if (c === 92) {
707
+ i += s.slice(o, r);
708
+ const l = s.charCodeAt(r + 1) === 117 ? s.charCodeAt(r + 2) === 123 ? dr(e, r) : ur(e, r) : mr(e, r);
709
+ i += l.value, r += l.size, o = r;
710
+ continue;
711
+ }
712
+ if (c === 10 || c === 13)
713
+ break;
714
+ if (ie(c))
715
+ ++r;
716
+ else if (Oe(s, r))
717
+ r += 2;
718
+ else
719
+ throw F(
720
+ e.source,
721
+ r,
722
+ `Invalid character within String: ${Z(
723
+ e,
724
+ r
725
+ )}.`
726
+ );
727
+ }
728
+ throw F(e.source, r, "Unterminated string.");
729
+ }
730
+ function dr(e, n) {
731
+ const s = e.source.body;
732
+ let a = 0, r = 3;
733
+ for (; r < 12; ) {
734
+ const o = s.charCodeAt(n + r++);
735
+ if (o === 125) {
736
+ if (r < 5 || !ie(a))
737
+ break;
738
+ return {
739
+ value: String.fromCodePoint(a),
740
+ size: r
741
+ };
742
+ }
743
+ if (a = a << 4 | ce(o), a < 0)
744
+ break;
745
+ }
746
+ throw F(
747
+ e.source,
748
+ n,
749
+ `Invalid Unicode escape sequence: "${s.slice(
750
+ n,
751
+ n + r
752
+ )}".`
753
+ );
754
+ }
755
+ function ur(e, n) {
756
+ const s = e.source.body, a = Ot(s, n + 2);
757
+ if (ie(a))
758
+ return {
759
+ value: String.fromCodePoint(a),
760
+ size: 6
761
+ };
762
+ if (nn(a) && s.charCodeAt(n + 6) === 92 && s.charCodeAt(n + 7) === 117) {
763
+ const r = Ot(s, n + 8);
764
+ if (sn(r))
765
+ return {
766
+ value: String.fromCodePoint(a, r),
767
+ size: 12
768
+ };
769
+ }
770
+ throw F(
771
+ e.source,
772
+ n,
773
+ `Invalid Unicode escape sequence: "${s.slice(n, n + 6)}".`
774
+ );
775
+ }
776
+ function Ot(e, n) {
777
+ return ce(e.charCodeAt(n)) << 12 | ce(e.charCodeAt(n + 1)) << 8 | ce(e.charCodeAt(n + 2)) << 4 | ce(e.charCodeAt(n + 3));
778
+ }
779
+ function ce(e) {
780
+ return e >= 48 && e <= 57 ? e - 48 : e >= 65 && e <= 70 ? e - 55 : e >= 97 && e <= 102 ? e - 87 : -1;
781
+ }
782
+ function mr(e, n) {
783
+ const s = e.source.body;
784
+ switch (s.charCodeAt(n + 1)) {
785
+ case 34:
786
+ return {
787
+ value: '"',
788
+ size: 2
789
+ };
790
+ case 92:
791
+ return {
792
+ value: "\\",
793
+ size: 2
794
+ };
795
+ case 47:
796
+ return {
797
+ value: "/",
798
+ size: 2
799
+ };
800
+ case 98:
801
+ return {
802
+ value: "\b",
803
+ size: 2
804
+ };
805
+ case 102:
806
+ return {
807
+ value: "\f",
808
+ size: 2
809
+ };
810
+ case 110:
811
+ return {
812
+ value: `
813
+ `,
814
+ size: 2
815
+ };
816
+ case 114:
817
+ return {
818
+ value: "\r",
819
+ size: 2
820
+ };
821
+ case 116:
822
+ return {
823
+ value: " ",
824
+ size: 2
825
+ };
826
+ }
827
+ throw F(
828
+ e.source,
829
+ n,
830
+ `Invalid character escape sequence: "${s.slice(
831
+ n,
832
+ n + 2
833
+ )}".`
834
+ );
835
+ }
836
+ function pr(e, n) {
837
+ const s = e.source.body, a = s.length;
838
+ let r = e.lineStart, o = n + 3, i = o, c = "";
839
+ const l = [];
840
+ for (; o < a; ) {
841
+ const m = s.charCodeAt(o);
842
+ if (m === 34 && s.charCodeAt(o + 1) === 34 && s.charCodeAt(o + 2) === 34) {
843
+ c += s.slice(i, o), l.push(c);
844
+ const d = P(
845
+ e,
846
+ b.BLOCK_STRING,
847
+ n,
848
+ o + 3,
849
+ // Return a string of the lines joined with U+000A.
850
+ tr(l).join(`
851
+ `)
852
+ );
853
+ return e.line += l.length - 1, e.lineStart = r, d;
854
+ }
855
+ if (m === 92 && s.charCodeAt(o + 1) === 34 && s.charCodeAt(o + 2) === 34 && s.charCodeAt(o + 3) === 34) {
856
+ c += s.slice(i, o), i = o + 1, o += 4;
857
+ continue;
858
+ }
859
+ if (m === 10 || m === 13) {
860
+ c += s.slice(i, o), l.push(c), m === 13 && s.charCodeAt(o + 1) === 10 ? o += 2 : ++o, c = "", i = o, r = o;
861
+ continue;
862
+ }
863
+ if (ie(m))
864
+ ++o;
865
+ else if (Oe(s, o))
866
+ o += 2;
867
+ else
868
+ throw F(
869
+ e.source,
870
+ o,
871
+ `Invalid character within String: ${Z(
872
+ e,
873
+ o
874
+ )}.`
875
+ );
876
+ }
877
+ throw F(e.source, o, "Unterminated string.");
878
+ }
879
+ function hr(e, n) {
880
+ const s = e.source.body, a = s.length;
881
+ let r = n + 1;
882
+ for (; r < a; ) {
883
+ const o = s.charCodeAt(r);
884
+ if (er(o))
885
+ ++r;
886
+ else
887
+ break;
888
+ }
889
+ return P(
890
+ e,
891
+ b.NAME,
892
+ n,
893
+ r,
894
+ s.slice(n, r)
895
+ );
896
+ }
897
+ const fr = 10, rn = 2;
898
+ function an(e) {
899
+ return Le(e, []);
900
+ }
901
+ function Le(e, n) {
902
+ switch (typeof e) {
903
+ case "string":
904
+ return JSON.stringify(e);
905
+ case "function":
906
+ return e.name ? `[function ${e.name}]` : "[function]";
907
+ case "object":
908
+ return gr(e, n);
909
+ default:
910
+ return String(e);
911
+ }
912
+ }
913
+ function gr(e, n) {
914
+ if (e === null)
915
+ return "null";
916
+ if (n.includes(e))
917
+ return "[Circular]";
918
+ const s = [...n, e];
919
+ if (xr(e)) {
920
+ const a = e.toJSON();
921
+ if (a !== e)
922
+ return typeof a == "string" ? a : Le(a, s);
923
+ } else if (Array.isArray(e))
924
+ return vr(e, s);
925
+ return yr(e, s);
926
+ }
927
+ function xr(e) {
928
+ return typeof e.toJSON == "function";
929
+ }
930
+ function yr(e, n) {
931
+ const s = Object.entries(e);
932
+ return s.length === 0 ? "{}" : n.length > rn ? "[" + br(e) + "]" : "{ " + s.map(
933
+ ([r, o]) => r + ": " + Le(o, n)
934
+ ).join(", ") + " }";
935
+ }
936
+ function vr(e, n) {
937
+ if (e.length === 0)
938
+ return "[]";
939
+ if (n.length > rn)
940
+ return "[Array]";
941
+ const s = Math.min(fr, e.length), a = e.length - s, r = [];
942
+ for (let o = 0; o < s; ++o)
943
+ r.push(Le(e[o], n));
944
+ return a === 1 ? r.push("... 1 more item") : a > 1 && r.push(`... ${a} more items`), "[" + r.join(", ") + "]";
945
+ }
946
+ function br(e) {
947
+ const n = Object.prototype.toString.call(e).replace(/^\[object /, "").replace(/]$/, "");
948
+ if (n === "Object" && typeof e.constructor == "function") {
949
+ const s = e.constructor.name;
950
+ if (typeof s == "string" && s !== "")
951
+ return s;
952
+ }
953
+ return n;
954
+ }
955
+ const jr = globalThis.process && // eslint-disable-next-line no-undef
956
+ process.env.NODE_ENV === "production", Cr = (
957
+ /* c8 ignore next 6 */
958
+ // FIXME: https://github.com/graphql/graphql-js/issues/2317
959
+ jr ? function(n, s) {
960
+ return n instanceof s;
961
+ } : function(n, s) {
962
+ if (n instanceof s)
963
+ return !0;
964
+ if (typeof n == "object" && n !== null) {
965
+ var a;
966
+ const r = s.prototype[Symbol.toStringTag], o = (
967
+ // We still need to support constructor's name to detect conflicts with older versions of this library.
968
+ Symbol.toStringTag in n ? n[Symbol.toStringTag] : (a = n.constructor) === null || a === void 0 ? void 0 : a.name
969
+ );
970
+ if (r === o) {
971
+ const i = an(n);
972
+ throw new Error(`Cannot use ${r} "${i}" from another module or realm.
973
+
974
+ Ensure that there is only one instance of "graphql" in the node_modules
975
+ directory. If different versions of "graphql" are the dependencies of other
976
+ relied on modules, use "resolutions" to ensure only one version is installed.
977
+
978
+ https://yarnpkg.com/en/docs/selective-version-resolutions
979
+
980
+ Duplicate "graphql" modules cannot be used at the same time since different
981
+ versions may have different capabilities and behavior. The data from one
982
+ version used in the function from another could produce confusing and
983
+ spurious results.`);
984
+ }
985
+ }
986
+ return !1;
987
+ }
988
+ );
989
+ class on {
990
+ constructor(n, s = "GraphQL request", a = {
991
+ line: 1,
992
+ column: 1
993
+ }) {
994
+ typeof n == "string" || qe(!1, `Body must be a string. Received: ${an(n)}.`), this.body = n, this.name = s, this.locationOffset = a, this.locationOffset.line > 0 || qe(
995
+ !1,
996
+ "line in locationOffset is 1-indexed and must be positive."
997
+ ), this.locationOffset.column > 0 || qe(
998
+ !1,
999
+ "column in locationOffset is 1-indexed and must be positive."
1000
+ );
1001
+ }
1002
+ get [Symbol.toStringTag]() {
1003
+ return "Source";
1004
+ }
1005
+ }
1006
+ function Nr(e) {
1007
+ return Cr(e, on);
1008
+ }
1009
+ function Sr(e) {
1010
+ const n = Nr(e) ? e : new on(e), s = n.body, a = new rr(n);
1011
+ let r = "", o = !1;
1012
+ for (; a.advance().kind !== b.EOF; ) {
1013
+ const i = a.token, c = i.kind, l = !ar(i.kind);
1014
+ o && (l || i.kind === b.SPREAD) && (r += " ");
1015
+ const m = s.slice(i.start, i.end);
1016
+ c === b.BLOCK_STRING ? r += sr(i.value, {
1017
+ minimize: !0
1018
+ }) : r += m, o = l;
1019
+ }
1020
+ return r;
1021
+ }
1022
+ const ln = Vt(
1023
+ void 0
1024
+ ), Za = ({
1025
+ children: e,
1026
+ client: n
1027
+ }) => /* @__PURE__ */ t.jsx(ln.Provider, { value: n, children: e }), cn = (e, n, ...[s]) => ({
1028
+ queryFn: () => e.fetch(n, s),
1029
+ queryKey: [Sr(n.toString()), s]
1030
+ }), wr = (e, ...[n]) => {
1031
+ const s = us(ln);
1032
+ if (s === void 0)
1033
+ throw new Error("useGraphQL must be used within a GraphQLProvider");
1034
+ return cn(s, e, ...n === void 0 ? [] : [n]);
1035
+ };
1036
+ class ee extends String {
1037
+ __apiType;
1038
+ value;
1039
+ __meta__;
1040
+ constructor(n, s) {
1041
+ super(n), this.value = n, this.__meta__ = s;
1042
+ }
1043
+ toString() {
1044
+ return this.value;
1045
+ }
1046
+ }
1047
+ const Tr = new ee(
1048
+ `
1049
+ fragment OperationsFragment on OperationItem {
1050
+ slug
1051
+ summary
1052
+ method
1053
+ description
1054
+ operationId
1055
+ contentTypes
1056
+ path
1057
+ deprecated
1058
+ extensions
1059
+ servers {
1060
+ url
1061
+ description
1062
+ }
1063
+ parameters {
1064
+ name
1065
+ in
1066
+ description
1067
+ required
1068
+ schema
1069
+ style
1070
+ explode
1071
+ examples {
1072
+ name
1073
+ description
1074
+ externalValue
1075
+ value
1076
+ summary
1077
+ }
1078
+ }
1079
+ requestBody {
1080
+ content {
1081
+ mediaType
1082
+ encoding {
1083
+ name
1084
+ }
1085
+ examples {
1086
+ name
1087
+ description
1088
+ externalValue
1089
+ value
1090
+ summary
1091
+ }
1092
+ schema
1093
+ }
1094
+ description
1095
+ required
1096
+ }
1097
+ responses {
1098
+ statusCode
1099
+ links
1100
+ description
1101
+ content {
1102
+ examples {
1103
+ name
1104
+ description
1105
+ externalValue
1106
+ value
1107
+ summary
1108
+ }
1109
+ mediaType
1110
+ encoding {
1111
+ name
1112
+ }
1113
+ schema
1114
+ }
1115
+ }
1116
+ }
1117
+ `,
1118
+ { fragmentName: "OperationsFragment" }
1119
+ ), Ar = new ee(`
1120
+ query ServersQuery($input: JSON!, $type: SchemaType!) {
1121
+ schema(input: $input, type: $type) {
1122
+ url
1123
+ servers {
1124
+ url
1125
+ }
1126
+ }
1127
+ }
1128
+ `), $r = new ee(`
1129
+ query SchemaWarmup($input: JSON!, $type: SchemaType!) {
1130
+ schema(input: $input, type: $type) {
1131
+ openapi
1132
+ }
1133
+ }
1134
+ `), Pr = new ee(`
1135
+ query OperationsForTag($input: JSON!, $type: SchemaType!, $tag: String, $untagged: Boolean) {
1136
+ schema(input: $input, type: $type) {
1137
+ servers {
1138
+ url
1139
+ }
1140
+ description
1141
+ summary
1142
+ title
1143
+ url
1144
+ version
1145
+ tag(slug: $tag, untagged: $untagged) {
1146
+ name
1147
+ description
1148
+ operations {
1149
+ slug
1150
+ ...OperationsFragment
1151
+ }
1152
+ extensions
1153
+ next {
1154
+ name
1155
+ slug
1156
+ extensions
1157
+ }
1158
+ prev {
1159
+ name
1160
+ slug
1161
+ extensions
1162
+ }
1163
+ }
1164
+ }
1165
+ }
1166
+ fragment OperationsFragment on OperationItem {
1167
+ slug
1168
+ summary
1169
+ method
1170
+ description
1171
+ operationId
1172
+ contentTypes
1173
+ path
1174
+ deprecated
1175
+ extensions
1176
+ servers {
1177
+ url
1178
+ description
1179
+ }
1180
+ parameters {
1181
+ name
1182
+ in
1183
+ description
1184
+ required
1185
+ schema
1186
+ style
1187
+ explode
1188
+ examples {
1189
+ name
1190
+ description
1191
+ externalValue
1192
+ value
1193
+ summary
1194
+ }
1195
+ }
1196
+ requestBody {
1197
+ content {
1198
+ mediaType
1199
+ encoding {
1200
+ name
1201
+ }
1202
+ examples {
1203
+ name
1204
+ description
1205
+ externalValue
1206
+ value
1207
+ summary
1208
+ }
1209
+ schema
1210
+ }
1211
+ description
1212
+ required
1213
+ }
1214
+ responses {
1215
+ statusCode
1216
+ links
1217
+ description
1218
+ content {
1219
+ examples {
1220
+ name
1221
+ description
1222
+ externalValue
1223
+ value
1224
+ summary
1225
+ }
1226
+ mediaType
1227
+ encoding {
1228
+ name
1229
+ }
1230
+ schema
1231
+ }
1232
+ }
1233
+ }`), Or = new ee(`
1234
+ query GetSchemas($input: JSON!, $type: SchemaType!) {
1235
+ schema(input: $input, type: $type) {
1236
+ title
1237
+ description
1238
+ summary
1239
+ components {
1240
+ schemas {
1241
+ name
1242
+ schema
1243
+ extensions
1244
+ }
1245
+ }
1246
+ }
1247
+ }
1248
+ `), Lr = new ee(`
1249
+ query getServerQuery($input: JSON!, $type: SchemaType!) {
1250
+ schema(input: $input, type: $type) {
1251
+ url
1252
+ servers {
1253
+ url
1254
+ }
1255
+ }
1256
+ }
1257
+ `), Er = new ee(`
1258
+ query GetNavigationOperations($input: JSON!, $type: SchemaType!) {
1259
+ schema(input: $input, type: $type) {
1260
+ extensions
1261
+ tags {
1262
+ slug
1263
+ name
1264
+ extensions
1265
+ operations {
1266
+ summary
1267
+ slug
1268
+ method
1269
+ operationId
1270
+ path
1271
+ }
1272
+ }
1273
+ components {
1274
+ schemas {
1275
+ __typename
1276
+ }
1277
+ }
1278
+ }
1279
+ }
1280
+ `), kr = {
1281
+ "\n query ServersQuery($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n servers {\n url\n }\n }\n }\n": Ar,
1282
+ "\n fragment OperationsFragment on OperationItem {\n slug\n summary\n method\n description\n operationId\n contentTypes\n path\n deprecated\n extensions\n servers {\n url\n description\n }\n parameters {\n name\n in\n description\n required\n schema\n style\n explode\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": Tr,
1283
+ "\n query SchemaWarmup($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n openapi\n }\n }\n": $r,
1284
+ "\n query OperationsForTag(\n $input: JSON!\n $type: SchemaType!\n $tag: String\n $untagged: Boolean\n ) {\n schema(input: $input, type: $type) {\n servers {\n url\n }\n description\n summary\n title\n url\n version\n tag(slug: $tag, untagged: $untagged) {\n name\n description\n operations {\n slug\n ...OperationsFragment\n }\n extensions\n next {\n name\n slug\n extensions\n }\n prev {\n name\n slug\n extensions\n }\n }\n }\n }\n": Pr,
1285
+ "\n query GetSchemas($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n title\n description\n summary\n components {\n schemas {\n name\n schema\n extensions\n }\n }\n }\n }\n": Or,
1286
+ "\n query getServerQuery($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n servers {\n url\n }\n }\n }\n": Lr,
1287
+ "\n query GetNavigationOperations($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n extensions\n tags {\n slug\n name\n extensions\n operations {\n summary\n slug\n method\n operationId\n path\n }\n }\n components {\n schemas {\n __typename\n }\n }\n }\n }\n": Er
1288
+ };
1289
+ function Rr(e) {
1290
+ return kr[e] ?? {};
1291
+ }
1292
+ function B({
1293
+ ...e
1294
+ }) {
1295
+ return /* @__PURE__ */ t.jsx(st.Root, { "data-slot": "collapsible", ...e });
1296
+ }
1297
+ function de({
1298
+ ...e
1299
+ }) {
1300
+ return /* @__PURE__ */ t.jsx(
1301
+ st.CollapsibleTrigger,
1302
+ {
1303
+ "data-slot": "collapsible-trigger",
1304
+ ...e
1305
+ }
1306
+ );
1307
+ }
1308
+ function _({
1309
+ ...e
1310
+ }) {
1311
+ return /* @__PURE__ */ t.jsx(
1312
+ st.CollapsibleContent,
1313
+ {
1314
+ "data-slot": "collapsible-content",
1315
+ ...e
1316
+ }
1317
+ );
1318
+ }
1319
+ function Ir() {
1320
+ const n = navigator.userAgent.toLowerCase();
1321
+ if (n.indexOf("win") !== -1)
1322
+ return "windows";
1323
+ if (n.indexOf("mac") !== -1)
1324
+ return "apple";
1325
+ if (n.indexOf("linux") !== -1)
1326
+ return "linux";
1327
+ if (n.indexOf("x11") !== -1)
1328
+ return "unix";
1329
+ }
1330
+ function Dr() {
1331
+ return Ir() === "apple";
1332
+ }
1333
+ const Fr = {
1334
+ other: {
1335
+ alt: "Alt",
1336
+ meta: "Ctrl",
1337
+ ctrl: "Ctrl",
1338
+ shift: "⇧",
1339
+ option: "Alt"
1340
+ },
1341
+ apple: {
1342
+ alt: "⌥",
1343
+ meta: "⌘",
1344
+ ctrl: "Ctrl",
1345
+ shift: "⇧",
1346
+ option: "⌥"
1347
+ }
1348
+ }, zr = (e, n) => {
1349
+ const s = e.toLowerCase().split("+"), a = s.includes("meta"), r = s.includes("shift"), o = s.includes("option") || s.includes("alt"), i = s.includes("ctrl"), c = e.split("+").pop(), l = E(n);
1350
+ return G(() => {
1351
+ l.current = n;
1352
+ }, [n]), G(() => {
1353
+ const m = (d) => {
1354
+ (d.code === `Key${c?.toUpperCase()}` || d.code.toLowerCase() === c?.toLowerCase()) && d.metaKey === a && d.shiftKey === r && d.altKey === o && d.ctrlKey === i && (d.preventDefault(), l.current());
1355
+ };
1356
+ return window.addEventListener("keydown", m), () => {
1357
+ window.removeEventListener("keydown", m);
1358
+ };
1359
+ }, [c, a, r, o, i]), {
1360
+ trigger: () => l.current(),
1361
+ label: s.map(
1362
+ (m) => m === "meta" || m === "ctrl" || m === "alt" || m === "shift" || m === "option" ? Fr[Dr() ? "apple" : "other"][m] : m
1363
+ )
1364
+ };
1365
+ }, Vr = Ze()(
1366
+ Ye(
1367
+ (e) => ({
1368
+ selectedServer: void 0,
1369
+ setSelectedServer: (n) => e({ selectedServer: n })
1370
+ }),
1371
+ { name: "zudoku-selected-server" }
1372
+ )
1373
+ ), Br = (e) => {
1374
+ const { selectedServer: n, setSelectedServer: s } = Vr();
1375
+ return { selectedServer: Bt(
1376
+ () => n && e.some((r) => r.url === n) ? n : e.at(0)?.url ?? "",
1377
+ [n, e]
1378
+ ), setSelectedServer: s };
1379
+ }, dn = Q.forwardRef(
1380
+ ({ className: e, ...n }, s) => /* @__PURE__ */ t.jsx(
1381
+ "textarea",
1382
+ {
1383
+ className: w(
1384
+ "flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
1385
+ e
1386
+ ),
1387
+ ref: s,
1388
+ ...n
1389
+ }
1390
+ )
1391
+ );
1392
+ dn.displayName = "Textarea";
1393
+ const Ee = (e = 0) => {
1394
+ if (e === 0)
1395
+ return "0 B";
1396
+ const n = Math.floor(Math.log(e) / Math.log(1e3));
1397
+ return `${(e / 1e3 ** n).toFixed(n ? 2 : 0)} ${n ? `${"kMGTPEZY"[n - 1]}B` : "B"}`;
1398
+ }, Y = ({
1399
+ children: e,
1400
+ className: n
1401
+ }) => /* @__PURE__ */ t.jsxs(
1402
+ "div",
1403
+ {
1404
+ className: w(
1405
+ "grid grid-cols-[max-content_1fr_max-content] items-center gap-2 group bg-muted w-full h-10 ps-4 pe-2 border-b",
1406
+ n
1407
+ ),
1408
+ children: [
1409
+ e,
1410
+ /* @__PURE__ */ t.jsxs(
1411
+ de,
1412
+ {
1413
+ className: w(
1414
+ "flex items-center gap-4 group bg-muted w-full p-2 hover:bg-accent hover:brightness-95 opacity-75 rounded-md",
1415
+ n
1416
+ ),
1417
+ children: [
1418
+ /* @__PURE__ */ t.jsx(
1419
+ En,
1420
+ {
1421
+ className: "group-data-[state=closed]:hidden shrink-0",
1422
+ size: 14
1423
+ }
1424
+ ),
1425
+ /* @__PURE__ */ t.jsx(
1426
+ kn,
1427
+ {
1428
+ className: "group-data-[state=open]:hidden shrink-0",
1429
+ size: 14
1430
+ }
1431
+ )
1432
+ ]
1433
+ }
1434
+ )
1435
+ ]
1436
+ }
1437
+ ), H = ({
1438
+ children: e,
1439
+ className: n
1440
+ }) => /* @__PURE__ */ t.jsx("span", { className: w("font-semibold w-full text-start", n), children: e }), _r = ({
1441
+ examples: e,
1442
+ onSelect: n
1443
+ }) => /* @__PURE__ */ t.jsxs(Jt, { children: [
1444
+ /* @__PURE__ */ t.jsx(Wt, { asChild: !0, children: /* @__PURE__ */ t.jsxs(
1445
+ q,
1446
+ {
1447
+ variant: "ghost",
1448
+ size: "sm",
1449
+ className: "hover:bg-accent hover:brightness-95 gap-2",
1450
+ children: [
1451
+ "Use Example",
1452
+ /* @__PURE__ */ t.jsx(Je, { size: 14 })
1453
+ ]
1454
+ }
1455
+ ) }),
1456
+ /* @__PURE__ */ t.jsx(Kt, { className: "max-w-72", children: e.map((s) => /* @__PURE__ */ t.jsxs("div", { children: [
1457
+ /* @__PURE__ */ t.jsx(Os, { children: s.mediaType }),
1458
+ /* @__PURE__ */ t.jsx(Ls, {}),
1459
+ /* @__PURE__ */ t.jsx(Es, { children: s.examples?.map((a) => /* @__PURE__ */ t.jsx(
1460
+ Ae,
1461
+ {
1462
+ onSelect: () => n(a, s.mediaType),
1463
+ children: /* @__PURE__ */ t.jsx(
1464
+ "span",
1465
+ {
1466
+ className: "line-clamp-1",
1467
+ title: a.summary ?? a.name,
1468
+ children: a.summary ?? a.name
1469
+ }
1470
+ )
1471
+ },
1472
+ a.name
1473
+ )) })
1474
+ ] }, s.mediaType)) })
1475
+ ] }), un = Q.forwardRef(
1476
+ ({ className: e, type: n, ...s }, a) => /* @__PURE__ */ t.jsx(
1477
+ "input",
1478
+ {
1479
+ type: n,
1480
+ className: w(
1481
+ "flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-xs transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
1482
+ e
1483
+ ),
1484
+ ref: a,
1485
+ ...s
1486
+ }
1487
+ )
1488
+ );
1489
+ un.displayName = "Input";
1490
+ const ye = (e, n) => {
1491
+ const s = Q.forwardRef(({ className: a, asChild: r, ...o }, i) => {
1492
+ const c = r ? ks : e;
1493
+ return Q.createElement(c, {
1494
+ ...o,
1495
+ ref: i,
1496
+ className: typeof n == "function" ? n({ className: a }) : w(n, a)
1497
+ });
1498
+ });
1499
+ return s.displayName = typeof e == "string" ? `VariantComponent(${e})` : `VariantComponent(${e.displayName || e.name || "Component"})`, s;
1500
+ }, ke = ye(
1501
+ "div",
1502
+ "grid grid-cols-[min-content_2fr_3fr] items-center gap-x-5 [&>*:last-child_[data-slot=remove-button]]:invisible"
1503
+ ), xe = ye(
1504
+ "div",
1505
+ "group h-9 hover:bg-accent/75 ps-4 pe-2 grid col-span-full grid-cols-subgrid items-center border-b"
1506
+ ), I = ye(
1507
+ un,
1508
+ "w-full truncate border-0 p-0 m-0 shadow-none text-xs focus-visible:ring-0 font-mono"
1509
+ ), at = ({
1510
+ onClick: e,
1511
+ className: n
1512
+ }) => /* @__PURE__ */ t.jsx(
1513
+ he,
1514
+ {
1515
+ size: "icon-xs",
1516
+ variant: "ghost",
1517
+ className: w(
1518
+ "text-muted-foreground opacity-0 group-hover:brightness-95 focus-visible:opacity-100 group-hover:opacity-100",
1519
+ n
1520
+ ),
1521
+ onClick: e,
1522
+ type: "button",
1523
+ "data-slot": "remove-button",
1524
+ children: /* @__PURE__ */ t.jsx(It, { size: 14 })
1525
+ }
1526
+ );
1527
+ function ve({
1528
+ className: e,
1529
+ ...n
1530
+ }) {
1531
+ return /* @__PURE__ */ t.jsx(
1532
+ Tt.Root,
1533
+ {
1534
+ "data-slot": "checkbox",
1535
+ className: w(
1536
+ "peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
1537
+ e
1538
+ ),
1539
+ ...n,
1540
+ children: /* @__PURE__ */ t.jsx(
1541
+ Tt.Indicator,
1542
+ {
1543
+ "data-slot": "checkbox-indicator",
1544
+ className: "grid place-content-center text-current transition-none",
1545
+ children: /* @__PURE__ */ t.jsx(Dt, { className: "size-3.5" })
1546
+ }
1547
+ )
1548
+ }
1549
+ );
1550
+ }
1551
+ const qr = ({ index: e, manager: n }) => {
1552
+ const s = E(null), a = n.getValue(e, "value");
1553
+ return /* @__PURE__ */ t.jsxs(xe, { children: [
1554
+ /* @__PURE__ */ t.jsx(
1555
+ ve,
1556
+ {
1557
+ ...n.getCheckboxProps(e),
1558
+ disabled: !n.getValue(e, "name")
1559
+ }
1560
+ ),
1561
+ /* @__PURE__ */ t.jsx(
1562
+ I,
1563
+ {
1564
+ ...n.getNameInputProps(e),
1565
+ placeholder: "Key"
1566
+ }
1567
+ ),
1568
+ /* @__PURE__ */ t.jsxs("div", { className: "flex items-center gap-1 flex-1", children: [
1569
+ a instanceof File ? /* @__PURE__ */ t.jsxs("div", { className: "flex items-center gap-1 flex-1 min-w-0", children: [
1570
+ /* @__PURE__ */ t.jsxs("div", { className: "flex items-center gap-1 border-b cursor-default", children: [
1571
+ /* @__PURE__ */ t.jsx(me, { size: 12, className: "text-muted-foreground" }),
1572
+ /* @__PURE__ */ t.jsx(
1573
+ "span",
1574
+ {
1575
+ className: "text-xs truncate",
1576
+ title: `${a.name} (${Ee(a.size)})`,
1577
+ children: a.name
1578
+ }
1579
+ )
1580
+ ] }),
1581
+ /* @__PURE__ */ t.jsx(
1582
+ he,
1583
+ {
1584
+ type: "button",
1585
+ variant: "ghost",
1586
+ size: "icon-xs",
1587
+ className: "opacity-50 hover:opacity-100 hover:brightness-95 transition-opacity",
1588
+ onClick: () => n.setValue(e, "value", ""),
1589
+ children: /* @__PURE__ */ t.jsx(Rn, { size: 13 })
1590
+ }
1591
+ )
1592
+ ] }) : /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
1593
+ /* @__PURE__ */ t.jsx(
1594
+ I,
1595
+ {
1596
+ ...n.getValueInputProps(e),
1597
+ placeholder: "Value"
1598
+ }
1599
+ ),
1600
+ /* @__PURE__ */ t.jsx(
1601
+ "input",
1602
+ {
1603
+ ref: s,
1604
+ type: "file",
1605
+ className: "hidden",
1606
+ onChange: (r) => {
1607
+ const o = r.target.files?.[0];
1608
+ o && (n.setValue(e, "value", o), n.setValue(e, "active", !0));
1609
+ }
1610
+ }
1611
+ ),
1612
+ /* @__PURE__ */ t.jsx(
1613
+ he,
1614
+ {
1615
+ type: "button",
1616
+ variant: "ghost",
1617
+ size: "icon-xs",
1618
+ onClick: () => s.current?.click(),
1619
+ title: "Attach file",
1620
+ className: "opacity-0 focus-visible:opacity-100 group-hover:opacity-100 group-hover:brightness-95 transition-opacity",
1621
+ children: /* @__PURE__ */ t.jsx(me, { size: 14 })
1622
+ }
1623
+ )
1624
+ ] }),
1625
+ /* @__PURE__ */ t.jsx(at, { ...n.getRemoveButtonProps(e) })
1626
+ ] })
1627
+ ] });
1628
+ }, ot = (e) => {
1629
+ const {
1630
+ control: n,
1631
+ name: s,
1632
+ defaultValue: a,
1633
+ isEmpty: r,
1634
+ shouldSetActive: o
1635
+ } = e, {
1636
+ setValue: i,
1637
+ watch: c,
1638
+ setFocus: l,
1639
+ register: m
1640
+ } = oe(), { fields: d, append: f, remove: x } = Qt({ control: n, name: s }), h = c(s), v = E(-1), u = E(-1), y = D(
1641
+ (g, C, T, A) => {
1642
+ (C === "value" || C === "name") && (v.current = g), i(`${s}.${g}.${C}`, T), A?.focus === "next" ? l(
1643
+ C === "name" ? `${s}.${g}.value` : `${s}.${g + 1}.name`
1644
+ ) : A?.focus === "previous" && l(
1645
+ C === "name" ? `${s}.${g - 1}.value` : `${s}.${g}.name`
1646
+ );
1647
+ },
1648
+ [s, i, l]
1649
+ ), S = D(
1650
+ (g) => r ? r(g) : !g.name && !g.value,
1651
+ [r]
1652
+ ), R = D(
1653
+ (g) => o ? o(g) : !!(g.name || g.value),
1654
+ [o]
1655
+ );
1656
+ G(() => {
1657
+ if (!h) return;
1658
+ if (u.current === -1) {
1659
+ u.current = h.length, h.length === 0 && f(a, {
1660
+ shouldFocus: !1
1661
+ });
1662
+ return;
1663
+ }
1664
+ if (u.current = h.length, h.length === 0) {
1665
+ f(a, {
1666
+ shouldFocus: !1
1667
+ });
1668
+ return;
1669
+ }
1670
+ if (h.length > 1) {
1671
+ const C = [];
1672
+ for (let T = 0; T < h.length - 1; T++) {
1673
+ const A = h[T];
1674
+ A && S(A) && !R(A) && C.push(T);
1675
+ }
1676
+ if (C.length > 0) {
1677
+ const T = C[0];
1678
+ if (T === void 0) return;
1679
+ for (let A = C.length - 1; A >= 0; A--) {
1680
+ const M = C[A];
1681
+ M !== void 0 && x(M);
1682
+ }
1683
+ if (v.current === T) {
1684
+ const A = h.length - C.length;
1685
+ T < A ? l(`${s}.${T}.name`) : T > 0 ? l(`${s}.${T - 1}.name`) : l(`${s}.0.name`);
1686
+ }
1687
+ v.current = -1;
1688
+ }
1689
+ }
1690
+ const g = h[h.length - 1];
1691
+ g && !S(g) && f(a, {
1692
+ shouldFocus: !1
1693
+ });
1694
+ }, [
1695
+ h,
1696
+ f,
1697
+ x,
1698
+ a,
1699
+ S,
1700
+ s,
1701
+ l,
1702
+ R
1703
+ ]), G(() => {
1704
+ if (!h) return;
1705
+ const g = [];
1706
+ for (let C = 0; C < h.length; C++) {
1707
+ const T = h[C];
1708
+ if (!T) continue;
1709
+ const A = R(T);
1710
+ T.active !== A && g.push(() => y(C, "active", A));
1711
+ }
1712
+ g.length !== 0 && ms(() => g.forEach((C) => C()));
1713
+ }, [h, R, y]);
1714
+ const N = D(
1715
+ (g) => {
1716
+ const C = h?.[g];
1717
+ return C ? S(C) : !0;
1718
+ },
1719
+ [h, S]
1720
+ ), j = D(
1721
+ (g, C) => {
1722
+ const T = C === "name" ? `${s}.${g}.value` : `${s}.${g + 1}.name`, A = C === "name" ? `${s}.${g - 1}.value` : `${s}.${g}.name`, M = C === "value" || g > 0;
1723
+ return (L) => {
1724
+ if (!(L.target instanceof HTMLInputElement)) return;
1725
+ const De = L.target.selectionStart === 0, ne = L.target.selectionStart === L.target.value.length, je = !L.target.value;
1726
+ L.key === "Enter" ? l(T) : L.key === "Backspace" && je && M || L.key === "ArrowLeft" && De && M ? (L.preventDefault(), l(A)) : L.key === "ArrowRight" && ne && (L.preventDefault(), l(T));
1727
+ };
1728
+ },
1729
+ [s, l]
1730
+ ), O = D(
1731
+ (g) => ({
1732
+ ...m(`${s}.${g}.name`),
1733
+ onChange: (C) => y(g, "name", C.target.value),
1734
+ onKeyDown: j(g, "name")
1735
+ }),
1736
+ [m, s, y, j]
1737
+ ), J = D(
1738
+ (g) => ({
1739
+ ...m(`${s}.${g}.value`),
1740
+ onChange: (C) => y(g, "value", C.target.value),
1741
+ onKeyDown: j(g, "value")
1742
+ }),
1743
+ [m, s, y, j]
1744
+ ), be = D(
1745
+ (g) => ({
1746
+ ...m(`${s}.${g}.active`),
1747
+ checked: c(`${s}.${g}.active`) ?? !1,
1748
+ disabled: N(g),
1749
+ onCheckedChange: (C) => {
1750
+ y(g, "active", C === !0);
1751
+ }
1752
+ }),
1753
+ [s, m, N, c, y]
1754
+ ), Ie = D(
1755
+ (g, C) => h?.[g]?.[C],
1756
+ [h]
1757
+ ), te = D(
1758
+ (g) => ({
1759
+ onClick: () => x(g),
1760
+ disabled: g === d.length - 1
1761
+ }),
1762
+ [x, d.length]
1763
+ );
1764
+ return {
1765
+ fields: d,
1766
+ getNameInputProps: O,
1767
+ getValueInputProps: J,
1768
+ getCheckboxProps: be,
1769
+ getRemoveButtonProps: te,
1770
+ setValue: y,
1771
+ getValue: Ie
1772
+ };
1773
+ }, Mr = ({ content: e }) => {
1774
+ const { register: n, setValue: s, watch: a, control: r } = oe(), o = (e ?? []).flatMap((j) => j.examples), [i, c, l, m, d] = a([
1775
+ "headers",
1776
+ "file",
1777
+ "bodyMode",
1778
+ "body",
1779
+ "multipartFormFields"
1780
+ ]), f = E(null), [x, h] = k(!1), v = (j) => {
1781
+ s("file", j), j && s(
1782
+ "headers",
1783
+ i.filter(
1784
+ (O) => O.name.toLowerCase() !== "content-type" || !O.active
1785
+ )
1786
+ );
1787
+ }, u = (j) => {
1788
+ const O = j.target.files?.[0] ?? null;
1789
+ v(O);
1790
+ }, y = (j) => {
1791
+ j.preventDefault(), j.stopPropagation(), h(!0);
1792
+ }, S = (j) => {
1793
+ j.preventDefault(), j.stopPropagation(), h(!1);
1794
+ }, R = (j) => {
1795
+ j.preventDefault(), j.stopPropagation(), h(!1);
1796
+ const O = j.dataTransfer.files?.[0] ?? null;
1797
+ v(O);
1798
+ }, N = ot({
1799
+ control: r,
1800
+ name: "multipartFormFields",
1801
+ defaultValue: { name: "", value: "", active: !1 },
1802
+ isEmpty: (j) => j.value instanceof File ? !1 : !j.name && !j.value
1803
+ });
1804
+ return /* @__PURE__ */ t.jsxs(B, { defaultOpen: !0, children: [
1805
+ /* @__PURE__ */ t.jsxs(Y, { className: "items-center", children: [
1806
+ /* @__PURE__ */ t.jsx(In, { size: 16 }),
1807
+ /* @__PURE__ */ t.jsxs(H, { className: "flex items-center justify-between", children: [
1808
+ "Body",
1809
+ /* @__PURE__ */ t.jsxs("div", { className: "flex items-center", children: [
1810
+ /* @__PURE__ */ t.jsxs(Jt, { children: [
1811
+ /* @__PURE__ */ t.jsx(Wt, { asChild: !0, children: /* @__PURE__ */ t.jsxs(
1812
+ he,
1813
+ {
1814
+ variant: "ghost",
1815
+ size: "sm",
1816
+ className: "hover:bg-accent hover:brightness-95 gap-2",
1817
+ children: [
1818
+ l === "text" ? /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
1819
+ /* @__PURE__ */ t.jsx(yt, { size: 14 }),
1820
+ "Text"
1821
+ ] }) : l === "file" ? /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
1822
+ /* @__PURE__ */ t.jsx(me, { size: 14 }),
1823
+ "File"
1824
+ ] }) : /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
1825
+ /* @__PURE__ */ t.jsx(vt, { size: 14 }),
1826
+ "Multipart"
1827
+ ] }),
1828
+ /* @__PURE__ */ t.jsx(Dn, { size: 14 })
1829
+ ]
1830
+ }
1831
+ ) }),
1832
+ /* @__PURE__ */ t.jsxs(Kt, { className: "min-w-40", children: [
1833
+ /* @__PURE__ */ t.jsxs(
1834
+ Ae,
1835
+ {
1836
+ onSelect: () => s("bodyMode", "text"),
1837
+ className: "gap-2",
1838
+ children: [
1839
+ /* @__PURE__ */ t.jsx(yt, { size: 14 }),
1840
+ /* @__PURE__ */ t.jsx("span", { className: "flex-1", children: "Text" }),
1841
+ /* @__PURE__ */ t.jsx("span", { children: m.length > 0 && /* @__PURE__ */ t.jsx("div", { className: "w-1.5 h-1.5 bg-primary rounded-full" }) })
1842
+ ]
1843
+ }
1844
+ ),
1845
+ /* @__PURE__ */ t.jsxs(
1846
+ Ae,
1847
+ {
1848
+ onSelect: () => s("bodyMode", "file"),
1849
+ className: "gap-2",
1850
+ children: [
1851
+ /* @__PURE__ */ t.jsx(me, { size: 14 }),
1852
+ /* @__PURE__ */ t.jsx("span", { className: "flex-1", children: "File" }),
1853
+ /* @__PURE__ */ t.jsx("span", { children: c && /* @__PURE__ */ t.jsx("div", { className: "w-1.5 h-1.5 bg-primary rounded-full" }) })
1854
+ ]
1855
+ }
1856
+ ),
1857
+ /* @__PURE__ */ t.jsxs(
1858
+ Ae,
1859
+ {
1860
+ onSelect: () => s("bodyMode", "multipart"),
1861
+ className: "gap-2",
1862
+ children: [
1863
+ /* @__PURE__ */ t.jsx(vt, { size: 14, strokeWidth: 1.5 }),
1864
+ /* @__PURE__ */ t.jsx("span", { className: "flex-1", children: "Multipart" }),
1865
+ /* @__PURE__ */ t.jsx("span", { children: d?.some((j) => j.active) && /* @__PURE__ */ t.jsx("div", { className: "w-1.5 h-1.5 bg-primary rounded-full" }) })
1866
+ ]
1867
+ }
1868
+ )
1869
+ ] })
1870
+ ] }),
1871
+ /* @__PURE__ */ t.jsx(
1872
+ "input",
1873
+ {
1874
+ ref: f,
1875
+ type: "file",
1876
+ className: "hidden",
1877
+ onChange: u
1878
+ }
1879
+ ),
1880
+ /* @__PURE__ */ t.jsx("div", { className: "w-px mx-1 h-5 bg-border" }),
1881
+ e && o.length > 0 ? /* @__PURE__ */ t.jsx(
1882
+ _r,
1883
+ {
1884
+ examples: e,
1885
+ onSelect: (j, O) => {
1886
+ s("body", JSON.stringify(j.value, null, 2)), s("headers", [
1887
+ ...i.filter((J) => J.name !== "Content-Type"),
1888
+ {
1889
+ name: "Content-Type",
1890
+ value: O,
1891
+ active: !0
1892
+ }
1893
+ ]);
1894
+ }
1895
+ }
1896
+ ) : /* @__PURE__ */ t.jsx("div", {})
1897
+ ] })
1898
+ ] })
1899
+ ] }),
1900
+ /* @__PURE__ */ t.jsxs(_, { className: "CollapsibleContent flex flex-col gap-2", children: [
1901
+ l === "text" && /* @__PURE__ */ t.jsx(
1902
+ dn,
1903
+ {
1904
+ ...n("body"),
1905
+ className: w(
1906
+ "w-full px-4 py-2.5 h-64 font-mono md:text-xs border-none rounded-none focus-visible:ring-0 transition-colors"
1907
+ ),
1908
+ placeholder: "Body content"
1909
+ }
1910
+ ),
1911
+ l === "file" && /* @__PURE__ */ t.jsxs(
1912
+ "div",
1913
+ {
1914
+ role: "region",
1915
+ "aria-label": "File upload drop zone",
1916
+ className: w(
1917
+ "flex flex-col items-center justify-center gap-4 min-h-[300px]"
1918
+ ),
1919
+ onDragOver: y,
1920
+ onDragLeave: S,
1921
+ onDrop: R,
1922
+ children: [
1923
+ /* @__PURE__ */ t.jsx(
1924
+ "button",
1925
+ {
1926
+ type: "button",
1927
+ onClick: () => f.current?.click(),
1928
+ className: w(
1929
+ "flex items-center justify-center gap-2 rounded-full size-20 p-0 border border-dashed border-muted-foreground/50 hover:bg-accent/75 transition-colors",
1930
+ (c || x) && "border-solid",
1931
+ x && "bg-accent border-primary"
1932
+ ),
1933
+ children: /* @__PURE__ */ t.jsx(
1934
+ me,
1935
+ {
1936
+ className: w(
1937
+ "text-muted-foreground",
1938
+ x && "text-primary"
1939
+ ),
1940
+ size: 30
1941
+ }
1942
+ )
1943
+ }
1944
+ ),
1945
+ c ? /* @__PURE__ */ t.jsxs("div", { className: "flex items-center justify-between gap-2 px-2 py-1.5 rounded-md border", children: [
1946
+ /* @__PURE__ */ t.jsxs("span", { className: "text-sm truncate", title: c.name, children: [
1947
+ c.name,
1948
+ " ",
1949
+ /* @__PURE__ */ t.jsxs("span", { className: "text-muted-foreground", children: [
1950
+ "(",
1951
+ Ee(c.size),
1952
+ ")"
1953
+ ] })
1954
+ ] }),
1955
+ /* @__PURE__ */ t.jsx(
1956
+ he,
1957
+ {
1958
+ type: "button",
1959
+ variant: "ghost",
1960
+ size: "icon-xxs",
1961
+ onClick: () => v(null),
1962
+ children: /* @__PURE__ */ t.jsx(It, { size: 14 })
1963
+ }
1964
+ )
1965
+ ] }) : /* @__PURE__ */ t.jsx("span", { className: "text-lg font-semibold text-muted-foreground", children: "Select or drop a file" })
1966
+ ]
1967
+ }
1968
+ ),
1969
+ l === "multipart" && /* @__PURE__ */ t.jsx(ke, { children: N.fields.map((j, O) => /* @__PURE__ */ t.jsx(qr, { index: O, manager: N }, j.id)) })
1970
+ ] })
1971
+ ] });
1972
+ }, Lt = (e, n, s) => {
1973
+ const a = n.replace(/(:\w+|\{\w+})/g, (o) => {
1974
+ const i = o.replace(/[:{}]/g, "");
1975
+ return s.pathParams.find((l) => l.name === i)?.value ?? o;
1976
+ }), r = new URL(
1977
+ a.replace(/^\//, ""),
1978
+ e.endsWith("/") ? e : `${e}/`
1979
+ );
1980
+ return s.queryParams.filter((o) => o.active).forEach((o) => {
1981
+ r.searchParams.set(o.name, o.value);
1982
+ }), r;
1983
+ };
1984
+ function Ur(e) {
1985
+ return /^(application\/octet-stream|image\/|audio\/|video\/|font\/|application\/pdf|application\/zip|application\/x-protobuf|application\/x-binary)/i.test(
1986
+ e
1987
+ );
1988
+ }
1989
+ const Gr = (e, n) => {
1990
+ const s = e.find(
1991
+ ([a]) => a.toLowerCase() === "content-disposition"
1992
+ )?.[1];
1993
+ if (s) {
1994
+ const a = s.match(
1995
+ /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/
1996
+ );
1997
+ if (a?.[1])
1998
+ return a[1].replace(/['"]/g, "");
1999
+ }
2000
+ try {
2001
+ const r = new URL(n).pathname.split("/").pop() || "download";
2002
+ return r.includes(".") ? r : "download";
2003
+ } catch {
2004
+ return "download";
2005
+ }
2006
+ }, Hr = $e.Root, mn = Q.forwardRef(({ className: e, align: n = "center", sideOffset: s = 4, ...a }, r) => /* @__PURE__ */ t.jsx($e.Portal, { children: /* @__PURE__ */ t.jsx(
2007
+ $e.Content,
2008
+ {
2009
+ ref: r,
2010
+ align: n,
2011
+ sideOffset: s,
2012
+ className: w(
2013
+ "z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden 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",
2014
+ e
2015
+ ),
2016
+ ...a
2017
+ }
2018
+ ) }));
2019
+ mn.displayName = $e.Content.displayName;
2020
+ const Qr = ({
2021
+ value: e,
2022
+ options: n,
2023
+ onChange: s,
2024
+ className: a,
2025
+ placeholder: r = "Value",
2026
+ onEnterPress: o,
2027
+ onKeyDown: i,
2028
+ ref: c,
2029
+ onSelect: l
2030
+ }) => {
2031
+ const [m, d] = k(!1), [f, x] = k(!1), h = Is((u) => u.filtered.count), v = E(null);
2032
+ return /* @__PURE__ */ t.jsxs(Hr, { open: m, children: [
2033
+ /* @__PURE__ */ t.jsx(Rs, { children: /* @__PURE__ */ t.jsx(
2034
+ Fs,
2035
+ {
2036
+ autoComplete: "off",
2037
+ ref: (u) => {
2038
+ v.current = u, typeof c == "function" ? c(u) : c && (c.current = u);
2039
+ },
2040
+ value: e ? String(e) : void 0,
2041
+ placeholder: r,
2042
+ className: w("h-9 bg-transparent", a),
2043
+ onFocus: () => d(!0),
2044
+ onBlur: () => {
2045
+ f || d(!1);
2046
+ },
2047
+ onKeyDown: (u) => {
2048
+ i?.(u), !u.defaultPrevented && u.key === "Enter" && (d(!1), v.current?.blur(), o?.(u));
2049
+ },
2050
+ onValueChange: (u) => s(u)
2051
+ }
2052
+ ) }),
2053
+ /* @__PURE__ */ t.jsx(
2054
+ mn,
2055
+ {
2056
+ onMouseEnter: () => x(!0),
2057
+ onMouseLeave: () => x(!1),
2058
+ onOpenAutoFocus: (u) => u.preventDefault(),
2059
+ className: w("p-0 w-(--radix-popover-trigger-width)", {
2060
+ "border-0": h === 0
2061
+ }),
2062
+ align: "start",
2063
+ side: "bottom",
2064
+ onWheel: (u) => {
2065
+ u.stopPropagation();
2066
+ },
2067
+ onTouchMove: (u) => {
2068
+ u.stopPropagation();
2069
+ },
2070
+ children: /* @__PURE__ */ t.jsx(zs, { className: "max-h-[140px]", children: n.map((u) => /* @__PURE__ */ t.jsx(
2071
+ Vs,
2072
+ {
2073
+ value: u,
2074
+ onSelect: (y) => {
2075
+ l?.(y), s(y), d(!1);
2076
+ },
2077
+ className: "cursor-pointer",
2078
+ children: u
2079
+ },
2080
+ u
2081
+ )) })
2082
+ }
2083
+ )
2084
+ ] });
2085
+ }, Pe = ({ shouldFilter: e, ...n }) => /* @__PURE__ */ t.jsx(Ds, { className: "bg-transparent", shouldFilter: e, children: /* @__PURE__ */ t.jsx(Qr, { ...n }) }), Jr = Object.freeze([
2086
+ "Accept",
2087
+ "Accept-Encoding",
2088
+ "Accept-Language",
2089
+ "Authorization",
2090
+ "Cache-Control",
2091
+ "Connection",
2092
+ "Content-Disposition",
2093
+ "Content-Encoding",
2094
+ "Content-Language",
2095
+ "Content-Length",
2096
+ "Content-Range",
2097
+ "Content-Security-Policy",
2098
+ "Content-Type",
2099
+ "Cookie",
2100
+ "Date",
2101
+ "ETag",
2102
+ "Expires",
2103
+ "Host",
2104
+ "If-Modified-Since",
2105
+ "Location",
2106
+ "Origin",
2107
+ "Pragma",
2108
+ "Referer",
2109
+ "Set-Cookie",
2110
+ "User-Agent",
2111
+ "X-Requested-With"
2112
+ ]), Wr = ({
2113
+ control: e,
2114
+ schemaHeaders: n,
2115
+ lockedHeaders: s
2116
+ }) => {
2117
+ const { watch: a, formState: r } = oe(), o = a("headers"), i = ot({
2118
+ control: e,
2119
+ name: "headers",
2120
+ defaultValue: { name: "", value: "", active: !1 }
2121
+ }), c = n.filter((d) => !o.some((f) => f.name === d.name)).map(({ name: d }) => d), l = i.fields.flatMap((d, f) => !s?.map((h) => h.toLowerCase()).includes(d.name.toLowerCase()) ? [] : [f]), m = s?.map((d) => ({
2122
+ name: d,
2123
+ id: `locked-${d}`,
2124
+ value: "••••••••••",
2125
+ active: !0,
2126
+ locked: !0
2127
+ })) ?? [];
2128
+ return /* @__PURE__ */ t.jsxs(B, { defaultOpen: !0, children: [
2129
+ /* @__PURE__ */ t.jsxs(Y, { children: [
2130
+ /* @__PURE__ */ t.jsx(Fn, { size: 14 }),
2131
+ /* @__PURE__ */ t.jsx(H, { children: "Headers" })
2132
+ ] }),
2133
+ /* @__PURE__ */ t.jsx(_, { className: "CollapsibleContent", children: /* @__PURE__ */ t.jsx("div", { className: "flex flex-col gap-2", children: /* @__PURE__ */ t.jsx("div", { className: "overflow-hidden", children: /* @__PURE__ */ t.jsxs(ke, { children: [
2134
+ m.map((d) => /* @__PURE__ */ t.jsxs(Nt, { children: [
2135
+ /* @__PURE__ */ t.jsx(St, { asChild: !0, children: /* @__PURE__ */ t.jsxs(
2136
+ xe,
2137
+ {
2138
+ className: "opacity-50 cursor-not-allowed font-mono text-xs min-h-10",
2139
+ children: [
2140
+ /* @__PURE__ */ t.jsx(zn, { size: 16 }),
2141
+ /* @__PURE__ */ t.jsx(I, { value: d.name, disabled: !0 }),
2142
+ /* @__PURE__ */ t.jsx("div", { children: d.value })
2143
+ ]
2144
+ },
2145
+ d.id
2146
+ ) }),
2147
+ /* @__PURE__ */ t.jsx(wt, { alignOffset: 10, side: "bottom", align: "start", children: /* @__PURE__ */ t.jsx("p", { children: "This header is set by the selected authentication." }) })
2148
+ ] }, d.id)),
2149
+ i.fields.map((d, f) => {
2150
+ const x = n.find(
2151
+ (S) => S.name === o.at(f)?.name
2152
+ ), h = x?.enum && x.enum.length > 0, v = l.includes(f), u = i.getNameInputProps(f), y = i.getValueInputProps(f);
2153
+ return /* @__PURE__ */ t.jsxs(
2154
+ xe,
2155
+ {
2156
+ className: w(
2157
+ v && "text-amber-600",
2158
+ v && !r.dirtyFields.headers?.[f]?.value && "hidden"
2159
+ ),
2160
+ children: [
2161
+ /* @__PURE__ */ t.jsx(
2162
+ ve,
2163
+ {
2164
+ className: w(v && "hidden"),
2165
+ ...i.getCheckboxProps(f)
2166
+ }
2167
+ ),
2168
+ /* @__PURE__ */ t.jsxs(Nt, { children: [
2169
+ /* @__PURE__ */ t.jsx(St, { asChild: !0, children: /* @__PURE__ */ t.jsx(
2170
+ Vn,
2171
+ {
2172
+ className: w(
2173
+ "text-amber-600",
2174
+ !v && "hidden"
2175
+ ),
2176
+ size: 16
2177
+ }
2178
+ ) }),
2179
+ /* @__PURE__ */ t.jsx(
2180
+ wt,
2181
+ {
2182
+ alignOffset: 10,
2183
+ side: "bottom",
2184
+ align: "start",
2185
+ children: /* @__PURE__ */ t.jsx("p", { children: "This header will be overwritten by the selected authentication." })
2186
+ }
2187
+ )
2188
+ ] }),
2189
+ /* @__PURE__ */ t.jsx(I, { asChild: !0, children: /* @__PURE__ */ t.jsx(
2190
+ Pe,
2191
+ {
2192
+ ...u,
2193
+ value: String(i.getValue(f, "name")),
2194
+ placeholder: "Name",
2195
+ options: [...c, ...Jr],
2196
+ onChange: (S) => i.setValue(f, "name", S),
2197
+ onSelect: (S) => i.setValue(f, "name", S, { focus: "next" })
2198
+ }
2199
+ ) }),
2200
+ /* @__PURE__ */ t.jsxs("div", { className: "flex items-center gap-2", children: [
2201
+ h ? /* @__PURE__ */ t.jsx(I, { asChild: !0, children: /* @__PURE__ */ t.jsx(
2202
+ Pe,
2203
+ {
2204
+ ...y,
2205
+ value: String(i.getValue(f, "value")),
2206
+ shouldFilter: !1,
2207
+ options: x.enum ?? [],
2208
+ onChange: (S) => i.setValue(f, "value", S),
2209
+ onSelect: (S) => i.setValue(f, "value", S, { focus: "next" })
2210
+ }
2211
+ ) }) : /* @__PURE__ */ t.jsx(
2212
+ I,
2213
+ {
2214
+ placeholder: "Value",
2215
+ autoComplete: "off",
2216
+ ...y
2217
+ }
2218
+ ),
2219
+ /* @__PURE__ */ t.jsx(
2220
+ at,
2221
+ {
2222
+ ...i.getRemoveButtonProps(f)
2223
+ }
2224
+ )
2225
+ ] })
2226
+ ]
2227
+ },
2228
+ d.id
2229
+ );
2230
+ })
2231
+ ] }) }) }) })
2232
+ ] });
2233
+ }, Kr = _s(
2234
+ "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
2235
+ ), Re = Q.forwardRef(({ className: e, ...n }, s) => /* @__PURE__ */ t.jsx(
2236
+ Xt.Root,
2237
+ {
2238
+ ref: s,
2239
+ className: w(Kr(), e),
2240
+ ...n
2241
+ }
2242
+ ));
2243
+ Re.displayName = Xt.Root.displayName;
2244
+ const pn = Q.forwardRef(({ className: e, ...n }, s) => /* @__PURE__ */ t.jsx(
2245
+ fe.Root,
2246
+ {
2247
+ className: w("grid gap-2", e),
2248
+ ...n,
2249
+ ref: s
2250
+ }
2251
+ ));
2252
+ pn.displayName = fe.Root.displayName;
2253
+ const hn = Q.forwardRef(({ className: e, ...n }, s) => /* @__PURE__ */ t.jsx(
2254
+ fe.Item,
2255
+ {
2256
+ ref: s,
2257
+ className: w(
2258
+ "aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
2259
+ e
2260
+ ),
2261
+ ...n,
2262
+ children: /* @__PURE__ */ t.jsx(fe.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ t.jsx(Bn, { className: "h-2.5 w-2.5 fill-current text-current" }) })
2263
+ }
2264
+ ));
2265
+ hn.displayName = fe.Item.displayName;
2266
+ const fn = ({
2267
+ identities: e,
2268
+ setValue: n,
2269
+ value: s
2270
+ }) => /* @__PURE__ */ t.jsx("div", { className: "w-full overflow-hidden", children: /* @__PURE__ */ t.jsx(
2271
+ pn,
2272
+ {
2273
+ onValueChange: (a) => n(a),
2274
+ value: s,
2275
+ defaultValue: pe,
2276
+ className: "gap-0",
2277
+ disabled: e?.length === 0,
2278
+ children: [{ id: pe, label: "None" }, ...e ?? []].map(
2279
+ (a) => /* @__PURE__ */ t.jsxs(
2280
+ Re,
2281
+ {
2282
+ className: "h-10 items-center border-b font-normal flex gap-4 p-4 cursor-pointer hover:bg-accent/75",
2283
+ children: [
2284
+ /* @__PURE__ */ t.jsx(hn, { value: a.id, id: a.id }),
2285
+ /* @__PURE__ */ t.jsx("span", { children: a.label })
2286
+ ]
2287
+ },
2288
+ a.id
2289
+ )
2290
+ )
2291
+ }
2292
+ ) }), Xr = ({
2293
+ onSubmit: e,
2294
+ identities: n,
2295
+ open: s,
2296
+ onOpenChange: a
2297
+ }) => {
2298
+ const [r, o] = k(void 0), [i, c] = k(!1);
2299
+ return /* @__PURE__ */ t.jsx(et, { open: s, onOpenChange: a, children: /* @__PURE__ */ t.jsxs(tt, { children: [
2300
+ /* @__PURE__ */ t.jsx(nt, { children: "Select an auth identity" }),
2301
+ /* @__PURE__ */ t.jsx(_t, { children: "Please select an identity for this request." }),
2302
+ /* @__PURE__ */ t.jsx(Bs, { className: "max-h-80 overflow-auto", children: /* @__PURE__ */ t.jsx(
2303
+ fn,
2304
+ {
2305
+ identities: n,
2306
+ setValue: o,
2307
+ value: r
2308
+ }
2309
+ ) }),
2310
+ /* @__PURE__ */ t.jsxs(qt, { className: "flex flex-col gap-2", children: [
2311
+ /* @__PURE__ */ t.jsxs("div", { className: "flex items-center gap-2", children: [
2312
+ /* @__PURE__ */ t.jsx(
2313
+ ve,
2314
+ {
2315
+ id: "remember",
2316
+ checked: i,
2317
+ onCheckedChange: (l) => c(
2318
+ l === "indeterminate" ? !1 : !!l
2319
+ )
2320
+ }
2321
+ ),
2322
+ /* @__PURE__ */ t.jsx(Re, { htmlFor: "remember", children: "Remember my choice" })
2323
+ ] }),
2324
+ /* @__PURE__ */ t.jsx(
2325
+ q,
2326
+ {
2327
+ onClick: () => e({ identity: r, rememberedIdentity: i }),
2328
+ children: "Send"
2329
+ }
2330
+ )
2331
+ ] })
2332
+ ] }) });
2333
+ }, Ue = (e) => Math.abs(
2334
+ Number.isNaN(Number(e)) ? e.toLowerCase().charCodeAt(0) - 96 : Number.isNaN(Number(e)) ? 0 : Number(e)
2335
+ ), Ge = (e) => e.length > 1 ? Number(e.split("").reduce((n, s) => `${Ue(n) + Ue(s)}`)) : Ue(e), Et = (e, n = {}) => {
2336
+ const s = (3 * Ge(e) + 2 * Ge(e) + Ge(e)) % 360, { saturation: a = 75, lightness: r = 60 } = n;
2337
+ return `${s}deg ${a}% ${r}%`;
2338
+ }, He = "data-linked-param", Zr = (e) => {
2339
+ const { resolvedTheme: n } = xs();
2340
+ return {
2341
+ text: Et(
2342
+ e,
2343
+ n === "light" ? { saturation: 95, lightness: 38 } : {}
2344
+ ),
2345
+ background: Et(
2346
+ e,
2347
+ n === "light" ? { saturation: 85, lightness: 40 } : {}
2348
+ )
2349
+ };
2350
+ }, gn = ({
2351
+ name: e,
2352
+ className: n,
2353
+ slug: s,
2354
+ title: a,
2355
+ children: r,
2356
+ onClick: o
2357
+ }) => {
2358
+ const i = E(null), c = s?.replace(/[{}]/g, ""), l = e.replace(/[{}]/g, ""), { text: m, background: d } = Zr(l), f = `hsl(${m} / 100%)`, x = `hsl(${d} / 10%)`, h = `hsl(${d} / 50%)`;
2359
+ return G(() => {
2360
+ if (!c || !i.current) return;
2361
+ const v = () => {
2362
+ document.querySelectorAll(`[${He}="${c}"]`).forEach((S) => {
2363
+ S instanceof HTMLElement && (S.dataset.active = "true");
2364
+ });
2365
+ }, u = () => {
2366
+ document.querySelectorAll(`[${He}="${c}"]`).forEach((S) => {
2367
+ S instanceof HTMLElement && (S.dataset.active = "false");
2368
+ });
2369
+ }, y = i.current;
2370
+ return y.addEventListener("mouseenter", v), y.addEventListener("mouseleave", u), () => {
2371
+ y.removeEventListener("mouseenter", v), y.removeEventListener("mouseleave", u);
2372
+ };
2373
+ }, [c]), // biome-ignore lint/a11y/noStaticElementInteractions: Just passing props through
2374
+ // biome-ignore lint/a11y/useKeyWithClickEvents: Just passing props through
2375
+ /* @__PURE__ */ t.jsx(
2376
+ "span",
2377
+ {
2378
+ [He]: c,
2379
+ className: w(
2380
+ // This may not contain (inline-)flex or (inline-)block otherwise it breaks the browser's full text search
2381
+ "relative transition-all duration-100 rounded-lg",
2382
+ "border border-(--border-color) p-0.5 text-(--param-color) bg-(--background-color)",
2383
+ "data-[active=true]:border-(--param-color) data-[active=true]:shadow-sm data-[active=true]:bottom-px",
2384
+ n
2385
+ ),
2386
+ title: a,
2387
+ suppressHydrationWarning: !0,
2388
+ ref: i,
2389
+ onClick: o,
2390
+ style: {
2391
+ "--param-color": f,
2392
+ "--border-color": h,
2393
+ "--background-color": x
2394
+ },
2395
+ children: r ?? e
2396
+ }
2397
+ );
2398
+ }, Yr = ({
2399
+ control: e,
2400
+ url: n
2401
+ }) => {
2402
+ const { fields: s } = Qt({
2403
+ control: e,
2404
+ name: "pathParams"
2405
+ }), a = [...s].sort(
2406
+ (r, o) => n.indexOf(`{${r.name}}`) - n.indexOf(`{${o.name}}`)
2407
+ );
2408
+ return /* @__PURE__ */ t.jsx(ke, { children: a.map((r, o) => /* @__PURE__ */ t.jsxs(xe, { children: [
2409
+ /* @__PURE__ */ t.jsx(
2410
+ Ct,
2411
+ {
2412
+ control: e,
2413
+ name: `pathParams.${o}.name`,
2414
+ render: () => /* @__PURE__ */ t.jsx("div", { className: "flex items-center", children: /* @__PURE__ */ t.jsx(
2415
+ gn,
2416
+ {
2417
+ slug: r.name,
2418
+ name: r.name,
2419
+ className: "font-mono text-xs px-2"
2420
+ }
2421
+ ) })
2422
+ }
2423
+ ),
2424
+ /* @__PURE__ */ t.jsx("div", { className: "flex justify-between items-center col-span-2", children: /* @__PURE__ */ t.jsx(
2425
+ Ct,
2426
+ {
2427
+ control: e,
2428
+ name: `pathParams.${o}.value`,
2429
+ render: ({ field: i }) => /* @__PURE__ */ t.jsx(I, { ...i, required: !0, placeholder: "Value" })
2430
+ }
2431
+ ) })
2432
+ ] }, r.id)) });
2433
+ }, ea = ({
2434
+ control: e,
2435
+ schemaQueryParams: n
2436
+ }) => {
2437
+ const { watch: s } = oe(), a = s("queryParams"), r = ot({
2438
+ control: e,
2439
+ name: "queryParams",
2440
+ defaultValue: { name: "", value: "", active: !1 }
2441
+ }), o = n.map(
2442
+ (c) => !!c.isRequired
2443
+ ), i = n.length > 0;
2444
+ return /* @__PURE__ */ t.jsxs(B, { defaultOpen: !0, children: [
2445
+ /* @__PURE__ */ t.jsxs(Y, { children: [
2446
+ /* @__PURE__ */ t.jsx(_n, { size: 16 }),
2447
+ /* @__PURE__ */ t.jsx(H, { children: "Query Parameters" })
2448
+ ] }),
2449
+ /* @__PURE__ */ t.jsx(_, { className: "CollapsibleContent", children: /* @__PURE__ */ t.jsx(ke, { children: r.fields.map((c, l) => {
2450
+ const m = n.find(
2451
+ (h) => h.name === a.at(l)?.name
2452
+ ), d = m?.enum && m.enum.length > 0, f = r.getNameInputProps(l), x = r.getValueInputProps(l);
2453
+ return /* @__PURE__ */ t.jsxs(xe, { children: [
2454
+ /* @__PURE__ */ t.jsx(ve, { ...r.getCheckboxProps(l) }),
2455
+ o[l] ? /* @__PURE__ */ t.jsx(I, { asChild: !0, children: /* @__PURE__ */ t.jsxs(
2456
+ "label",
2457
+ {
2458
+ className: "flex items-center cursor-pointer gap-1",
2459
+ htmlFor: `queryParams.${l}.active`,
2460
+ title: o[l] ? "Required field" : void 0,
2461
+ children: [
2462
+ a[l]?.name,
2463
+ o[l] && /* @__PURE__ */ t.jsx("sup", { children: " *" })
2464
+ ]
2465
+ }
2466
+ ) }) : i ? /* @__PURE__ */ t.jsx(I, { asChild: !0, children: /* @__PURE__ */ t.jsx(
2467
+ Pe,
2468
+ {
2469
+ ...f,
2470
+ value: String(r.getValue(l, "name")),
2471
+ placeholder: "Name",
2472
+ options: n.map((h) => h.name),
2473
+ onChange: (h) => r.setValue(l, "name", h),
2474
+ onSelect: (h) => r.setValue(l, "name", h, { focus: "next" })
2475
+ }
2476
+ ) }) : /* @__PURE__ */ t.jsx(I, { ...f, placeholder: "Name" }),
2477
+ /* @__PURE__ */ t.jsxs("div", { className: "flex justify-between items-center", children: [
2478
+ d ? /* @__PURE__ */ t.jsx(I, { asChild: !0, children: /* @__PURE__ */ t.jsx(
2479
+ Pe,
2480
+ {
2481
+ ...x,
2482
+ value: String(r.getValue(l, "value")),
2483
+ shouldFilter: !1,
2484
+ options: m.enum ?? [],
2485
+ onChange: (h) => r.setValue(l, "value", h),
2486
+ onSelect: (h) => r.setValue(l, "value", h, { focus: "next" })
2487
+ }
2488
+ ) }) : /* @__PURE__ */ t.jsx(
2489
+ I,
2490
+ {
2491
+ placeholder: "Value",
2492
+ "aria-label": "Query parameter value",
2493
+ ...x
2494
+ }
2495
+ ),
2496
+ /* @__PURE__ */ t.jsx(
2497
+ at,
2498
+ {
2499
+ ...r.getRemoveButtonProps(l)
2500
+ }
2501
+ )
2502
+ ] })
2503
+ ] }, c.id);
2504
+ }) }) })
2505
+ ] });
2506
+ }, ta = ({
2507
+ open: e,
2508
+ setOpen: n,
2509
+ onSignUp: s,
2510
+ onLogin: a,
2511
+ onSkip: r
2512
+ }) => {
2513
+ const [o, i] = k(!1), c = () => {
2514
+ r?.(o), n(!1);
2515
+ };
2516
+ return /* @__PURE__ */ t.jsx(et, { open: e, onOpenChange: n, children: /* @__PURE__ */ t.jsxs(tt, { children: [
2517
+ /* @__PURE__ */ t.jsx(nt, { children: "Welcome to the Playground!" }),
2518
+ /* @__PURE__ */ t.jsx(_t, { children: "The Playground is a tool for developers to test and explore our APIs. To use the Playground, you need to login." }),
2519
+ /* @__PURE__ */ t.jsxs(Re, { className: "flex items-center gap-2 font-normal", children: [
2520
+ /* @__PURE__ */ t.jsx(
2521
+ ve,
2522
+ {
2523
+ checked: o,
2524
+ onCheckedChange: (l) => i(l === !0)
2525
+ }
2526
+ ),
2527
+ "Don't show this again"
2528
+ ] }),
2529
+ /* @__PURE__ */ t.jsxs(qt, { className: "flex gap-2 sm:justify-between", children: [
2530
+ /* @__PURE__ */ t.jsx(q, { type: "button", variant: "outline", onClick: c, children: "Skip" }),
2531
+ /* @__PURE__ */ t.jsxs("div", { className: "flex gap-2", children: [
2532
+ s && /* @__PURE__ */ t.jsx(q, { type: "button", variant: "outline", onClick: s, children: "Sign Up" }),
2533
+ a && /* @__PURE__ */ t.jsx(q, { type: "button", variant: "default", onClick: a, children: "Login" })
2534
+ ] })
2535
+ ] })
2536
+ ] }) });
2537
+ }, na = Ze()(
2538
+ Ye(
2539
+ (e, n) => ({
2540
+ rememberedIdentity: null,
2541
+ setRememberedIdentity: (s) => e({ rememberedIdentity: s }),
2542
+ getRememberedIdentity: (s) => s.find(
2543
+ (a) => a === n().rememberedIdentity
2544
+ )
2545
+ }),
2546
+ {
2547
+ name: "identity-storage",
2548
+ storage: zt(() => sessionStorage)
2549
+ }
2550
+ )
2551
+ ), sa = ({
2552
+ path: e,
2553
+ renderParam: n
2554
+ }) => {
2555
+ let s = 0;
2556
+ return e.split("/").map((a, r, o) => {
2557
+ const i = Array.from(a.matchAll(/{([^}]+)}/g)), c = [];
2558
+ let l = 0;
2559
+ return i.forEach((m) => {
2560
+ const [d, f] = m;
2561
+ if (!f) return;
2562
+ const x = m.index;
2563
+ x > l && c.push(
2564
+ /* @__PURE__ */ t.jsx(le, { children: a.slice(l, x) }, `text-${l}-${x}`)
2565
+ ), c.push(
2566
+ /* @__PURE__ */ t.jsx(le, { children: n({ name: f, originalValue: d, index: s++ }) }, `param-${f}`)
2567
+ ), l = x + d.length;
2568
+ }), l < a.length && c.push(
2569
+ /* @__PURE__ */ t.jsx(le, { children: a.slice(l) }, `text-${l}-${a.length}`)
2570
+ ), // biome-ignore lint/suspicious/noArrayIndexKey: index should be stable
2571
+ /* @__PURE__ */ t.jsxs(le, { children: [
2572
+ c,
2573
+ r < o.length - 1 && "/",
2574
+ /* @__PURE__ */ t.jsx("wbr", {})
2575
+ ] }, `${a}-${r}`);
2576
+ });
2577
+ }, ra = ({ url: e }) => {
2578
+ const { watch: n, setFocus: s } = oe(), [a] = n(["pathParams"]);
2579
+ return /* @__PURE__ */ t.jsx(
2580
+ sa,
2581
+ {
2582
+ path: e,
2583
+ renderParam: ({ name: r, originalValue: o, index: i }) => {
2584
+ const c = a.find(
2585
+ (l) => l.name === r
2586
+ )?.value;
2587
+ return /* @__PURE__ */ t.jsx(
2588
+ gn,
2589
+ {
2590
+ name: r,
2591
+ backgroundOpacity: "0",
2592
+ slug: r,
2593
+ onClick: () => s(`pathParams.${i}.value`),
2594
+ children: c || o
2595
+ }
2596
+ );
2597
+ }
2598
+ }
2599
+ );
2600
+ }, aa = () => {
2601
+ const { watch: e } = oe(), s = e("queryParams").filter((a) => a.active && a.name).map((a, r, o) => /* @__PURE__ */ t.jsxs(le, { children: [
2602
+ a.name,
2603
+ "=",
2604
+ encodeURIComponent(a.value).replaceAll("%20", "+"),
2605
+ r < o.length - 1 && "&",
2606
+ /* @__PURE__ */ t.jsx("wbr", {})
2607
+ ] }, `${r}-${a.name}`));
2608
+ return /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
2609
+ s.length > 0 ? "?" : "",
2610
+ s
2611
+ ] });
2612
+ }, oa = ({ status: e }) => {
2613
+ if (!e) return /* @__PURE__ */ t.jsx("div", { className: "w-2 h-2 rounded-full bg-gray-500" });
2614
+ switch (Number(e.toString().slice(0, 1))) {
2615
+ case 2:
2616
+ return /* @__PURE__ */ t.jsx("div", { className: "w-2 h-2 rounded-full bg-green-500" });
2617
+ case 4:
2618
+ return /* @__PURE__ */ t.jsx("div", { className: "w-2 h-2 rounded-full bg-yellow-400" });
2619
+ case 5:
2620
+ return /* @__PURE__ */ t.jsx("div", { className: "w-2 h-2 rounded-full bg-red-500" });
2621
+ default:
2622
+ return /* @__PURE__ */ t.jsx("div", { className: "w-2 h-2 rounded-full bg-gray-500" });
2623
+ }
2624
+ }, ia = () => {
2625
+ const e = E(null), n = E(null), s = E(Date.now()), a = E(null), r = D(() => {
2626
+ if (n.current) {
2627
+ const o = Date.now() - s.current;
2628
+ n.current.nodeValue = o.toFixed();
2629
+ }
2630
+ a.current = requestAnimationFrame(r);
2631
+ }, []);
2632
+ return ps(() => {
2633
+ const o = e.current;
2634
+ if (!o) return;
2635
+ const i = document.createTextNode("0");
2636
+ return o.appendChild(i), n.current = i, s.current = Date.now(), a.current = requestAnimationFrame(r), () => {
2637
+ a.current && cancelAnimationFrame(a.current), n.current && o.contains(i) && o.removeChild(i);
2638
+ };
2639
+ }, [r]), /* @__PURE__ */ t.jsx("span", { className: "inline-block text-end w-[3ch]", ref: e });
2640
+ }, la = ({
2641
+ status: e,
2642
+ time: n,
2643
+ size: s,
2644
+ isFinished: a,
2645
+ progress: r
2646
+ }) => {
2647
+ const o = {
2648
+ 200: "OK",
2649
+ 201: "Created",
2650
+ 202: "Accepted",
2651
+ 204: "No Content",
2652
+ 400: "Bad Request",
2653
+ 401: "Unauthorized",
2654
+ 403: "Forbidden",
2655
+ 404: "Not Found",
2656
+ 405: "Method Not Allowed",
2657
+ 500: "Internal Server Error"
2658
+ };
2659
+ return /* @__PURE__ */ t.jsxs("div", { className: "relative shrink-0 flex h-10 text-xs gap-4 px-4 items-center justify-between font-mono border-b", children: [
2660
+ /* @__PURE__ */ t.jsxs("div", { className: "flex items-center gap-2", children: [
2661
+ /* @__PURE__ */ t.jsx(oa, { status: e }),
2662
+ " ",
2663
+ e ?? "Sending Request...",
2664
+ e ? ` ${o[e]}` : ""
2665
+ ] }),
2666
+ /* @__PURE__ */ t.jsxs("div", { className: "flex gap-2", children: [
2667
+ /* @__PURE__ */ t.jsxs("div", { children: [
2668
+ /* @__PURE__ */ t.jsx("span", { className: "text-muted-foreground", children: "Size" }),
2669
+ " ",
2670
+ /* @__PURE__ */ t.jsx("span", { className: "inline-block text-end min-w-[5ch]", children: s ? Ee(s) : "- B" })
2671
+ ] }),
2672
+ /* @__PURE__ */ t.jsxs("div", { children: [
2673
+ /* @__PURE__ */ t.jsx("span", { className: "text-muted-foreground", children: "Time" }),
2674
+ " ",
2675
+ n !== void 0 ? `${n.toFixed(0)}` : /* @__PURE__ */ t.jsx(ia, {}),
2676
+ "ms"
2677
+ ] })
2678
+ ] }),
2679
+ /* @__PURE__ */ t.jsx(
2680
+ "div",
2681
+ {
2682
+ className: "h-full bg-neutral-500/10 absolute left-0 bottom-0 z-10 transition-all duration-200 ease-in-out",
2683
+ style: {
2684
+ opacity: a ? 0 : 1,
2685
+ width: a ? 0 : `${r * 100}%`
2686
+ }
2687
+ }
2688
+ )
2689
+ ] });
2690
+ };
2691
+ function it(e) {
2692
+ if (e === null) return "null";
2693
+ if (Array.isArray(e)) {
2694
+ if (e.length === 0) return "any[]";
2695
+ const n = e[0];
2696
+ return n === void 0 ? "any[]" : `${it(n)}[]`;
2697
+ }
2698
+ return typeof e == "object" ? ca(e) : typeof e;
2699
+ }
2700
+ function ca(e, n = "") {
2701
+ const s = ["{"];
2702
+ for (const [a, r] of Object.entries(e)) {
2703
+ const o = it(r);
2704
+ s.push(` ${a}: ${o};`);
2705
+ }
2706
+ return s.push("}"), s.join(`
2707
+ `);
2708
+ }
2709
+ function da(e) {
2710
+ return { lines: [`type GeneratedType = ${it(e)};`] };
2711
+ }
2712
+ const ua = (e) => Object.entries({
2713
+ "application/json": "json",
2714
+ "text/json": "json",
2715
+ "text/html": "html",
2716
+ "text/css": "css",
2717
+ "text/javascript": "javascript",
2718
+ "application/xml": "xml",
2719
+ "application/xhtml+xml": "xhtml"
2720
+ }).find(
2721
+ ([s]) => e.includes(s)
2722
+ )?.[1], ma = (e) => {
2723
+ const n = e.find(([s]) => s.toLowerCase() === "content-type")?.[1] || "";
2724
+ return ua(n);
2725
+ }, pa = (e) => {
2726
+ try {
2727
+ return JSON.stringify(JSON.parse(e), null, 2);
2728
+ } catch {
2729
+ return null;
2730
+ }
2731
+ }, ha = (e) => {
2732
+ const n = [
2733
+ "Content-Type",
2734
+ "Content-Length",
2735
+ "Authorization",
2736
+ "X-RateLimit-Remaining",
2737
+ "X-RateLimit-Limit",
2738
+ "Cache-Control",
2739
+ "ETag"
2740
+ ].map((s) => s.toLowerCase());
2741
+ return [...e].sort(([s], [a]) => {
2742
+ const r = n.indexOf(s.toLowerCase()), o = n.indexOf(a.toLowerCase());
2743
+ return r === o ? 0 : r === -1 ? 1 : o === -1 ? -1 : r - o;
2744
+ });
2745
+ }, z = 3, Se = ye(
2746
+ "div",
2747
+ "grid-cols-subgrid grid border-b col-span-full px-4 py-1.5 font-mono text-xs"
2748
+ ), ue = ye("div", "py-1 break-words"), we = ({ value: e, header: n }) => {
2749
+ const a = ["authorization", "key", "secret", "token"].includes(n.toLowerCase()), [r, o] = k(!a);
2750
+ return /* @__PURE__ */ t.jsx(
2751
+ ue,
2752
+ {
2753
+ className: w(
2754
+ "max-h-28 overflow-auto",
2755
+ a && "cursor-pointer flex group"
2756
+ ),
2757
+ onClick: () => {
2758
+ a && o((i) => !i);
2759
+ },
2760
+ children: a ? /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
2761
+ /* @__PURE__ */ t.jsx(Cs, { secret: e, previewChars: 0, revealed: r }),
2762
+ r ? /* @__PURE__ */ t.jsx(Hn, { size: 14, className: w("hidden group-hover:block") }) : /* @__PURE__ */ t.jsx(Qn, { size: 14, className: w("hidden group-hover:block") })
2763
+ ] }) : e
2764
+ }
2765
+ );
2766
+ }, fa = ({
2767
+ body: e = "",
2768
+ headers: n,
2769
+ request: s,
2770
+ size: a,
2771
+ isBinary: r = !1,
2772
+ fileName: o,
2773
+ blob: i
2774
+ }) => {
2775
+ const c = ma(n), l = pa(e), m = l || e, [d, f] = k(
2776
+ l ? "formatted" : "raw"
2777
+ ), x = os({
2778
+ queryKey: ["types", m],
2779
+ queryFn: async () => da(JSON.parse(m)),
2780
+ enabled: d === "types" && !r
2781
+ }), h = () => {
2782
+ if (i && o) {
2783
+ const u = URL.createObjectURL(i), y = document.createElement("a");
2784
+ y.href = u, y.download = o, document.body.appendChild(y), y.click(), document.body.removeChild(y), URL.revokeObjectURL(u);
2785
+ }
2786
+ }, v = ha([...n]);
2787
+ return /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
2788
+ /* @__PURE__ */ t.jsxs(B, { defaultOpen: !0, children: [
2789
+ /* @__PURE__ */ t.jsxs(Y, { children: [
2790
+ /* @__PURE__ */ t.jsx(qn, { size: 14 }),
2791
+ /* @__PURE__ */ t.jsx(H, { children: "Request Headers" })
2792
+ ] }),
2793
+ /* @__PURE__ */ t.jsx(_, { children: /* @__PURE__ */ t.jsxs("div", { className: "grid grid-cols-[2fr_3fr] gap-x-6 text-sm", children: [
2794
+ s.headers.slice(0, z).map(([u, y]) => /* @__PURE__ */ t.jsxs(Se, { children: [
2795
+ /* @__PURE__ */ t.jsx(ue, { children: u }),
2796
+ /* @__PURE__ */ t.jsx(we, { value: y, header: u })
2797
+ ] }, u)),
2798
+ s.headers.length > z && /* @__PURE__ */ t.jsxs(B, { className: "col-span-full grid-cols-subgrid grid group", children: [
2799
+ /* @__PURE__ */ t.jsxs(de, { className: "data-[state=open]:hidden justify-center col-span-2 text-xs text-muted-foreground hover:text-primary border-b h-8 flex items-center gap-2", children: [
2800
+ "Show ",
2801
+ s.headers.length - z,
2802
+ " more headers",
2803
+ /* @__PURE__ */ t.jsx(Je, { size: 12, className: "text-muted-foreground" })
2804
+ ] }),
2805
+ /* @__PURE__ */ t.jsxs(_, { className: "col-span-full grid grid-cols-subgrid", children: [
2806
+ s.headers.slice(z).map(([u, y]) => /* @__PURE__ */ t.jsxs(Se, { children: [
2807
+ /* @__PURE__ */ t.jsx(ue, { children: u }),
2808
+ /* @__PURE__ */ t.jsx(we, { value: y, header: u })
2809
+ ] }, u)),
2810
+ /* @__PURE__ */ t.jsxs(de, { className: "justify-center col-span-2 text-xs text-muted-foreground hover:text-primary border-b h-8 flex items-center gap-2", children: [
2811
+ "Hide ",
2812
+ s.headers.length - z,
2813
+ " headers",
2814
+ /* @__PURE__ */ t.jsx(
2815
+ bt,
2816
+ {
2817
+ size: 12,
2818
+ className: "text-muted-foreground"
2819
+ }
2820
+ )
2821
+ ] })
2822
+ ] })
2823
+ ] })
2824
+ ] }) })
2825
+ ] }),
2826
+ /* @__PURE__ */ t.jsxs(B, { defaultOpen: !0, children: [
2827
+ /* @__PURE__ */ t.jsxs(Y, { children: [
2828
+ /* @__PURE__ */ t.jsx(Mn, { size: 14 }),
2829
+ /* @__PURE__ */ t.jsx(H, { children: "Response Headers" })
2830
+ ] }),
2831
+ /* @__PURE__ */ t.jsx(_, { children: /* @__PURE__ */ t.jsxs("div", { className: "grid grid-cols-[2fr_3fr] gap-x-6 text-sm", children: [
2832
+ v.slice(0, z).map(([u, y]) => /* @__PURE__ */ t.jsxs(Se, { children: [
2833
+ /* @__PURE__ */ t.jsx(ue, { children: u }),
2834
+ /* @__PURE__ */ t.jsx(we, { value: y, header: u })
2835
+ ] }, u)),
2836
+ v.length > z && /* @__PURE__ */ t.jsxs(B, { className: "col-span-full grid-cols-subgrid grid group", children: [
2837
+ /* @__PURE__ */ t.jsxs(de, { className: "data-[state=open]:hidden justify-center col-span-2 text-xs text-muted-foreground hover:text-primary border-b h-8 flex items-center gap-2", children: [
2838
+ "Show ",
2839
+ v.length - z,
2840
+ " more headers",
2841
+ /* @__PURE__ */ t.jsx(Je, { size: 12, className: "text-muted-foreground" })
2842
+ ] }),
2843
+ /* @__PURE__ */ t.jsxs(_, { className: "col-span-full grid grid-cols-subgrid", children: [
2844
+ v.slice(z).map(([u, y]) => /* @__PURE__ */ t.jsxs(Se, { children: [
2845
+ /* @__PURE__ */ t.jsx(ue, { children: u }),
2846
+ /* @__PURE__ */ t.jsx(we, { value: y, header: u })
2847
+ ] }, u)),
2848
+ /* @__PURE__ */ t.jsxs(de, { className: "justify-center col-span-2 text-xs text-muted-foreground hover:text-primary border-b h-8 flex items-center gap-2", children: [
2849
+ "Hide ",
2850
+ v.length - z,
2851
+ " headers",
2852
+ /* @__PURE__ */ t.jsx(
2853
+ bt,
2854
+ {
2855
+ size: 12,
2856
+ className: "text-muted-foreground"
2857
+ }
2858
+ )
2859
+ ] })
2860
+ ] })
2861
+ ] })
2862
+ ] }) })
2863
+ ] }),
2864
+ /* @__PURE__ */ t.jsxs("div", { className: "flex gap-2 justify-between items-center border-b px-2 flex-0", children: [
2865
+ /* @__PURE__ */ t.jsxs(H, { className: "flex items-center gap-2", children: [
2866
+ /* @__PURE__ */ t.jsx(Un, { size: 14 }),
2867
+ "Response body"
2868
+ ] }),
2869
+ l && !r && /* @__PURE__ */ t.jsxs(
2870
+ Mt,
2871
+ {
2872
+ value: d,
2873
+ onValueChange: (u) => f(u),
2874
+ children: [
2875
+ /* @__PURE__ */ t.jsx(Ut, { className: "max-w-32 border-0 bg-transparent", children: /* @__PURE__ */ t.jsx(Gt, { placeholder: "View" }) }),
2876
+ /* @__PURE__ */ t.jsxs(Ht, { children: [
2877
+ /* @__PURE__ */ t.jsx(Te, { value: "formatted", children: "Formatted" }),
2878
+ /* @__PURE__ */ t.jsx(Te, { value: "raw", children: "Raw" }),
2879
+ /* @__PURE__ */ t.jsx(Te, { value: "types", children: "Types" })
2880
+ ] })
2881
+ ]
2882
+ }
2883
+ )
2884
+ ] }),
2885
+ /* @__PURE__ */ t.jsx("div", { className: "flex-1", children: r ? /* @__PURE__ */ t.jsx("div", { className: "p-4 text-center", children: /* @__PURE__ */ t.jsxs("div", { className: "flex flex-col items-center gap-4", children: [
2886
+ /* @__PURE__ */ t.jsx("div", { className: "text-lg font-semibold", children: "Binary Content" }),
2887
+ /* @__PURE__ */ t.jsx("div", { className: "text-sm text-muted-foreground", children: "This response contains binary data that cannot be displayed as text." }),
2888
+ /* @__PURE__ */ t.jsxs(
2889
+ q,
2890
+ {
2891
+ onClick: h,
2892
+ className: "flex items-center gap-2",
2893
+ disabled: !i,
2894
+ children: [
2895
+ /* @__PURE__ */ t.jsx(Gn, { className: "h-4 w-4" }),
2896
+ "Download ",
2897
+ o || "file",
2898
+ " (",
2899
+ Ee(a),
2900
+ ")"
2901
+ ]
2902
+ }
2903
+ )
2904
+ ] }) }) : /* @__PURE__ */ t.jsx(
2905
+ Ts,
2906
+ {
2907
+ className: "text-xs flex-1",
2908
+ embedded: !0,
2909
+ fullHeight: !0,
2910
+ language: d === "types" ? "typescript" : d === "raw" ? l ? "plain" : c : "json",
2911
+ code: (d === "raw" ? e : d === "types" ? x.data?.lines.join(`
2912
+ `) : m) ?? ""
2913
+ }
2914
+ ) })
2915
+ ] });
2916
+ }, ga = ({
2917
+ queryMutation: e,
2918
+ showLongRunningWarning: n,
2919
+ onCancel: s,
2920
+ tip: a,
2921
+ isFinished: r,
2922
+ progress: o
2923
+ }) => /* @__PURE__ */ t.jsxs("div", { className: "flex flex-col overflow-y-auto h-[80vh] bg-muted/50", children: [
2924
+ (e.isPending || e.data) && /* @__PURE__ */ t.jsx(
2925
+ la,
2926
+ {
2927
+ status: e.data?.status,
2928
+ time: e.data?.time,
2929
+ size: e.data?.size,
2930
+ isFinished: r,
2931
+ progress: o
2932
+ }
2933
+ ),
2934
+ e.error ? /* @__PURE__ */ t.jsx("div", { className: "max-w-2/3 mx-auto mt-20", children: /* @__PURE__ */ t.jsxs(qs, { children: [
2935
+ /* @__PURE__ */ t.jsx(Jn, { size: 24, strokeWidth: 1.5, className: "me-5" }),
2936
+ /* @__PURE__ */ t.jsx(Ms, { children: "Request failed" }),
2937
+ /* @__PURE__ */ t.jsx(Us, { children: e.error.message || String(e.error) || "Unexpected error" })
2938
+ ] }) }) : e.data ? /* @__PURE__ */ t.jsx(
2939
+ fa,
2940
+ {
2941
+ request: e.data.request,
2942
+ size: e.data.size,
2943
+ headers: e.data.headers,
2944
+ body: e.data.body,
2945
+ isBinary: e.data.isBinary,
2946
+ fileName: e.data.fileName,
2947
+ blob: e.data.blob
2948
+ }
2949
+ ) : e.isPending ? /* @__PURE__ */ t.jsx("div", { className: "grid place-items-center h-full", children: /* @__PURE__ */ t.jsxs("div", { className: "flex flex-col gap-2 items-center mt-20", children: [
2950
+ /* @__PURE__ */ t.jsx(bs, {}),
2951
+ /* @__PURE__ */ t.jsxs(
2952
+ "div",
2953
+ {
2954
+ className: w(
2955
+ "opacity-0 pointer-events-none transition-opacity h-20 text-sm text-muted-foreground duration-300 flex flex-col gap-2 items-center",
2956
+ n && "opacity-100 pointer-events-auto"
2957
+ ),
2958
+ children: [
2959
+ "Looks like the request is taking longer than expected.",
2960
+ /* @__PURE__ */ t.jsx(
2961
+ Ft,
2962
+ {
2963
+ type: "button",
2964
+ onClick: s,
2965
+ size: "sm",
2966
+ className: "w-fit",
2967
+ variant: "outline",
2968
+ children: "Cancel"
2969
+ }
2970
+ )
2971
+ ]
2972
+ }
2973
+ )
2974
+ ] }) }) : /* @__PURE__ */ t.jsx("div", { className: "h-full grid place-items-center", children: /* @__PURE__ */ t.jsxs("div", { className: "flex flex-col gap-4 items-center", children: [
2975
+ /* @__PURE__ */ t.jsx(
2976
+ Wn,
2977
+ {
2978
+ size: 64,
2979
+ className: "text-muted-foreground",
2980
+ strokeWidth: 1.2
2981
+ }
2982
+ ),
2983
+ /* @__PURE__ */ t.jsx("span", { className: "text-[16px] font-semibold text-muted-foreground", children: "Send your first request" }),
2984
+ a
2985
+ ] }) })
2986
+ ] }), xn = Ze()(
2987
+ Ye(
2988
+ (e) => ({
2989
+ skipLogin: !1,
2990
+ setSkipLogin: (n) => e({ skipLogin: n })
2991
+ }),
2992
+ {
2993
+ name: "remember-skip-login",
2994
+ storage: zt(() => sessionStorage)
2995
+ }
2996
+ )
2997
+ );
2998
+ is(xn);
2999
+ const pe = "__none", xa = ({
3000
+ server: e,
3001
+ servers: n = [],
3002
+ url: s,
3003
+ method: a,
3004
+ headers: r = [],
3005
+ queryParams: o = [],
3006
+ pathParams: i = [],
3007
+ defaultBody: c = "",
3008
+ examples: l,
3009
+ requiresLogin: m = !1,
3010
+ onLogin: d,
3011
+ onSignUp: f
3012
+ }) => {
3013
+ const { selectedServer: x, setSelectedServer: h } = Br(
3014
+ n.map((p) => ({ url: p }))
3015
+ ), [v, u] = k(!1), y = ls(), { setRememberedIdentity: S, getRememberedIdentity: R } = na(), [, N] = hs(), { skipLogin: j, setSkipLogin: O } = xn(), [J, be] = k(!1), [Ie, te] = k(!1), g = E(void 0), C = Ps(S), T = E(null), { label: A } = zr("meta+enter", () => {
3016
+ T.current?.requestSubmit();
3017
+ }), M = s.match(/\{([^}]+)\}/g)?.map((p) => p.slice(1, -1)) ?? [], L = [...i].sort(
3018
+ (p, re) => M.indexOf(p.name) - M.indexOf(re.name)
3019
+ ), { register: De, control: ne, handleSubmit: je, watch: ct, setValue: Fe, ...ze } = Ss({
3020
+ defaultValues: {
3021
+ body: c,
3022
+ bodyMode: "text",
3023
+ file: null,
3024
+ multipartFormFields: [],
3025
+ queryParams: o.length > 0 ? o.map((p) => ({
3026
+ name: p.name,
3027
+ value: p.defaultValue ?? "",
3028
+ active: p.defaultActive ?? !1,
3029
+ enum: p.enum ?? []
3030
+ })) : [{ name: "", value: "", active: !1, enum: [] }],
3031
+ pathParams: L.map((p) => ({
3032
+ name: p.name,
3033
+ value: p.defaultValue ?? ""
3034
+ })),
3035
+ headers: r.length > 0 ? r.map((p) => ({
3036
+ name: p.name,
3037
+ value: p.defaultValue ?? "",
3038
+ active: p.defaultActive ?? !1
3039
+ })) : [{ name: "", value: "", active: !1 }],
3040
+ identity: R([
3041
+ pe,
3042
+ ...y.data?.map((p) => p.id) ?? []
3043
+ ])
3044
+ }
3045
+ }), se = ct("identity"), Cn = Bt(
3046
+ () => y.data?.find((p) => p.id === se)?.authorizationFields,
3047
+ [y.data, se]
3048
+ );
3049
+ G(() => {
3050
+ se && C.current(se);
3051
+ }, [C, se]);
3052
+ const W = Ns({
3053
+ gcTime: 0,
3054
+ mutationFn: async (p) => {
3055
+ const re = performance.now(), Ve = new window.Headers(
3056
+ p.headers.filter(($) => $.name && $.active).map(($) => [$.name, $.value])
3057
+ );
3058
+ let Ce;
3059
+ switch (p.bodyMode) {
3060
+ case "file":
3061
+ Ce = p.file || void 0, Ve.delete("Content-Type");
3062
+ break;
3063
+ case "multipart": {
3064
+ const $ = new FormData();
3065
+ p.multipartFormFields?.filter((X) => X.name && X.active).forEach((X) => $.append(X.name, X.value)), Ce = $, Ve.delete("Content-Type");
3066
+ break;
3067
+ }
3068
+ default:
3069
+ Ce = p.body || void 0;
3070
+ break;
3071
+ }
3072
+ const K = new Request(
3073
+ Lt(e ?? x, s, p),
3074
+ {
3075
+ method: a,
3076
+ headers: Ve,
3077
+ body: ["GET", "HEAD"].includes(a.toUpperCase()) ? null : Ce
3078
+ }
3079
+ );
3080
+ p.identity !== pe && await y.data?.find(($) => $.id === p.identity)?.authorizeRequest(K);
3081
+ const Be = setTimeout(
3082
+ () => te(!0),
3083
+ 3210
3084
+ );
3085
+ g.current = new AbortController(), g.current.signal.addEventListener("abort", () => {
3086
+ clearTimeout(Be);
3087
+ });
3088
+ try {
3089
+ const $ = await fetch(K, {
3090
+ cache: "no-store",
3091
+ signal: g.current.signal
3092
+ });
3093
+ clearTimeout(Be), te(!1);
3094
+ const X = performance.now() - re, Ln = new URL(K.url), mt = Array.from($.headers.entries()), pt = $.headers.get("content-type") || "", ht = Ur(pt);
3095
+ let Ne = "", ft, gt;
3096
+ ht ? (ft = await $.blob(), gt = Gr(mt, K.url), Ne = `Binary content (${pt})`) : Ne = await $.text();
3097
+ const xt = $.headers.get("content-length");
3098
+ let ae = "";
3099
+ switch (p.bodyMode) {
3100
+ case "text":
3101
+ ae = p.body;
3102
+ break;
3103
+ case "file":
3104
+ ae = `[File: ${p.file?.name ?? "Unknown"}]`;
3105
+ break;
3106
+ case "multipart":
3107
+ ae = `[Multipart Form Data]
3108
+ `, ae += p.multipartFormFields?.filter((U) => U.name && U.active).map(
3109
+ (U) => U.value instanceof File ? `${U.name}: [File: ${U.value.name}]` : `${U.name}: ${U.value}`
3110
+ ).join(`
3111
+ `);
3112
+ break;
3113
+ default:
3114
+ ae = p.body;
3115
+ break;
3116
+ }
3117
+ return {
3118
+ status: $.status,
3119
+ headers: mt,
3120
+ size: xt ? Number(xt) : Ne.length,
3121
+ body: Ne,
3122
+ time: X,
3123
+ isBinary: ht,
3124
+ fileName: gt,
3125
+ blob: ft,
3126
+ request: {
3127
+ method: K.method.toUpperCase(),
3128
+ url: K.url,
3129
+ headers: [
3130
+ ["Host", Ln.host],
3131
+ ["User-Agent", "Zudoku Playground"],
3132
+ ...Array.from(K.headers.entries())
3133
+ ],
3134
+ body: ae
3135
+ }
3136
+ };
3137
+ } catch ($) {
3138
+ throw clearTimeout(Be), te(!1), $ instanceof TypeError ? new Error(
3139
+ "The request failed, possibly due to network issues or CORS policy."
3140
+ ) : $;
3141
+ }
3142
+ }
3143
+ }), dt = W.isPending, [Nn, Sn] = k(!1);
3144
+ G(() => {
3145
+ const p = setTimeout(() => Sn(dt), 100);
3146
+ return () => clearTimeout(p);
3147
+ }, [dt]);
3148
+ const { isFinished: wn, progress: Tn } = js({ isAnimating: Nn });
3149
+ G(() => () => {
3150
+ g.current?.abort();
3151
+ }, []);
3152
+ const An = /* @__PURE__ */ t.jsx("div", { className: "inline-block opacity-50 hover:opacity-100 transition", children: e ? /* @__PURE__ */ t.jsx("span", { children: e.replace(/^https?:\/\//, "").replace(/\/$/, "") }) : n.length > 1 && /* @__PURE__ */ t.jsxs(
3153
+ Mt,
3154
+ {
3155
+ onValueChange: (p) => {
3156
+ N(() => h(p));
3157
+ },
3158
+ value: x,
3159
+ defaultValue: x,
3160
+ children: [
3161
+ /* @__PURE__ */ t.jsx(Ut, { className: "p-0 border-none flex-row-reverse bg-transparent text-xs gap-0.5 h-auto translate-y-[4px]", children: /* @__PURE__ */ t.jsx(Gt, {}) }),
3162
+ /* @__PURE__ */ t.jsx(Ht, { children: n.map((p) => /* @__PURE__ */ t.jsx(Te, { value: p, children: p.replace(/^https?:\/\//, "").replace(/\/$/, "") }, p)) })
3163
+ ]
3164
+ }
3165
+ ) }), $n = m && !j && !J, Pn = ["POST", "PUT", "PATCH", "DELETE"].includes(
3166
+ a.toUpperCase()
3167
+ ), [ut, On] = $s();
3168
+ return /* @__PURE__ */ t.jsx(
3169
+ ws,
3170
+ {
3171
+ register: De,
3172
+ control: ne,
3173
+ handleSubmit: je,
3174
+ watch: ct,
3175
+ setValue: Fe,
3176
+ ...ze,
3177
+ children: /* @__PURE__ */ t.jsx(As, { delayDuration: 150, children: /* @__PURE__ */ t.jsxs(
3178
+ "form",
3179
+ {
3180
+ ref: T,
3181
+ onKeyDown: (p) => {
3182
+ p.key === "Enter" && p.target instanceof HTMLInputElement && p.preventDefault();
3183
+ },
3184
+ onSubmit: je((p) => {
3185
+ y.data?.length === 0 || p.identity ? W.mutate(p) : u(!0);
3186
+ }),
3187
+ className: "relative",
3188
+ children: [
3189
+ /* @__PURE__ */ t.jsx(
3190
+ Xr,
3191
+ {
3192
+ identities: y.data ?? [],
3193
+ open: v,
3194
+ onOpenChange: u,
3195
+ onSubmit: ({ rememberedIdentity: p, identity: re }) => {
3196
+ p && Fe("identity", re ?? pe), u(!1), W.mutate({ ...ze.getValues(), identity: re });
3197
+ }
3198
+ }
3199
+ ),
3200
+ /* @__PURE__ */ t.jsx(
3201
+ ta,
3202
+ {
3203
+ open: $n,
3204
+ setOpen: (p) => {
3205
+ p || be(!0);
3206
+ },
3207
+ onSkip: (p) => {
3208
+ be(!0), p && O(!0);
3209
+ },
3210
+ onSignUp: f,
3211
+ onLogin: d
3212
+ }
3213
+ ),
3214
+ /* @__PURE__ */ t.jsxs("div", { className: "grid grid-cols-[1fr_1px_1fr] text-sm", children: [
3215
+ /* @__PURE__ */ t.jsxs("div", { className: "col-span-3 p-4 border-b flex gap-2 items-stretch", children: [
3216
+ /* @__PURE__ */ t.jsxs("div", { className: "flex flex-1 items-center w-full border rounded-md relative overflow-hidden", children: [
3217
+ /* @__PURE__ */ t.jsx("div", { className: "border-r p-2 bg-muted rounded-l-md self-stretch font-semibold font-mono flex items-center", children: a.toUpperCase() }),
3218
+ /* @__PURE__ */ t.jsx("div", { className: "items-center px-2 font-mono text-xs break-all leading-6 relative h-full w-full", children: /* @__PURE__ */ t.jsxs("div", { className: "h-full py-1.5", children: [
3219
+ An,
3220
+ /* @__PURE__ */ t.jsx(ra, { url: s }),
3221
+ /* @__PURE__ */ t.jsx(aa, {})
3222
+ ] }) }),
3223
+ /* @__PURE__ */ t.jsx("div", { className: "px-1", children: /* @__PURE__ */ t.jsx(
3224
+ q,
3225
+ {
3226
+ type: "button",
3227
+ onClick: () => {
3228
+ On(
3229
+ Lt(
3230
+ e ?? x,
3231
+ s,
3232
+ ze.getValues()
3233
+ ).toString()
3234
+ );
3235
+ },
3236
+ variant: "ghost",
3237
+ size: "icon-xs",
3238
+ className: w(
3239
+ "hover:opacity-100 transition",
3240
+ ut ? "text-emerald-600 opacity-100" : "opacity-50"
3241
+ ),
3242
+ children: ut ? /* @__PURE__ */ t.jsx(Dt, { className: "text-green-500", size: 14 }) : /* @__PURE__ */ t.jsx(Kn, { size: 14 })
3243
+ }
3244
+ ) })
3245
+ ] }),
3246
+ /* @__PURE__ */ t.jsx(
3247
+ q,
3248
+ {
3249
+ type: "submit",
3250
+ variant: W.isPending ? "destructive" : "default",
3251
+ onClick: (p) => {
3252
+ W.isPending && (g.current?.abort(
3253
+ "Request cancelled by user"
3254
+ ), p.preventDefault());
3255
+ },
3256
+ className: "w-18",
3257
+ children: W.isPending ? "Cancel" : "Send"
3258
+ }
3259
+ )
3260
+ ] }),
3261
+ /* @__PURE__ */ t.jsxs("div", { className: "relative overflow-y-auto h-[80vh]", children: [
3262
+ y.data?.length !== 0 && /* @__PURE__ */ t.jsxs(B, { defaultOpen: !0, children: [
3263
+ /* @__PURE__ */ t.jsxs(Y, { children: [
3264
+ /* @__PURE__ */ t.jsx(Xn, { size: 16 }),
3265
+ /* @__PURE__ */ t.jsx(H, { children: "Authentication" })
3266
+ ] }),
3267
+ /* @__PURE__ */ t.jsx(_, { className: "CollapsibleContent", children: /* @__PURE__ */ t.jsx(
3268
+ fn,
3269
+ {
3270
+ value: se,
3271
+ identities: y.data ?? [],
3272
+ setValue: (p) => Fe("identity", p)
3273
+ }
3274
+ ) })
3275
+ ] }),
3276
+ L.length > 0 && /* @__PURE__ */ t.jsxs(B, { defaultOpen: !0, children: [
3277
+ /* @__PURE__ */ t.jsxs(Y, { children: [
3278
+ /* @__PURE__ */ t.jsx(Zn, { size: 16 }),
3279
+ /* @__PURE__ */ t.jsx(H, { children: "Path Parameters" })
3280
+ ] }),
3281
+ /* @__PURE__ */ t.jsx(_, { className: "CollapsibleContent", children: /* @__PURE__ */ t.jsx(Yr, { url: s, control: ne }) })
3282
+ ] }),
3283
+ /* @__PURE__ */ t.jsx(ea, { control: ne, schemaQueryParams: o }),
3284
+ /* @__PURE__ */ t.jsx(
3285
+ Wr,
3286
+ {
3287
+ control: ne,
3288
+ schemaHeaders: r,
3289
+ lockedHeaders: Cn?.headers
3290
+ }
3291
+ ),
3292
+ Pn && /* @__PURE__ */ t.jsx(Mr, { content: l })
3293
+ ] }),
3294
+ /* @__PURE__ */ t.jsx("div", { className: "w-full bg-muted-foreground/20" }),
3295
+ /* @__PURE__ */ t.jsx(
3296
+ ga,
3297
+ {
3298
+ queryMutation: W,
3299
+ showLongRunningWarning: Ie,
3300
+ isFinished: wn,
3301
+ progress: Tn,
3302
+ tip: /* @__PURE__ */ t.jsx("div", { className: "text-xs w-full", children: /* @__PURE__ */ t.jsxs("span", { className: "text-muted-foreground", children: [
3303
+ "Press",
3304
+ " ",
3305
+ /* @__PURE__ */ t.jsx("kbd", { className: "text-foreground border rounded m-0.5 px-1 py-0.5 capitalize", children: A.join(" + ") }),
3306
+ " ",
3307
+ "to send a request"
3308
+ ] }) }),
3309
+ onCancel: () => {
3310
+ g.current?.abort(
3311
+ "Request cancelled by the user"
3312
+ ), te(!1);
3313
+ }
3314
+ }
3315
+ )
3316
+ ] })
3317
+ ]
3318
+ }
3319
+ ) })
3320
+ }
3321
+ );
3322
+ }, ya = (e) => {
3323
+ const [n, s] = k(!1), { isAuthEnabled: a, login: r, signup: o, isPending: i, isAuthenticated: c } = ys();
3324
+ return /* @__PURE__ */ t.jsxs(et, { onOpenChange: (l) => s(l), children: [
3325
+ /* @__PURE__ */ t.jsx(vs, { asChild: !0, children: e.children ?? /* @__PURE__ */ t.jsx(q, { variant: "ghost", size: "icon-xs", className: "group", children: /* @__PURE__ */ t.jsx(
3326
+ Yn,
3327
+ {
3328
+ className: "fill-muted-foreground group-hover:fill-foreground transition",
3329
+ size: 16,
3330
+ strokeWidth: 1.5
3331
+ }
3332
+ ) }) }),
3333
+ /* @__PURE__ */ t.jsxs(
3334
+ tt,
3335
+ {
3336
+ className: "max-w-screen-xl! w-full overflow-hidden p-0",
3337
+ "aria-describedby": void 0,
3338
+ showCloseButton: !0,
3339
+ children: [
3340
+ /* @__PURE__ */ t.jsx(gs, { children: /* @__PURE__ */ t.jsx(nt, { children: "Playground" }) }),
3341
+ n && /* @__PURE__ */ t.jsx(
3342
+ xa,
3343
+ {
3344
+ requiresLogin: a && !c && !i,
3345
+ onLogin: () => r(),
3346
+ onSignUp: () => o(),
3347
+ ...e
3348
+ }
3349
+ )
3350
+ ]
3351
+ }
3352
+ )
3353
+ ] });
3354
+ }, va = {
3355
+ get: "green",
3356
+ post: "blue",
3357
+ put: "yellow",
3358
+ delete: "red",
3359
+ patch: "purple",
3360
+ options: "gray",
3361
+ head: "gray"
3362
+ }, kt = ({
3363
+ label: e,
3364
+ path: n,
3365
+ operations: s,
3366
+ collapsible: a,
3367
+ collapsed: r
3368
+ }) => ({
3369
+ type: "category",
3370
+ label: e,
3371
+ link: {
3372
+ type: "doc",
3373
+ path: n,
3374
+ file: n,
3375
+ label: e
3376
+ },
3377
+ collapsible: a,
3378
+ collapsed: r,
3379
+ items: s.map((o) => ({
3380
+ type: "link",
3381
+ label: o.summary ?? o.path,
3382
+ to: `${n}#${o.slug}`,
3383
+ badge: {
3384
+ label: o.method,
3385
+ // biome-ignore lint/style/noNonNullAssertion: is guaranteed to be defined
3386
+ color: va[o.method.toLowerCase()],
3387
+ invert: !0
3388
+ }
3389
+ }))
3390
+ }), yn = Vt(
3391
+ void 0
3392
+ ), Ya = yn.Provider, ba = () => {
3393
+ const e = fs(yn);
3394
+ if (!e)
3395
+ throw new Error("useOasConfig must be used within a OasConfigProvider");
3396
+ return e.config;
3397
+ }, Qe = (e) => ({
3398
+ path: e.routePath,
3399
+ async lazy() {
3400
+ const { OasProvider: n } = await import("./OasProvider-C10RPbY8.js");
3401
+ return {
3402
+ element: /* @__PURE__ */ t.jsx(
3403
+ n,
3404
+ {
3405
+ basePath: e.basePath,
3406
+ version: e.version,
3407
+ client: e.client,
3408
+ config: e.config
3409
+ }
3410
+ )
3411
+ };
3412
+ },
3413
+ children: e.routes
3414
+ }), vn = ({
3415
+ path: e,
3416
+ tag: n,
3417
+ untagged: s
3418
+ }) => ({
3419
+ path: e,
3420
+ async lazy() {
3421
+ const { OperationList: a } = await import("./OperationList--zX7OAlH.js");
3422
+ return { element: /* @__PURE__ */ t.jsx(a, { tag: n, untagged: s }) };
3423
+ }
3424
+ }), ja = ({
3425
+ render: e,
3426
+ path: n
3427
+ }) => {
3428
+ const { type: s, input: a } = ba(), { tag: r } = ns(), o = ss(), i = wr(jn, { type: s, input: a }), {
3429
+ data: { schema: c }
3430
+ } = cs(i), l = c.tags.at(0);
3431
+ return !r && l?.slug ? /* @__PURE__ */ t.jsx(
3432
+ rs,
3433
+ {
3434
+ to: {
3435
+ pathname: as(n, { tag: l.slug }),
3436
+ search: o.search
3437
+ }
3438
+ }
3439
+ ) : r && c.tags.some((m) => m.slug === r) ? e(r) : null;
3440
+ }, Rt = ({ path: e }) => ({
3441
+ path: e,
3442
+ async lazy() {
3443
+ const { OperationList: n } = await import("./OperationList--zX7OAlH.js");
3444
+ return {
3445
+ element: /* @__PURE__ */ t.jsx(
3446
+ ja,
3447
+ {
3448
+ path: e,
3449
+ render: (s) => /* @__PURE__ */ t.jsx(n, { tag: s })
3450
+ }
3451
+ )
3452
+ };
3453
+ }
3454
+ }), Xe = (e) => [
3455
+ // Category without tagged operations
3456
+ vn({
3457
+ path: V(e, lt),
3458
+ untagged: !0
3459
+ }),
3460
+ // Schema list route
3461
+ {
3462
+ path: V(e, "~schemas"),
3463
+ lazy: async () => {
3464
+ const { SchemaList: n } = await import("./SchemaList-CxafJA_P.js");
3465
+ return { element: /* @__PURE__ */ t.jsx(n, {}) };
3466
+ }
3467
+ }
3468
+ ], Ca = (e, n) => {
3469
+ const s = V(e, n.at(0) ?? lt);
3470
+ return [
3471
+ // Redirect to first tag on the index route
3472
+ { index: !0, loader: () => ts(s) },
3473
+ // Create routes for each tag
3474
+ ...n.map(
3475
+ (a) => vn({
3476
+ path: V(e, a),
3477
+ tag: a
3478
+ })
3479
+ ),
3480
+ ...Xe(e)
3481
+ ];
3482
+ }, bn = (e) => e.type === "raw" || !Array.isArray(e.input) ? { versions: [], labels: {} } : {
3483
+ versions: e.input.map((n) => n.path),
3484
+ labels: Object.fromEntries(
3485
+ e.input.map((n) => [n.path, n.label ?? n.path])
3486
+ )
3487
+ }, Na = ({
3488
+ basePath: e,
3489
+ config: n,
3490
+ client: s
3491
+ }) => {
3492
+ const a = n.tagPages, { versions: r } = bn(n);
3493
+ return a ? (r.length > 1 ? [void 0, ...r] : [void 0]).map((i) => {
3494
+ const c = V(e, i);
3495
+ return Qe({
3496
+ basePath: e,
3497
+ version: i,
3498
+ routePath: c,
3499
+ routes: Ca(c, a),
3500
+ client: s,
3501
+ config: n
3502
+ });
3503
+ }) : r.length > 0 ? (r.length > 1 ? [void 0, ...r] : [void 0]).map((c) => {
3504
+ const l = V(e, c);
3505
+ return Qe({
3506
+ basePath: e,
3507
+ version: c,
3508
+ routePath: l,
3509
+ routes: [
3510
+ Rt({ path: `${l}/:tag?` }),
3511
+ ...Xe(l)
3512
+ ],
3513
+ client: s,
3514
+ config: n
3515
+ });
3516
+ }) : [
3517
+ Qe({
3518
+ basePath: e,
3519
+ routePath: e,
3520
+ routes: [
3521
+ Rt({ path: `${e}/:tag?` }),
3522
+ ...Xe(e)
3523
+ ],
3524
+ client: s,
3525
+ config: n
3526
+ })
3527
+ ];
3528
+ }, jn = Rr(`
3529
+ query GetNavigationOperations($input: JSON!, $type: SchemaType!) {
3530
+ schema(input: $input, type: $type) {
3531
+ extensions
3532
+ tags {
3533
+ slug
3534
+ name
3535
+ extensions
3536
+ operations {
3537
+ summary
3538
+ slug
3539
+ method
3540
+ operationId
3541
+ path
3542
+ }
3543
+ }
3544
+ components {
3545
+ schemas {
3546
+ __typename
3547
+ }
3548
+ }
3549
+ }
3550
+ }
3551
+ `), lt = "~endpoints", eo = (e) => {
3552
+ const n = V(e.path), s = new Hs(e);
3553
+ return {
3554
+ getHead: () => {
3555
+ if (e.type === "url" && !e.skipPreload)
3556
+ return (Array.isArray(e.input) ? e.input.map((r) => r.input) : [e.input]).map((r) => /* @__PURE__ */ t.jsx(
3557
+ "link",
3558
+ {
3559
+ href: r,
3560
+ rel: "preload",
3561
+ as: "fetch",
3562
+ crossOrigin: "anonymous"
3563
+ },
3564
+ r
3565
+ ));
3566
+ if (e.server)
3567
+ return /* @__PURE__ */ t.jsx("link", { rel: "preconnect", href: e.server });
3568
+ },
3569
+ getMdxComponents: () => ({
3570
+ OpenPlaygroundButton: ({
3571
+ server: a,
3572
+ method: r = "get",
3573
+ url: o = "/",
3574
+ children: i,
3575
+ ...c
3576
+ }) => {
3577
+ if (!a)
3578
+ throw new Error("Server is required");
3579
+ return /* @__PURE__ */ t.jsx(
3580
+ ya,
3581
+ {
3582
+ url: o,
3583
+ method: r,
3584
+ server: a,
3585
+ ...c,
3586
+ children: /* @__PURE__ */ t.jsx(Ft, { className: "gap-2 items-center", variant: "outline", children: i ?? /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
3587
+ "Open in Playground",
3588
+ /* @__PURE__ */ t.jsx(es, { size: 16 })
3589
+ ] }) })
3590
+ }
3591
+ );
3592
+ }
3593
+ }),
3594
+ getNavigation: async (a, r) => {
3595
+ if (!jt({ path: n, end: !1 }, a))
3596
+ return [];
3597
+ const o = jt(
3598
+ { path: `${n}/:version?/:tag`, end: !0 },
3599
+ a
3600
+ );
3601
+ try {
3602
+ const i = o?.params.version, { versions: c } = bn(e), l = i ?? c.at(0), { type: m } = e, d = Array.isArray(e.input) ? e.input.find((N) => N.path === l)?.input ?? e.input[0]?.input : e.input, f = cn(s, jn, {
3603
+ type: m,
3604
+ input: d
3605
+ }), x = await r.queryClient.ensureQueryData(f), h = new Map(
3606
+ x.schema.tags.filter((N) => N.name && N.operations.length > 0).map((N) => {
3607
+ if (!N.name)
3608
+ throw new Error(`Tag ${N.slug} has no name`);
3609
+ const j = V(n, i, N.slug), O = N.extensions?.["x-zudoku-collapsed"] ?? !e.options?.expandAllTags, J = N.extensions?.["x-zudoku-collapsible"] ?? !0;
3610
+ return [
3611
+ N.name,
3612
+ kt({
3613
+ label: N.extensions?.["x-displayName"] ?? N.name,
3614
+ path: j,
3615
+ operations: N.operations,
3616
+ collapsed: O,
3617
+ collapsible: J
3618
+ })
3619
+ ];
3620
+ })
3621
+ ), v = x.schema.extensions?.["x-tagGroups"] ?? [], u = new Set(
3622
+ v.flatMap(
3623
+ (N) => N.tags.filter((j) => h.has(j))
3624
+ )
3625
+ ), S = [
3626
+ ...v.flatMap(
3627
+ (N) => {
3628
+ const j = N.tags.map((O) => h.get(O)).filter(Boolean);
3629
+ return j.length === 0 ? [] : [
3630
+ {
3631
+ type: "category",
3632
+ label: N.name,
3633
+ items: j,
3634
+ collapsible: !0,
3635
+ collapsed: !e.options?.expandAllTags
3636
+ }
3637
+ ];
3638
+ }
3639
+ ),
3640
+ ...Array.from(h.entries()).filter(([N]) => !u.has(N)).map(([, N]) => N)
3641
+ ], R = x.schema.tags.find(
3642
+ (N) => !N.name
3643
+ )?.operations;
3644
+ return R && R.length > 0 && S.push(
3645
+ kt({
3646
+ label: S.length === 0 ? "Endpoints" : "Other endpoints",
3647
+ path: V(n, i, lt),
3648
+ operations: R,
3649
+ collapsed: !e.options?.expandAllTags
3650
+ })
3651
+ ), x.schema.components?.schemas?.length && S.push({
3652
+ type: "link",
3653
+ label: "Schemas",
3654
+ to: V(n, i, "~schemas")
3655
+ }), S;
3656
+ } catch {
3657
+ return [];
3658
+ }
3659
+ },
3660
+ getRoutes: () => Na({ basePath: n, config: e, client: s })
3661
+ };
3662
+ };
3663
+ export {
3664
+ B as C,
3665
+ Za as G,
3666
+ rr as L,
3667
+ Ya as O,
3668
+ ya as P,
3669
+ Zs as Q,
3670
+ on as S,
3671
+ b as T,
3672
+ lt as U,
3673
+ wr as a,
3674
+ de as b,
3675
+ _ as c,
3676
+ Rr as d,
3677
+ Br as e,
3678
+ gn as f,
3679
+ bn as g,
3680
+ sa as h,
3681
+ Xa as i,
3682
+ qe as j,
3683
+ an as k,
3684
+ rt as l,
3685
+ er as m,
3686
+ tn as n,
3687
+ Cr as o,
3688
+ sr as p,
3689
+ Qs as q,
3690
+ Nr as r,
3691
+ F as s,
3692
+ Pt as t,
3693
+ ba as u,
3694
+ Ka as v,
3695
+ ar as w,
3696
+ Js as x,
3697
+ jn as y,
3698
+ eo as z
3699
+ };
3700
+ //# sourceMappingURL=index-B6SRNBIt.js.map