zudoku 0.0.0-ff3bc72 → 0.0.0-firebase-fixes.777fd2c0

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 (2402) hide show
  1. package/README.md +141 -0
  2. package/cli.js +12 -2
  3. package/client.d.ts +7 -0
  4. package/dist/app/ZuploBuildConfig.d.ts +45 -0
  5. package/dist/app/ZuploBuildConfig.js +29 -0
  6. package/dist/app/ZuploBuildConfig.js.map +1 -0
  7. package/dist/app/demo.js +23 -10
  8. package/dist/app/demo.js.map +1 -1
  9. package/dist/app/entry.client.d.ts +6 -2
  10. package/dist/app/entry.client.js +56 -7
  11. package/dist/app/entry.client.js.map +1 -1
  12. package/dist/app/entry.server.d.ts +9 -8
  13. package/dist/app/entry.server.js +36 -18
  14. package/dist/app/entry.server.js.map +1 -1
  15. package/dist/app/env.d.ts +33 -0
  16. package/dist/app/env.js +37 -0
  17. package/dist/app/env.js.map +1 -0
  18. package/dist/app/main.d.ts +94 -2
  19. package/dist/app/main.js +64 -70
  20. package/dist/app/main.js.map +1 -1
  21. package/dist/app/sentry.d.ts +3 -0
  22. package/dist/app/sentry.js +19 -0
  23. package/dist/app/sentry.js.map +1 -0
  24. package/dist/app/standalone.js +12 -11
  25. package/dist/app/standalone.js.map +1 -1
  26. package/dist/cli/build/handler.d.ts +1 -3
  27. package/dist/cli/build/handler.js +18 -2
  28. package/dist/cli/build/handler.js.map +1 -1
  29. package/dist/cli/cli.d.ts +9 -0
  30. package/dist/cli/cli.js +23 -15
  31. package/dist/cli/cli.js.map +1 -1
  32. package/dist/cli/cmds/build.d.ts +11 -3
  33. package/dist/cli/cmds/build.js +21 -13
  34. package/dist/cli/cmds/build.js.map +1 -1
  35. package/dist/cli/cmds/dev.d.ts +1 -1
  36. package/dist/cli/cmds/dev.js +5 -0
  37. package/dist/cli/cmds/dev.js.map +1 -1
  38. package/dist/cli/cmds/preview.d.ts +16 -0
  39. package/dist/cli/cmds/preview.js +25 -0
  40. package/dist/cli/cmds/preview.js.map +1 -0
  41. package/dist/cli/common/analytics/lib.js +1 -1
  42. package/dist/cli/common/analytics/lib.js.map +1 -1
  43. package/dist/cli/common/logger.js +8 -0
  44. package/dist/cli/common/logger.js.map +1 -1
  45. package/dist/cli/common/machine-id/lib.js +3 -1
  46. package/dist/cli/common/machine-id/lib.js.map +1 -1
  47. package/dist/cli/common/outdated.js +4 -2
  48. package/dist/cli/common/outdated.js.map +1 -1
  49. package/dist/cli/common/output.js +2 -3
  50. package/dist/cli/common/output.js.map +1 -1
  51. package/dist/cli/common/utils/box.js +2 -2
  52. package/dist/cli/common/utils/box.js.map +1 -1
  53. package/dist/cli/common/utils/ports.d.ts +1 -1
  54. package/dist/cli/common/utils/ports.js +16 -15
  55. package/dist/cli/common/utils/ports.js.map +1 -1
  56. package/dist/cli/common/validators/lib.js +1 -1
  57. package/dist/cli/common/validators/lib.js.map +1 -1
  58. package/dist/cli/common/version-check.d.ts +2 -0
  59. package/dist/cli/common/version-check.js +58 -0
  60. package/dist/cli/common/version-check.js.map +1 -0
  61. package/dist/cli/dev/handler.d.ts +1 -0
  62. package/dist/cli/dev/handler.js +15 -16
  63. package/dist/cli/dev/handler.js.map +1 -1
  64. package/dist/cli/preview/handler.d.ts +3 -0
  65. package/dist/cli/preview/handler.js +35 -0
  66. package/dist/cli/preview/handler.js.map +1 -0
  67. package/dist/codegen.d.ts +3 -0
  68. package/dist/codegen.js +45 -0
  69. package/dist/codegen.js.map +1 -0
  70. package/dist/config/config.d.ts +21 -31
  71. package/dist/config/file-exists.d.ts +1 -0
  72. package/dist/config/file-exists.js +5 -0
  73. package/dist/config/file-exists.js.map +1 -0
  74. package/dist/config/loader.d.ts +21 -0
  75. package/dist/config/loader.js +141 -0
  76. package/dist/config/loader.js.map +1 -0
  77. package/dist/config/validators/BuildSchema.d.ts +44 -0
  78. package/dist/config/validators/BuildSchema.js +57 -0
  79. package/dist/config/validators/BuildSchema.js.map +1 -0
  80. package/dist/config/validators/InputNavigationSchema.d.ts +7646 -0
  81. package/dist/config/validators/InputNavigationSchema.js +78 -0
  82. package/dist/config/validators/InputNavigationSchema.js.map +1 -0
  83. package/dist/config/validators/InputNavigationSchema.test-d.js +146 -0
  84. package/dist/config/validators/InputNavigationSchema.test-d.js.map +1 -0
  85. package/dist/config/validators/NavigationSchema.d.ts +44 -0
  86. package/dist/config/validators/NavigationSchema.js +96 -0
  87. package/dist/config/validators/NavigationSchema.js.map +1 -0
  88. package/dist/config/validators/ProtectedRoutesSchema.d.ts +13 -0
  89. package/dist/config/validators/ProtectedRoutesSchema.js +10 -0
  90. package/dist/config/validators/ProtectedRoutesSchema.js.map +1 -0
  91. package/dist/config/validators/auth.d.ts +2 -2
  92. package/dist/config/validators/auth.js +1 -1
  93. package/dist/config/validators/auth.js.map +1 -1
  94. package/dist/config/validators/icon-types.d.ts +2 -0
  95. package/dist/config/validators/icon-types.js +1873 -0
  96. package/dist/config/validators/icon-types.js.map +1 -0
  97. package/dist/config/validators/validate.d.ts +925 -1421
  98. package/dist/config/validators/validate.js +424 -136
  99. package/dist/config/validators/validate.js.map +1 -1
  100. package/dist/config/validators/validate.test.js +183 -0
  101. package/dist/config/validators/validate.test.js.map +1 -0
  102. package/dist/flat-config.d.ts +386 -0
  103. package/dist/index.d.ts +11 -2
  104. package/dist/index.js +6 -1
  105. package/dist/index.js.map +1 -1
  106. package/dist/lib/MissingIcon.d.ts +2 -0
  107. package/dist/lib/MissingIcon.js +7 -0
  108. package/dist/lib/MissingIcon.js.map +1 -0
  109. package/dist/lib/assets/language-icons/c.d.ts +3 -0
  110. package/dist/lib/assets/language-icons/c.js +4 -0
  111. package/dist/lib/assets/language-icons/c.js.map +1 -0
  112. package/dist/lib/assets/language-icons/commonlisp.d.ts +3 -0
  113. package/dist/lib/assets/language-icons/commonlisp.js +4 -0
  114. package/dist/lib/assets/language-icons/commonlisp.js.map +1 -0
  115. package/dist/lib/assets/language-icons/cpp.d.ts +3 -0
  116. package/dist/lib/assets/language-icons/cpp.js +4 -0
  117. package/dist/lib/assets/language-icons/cpp.js.map +1 -0
  118. package/dist/lib/assets/language-icons/csharp.d.ts +3 -0
  119. package/dist/lib/assets/language-icons/csharp.js +4 -0
  120. package/dist/lib/assets/language-icons/csharp.js.map +1 -0
  121. package/dist/lib/assets/language-icons/css.d.ts +3 -0
  122. package/dist/lib/assets/language-icons/css.js +4 -0
  123. package/dist/lib/assets/language-icons/css.js.map +1 -0
  124. package/dist/lib/assets/language-icons/dart.d.ts +3 -0
  125. package/dist/lib/assets/language-icons/dart.js +4 -0
  126. package/dist/lib/assets/language-icons/dart.js.map +1 -0
  127. package/dist/lib/assets/language-icons/elixir.d.ts +3 -0
  128. package/dist/lib/assets/language-icons/elixir.js +4 -0
  129. package/dist/lib/assets/language-icons/elixir.js.map +1 -0
  130. package/dist/lib/assets/language-icons/go.d.ts +3 -0
  131. package/dist/lib/assets/language-icons/go.js +4 -0
  132. package/dist/lib/assets/language-icons/go.js.map +1 -0
  133. package/dist/lib/assets/language-icons/graphql.d.ts +3 -0
  134. package/dist/lib/assets/language-icons/graphql.js +4 -0
  135. package/dist/lib/assets/language-icons/graphql.js.map +1 -0
  136. package/dist/lib/assets/language-icons/html.d.ts +3 -0
  137. package/dist/lib/assets/language-icons/html.js +4 -0
  138. package/dist/lib/assets/language-icons/html.js.map +1 -0
  139. package/dist/lib/assets/language-icons/java.d.ts +3 -0
  140. package/dist/lib/assets/language-icons/java.js +4 -0
  141. package/dist/lib/assets/language-icons/java.js.map +1 -0
  142. package/dist/lib/assets/language-icons/javascript.d.ts +3 -0
  143. package/dist/lib/assets/language-icons/javascript.js +4 -0
  144. package/dist/lib/assets/language-icons/javascript.js.map +1 -0
  145. package/dist/lib/assets/language-icons/json.d.ts +3 -0
  146. package/dist/lib/assets/language-icons/json.js +4 -0
  147. package/dist/lib/assets/language-icons/json.js.map +1 -0
  148. package/dist/lib/assets/language-icons/kotlin.d.ts +3 -0
  149. package/dist/lib/assets/language-icons/kotlin.js +4 -0
  150. package/dist/lib/assets/language-icons/kotlin.js.map +1 -0
  151. package/dist/lib/assets/language-icons/markdown.d.ts +3 -0
  152. package/dist/lib/assets/language-icons/markdown.js +4 -0
  153. package/dist/lib/assets/language-icons/markdown.js.map +1 -0
  154. package/dist/lib/assets/language-icons/mdx.d.ts +3 -0
  155. package/dist/lib/assets/language-icons/mdx.js +4 -0
  156. package/dist/lib/assets/language-icons/mdx.js.map +1 -0
  157. package/dist/lib/assets/language-icons/objectivec.d.ts +3 -0
  158. package/dist/lib/assets/language-icons/objectivec.js +4 -0
  159. package/dist/lib/assets/language-icons/objectivec.js.map +1 -0
  160. package/dist/lib/assets/language-icons/ocaml.d.ts +3 -0
  161. package/dist/lib/assets/language-icons/ocaml.js +4 -0
  162. package/dist/lib/assets/language-icons/ocaml.js.map +1 -0
  163. package/dist/lib/assets/language-icons/php.d.ts +3 -0
  164. package/dist/lib/assets/language-icons/php.js +4 -0
  165. package/dist/lib/assets/language-icons/php.js.map +1 -0
  166. package/dist/lib/assets/language-icons/powershell.d.ts +3 -0
  167. package/dist/lib/assets/language-icons/powershell.js +4 -0
  168. package/dist/lib/assets/language-icons/powershell.js.map +1 -0
  169. package/dist/lib/assets/language-icons/python.d.ts +3 -0
  170. package/dist/lib/assets/language-icons/python.js +4 -0
  171. package/dist/lib/assets/language-icons/python.js.map +1 -0
  172. package/dist/lib/assets/language-icons/react.d.ts +3 -0
  173. package/dist/lib/assets/language-icons/react.js +4 -0
  174. package/dist/lib/assets/language-icons/react.js.map +1 -0
  175. package/dist/lib/assets/language-icons/ruby.d.ts +3 -0
  176. package/dist/lib/assets/language-icons/ruby.js +4 -0
  177. package/dist/lib/assets/language-icons/ruby.js.map +1 -0
  178. package/dist/lib/assets/language-icons/rust.d.ts +3 -0
  179. package/dist/lib/assets/language-icons/rust.js +4 -0
  180. package/dist/lib/assets/language-icons/rust.js.map +1 -0
  181. package/dist/lib/assets/language-icons/scala.d.ts +3 -0
  182. package/dist/lib/assets/language-icons/scala.js +4 -0
  183. package/dist/lib/assets/language-icons/scala.js.map +1 -0
  184. package/dist/lib/assets/language-icons/shell.d.ts +3 -0
  185. package/dist/lib/assets/language-icons/shell.js +4 -0
  186. package/dist/lib/assets/language-icons/shell.js.map +1 -0
  187. package/dist/lib/assets/language-icons/swift.d.ts +3 -0
  188. package/dist/lib/assets/language-icons/swift.js +4 -0
  189. package/dist/lib/assets/language-icons/swift.js.map +1 -0
  190. package/dist/lib/assets/language-icons/toml.d.ts +3 -0
  191. package/dist/lib/assets/language-icons/toml.js +4 -0
  192. package/dist/lib/assets/language-icons/toml.js.map +1 -0
  193. package/dist/lib/assets/language-icons/typescript.d.ts +3 -0
  194. package/dist/lib/assets/language-icons/typescript.js +4 -0
  195. package/dist/lib/assets/language-icons/typescript.js.map +1 -0
  196. package/dist/lib/assets/language-icons/xml.d.ts +3 -0
  197. package/dist/lib/assets/language-icons/xml.js +4 -0
  198. package/dist/lib/assets/language-icons/xml.js.map +1 -0
  199. package/dist/lib/assets/language-icons/yaml.d.ts +3 -0
  200. package/dist/lib/assets/language-icons/yaml.js +4 -0
  201. package/dist/lib/assets/language-icons/yaml.js.map +1 -0
  202. package/dist/lib/assets/language-icons/zig.d.ts +3 -0
  203. package/dist/lib/assets/language-icons/zig.js +4 -0
  204. package/dist/lib/assets/language-icons/zig.js.map +1 -0
  205. package/dist/lib/auth/issuer.d.ts +2 -0
  206. package/dist/lib/auth/issuer.js +40 -0
  207. package/dist/lib/auth/issuer.js.map +1 -0
  208. package/dist/lib/auth/issuer.test.js +95 -0
  209. package/dist/lib/auth/issuer.test.js.map +1 -0
  210. package/dist/lib/authentication/AuthenticationPlugin.d.ts +6 -4
  211. package/dist/lib/authentication/AuthenticationPlugin.js +4 -1
  212. package/dist/lib/authentication/AuthenticationPlugin.js.map +1 -1
  213. package/dist/lib/authentication/authentication.d.ts +22 -15
  214. package/dist/lib/authentication/components/CallbackHandler.js +27 -31
  215. package/dist/lib/authentication/components/CallbackHandler.js.map +1 -1
  216. package/dist/lib/authentication/components/OAuthErrorPage.d.ts +3 -0
  217. package/dist/lib/authentication/components/OAuthErrorPage.js +99 -0
  218. package/dist/lib/authentication/components/OAuthErrorPage.js.map +1 -0
  219. package/dist/lib/authentication/components/SignIn.d.ts +1 -1
  220. package/dist/lib/authentication/components/SignIn.js +12 -7
  221. package/dist/lib/authentication/components/SignIn.js.map +1 -1
  222. package/dist/lib/authentication/components/SignOut.js +6 -6
  223. package/dist/lib/authentication/components/SignOut.js.map +1 -1
  224. package/dist/lib/authentication/components/SignUp.d.ts +1 -1
  225. package/dist/lib/authentication/components/SignUp.js +8 -5
  226. package/dist/lib/authentication/components/SignUp.js.map +1 -1
  227. package/dist/lib/authentication/errors.d.ts +6 -12
  228. package/dist/lib/authentication/errors.js +2 -1
  229. package/dist/lib/authentication/errors.js.map +1 -1
  230. package/dist/lib/authentication/hook.d.ts +15 -5
  231. package/dist/lib/authentication/hook.js +19 -7
  232. package/dist/lib/authentication/hook.js.map +1 -1
  233. package/dist/lib/authentication/providers/auth0.d.ts +2 -2
  234. package/dist/lib/authentication/providers/auth0.js +25 -14
  235. package/dist/lib/authentication/providers/auth0.js.map +1 -1
  236. package/dist/lib/authentication/providers/azureb2c.d.ts +28 -0
  237. package/dist/lib/authentication/providers/azureb2c.js +147 -0
  238. package/dist/lib/authentication/providers/azureb2c.js.map +1 -0
  239. package/dist/lib/authentication/providers/clerk.d.ts +2 -2
  240. package/dist/lib/authentication/providers/clerk.js +111 -49
  241. package/dist/lib/authentication/providers/clerk.js.map +1 -1
  242. package/dist/lib/authentication/providers/firebase.d.ts +4 -0
  243. package/dist/lib/authentication/providers/firebase.js +222 -0
  244. package/dist/lib/authentication/providers/firebase.js.map +1 -0
  245. package/dist/lib/authentication/providers/openid.d.ts +29 -24
  246. package/dist/lib/authentication/providers/openid.js +115 -74
  247. package/dist/lib/authentication/providers/openid.js.map +1 -1
  248. package/dist/lib/authentication/providers/supabase/SupabaseAuthUI.d.ts +8 -0
  249. package/dist/lib/authentication/providers/supabase/SupabaseAuthUI.js +39 -0
  250. package/dist/lib/authentication/providers/supabase/SupabaseAuthUI.js.map +1 -0
  251. package/dist/lib/authentication/providers/supabase.d.ts +4 -0
  252. package/dist/lib/authentication/providers/supabase.js +108 -0
  253. package/dist/lib/authentication/providers/supabase.js.map +1 -0
  254. package/dist/lib/authentication/state.d.ts +22 -19
  255. package/dist/lib/authentication/state.js +35 -7
  256. package/dist/lib/authentication/state.js.map +1 -1
  257. package/dist/lib/authentication/ui/ZudokuAuthUi.d.ts +26 -0
  258. package/dist/lib/authentication/ui/ZudokuAuthUi.js +139 -0
  259. package/dist/lib/authentication/ui/ZudokuAuthUi.js.map +1 -0
  260. package/dist/lib/authentication/ui/icons/Apple.d.ts +3 -0
  261. package/dist/lib/authentication/ui/icons/Apple.js +4 -0
  262. package/dist/lib/authentication/ui/icons/Apple.js.map +1 -0
  263. package/dist/lib/authentication/ui/icons/Facebook.d.ts +3 -0
  264. package/dist/lib/authentication/ui/icons/Facebook.js +4 -0
  265. package/dist/lib/authentication/ui/icons/Facebook.js.map +1 -0
  266. package/dist/lib/authentication/ui/icons/Github.d.ts +3 -0
  267. package/dist/lib/authentication/ui/icons/Github.js +4 -0
  268. package/dist/lib/authentication/ui/icons/Github.js.map +1 -0
  269. package/dist/lib/authentication/ui/icons/Google.d.ts +3 -0
  270. package/dist/lib/authentication/ui/icons/Google.js +4 -0
  271. package/dist/lib/authentication/ui/icons/Google.js.map +1 -0
  272. package/dist/lib/authentication/ui/icons/Microsoft.d.ts +3 -0
  273. package/dist/lib/authentication/ui/icons/Microsoft.js +4 -0
  274. package/dist/lib/authentication/ui/icons/Microsoft.js.map +1 -0
  275. package/dist/lib/authentication/ui/icons/X.d.ts +3 -0
  276. package/dist/lib/authentication/ui/icons/X.js +4 -0
  277. package/dist/lib/authentication/ui/icons/X.js.map +1 -0
  278. package/dist/lib/authentication/use-broadcast/shared.d.ts +48 -0
  279. package/dist/lib/authentication/use-broadcast/shared.js +243 -0
  280. package/dist/lib/authentication/use-broadcast/shared.js.map +1 -0
  281. package/dist/lib/authentication/use-broadcast/useBroadcast.d.ts +24 -0
  282. package/dist/lib/authentication/use-broadcast/useBroadcast.js +106 -0
  283. package/dist/lib/authentication/use-broadcast/useBroadcast.js.map +1 -0
  284. package/dist/lib/components/AnchorLink.d.ts +2 -2
  285. package/dist/lib/components/AnchorLink.js +9 -5
  286. package/dist/lib/components/AnchorLink.js.map +1 -1
  287. package/dist/lib/components/Autocomplete.d.ts +15 -0
  288. package/dist/lib/components/Autocomplete.js +51 -0
  289. package/dist/lib/components/Autocomplete.js.map +1 -0
  290. package/dist/lib/components/Banner.js +2 -2
  291. package/dist/lib/components/Banner.js.map +1 -1
  292. package/dist/lib/components/Bootstrap.d.ts +5 -3
  293. package/dist/lib/components/Bootstrap.js +13 -6
  294. package/dist/lib/components/Bootstrap.js.map +1 -1
  295. package/dist/lib/components/BuildCheck.d.ts +5 -0
  296. package/dist/lib/components/BuildCheck.js +45 -0
  297. package/dist/lib/components/BuildCheck.js.map +1 -0
  298. package/dist/lib/components/CategoryHeading.js +1 -1
  299. package/dist/lib/components/CategoryHeading.js.map +1 -1
  300. package/dist/lib/components/ClientOnly.d.ts +4 -2
  301. package/dist/lib/components/ClientOnly.js +1 -1
  302. package/dist/lib/components/ClientOnly.js.map +1 -1
  303. package/dist/lib/components/DeveloperHint.js +2 -1
  304. package/dist/lib/components/DeveloperHint.js.map +1 -1
  305. package/dist/lib/components/ErrorPage.js +2 -2
  306. package/dist/lib/components/ErrorPage.js.map +1 -1
  307. package/dist/lib/components/Footer.d.ts +1 -0
  308. package/dist/lib/components/Footer.js +32 -0
  309. package/dist/lib/components/Footer.js.map +1 -0
  310. package/dist/lib/components/Framed.d.ts +7 -0
  311. package/dist/lib/components/Framed.js +26 -0
  312. package/dist/lib/components/Framed.js.map +1 -0
  313. package/dist/lib/components/Header.js +32 -14
  314. package/dist/lib/components/Header.js.map +1 -1
  315. package/dist/lib/components/Heading.d.ts +10 -6
  316. package/dist/lib/components/Heading.js +4 -3
  317. package/dist/lib/components/Heading.js.map +1 -1
  318. package/dist/lib/components/InlineCode.d.ts +2 -1
  319. package/dist/lib/components/InlineCode.js +2 -9
  320. package/dist/lib/components/InlineCode.js.map +1 -1
  321. package/dist/lib/components/LanguageIcon.d.ts +3 -0
  322. package/dist/lib/components/LanguageIcon.js +163 -0
  323. package/dist/lib/components/LanguageIcon.js.map +1 -0
  324. package/dist/lib/components/Layout.js +11 -24
  325. package/dist/lib/components/Layout.js.map +1 -1
  326. package/dist/lib/components/Main.d.ts +2 -0
  327. package/dist/lib/components/Main.js +18 -0
  328. package/dist/lib/components/Main.js.map +1 -0
  329. package/dist/lib/components/Markdown.d.ts +4 -3
  330. package/dist/lib/components/Markdown.js +14 -14
  331. package/dist/lib/components/Markdown.js.map +1 -1
  332. package/dist/lib/components/Mermaid.d.ts +7 -0
  333. package/dist/lib/components/Mermaid.js +42 -0
  334. package/dist/lib/components/Mermaid.js.map +1 -0
  335. package/dist/lib/components/Meta.d.ts +2 -0
  336. package/dist/lib/components/Meta.js +11 -0
  337. package/dist/lib/components/Meta.js.map +1 -0
  338. package/dist/lib/components/MobileTopNavigation.js +20 -7
  339. package/dist/lib/components/MobileTopNavigation.js.map +1 -1
  340. package/dist/lib/components/NotFoundPage.js +3 -3
  341. package/dist/lib/components/NotFoundPage.js.map +1 -1
  342. package/dist/lib/components/PageProgress.d.ts +1 -0
  343. package/dist/lib/components/PageProgress.js +20 -0
  344. package/dist/lib/components/PageProgress.js.map +1 -0
  345. package/dist/lib/components/PagefindSearchMeta.d.ts +8 -0
  346. package/dist/lib/components/PagefindSearchMeta.js +7 -0
  347. package/dist/lib/components/PagefindSearchMeta.js.map +1 -0
  348. package/dist/lib/components/Pagination.d.ts +11 -0
  349. package/dist/lib/components/Pagination.js +10 -0
  350. package/dist/lib/components/Pagination.js.map +1 -0
  351. package/dist/lib/components/PathRenderer.d.ts +11 -0
  352. package/dist/lib/components/PathRenderer.js +28 -0
  353. package/dist/lib/components/PathRenderer.js.map +1 -0
  354. package/dist/lib/components/Search.d.ts +3 -1
  355. package/dist/lib/components/Search.js +10 -4
  356. package/dist/lib/components/Search.js.map +1 -1
  357. package/dist/lib/components/Slot.d.ts +17 -0
  358. package/dist/lib/components/Slot.js +24 -0
  359. package/dist/lib/components/Slot.js.map +1 -0
  360. package/dist/lib/components/Slot.test.d.ts +1 -0
  361. package/dist/lib/components/Slot.test.js +172 -0
  362. package/dist/lib/components/Slot.test.js.map +1 -0
  363. package/dist/lib/components/StatusPage.d.ts +7 -0
  364. package/dist/lib/components/StatusPage.js +75 -0
  365. package/dist/lib/components/StatusPage.js.map +1 -0
  366. package/dist/lib/components/ThemeSwitch.d.ts +1 -0
  367. package/dist/lib/components/ThemeSwitch.js +16 -0
  368. package/dist/lib/components/ThemeSwitch.js.map +1 -0
  369. package/dist/lib/components/TopNavigation.d.ts +7 -0
  370. package/dist/lib/components/TopNavigation.js +60 -9
  371. package/dist/lib/components/TopNavigation.js.map +1 -1
  372. package/dist/lib/components/Typography.d.ts +5 -0
  373. package/dist/lib/components/Typography.js +8 -0
  374. package/dist/lib/components/Typography.js.map +1 -0
  375. package/dist/lib/components/Zudoku.d.ts +7 -0
  376. package/dist/lib/components/Zudoku.js +55 -0
  377. package/dist/lib/components/Zudoku.js.map +1 -0
  378. package/dist/lib/components/cache.d.ts +15 -0
  379. package/dist/lib/components/cache.js +18 -0
  380. package/dist/lib/components/cache.js.map +1 -0
  381. package/dist/lib/components/context/BypassProtectedRoutesContext.d.ts +1 -0
  382. package/dist/lib/components/context/BypassProtectedRoutesContext.js +3 -0
  383. package/dist/lib/components/context/BypassProtectedRoutesContext.js.map +1 -0
  384. package/dist/lib/components/context/ComponentsContext.js.map +1 -1
  385. package/dist/lib/components/context/RouterEventsEmitter.d.ts +1 -0
  386. package/dist/lib/components/context/RouterEventsEmitter.js +17 -0
  387. package/dist/lib/components/context/RouterEventsEmitter.js.map +1 -0
  388. package/dist/lib/components/context/SlotProvider.d.ts +26 -0
  389. package/dist/lib/components/context/SlotProvider.js +83 -0
  390. package/dist/lib/components/context/SlotProvider.js.map +1 -0
  391. package/dist/lib/components/context/ViewportAnchorContext.d.ts +2 -4
  392. package/dist/lib/components/context/ViewportAnchorContext.js +30 -24
  393. package/dist/lib/components/context/ViewportAnchorContext.js.map +1 -1
  394. package/dist/lib/components/context/ZudokuContext.d.ts +9 -17
  395. package/dist/lib/components/context/ZudokuContext.js +74 -27
  396. package/dist/lib/components/context/ZudokuContext.js.map +1 -1
  397. package/dist/lib/components/context/ZudokuProvider.d.ts +2 -2
  398. package/dist/lib/components/context/ZudokuProvider.js +2 -1
  399. package/dist/lib/components/context/ZudokuProvider.js.map +1 -1
  400. package/dist/lib/components/index.d.ts +65 -23
  401. package/dist/lib/components/index.js +31 -15
  402. package/dist/lib/components/index.js.map +1 -1
  403. package/dist/lib/components/navigation/Navigation.d.ts +5 -0
  404. package/dist/lib/components/navigation/Navigation.js +12 -0
  405. package/dist/lib/components/navigation/Navigation.js.map +1 -0
  406. package/dist/lib/components/navigation/NavigationBadge.d.ts +26 -0
  407. package/dist/lib/components/navigation/NavigationBadge.js +26 -0
  408. package/dist/lib/components/navigation/NavigationBadge.js.map +1 -0
  409. package/dist/lib/components/navigation/NavigationCategory.d.ts +5 -0
  410. package/dist/lib/components/navigation/NavigationCategory.js +66 -0
  411. package/dist/lib/components/navigation/NavigationCategory.js.map +1 -0
  412. package/dist/lib/components/navigation/NavigationItem.d.ts +6 -0
  413. package/dist/lib/components/navigation/NavigationItem.js +55 -0
  414. package/dist/lib/components/navigation/NavigationItem.js.map +1 -0
  415. package/dist/lib/components/navigation/NavigationWrapper.d.ts +7 -0
  416. package/dist/lib/components/navigation/NavigationWrapper.js +21 -0
  417. package/dist/lib/components/navigation/NavigationWrapper.js.map +1 -0
  418. package/dist/lib/components/navigation/PoweredByZudoku.d.ts +3 -0
  419. package/dist/lib/components/navigation/PoweredByZudoku.js +7 -0
  420. package/dist/lib/components/navigation/PoweredByZudoku.js.map +1 -0
  421. package/dist/lib/components/navigation/Toc.js +46 -0
  422. package/dist/lib/components/navigation/Toc.js.map +1 -0
  423. package/dist/lib/components/navigation/ZudokuLogo.d.ts +6 -0
  424. package/dist/lib/components/navigation/ZudokuLogo.js +5 -0
  425. package/dist/lib/components/navigation/ZudokuLogo.js.map +1 -0
  426. package/dist/lib/components/navigation/ZuploLogo.d.ts +3 -0
  427. package/dist/lib/components/navigation/ZuploLogo.js +4 -0
  428. package/dist/lib/components/navigation/ZuploLogo.js.map +1 -0
  429. package/dist/lib/components/navigation/utils.d.ts +16 -8
  430. package/dist/lib/components/navigation/utils.js +60 -33
  431. package/dist/lib/components/navigation/utils.js.map +1 -1
  432. package/dist/lib/core/RouteGuard.d.ts +2 -0
  433. package/dist/lib/core/RouteGuard.js +44 -0
  434. package/dist/lib/core/RouteGuard.js.map +1 -0
  435. package/dist/lib/core/ZudokuContext.d.ts +116 -0
  436. package/dist/lib/core/ZudokuContext.js +106 -0
  437. package/dist/lib/core/ZudokuContext.js.map +1 -0
  438. package/dist/lib/core/__internal.d.ts +37 -0
  439. package/dist/lib/core/__internal.js +26 -0
  440. package/dist/lib/core/__internal.js.map +1 -0
  441. package/dist/lib/core/plugins.d.ts +37 -18
  442. package/dist/lib/core/plugins.js +4 -0
  443. package/dist/lib/core/plugins.js.map +1 -1
  444. package/dist/lib/core/router.d.ts +1 -0
  445. package/dist/lib/core/router.js +2 -0
  446. package/dist/lib/core/router.js.map +1 -0
  447. package/dist/lib/errors/ErrorAlert.d.ts +1 -1
  448. package/dist/lib/errors/ErrorAlert.js +12 -4
  449. package/dist/lib/errors/ErrorAlert.js.map +1 -1
  450. package/dist/lib/errors/RouterError.d.ts +3 -1
  451. package/dist/lib/errors/RouterError.js +4 -3
  452. package/dist/lib/errors/RouterError.js.map +1 -1
  453. package/dist/lib/errors/TopLevelError.d.ts +2 -2
  454. package/dist/lib/errors/TopLevelError.js +1 -2
  455. package/dist/lib/errors/TopLevelError.js.map +1 -1
  456. package/dist/lib/hooks/index.d.ts +28 -0
  457. package/dist/lib/hooks/index.js +16 -0
  458. package/dist/lib/hooks/index.js.map +1 -0
  459. package/dist/lib/hooks/useEvent.d.ts +11 -0
  460. package/dist/lib/hooks/useEvent.js +19 -0
  461. package/dist/lib/hooks/useEvent.js.map +1 -0
  462. package/dist/lib/hooks/useEvent.test.d.ts +1 -0
  463. package/dist/lib/hooks/useEvent.test.js +102 -0
  464. package/dist/lib/hooks/useEvent.test.js.map +1 -0
  465. package/dist/lib/hooks/useHotkey.d.ts +4 -0
  466. package/dist/lib/hooks/useHotkey.js +58 -0
  467. package/dist/lib/hooks/useHotkey.js.map +1 -0
  468. package/dist/lib/icons.d.ts +1 -0
  469. package/dist/lib/icons.js +1 -0
  470. package/dist/lib/icons.js.map +1 -1
  471. package/dist/lib/oas/graphql/circular.d.ts +3 -0
  472. package/dist/lib/oas/graphql/circular.js +43 -0
  473. package/dist/lib/oas/graphql/circular.js.map +1 -0
  474. package/dist/lib/oas/graphql/index.d.ts +25 -1
  475. package/dist/lib/oas/graphql/index.js +253 -70
  476. package/dist/lib/oas/graphql/index.js.map +1 -1
  477. package/dist/lib/oas/parser/dereference/index.js +10 -4
  478. package/dist/lib/oas/parser/dereference/index.js.map +1 -1
  479. package/dist/lib/oas/parser/dereference/resolveRef.js +3 -3
  480. package/dist/lib/oas/parser/dereference/resolveRef.js.map +1 -1
  481. package/dist/lib/oas/parser/index.d.ts +9 -3
  482. package/dist/lib/oas/parser/index.js +12 -24
  483. package/dist/lib/oas/parser/index.js.map +1 -1
  484. package/dist/lib/oas/parser/upgrade/index.d.ts +3 -2
  485. package/dist/lib/oas/parser/upgrade/index.js +84 -31
  486. package/dist/lib/oas/parser/upgrade/index.js.map +1 -1
  487. package/dist/lib/plugins/api-catalog/Catalog.d.ts +4 -0
  488. package/dist/lib/plugins/api-catalog/Catalog.js +32 -0
  489. package/dist/lib/plugins/api-catalog/Catalog.js.map +1 -0
  490. package/dist/lib/plugins/api-catalog/index.d.ts +31 -0
  491. package/dist/lib/plugins/api-catalog/index.js +46 -0
  492. package/dist/lib/plugins/api-catalog/index.js.map +1 -0
  493. package/dist/lib/plugins/api-keys/CreateApiKey.d.ts +3 -2
  494. package/dist/lib/plugins/api-keys/CreateApiKey.js +26 -8
  495. package/dist/lib/plugins/api-keys/CreateApiKey.js.map +1 -1
  496. package/dist/lib/plugins/api-keys/CreateApiKeyDialog.d.ts +11 -0
  497. package/dist/lib/plugins/api-keys/CreateApiKeyDialog.js +9 -0
  498. package/dist/lib/plugins/api-keys/CreateApiKeyDialog.js.map +1 -0
  499. package/dist/lib/plugins/api-keys/ProtectedRoute.js +5 -2
  500. package/dist/lib/plugins/api-keys/ProtectedRoute.js.map +1 -1
  501. package/dist/lib/plugins/api-keys/SettingsApiKeys.d.ts +1 -1
  502. package/dist/lib/plugins/api-keys/SettingsApiKeys.js +146 -27
  503. package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
  504. package/dist/lib/plugins/api-keys/index.d.ts +36 -18
  505. package/dist/lib/plugins/api-keys/index.js +74 -33
  506. package/dist/lib/plugins/api-keys/index.js.map +1 -1
  507. package/dist/lib/plugins/custom-pages/index.d.ts +8 -0
  508. package/dist/lib/plugins/custom-pages/index.js +19 -0
  509. package/dist/lib/plugins/custom-pages/index.js.map +1 -0
  510. package/dist/lib/plugins/markdown/MdxPage.d.ts +10 -2
  511. package/dist/lib/plugins/markdown/MdxPage.js +67 -10
  512. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  513. package/dist/lib/plugins/markdown/assets/ChatGPTLogo.d.ts +2 -0
  514. package/dist/lib/plugins/markdown/assets/ChatGPTLogo.js +3 -0
  515. package/dist/lib/plugins/markdown/assets/ChatGPTLogo.js.map +1 -0
  516. package/dist/lib/plugins/markdown/assets/ClaudeLogo.d.ts +2 -0
  517. package/dist/lib/plugins/markdown/assets/ClaudeLogo.js +3 -0
  518. package/dist/lib/plugins/markdown/assets/ClaudeLogo.js.map +1 -0
  519. package/dist/lib/plugins/markdown/index.d.ts +19 -8
  520. package/dist/lib/plugins/markdown/index.js +14 -3
  521. package/dist/lib/plugins/markdown/index.js.map +1 -1
  522. package/dist/lib/plugins/openapi/CollapsibleCode.d.ts +6 -0
  523. package/dist/lib/plugins/openapi/CollapsibleCode.js +26 -0
  524. package/dist/lib/plugins/openapi/CollapsibleCode.js.map +1 -0
  525. package/dist/lib/plugins/openapi/ColorizedParam.d.ts +10 -2
  526. package/dist/lib/plugins/openapi/ColorizedParam.js +32 -14
  527. package/dist/lib/plugins/openapi/ColorizedParam.js.map +1 -1
  528. package/dist/lib/plugins/openapi/DownloadSchemaButton.d.ts +3 -0
  529. package/dist/lib/plugins/openapi/DownloadSchemaButton.js +47 -0
  530. package/dist/lib/plugins/openapi/DownloadSchemaButton.js.map +1 -0
  531. package/dist/lib/plugins/openapi/Endpoint.js +13 -19
  532. package/dist/lib/plugins/openapi/Endpoint.js.map +1 -1
  533. package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.d.ts +5 -0
  534. package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.js +10 -0
  535. package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.js.map +1 -0
  536. package/dist/lib/plugins/openapi/MCPEndpoint.d.ts +5 -0
  537. package/dist/lib/plugins/openapi/MCPEndpoint.js +56 -0
  538. package/dist/lib/plugins/openapi/MCPEndpoint.js.map +1 -0
  539. package/dist/lib/plugins/openapi/OasProvider.d.ts +8 -0
  540. package/dist/lib/plugins/openapi/OasProvider.js +39 -0
  541. package/dist/lib/plugins/openapi/OasProvider.js.map +1 -0
  542. package/dist/lib/plugins/openapi/OperationList.d.ts +5 -4
  543. package/dist/lib/plugins/openapi/OperationList.js +141 -31
  544. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  545. package/dist/lib/plugins/openapi/OperationListItem.d.ts +6 -3
  546. package/dist/lib/plugins/openapi/OperationListItem.js +22 -8
  547. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  548. package/dist/lib/plugins/openapi/ParamInfos.d.ts +6 -0
  549. package/dist/lib/plugins/openapi/ParamInfos.js +47 -0
  550. package/dist/lib/plugins/openapi/ParamInfos.js.map +1 -0
  551. package/dist/lib/plugins/openapi/ParameterList.d.ts +4 -3
  552. package/dist/lib/plugins/openapi/ParameterList.js +10 -6
  553. package/dist/lib/plugins/openapi/ParameterList.js.map +1 -1
  554. package/dist/lib/plugins/openapi/ParameterListItem.d.ts +2 -3
  555. package/dist/lib/plugins/openapi/ParameterListItem.js +30 -1
  556. package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
  557. package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.d.ts +5 -4
  558. package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js +15 -4
  559. package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js.map +1 -1
  560. package/dist/lib/plugins/openapi/RequestBodySidecarBox.d.ts +11 -5
  561. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js +8 -9
  562. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js.map +1 -1
  563. package/dist/lib/plugins/openapi/ResponsesSidecarBox.d.ts +6 -6
  564. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +28 -8
  565. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
  566. package/dist/lib/plugins/openapi/SchemaList.d.ts +1 -0
  567. package/dist/lib/plugins/openapi/SchemaList.js +53 -0
  568. package/dist/lib/plugins/openapi/SchemaList.js.map +1 -0
  569. package/dist/lib/plugins/openapi/Sidecar.d.ts +6 -5
  570. package/dist/lib/plugins/openapi/Sidecar.js +121 -118
  571. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  572. package/dist/lib/plugins/openapi/SidecarBox.js +4 -4
  573. package/dist/lib/plugins/openapi/SidecarBox.js.map +1 -1
  574. package/dist/lib/plugins/openapi/SidecarExamples.d.ts +14 -0
  575. package/dist/lib/plugins/openapi/SidecarExamples.js +57 -0
  576. package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -0
  577. package/dist/lib/plugins/openapi/SimpleSelect.js +1 -1
  578. package/dist/lib/plugins/openapi/SimpleSelect.js.map +1 -1
  579. package/dist/lib/plugins/openapi/StaggeredRender.d.ts +1 -1
  580. package/dist/lib/plugins/openapi/client/GraphQLClient.d.ts +8 -0
  581. package/dist/lib/plugins/openapi/client/GraphQLClient.js +43 -0
  582. package/dist/lib/plugins/openapi/client/GraphQLClient.js.map +1 -0
  583. package/dist/lib/plugins/openapi/client/GraphQLContext.d.ts +7 -0
  584. package/dist/lib/plugins/openapi/client/GraphQLContext.js +5 -0
  585. package/dist/lib/plugins/openapi/client/GraphQLContext.js.map +1 -0
  586. package/dist/lib/plugins/openapi/client/createServer.d.ts +3 -1
  587. package/dist/lib/plugins/openapi/client/createServer.js +6 -4
  588. package/dist/lib/plugins/openapi/client/createServer.js.map +1 -1
  589. package/dist/lib/plugins/openapi/client/useCreateQuery.d.ts +14 -0
  590. package/dist/lib/plugins/openapi/client/useCreateQuery.js +20 -0
  591. package/dist/lib/plugins/openapi/client/useCreateQuery.js.map +1 -0
  592. package/dist/lib/plugins/openapi/components/ConstValue.d.ts +5 -0
  593. package/dist/lib/plugins/openapi/components/ConstValue.js +6 -0
  594. package/dist/lib/plugins/openapi/components/ConstValue.js.map +1 -0
  595. package/dist/lib/plugins/openapi/components/EnumValues.d.ts +5 -0
  596. package/dist/lib/plugins/openapi/components/EnumValues.js +15 -0
  597. package/dist/lib/plugins/openapi/components/EnumValues.js.map +1 -0
  598. package/dist/lib/plugins/openapi/components/NonHighlightedCode.d.ts +4 -0
  599. package/dist/lib/plugins/openapi/components/NonHighlightedCode.js +5 -0
  600. package/dist/lib/plugins/openapi/components/NonHighlightedCode.js.map +1 -0
  601. package/dist/lib/plugins/openapi/components/ResponseContent.d.ts +12 -0
  602. package/dist/lib/plugins/openapi/components/ResponseContent.js +20 -0
  603. package/dist/lib/plugins/openapi/components/ResponseContent.js.map +1 -0
  604. package/dist/lib/plugins/openapi/components/SelectOnClick.d.ts +5 -0
  605. package/dist/lib/plugins/openapi/components/SelectOnClick.js +16 -0
  606. package/dist/lib/plugins/openapi/components/SelectOnClick.js.map +1 -0
  607. package/dist/lib/plugins/openapi/context.d.ts +3 -3
  608. package/dist/lib/plugins/openapi/graphql/fragment-masking.d.ts +3 -3
  609. package/dist/lib/plugins/openapi/graphql/fragment-masking.js +3 -4
  610. package/dist/lib/plugins/openapi/graphql/fragment-masking.js.map +1 -1
  611. package/dist/lib/plugins/openapi/graphql/gql.d.ts +8 -46
  612. package/dist/lib/plugins/openapi/graphql/gql.js +6 -13
  613. package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
  614. package/dist/lib/plugins/openapi/graphql/graphql.d.ts +152 -26
  615. package/dist/lib/plugins/openapi/graphql/graphql.js +250 -662
  616. package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
  617. package/dist/lib/plugins/openapi/index.d.ts +11 -8
  618. package/dist/lib/plugins/openapi/index.js +114 -110
  619. package/dist/lib/plugins/openapi/index.js.map +1 -1
  620. package/dist/lib/plugins/openapi/interfaces.d.ts +76 -5
  621. package/dist/lib/plugins/openapi/playground/BodyPanel.d.ts +5 -0
  622. package/dist/lib/plugins/openapi/playground/BodyPanel.js +78 -0
  623. package/dist/lib/plugins/openapi/playground/BodyPanel.js.map +1 -0
  624. package/dist/lib/plugins/openapi/playground/CollapsibleHeader.d.ts +8 -0
  625. package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js +11 -0
  626. package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js.map +1 -0
  627. package/dist/lib/plugins/openapi/playground/ExamplesDropdown.d.ts +6 -0
  628. package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js +9 -0
  629. package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js.map +1 -0
  630. package/dist/lib/plugins/openapi/playground/Headers.d.ts +5 -4
  631. package/dist/lib/plugins/openapi/playground/Headers.js +50 -9
  632. package/dist/lib/plugins/openapi/playground/Headers.js.map +1 -1
  633. package/dist/lib/plugins/openapi/playground/IdentityDialog.d.ts +11 -0
  634. package/dist/lib/plugins/openapi/playground/IdentityDialog.js +15 -0
  635. package/dist/lib/plugins/openapi/playground/IdentityDialog.js.map +1 -0
  636. package/dist/lib/plugins/openapi/playground/IdentitySelector.d.ts +7 -0
  637. package/dist/lib/plugins/openapi/playground/IdentitySelector.js +7 -0
  638. package/dist/lib/plugins/openapi/playground/IdentitySelector.js.map +1 -0
  639. package/dist/lib/plugins/openapi/playground/ParamsGrid.d.ts +17 -0
  640. package/dist/lib/plugins/openapi/playground/ParamsGrid.js +12 -0
  641. package/dist/lib/plugins/openapi/playground/ParamsGrid.js.map +1 -0
  642. package/dist/lib/plugins/openapi/playground/PathParams.d.ts +3 -2
  643. package/dist/lib/plugins/openapi/playground/PathParams.js +4 -8
  644. package/dist/lib/plugins/openapi/playground/PathParams.js.map +1 -1
  645. package/dist/lib/plugins/openapi/playground/Playground.d.ts +39 -2
  646. package/dist/lib/plugins/openapi/playground/Playground.js +213 -86
  647. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  648. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +6 -3
  649. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js.map +1 -1
  650. package/dist/lib/plugins/openapi/playground/QueryParams.d.ts +4 -4
  651. package/dist/lib/plugins/openapi/playground/QueryParams.js +22 -25
  652. package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
  653. package/dist/lib/plugins/openapi/playground/RequestLoginDialog.d.ts +8 -0
  654. package/dist/lib/plugins/openapi/playground/RequestLoginDialog.js +16 -0
  655. package/dist/lib/plugins/openapi/playground/RequestLoginDialog.js.map +1 -0
  656. package/dist/lib/plugins/openapi/playground/Spinner.d.ts +2 -0
  657. package/dist/lib/plugins/openapi/playground/Spinner.js +63 -0
  658. package/dist/lib/plugins/openapi/playground/Spinner.js.map +1 -0
  659. package/dist/lib/plugins/openapi/playground/fileUtils.d.ts +2 -0
  660. package/dist/lib/plugins/openapi/playground/fileUtils.js +22 -0
  661. package/dist/lib/plugins/openapi/playground/fileUtils.js.map +1 -0
  662. package/dist/lib/plugins/openapi/playground/rememberedIdentity.d.ts +19 -0
  663. package/dist/lib/plugins/openapi/playground/rememberedIdentity.js +11 -0
  664. package/dist/lib/plugins/openapi/playground/rememberedIdentity.js.map +1 -0
  665. package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.d.ts +8 -0
  666. package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.js +19 -0
  667. package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.js.map +1 -0
  668. package/dist/lib/plugins/openapi/playground/request-panel/UrlPath.d.ts +3 -0
  669. package/dist/lib/plugins/openapi/playground/request-panel/UrlPath.js +13 -0
  670. package/dist/lib/plugins/openapi/playground/request-panel/UrlPath.js.map +1 -0
  671. package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.d.ts +1 -0
  672. package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.js +12 -0
  673. package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.js.map +1 -0
  674. package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.d.ts +1 -0
  675. package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.js +540 -0
  676. package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.js.map +1 -0
  677. package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.d.ts +40 -0
  678. package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.js +205 -0
  679. package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.js.map +1 -0
  680. package/dist/lib/plugins/openapi/playground/result-panel/Highlight.d.ts +12 -0
  681. package/dist/lib/plugins/openapi/playground/result-panel/Highlight.js +11 -0
  682. package/dist/lib/plugins/openapi/playground/result-panel/Highlight.js.map +1 -0
  683. package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.d.ts +8 -0
  684. package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.js +71 -0
  685. package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.js.map +1 -0
  686. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.d.ts +14 -0
  687. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +117 -0
  688. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js.map +1 -0
  689. package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.d.ts +11 -0
  690. package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js +15 -0
  691. package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js.map +1 -0
  692. package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.d.ts +10 -0
  693. package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.js +32 -0
  694. package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.js.map +1 -0
  695. package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.test.d.ts +1 -0
  696. package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.test.js +56 -0
  697. package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.test.js.map +1 -0
  698. package/dist/lib/plugins/openapi/playground/useRememberSkipLoginDialog.d.ts +18 -0
  699. package/dist/lib/plugins/openapi/playground/useRememberSkipLoginDialog.js +12 -0
  700. package/dist/lib/plugins/openapi/playground/useRememberSkipLoginDialog.js.map +1 -0
  701. package/dist/lib/plugins/openapi/processors/removeExtensions.d.ts +8 -0
  702. package/dist/lib/plugins/openapi/processors/removeExtensions.js +16 -0
  703. package/dist/lib/plugins/openapi/processors/removeExtensions.js.map +1 -0
  704. package/dist/lib/plugins/openapi/processors/removeExtensions.test.d.ts +1 -0
  705. package/dist/lib/plugins/openapi/processors/removeExtensions.test.js +195 -0
  706. package/dist/lib/plugins/openapi/processors/removeExtensions.test.js.map +1 -0
  707. package/dist/lib/plugins/openapi/processors/removeParameters.d.ts +12 -0
  708. package/dist/lib/plugins/openapi/processors/removeParameters.js +66 -0
  709. package/dist/lib/plugins/openapi/processors/removeParameters.js.map +1 -0
  710. package/dist/lib/plugins/openapi/processors/removeParameters.test.d.ts +1 -0
  711. package/dist/lib/plugins/openapi/processors/removeParameters.test.js +160 -0
  712. package/dist/lib/plugins/openapi/processors/removeParameters.test.js.map +1 -0
  713. package/dist/lib/plugins/openapi/processors/removePaths.d.ts +13 -0
  714. package/dist/lib/plugins/openapi/processors/removePaths.js +33 -0
  715. package/dist/lib/plugins/openapi/processors/removePaths.js.map +1 -0
  716. package/dist/lib/plugins/openapi/processors/removePaths.test.d.ts +1 -0
  717. package/dist/lib/plugins/openapi/processors/removePaths.test.js +144 -0
  718. package/dist/lib/plugins/openapi/processors/removePaths.test.js.map +1 -0
  719. package/dist/lib/plugins/openapi/processors/traverse.d.ts +1 -0
  720. package/dist/lib/plugins/openapi/processors/traverse.js +2 -0
  721. package/dist/lib/plugins/openapi/processors/traverse.js.map +1 -0
  722. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.d.ts +4 -0
  723. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js +15 -0
  724. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js.map +1 -0
  725. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.d.ts +8 -0
  726. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js +45 -0
  727. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js.map +1 -0
  728. package/dist/lib/plugins/openapi/schema/SchemaView.d.ts +4 -3
  729. package/dist/lib/plugins/openapi/schema/SchemaView.js +59 -50
  730. package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
  731. package/dist/lib/plugins/openapi/schema/UnionView.d.ts +5 -0
  732. package/dist/lib/plugins/openapi/schema/UnionView.js +33 -0
  733. package/dist/lib/plugins/openapi/schema/UnionView.js.map +1 -0
  734. package/dist/lib/plugins/openapi/schema/union-helpers.d.ts +28 -0
  735. package/dist/lib/plugins/openapi/schema/union-helpers.js +71 -0
  736. package/dist/lib/plugins/openapi/schema/union-helpers.js.map +1 -0
  737. package/dist/lib/plugins/openapi/schema/utils.d.ts +8 -8
  738. package/dist/lib/plugins/openapi/schema/utils.js +16 -10
  739. package/dist/lib/plugins/openapi/schema/utils.js.map +1 -1
  740. package/dist/lib/plugins/openapi/state.d.ts +27 -0
  741. package/dist/lib/plugins/openapi/state.js +18 -0
  742. package/dist/lib/plugins/openapi/state.js.map +1 -0
  743. package/dist/lib/plugins/openapi/util/createHttpSnippet.d.ts +11 -0
  744. package/dist/lib/plugins/openapi/util/createHttpSnippet.js +89 -0
  745. package/dist/lib/plugins/openapi/util/createHttpSnippet.js.map +1 -0
  746. package/dist/lib/plugins/openapi/util/createNavigationCategory.d.ts +9 -0
  747. package/dist/lib/plugins/openapi/util/createNavigationCategory.js +25 -0
  748. package/dist/lib/plugins/openapi/util/createNavigationCategory.js.map +1 -0
  749. package/dist/lib/plugins/openapi/util/generateSchemaExample.d.ts +2 -3
  750. package/dist/lib/plugins/openapi/util/generateSchemaExample.js +77 -39
  751. package/dist/lib/plugins/openapi/util/generateSchemaExample.js.map +1 -1
  752. package/dist/lib/plugins/openapi/util/getRoutes.d.ts +15 -0
  753. package/dist/lib/plugins/openapi/util/getRoutes.js +144 -0
  754. package/dist/lib/plugins/openapi/util/getRoutes.js.map +1 -0
  755. package/dist/lib/plugins/openapi/util/methodColorMap.d.ts +2 -0
  756. package/dist/lib/plugins/openapi/util/methodColorMap.js +10 -0
  757. package/dist/lib/plugins/openapi/util/methodColorMap.js.map +1 -0
  758. package/dist/lib/plugins/openapi/util/methodToColor.d.ts +20 -0
  759. package/dist/lib/plugins/openapi/util/methodToColor.js +24 -0
  760. package/dist/lib/plugins/openapi/util/methodToColor.js.map +1 -0
  761. package/dist/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.d.ts +1 -0
  762. package/dist/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.js +27 -0
  763. package/dist/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.js.map +1 -0
  764. package/dist/lib/plugins/redirect/index.d.ts +4 -7
  765. package/dist/lib/plugins/redirect/index.js +2 -2
  766. package/dist/lib/plugins/redirect/index.js.map +1 -1
  767. package/dist/lib/plugins/search-inkeep/index.d.ts +8 -6
  768. package/dist/lib/plugins/search-inkeep/index.js +49 -7
  769. package/dist/lib/plugins/search-inkeep/index.js.map +1 -1
  770. package/dist/lib/plugins/search-inkeep/inkeep.d.ts +2 -19
  771. package/dist/lib/plugins/search-inkeep/inkeep.js +10 -19
  772. package/dist/lib/plugins/search-inkeep/inkeep.js.map +1 -1
  773. package/dist/lib/plugins/search-pagefind/IndexingDialog.d.ts +3 -0
  774. package/dist/lib/plugins/search-pagefind/IndexingDialog.js +64 -0
  775. package/dist/lib/plugins/search-pagefind/IndexingDialog.js.map +1 -0
  776. package/dist/lib/plugins/search-pagefind/PagefindSearch.d.ts +6 -0
  777. package/dist/lib/plugins/search-pagefind/PagefindSearch.js +97 -0
  778. package/dist/lib/plugins/search-pagefind/PagefindSearch.js.map +1 -0
  779. package/dist/lib/plugins/search-pagefind/ResultList.d.ts +8 -0
  780. package/dist/lib/plugins/search-pagefind/ResultList.js +43 -0
  781. package/dist/lib/plugins/search-pagefind/ResultList.js.map +1 -0
  782. package/dist/lib/plugins/search-pagefind/get-results.d.ts +10 -0
  783. package/dist/lib/plugins/search-pagefind/get-results.js +41 -0
  784. package/dist/lib/plugins/search-pagefind/get-results.js.map +1 -0
  785. package/dist/lib/plugins/search-pagefind/index.d.ts +6 -0
  786. package/dist/lib/plugins/search-pagefind/index.js +9 -0
  787. package/dist/lib/plugins/search-pagefind/index.js.map +1 -0
  788. package/dist/lib/plugins/search-pagefind/types.d.ts +85 -0
  789. package/dist/lib/plugins/search-pagefind/types.js +2 -0
  790. package/dist/lib/plugins/search-pagefind/types.js.map +1 -0
  791. package/dist/lib/shiki.d.ts +32 -0
  792. package/dist/lib/shiki.js +130 -0
  793. package/dist/lib/shiki.js.map +1 -0
  794. package/dist/lib/ui/Accordion.d.ts +7 -0
  795. package/dist/lib/ui/Accordion.js +14 -0
  796. package/dist/lib/ui/Accordion.js.map +1 -0
  797. package/dist/lib/ui/ActionButton.d.ts +4 -0
  798. package/dist/lib/ui/ActionButton.js +10 -0
  799. package/dist/lib/ui/ActionButton.js.map +1 -0
  800. package/dist/lib/ui/Alert.d.ts +9 -0
  801. package/dist/lib/ui/Alert.js +25 -0
  802. package/dist/lib/ui/Alert.js.map +1 -0
  803. package/dist/lib/ui/AlertDialog.d.ts +20 -0
  804. package/dist/lib/ui/AlertDialog.js +27 -0
  805. package/dist/lib/ui/AlertDialog.js.map +1 -0
  806. package/dist/lib/ui/AspectRatio.d.ts +3 -0
  807. package/dist/lib/ui/AspectRatio.js +4 -0
  808. package/dist/lib/ui/AspectRatio.js.map +1 -0
  809. package/dist/lib/ui/Badge.d.ts +9 -0
  810. package/dist/lib/ui/Badge.js +24 -0
  811. package/dist/lib/ui/Badge.js.map +1 -0
  812. package/dist/lib/ui/Breadcrumb.d.ts +19 -0
  813. package/dist/lib/ui/Breadcrumb.js +24 -0
  814. package/dist/lib/ui/Breadcrumb.js.map +1 -0
  815. package/dist/lib/ui/Button.d.ts +4 -5
  816. package/dist/lib/ui/Button.js +12 -7
  817. package/dist/lib/ui/Button.js.map +1 -1
  818. package/dist/lib/ui/ButtonGroup.d.ts +11 -0
  819. package/dist/lib/ui/ButtonGroup.js +28 -0
  820. package/dist/lib/ui/ButtonGroup.js.map +1 -0
  821. package/dist/lib/ui/Callout.d.ts +38 -36
  822. package/dist/lib/ui/Callout.js +8 -7
  823. package/dist/lib/ui/Callout.js.map +1 -1
  824. package/dist/lib/ui/Card.js +1 -1
  825. package/dist/lib/ui/Card.js.map +1 -1
  826. package/dist/lib/ui/Carousel.d.ts +18 -0
  827. package/dist/lib/ui/Carousel.js +99 -0
  828. package/dist/lib/ui/Carousel.js.map +1 -0
  829. package/dist/lib/ui/Checkbox.d.ts +4 -0
  830. package/dist/lib/ui/Checkbox.js +9 -0
  831. package/dist/lib/ui/Checkbox.js.map +1 -0
  832. package/dist/lib/ui/CodeBlock.d.ts +14 -0
  833. package/dist/lib/ui/CodeBlock.js +18 -0
  834. package/dist/lib/ui/CodeBlock.js.map +1 -0
  835. package/dist/lib/ui/Collapsible.d.ts +5 -0
  836. package/dist/lib/ui/Collapsible.js +13 -0
  837. package/dist/lib/ui/Collapsible.js.map +1 -0
  838. package/dist/lib/ui/Command.d.ts +94 -0
  839. package/dist/lib/ui/Command.js +31 -0
  840. package/dist/lib/ui/Command.js.map +1 -0
  841. package/dist/lib/ui/Dialog.d.ts +15 -0
  842. package/dist/lib/ui/Dialog.js +36 -0
  843. package/dist/lib/ui/Dialog.js.map +1 -0
  844. package/dist/lib/ui/Drawer.d.ts +8 -10
  845. package/dist/lib/ui/Drawer.js.map +1 -1
  846. package/dist/lib/ui/DropdownMenu.d.ts +21 -23
  847. package/dist/lib/ui/DropdownMenu.js +47 -32
  848. package/dist/lib/ui/DropdownMenu.js.map +1 -1
  849. package/dist/lib/ui/EmbeddedCodeBlock.d.ts +16 -0
  850. package/dist/lib/ui/EmbeddedCodeBlock.js +19 -0
  851. package/dist/lib/ui/EmbeddedCodeBlock.js.map +1 -0
  852. package/dist/lib/ui/Form.d.ts +23 -0
  853. package/dist/lib/ui/Form.js +63 -0
  854. package/dist/lib/ui/Form.js.map +1 -0
  855. package/dist/lib/ui/Frame.d.ts +8 -0
  856. package/dist/lib/ui/Frame.js +22 -0
  857. package/dist/lib/ui/Frame.js.map +1 -0
  858. package/dist/lib/ui/HoverCard.d.ts +6 -0
  859. package/dist/lib/ui/HoverCard.js +10 -0
  860. package/dist/lib/ui/HoverCard.js.map +1 -0
  861. package/dist/lib/ui/Input.d.ts +1 -2
  862. package/dist/lib/ui/Input.js +1 -1
  863. package/dist/lib/ui/Input.js.map +1 -1
  864. package/dist/lib/ui/Item.d.ts +23 -0
  865. package/dist/lib/ui/Item.js +67 -0
  866. package/dist/lib/ui/Item.js.map +1 -0
  867. package/dist/lib/ui/Kbd.d.ts +3 -0
  868. package/dist/lib/ui/Kbd.js +10 -0
  869. package/dist/lib/ui/Kbd.js.map +1 -0
  870. package/dist/lib/ui/Label.d.ts +5 -0
  871. package/dist/lib/ui/Label.js +10 -0
  872. package/dist/lib/ui/Label.js.map +1 -0
  873. package/dist/lib/ui/NativeSelect.d.ts +5 -0
  874. package/dist/lib/ui/NativeSelect.js +14 -0
  875. package/dist/lib/ui/NativeSelect.js.map +1 -0
  876. package/dist/lib/ui/Pagination.d.ts +28 -0
  877. package/dist/lib/ui/Pagination.js +24 -0
  878. package/dist/lib/ui/Pagination.js.map +1 -0
  879. package/dist/lib/ui/Popover.d.ts +6 -0
  880. package/dist/lib/ui/Popover.js +10 -0
  881. package/dist/lib/ui/Popover.js.map +1 -0
  882. package/dist/lib/ui/Progress.d.ts +4 -0
  883. package/dist/lib/ui/Progress.js +8 -0
  884. package/dist/lib/ui/Progress.js.map +1 -0
  885. package/dist/lib/ui/RadioGroup.d.ts +5 -0
  886. package/dist/lib/ui/RadioGroup.js +15 -0
  887. package/dist/lib/ui/RadioGroup.js.map +1 -0
  888. package/dist/lib/ui/ReactComponentDoc.d.ts +20 -0
  889. package/dist/lib/ui/ReactComponentDoc.js +10 -0
  890. package/dist/lib/ui/ReactComponentDoc.js.map +1 -0
  891. package/dist/lib/ui/ScrollArea.d.ts +5 -0
  892. package/dist/lib/ui/ScrollArea.js +12 -0
  893. package/dist/lib/ui/ScrollArea.js.map +1 -0
  894. package/dist/lib/ui/Secret.d.ts +18 -0
  895. package/dist/lib/ui/Secret.js +26 -0
  896. package/dist/lib/ui/Secret.js.map +1 -0
  897. package/dist/lib/ui/Select.d.ts +15 -0
  898. package/dist/lib/ui/Select.js +38 -0
  899. package/dist/lib/ui/Select.js.map +1 -0
  900. package/dist/lib/ui/Separator.d.ts +4 -0
  901. package/dist/lib/ui/Separator.js +8 -0
  902. package/dist/lib/ui/Separator.js.map +1 -0
  903. package/dist/lib/ui/Skeleton.d.ts +2 -0
  904. package/dist/lib/ui/Skeleton.js +7 -0
  905. package/dist/lib/ui/Skeleton.js.map +1 -0
  906. package/dist/lib/ui/Slider.d.ts +4 -0
  907. package/dist/lib/ui/Slider.js +8 -0
  908. package/dist/lib/ui/Slider.js.map +1 -0
  909. package/dist/lib/ui/Stepper.d.ts +3 -0
  910. package/dist/lib/ui/Stepper.js +7 -0
  911. package/dist/lib/ui/Stepper.js.map +1 -0
  912. package/dist/lib/ui/Switch.d.ts +4 -0
  913. package/dist/lib/ui/Switch.js +8 -0
  914. package/dist/lib/ui/Switch.js.map +1 -0
  915. package/dist/lib/ui/SyntaxHighlight.d.ts +13 -0
  916. package/dist/lib/ui/SyntaxHighlight.js +15 -0
  917. package/dist/lib/ui/SyntaxHighlight.js.map +1 -0
  918. package/dist/lib/ui/Tabs.js +2 -2
  919. package/dist/lib/ui/Tabs.js.map +1 -1
  920. package/dist/lib/ui/Textarea.d.ts +4 -0
  921. package/dist/lib/ui/Textarea.js +9 -0
  922. package/dist/lib/ui/Textarea.js.map +1 -0
  923. package/dist/lib/ui/Toggle.d.ts +12 -0
  924. package/dist/lib/ui/Toggle.js +26 -0
  925. package/dist/lib/ui/Toggle.js.map +1 -0
  926. package/dist/lib/ui/ToggleGroup.d.ts +12 -0
  927. package/dist/lib/ui/ToggleGroup.js +21 -0
  928. package/dist/lib/ui/ToggleGroup.js.map +1 -0
  929. package/dist/lib/ui/Tooltip.d.ts +8 -0
  930. package/dist/lib/ui/Tooltip.js +18 -0
  931. package/dist/lib/ui/Tooltip.js.map +1 -0
  932. package/dist/lib/ui/Value.d.ts +5 -0
  933. package/dist/lib/ui/Value.js +13 -0
  934. package/dist/lib/ui/Value.js.map +1 -0
  935. package/dist/lib/ui/util.d.ts +2 -0
  936. package/dist/lib/ui/util.js +3 -0
  937. package/dist/lib/ui/util.js.map +1 -0
  938. package/dist/lib/util/MdxComponents.d.ts +40 -21
  939. package/dist/lib/util/MdxComponents.js +26 -17
  940. package/dist/lib/util/MdxComponents.js.map +1 -1
  941. package/dist/lib/util/cn.js.map +1 -1
  942. package/dist/lib/util/createVariantComponent.d.ts +7 -4
  943. package/dist/lib/util/createVariantComponent.js +5 -2
  944. package/dist/lib/util/createVariantComponent.js.map +1 -1
  945. package/dist/lib/util/detectOS.d.ts +1 -0
  946. package/dist/lib/util/detectOS.js +11 -0
  947. package/dist/lib/util/detectOS.js.map +1 -0
  948. package/dist/lib/util/ensureArray.d.ts +1 -0
  949. package/dist/lib/util/ensureArray.js +2 -0
  950. package/dist/lib/util/ensureArray.js.map +1 -0
  951. package/dist/lib/util/flattenAllOf.d.ts +4 -0
  952. package/dist/lib/util/flattenAllOf.js +88 -0
  953. package/dist/lib/util/flattenAllOf.js.map +1 -0
  954. package/dist/lib/util/flattenAllOf.test.d.ts +1 -0
  955. package/dist/lib/util/flattenAllOf.test.js +587 -0
  956. package/dist/lib/util/flattenAllOf.test.js.map +1 -0
  957. package/dist/lib/util/groupBy.js +1 -0
  958. package/dist/lib/util/groupBy.js.map +1 -1
  959. package/dist/lib/util/humanFileSize.d.ts +6 -0
  960. package/dist/lib/util/humanFileSize.js +14 -0
  961. package/dist/lib/util/humanFileSize.js.map +1 -0
  962. package/dist/lib/util/humanFileSize.test.d.ts +1 -0
  963. package/dist/lib/util/humanFileSize.test.js +22 -0
  964. package/dist/lib/util/humanFileSize.test.js.map +1 -0
  965. package/dist/lib/util/invariant.d.ts +10 -0
  966. package/dist/lib/util/invariant.js +10 -4
  967. package/dist/lib/util/invariant.js.map +1 -1
  968. package/dist/lib/util/joinPath.d.ts +3 -0
  969. package/dist/lib/util/joinPath.js +3 -0
  970. package/dist/lib/util/joinPath.js.map +1 -1
  971. package/dist/lib/util/joinUrl.d.ts +1 -0
  972. package/dist/lib/util/joinUrl.js +40 -0
  973. package/dist/lib/util/joinUrl.js.map +1 -0
  974. package/dist/lib/util/joinUrl.test.d.ts +1 -0
  975. package/dist/lib/util/joinUrl.test.js +43 -0
  976. package/dist/lib/util/joinUrl.test.js.map +1 -0
  977. package/dist/lib/util/os.d.ts +2 -0
  978. package/dist/lib/util/os.js +21 -0
  979. package/dist/lib/util/os.js.map +1 -0
  980. package/dist/lib/util/pastellize.js +4 -4
  981. package/dist/lib/util/pastellize.js.map +1 -1
  982. package/dist/lib/util/readFrontmatter.d.ts +6 -0
  983. package/dist/lib/util/readFrontmatter.js +12 -0
  984. package/dist/lib/util/readFrontmatter.js.map +1 -0
  985. package/dist/lib/util/scrollIntoViewIfNeeded.d.ts +1 -0
  986. package/dist/lib/util/scrollIntoViewIfNeeded.js +14 -0
  987. package/dist/lib/util/scrollIntoViewIfNeeded.js.map +1 -0
  988. package/dist/lib/util/syncZustandState.d.ts +5 -0
  989. package/dist/lib/util/syncZustandState.js +14 -0
  990. package/dist/lib/util/syncZustandState.js.map +1 -0
  991. package/dist/lib/util/traverse.d.ts +4 -0
  992. package/dist/lib/util/traverse.js +48 -0
  993. package/dist/lib/util/traverse.js.map +1 -0
  994. package/dist/lib/util/types.d.ts +7 -0
  995. package/dist/lib/util/types.js +2 -0
  996. package/dist/lib/util/types.js.map +1 -0
  997. package/dist/lib/util/url.d.ts +4 -0
  998. package/dist/lib/util/url.js +13 -0
  999. package/dist/lib/util/url.js.map +1 -0
  1000. package/dist/lib/util/url.test.d.ts +1 -0
  1001. package/dist/lib/util/url.test.js +26 -0
  1002. package/dist/lib/util/url.test.js.map +1 -0
  1003. package/dist/lib/util/useCopyToClipboard.d.ts +1 -0
  1004. package/dist/lib/util/useCopyToClipboard.js +11 -0
  1005. package/dist/lib/util/useCopyToClipboard.js.map +1 -0
  1006. package/dist/lib/util/useExposedProps.d.ts +9 -0
  1007. package/dist/lib/util/useExposedProps.js +9 -0
  1008. package/dist/lib/util/useExposedProps.js.map +1 -0
  1009. package/dist/lib/util/useIsomorphicLayoutEffect.d.ts +3 -0
  1010. package/dist/lib/util/useIsomorphicLayoutEffect.js +4 -0
  1011. package/dist/lib/util/useIsomorphicLayoutEffect.js.map +1 -0
  1012. package/dist/lib/util/useLatest.d.ts +1 -0
  1013. package/dist/lib/util/useLatest.js +15 -0
  1014. package/dist/lib/util/useLatest.js.map +1 -0
  1015. package/dist/lib/util/useOnScreen.d.ts +5 -0
  1016. package/dist/lib/util/useOnScreen.js +19 -0
  1017. package/dist/lib/util/useOnScreen.js.map +1 -0
  1018. package/dist/lib/util/useScrollToAnchor.d.ts +1 -0
  1019. package/dist/lib/util/useScrollToAnchor.js +45 -38
  1020. package/dist/lib/util/useScrollToAnchor.js.map +1 -1
  1021. package/dist/lib/util/useScrollToTop.js +7 -5
  1022. package/dist/lib/util/useScrollToTop.js.map +1 -1
  1023. package/dist/ts.js +3 -3
  1024. package/dist/ts.js.map +1 -1
  1025. package/dist/vite/api/SchemaManager.d.ts +43 -0
  1026. package/dist/vite/api/SchemaManager.js +176 -0
  1027. package/dist/vite/api/SchemaManager.js.map +1 -0
  1028. package/dist/vite/api/SchemaManager.test.d.ts +1 -0
  1029. package/dist/vite/api/SchemaManager.test.js +173 -0
  1030. package/dist/vite/api/SchemaManager.test.js.map +1 -0
  1031. package/dist/vite/api/schema-codegen.d.ts +12 -0
  1032. package/dist/vite/api/schema-codegen.js +134 -0
  1033. package/dist/vite/api/schema-codegen.js.map +1 -0
  1034. package/dist/vite/api/schema-codegen.test.d.ts +1 -0
  1035. package/dist/vite/api/schema-codegen.test.js +468 -0
  1036. package/dist/vite/api/schema-codegen.test.js.map +1 -0
  1037. package/dist/vite/build.js +63 -14
  1038. package/dist/vite/build.js.map +1 -1
  1039. package/dist/vite/config.d.ts +2 -16
  1040. package/dist/vite/config.js +125 -147
  1041. package/dist/vite/config.js.map +1 -1
  1042. package/dist/vite/config.test.js +12 -6
  1043. package/dist/vite/config.test.js.map +1 -1
  1044. package/dist/vite/css/collect.d.ts +2 -0
  1045. package/dist/vite/css/collect.js +27 -0
  1046. package/dist/vite/css/collect.js.map +1 -0
  1047. package/dist/vite/css/plugin.d.ts +4 -0
  1048. package/dist/vite/css/plugin.js +91 -0
  1049. package/dist/vite/css/plugin.js.map +1 -0
  1050. package/dist/vite/debug.d.ts +1 -0
  1051. package/dist/vite/debug.js +10 -0
  1052. package/dist/vite/debug.js.map +1 -0
  1053. package/dist/vite/dev-server.d.ts +11 -4
  1054. package/dist/vite/dev-server.js +116 -22
  1055. package/dist/vite/dev-server.js.map +1 -1
  1056. package/dist/vite/error-handler.d.ts +3 -3
  1057. package/dist/vite/error-handler.js +1 -1
  1058. package/dist/vite/error-handler.js.map +1 -1
  1059. package/dist/vite/html.d.ts +7 -3
  1060. package/dist/vite/html.js +15 -11
  1061. package/dist/vite/html.js.map +1 -1
  1062. package/dist/vite/llms.d.ts +12 -0
  1063. package/dist/vite/llms.js +66 -0
  1064. package/dist/vite/llms.js.map +1 -0
  1065. package/dist/vite/mdx/remark-inject-filepath.d.ts +3 -0
  1066. package/dist/vite/mdx/remark-inject-filepath.js +6 -0
  1067. package/dist/vite/mdx/remark-inject-filepath.js.map +1 -0
  1068. package/dist/vite/mdx/remark-last-modified.d.ts +3 -0
  1069. package/dist/vite/mdx/remark-last-modified.js +82 -0
  1070. package/dist/vite/mdx/remark-last-modified.js.map +1 -0
  1071. package/dist/vite/mdx/remark-link-rewrite.d.ts +2 -0
  1072. package/dist/vite/mdx/remark-link-rewrite.js +20 -0
  1073. package/dist/vite/mdx/remark-link-rewrite.js.map +1 -0
  1074. package/dist/vite/mdx/remark-normalize-image-url.d.ts +2 -0
  1075. package/dist/vite/mdx/remark-normalize-image-url.js +12 -0
  1076. package/dist/vite/mdx/remark-normalize-image-url.js.map +1 -0
  1077. package/dist/vite/mdx/remark-static-generation.d.ts +3 -0
  1078. package/dist/vite/mdx/remark-static-generation.js +125 -0
  1079. package/dist/vite/mdx/remark-static-generation.js.map +1 -0
  1080. package/dist/vite/mdx/utils.d.ts +2 -0
  1081. package/dist/vite/mdx/utils.js +31 -0
  1082. package/dist/vite/mdx/utils.js.map +1 -0
  1083. package/dist/vite/output.d.ts +113 -0
  1084. package/dist/vite/output.js +60 -0
  1085. package/dist/vite/output.js.map +1 -0
  1086. package/dist/vite/pagefind-dev-index.d.ts +16 -0
  1087. package/dist/vite/pagefind-dev-index.js +68 -0
  1088. package/dist/vite/pagefind-dev-index.js.map +1 -0
  1089. package/dist/vite/plugin-api-keys.d.ts +2 -3
  1090. package/dist/vite/plugin-api-keys.js +14 -8
  1091. package/dist/vite/plugin-api-keys.js.map +1 -1
  1092. package/dist/vite/plugin-api.d.ts +1 -2
  1093. package/dist/vite/plugin-api.js +186 -33
  1094. package/dist/vite/plugin-api.js.map +1 -1
  1095. package/dist/vite/plugin-auth.d.ts +2 -3
  1096. package/dist/vite/plugin-auth.js +11 -7
  1097. package/dist/vite/plugin-auth.js.map +1 -1
  1098. package/dist/vite/plugin-component.d.ts +2 -3
  1099. package/dist/vite/plugin-component.js +25 -15
  1100. package/dist/vite/plugin-component.js.map +1 -1
  1101. package/dist/vite/plugin-config-reload.d.ts +3 -4
  1102. package/dist/vite/plugin-config-reload.js +31 -25
  1103. package/dist/vite/plugin-config-reload.js.map +1 -1
  1104. package/dist/vite/plugin-config.d.ts +2 -4
  1105. package/dist/vite/plugin-config.js +28 -3
  1106. package/dist/vite/plugin-config.js.map +1 -1
  1107. package/dist/vite/plugin-custom-pages.d.ts +3 -0
  1108. package/dist/vite/plugin-custom-pages.js +31 -0
  1109. package/dist/vite/plugin-custom-pages.js.map +1 -0
  1110. package/dist/vite/plugin-docs.d.ts +11 -3
  1111. package/dist/vite/plugin-docs.js +100 -41
  1112. package/dist/vite/plugin-docs.js.map +1 -1
  1113. package/dist/vite/plugin-frontmatter.js +33 -26
  1114. package/dist/vite/plugin-frontmatter.js.map +1 -1
  1115. package/dist/vite/plugin-markdown-export.d.ts +21 -0
  1116. package/dist/vite/plugin-markdown-export.js +140 -0
  1117. package/dist/vite/plugin-markdown-export.js.map +1 -0
  1118. package/dist/vite/plugin-mdx.d.ts +2 -9
  1119. package/dist/vite/plugin-mdx.js +92 -36
  1120. package/dist/vite/plugin-mdx.js.map +1 -1
  1121. package/dist/vite/plugin-metadata.d.ts +1 -1
  1122. package/dist/vite/plugin-navigation.d.ts +4 -0
  1123. package/dist/vite/plugin-navigation.js +67 -0
  1124. package/dist/vite/plugin-navigation.js.map +1 -0
  1125. package/dist/vite/plugin-redirect.d.ts +2 -3
  1126. package/dist/vite/plugin-redirect.js +7 -6
  1127. package/dist/vite/plugin-redirect.js.map +1 -1
  1128. package/dist/vite/plugin-search.d.ts +2 -0
  1129. package/dist/vite/plugin-search.js +31 -0
  1130. package/dist/vite/plugin-search.js.map +1 -0
  1131. package/dist/vite/plugin-shiki-register.d.ts +2 -0
  1132. package/dist/vite/plugin-shiki-register.js +39 -0
  1133. package/dist/vite/plugin-shiki-register.js.map +1 -0
  1134. package/dist/vite/plugin-theme.d.ts +8 -0
  1135. package/dist/vite/plugin-theme.js +283 -0
  1136. package/dist/vite/plugin-theme.js.map +1 -0
  1137. package/dist/vite/plugin-theme.test.d.ts +1 -0
  1138. package/dist/vite/plugin-theme.test.js +314 -0
  1139. package/dist/vite/plugin-theme.test.js.map +1 -0
  1140. package/dist/vite/plugin.d.ts +2 -4
  1141. package/dist/vite/plugin.js +28 -19
  1142. package/dist/vite/plugin.js.map +1 -1
  1143. package/dist/vite/prerender/FileWritingResponse.d.ts +25 -0
  1144. package/dist/vite/prerender/FileWritingResponse.js +53 -0
  1145. package/dist/vite/prerender/FileWritingResponse.js.map +1 -0
  1146. package/dist/vite/prerender/InMemoryResponse.d.ts +16 -0
  1147. package/dist/vite/prerender/InMemoryResponse.js +34 -0
  1148. package/dist/vite/prerender/InMemoryResponse.js.map +1 -0
  1149. package/dist/vite/prerender/PrerenderResponse.d.ts +10 -0
  1150. package/dist/vite/prerender/PrerenderResponse.js +2 -0
  1151. package/dist/vite/prerender/PrerenderResponse.js.map +1 -0
  1152. package/dist/vite/prerender/prerender.d.ts +15 -0
  1153. package/dist/vite/prerender/prerender.js +124 -0
  1154. package/dist/vite/prerender/prerender.js.map +1 -0
  1155. package/dist/vite/prerender/utils.d.ts +2 -0
  1156. package/dist/vite/prerender/utils.js +24 -0
  1157. package/dist/vite/prerender/utils.js.map +1 -0
  1158. package/dist/vite/prerender/worker.d.ts +13 -0
  1159. package/dist/vite/prerender/worker.js +63 -0
  1160. package/dist/vite/prerender/worker.js.map +1 -0
  1161. package/dist/vite/reporter.d.ts +3 -0
  1162. package/dist/vite/reporter.js +33 -0
  1163. package/dist/vite/reporter.js.map +1 -0
  1164. package/dist/vite/shadcn-registry.d.ts +20 -0
  1165. package/dist/vite/shadcn-registry.js +29 -0
  1166. package/dist/vite/shadcn-registry.js.map +1 -0
  1167. package/dist/vite/sitemap.d.ts +1 -1
  1168. package/dist/vite/sitemap.js +16 -14
  1169. package/dist/vite/sitemap.js.map +1 -1
  1170. package/dist/zuplo/enrich-with-zuplo-mcp.d.ts +4 -0
  1171. package/dist/zuplo/enrich-with-zuplo-mcp.js +117 -0
  1172. package/dist/zuplo/enrich-with-zuplo-mcp.js.map +1 -0
  1173. package/dist/zuplo/enrich-with-zuplo.d.ts +6 -0
  1174. package/dist/zuplo/enrich-with-zuplo.js +185 -0
  1175. package/dist/zuplo/enrich-with-zuplo.js.map +1 -0
  1176. package/dist/zuplo/policy-types.d.ts +33 -0
  1177. package/dist/zuplo/policy-types.js +7 -0
  1178. package/dist/zuplo/policy-types.js.map +1 -0
  1179. package/dist/zuplo/with-zuplo-processors.d.ts +3 -0
  1180. package/dist/zuplo/with-zuplo-processors.js +28 -0
  1181. package/dist/zuplo/with-zuplo-processors.js.map +1 -0
  1182. package/dist/zuplo/with-zuplo.d.ts +6 -0
  1183. package/dist/zuplo/with-zuplo.js +10 -0
  1184. package/dist/zuplo/with-zuplo.js.map +1 -0
  1185. package/lib/ActionButton-DUgvSylL.js +25 -0
  1186. package/lib/ActionButton-DUgvSylL.js.map +1 -0
  1187. package/lib/Button-CynVW1JV.js +53 -0
  1188. package/lib/Button-CynVW1JV.js.map +1 -0
  1189. package/lib/Card-KFniaZn5.js +61 -0
  1190. package/lib/Card-KFniaZn5.js.map +1 -0
  1191. package/lib/CategoryHeading-DhmodDcq.js +17 -0
  1192. package/lib/CategoryHeading-DhmodDcq.js.map +1 -0
  1193. package/lib/ClaudeLogo-CGRfGTk2.js +69 -0
  1194. package/lib/ClaudeLogo-CGRfGTk2.js.map +1 -0
  1195. package/lib/ClientOnly-E7hGysn1.js +11 -0
  1196. package/lib/ClientOnly-E7hGysn1.js.map +1 -0
  1197. package/lib/Command-BpT1iBE6.js +134 -0
  1198. package/lib/Command-BpT1iBE6.js.map +1 -0
  1199. package/lib/Dialog-BQciPiHN.js +144 -0
  1200. package/lib/Dialog-BQciPiHN.js.map +1 -0
  1201. package/lib/Drawer-Ci7XwhqT.js +1133 -0
  1202. package/lib/Drawer-Ci7XwhqT.js.map +1 -0
  1203. package/lib/DropdownMenu-C8SX_-S_.js +104 -0
  1204. package/lib/DropdownMenu-C8SX_-S_.js.map +1 -0
  1205. package/lib/ErrorAlert-BUlG32M9.js +15477 -0
  1206. package/lib/ErrorAlert-BUlG32M9.js.map +1 -0
  1207. package/lib/IndexingDialog-B5zCiUKr.js +100 -0
  1208. package/lib/IndexingDialog-B5zCiUKr.js.map +1 -0
  1209. package/lib/MdxPage-Bjf72BP3.js +210 -0
  1210. package/lib/MdxPage-Bjf72BP3.js.map +1 -0
  1211. package/lib/Mermaid-D_VSX7_Q.js +102 -0
  1212. package/lib/Mermaid-D_VSX7_Q.js.map +1 -0
  1213. package/lib/OAuthErrorPage-1Ekji0PK.js +150 -0
  1214. package/lib/OAuthErrorPage-1Ekji0PK.js.map +1 -0
  1215. package/lib/OasProvider-BZxmTyMM.js +40 -0
  1216. package/lib/OasProvider-BZxmTyMM.js.map +1 -0
  1217. package/lib/OperationList-B7nPIFB8.js +5805 -0
  1218. package/lib/OperationList-B7nPIFB8.js.map +1 -0
  1219. package/lib/RouteGuard-9wjejsKm.js +77 -0
  1220. package/lib/RouteGuard-9wjejsKm.js.map +1 -0
  1221. package/lib/RouterError-DfTZblpv.js +42 -0
  1222. package/lib/RouterError-DfTZblpv.js.map +1 -0
  1223. package/lib/SchemaList-16_obkku.js +151 -0
  1224. package/lib/SchemaList-16_obkku.js.map +1 -0
  1225. package/lib/SchemaView-eyvR4bRt.js +597 -0
  1226. package/lib/SchemaView-eyvR4bRt.js.map +1 -0
  1227. package/lib/Select-CkxXP5I7.js +243 -0
  1228. package/lib/Select-CkxXP5I7.js.map +1 -0
  1229. package/lib/Separator-CTPSeW1S.js +27 -0
  1230. package/lib/Separator-CTPSeW1S.js.map +1 -0
  1231. package/lib/SignUp-D54_QWFy.js +50 -0
  1232. package/lib/SignUp-D54_QWFy.js.map +1 -0
  1233. package/lib/Spinner-CI6bRyZw.js +7 -0
  1234. package/lib/Spinner-CI6bRyZw.js.map +1 -0
  1235. package/lib/SyntaxHighlight-j_HRSPCU.js +10400 -0
  1236. package/lib/SyntaxHighlight-j_HRSPCU.js.map +1 -0
  1237. package/lib/Toc-z05x698-.js +92 -0
  1238. package/lib/Toc-z05x698-.js.map +1 -0
  1239. package/lib/ZudokuContext-BXldanA8.js +1508 -0
  1240. package/lib/ZudokuContext-BXldanA8.js.map +1 -0
  1241. package/lib/___vite-browser-external_commonjs-proxy-Cga3HsWk.js +9 -0
  1242. package/lib/___vite-browser-external_commonjs-proxy-Cga3HsWk.js.map +1 -0
  1243. package/lib/c-B-NUhs61.js +46 -0
  1244. package/lib/c-B-NUhs61.js.map +1 -0
  1245. package/lib/chunk-PVWAREVJ-dLIqswPy.js +7965 -0
  1246. package/lib/chunk-PVWAREVJ-dLIqswPy.js.map +1 -0
  1247. package/lib/circular-D5sYCIWL.js +15341 -0
  1248. package/lib/circular-D5sYCIWL.js.map +1 -0
  1249. package/lib/clsx-OuTLNxxd.js +17 -0
  1250. package/lib/clsx-OuTLNxxd.js.map +1 -0
  1251. package/lib/cn-dYga0KKN.js +2731 -0
  1252. package/lib/cn-dYga0KKN.js.map +1 -0
  1253. package/lib/commonlisp-De080z23.js +28 -0
  1254. package/lib/commonlisp-De080z23.js.map +1 -0
  1255. package/lib/cpp-79Paht7T.js +53 -0
  1256. package/lib/cpp-79Paht7T.js.map +1 -0
  1257. package/lib/createServer-BlwU7lIr.js +16693 -0
  1258. package/lib/createServer-BlwU7lIr.js.map +1 -0
  1259. package/lib/createVariantComponent-B9_dVBvu.js +35 -0
  1260. package/lib/createVariantComponent-B9_dVBvu.js.map +1 -0
  1261. package/lib/csharp-D8MIL50B.js +53 -0
  1262. package/lib/csharp-D8MIL50B.js.map +1 -0
  1263. package/lib/css-Bt6hr1td.js +54 -0
  1264. package/lib/css-Bt6hr1td.js.map +1 -0
  1265. package/lib/dart-B0vy1jWB.js +60 -0
  1266. package/lib/dart-B0vy1jWB.js.map +1 -0
  1267. package/lib/elixir-Ds8r0sF8.js +25 -0
  1268. package/lib/elixir-Ds8r0sF8.js.map +1 -0
  1269. package/lib/errors-BtC4Kn2j.js +45 -0
  1270. package/lib/errors-BtC4Kn2j.js.map +1 -0
  1271. package/lib/firebase-DApULm96.js +7390 -0
  1272. package/lib/firebase-DApULm96.js.map +1 -0
  1273. package/lib/go-D2VsmIOS.js +25 -0
  1274. package/lib/go-D2VsmIOS.js.map +1 -0
  1275. package/lib/graphql-BtA6M4m5.js +25 -0
  1276. package/lib/graphql-BtA6M4m5.js.map +1 -0
  1277. package/lib/hook-BNxidGQq.js +40 -0
  1278. package/lib/hook-BNxidGQq.js.map +1 -0
  1279. package/lib/html-MGnI2uzP.js +33 -0
  1280. package/lib/html-MGnI2uzP.js.map +1 -0
  1281. package/lib/index-CeVTNcfF.js +3676 -0
  1282. package/lib/index-CeVTNcfF.js.map +1 -0
  1283. package/lib/index-CrcNWbel.js +316 -0
  1284. package/lib/index-CrcNWbel.js.map +1 -0
  1285. package/lib/index-Css56y3F.js +133 -0
  1286. package/lib/index-Css56y3F.js.map +1 -0
  1287. package/lib/index-DI5SPFK9.js +36 -0
  1288. package/lib/index-DI5SPFK9.js.map +1 -0
  1289. package/lib/index-DSOi7zVM.js +1059 -0
  1290. package/lib/index-DSOi7zVM.js.map +1 -0
  1291. package/lib/index-eKVhlB94.js +2210 -0
  1292. package/lib/index-eKVhlB94.js.map +1 -0
  1293. package/lib/index-nGbmHh_A.js +4827 -0
  1294. package/lib/index-nGbmHh_A.js.map +1 -0
  1295. package/lib/index.esm-BYObtETB.js +1294 -0
  1296. package/lib/index.esm-BYObtETB.js.map +1 -0
  1297. package/lib/index.esm-DtzT_KoE.js +683 -0
  1298. package/lib/index.esm-DtzT_KoE.js.map +1 -0
  1299. package/lib/index.esm-xmjej92R.js +32 -0
  1300. package/lib/index.esm-xmjej92R.js.map +1 -0
  1301. package/lib/invariant-CGOLuIIz.js +44 -0
  1302. package/lib/invariant-CGOLuIIz.js.map +1 -0
  1303. package/lib/java-CVLzHfb1.js +53 -0
  1304. package/lib/java-CVLzHfb1.js.map +1 -0
  1305. package/lib/javascript-CcmIpL4G.js +10 -0
  1306. package/lib/javascript-CcmIpL4G.js.map +1 -0
  1307. package/lib/json-4AyP4uiY.js +25 -0
  1308. package/lib/json-4AyP4uiY.js.map +1 -0
  1309. package/lib/jsx-runtime-BzflLqGi.js +283 -0
  1310. package/lib/jsx-runtime-BzflLqGi.js.map +1 -0
  1311. package/lib/kotlin-v2plddBQ.js +37 -0
  1312. package/lib/kotlin-v2plddBQ.js.map +1 -0
  1313. package/lib/markdown-DYGWCmGQ.js +25 -0
  1314. package/lib/markdown-DYGWCmGQ.js.map +1 -0
  1315. package/lib/mdx-CHwYvXd4.js +32 -0
  1316. package/lib/mdx-CHwYvXd4.js.map +1 -0
  1317. package/lib/mutation-BoVlx8yA.js +196 -0
  1318. package/lib/mutation-BoVlx8yA.js.map +1 -0
  1319. package/lib/objectivec-HZY8shkd.js +32 -0
  1320. package/lib/objectivec-HZY8shkd.js.map +1 -0
  1321. package/lib/ocaml-DqsdDdwb.js +52 -0
  1322. package/lib/ocaml-DqsdDdwb.js.map +1 -0
  1323. package/lib/php-rQXzo7K_.js +25 -0
  1324. package/lib/php-rQXzo7K_.js.map +1 -0
  1325. package/lib/powershell-CQje9pm1.js +39 -0
  1326. package/lib/powershell-CQje9pm1.js.map +1 -0
  1327. package/lib/processors/removeExtensions.js +11 -0
  1328. package/lib/processors/removeExtensions.js.map +1 -0
  1329. package/lib/processors/removeParameters.js +47 -0
  1330. package/lib/processors/removeParameters.js.map +1 -0
  1331. package/lib/processors/removePaths.js +28 -0
  1332. package/lib/processors/removePaths.js.map +1 -0
  1333. package/lib/processors/traverse.js +17 -0
  1334. package/lib/processors/traverse.js.map +1 -0
  1335. package/lib/python-QIQAE5Ei.js +32 -0
  1336. package/lib/python-QIQAE5Ei.js.map +1 -0
  1337. package/lib/react-DHpVpxRv.js +24 -0
  1338. package/lib/react-DHpVpxRv.js.map +1 -0
  1339. package/lib/ruby-B2dU8Ny5.js +25 -0
  1340. package/lib/ruby-B2dU8Ny5.js.map +1 -0
  1341. package/lib/rust-DYnLHAi2.js +25 -0
  1342. package/lib/rust-DYnLHAi2.js.map +1 -0
  1343. package/lib/scala-CeKInBR8.js +25 -0
  1344. package/lib/scala-CeKInBR8.js.map +1 -0
  1345. package/lib/shell-HUv9oVtp.js +25 -0
  1346. package/lib/shell-HUv9oVtp.js.map +1 -0
  1347. package/lib/swift-B4z6ig1Z.js +25 -0
  1348. package/lib/swift-B4z6ig1Z.js.map +1 -0
  1349. package/lib/toml-Co9mpdct.js +32 -0
  1350. package/lib/toml-Co9mpdct.js.map +1 -0
  1351. package/lib/typescript-C26xdBDC.js +32 -0
  1352. package/lib/typescript-C26xdBDC.js.map +1 -0
  1353. package/lib/ui/Accordion.js +47 -0
  1354. package/lib/ui/Accordion.js.map +1 -0
  1355. package/lib/ui/ActionButton.js +25 -0
  1356. package/lib/ui/ActionButton.js.map +1 -0
  1357. package/lib/ui/Alert.js +67 -0
  1358. package/lib/ui/Alert.js.map +1 -0
  1359. package/lib/ui/AlertDialog.js +114 -0
  1360. package/lib/ui/AlertDialog.js.map +1 -0
  1361. package/lib/ui/AspectRatio.js +6 -0
  1362. package/lib/ui/AspectRatio.js.map +1 -0
  1363. package/lib/ui/Badge.js +42 -0
  1364. package/lib/ui/Badge.js.map +1 -0
  1365. package/lib/ui/Breadcrumb.js +95 -0
  1366. package/lib/ui/Breadcrumb.js.map +1 -0
  1367. package/lib/ui/Button.js +54 -0
  1368. package/lib/ui/Button.js.map +1 -0
  1369. package/lib/ui/ButtonGroup.js +77 -0
  1370. package/lib/ui/ButtonGroup.js.map +1 -0
  1371. package/lib/ui/Callout.js +97 -0
  1372. package/lib/ui/Callout.js.map +1 -0
  1373. package/lib/ui/Card.js +62 -0
  1374. package/lib/ui/Card.js.map +1 -0
  1375. package/lib/ui/Carousel.js +1416 -0
  1376. package/lib/ui/Carousel.js.map +1 -0
  1377. package/lib/ui/Checkbox.js +32 -0
  1378. package/lib/ui/Checkbox.js.map +1 -0
  1379. package/lib/ui/CodeBlock.js +220 -0
  1380. package/lib/ui/CodeBlock.js.map +1 -0
  1381. package/lib/ui/Collapsible.js +35 -0
  1382. package/lib/ui/Collapsible.js.map +1 -0
  1383. package/lib/ui/Command.js +150 -0
  1384. package/lib/ui/Command.js.map +1 -0
  1385. package/lib/ui/Dialog.js +146 -0
  1386. package/lib/ui/Dialog.js.map +1 -0
  1387. package/lib/ui/Drawer.js +17 -0
  1388. package/lib/ui/Drawer.js.map +1 -0
  1389. package/lib/ui/DropdownMenu.js +232 -0
  1390. package/lib/ui/DropdownMenu.js.map +1 -0
  1391. package/lib/ui/EmbeddedCodeBlock.js +84 -0
  1392. package/lib/ui/EmbeddedCodeBlock.js.map +1 -0
  1393. package/lib/ui/Form.js +95 -0
  1394. package/lib/ui/Form.js.map +1 -0
  1395. package/lib/ui/Frame.js +81 -0
  1396. package/lib/ui/Frame.js.map +1 -0
  1397. package/lib/ui/HoverCard.js +24 -0
  1398. package/lib/ui/HoverCard.js.map +1 -0
  1399. package/lib/ui/Input.js +22 -0
  1400. package/lib/ui/Input.js.map +1 -0
  1401. package/lib/ui/Item.js +188 -0
  1402. package/lib/ui/Item.js.map +1 -0
  1403. package/lib/ui/Kbd.js +32 -0
  1404. package/lib/ui/Kbd.js.map +1 -0
  1405. package/lib/ui/Label.js +20 -0
  1406. package/lib/ui/Label.js.map +1 -0
  1407. package/lib/ui/NativeSelect.js +57 -0
  1408. package/lib/ui/NativeSelect.js.map +1 -0
  1409. package/lib/ui/Pagination.js +105 -0
  1410. package/lib/ui/Pagination.js.map +1 -0
  1411. package/lib/ui/Popover.js +24 -0
  1412. package/lib/ui/Popover.js.map +1 -0
  1413. package/lib/ui/Progress.js +27 -0
  1414. package/lib/ui/Progress.js.map +1 -0
  1415. package/lib/ui/RadioGroup.js +32 -0
  1416. package/lib/ui/RadioGroup.js.map +1 -0
  1417. package/lib/ui/ReactComponentDoc.js +28 -0
  1418. package/lib/ui/ReactComponentDoc.js.map +1 -0
  1419. package/lib/ui/ScrollArea.js +39 -0
  1420. package/lib/ui/ScrollArea.js.map +1 -0
  1421. package/lib/ui/Secret.js +106 -0
  1422. package/lib/ui/Secret.js.map +1 -0
  1423. package/lib/ui/Select.js +172 -0
  1424. package/lib/ui/Select.js.map +1 -0
  1425. package/lib/ui/Separator.js +27 -0
  1426. package/lib/ui/Separator.js.map +1 -0
  1427. package/lib/ui/Skeleton.js +18 -0
  1428. package/lib/ui/Skeleton.js.map +1 -0
  1429. package/lib/ui/Slider.js +24 -0
  1430. package/lib/ui/Slider.js.map +1 -0
  1431. package/lib/ui/Stepper.js +6 -0
  1432. package/lib/ui/Stepper.js.map +1 -0
  1433. package/lib/ui/Switch.js +28 -0
  1434. package/lib/ui/Switch.js.map +1 -0
  1435. package/lib/ui/SyntaxHighlight.js +11 -0
  1436. package/lib/ui/SyntaxHighlight.js.map +1 -0
  1437. package/lib/ui/Tabs.js +47 -0
  1438. package/lib/ui/Tabs.js.map +1 -0
  1439. package/lib/ui/Textarea.js +21 -0
  1440. package/lib/ui/Textarea.js.map +1 -0
  1441. package/lib/ui/Toggle.js +38 -0
  1442. package/lib/ui/Toggle.js.map +1 -0
  1443. package/lib/ui/ToggleGroup.js +42 -0
  1444. package/lib/ui/ToggleGroup.js.map +1 -0
  1445. package/lib/ui/Tooltip.js +58 -0
  1446. package/lib/ui/Tooltip.js.map +1 -0
  1447. package/lib/ui/Value.js +39 -0
  1448. package/lib/ui/Value.js.map +1 -0
  1449. package/lib/ui/util.js +6 -0
  1450. package/lib/ui/util.js.map +1 -0
  1451. package/lib/useCopyToClipboard-B_085nfO.js +14 -0
  1452. package/lib/useCopyToClipboard-B_085nfO.js.map +1 -0
  1453. package/lib/useLatest-hmRS46UF.js +11 -0
  1454. package/lib/useLatest-hmRS46UF.js.map +1 -0
  1455. package/lib/useMutation-C6RqWmTS.js +97 -0
  1456. package/lib/useMutation-C6RqWmTS.js.map +1 -0
  1457. package/lib/xml-BQOOC04j.js +25 -0
  1458. package/lib/xml-BQOOC04j.js.map +1 -0
  1459. package/lib/yaml-BGsJItKv.js +32 -0
  1460. package/lib/yaml-BGsJItKv.js.map +1 -0
  1461. package/lib/zig-CUV2sTct.js +35 -0
  1462. package/lib/zig-CUV2sTct.js.map +1 -0
  1463. package/lib/zudoku.__internal.js +3084 -0
  1464. package/lib/zudoku.__internal.js.map +1 -0
  1465. package/lib/zudoku.auth-auth0.js +32 -29
  1466. package/lib/zudoku.auth-auth0.js.map +1 -1
  1467. package/lib/zudoku.auth-azureb2c.js +136 -0
  1468. package/lib/zudoku.auth-azureb2c.js.map +1 -0
  1469. package/lib/zudoku.auth-clerk.js +112 -61
  1470. package/lib/zudoku.auth-clerk.js.map +1 -1
  1471. package/lib/zudoku.auth-firebase.js +9 -0
  1472. package/lib/zudoku.auth-firebase.js.map +1 -0
  1473. package/lib/zudoku.auth-openid.js +644 -664
  1474. package/lib/zudoku.auth-openid.js.map +1 -1
  1475. package/lib/zudoku.auth-supabase.js +154 -0
  1476. package/lib/zudoku.auth-supabase.js.map +1 -0
  1477. package/lib/zudoku.components.js +27 -3364
  1478. package/lib/zudoku.components.js.map +1 -1
  1479. package/lib/zudoku.hooks.js +14 -0
  1480. package/lib/zudoku.hooks.js.map +1 -0
  1481. package/lib/zudoku.icons.js +10 -0
  1482. package/lib/zudoku.icons.js.map +1 -1
  1483. package/lib/zudoku.mermaid.js +10 -0
  1484. package/lib/zudoku.mermaid.js.map +1 -0
  1485. package/lib/zudoku.plugin-api-catalog.js +124 -0
  1486. package/lib/zudoku.plugin-api-catalog.js.map +1 -0
  1487. package/lib/zudoku.plugin-api-keys.js +653 -200
  1488. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  1489. package/lib/zudoku.plugin-custom-pages.js +19 -0
  1490. package/lib/zudoku.plugin-custom-pages.js.map +1 -0
  1491. package/lib/zudoku.plugin-markdown.js +22 -28
  1492. package/lib/zudoku.plugin-markdown.js.map +1 -1
  1493. package/lib/zudoku.plugin-openapi.js +8 -12
  1494. package/lib/zudoku.plugin-openapi.js.map +1 -1
  1495. package/lib/zudoku.plugin-redirect.js +2 -2
  1496. package/lib/zudoku.plugin-redirect.js.map +1 -1
  1497. package/lib/zudoku.plugin-search-inkeep.js +61 -40
  1498. package/lib/zudoku.plugin-search-inkeep.js.map +1 -1
  1499. package/lib/zudoku.plugin-search-pagefind.js +282 -0
  1500. package/lib/zudoku.plugin-search-pagefind.js.map +1 -0
  1501. package/lib/zudoku.plugins.js +15 -0
  1502. package/lib/zudoku.plugins.js.map +1 -0
  1503. package/lib/zudoku.router.js +2507 -0
  1504. package/lib/zudoku.router.js.map +1 -0
  1505. package/package.json +233 -110
  1506. package/src/app/ZuploBuildConfig.ts +33 -0
  1507. package/src/app/defaultTheme.css +73 -0
  1508. package/src/app/demo-cdn.html +31 -31
  1509. package/src/app/demo.html +1 -1
  1510. package/src/app/demo.tsx +26 -12
  1511. package/src/app/entry.client.tsx +75 -8
  1512. package/src/app/entry.server.tsx +97 -68
  1513. package/src/app/env.ts +43 -0
  1514. package/src/app/font.geist.css +73 -0
  1515. package/src/app/main.css +232 -134
  1516. package/src/app/main.tsx +100 -80
  1517. package/src/app/sentry.ts +24 -0
  1518. package/src/app/standalone.tsx +15 -13
  1519. package/src/lib/MissingIcon.tsx +22 -0
  1520. package/src/lib/assets/language-icons/c.tsx +31 -0
  1521. package/src/lib/assets/language-icons/commonlisp.tsx +22 -0
  1522. package/src/lib/assets/language-icons/cpp.tsx +35 -0
  1523. package/src/lib/assets/language-icons/csharp.tsx +35 -0
  1524. package/src/lib/assets/language-icons/css.tsx +36 -0
  1525. package/src/lib/assets/language-icons/dart.tsx +39 -0
  1526. package/src/lib/assets/language-icons/elixir.tsx +19 -0
  1527. package/src/lib/assets/language-icons/go.tsx +19 -0
  1528. package/src/lib/assets/language-icons/graphql.tsx +19 -0
  1529. package/src/lib/assets/language-icons/html.tsx +24 -0
  1530. package/src/lib/assets/language-icons/java.tsx +35 -0
  1531. package/src/lib/assets/language-icons/javascript.tsx +11 -0
  1532. package/src/lib/assets/language-icons/json.tsx +19 -0
  1533. package/src/lib/assets/language-icons/kotlin.tsx +30 -0
  1534. package/src/lib/assets/language-icons/markdown.tsx +19 -0
  1535. package/src/lib/assets/language-icons/mdx.tsx +23 -0
  1536. package/src/lib/assets/language-icons/objectivec.tsx +23 -0
  1537. package/src/lib/assets/language-icons/ocaml.tsx +34 -0
  1538. package/src/lib/assets/language-icons/php.tsx +19 -0
  1539. package/src/lib/assets/language-icons/powershell.tsx +27 -0
  1540. package/src/lib/assets/language-icons/python.tsx +23 -0
  1541. package/src/lib/assets/language-icons/react.tsx +21 -0
  1542. package/src/lib/assets/language-icons/ruby.tsx +19 -0
  1543. package/src/lib/assets/language-icons/rust.tsx +19 -0
  1544. package/src/lib/assets/language-icons/scala.tsx +19 -0
  1545. package/src/lib/assets/language-icons/shell.tsx +19 -0
  1546. package/src/lib/assets/language-icons/swift.tsx +19 -0
  1547. package/src/lib/assets/language-icons/toml.tsx +23 -0
  1548. package/src/lib/assets/language-icons/typescript.tsx +23 -0
  1549. package/src/lib/assets/language-icons/xml.tsx +19 -0
  1550. package/src/lib/assets/language-icons/yaml.tsx +23 -0
  1551. package/src/lib/assets/language-icons/zig.tsx +32 -0
  1552. package/src/lib/auth/issuer.test.ts +121 -0
  1553. package/src/lib/auth/issuer.ts +44 -0
  1554. package/src/lib/authentication/AuthenticationPlugin.tsx +6 -3
  1555. package/src/lib/authentication/authentication.ts +29 -12
  1556. package/src/lib/authentication/components/CallbackHandler.tsx +36 -50
  1557. package/src/lib/authentication/components/OAuthErrorPage.tsx +171 -0
  1558. package/src/lib/authentication/components/SignIn.tsx +35 -7
  1559. package/src/lib/authentication/components/SignOut.tsx +8 -6
  1560. package/src/lib/authentication/components/SignUp.tsx +36 -5
  1561. package/src/lib/authentication/errors.ts +27 -13
  1562. package/src/lib/authentication/hook.ts +29 -7
  1563. package/src/lib/authentication/providers/auth0.tsx +39 -19
  1564. package/src/lib/authentication/providers/azureb2c.tsx +208 -0
  1565. package/src/lib/authentication/providers/clerk.tsx +138 -54
  1566. package/src/lib/authentication/providers/firebase.tsx +301 -0
  1567. package/src/lib/authentication/providers/openid.tsx +175 -89
  1568. package/src/lib/authentication/providers/supabase/SupabaseAuthUI.tsx +75 -0
  1569. package/src/lib/authentication/providers/supabase.tsx +162 -0
  1570. package/src/lib/authentication/state.ts +65 -24
  1571. package/src/lib/authentication/ui/ZudokuAuthUi.tsx +375 -0
  1572. package/src/lib/authentication/ui/icons/Apple.tsx +10 -0
  1573. package/src/lib/authentication/ui/icons/Facebook.tsx +15 -0
  1574. package/src/lib/authentication/ui/icons/Github.tsx +16 -0
  1575. package/src/lib/authentication/ui/icons/Google.tsx +16 -0
  1576. package/src/lib/authentication/ui/icons/Microsoft.tsx +12 -0
  1577. package/src/lib/authentication/ui/icons/X.tsx +10 -0
  1578. package/src/lib/authentication/use-broadcast/LICENSE.md +18 -0
  1579. package/src/lib/authentication/use-broadcast/shared.ts +372 -0
  1580. package/src/lib/authentication/use-broadcast/useBroadcast.ts +146 -0
  1581. package/src/lib/components/AnchorLink.tsx +13 -8
  1582. package/src/lib/components/Autocomplete.tsx +123 -0
  1583. package/src/lib/components/Banner.tsx +3 -3
  1584. package/src/lib/components/Bootstrap.tsx +44 -16
  1585. package/src/lib/components/BuildCheck.tsx +88 -0
  1586. package/src/lib/components/CategoryHeading.tsx +4 -1
  1587. package/src/lib/components/ClientOnly.tsx +6 -3
  1588. package/src/lib/components/DeveloperHint.tsx +6 -1
  1589. package/src/lib/components/ErrorPage.tsx +3 -3
  1590. package/src/lib/components/Footer.tsx +136 -0
  1591. package/src/lib/components/Framed.tsx +51 -0
  1592. package/src/lib/components/Header.tsx +122 -66
  1593. package/src/lib/components/Heading.tsx +22 -19
  1594. package/src/lib/components/InlineCode.tsx +13 -16
  1595. package/src/lib/components/LanguageIcon.tsx +181 -0
  1596. package/src/lib/components/Layout.tsx +28 -69
  1597. package/src/lib/components/Main.tsx +51 -0
  1598. package/src/lib/components/Markdown.tsx +45 -30
  1599. package/src/lib/components/Mermaid.tsx +68 -0
  1600. package/src/lib/components/Meta.tsx +45 -0
  1601. package/src/lib/components/MobileTopNavigation.tsx +98 -28
  1602. package/src/lib/components/NotFoundPage.tsx +7 -6
  1603. package/src/lib/components/PageProgress.tsx +28 -0
  1604. package/src/lib/components/PagefindSearchMeta.tsx +14 -0
  1605. package/src/lib/components/Pagination.tsx +45 -0
  1606. package/src/lib/components/PathRenderer.tsx +61 -0
  1607. package/src/lib/components/Search.tsx +20 -9
  1608. package/src/lib/components/Slot.test.tsx +465 -0
  1609. package/src/lib/components/Slot.tsx +64 -0
  1610. package/src/lib/components/StatusPage.tsx +96 -0
  1611. package/src/lib/components/ThemeSwitch.tsx +46 -0
  1612. package/src/lib/components/TopNavigation.tsx +104 -27
  1613. package/src/lib/components/Typography.tsx +14 -0
  1614. package/src/lib/components/Zudoku.tsx +116 -0
  1615. package/src/lib/components/cache.ts +27 -0
  1616. package/src/lib/components/context/BypassProtectedRoutesContext.ts +3 -0
  1617. package/src/lib/components/context/ComponentsContext.tsx +2 -2
  1618. package/src/lib/components/context/RouterEventsEmitter.tsx +19 -0
  1619. package/src/lib/components/context/SlotProvider.tsx +149 -0
  1620. package/src/lib/components/context/ViewportAnchorContext.tsx +35 -37
  1621. package/src/lib/components/context/ZudokuContext.ts +87 -29
  1622. package/src/lib/components/context/ZudokuProvider.tsx +4 -3
  1623. package/src/lib/components/index.ts +34 -17
  1624. package/src/lib/components/navigation/Navigation.tsx +50 -0
  1625. package/src/lib/components/navigation/NavigationBadge.tsx +48 -0
  1626. package/src/lib/components/navigation/NavigationCategory.tsx +153 -0
  1627. package/src/lib/components/navigation/NavigationItem.tsx +148 -0
  1628. package/src/lib/components/navigation/NavigationWrapper.tsx +49 -0
  1629. package/src/lib/components/navigation/PoweredByZudoku.tsx +33 -0
  1630. package/src/lib/components/navigation/Toc.tsx +126 -0
  1631. package/src/lib/components/navigation/ZudokuLogo.tsx +25 -0
  1632. package/src/lib/components/navigation/ZuploLogo.tsx +14 -0
  1633. package/src/lib/components/navigation/utils.ts +85 -50
  1634. package/src/lib/core/RouteGuard.tsx +116 -0
  1635. package/src/lib/core/ZudokuContext.ts +249 -0
  1636. package/src/lib/core/__internal.tsx +30 -0
  1637. package/src/lib/core/plugins.ts +56 -23
  1638. package/src/lib/core/router.ts +1 -0
  1639. package/src/lib/errors/ErrorAlert.tsx +29 -17
  1640. package/src/lib/errors/RouterError.tsx +8 -3
  1641. package/src/lib/errors/TopLevelError.tsx +2 -4
  1642. package/src/lib/hooks/index.ts +16 -0
  1643. package/src/lib/hooks/useEvent.test.tsx +151 -0
  1644. package/src/lib/hooks/useEvent.ts +41 -0
  1645. package/src/lib/hooks/useHotkey.ts +70 -0
  1646. package/src/lib/icons.ts +1 -0
  1647. package/src/lib/oas/graphql/circular.ts +58 -0
  1648. package/src/lib/oas/graphql/index.ts +334 -104
  1649. package/src/lib/oas/parser/dereference/index.ts +12 -5
  1650. package/src/lib/oas/parser/dereference/resolveRef.ts +4 -4
  1651. package/src/lib/oas/parser/index.ts +23 -32
  1652. package/src/lib/oas/parser/upgrade/index.ts +105 -39
  1653. package/src/lib/plugins/api-catalog/Catalog.tsx +80 -0
  1654. package/src/lib/plugins/api-catalog/index.tsx +115 -0
  1655. package/src/lib/plugins/api-keys/CreateApiKey.tsx +79 -49
  1656. package/src/lib/plugins/api-keys/CreateApiKeyDialog.tsx +49 -0
  1657. package/src/lib/plugins/api-keys/ProtectedRoute.tsx +12 -8
  1658. package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +441 -122
  1659. package/src/lib/plugins/api-keys/index.tsx +165 -69
  1660. package/src/lib/plugins/custom-pages/index.tsx +32 -0
  1661. package/src/lib/plugins/markdown/MdxPage.tsx +237 -61
  1662. package/src/lib/plugins/markdown/assets/ChatGPTLogo.tsx +11 -0
  1663. package/src/lib/plugins/markdown/assets/ClaudeLogo.tsx +19 -0
  1664. package/src/lib/plugins/markdown/index.tsx +39 -14
  1665. package/src/lib/plugins/openapi/CollapsibleCode.tsx +88 -0
  1666. package/src/lib/plugins/openapi/ColorizedParam.tsx +51 -23
  1667. package/src/lib/plugins/openapi/DownloadSchemaButton.tsx +115 -0
  1668. package/src/lib/plugins/openapi/Endpoint.tsx +33 -43
  1669. package/src/lib/plugins/openapi/GeneratedExampleSidecarBox.tsx +52 -0
  1670. package/src/lib/plugins/openapi/MCPEndpoint.tsx +273 -0
  1671. package/src/lib/plugins/openapi/OasProvider.tsx +65 -0
  1672. package/src/lib/plugins/openapi/OperationList.tsx +282 -74
  1673. package/src/lib/plugins/openapi/OperationListItem.tsx +147 -91
  1674. package/src/lib/plugins/openapi/ParamInfos.tsx +91 -0
  1675. package/src/lib/plugins/openapi/ParameterList.tsx +43 -27
  1676. package/src/lib/plugins/openapi/ParameterListItem.tsx +137 -39
  1677. package/src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx +25 -5
  1678. package/src/lib/plugins/openapi/RequestBodySidecarBox.tsx +52 -28
  1679. package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +109 -64
  1680. package/src/lib/plugins/openapi/SchemaList.tsx +161 -0
  1681. package/src/lib/plugins/openapi/Sidecar.tsx +244 -181
  1682. package/src/lib/plugins/openapi/SidecarBox.tsx +14 -4
  1683. package/src/lib/plugins/openapi/SidecarExamples.tsx +174 -0
  1684. package/src/lib/plugins/openapi/SimpleSelect.tsx +1 -1
  1685. package/src/lib/plugins/openapi/StaggeredRender.tsx +1 -1
  1686. package/src/lib/plugins/openapi/client/GraphQLClient.tsx +65 -0
  1687. package/src/lib/plugins/openapi/client/GraphQLContext.tsx +16 -0
  1688. package/src/lib/plugins/openapi/client/createServer.ts +9 -4
  1689. package/src/lib/plugins/openapi/client/useCreateQuery.ts +46 -0
  1690. package/src/lib/plugins/openapi/components/ConstValue.tsx +24 -0
  1691. package/src/lib/plugins/openapi/components/EnumValues.tsx +58 -0
  1692. package/src/lib/plugins/openapi/components/NonHighlightedCode.tsx +22 -0
  1693. package/src/lib/plugins/openapi/components/ResponseContent.tsx +114 -0
  1694. package/src/lib/plugins/openapi/components/SelectOnClick.tsx +29 -0
  1695. package/src/lib/plugins/openapi/context.tsx +2 -2
  1696. package/src/lib/plugins/openapi/graphql/fragment-masking.ts +12 -19
  1697. package/src/lib/plugins/openapi/graphql/gql.ts +38 -30
  1698. package/src/lib/plugins/openapi/graphql/graphql.ts +411 -683
  1699. package/src/lib/plugins/openapi/index.tsx +173 -160
  1700. package/src/lib/plugins/openapi/interfaces.ts +84 -5
  1701. package/src/lib/plugins/openapi/playground/BodyPanel.tsx +271 -0
  1702. package/src/lib/plugins/openapi/playground/CollapsibleHeader.tsx +51 -0
  1703. package/src/lib/plugins/openapi/playground/ExamplesDropdown.tsx +60 -0
  1704. package/src/lib/plugins/openapi/playground/Headers.tsx +173 -58
  1705. package/src/lib/plugins/openapi/playground/IdentityDialog.tsx +75 -0
  1706. package/src/lib/plugins/openapi/playground/IdentitySelector.tsx +38 -0
  1707. package/src/lib/plugins/openapi/playground/ParamsGrid.tsx +45 -0
  1708. package/src/lib/plugins/openapi/playground/PathParams.tsx +36 -70
  1709. package/src/lib/plugins/openapi/playground/Playground.tsx +459 -288
  1710. package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +24 -30
  1711. package/src/lib/plugins/openapi/playground/QueryParams.tsx +102 -112
  1712. package/src/lib/plugins/openapi/playground/RequestLoginDialog.tsx +70 -0
  1713. package/src/lib/plugins/openapi/playground/Spinner.tsx +87 -0
  1714. package/src/lib/plugins/openapi/playground/fileUtils.ts +32 -0
  1715. package/src/lib/plugins/openapi/playground/rememberedIdentity.ts +26 -0
  1716. package/src/lib/plugins/openapi/playground/request-panel/MultipartField.tsx +91 -0
  1717. package/src/lib/plugins/openapi/playground/request-panel/UrlPath.tsx +31 -0
  1718. package/src/lib/plugins/openapi/playground/request-panel/UrlQueryParams.tsx +25 -0
  1719. package/src/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.tsx +872 -0
  1720. package/src/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.ts +349 -0
  1721. package/src/lib/plugins/openapi/playground/result-panel/Highlight.tsx +26 -0
  1722. package/src/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.tsx +117 -0
  1723. package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +339 -0
  1724. package/src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx +102 -0
  1725. package/src/lib/plugins/openapi/playground/result-panel/convertToTypes.test.ts +64 -0
  1726. package/src/lib/plugins/openapi/playground/result-panel/convertToTypes.ts +36 -0
  1727. package/src/lib/plugins/openapi/playground/useRememberSkipLoginDialog.tsx +23 -0
  1728. package/src/lib/plugins/openapi/processors/removeExtensions.test.ts +223 -0
  1729. package/src/lib/plugins/openapi/processors/removeExtensions.ts +29 -0
  1730. package/src/lib/plugins/openapi/processors/removeParameters.test.ts +183 -0
  1731. package/src/lib/plugins/openapi/processors/removeParameters.ts +103 -0
  1732. package/src/lib/plugins/openapi/processors/removePaths.test.ts +167 -0
  1733. package/src/lib/plugins/openapi/processors/removePaths.ts +57 -0
  1734. package/src/lib/plugins/openapi/processors/traverse.ts +1 -0
  1735. package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +39 -0
  1736. package/src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx +175 -0
  1737. package/src/lib/plugins/openapi/schema/SchemaView.tsx +154 -142
  1738. package/src/lib/plugins/openapi/schema/UnionView.tsx +132 -0
  1739. package/src/lib/plugins/openapi/schema/union-helpers.ts +123 -0
  1740. package/src/lib/plugins/openapi/schema/utils.ts +34 -14
  1741. package/src/lib/plugins/openapi/state.ts +36 -0
  1742. package/src/lib/plugins/openapi/util/createHttpSnippet.ts +107 -0
  1743. package/src/lib/plugins/openapi/util/createNavigationCategory.tsx +39 -0
  1744. package/src/lib/plugins/openapi/util/generateSchemaExample.ts +95 -45
  1745. package/src/lib/plugins/openapi/util/getRoutes.tsx +230 -0
  1746. package/src/lib/plugins/openapi/util/methodColorMap.tsx +11 -0
  1747. package/src/lib/plugins/openapi/util/methodToColor.ts +27 -0
  1748. package/src/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.tsx +32 -0
  1749. package/src/lib/plugins/redirect/index.tsx +6 -10
  1750. package/src/lib/plugins/search-inkeep/index.tsx +83 -32
  1751. package/src/lib/plugins/search-inkeep/inkeep.ts +15 -23
  1752. package/src/lib/plugins/search-pagefind/IndexingDialog.tsx +163 -0
  1753. package/src/lib/plugins/search-pagefind/PagefindSearch.tsx +202 -0
  1754. package/src/lib/plugins/search-pagefind/ResultList.tsx +118 -0
  1755. package/src/lib/plugins/search-pagefind/get-results.tsx +74 -0
  1756. package/src/lib/plugins/search-pagefind/index.tsx +21 -0
  1757. package/src/lib/plugins/search-pagefind/types.ts +118 -0
  1758. package/src/lib/shiki.ts +170 -0
  1759. package/src/lib/ui/Accordion.tsx +56 -0
  1760. package/src/lib/ui/ActionButton.tsx +30 -0
  1761. package/src/lib/ui/Alert.tsx +65 -0
  1762. package/src/lib/ui/AlertDialog.tsx +139 -0
  1763. package/src/lib/ui/AspectRatio.tsx +5 -0
  1764. package/src/lib/ui/Badge.tsx +46 -0
  1765. package/src/lib/ui/Breadcrumb.tsx +116 -0
  1766. package/src/lib/ui/Button.tsx +16 -10
  1767. package/src/lib/ui/ButtonGroup.tsx +82 -0
  1768. package/src/lib/ui/Callout.tsx +47 -21
  1769. package/src/lib/ui/Card.tsx +1 -1
  1770. package/src/lib/ui/Carousel.tsx +260 -0
  1771. package/src/lib/ui/Checkbox.tsx +28 -0
  1772. package/src/lib/ui/CodeBlock.tsx +79 -0
  1773. package/src/lib/ui/Collapsible.tsx +31 -0
  1774. package/src/lib/ui/Command.tsx +191 -0
  1775. package/src/lib/ui/Dialog.tsx +138 -0
  1776. package/src/lib/ui/Drawer.tsx +38 -36
  1777. package/src/lib/ui/DropdownMenu.tsx +226 -170
  1778. package/src/lib/ui/EmbeddedCodeBlock.tsx +99 -0
  1779. package/src/lib/ui/Form.tsx +177 -0
  1780. package/src/lib/ui/Frame.tsx +81 -0
  1781. package/src/lib/ui/HoverCard.tsx +27 -0
  1782. package/src/lib/ui/Input.tsx +2 -3
  1783. package/src/lib/ui/Item.tsx +192 -0
  1784. package/src/lib/ui/Kbd.tsx +28 -0
  1785. package/src/lib/ui/Label.tsx +24 -0
  1786. package/src/lib/ui/NativeSelect.tsx +47 -0
  1787. package/src/lib/ui/Pagination.tsx +116 -0
  1788. package/src/lib/ui/Popover.tsx +29 -0
  1789. package/src/lib/ui/Progress.tsx +26 -0
  1790. package/src/lib/ui/RadioGroup.tsx +42 -0
  1791. package/src/lib/ui/ReactComponentDoc.tsx +68 -0
  1792. package/src/lib/ui/ScrollArea.tsx +46 -0
  1793. package/src/lib/ui/Secret.tsx +123 -0
  1794. package/src/lib/ui/Select.tsx +184 -0
  1795. package/src/lib/ui/Separator.tsx +25 -0
  1796. package/src/lib/ui/Skeleton.tsx +15 -0
  1797. package/src/lib/ui/Slider.tsx +26 -0
  1798. package/src/lib/ui/Stepper.tsx +8 -0
  1799. package/src/lib/ui/Switch.tsx +27 -0
  1800. package/src/lib/ui/SyntaxHighlight.tsx +40 -0
  1801. package/src/lib/ui/Tabs.tsx +2 -2
  1802. package/src/lib/ui/Textarea.tsx +23 -0
  1803. package/src/lib/ui/Toggle.tsx +43 -0
  1804. package/src/lib/ui/ToggleGroup.tsx +59 -0
  1805. package/src/lib/ui/Tooltip.tsx +65 -0
  1806. package/src/lib/ui/Value.tsx +42 -0
  1807. package/src/lib/ui/util.tsx +3 -0
  1808. package/src/lib/util/MdxComponents.tsx +60 -26
  1809. package/src/lib/util/cn.ts +1 -1
  1810. package/src/lib/util/createVariantComponent.tsx +33 -7
  1811. package/src/lib/util/detectOS.ts +9 -0
  1812. package/src/lib/util/ensureArray.ts +3 -0
  1813. package/src/lib/util/flattenAllOf.test.ts +689 -0
  1814. package/src/lib/util/flattenAllOf.ts +122 -0
  1815. package/src/lib/util/groupBy.ts +1 -0
  1816. package/src/lib/util/humanFileSize.test.ts +24 -0
  1817. package/src/lib/util/humanFileSize.ts +15 -0
  1818. package/src/lib/util/invariant.ts +18 -3
  1819. package/src/lib/util/joinPath.tsx +3 -0
  1820. package/src/lib/util/joinUrl.test.ts +62 -0
  1821. package/src/lib/util/joinUrl.ts +57 -0
  1822. package/src/lib/util/os.ts +18 -0
  1823. package/src/lib/util/pastellize.ts +4 -4
  1824. package/src/lib/util/readFrontmatter.ts +13 -0
  1825. package/src/lib/util/scrollIntoViewIfNeeded.ts +18 -0
  1826. package/src/lib/util/syncZustandState.ts +22 -0
  1827. package/src/lib/util/traverse.ts +70 -0
  1828. package/src/lib/util/types.ts +7 -0
  1829. package/src/lib/util/url.test.ts +51 -0
  1830. package/src/lib/util/url.ts +18 -0
  1831. package/src/lib/util/useCopyToClipboard.ts +17 -0
  1832. package/src/lib/util/useExposedProps.tsx +27 -0
  1833. package/src/lib/util/useIsomorphicLayoutEffect.ts +6 -0
  1834. package/src/lib/util/useLatest.ts +18 -0
  1835. package/src/lib/util/useOnScreen.ts +34 -0
  1836. package/src/lib/util/useScrollToAnchor.ts +51 -40
  1837. package/src/lib/util/useScrollToTop.ts +9 -4
  1838. package/src/shiki/langs/abap.js +1 -0
  1839. package/src/shiki/langs/actionscript-3.js +1 -0
  1840. package/src/shiki/langs/ada.js +1 -0
  1841. package/src/shiki/langs/angular-expression.js +1 -0
  1842. package/src/shiki/langs/angular-html.js +1 -0
  1843. package/src/shiki/langs/angular-inline-style.js +1 -0
  1844. package/src/shiki/langs/angular-inline-template.js +1 -0
  1845. package/src/shiki/langs/angular-let-declaration.js +1 -0
  1846. package/src/shiki/langs/angular-template-blocks.js +1 -0
  1847. package/src/shiki/langs/angular-template.js +1 -0
  1848. package/src/shiki/langs/angular-ts.js +1 -0
  1849. package/src/shiki/langs/apache.js +1 -0
  1850. package/src/shiki/langs/apex.js +1 -0
  1851. package/src/shiki/langs/apl.js +1 -0
  1852. package/src/shiki/langs/applescript.js +1 -0
  1853. package/src/shiki/langs/ara.js +1 -0
  1854. package/src/shiki/langs/asciidoc.js +1 -0
  1855. package/src/shiki/langs/asm.js +1 -0
  1856. package/src/shiki/langs/astro.js +1 -0
  1857. package/src/shiki/langs/awk.js +1 -0
  1858. package/src/shiki/langs/ballerina.js +1 -0
  1859. package/src/shiki/langs/bat.js +1 -0
  1860. package/src/shiki/langs/beancount.js +1 -0
  1861. package/src/shiki/langs/berry.js +1 -0
  1862. package/src/shiki/langs/bibtex.js +1 -0
  1863. package/src/shiki/langs/bicep.js +1 -0
  1864. package/src/shiki/langs/blade.js +1 -0
  1865. package/src/shiki/langs/bsl.js +1 -0
  1866. package/src/shiki/langs/c.js +1 -0
  1867. package/src/shiki/langs/cadence.js +1 -0
  1868. package/src/shiki/langs/cairo.js +1 -0
  1869. package/src/shiki/langs/clarity.js +1 -0
  1870. package/src/shiki/langs/clojure.js +1 -0
  1871. package/src/shiki/langs/cmake.js +1 -0
  1872. package/src/shiki/langs/cobol.js +1 -0
  1873. package/src/shiki/langs/codeowners.js +1 -0
  1874. package/src/shiki/langs/codeql.js +1 -0
  1875. package/src/shiki/langs/coffee.js +1 -0
  1876. package/src/shiki/langs/common-lisp.js +1 -0
  1877. package/src/shiki/langs/coq.js +1 -0
  1878. package/src/shiki/langs/cpp-macro.js +1 -0
  1879. package/src/shiki/langs/cpp.js +1 -0
  1880. package/src/shiki/langs/crystal.js +1 -0
  1881. package/src/shiki/langs/csharp.js +1 -0
  1882. package/src/shiki/langs/css.js +1 -0
  1883. package/src/shiki/langs/csv.js +1 -0
  1884. package/src/shiki/langs/cue.js +1 -0
  1885. package/src/shiki/langs/cypher.js +1 -0
  1886. package/src/shiki/langs/d.js +1 -0
  1887. package/src/shiki/langs/dart.js +1 -0
  1888. package/src/shiki/langs/dax.js +1 -0
  1889. package/src/shiki/langs/desktop.js +1 -0
  1890. package/src/shiki/langs/diff.js +1 -0
  1891. package/src/shiki/langs/docker.js +1 -0
  1892. package/src/shiki/langs/dotenv.js +1 -0
  1893. package/src/shiki/langs/dream-maker.js +1 -0
  1894. package/src/shiki/langs/edge.js +1 -0
  1895. package/src/shiki/langs/elixir.js +1 -0
  1896. package/src/shiki/langs/elm.js +1 -0
  1897. package/src/shiki/langs/emacs-lisp.js +1 -0
  1898. package/src/shiki/langs/erb.js +1 -0
  1899. package/src/shiki/langs/erlang.js +1 -0
  1900. package/src/shiki/langs/es-tag-css.js +1 -0
  1901. package/src/shiki/langs/es-tag-glsl.js +1 -0
  1902. package/src/shiki/langs/es-tag-html.js +1 -0
  1903. package/src/shiki/langs/es-tag-sql.js +1 -0
  1904. package/src/shiki/langs/es-tag-xml.js +1 -0
  1905. package/src/shiki/langs/fennel.js +1 -0
  1906. package/src/shiki/langs/fish.js +1 -0
  1907. package/src/shiki/langs/fluent.js +1 -0
  1908. package/src/shiki/langs/fortran-fixed-form.js +1 -0
  1909. package/src/shiki/langs/fortran-free-form.js +1 -0
  1910. package/src/shiki/langs/fsharp.js +1 -0
  1911. package/src/shiki/langs/gdresource.js +1 -0
  1912. package/src/shiki/langs/gdscript.js +1 -0
  1913. package/src/shiki/langs/gdshader.js +1 -0
  1914. package/src/shiki/langs/genie.js +1 -0
  1915. package/src/shiki/langs/gherkin.js +1 -0
  1916. package/src/shiki/langs/git-commit.js +1 -0
  1917. package/src/shiki/langs/git-rebase.js +1 -0
  1918. package/src/shiki/langs/gleam.js +1 -0
  1919. package/src/shiki/langs/glimmer-js.js +1 -0
  1920. package/src/shiki/langs/glimmer-ts.js +1 -0
  1921. package/src/shiki/langs/glsl.js +1 -0
  1922. package/src/shiki/langs/gnuplot.js +1 -0
  1923. package/src/shiki/langs/go.js +1 -0
  1924. package/src/shiki/langs/graphql.js +1 -0
  1925. package/src/shiki/langs/groovy.js +1 -0
  1926. package/src/shiki/langs/hack.js +1 -0
  1927. package/src/shiki/langs/haml.js +1 -0
  1928. package/src/shiki/langs/handlebars.js +1 -0
  1929. package/src/shiki/langs/haskell.js +1 -0
  1930. package/src/shiki/langs/haxe.js +1 -0
  1931. package/src/shiki/langs/hcl.js +1 -0
  1932. package/src/shiki/langs/hjson.js +1 -0
  1933. package/src/shiki/langs/hlsl.js +1 -0
  1934. package/src/shiki/langs/html-derivative.js +1 -0
  1935. package/src/shiki/langs/html.js +1 -0
  1936. package/src/shiki/langs/http.js +1 -0
  1937. package/src/shiki/langs/hurl.js +1 -0
  1938. package/src/shiki/langs/hxml.js +1 -0
  1939. package/src/shiki/langs/hy.js +1 -0
  1940. package/src/shiki/langs/imba.js +1 -0
  1941. package/src/shiki/langs/ini.js +1 -0
  1942. package/src/shiki/langs/java.js +1 -0
  1943. package/src/shiki/langs/javascript.js +1 -0
  1944. package/src/shiki/langs/jinja-html.js +1 -0
  1945. package/src/shiki/langs/jinja.js +1 -0
  1946. package/src/shiki/langs/jison.js +1 -0
  1947. package/src/shiki/langs/json.js +1 -0
  1948. package/src/shiki/langs/json5.js +1 -0
  1949. package/src/shiki/langs/jsonc.js +1 -0
  1950. package/src/shiki/langs/jsonl.js +1 -0
  1951. package/src/shiki/langs/jsonnet.js +1 -0
  1952. package/src/shiki/langs/jssm.js +1 -0
  1953. package/src/shiki/langs/jsx.js +1 -0
  1954. package/src/shiki/langs/julia.js +1 -0
  1955. package/src/shiki/langs/kdl.js +1 -0
  1956. package/src/shiki/langs/kotlin.js +1 -0
  1957. package/src/shiki/langs/kusto.js +1 -0
  1958. package/src/shiki/langs/latex.js +1 -0
  1959. package/src/shiki/langs/lean.js +1 -0
  1960. package/src/shiki/langs/less.js +1 -0
  1961. package/src/shiki/langs/liquid.js +1 -0
  1962. package/src/shiki/langs/llvm.js +1 -0
  1963. package/src/shiki/langs/log.js +1 -0
  1964. package/src/shiki/langs/logo.js +1 -0
  1965. package/src/shiki/langs/lua.js +1 -0
  1966. package/src/shiki/langs/luau.js +1 -0
  1967. package/src/shiki/langs/make.js +1 -0
  1968. package/src/shiki/langs/markdown-nix.js +1 -0
  1969. package/src/shiki/langs/markdown-vue.js +1 -0
  1970. package/src/shiki/langs/markdown.js +1 -0
  1971. package/src/shiki/langs/marko.js +1 -0
  1972. package/src/shiki/langs/matlab.js +1 -0
  1973. package/src/shiki/langs/mdc.js +1 -0
  1974. package/src/shiki/langs/mdx.js +1 -0
  1975. package/src/shiki/langs/mermaid.js +1 -0
  1976. package/src/shiki/langs/mipsasm.js +1 -0
  1977. package/src/shiki/langs/mojo.js +1 -0
  1978. package/src/shiki/langs/move.js +1 -0
  1979. package/src/shiki/langs/narrat.js +1 -0
  1980. package/src/shiki/langs/nextflow.js +1 -0
  1981. package/src/shiki/langs/nginx.js +1 -0
  1982. package/src/shiki/langs/nim.js +1 -0
  1983. package/src/shiki/langs/nix.js +1 -0
  1984. package/src/shiki/langs/nushell.js +1 -0
  1985. package/src/shiki/langs/objective-c.js +1 -0
  1986. package/src/shiki/langs/objective-cpp.js +1 -0
  1987. package/src/shiki/langs/ocaml.js +1 -0
  1988. package/src/shiki/langs/openscad.js +1 -0
  1989. package/src/shiki/langs/pascal.js +1 -0
  1990. package/src/shiki/langs/perl.js +1 -0
  1991. package/src/shiki/langs/php.js +1 -0
  1992. package/src/shiki/langs/pkl.js +1 -0
  1993. package/src/shiki/langs/plsql.js +1 -0
  1994. package/src/shiki/langs/po.js +1 -0
  1995. package/src/shiki/langs/polar.js +1 -0
  1996. package/src/shiki/langs/postcss.js +1 -0
  1997. package/src/shiki/langs/powerquery.js +1 -0
  1998. package/src/shiki/langs/powershell.js +1 -0
  1999. package/src/shiki/langs/prisma.js +1 -0
  2000. package/src/shiki/langs/prolog.js +1 -0
  2001. package/src/shiki/langs/proto.js +1 -0
  2002. package/src/shiki/langs/pug.js +1 -0
  2003. package/src/shiki/langs/puppet.js +1 -0
  2004. package/src/shiki/langs/purescript.js +1 -0
  2005. package/src/shiki/langs/python.js +1 -0
  2006. package/src/shiki/langs/qml.js +1 -0
  2007. package/src/shiki/langs/qmldir.js +1 -0
  2008. package/src/shiki/langs/qss.js +1 -0
  2009. package/src/shiki/langs/r.js +1 -0
  2010. package/src/shiki/langs/racket.js +1 -0
  2011. package/src/shiki/langs/raku.js +1 -0
  2012. package/src/shiki/langs/razor.js +1 -0
  2013. package/src/shiki/langs/reg.js +1 -0
  2014. package/src/shiki/langs/regexp.js +1 -0
  2015. package/src/shiki/langs/rel.js +1 -0
  2016. package/src/shiki/langs/riscv.js +1 -0
  2017. package/src/shiki/langs/rosmsg.js +1 -0
  2018. package/src/shiki/langs/rst.js +1 -0
  2019. package/src/shiki/langs/ruby.js +1 -0
  2020. package/src/shiki/langs/rust.js +1 -0
  2021. package/src/shiki/langs/sas.js +1 -0
  2022. package/src/shiki/langs/sass.js +1 -0
  2023. package/src/shiki/langs/scala.js +1 -0
  2024. package/src/shiki/langs/scheme.js +1 -0
  2025. package/src/shiki/langs/scss.js +1 -0
  2026. package/src/shiki/langs/sdbl.js +1 -0
  2027. package/src/shiki/langs/shaderlab.js +1 -0
  2028. package/src/shiki/langs/shellscript.js +1 -0
  2029. package/src/shiki/langs/shellsession.js +1 -0
  2030. package/src/shiki/langs/smalltalk.js +1 -0
  2031. package/src/shiki/langs/solidity.js +1 -0
  2032. package/src/shiki/langs/soy.js +1 -0
  2033. package/src/shiki/langs/sparql.js +1 -0
  2034. package/src/shiki/langs/splunk.js +1 -0
  2035. package/src/shiki/langs/sql.js +1 -0
  2036. package/src/shiki/langs/ssh-config.js +1 -0
  2037. package/src/shiki/langs/stata.js +1 -0
  2038. package/src/shiki/langs/stylus.js +1 -0
  2039. package/src/shiki/langs/svelte.js +1 -0
  2040. package/src/shiki/langs/swift.js +1 -0
  2041. package/src/shiki/langs/system-verilog.js +1 -0
  2042. package/src/shiki/langs/systemd.js +1 -0
  2043. package/src/shiki/langs/talonscript.js +1 -0
  2044. package/src/shiki/langs/tasl.js +1 -0
  2045. package/src/shiki/langs/tcl.js +1 -0
  2046. package/src/shiki/langs/templ.js +1 -0
  2047. package/src/shiki/langs/terraform.js +1 -0
  2048. package/src/shiki/langs/tex.js +1 -0
  2049. package/src/shiki/langs/toml.js +1 -0
  2050. package/src/shiki/langs/ts-tags.js +1 -0
  2051. package/src/shiki/langs/tsv.js +1 -0
  2052. package/src/shiki/langs/tsx.js +1 -0
  2053. package/src/shiki/langs/turtle.js +1 -0
  2054. package/src/shiki/langs/twig.js +1 -0
  2055. package/src/shiki/langs/typescript.js +1 -0
  2056. package/src/shiki/langs/typespec.js +1 -0
  2057. package/src/shiki/langs/typst.js +1 -0
  2058. package/src/shiki/langs/v.js +1 -0
  2059. package/src/shiki/langs/vala.js +1 -0
  2060. package/src/shiki/langs/vb.js +1 -0
  2061. package/src/shiki/langs/verilog.js +1 -0
  2062. package/src/shiki/langs/vhdl.js +1 -0
  2063. package/src/shiki/langs/viml.js +1 -0
  2064. package/src/shiki/langs/vue-directives.js +1 -0
  2065. package/src/shiki/langs/vue-html.js +1 -0
  2066. package/src/shiki/langs/vue-interpolations.js +1 -0
  2067. package/src/shiki/langs/vue-sfc-style-variable-injection.js +1 -0
  2068. package/src/shiki/langs/vue-vine.js +1 -0
  2069. package/src/shiki/langs/vue.js +1 -0
  2070. package/src/shiki/langs/vyper.js +1 -0
  2071. package/src/shiki/langs/wasm.js +1 -0
  2072. package/src/shiki/langs/wenyan.js +1 -0
  2073. package/src/shiki/langs/wgsl.js +1 -0
  2074. package/src/shiki/langs/wikitext.js +1 -0
  2075. package/src/shiki/langs/wit.js +1 -0
  2076. package/src/shiki/langs/wolfram.js +1 -0
  2077. package/src/shiki/langs/xml.js +1 -0
  2078. package/src/shiki/langs/xsl.js +1 -0
  2079. package/src/shiki/langs/yaml.js +1 -0
  2080. package/src/shiki/langs/zenscript.js +1 -0
  2081. package/src/shiki/langs/zig.js +1 -0
  2082. package/src/shiki/themes/andromeeda.js +1 -0
  2083. package/src/shiki/themes/aurora-x.js +1 -0
  2084. package/src/shiki/themes/ayu-dark.js +1 -0
  2085. package/src/shiki/themes/catppuccin-frappe.js +1 -0
  2086. package/src/shiki/themes/catppuccin-latte.js +1 -0
  2087. package/src/shiki/themes/catppuccin-macchiato.js +1 -0
  2088. package/src/shiki/themes/catppuccin-mocha.js +1 -0
  2089. package/src/shiki/themes/dark-plus.js +1 -0
  2090. package/src/shiki/themes/dracula-soft.js +1 -0
  2091. package/src/shiki/themes/dracula.js +1 -0
  2092. package/src/shiki/themes/everforest-dark.js +1 -0
  2093. package/src/shiki/themes/everforest-light.js +1 -0
  2094. package/src/shiki/themes/github-dark-default.js +1 -0
  2095. package/src/shiki/themes/github-dark-dimmed.js +1 -0
  2096. package/src/shiki/themes/github-dark-high-contrast.js +1 -0
  2097. package/src/shiki/themes/github-dark.js +1 -0
  2098. package/src/shiki/themes/github-light-default.js +1 -0
  2099. package/src/shiki/themes/github-light-high-contrast.js +1 -0
  2100. package/src/shiki/themes/github-light.js +1 -0
  2101. package/src/shiki/themes/gruvbox-dark-hard.js +1 -0
  2102. package/src/shiki/themes/gruvbox-dark-medium.js +1 -0
  2103. package/src/shiki/themes/gruvbox-dark-soft.js +1 -0
  2104. package/src/shiki/themes/gruvbox-light-hard.js +1 -0
  2105. package/src/shiki/themes/gruvbox-light-medium.js +1 -0
  2106. package/src/shiki/themes/gruvbox-light-soft.js +1 -0
  2107. package/src/shiki/themes/houston.js +1 -0
  2108. package/src/shiki/themes/kanagawa-dragon.js +1 -0
  2109. package/src/shiki/themes/kanagawa-lotus.js +1 -0
  2110. package/src/shiki/themes/kanagawa-wave.js +1 -0
  2111. package/src/shiki/themes/laserwave.js +1 -0
  2112. package/src/shiki/themes/light-plus.js +1 -0
  2113. package/src/shiki/themes/material-theme-darker.js +1 -0
  2114. package/src/shiki/themes/material-theme-lighter.js +1 -0
  2115. package/src/shiki/themes/material-theme-ocean.js +1 -0
  2116. package/src/shiki/themes/material-theme-palenight.js +1 -0
  2117. package/src/shiki/themes/material-theme.js +1 -0
  2118. package/src/shiki/themes/min-dark.js +1 -0
  2119. package/src/shiki/themes/min-light.js +1 -0
  2120. package/src/shiki/themes/monokai.js +1 -0
  2121. package/src/shiki/themes/night-owl.js +1 -0
  2122. package/src/shiki/themes/nord.js +1 -0
  2123. package/src/shiki/themes/one-dark-pro.js +1 -0
  2124. package/src/shiki/themes/one-light.js +1 -0
  2125. package/src/shiki/themes/plastic.js +1 -0
  2126. package/src/shiki/themes/poimandres.js +1 -0
  2127. package/src/shiki/themes/red.js +1 -0
  2128. package/src/shiki/themes/rose-pine-dawn.js +1 -0
  2129. package/src/shiki/themes/rose-pine-moon.js +1 -0
  2130. package/src/shiki/themes/rose-pine.js +1 -0
  2131. package/src/shiki/themes/slack-dark.js +1 -0
  2132. package/src/shiki/themes/slack-ochin.js +1 -0
  2133. package/src/shiki/themes/snazzy-light.js +1 -0
  2134. package/src/shiki/themes/solarized-dark.js +1 -0
  2135. package/src/shiki/themes/solarized-light.js +1 -0
  2136. package/src/shiki/themes/synthwave-84.js +1 -0
  2137. package/src/shiki/themes/tokyo-night.js +1 -0
  2138. package/src/shiki/themes/vesper.js +1 -0
  2139. package/src/shiki/themes/vitesse-black.js +1 -0
  2140. package/src/shiki/themes/vitesse-dark.js +1 -0
  2141. package/src/shiki/themes/vitesse-light.js +1 -0
  2142. package/LICENSE.md +0 -9
  2143. package/dist/app/tailwind.d.ts +0 -3
  2144. package/dist/app/tailwind.js +0 -65
  2145. package/dist/app/tailwind.js.map +0 -1
  2146. package/dist/config/validators/InputSidebarSchema.d.ts +0 -186
  2147. package/dist/config/validators/InputSidebarSchema.js +0 -73
  2148. package/dist/config/validators/InputSidebarSchema.js.map +0 -1
  2149. package/dist/config/validators/SidebarSchema.d.ts +0 -23
  2150. package/dist/config/validators/SidebarSchema.js +0 -82
  2151. package/dist/config/validators/SidebarSchema.js.map +0 -1
  2152. package/dist/internal.d.ts +0 -1
  2153. package/dist/internal.js +0 -2
  2154. package/dist/internal.js.map +0 -1
  2155. package/dist/lib/components/DevPortal.d.ts +0 -7
  2156. package/dist/lib/components/DevPortal.js +0 -54
  2157. package/dist/lib/components/DevPortal.js.map +0 -1
  2158. package/dist/lib/components/Dialog.d.ts +0 -19
  2159. package/dist/lib/components/Dialog.js +0 -23
  2160. package/dist/lib/components/Dialog.js.map +0 -1
  2161. package/dist/lib/components/Select.d.ts +0 -13
  2162. package/dist/lib/components/Select.js +0 -27
  2163. package/dist/lib/components/Select.js.map +0 -1
  2164. package/dist/lib/components/SlotletProvider.d.ts +0 -9
  2165. package/dist/lib/components/SlotletProvider.js +0 -16
  2166. package/dist/lib/components/SlotletProvider.js.map +0 -1
  2167. package/dist/lib/components/SyntaxHighlight.d.ts +0 -11
  2168. package/dist/lib/components/SyntaxHighlight.js +0 -50
  2169. package/dist/lib/components/SyntaxHighlight.js.map +0 -1
  2170. package/dist/lib/components/context/PluginSystem.js +0 -2
  2171. package/dist/lib/components/context/PluginSystem.js.map +0 -1
  2172. package/dist/lib/components/context/ThemeContext.d.ts +0 -2
  2173. package/dist/lib/components/context/ThemeContext.js +0 -7
  2174. package/dist/lib/components/context/ThemeContext.js.map +0 -1
  2175. package/dist/lib/components/context/ThemeProvider.d.ts +0 -4
  2176. package/dist/lib/components/context/ThemeProvider.js +0 -23
  2177. package/dist/lib/components/context/ThemeProvider.js.map +0 -1
  2178. package/dist/lib/components/navigation/Sidebar.d.ts +0 -1
  2179. package/dist/lib/components/navigation/Sidebar.js +0 -14
  2180. package/dist/lib/components/navigation/Sidebar.js.map +0 -1
  2181. package/dist/lib/components/navigation/SidebarBadge.d.ts +0 -23
  2182. package/dist/lib/components/navigation/SidebarBadge.js +0 -24
  2183. package/dist/lib/components/navigation/SidebarBadge.js.map +0 -1
  2184. package/dist/lib/components/navigation/SidebarCategory.d.ts +0 -5
  2185. package/dist/lib/components/navigation/SidebarCategory.js +0 -41
  2186. package/dist/lib/components/navigation/SidebarCategory.js.map +0 -1
  2187. package/dist/lib/components/navigation/SidebarItem.d.ts +0 -12
  2188. package/dist/lib/components/navigation/SidebarItem.js +0 -43
  2189. package/dist/lib/components/navigation/SidebarItem.js.map +0 -1
  2190. package/dist/lib/components/navigation/SidebarWrapper.d.ts +0 -6
  2191. package/dist/lib/components/navigation/SidebarWrapper.js +0 -6
  2192. package/dist/lib/components/navigation/SidebarWrapper.js.map +0 -1
  2193. package/dist/lib/core/DevPortalContext.d.ts +0 -78
  2194. package/dist/lib/core/DevPortalContext.js +0 -49
  2195. package/dist/lib/core/DevPortalContext.js.map +0 -1
  2196. package/dist/lib/plugins/custom-page/index.d.ts +0 -8
  2197. package/dist/lib/plugins/custom-page/index.js +0 -12
  2198. package/dist/lib/plugins/custom-page/index.js.map +0 -1
  2199. package/dist/lib/plugins/markdown/Toc.js +0 -48
  2200. package/dist/lib/plugins/markdown/Toc.js.map +0 -1
  2201. package/dist/lib/plugins/markdown/generateRoutes.d.ts +0 -3
  2202. package/dist/lib/plugins/markdown/generateRoutes.js +0 -21
  2203. package/dist/lib/plugins/markdown/generateRoutes.js.map +0 -1
  2204. package/dist/lib/plugins/openapi/Route.d.ts +0 -6
  2205. package/dist/lib/plugins/openapi/Route.js +0 -8
  2206. package/dist/lib/plugins/openapi/Route.js.map +0 -1
  2207. package/dist/lib/plugins/openapi/client/createMemoryClient.d.ts +0 -12
  2208. package/dist/lib/plugins/openapi/client/createMemoryClient.js +0 -46
  2209. package/dist/lib/plugins/openapi/client/createMemoryClient.js.map +0 -1
  2210. package/dist/lib/plugins/openapi/client/createWorkerClient.d.ts +0 -10
  2211. package/dist/lib/plugins/openapi/client/createWorkerClient.js +0 -61
  2212. package/dist/lib/plugins/openapi/client/createWorkerClient.js.map +0 -1
  2213. package/dist/lib/plugins/openapi/client/interfaces.d.ts +0 -4
  2214. package/dist/lib/plugins/openapi/client/interfaces.js +0 -2
  2215. package/dist/lib/plugins/openapi/client/interfaces.js.map +0 -1
  2216. package/dist/lib/plugins/openapi/client/worker.js +0 -20
  2217. package/dist/lib/plugins/openapi/client/worker.js.map +0 -1
  2218. package/dist/lib/plugins/openapi/playground/Editor.d.ts +0 -1
  2219. package/dist/lib/plugins/openapi/playground/Editor.js +0 -5
  2220. package/dist/lib/plugins/openapi/playground/Editor.js.map +0 -1
  2221. package/dist/lib/plugins/openapi/playground/InlineInput.d.ts +0 -4
  2222. package/dist/lib/plugins/openapi/playground/InlineInput.js +0 -3
  2223. package/dist/lib/plugins/openapi/playground/InlineInput.js.map +0 -1
  2224. package/dist/lib/plugins/openapi/playground/ResponseTab.d.ts +0 -4
  2225. package/dist/lib/plugins/openapi/playground/ResponseTab.js +0 -42
  2226. package/dist/lib/plugins/openapi/playground/ResponseTab.js.map +0 -1
  2227. package/dist/lib/plugins/openapi/playground/UrlDisplay.d.ts +0 -4
  2228. package/dist/lib/plugins/openapi/playground/UrlDisplay.js +0 -22
  2229. package/dist/lib/plugins/openapi/playground/UrlDisplay.js.map +0 -1
  2230. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.d.ts +0 -9
  2231. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.js +0 -14
  2232. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.js.map +0 -1
  2233. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.d.ts +0 -6
  2234. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.js +0 -17
  2235. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.js.map +0 -1
  2236. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.d.ts +0 -7
  2237. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.js +0 -10
  2238. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.js.map +0 -1
  2239. package/dist/lib/plugins/openapi/schema/SchemaComponents.d.ts +0 -13
  2240. package/dist/lib/plugins/openapi/schema/SchemaComponents.js +0 -28
  2241. package/dist/lib/plugins/openapi/schema/SchemaComponents.js.map +0 -1
  2242. package/dist/lib/plugins/openapi/util/urql.d.ts +0 -7
  2243. package/dist/lib/plugins/openapi/util/urql.js +0 -8
  2244. package/dist/lib/plugins/openapi/util/urql.js.map +0 -1
  2245. package/dist/lib/plugins/openapi-worker.d.ts +0 -1
  2246. package/dist/lib/plugins/openapi-worker.js +0 -2
  2247. package/dist/lib/plugins/openapi-worker.js.map +0 -1
  2248. package/dist/lib/plugins/search-inkeep/InkeepCustomTrigger.d.ts +0 -2
  2249. package/dist/lib/plugins/search-inkeep/InkeepCustomTrigger.js +0 -3
  2250. package/dist/lib/plugins/search-inkeep/InkeepCustomTrigger.js.map +0 -1
  2251. package/dist/lib/themeToggle.d.ts +0 -1
  2252. package/dist/lib/themeToggle.js +0 -7
  2253. package/dist/lib/themeToggle.js.map +0 -1
  2254. package/dist/lib/ui/Note.d.ts +0 -8
  2255. package/dist/lib/ui/Note.js +0 -23
  2256. package/dist/lib/ui/Note.js.map +0 -1
  2257. package/dist/lib/util/createWaitForNotify.d.ts +0 -1
  2258. package/dist/lib/util/createWaitForNotify.js +0 -15
  2259. package/dist/lib/util/createWaitForNotify.js.map +0 -1
  2260. package/dist/vite/plugin-custom-css.d.ts +0 -6
  2261. package/dist/vite/plugin-custom-css.js +0 -55
  2262. package/dist/vite/plugin-custom-css.js.map +0 -1
  2263. package/dist/vite/plugin-docs.test.js +0 -30
  2264. package/dist/vite/plugin-docs.test.js.map +0 -1
  2265. package/dist/vite/plugin-html-transform.d.ts +0 -2
  2266. package/dist/vite/plugin-html-transform.js +0 -15
  2267. package/dist/vite/plugin-html-transform.js.map +0 -1
  2268. package/dist/vite/plugin-sidebar.d.ts +0 -3
  2269. package/dist/vite/plugin-sidebar.js +0 -46
  2270. package/dist/vite/plugin-sidebar.js.map +0 -1
  2271. package/dist/vite/prerender.d.ts +0 -17
  2272. package/dist/vite/prerender.js +0 -87
  2273. package/dist/vite/prerender.js.map +0 -1
  2274. package/lib/AuthenticationPlugin-Bx9FK124.js +0 -55
  2275. package/lib/AuthenticationPlugin-Bx9FK124.js.map +0 -1
  2276. package/lib/CategoryHeading-ovR-zHRq.js +0 -10
  2277. package/lib/CategoryHeading-ovR-zHRq.js.map +0 -1
  2278. package/lib/DeveloperHint-YeWHKvyr.js +0 -16
  2279. package/lib/DeveloperHint-YeWHKvyr.js.map +0 -1
  2280. package/lib/ErrorPage-CsZAN_za.js +0 -16
  2281. package/lib/ErrorPage-CsZAN_za.js.map +0 -1
  2282. package/lib/InkeepCustomTrigger-CE5-K5ex.js +0 -6
  2283. package/lib/InkeepCustomTrigger-CE5-K5ex.js.map +0 -1
  2284. package/lib/Input-CtVUl3eT.js +0 -2198
  2285. package/lib/Input-CtVUl3eT.js.map +0 -1
  2286. package/lib/Markdown-DapSf3wG.js +0 -20281
  2287. package/lib/Markdown-DapSf3wG.js.map +0 -1
  2288. package/lib/MdxPage-BqBWsXZ1.js +0 -172
  2289. package/lib/MdxPage-BqBWsXZ1.js.map +0 -1
  2290. package/lib/OperationList-CYrmxPa8.js +0 -602
  2291. package/lib/OperationList-CYrmxPa8.js.map +0 -1
  2292. package/lib/Route-Q5mqNQrv.js +0 -14
  2293. package/lib/Route-Q5mqNQrv.js.map +0 -1
  2294. package/lib/SidebarBadge-Dx7jtnoA.js +0 -498
  2295. package/lib/SidebarBadge-Dx7jtnoA.js.map +0 -1
  2296. package/lib/SlotletProvider-D3UD5Go3.js +0 -238
  2297. package/lib/SlotletProvider-D3UD5Go3.js.map +0 -1
  2298. package/lib/Spinner-3cQDBVGr.js +0 -7
  2299. package/lib/Spinner-3cQDBVGr.js.map +0 -1
  2300. package/lib/ZudokuContext-cr-pTRY1.js +0 -1084
  2301. package/lib/ZudokuContext-cr-pTRY1.js.map +0 -1
  2302. package/lib/_commonjsHelpers-BkfeUUK-.js +0 -29
  2303. package/lib/_commonjsHelpers-BkfeUUK-.js.map +0 -1
  2304. package/lib/assets/index-B9EWVYfo.js +0 -4790
  2305. package/lib/assets/index-B9EWVYfo.js.map +0 -1
  2306. package/lib/assets/worker-BP8Uzflt.js +0 -17916
  2307. package/lib/assets/worker-BP8Uzflt.js.map +0 -1
  2308. package/lib/index-BG0g4WW0.js +0 -1771
  2309. package/lib/index-BG0g4WW0.js.map +0 -1
  2310. package/lib/index-BlJ2rj99.js +0 -5815
  2311. package/lib/index-BlJ2rj99.js.map +0 -1
  2312. package/lib/index-Bn6Lc9tq.js +0 -9
  2313. package/lib/index-Bn6Lc9tq.js.map +0 -1
  2314. package/lib/index-BngPzhKn.js +0 -124
  2315. package/lib/index-BngPzhKn.js.map +0 -1
  2316. package/lib/index-CLd8ycZz.js +0 -4790
  2317. package/lib/index-CLd8ycZz.js.map +0 -1
  2318. package/lib/index-Dolisrci.js +0 -2814
  2319. package/lib/index-Dolisrci.js.map +0 -1
  2320. package/lib/index-LNp6rxyU.js +0 -2094
  2321. package/lib/index-LNp6rxyU.js.map +0 -1
  2322. package/lib/joinPath-B7kNnUX4.js +0 -8
  2323. package/lib/joinPath-B7kNnUX4.js.map +0 -1
  2324. package/lib/jsx-runtime-B6kdoens.js +0 -635
  2325. package/lib/jsx-runtime-B6kdoens.js.map +0 -1
  2326. package/lib/prism-bash.min-DadFsM4Z.js +0 -7
  2327. package/lib/prism-bash.min-DadFsM4Z.js.map +0 -1
  2328. package/lib/prism-csharp.min-Yizuc34Y.js +0 -35
  2329. package/lib/prism-csharp.min-Yizuc34Y.js.map +0 -1
  2330. package/lib/prism-java.min-d5iT_mOd.js +0 -7
  2331. package/lib/prism-java.min-d5iT_mOd.js.map +0 -1
  2332. package/lib/prism-javascript.min-CEqHqgbm.js +0 -9
  2333. package/lib/prism-javascript.min-CEqHqgbm.js.map +0 -1
  2334. package/lib/prism-json.min-B1GJqK1k.js +0 -2
  2335. package/lib/prism-json.min-B1GJqK1k.js.map +0 -1
  2336. package/lib/prism-markdown.min-F3U-vPBi.js +0 -61
  2337. package/lib/prism-markdown.min-F3U-vPBi.js.map +0 -1
  2338. package/lib/prism-markup-BNGj0Tvm.js +0 -174
  2339. package/lib/prism-markup-BNGj0Tvm.js.map +0 -1
  2340. package/lib/prism-markup-templating-DZrrEs0A.js +0 -62
  2341. package/lib/prism-markup-templating-DZrrEs0A.js.map +0 -1
  2342. package/lib/prism-objectivec.min-BXSWqpJJ.js +0 -2
  2343. package/lib/prism-objectivec.min-BXSWqpJJ.js.map +0 -1
  2344. package/lib/prism-php.min-o7FpoMP_.js +0 -11
  2345. package/lib/prism-php.min-o7FpoMP_.js.map +0 -1
  2346. package/lib/prism-ruby.min-C7LwcKyz.js +0 -10
  2347. package/lib/prism-ruby.min-C7LwcKyz.js.map +0 -1
  2348. package/lib/prism-typescript.min-oSVeWCAd.js +0 -6
  2349. package/lib/prism-typescript.min-oSVeWCAd.js.map +0 -1
  2350. package/lib/router-D2p7Olpn.js +0 -2971
  2351. package/lib/router-D2p7Olpn.js.map +0 -1
  2352. package/lib/state-hNe1dw4B.js +0 -548
  2353. package/lib/state-hNe1dw4B.js.map +0 -1
  2354. package/lib/urql-YhcsXYy8.js +0 -1591
  2355. package/lib/urql-YhcsXYy8.js.map +0 -1
  2356. package/lib/utils-ByIc_KIM.js +0 -749
  2357. package/lib/utils-ByIc_KIM.js.map +0 -1
  2358. package/lib/zudoku.openapi-worker.js +0 -16059
  2359. package/lib/zudoku.openapi-worker.js.map +0 -1
  2360. package/lib/zudoku.plugin-custom-page.js +0 -13
  2361. package/lib/zudoku.plugin-custom-page.js.map +0 -1
  2362. package/src/app/tailwind.ts +0 -68
  2363. package/src/lib/components/DevPortal.tsx +0 -111
  2364. package/src/lib/components/Dialog.tsx +0 -119
  2365. package/src/lib/components/Select.tsx +0 -157
  2366. package/src/lib/components/SlotletProvider.tsx +0 -30
  2367. package/src/lib/components/SyntaxHighlight.tsx +0 -122
  2368. package/src/lib/components/context/PluginSystem.ts +0 -0
  2369. package/src/lib/components/context/ThemeContext.tsx +0 -8
  2370. package/src/lib/components/context/ThemeProvider.tsx +0 -27
  2371. package/src/lib/components/navigation/Sidebar.tsx +0 -39
  2372. package/src/lib/components/navigation/SidebarBadge.tsx +0 -43
  2373. package/src/lib/components/navigation/SidebarCategory.tsx +0 -131
  2374. package/src/lib/components/navigation/SidebarItem.tsx +0 -130
  2375. package/src/lib/components/navigation/SidebarWrapper.tsx +0 -26
  2376. package/src/lib/core/DevPortalContext.ts +0 -135
  2377. package/src/lib/plugins/custom-page/index.tsx +0 -22
  2378. package/src/lib/plugins/markdown/Toc.tsx +0 -135
  2379. package/src/lib/plugins/markdown/generateRoutes.tsx +0 -38
  2380. package/src/lib/plugins/openapi/Route.tsx +0 -21
  2381. package/src/lib/plugins/openapi/client/createMemoryClient.ts +0 -56
  2382. package/src/lib/plugins/openapi/client/createWorkerClient.ts +0 -80
  2383. package/src/lib/plugins/openapi/client/interfaces.ts +0 -5
  2384. package/src/lib/plugins/openapi/client/worker.ts +0 -30
  2385. package/src/lib/plugins/openapi/playground/Editor.tsx +0 -4
  2386. package/src/lib/plugins/openapi/playground/InlineInput.tsx +0 -6
  2387. package/src/lib/plugins/openapi/playground/ResponseTab.tsx +0 -76
  2388. package/src/lib/plugins/openapi/playground/UrlDisplay.tsx +0 -32
  2389. package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.tsx +0 -47
  2390. package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.tsx +0 -54
  2391. package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.tsx +0 -30
  2392. package/src/lib/plugins/openapi/schema/SchemaComponents.tsx +0 -126
  2393. package/src/lib/plugins/openapi/util/urql.ts +0 -8
  2394. package/src/lib/plugins/openapi-worker.ts +0 -1
  2395. package/src/lib/plugins/search-inkeep/InkeepCustomTrigger.tsx +0 -3
  2396. package/src/lib/themeToggle.ts +0 -7
  2397. package/src/lib/ui/Note.tsx +0 -58
  2398. package/src/lib/util/createWaitForNotify.ts +0 -18
  2399. /package/dist/{lib/components/context/PluginSystem.d.ts → config/validators/InputNavigationSchema.test-d.d.ts} +0 -0
  2400. /package/dist/{lib/plugins/openapi/client/worker.d.ts → config/validators/validate.test.d.ts} +0 -0
  2401. /package/dist/{vite/plugin-docs.test.d.ts → lib/auth/issuer.test.d.ts} +0 -0
  2402. /package/dist/lib/{plugins/markdown → components/navigation}/Toc.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-CeVTNcfF.js","sources":["../src/lib/plugins/openapi/client/GraphQLClient.tsx","../../../node_modules/.pnpm/graphql@16.12.0/node_modules/graphql/jsutils/devAssert.mjs","../../../node_modules/.pnpm/graphql@16.12.0/node_modules/graphql/jsutils/isObjectLike.mjs","../../../node_modules/.pnpm/graphql@16.12.0/node_modules/graphql/jsutils/invariant.mjs","../../../node_modules/.pnpm/graphql@16.12.0/node_modules/graphql/language/location.mjs","../../../node_modules/.pnpm/graphql@16.12.0/node_modules/graphql/language/printLocation.mjs","../../../node_modules/.pnpm/graphql@16.12.0/node_modules/graphql/error/GraphQLError.mjs","../../../node_modules/.pnpm/graphql@16.12.0/node_modules/graphql/error/syntaxError.mjs","../../../node_modules/.pnpm/graphql@16.12.0/node_modules/graphql/language/ast.mjs","../../../node_modules/.pnpm/graphql@16.12.0/node_modules/graphql/language/characterClasses.mjs","../../../node_modules/.pnpm/graphql@16.12.0/node_modules/graphql/language/blockString.mjs","../../../node_modules/.pnpm/graphql@16.12.0/node_modules/graphql/language/tokenKind.mjs","../../../node_modules/.pnpm/graphql@16.12.0/node_modules/graphql/language/lexer.mjs","../../../node_modules/.pnpm/graphql@16.12.0/node_modules/graphql/jsutils/inspect.mjs","../../../node_modules/.pnpm/graphql@16.12.0/node_modules/graphql/jsutils/instanceOf.mjs","../../../node_modules/.pnpm/graphql@16.12.0/node_modules/graphql/language/source.mjs","../../../node_modules/.pnpm/graphql@16.12.0/node_modules/graphql/utilities/stripIgnoredCharacters.mjs","../src/lib/plugins/openapi/client/GraphQLContext.tsx","../src/lib/plugins/openapi/client/useCreateQuery.ts","../src/lib/plugins/openapi/graphql/graphql.ts","../src/lib/plugins/openapi/graphql/gql.ts","../src/lib/ui/Collapsible.tsx","../src/lib/util/os.ts","../src/lib/hooks/useHotkey.ts","../src/lib/plugins/openapi/state.ts","../src/lib/ui/Textarea.tsx","../src/lib/util/humanFileSize.ts","../src/lib/plugins/openapi/playground/CollapsibleHeader.tsx","../src/lib/plugins/openapi/playground/ExamplesDropdown.tsx","../src/lib/plugins/openapi/playground/ParamsGrid.tsx","../src/lib/ui/Checkbox.tsx","../src/lib/plugins/openapi/playground/request-panel/MultipartField.tsx","../src/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.ts","../src/lib/plugins/openapi/playground/BodyPanel.tsx","../src/lib/plugins/openapi/playground/createUrl.ts","../src/lib/plugins/openapi/playground/fileUtils.ts","../src/lib/ui/Popover.tsx","../src/lib/components/Autocomplete.tsx","../src/lib/plugins/openapi/playground/Headers.tsx","../src/lib/ui/Label.tsx","../src/lib/ui/RadioGroup.tsx","../src/lib/plugins/openapi/playground/IdentitySelector.tsx","../src/lib/plugins/openapi/playground/IdentityDialog.tsx","../src/lib/util/pastellize.ts","../src/lib/plugins/openapi/ColorizedParam.tsx","../src/lib/plugins/openapi/playground/PathParams.tsx","../src/lib/plugins/openapi/playground/QueryParams.tsx","../src/lib/plugins/openapi/playground/RequestLoginDialog.tsx","../src/lib/plugins/openapi/playground/rememberedIdentity.ts","../src/lib/components/PathRenderer.tsx","../src/lib/plugins/openapi/playground/request-panel/UrlPath.tsx","../src/lib/plugins/openapi/playground/request-panel/UrlQueryParams.tsx","../src/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.tsx","../src/lib/plugins/openapi/playground/result-panel/convertToTypes.ts","../src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx","../src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx","../src/lib/plugins/openapi/playground/useRememberSkipLoginDialog.tsx","../src/lib/plugins/openapi/playground/Playground.tsx","../src/lib/plugins/openapi/playground/PlaygroundDialog.tsx","../src/lib/plugins/openapi/util/methodColorMap.tsx","../src/lib/plugins/openapi/util/createNavigationCategory.tsx","../src/lib/plugins/openapi/context.tsx","../src/lib/plugins/openapi/util/getRoutes.tsx","../src/lib/plugins/openapi/index.tsx"],"sourcesContent":["import type { GraphQLError } from \"graphql/error/index.js\";\nimport { ZudokuError } from \"../../../util/invariant.js\";\nimport type { TypedDocumentString } from \"../graphql/graphql.js\";\nimport type { OpenApiPluginOptions } from \"../index.js\";\nimport type { LocalServer } from \"./createServer.js\";\n\nlet localServerPromise: Promise<LocalServer> | undefined;\n\ntype GraphQLResponse<TResult> = {\n errors?: GraphQLError[];\n data: TResult;\n};\n\nconst throwIfError = (response: GraphQLResponse<unknown>) => {\n if (!response.errors?.[0]) return;\n\n throw new ZudokuError(response.errors[0].message, {\n developerHint:\n \"Check your configuration value `apis.type` and `apis.input` in the Zudoku config.\",\n });\n};\n\nexport class GraphQLClient {\n constructor(private readonly config: OpenApiPluginOptions) {}\n\n #getLocalServer = async () => {\n if (!localServerPromise) {\n localServerPromise = import(\"./createServer.js\").then((m) =>\n m.createServer(this.config),\n );\n }\n return localServerPromise;\n };\n\n #executeFetch = async (init: RequestInit): Promise<Response> => {\n if (this.config.server) {\n return fetch(this.config.server, init);\n }\n\n const localServer = await this.#getLocalServer();\n return localServer.fetch(\"http://localhost/graphql\", init);\n };\n\n fetch = async <TResult, TVariables>(\n query: TypedDocumentString<TResult, TVariables>,\n variables?: TVariables,\n ): Promise<TResult> => {\n const operationName = query.match(/query (\\w+)/)?.[1];\n\n const response = await this.#executeFetch({\n method: \"POST\",\n body: JSON.stringify({ query, variables, operationName }),\n headers: { \"Content-Type\": \"application/json\" },\n });\n\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n\n const result = (await response.json()) as GraphQLResponse<TResult>;\n throwIfError(result);\n\n return result.data;\n };\n}\n","export function devAssert(condition, message) {\n const booleanCondition = Boolean(condition);\n\n if (!booleanCondition) {\n throw new Error(message);\n }\n}\n","/**\n * Return true if `value` is object-like. A value is object-like if it's not\n * `null` and has a `typeof` result of \"object\".\n */\nexport function isObjectLike(value) {\n return typeof value == 'object' && value !== null;\n}\n","export function invariant(condition, message) {\n const booleanCondition = Boolean(condition);\n\n if (!booleanCondition) {\n throw new Error(\n message != null ? message : 'Unexpected invariant triggered.',\n );\n }\n}\n","import { invariant } from '../jsutils/invariant.mjs';\nconst LineRegExp = /\\r\\n|[\\n\\r]/g;\n/**\n * Represents a location in a Source.\n */\n\n/**\n * Takes a Source and a UTF-8 character offset, and returns the corresponding\n * line and column as a SourceLocation.\n */\nexport function getLocation(source, position) {\n let lastLineStart = 0;\n let line = 1;\n\n for (const match of source.body.matchAll(LineRegExp)) {\n typeof match.index === 'number' || invariant(false);\n\n if (match.index >= position) {\n break;\n }\n\n lastLineStart = match.index + match[0].length;\n line += 1;\n }\n\n return {\n line,\n column: position + 1 - lastLineStart,\n };\n}\n","import { getLocation } from './location.mjs';\n\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\nexport function printLocation(location) {\n return printSourceLocation(\n location.source,\n getLocation(location.source, location.start),\n );\n}\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\n\nexport function printSourceLocation(source, sourceLocation) {\n const firstLineColumnOffset = source.locationOffset.column - 1;\n const body = ''.padStart(firstLineColumnOffset) + source.body;\n const lineIndex = sourceLocation.line - 1;\n const lineOffset = source.locationOffset.line - 1;\n const lineNum = sourceLocation.line + lineOffset;\n const columnOffset = sourceLocation.line === 1 ? firstLineColumnOffset : 0;\n const columnNum = sourceLocation.column + columnOffset;\n const locationStr = `${source.name}:${lineNum}:${columnNum}\\n`;\n const lines = body.split(/\\r\\n|[\\n\\r]/g);\n const locationLine = lines[lineIndex]; // Special case for minified documents\n\n if (locationLine.length > 120) {\n const subLineIndex = Math.floor(columnNum / 80);\n const subLineColumnNum = columnNum % 80;\n const subLines = [];\n\n for (let i = 0; i < locationLine.length; i += 80) {\n subLines.push(locationLine.slice(i, i + 80));\n }\n\n return (\n locationStr +\n printPrefixedLines([\n [`${lineNum} |`, subLines[0]],\n ...subLines.slice(1, subLineIndex + 1).map((subLine) => ['|', subLine]),\n ['|', '^'.padStart(subLineColumnNum)],\n ['|', subLines[subLineIndex + 1]],\n ])\n );\n }\n\n return (\n locationStr +\n printPrefixedLines([\n // Lines specified like this: [\"prefix\", \"string\"],\n [`${lineNum - 1} |`, lines[lineIndex - 1]],\n [`${lineNum} |`, locationLine],\n ['|', '^'.padStart(columnNum)],\n [`${lineNum + 1} |`, lines[lineIndex + 1]],\n ])\n );\n}\n\nfunction printPrefixedLines(lines) {\n const existingLines = lines.filter(([_, line]) => line !== undefined);\n const padLen = Math.max(...existingLines.map(([prefix]) => prefix.length));\n return existingLines\n .map(([prefix, line]) => prefix.padStart(padLen) + (line ? ' ' + line : ''))\n .join('\\n');\n}\n","import { isObjectLike } from '../jsutils/isObjectLike.mjs';\nimport { getLocation } from '../language/location.mjs';\nimport {\n printLocation,\n printSourceLocation,\n} from '../language/printLocation.mjs';\n\nfunction toNormalizedOptions(args) {\n const firstArg = args[0];\n\n if (firstArg == null || 'kind' in firstArg || 'length' in firstArg) {\n return {\n nodes: firstArg,\n source: args[1],\n positions: args[2],\n path: args[3],\n originalError: args[4],\n extensions: args[5],\n };\n }\n\n return firstArg;\n}\n/**\n * A GraphQLError describes an Error found during the parse, validate, or\n * execute phases of performing a GraphQL operation. In addition to a message\n * and stack trace, it also includes information about the locations in a\n * GraphQL document and/or execution result that correspond to the Error.\n */\n\nexport class GraphQLError extends Error {\n /**\n * An array of `{ line, column }` locations within the source GraphQL document\n * which correspond to this error.\n *\n * Errors during validation often contain multiple locations, for example to\n * point out two things with the same name. Errors during execution include a\n * single location, the field which produced the error.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array describing the JSON-path into the execution response which\n * corresponds to this error. Only included for errors during execution.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array of GraphQL AST Nodes corresponding to this error.\n */\n\n /**\n * The source GraphQL document for the first location of this error.\n *\n * Note that if this Error represents more than one node, the source may not\n * represent nodes after the first node.\n */\n\n /**\n * An array of character offsets within the source GraphQL document\n * which correspond to this error.\n */\n\n /**\n * The original error thrown from a field resolver during execution.\n */\n\n /**\n * Extension fields to add to the formatted error.\n */\n\n /**\n * @deprecated Please use the `GraphQLErrorOptions` constructor overload instead.\n */\n constructor(message, ...rawArgs) {\n var _this$nodes, _nodeLocations$, _ref;\n\n const { nodes, source, positions, path, originalError, extensions } =\n toNormalizedOptions(rawArgs);\n super(message);\n this.name = 'GraphQLError';\n this.path = path !== null && path !== void 0 ? path : undefined;\n this.originalError =\n originalError !== null && originalError !== void 0\n ? originalError\n : undefined; // Compute list of blame nodes.\n\n this.nodes = undefinedIfEmpty(\n Array.isArray(nodes) ? nodes : nodes ? [nodes] : undefined,\n );\n const nodeLocations = undefinedIfEmpty(\n (_this$nodes = this.nodes) === null || _this$nodes === void 0\n ? void 0\n : _this$nodes.map((node) => node.loc).filter((loc) => loc != null),\n ); // Compute locations in the source for the given nodes/positions.\n\n this.source =\n source !== null && source !== void 0\n ? source\n : nodeLocations === null || nodeLocations === void 0\n ? void 0\n : (_nodeLocations$ = nodeLocations[0]) === null ||\n _nodeLocations$ === void 0\n ? void 0\n : _nodeLocations$.source;\n this.positions =\n positions !== null && positions !== void 0\n ? positions\n : nodeLocations === null || nodeLocations === void 0\n ? void 0\n : nodeLocations.map((loc) => loc.start);\n this.locations =\n positions && source\n ? positions.map((pos) => getLocation(source, pos))\n : nodeLocations === null || nodeLocations === void 0\n ? void 0\n : nodeLocations.map((loc) => getLocation(loc.source, loc.start));\n const originalExtensions = isObjectLike(\n originalError === null || originalError === void 0\n ? void 0\n : originalError.extensions,\n )\n ? originalError === null || originalError === void 0\n ? void 0\n : originalError.extensions\n : undefined;\n this.extensions =\n (_ref =\n extensions !== null && extensions !== void 0\n ? extensions\n : originalExtensions) !== null && _ref !== void 0\n ? _ref\n : Object.create(null); // Only properties prescribed by the spec should be enumerable.\n // Keep the rest as non-enumerable.\n\n Object.defineProperties(this, {\n message: {\n writable: true,\n enumerable: true,\n },\n name: {\n enumerable: false,\n },\n nodes: {\n enumerable: false,\n },\n source: {\n enumerable: false,\n },\n positions: {\n enumerable: false,\n },\n originalError: {\n enumerable: false,\n },\n }); // Include (non-enumerable) stack trace.\n\n /* c8 ignore start */\n // FIXME: https://github.com/graphql/graphql-js/issues/2317\n\n if (\n originalError !== null &&\n originalError !== void 0 &&\n originalError.stack\n ) {\n Object.defineProperty(this, 'stack', {\n value: originalError.stack,\n writable: true,\n configurable: true,\n });\n } else if (Error.captureStackTrace) {\n Error.captureStackTrace(this, GraphQLError);\n } else {\n Object.defineProperty(this, 'stack', {\n value: Error().stack,\n writable: true,\n configurable: true,\n });\n }\n /* c8 ignore stop */\n }\n\n get [Symbol.toStringTag]() {\n return 'GraphQLError';\n }\n\n toString() {\n let output = this.message;\n\n if (this.nodes) {\n for (const node of this.nodes) {\n if (node.loc) {\n output += '\\n\\n' + printLocation(node.loc);\n }\n }\n } else if (this.source && this.locations) {\n for (const location of this.locations) {\n output += '\\n\\n' + printSourceLocation(this.source, location);\n }\n }\n\n return output;\n }\n\n toJSON() {\n const formattedError = {\n message: this.message,\n };\n\n if (this.locations != null) {\n formattedError.locations = this.locations;\n }\n\n if (this.path != null) {\n formattedError.path = this.path;\n }\n\n if (this.extensions != null && Object.keys(this.extensions).length > 0) {\n formattedError.extensions = this.extensions;\n }\n\n return formattedError;\n }\n}\n\nfunction undefinedIfEmpty(array) {\n return array === undefined || array.length === 0 ? undefined : array;\n}\n/**\n * See: https://spec.graphql.org/draft/#sec-Errors\n */\n\n/**\n * Prints a GraphQLError to a string, representing useful location information\n * about the error's position in the source.\n *\n * @deprecated Please use `error.toString` instead. Will be removed in v17\n */\nexport function printError(error) {\n return error.toString();\n}\n/**\n * Given a GraphQLError, format it according to the rules described by the\n * Response Format, Errors section of the GraphQL Specification.\n *\n * @deprecated Please use `error.toJSON` instead. Will be removed in v17\n */\n\nexport function formatError(error) {\n return error.toJSON();\n}\n","import { GraphQLError } from './GraphQLError.mjs';\n/**\n * Produces a GraphQLError representing a syntax error, containing useful\n * descriptive information about the syntax error's position in the source.\n */\n\nexport function syntaxError(source, position, description) {\n return new GraphQLError(`Syntax Error: ${description}`, {\n source,\n positions: [position],\n });\n}\n","/**\n * Contains a range of UTF-8 character offsets and token references that\n * identify the region of the source from which the AST derived.\n */\nexport class Location {\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The Token at which this Node begins.\n */\n\n /**\n * The Token at which this Node ends.\n */\n\n /**\n * The Source document the AST represents.\n */\n constructor(startToken, endToken, source) {\n this.start = startToken.start;\n this.end = endToken.end;\n this.startToken = startToken;\n this.endToken = endToken;\n this.source = source;\n }\n\n get [Symbol.toStringTag]() {\n return 'Location';\n }\n\n toJSON() {\n return {\n start: this.start,\n end: this.end,\n };\n }\n}\n/**\n * Represents a range of characters represented by a lexical token\n * within a Source.\n */\n\nexport class Token {\n /**\n * The kind of Token.\n */\n\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The 1-indexed line number on which this Token appears.\n */\n\n /**\n * The 1-indexed column number at which this Token begins.\n */\n\n /**\n * For non-punctuation tokens, represents the interpreted value of the token.\n *\n * Note: is undefined for punctuation tokens, but typed as string for\n * convenience in the parser.\n */\n\n /**\n * Tokens exist as nodes in a double-linked-list amongst all tokens\n * including ignored tokens. <SOF> is always the first node and <EOF>\n * the last.\n */\n constructor(kind, start, end, line, column, value) {\n this.kind = kind;\n this.start = start;\n this.end = end;\n this.line = line;\n this.column = column; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\n this.value = value;\n this.prev = null;\n this.next = null;\n }\n\n get [Symbol.toStringTag]() {\n return 'Token';\n }\n\n toJSON() {\n return {\n kind: this.kind,\n value: this.value,\n line: this.line,\n column: this.column,\n };\n }\n}\n/**\n * The list of all possible AST node types.\n */\n\n/**\n * @internal\n */\nexport const QueryDocumentKeys = {\n Name: [],\n Document: ['definitions'],\n OperationDefinition: [\n 'description',\n 'name',\n 'variableDefinitions',\n 'directives',\n 'selectionSet',\n ],\n VariableDefinition: [\n 'description',\n 'variable',\n 'type',\n 'defaultValue',\n 'directives',\n ],\n Variable: ['name'],\n SelectionSet: ['selections'],\n Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],\n Argument: ['name', 'value'],\n FragmentSpread: ['name', 'directives'],\n InlineFragment: ['typeCondition', 'directives', 'selectionSet'],\n FragmentDefinition: [\n 'description',\n 'name', // Note: fragment variable definitions are deprecated and will removed in v17.0.0\n 'variableDefinitions',\n 'typeCondition',\n 'directives',\n 'selectionSet',\n ],\n IntValue: [],\n FloatValue: [],\n StringValue: [],\n BooleanValue: [],\n NullValue: [],\n EnumValue: [],\n ListValue: ['values'],\n ObjectValue: ['fields'],\n ObjectField: ['name', 'value'],\n Directive: ['name', 'arguments'],\n NamedType: ['name'],\n ListType: ['type'],\n NonNullType: ['type'],\n SchemaDefinition: ['description', 'directives', 'operationTypes'],\n OperationTypeDefinition: ['type'],\n ScalarTypeDefinition: ['description', 'name', 'directives'],\n ObjectTypeDefinition: [\n 'description',\n 'name',\n 'interfaces',\n 'directives',\n 'fields',\n ],\n FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],\n InputValueDefinition: [\n 'description',\n 'name',\n 'type',\n 'defaultValue',\n 'directives',\n ],\n InterfaceTypeDefinition: [\n 'description',\n 'name',\n 'interfaces',\n 'directives',\n 'fields',\n ],\n UnionTypeDefinition: ['description', 'name', 'directives', 'types'],\n EnumTypeDefinition: ['description', 'name', 'directives', 'values'],\n EnumValueDefinition: ['description', 'name', 'directives'],\n InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],\n DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],\n SchemaExtension: ['directives', 'operationTypes'],\n ScalarTypeExtension: ['name', 'directives'],\n ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n UnionTypeExtension: ['name', 'directives', 'types'],\n EnumTypeExtension: ['name', 'directives', 'values'],\n InputObjectTypeExtension: ['name', 'directives', 'fields'],\n TypeCoordinate: ['name'],\n MemberCoordinate: ['name', 'memberName'],\n ArgumentCoordinate: ['name', 'fieldName', 'argumentName'],\n DirectiveCoordinate: ['name'],\n DirectiveArgumentCoordinate: ['name', 'argumentName'],\n};\nconst kindValues = new Set(Object.keys(QueryDocumentKeys));\n/**\n * @internal\n */\n\nexport function isNode(maybeNode) {\n const maybeKind =\n maybeNode === null || maybeNode === void 0 ? void 0 : maybeNode.kind;\n return typeof maybeKind === 'string' && kindValues.has(maybeKind);\n}\n/** Name */\n\nvar OperationTypeNode;\n\n(function (OperationTypeNode) {\n OperationTypeNode['QUERY'] = 'query';\n OperationTypeNode['MUTATION'] = 'mutation';\n OperationTypeNode['SUBSCRIPTION'] = 'subscription';\n})(OperationTypeNode || (OperationTypeNode = {}));\n\nexport { OperationTypeNode };\n","/**\n * ```\n * WhiteSpace ::\n * - \"Horizontal Tab (U+0009)\"\n * - \"Space (U+0020)\"\n * ```\n * @internal\n */\nexport function isWhiteSpace(code) {\n return code === 0x0009 || code === 0x0020;\n}\n/**\n * ```\n * Digit :: one of\n * - `0` `1` `2` `3` `4` `5` `6` `7` `8` `9`\n * ```\n * @internal\n */\n\nexport function isDigit(code) {\n return code >= 0x0030 && code <= 0x0039;\n}\n/**\n * ```\n * Letter :: one of\n * - `A` `B` `C` `D` `E` `F` `G` `H` `I` `J` `K` `L` `M`\n * - `N` `O` `P` `Q` `R` `S` `T` `U` `V` `W` `X` `Y` `Z`\n * - `a` `b` `c` `d` `e` `f` `g` `h` `i` `j` `k` `l` `m`\n * - `n` `o` `p` `q` `r` `s` `t` `u` `v` `w` `x` `y` `z`\n * ```\n * @internal\n */\n\nexport function isLetter(code) {\n return (\n (code >= 0x0061 && code <= 0x007a) || // A-Z\n (code >= 0x0041 && code <= 0x005a) // a-z\n );\n}\n/**\n * ```\n * NameStart ::\n * - Letter\n * - `_`\n * ```\n * @internal\n */\n\nexport function isNameStart(code) {\n return isLetter(code) || code === 0x005f;\n}\n/**\n * ```\n * NameContinue ::\n * - Letter\n * - Digit\n * - `_`\n * ```\n * @internal\n */\n\nexport function isNameContinue(code) {\n return isLetter(code) || isDigit(code) || code === 0x005f;\n}\n","import { isWhiteSpace } from './characterClasses.mjs';\n/**\n * Produces the value of a block string from its parsed raw value, similar to\n * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.\n *\n * This implements the GraphQL spec's BlockStringValue() static algorithm.\n *\n * @internal\n */\n\nexport function dedentBlockStringLines(lines) {\n var _firstNonEmptyLine2;\n\n let commonIndent = Number.MAX_SAFE_INTEGER;\n let firstNonEmptyLine = null;\n let lastNonEmptyLine = -1;\n\n for (let i = 0; i < lines.length; ++i) {\n var _firstNonEmptyLine;\n\n const line = lines[i];\n const indent = leadingWhitespace(line);\n\n if (indent === line.length) {\n continue; // skip empty lines\n }\n\n firstNonEmptyLine =\n (_firstNonEmptyLine = firstNonEmptyLine) !== null &&\n _firstNonEmptyLine !== void 0\n ? _firstNonEmptyLine\n : i;\n lastNonEmptyLine = i;\n\n if (i !== 0 && indent < commonIndent) {\n commonIndent = indent;\n }\n }\n\n return lines // Remove common indentation from all lines but first.\n .map((line, i) => (i === 0 ? line : line.slice(commonIndent))) // Remove leading and trailing blank lines.\n .slice(\n (_firstNonEmptyLine2 = firstNonEmptyLine) !== null &&\n _firstNonEmptyLine2 !== void 0\n ? _firstNonEmptyLine2\n : 0,\n lastNonEmptyLine + 1,\n );\n}\n\nfunction leadingWhitespace(str) {\n let i = 0;\n\n while (i < str.length && isWhiteSpace(str.charCodeAt(i))) {\n ++i;\n }\n\n return i;\n}\n/**\n * @internal\n */\n\nexport function isPrintableAsBlockString(value) {\n if (value === '') {\n return true; // empty string is printable\n }\n\n let isEmptyLine = true;\n let hasIndent = false;\n let hasCommonIndent = true;\n let seenNonEmptyLine = false;\n\n for (let i = 0; i < value.length; ++i) {\n switch (value.codePointAt(i)) {\n case 0x0000:\n case 0x0001:\n case 0x0002:\n case 0x0003:\n case 0x0004:\n case 0x0005:\n case 0x0006:\n case 0x0007:\n case 0x0008:\n case 0x000b:\n case 0x000c:\n case 0x000e:\n case 0x000f:\n return false;\n // Has non-printable characters\n\n case 0x000d:\n // \\r\n return false;\n // Has \\r or \\r\\n which will be replaced as \\n\n\n case 10:\n // \\n\n if (isEmptyLine && !seenNonEmptyLine) {\n return false; // Has leading new line\n }\n\n seenNonEmptyLine = true;\n isEmptyLine = true;\n hasIndent = false;\n break;\n\n case 9: // \\t\n\n case 32:\n // <space>\n hasIndent || (hasIndent = isEmptyLine);\n break;\n\n default:\n hasCommonIndent && (hasCommonIndent = hasIndent);\n isEmptyLine = false;\n }\n }\n\n if (isEmptyLine) {\n return false; // Has trailing empty lines\n }\n\n if (hasCommonIndent && seenNonEmptyLine) {\n return false; // Has internal indent\n }\n\n return true;\n}\n/**\n * Print a block string in the indented block form by adding a leading and\n * trailing blank line. However, if a block string starts with whitespace and is\n * a single-line, adding a leading blank line would strip that whitespace.\n *\n * @internal\n */\n\nexport function printBlockString(value, options) {\n const escapedValue = value.replace(/\"\"\"/g, '\\\\\"\"\"'); // Expand a block string's raw value into independent lines.\n\n const lines = escapedValue.split(/\\r\\n|[\\n\\r]/g);\n const isSingleLine = lines.length === 1; // If common indentation is found we can fix some of those cases by adding leading new line\n\n const forceLeadingNewLine =\n lines.length > 1 &&\n lines\n .slice(1)\n .every((line) => line.length === 0 || isWhiteSpace(line.charCodeAt(0))); // Trailing triple quotes just looks confusing but doesn't force trailing new line\n\n const hasTrailingTripleQuotes = escapedValue.endsWith('\\\\\"\"\"'); // Trailing quote (single or double) or slash forces trailing new line\n\n const hasTrailingQuote = value.endsWith('\"') && !hasTrailingTripleQuotes;\n const hasTrailingSlash = value.endsWith('\\\\');\n const forceTrailingNewline = hasTrailingQuote || hasTrailingSlash;\n const printAsMultipleLines =\n !(options !== null && options !== void 0 && options.minimize) && // add leading and trailing new lines only if it improves readability\n (!isSingleLine ||\n value.length > 70 ||\n forceTrailingNewline ||\n forceLeadingNewLine ||\n hasTrailingTripleQuotes);\n let result = ''; // Format a multi-line block quote to account for leading space.\n\n const skipLeadingNewLine = isSingleLine && isWhiteSpace(value.charCodeAt(0));\n\n if ((printAsMultipleLines && !skipLeadingNewLine) || forceLeadingNewLine) {\n result += '\\n';\n }\n\n result += escapedValue;\n\n if (printAsMultipleLines || forceTrailingNewline) {\n result += '\\n';\n }\n\n return '\"\"\"' + result + '\"\"\"';\n}\n","/**\n * An exported enum describing the different kinds of tokens that the\n * lexer emits.\n */\nvar TokenKind;\n\n(function (TokenKind) {\n TokenKind['SOF'] = '<SOF>';\n TokenKind['EOF'] = '<EOF>';\n TokenKind['BANG'] = '!';\n TokenKind['DOLLAR'] = '$';\n TokenKind['AMP'] = '&';\n TokenKind['PAREN_L'] = '(';\n TokenKind['PAREN_R'] = ')';\n TokenKind['DOT'] = '.';\n TokenKind['SPREAD'] = '...';\n TokenKind['COLON'] = ':';\n TokenKind['EQUALS'] = '=';\n TokenKind['AT'] = '@';\n TokenKind['BRACKET_L'] = '[';\n TokenKind['BRACKET_R'] = ']';\n TokenKind['BRACE_L'] = '{';\n TokenKind['PIPE'] = '|';\n TokenKind['BRACE_R'] = '}';\n TokenKind['NAME'] = 'Name';\n TokenKind['INT'] = 'Int';\n TokenKind['FLOAT'] = 'Float';\n TokenKind['STRING'] = 'String';\n TokenKind['BLOCK_STRING'] = 'BlockString';\n TokenKind['COMMENT'] = 'Comment';\n})(TokenKind || (TokenKind = {}));\n\nexport { TokenKind };\n/**\n * The enum type representing the token kinds values.\n *\n * @deprecated Please use `TokenKind`. Will be remove in v17.\n */\n","import { syntaxError } from '../error/syntaxError.mjs';\nimport { Token } from './ast.mjs';\nimport { dedentBlockStringLines } from './blockString.mjs';\nimport { isDigit, isNameContinue, isNameStart } from './characterClasses.mjs';\nimport { TokenKind } from './tokenKind.mjs';\n/**\n * A Lexer interface which provides common properties and methods required for\n * lexing GraphQL source.\n *\n * @internal\n */\n\n/**\n * Given a Source object, creates a Lexer for that source.\n * A Lexer is a stateful stream generator in that every time\n * it is advanced, it returns the next token in the Source. Assuming the\n * source lexes, the final Token emitted by the lexer will be of kind\n * EOF, after which the lexer will repeatedly return the same EOF token\n * whenever called.\n */\nexport class Lexer {\n /**\n * The previously focused non-ignored token.\n */\n\n /**\n * The currently focused non-ignored token.\n */\n\n /**\n * The (1-indexed) line containing the current token.\n */\n\n /**\n * The character offset at which the current line begins.\n */\n constructor(source) {\n const startOfFileToken = new Token(TokenKind.SOF, 0, 0, 0, 0);\n this.source = source;\n this.lastToken = startOfFileToken;\n this.token = startOfFileToken;\n this.line = 1;\n this.lineStart = 0;\n }\n\n get [Symbol.toStringTag]() {\n return 'Lexer';\n }\n /**\n * Advances the token stream to the next non-ignored token.\n */\n\n advance() {\n this.lastToken = this.token;\n const token = (this.token = this.lookahead());\n return token;\n }\n /**\n * Looks ahead and returns the next non-ignored token, but does not change\n * the state of Lexer.\n */\n\n lookahead() {\n let token = this.token;\n\n if (token.kind !== TokenKind.EOF) {\n do {\n if (token.next) {\n token = token.next;\n } else {\n // Read the next token and form a link in the token linked-list.\n const nextToken = readNextToken(this, token.end); // @ts-expect-error next is only mutable during parsing.\n\n token.next = nextToken; // @ts-expect-error prev is only mutable during parsing.\n\n nextToken.prev = token;\n token = nextToken;\n }\n } while (token.kind === TokenKind.COMMENT);\n }\n\n return token;\n }\n}\n/**\n * @internal\n */\n\nexport function isPunctuatorTokenKind(kind) {\n return (\n kind === TokenKind.BANG ||\n kind === TokenKind.DOLLAR ||\n kind === TokenKind.AMP ||\n kind === TokenKind.PAREN_L ||\n kind === TokenKind.PAREN_R ||\n kind === TokenKind.DOT ||\n kind === TokenKind.SPREAD ||\n kind === TokenKind.COLON ||\n kind === TokenKind.EQUALS ||\n kind === TokenKind.AT ||\n kind === TokenKind.BRACKET_L ||\n kind === TokenKind.BRACKET_R ||\n kind === TokenKind.BRACE_L ||\n kind === TokenKind.PIPE ||\n kind === TokenKind.BRACE_R\n );\n}\n/**\n * A Unicode scalar value is any Unicode code point except surrogate code\n * points. In other words, the inclusive ranges of values 0x0000 to 0xD7FF and\n * 0xE000 to 0x10FFFF.\n *\n * SourceCharacter ::\n * - \"Any Unicode scalar value\"\n */\n\nfunction isUnicodeScalarValue(code) {\n return (\n (code >= 0x0000 && code <= 0xd7ff) || (code >= 0xe000 && code <= 0x10ffff)\n );\n}\n/**\n * The GraphQL specification defines source text as a sequence of unicode scalar\n * values (which Unicode defines to exclude surrogate code points). However\n * JavaScript defines strings as a sequence of UTF-16 code units which may\n * include surrogates. A surrogate pair is a valid source character as it\n * encodes a supplementary code point (above U+FFFF), but unpaired surrogate\n * code points are not valid source characters.\n */\n\nfunction isSupplementaryCodePoint(body, location) {\n return (\n isLeadingSurrogate(body.charCodeAt(location)) &&\n isTrailingSurrogate(body.charCodeAt(location + 1))\n );\n}\n\nfunction isLeadingSurrogate(code) {\n return code >= 0xd800 && code <= 0xdbff;\n}\n\nfunction isTrailingSurrogate(code) {\n return code >= 0xdc00 && code <= 0xdfff;\n}\n/**\n * Prints the code point (or end of file reference) at a given location in a\n * source for use in error messages.\n *\n * Printable ASCII is printed quoted, while other points are printed in Unicode\n * code point form (ie. U+1234).\n *\n * @internal\n */\n\nexport function printCodePointAt(lexer, location) {\n const code = lexer.source.body.codePointAt(location);\n\n if (code === undefined) {\n return TokenKind.EOF;\n } else if (code >= 0x0020 && code <= 0x007e) {\n // Printable ASCII\n const char = String.fromCodePoint(code);\n return char === '\"' ? \"'\\\"'\" : `\"${char}\"`;\n } // Unicode code point\n\n return 'U+' + code.toString(16).toUpperCase().padStart(4, '0');\n}\n/**\n * Create a token with line and column location information.\n *\n * @internal\n */\n\nexport function createToken(lexer, kind, start, end, value) {\n const line = lexer.line;\n const col = 1 + start - lexer.lineStart;\n return new Token(kind, start, end, line, col, value);\n}\n/**\n * Gets the next token from the source starting at the given position.\n *\n * This skips over whitespace until it finds the next lexable token, then lexes\n * punctuators immediately or calls the appropriate helper function for more\n * complicated tokens.\n */\n\nfunction readNextToken(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let position = start;\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position); // SourceCharacter\n\n switch (code) {\n // Ignored ::\n // - UnicodeBOM\n // - WhiteSpace\n // - LineTerminator\n // - Comment\n // - Comma\n //\n // UnicodeBOM :: \"Byte Order Mark (U+FEFF)\"\n //\n // WhiteSpace ::\n // - \"Horizontal Tab (U+0009)\"\n // - \"Space (U+0020)\"\n //\n // Comma :: ,\n case 0xfeff: // <BOM>\n\n case 0x0009: // \\t\n\n case 0x0020: // <space>\n\n case 0x002c:\n // ,\n ++position;\n continue;\n // LineTerminator ::\n // - \"New Line (U+000A)\"\n // - \"Carriage Return (U+000D)\" [lookahead != \"New Line (U+000A)\"]\n // - \"Carriage Return (U+000D)\" \"New Line (U+000A)\"\n\n case 0x000a:\n // \\n\n ++position;\n ++lexer.line;\n lexer.lineStart = position;\n continue;\n\n case 0x000d:\n // \\r\n if (body.charCodeAt(position + 1) === 0x000a) {\n position += 2;\n } else {\n ++position;\n }\n\n ++lexer.line;\n lexer.lineStart = position;\n continue;\n // Comment\n\n case 0x0023:\n // #\n return readComment(lexer, position);\n // Token ::\n // - Punctuator\n // - Name\n // - IntValue\n // - FloatValue\n // - StringValue\n //\n // Punctuator :: one of ! $ & ( ) ... : = @ [ ] { | }\n\n case 0x0021:\n // !\n return createToken(lexer, TokenKind.BANG, position, position + 1);\n\n case 0x0024:\n // $\n return createToken(lexer, TokenKind.DOLLAR, position, position + 1);\n\n case 0x0026:\n // &\n return createToken(lexer, TokenKind.AMP, position, position + 1);\n\n case 0x0028:\n // (\n return createToken(lexer, TokenKind.PAREN_L, position, position + 1);\n\n case 0x0029:\n // )\n return createToken(lexer, TokenKind.PAREN_R, position, position + 1);\n\n case 0x002e:\n // .\n if (\n body.charCodeAt(position + 1) === 0x002e &&\n body.charCodeAt(position + 2) === 0x002e\n ) {\n return createToken(lexer, TokenKind.SPREAD, position, position + 3);\n }\n\n break;\n\n case 0x003a:\n // :\n return createToken(lexer, TokenKind.COLON, position, position + 1);\n\n case 0x003d:\n // =\n return createToken(lexer, TokenKind.EQUALS, position, position + 1);\n\n case 0x0040:\n // @\n return createToken(lexer, TokenKind.AT, position, position + 1);\n\n case 0x005b:\n // [\n return createToken(lexer, TokenKind.BRACKET_L, position, position + 1);\n\n case 0x005d:\n // ]\n return createToken(lexer, TokenKind.BRACKET_R, position, position + 1);\n\n case 0x007b:\n // {\n return createToken(lexer, TokenKind.BRACE_L, position, position + 1);\n\n case 0x007c:\n // |\n return createToken(lexer, TokenKind.PIPE, position, position + 1);\n\n case 0x007d:\n // }\n return createToken(lexer, TokenKind.BRACE_R, position, position + 1);\n // StringValue\n\n case 0x0022:\n // \"\n if (\n body.charCodeAt(position + 1) === 0x0022 &&\n body.charCodeAt(position + 2) === 0x0022\n ) {\n return readBlockString(lexer, position);\n }\n\n return readString(lexer, position);\n } // IntValue | FloatValue (Digit | -)\n\n if (isDigit(code) || code === 0x002d) {\n return readNumber(lexer, position, code);\n } // Name\n\n if (isNameStart(code)) {\n return readName(lexer, position);\n }\n\n throw syntaxError(\n lexer.source,\n position,\n code === 0x0027\n ? 'Unexpected single quote character (\\'), did you mean to use a double quote (\")?'\n : isUnicodeScalarValue(code) || isSupplementaryCodePoint(body, position)\n ? `Unexpected character: ${printCodePointAt(lexer, position)}.`\n : `Invalid character: ${printCodePointAt(lexer, position)}.`,\n );\n }\n\n return createToken(lexer, TokenKind.EOF, bodyLength, bodyLength);\n}\n/**\n * Reads a comment token from the source file.\n *\n * ```\n * Comment :: # CommentChar* [lookahead != CommentChar]\n *\n * CommentChar :: SourceCharacter but not LineTerminator\n * ```\n */\n\nfunction readComment(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let position = start + 1;\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position); // LineTerminator (\\n | \\r)\n\n if (code === 0x000a || code === 0x000d) {\n break;\n } // SourceCharacter\n\n if (isUnicodeScalarValue(code)) {\n ++position;\n } else if (isSupplementaryCodePoint(body, position)) {\n position += 2;\n } else {\n break;\n }\n }\n\n return createToken(\n lexer,\n TokenKind.COMMENT,\n start,\n position,\n body.slice(start + 1, position),\n );\n}\n/**\n * Reads a number token from the source file, either a FloatValue or an IntValue\n * depending on whether a FractionalPart or ExponentPart is encountered.\n *\n * ```\n * IntValue :: IntegerPart [lookahead != {Digit, `.`, NameStart}]\n *\n * IntegerPart ::\n * - NegativeSign? 0\n * - NegativeSign? NonZeroDigit Digit*\n *\n * NegativeSign :: -\n *\n * NonZeroDigit :: Digit but not `0`\n *\n * FloatValue ::\n * - IntegerPart FractionalPart ExponentPart [lookahead != {Digit, `.`, NameStart}]\n * - IntegerPart FractionalPart [lookahead != {Digit, `.`, NameStart}]\n * - IntegerPart ExponentPart [lookahead != {Digit, `.`, NameStart}]\n *\n * FractionalPart :: . Digit+\n *\n * ExponentPart :: ExponentIndicator Sign? Digit+\n *\n * ExponentIndicator :: one of `e` `E`\n *\n * Sign :: one of + -\n * ```\n */\n\nfunction readNumber(lexer, start, firstCode) {\n const body = lexer.source.body;\n let position = start;\n let code = firstCode;\n let isFloat = false; // NegativeSign (-)\n\n if (code === 0x002d) {\n code = body.charCodeAt(++position);\n } // Zero (0)\n\n if (code === 0x0030) {\n code = body.charCodeAt(++position);\n\n if (isDigit(code)) {\n throw syntaxError(\n lexer.source,\n position,\n `Invalid number, unexpected digit after 0: ${printCodePointAt(\n lexer,\n position,\n )}.`,\n );\n }\n } else {\n position = readDigits(lexer, position, code);\n code = body.charCodeAt(position);\n } // Full stop (.)\n\n if (code === 0x002e) {\n isFloat = true;\n code = body.charCodeAt(++position);\n position = readDigits(lexer, position, code);\n code = body.charCodeAt(position);\n } // E e\n\n if (code === 0x0045 || code === 0x0065) {\n isFloat = true;\n code = body.charCodeAt(++position); // + -\n\n if (code === 0x002b || code === 0x002d) {\n code = body.charCodeAt(++position);\n }\n\n position = readDigits(lexer, position, code);\n code = body.charCodeAt(position);\n } // Numbers cannot be followed by . or NameStart\n\n if (code === 0x002e || isNameStart(code)) {\n throw syntaxError(\n lexer.source,\n position,\n `Invalid number, expected digit but got: ${printCodePointAt(\n lexer,\n position,\n )}.`,\n );\n }\n\n return createToken(\n lexer,\n isFloat ? TokenKind.FLOAT : TokenKind.INT,\n start,\n position,\n body.slice(start, position),\n );\n}\n/**\n * Returns the new position in the source after reading one or more digits.\n */\n\nfunction readDigits(lexer, start, firstCode) {\n if (!isDigit(firstCode)) {\n throw syntaxError(\n lexer.source,\n start,\n `Invalid number, expected digit but got: ${printCodePointAt(\n lexer,\n start,\n )}.`,\n );\n }\n\n const body = lexer.source.body;\n let position = start + 1; // +1 to skip first firstCode\n\n while (isDigit(body.charCodeAt(position))) {\n ++position;\n }\n\n return position;\n}\n/**\n * Reads a single-quote string token from the source file.\n *\n * ```\n * StringValue ::\n * - `\"\"` [lookahead != `\"`]\n * - `\"` StringCharacter+ `\"`\n *\n * StringCharacter ::\n * - SourceCharacter but not `\"` or `\\` or LineTerminator\n * - `\\u` EscapedUnicode\n * - `\\` EscapedCharacter\n *\n * EscapedUnicode ::\n * - `{` HexDigit+ `}`\n * - HexDigit HexDigit HexDigit HexDigit\n *\n * EscapedCharacter :: one of `\"` `\\` `/` `b` `f` `n` `r` `t`\n * ```\n */\n\nfunction readString(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let position = start + 1;\n let chunkStart = position;\n let value = '';\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position); // Closing Quote (\")\n\n if (code === 0x0022) {\n value += body.slice(chunkStart, position);\n return createToken(lexer, TokenKind.STRING, start, position + 1, value);\n } // Escape Sequence (\\)\n\n if (code === 0x005c) {\n value += body.slice(chunkStart, position);\n const escape =\n body.charCodeAt(position + 1) === 0x0075 // u\n ? body.charCodeAt(position + 2) === 0x007b // {\n ? readEscapedUnicodeVariableWidth(lexer, position)\n : readEscapedUnicodeFixedWidth(lexer, position)\n : readEscapedCharacter(lexer, position);\n value += escape.value;\n position += escape.size;\n chunkStart = position;\n continue;\n } // LineTerminator (\\n | \\r)\n\n if (code === 0x000a || code === 0x000d) {\n break;\n } // SourceCharacter\n\n if (isUnicodeScalarValue(code)) {\n ++position;\n } else if (isSupplementaryCodePoint(body, position)) {\n position += 2;\n } else {\n throw syntaxError(\n lexer.source,\n position,\n `Invalid character within String: ${printCodePointAt(\n lexer,\n position,\n )}.`,\n );\n }\n }\n\n throw syntaxError(lexer.source, position, 'Unterminated string.');\n} // The string value and lexed size of an escape sequence.\n\nfunction readEscapedUnicodeVariableWidth(lexer, position) {\n const body = lexer.source.body;\n let point = 0;\n let size = 3; // Cannot be larger than 12 chars (\\u{00000000}).\n\n while (size < 12) {\n const code = body.charCodeAt(position + size++); // Closing Brace (})\n\n if (code === 0x007d) {\n // Must be at least 5 chars (\\u{0}) and encode a Unicode scalar value.\n if (size < 5 || !isUnicodeScalarValue(point)) {\n break;\n }\n\n return {\n value: String.fromCodePoint(point),\n size,\n };\n } // Append this hex digit to the code point.\n\n point = (point << 4) | readHexDigit(code);\n\n if (point < 0) {\n break;\n }\n }\n\n throw syntaxError(\n lexer.source,\n position,\n `Invalid Unicode escape sequence: \"${body.slice(\n position,\n position + size,\n )}\".`,\n );\n}\n\nfunction readEscapedUnicodeFixedWidth(lexer, position) {\n const body = lexer.source.body;\n const code = read16BitHexCode(body, position + 2);\n\n if (isUnicodeScalarValue(code)) {\n return {\n value: String.fromCodePoint(code),\n size: 6,\n };\n } // GraphQL allows JSON-style surrogate pair escape sequences, but only when\n // a valid pair is formed.\n\n if (isLeadingSurrogate(code)) {\n // \\u\n if (\n body.charCodeAt(position + 6) === 0x005c &&\n body.charCodeAt(position + 7) === 0x0075\n ) {\n const trailingCode = read16BitHexCode(body, position + 8);\n\n if (isTrailingSurrogate(trailingCode)) {\n // JavaScript defines strings as a sequence of UTF-16 code units and\n // encodes Unicode code points above U+FFFF using a surrogate pair of\n // code units. Since this is a surrogate pair escape sequence, just\n // include both codes into the JavaScript string value. Had JavaScript\n // not been internally based on UTF-16, then this surrogate pair would\n // be decoded to retrieve the supplementary code point.\n return {\n value: String.fromCodePoint(code, trailingCode),\n size: 12,\n };\n }\n }\n }\n\n throw syntaxError(\n lexer.source,\n position,\n `Invalid Unicode escape sequence: \"${body.slice(position, position + 6)}\".`,\n );\n}\n/**\n * Reads four hexadecimal characters and returns the positive integer that 16bit\n * hexadecimal string represents. For example, \"000f\" will return 15, and \"dead\"\n * will return 57005.\n *\n * Returns a negative number if any char was not a valid hexadecimal digit.\n */\n\nfunction read16BitHexCode(body, position) {\n // readHexDigit() returns -1 on error. ORing a negative value with any other\n // value always produces a negative value.\n return (\n (readHexDigit(body.charCodeAt(position)) << 12) |\n (readHexDigit(body.charCodeAt(position + 1)) << 8) |\n (readHexDigit(body.charCodeAt(position + 2)) << 4) |\n readHexDigit(body.charCodeAt(position + 3))\n );\n}\n/**\n * Reads a hexadecimal character and returns its positive integer value (0-15).\n *\n * '0' becomes 0, '9' becomes 9\n * 'A' becomes 10, 'F' becomes 15\n * 'a' becomes 10, 'f' becomes 15\n *\n * Returns -1 if the provided character code was not a valid hexadecimal digit.\n *\n * HexDigit :: one of\n * - `0` `1` `2` `3` `4` `5` `6` `7` `8` `9`\n * - `A` `B` `C` `D` `E` `F`\n * - `a` `b` `c` `d` `e` `f`\n */\n\nfunction readHexDigit(code) {\n return code >= 0x0030 && code <= 0x0039 // 0-9\n ? code - 0x0030\n : code >= 0x0041 && code <= 0x0046 // A-F\n ? code - 0x0037\n : code >= 0x0061 && code <= 0x0066 // a-f\n ? code - 0x0057\n : -1;\n}\n/**\n * | Escaped Character | Code Point | Character Name |\n * | ----------------- | ---------- | ---------------------------- |\n * | `\"` | U+0022 | double quote |\n * | `\\` | U+005C | reverse solidus (back slash) |\n * | `/` | U+002F | solidus (forward slash) |\n * | `b` | U+0008 | backspace |\n * | `f` | U+000C | form feed |\n * | `n` | U+000A | line feed (new line) |\n * | `r` | U+000D | carriage return |\n * | `t` | U+0009 | horizontal tab |\n */\n\nfunction readEscapedCharacter(lexer, position) {\n const body = lexer.source.body;\n const code = body.charCodeAt(position + 1);\n\n switch (code) {\n case 0x0022:\n // \"\n return {\n value: '\\u0022',\n size: 2,\n };\n\n case 0x005c:\n // \\\n return {\n value: '\\u005c',\n size: 2,\n };\n\n case 0x002f:\n // /\n return {\n value: '\\u002f',\n size: 2,\n };\n\n case 0x0062:\n // b\n return {\n value: '\\u0008',\n size: 2,\n };\n\n case 0x0066:\n // f\n return {\n value: '\\u000c',\n size: 2,\n };\n\n case 0x006e:\n // n\n return {\n value: '\\u000a',\n size: 2,\n };\n\n case 0x0072:\n // r\n return {\n value: '\\u000d',\n size: 2,\n };\n\n case 0x0074:\n // t\n return {\n value: '\\u0009',\n size: 2,\n };\n }\n\n throw syntaxError(\n lexer.source,\n position,\n `Invalid character escape sequence: \"${body.slice(\n position,\n position + 2,\n )}\".`,\n );\n}\n/**\n * Reads a block string token from the source file.\n *\n * ```\n * StringValue ::\n * - `\"\"\"` BlockStringCharacter* `\"\"\"`\n *\n * BlockStringCharacter ::\n * - SourceCharacter but not `\"\"\"` or `\\\"\"\"`\n * - `\\\"\"\"`\n * ```\n */\n\nfunction readBlockString(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let lineStart = lexer.lineStart;\n let position = start + 3;\n let chunkStart = position;\n let currentLine = '';\n const blockLines = [];\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position); // Closing Triple-Quote (\"\"\")\n\n if (\n code === 0x0022 &&\n body.charCodeAt(position + 1) === 0x0022 &&\n body.charCodeAt(position + 2) === 0x0022\n ) {\n currentLine += body.slice(chunkStart, position);\n blockLines.push(currentLine);\n const token = createToken(\n lexer,\n TokenKind.BLOCK_STRING,\n start,\n position + 3, // Return a string of the lines joined with U+000A.\n dedentBlockStringLines(blockLines).join('\\n'),\n );\n lexer.line += blockLines.length - 1;\n lexer.lineStart = lineStart;\n return token;\n } // Escaped Triple-Quote (\\\"\"\")\n\n if (\n code === 0x005c &&\n body.charCodeAt(position + 1) === 0x0022 &&\n body.charCodeAt(position + 2) === 0x0022 &&\n body.charCodeAt(position + 3) === 0x0022\n ) {\n currentLine += body.slice(chunkStart, position);\n chunkStart = position + 1; // skip only slash\n\n position += 4;\n continue;\n } // LineTerminator\n\n if (code === 0x000a || code === 0x000d) {\n currentLine += body.slice(chunkStart, position);\n blockLines.push(currentLine);\n\n if (code === 0x000d && body.charCodeAt(position + 1) === 0x000a) {\n position += 2;\n } else {\n ++position;\n }\n\n currentLine = '';\n chunkStart = position;\n lineStart = position;\n continue;\n } // SourceCharacter\n\n if (isUnicodeScalarValue(code)) {\n ++position;\n } else if (isSupplementaryCodePoint(body, position)) {\n position += 2;\n } else {\n throw syntaxError(\n lexer.source,\n position,\n `Invalid character within String: ${printCodePointAt(\n lexer,\n position,\n )}.`,\n );\n }\n }\n\n throw syntaxError(lexer.source, position, 'Unterminated string.');\n}\n/**\n * Reads an alphanumeric + underscore name from the source.\n *\n * ```\n * Name ::\n * - NameStart NameContinue* [lookahead != NameContinue]\n * ```\n *\n * @internal\n */\n\nexport function readName(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let position = start + 1;\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position);\n\n if (isNameContinue(code)) {\n ++position;\n } else {\n break;\n }\n }\n\n return createToken(\n lexer,\n TokenKind.NAME,\n start,\n position,\n body.slice(start, position),\n );\n}\n","const MAX_ARRAY_LENGTH = 10;\nconst MAX_RECURSIVE_DEPTH = 2;\n/**\n * Used to print values in error messages.\n */\n\nexport function inspect(value) {\n return formatValue(value, []);\n}\n\nfunction formatValue(value, seenValues) {\n switch (typeof value) {\n case 'string':\n return JSON.stringify(value);\n\n case 'function':\n return value.name ? `[function ${value.name}]` : '[function]';\n\n case 'object':\n return formatObjectValue(value, seenValues);\n\n default:\n return String(value);\n }\n}\n\nfunction formatObjectValue(value, previouslySeenValues) {\n if (value === null) {\n return 'null';\n }\n\n if (previouslySeenValues.includes(value)) {\n return '[Circular]';\n }\n\n const seenValues = [...previouslySeenValues, value];\n\n if (isJSONable(value)) {\n const jsonValue = value.toJSON(); // check for infinite recursion\n\n if (jsonValue !== value) {\n return typeof jsonValue === 'string'\n ? jsonValue\n : formatValue(jsonValue, seenValues);\n }\n } else if (Array.isArray(value)) {\n return formatArray(value, seenValues);\n }\n\n return formatObject(value, seenValues);\n}\n\nfunction isJSONable(value) {\n return typeof value.toJSON === 'function';\n}\n\nfunction formatObject(object, seenValues) {\n const entries = Object.entries(object);\n\n if (entries.length === 0) {\n return '{}';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[' + getObjectTag(object) + ']';\n }\n\n const properties = entries.map(\n ([key, value]) => key + ': ' + formatValue(value, seenValues),\n );\n return '{ ' + properties.join(', ') + ' }';\n}\n\nfunction formatArray(array, seenValues) {\n if (array.length === 0) {\n return '[]';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[Array]';\n }\n\n const len = Math.min(MAX_ARRAY_LENGTH, array.length);\n const remaining = array.length - len;\n const items = [];\n\n for (let i = 0; i < len; ++i) {\n items.push(formatValue(array[i], seenValues));\n }\n\n if (remaining === 1) {\n items.push('... 1 more item');\n } else if (remaining > 1) {\n items.push(`... ${remaining} more items`);\n }\n\n return '[' + items.join(', ') + ']';\n}\n\nfunction getObjectTag(object) {\n const tag = Object.prototype.toString\n .call(object)\n .replace(/^\\[object /, '')\n .replace(/]$/, '');\n\n if (tag === 'Object' && typeof object.constructor === 'function') {\n const name = object.constructor.name;\n\n if (typeof name === 'string' && name !== '') {\n return name;\n }\n }\n\n return tag;\n}\n","import { inspect } from './inspect.mjs';\n/* c8 ignore next 3 */\n\nconst isProduction =\n globalThis.process && // eslint-disable-next-line no-undef\n process.env.NODE_ENV === 'production';\n/**\n * A replacement for instanceof which includes an error warning when multi-realm\n * constructors are detected.\n * See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production\n * See: https://webpack.js.org/guides/production/\n */\n\nexport const instanceOf =\n /* c8 ignore next 6 */\n // FIXME: https://github.com/graphql/graphql-js/issues/2317\n isProduction\n ? function instanceOf(value, constructor) {\n return value instanceof constructor;\n }\n : function instanceOf(value, constructor) {\n if (value instanceof constructor) {\n return true;\n }\n\n if (typeof value === 'object' && value !== null) {\n var _value$constructor;\n\n // Prefer Symbol.toStringTag since it is immune to minification.\n const className = constructor.prototype[Symbol.toStringTag];\n const valueClassName = // We still need to support constructor's name to detect conflicts with older versions of this library.\n Symbol.toStringTag in value // @ts-expect-error TS bug see, https://github.com/microsoft/TypeScript/issues/38009\n ? value[Symbol.toStringTag]\n : (_value$constructor = value.constructor) === null ||\n _value$constructor === void 0\n ? void 0\n : _value$constructor.name;\n\n if (className === valueClassName) {\n const stringifiedValue = inspect(value);\n throw new Error(`Cannot use ${className} \"${stringifiedValue}\" from another module or realm.\n\nEnsure that there is only one instance of \"graphql\" in the node_modules\ndirectory. If different versions of \"graphql\" are the dependencies of other\nrelied on modules, use \"resolutions\" to ensure only one version is installed.\n\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\n\nDuplicate \"graphql\" modules cannot be used at the same time since different\nversions may have different capabilities and behavior. The data from one\nversion used in the function from another could produce confusing and\nspurious results.`);\n }\n }\n\n return false;\n };\n","import { devAssert } from '../jsutils/devAssert.mjs';\nimport { inspect } from '../jsutils/inspect.mjs';\nimport { instanceOf } from '../jsutils/instanceOf.mjs';\n\n/**\n * A representation of source input to GraphQL. The `name` and `locationOffset` parameters are\n * optional, but they are useful for clients who store GraphQL documents in source files.\n * For example, if the GraphQL input starts at line 40 in a file named `Foo.graphql`, it might\n * be useful for `name` to be `\"Foo.graphql\"` and location to be `{ line: 40, column: 1 }`.\n * The `line` and `column` properties in `locationOffset` are 1-indexed.\n */\nexport class Source {\n constructor(\n body,\n name = 'GraphQL request',\n locationOffset = {\n line: 1,\n column: 1,\n },\n ) {\n typeof body === 'string' ||\n devAssert(false, `Body must be a string. Received: ${inspect(body)}.`);\n this.body = body;\n this.name = name;\n this.locationOffset = locationOffset;\n this.locationOffset.line > 0 ||\n devAssert(\n false,\n 'line in locationOffset is 1-indexed and must be positive.',\n );\n this.locationOffset.column > 0 ||\n devAssert(\n false,\n 'column in locationOffset is 1-indexed and must be positive.',\n );\n }\n\n get [Symbol.toStringTag]() {\n return 'Source';\n }\n}\n/**\n * Test if the given value is a Source object.\n *\n * @internal\n */\n\nexport function isSource(source) {\n return instanceOf(source, Source);\n}\n","import { printBlockString } from '../language/blockString.mjs';\nimport { isPunctuatorTokenKind, Lexer } from '../language/lexer.mjs';\nimport { isSource, Source } from '../language/source.mjs';\nimport { TokenKind } from '../language/tokenKind.mjs';\n/**\n * Strips characters that are not significant to the validity or execution\n * of a GraphQL document:\n * - UnicodeBOM\n * - WhiteSpace\n * - LineTerminator\n * - Comment\n * - Comma\n * - BlockString indentation\n *\n * Note: It is required to have a delimiter character between neighboring\n * non-punctuator tokens and this function always uses single space as delimiter.\n *\n * It is guaranteed that both input and output documents if parsed would result\n * in the exact same AST except for nodes location.\n *\n * Warning: It is guaranteed that this function will always produce stable results.\n * However, it's not guaranteed that it will stay the same between different\n * releases due to bugfixes or changes in the GraphQL specification.\n *\n * Query example:\n *\n * ```graphql\n * query SomeQuery($foo: String!, $bar: String) {\n * someField(foo: $foo, bar: $bar) {\n * a\n * b {\n * c\n * d\n * }\n * }\n * }\n * ```\n *\n * Becomes:\n *\n * ```graphql\n * query SomeQuery($foo:String!$bar:String){someField(foo:$foo bar:$bar){a b{c d}}}\n * ```\n *\n * SDL example:\n *\n * ```graphql\n * \"\"\"\n * Type description\n * \"\"\"\n * type Foo {\n * \"\"\"\n * Field description\n * \"\"\"\n * bar: String\n * }\n * ```\n *\n * Becomes:\n *\n * ```graphql\n * \"\"\"Type description\"\"\" type Foo{\"\"\"Field description\"\"\" bar:String}\n * ```\n */\n\nexport function stripIgnoredCharacters(source) {\n const sourceObj = isSource(source) ? source : new Source(source);\n const body = sourceObj.body;\n const lexer = new Lexer(sourceObj);\n let strippedBody = '';\n let wasLastAddedTokenNonPunctuator = false;\n\n while (lexer.advance().kind !== TokenKind.EOF) {\n const currentToken = lexer.token;\n const tokenKind = currentToken.kind;\n /**\n * Every two non-punctuator tokens should have space between them.\n * Also prevent case of non-punctuator token following by spread resulting\n * in invalid token (e.g. `1...` is invalid Float token).\n */\n\n const isNonPunctuator = !isPunctuatorTokenKind(currentToken.kind);\n\n if (wasLastAddedTokenNonPunctuator) {\n if (isNonPunctuator || currentToken.kind === TokenKind.SPREAD) {\n strippedBody += ' ';\n }\n }\n\n const tokenBody = body.slice(currentToken.start, currentToken.end);\n\n if (tokenKind === TokenKind.BLOCK_STRING) {\n strippedBody += printBlockString(currentToken.value, {\n minimize: true,\n });\n } else {\n strippedBody += tokenBody;\n }\n\n wasLastAddedTokenNonPunctuator = isNonPunctuator;\n }\n\n return strippedBody;\n}\n","import { createContext, type ReactNode } from \"react\";\nimport type { GraphQLClient } from \"./GraphQLClient.js\";\n\nexport const GraphQLContext = createContext<GraphQLClient | undefined>(\n undefined,\n);\n\nexport const GraphQLProvider = ({\n children,\n client,\n}: {\n children: ReactNode;\n client: GraphQLClient;\n}) => (\n <GraphQLContext.Provider value={client}>{children}</GraphQLContext.Provider>\n);\n","import { stripIgnoredCharacters } from \"graphql\";\nimport { use } from \"react\";\nimport type { TypedDocumentString } from \"../graphql/graphql.js\";\nimport type { GraphQLClient } from \"./GraphQLClient.js\";\nimport { GraphQLContext } from \"./GraphQLContext.js\";\n\ntype NoExtraProps<T, U extends T = T> = U & {\n [K in Exclude<keyof U, keyof T>]?: never;\n};\n\ntype VarArgs<TVariables> = TVariables extends Record<string, never>\n ? []\n : [NoExtraProps<TVariables>];\n\nexport const createQuery = <TResult, TVariables>(\n client: GraphQLClient,\n query: TypedDocumentString<TResult, TVariables>,\n ...[variables]: TVariables extends Record<string, never>\n ? []\n : [NoExtraProps<TVariables>]\n) => {\n return {\n queryFn: () => client.fetch(query, variables),\n queryKey: [stripIgnoredCharacters(query.toString()), variables],\n } as const;\n};\n\nexport const useCreateQuery = <TResult, TVariables>(\n query: TypedDocumentString<TResult, TVariables>,\n ...[variables]: TVariables extends Record<string, never>\n ? []\n : [NoExtraProps<TVariables>]\n) => {\n const graphQLClient = use(GraphQLContext);\n\n if (graphQLClient === undefined) {\n throw new Error(\"useGraphQL must be used within a GraphQLProvider\");\n }\n\n const args =\n variables === undefined\n ? ([] as VarArgs<TVariables>)\n : ([variables] as VarArgs<TVariables>);\n\n return createQuery(graphQLClient, query, ...args);\n};\n","/* eslint-disable */\nimport type { DocumentTypeDecoration } from \"@graphql-typed-document-node/core\";\nexport type Maybe<T> = T | null;\nexport type InputMaybe<T> = T | null | undefined;\nexport type Exact<T extends { [key: string]: unknown }> = {\n [K in keyof T]: T[K];\n};\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & {\n [SubKey in K]?: Maybe<T[SubKey]>;\n};\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {\n [SubKey in K]: Maybe<T[SubKey]>;\n};\nexport type MakeEmpty<\n T extends { [key: string]: unknown },\n K extends keyof T,\n> = { [_ in K]?: never };\nexport type Incremental<T> =\n | T\n | {\n [P in keyof T]?: P extends \" $fragmentName\" | \"__typename\" ? T[P] : never;\n };\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string };\n String: { input: string; output: string };\n Boolean: { input: boolean; output: boolean };\n Int: { input: number; output: number };\n Float: { input: number; output: number };\n /** The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). */\n JSON: { input: any; output: any };\n /** The `JSONObject` scalar type represents JSON objects as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). */\n JSONObject: { input: any; output: any };\n /** OpenAPI schema scalar type that handles circular references */\n JSONSchema: { input: any; output: any };\n};\n\nexport type Components = {\n __typename?: \"Components\";\n schemas?: Maybe<Array<SchemaItem>>;\n};\n\nexport type EncodingItem = {\n __typename?: \"EncodingItem\";\n allowReserved?: Maybe<Scalars[\"Boolean\"][\"output\"]>;\n contentType?: Maybe<Scalars[\"String\"][\"output\"]>;\n explode?: Maybe<Scalars[\"Boolean\"][\"output\"]>;\n headers?: Maybe<Scalars[\"JSONObject\"][\"output\"]>;\n name: Scalars[\"String\"][\"output\"];\n style?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\nexport type ExampleItem = {\n __typename?: \"ExampleItem\";\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n externalValue?: Maybe<Scalars[\"String\"][\"output\"]>;\n name: Scalars[\"String\"][\"output\"];\n summary?: Maybe<Scalars[\"String\"][\"output\"]>;\n value?: Maybe<Scalars[\"JSON\"][\"output\"]>;\n};\n\nexport type MediaTypeObject = {\n __typename?: \"MediaTypeObject\";\n encoding?: Maybe<Array<EncodingItem>>;\n examples?: Maybe<Array<ExampleItem>>;\n mediaType: Scalars[\"String\"][\"output\"];\n schema?: Maybe<Scalars[\"JSONSchema\"][\"output\"]>;\n};\n\nexport type OperationItem = {\n __typename?: \"OperationItem\";\n contentTypes: Array<Scalars[\"String\"][\"output\"]>;\n deprecated?: Maybe<Scalars[\"Boolean\"][\"output\"]>;\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n extensions?: Maybe<Scalars[\"JSONObject\"][\"output\"]>;\n method: Scalars[\"String\"][\"output\"];\n operationId?: Maybe<Scalars[\"String\"][\"output\"]>;\n parameters?: Maybe<Array<ParameterItem>>;\n path: Scalars[\"String\"][\"output\"];\n requestBody?: Maybe<RequestBodyObject>;\n responses: Array<ResponseItem>;\n servers: Array<Server>;\n slug: Scalars[\"String\"][\"output\"];\n summary?: Maybe<Scalars[\"String\"][\"output\"]>;\n tags?: Maybe<Array<TagItem>>;\n};\n\nexport type ParameterIn = \"cookie\" | \"header\" | \"path\" | \"query\";\n\nexport type ParameterItem = {\n __typename?: \"ParameterItem\";\n allowEmptyValue?: Maybe<Scalars[\"Boolean\"][\"output\"]>;\n allowReserved?: Maybe<Scalars[\"Boolean\"][\"output\"]>;\n deprecated?: Maybe<Scalars[\"Boolean\"][\"output\"]>;\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n examples?: Maybe<Array<ExampleItem>>;\n explode?: Maybe<Scalars[\"Boolean\"][\"output\"]>;\n extensions?: Maybe<Scalars[\"JSONObject\"][\"output\"]>;\n in: ParameterIn;\n name: Scalars[\"String\"][\"output\"];\n required?: Maybe<Scalars[\"Boolean\"][\"output\"]>;\n schema?: Maybe<Scalars[\"JSONSchema\"][\"output\"]>;\n style?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\nexport type PathItem = {\n __typename?: \"PathItem\";\n methods: Array<Scalars[\"String\"][\"output\"]>;\n path: Scalars[\"String\"][\"output\"];\n};\n\nexport type Query = {\n __typename?: \"Query\";\n schema: Schema;\n};\n\nexport type QuerySchemaArgs = {\n input: Scalars[\"JSON\"][\"input\"];\n type: SchemaType;\n};\n\nexport type RequestBodyObject = {\n __typename?: \"RequestBodyObject\";\n content?: Maybe<Array<MediaTypeObject>>;\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n required?: Maybe<Scalars[\"Boolean\"][\"output\"]>;\n};\n\nexport type ResponseItem = {\n __typename?: \"ResponseItem\";\n content?: Maybe<Array<MediaTypeObject>>;\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n extensions?: Maybe<Scalars[\"JSONObject\"][\"output\"]>;\n headers?: Maybe<Scalars[\"JSON\"][\"output\"]>;\n links?: Maybe<Scalars[\"JSON\"][\"output\"]>;\n statusCode: Scalars[\"String\"][\"output\"];\n};\n\nexport type Schema = {\n __typename?: \"Schema\";\n components?: Maybe<Components>;\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n extensions?: Maybe<Scalars[\"JSONObject\"][\"output\"]>;\n openapi: Scalars[\"String\"][\"output\"];\n operations: Array<OperationItem>;\n paths: Array<PathItem>;\n servers: Array<Server>;\n summary?: Maybe<Scalars[\"String\"][\"output\"]>;\n tag?: Maybe<SchemaTag>;\n tags: Array<SchemaTag>;\n title: Scalars[\"String\"][\"output\"];\n url?: Maybe<Scalars[\"String\"][\"output\"]>;\n version: Scalars[\"String\"][\"output\"];\n};\n\nexport type SchemaOperationsArgs = {\n method?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n operationId?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n path?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n tag?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n untagged?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\nexport type SchemaTagArgs = {\n name?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n slug?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n untagged?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\nexport type SchemaItem = {\n __typename?: \"SchemaItem\";\n extensions?: Maybe<Scalars[\"JSONObject\"][\"output\"]>;\n name: Scalars[\"String\"][\"output\"];\n schema: Scalars[\"JSONSchema\"][\"output\"];\n};\n\nexport type SchemaTag = {\n __typename?: \"SchemaTag\";\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n extensions?: Maybe<Scalars[\"JSONObject\"][\"output\"]>;\n isUntagged: Scalars[\"Boolean\"][\"output\"];\n name?: Maybe<Scalars[\"String\"][\"output\"]>;\n next?: Maybe<SchemaTag>;\n operations: Array<OperationItem>;\n prev?: Maybe<SchemaTag>;\n slug?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\nexport type SchemaType = \"file\" | \"raw\" | \"url\";\n\nexport type Server = {\n __typename?: \"Server\";\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n url: Scalars[\"String\"][\"output\"];\n};\n\nexport type TagItem = {\n __typename?: \"TagItem\";\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n extensions?: Maybe<Scalars[\"JSONObject\"][\"output\"]>;\n name: Scalars[\"String\"][\"output\"];\n};\n\nexport type ServersQueryQueryVariables = Exact<{\n input: Scalars[\"JSON\"][\"input\"];\n type: SchemaType;\n}>;\n\nexport type ServersQueryQuery = {\n __typename?: \"Query\";\n schema: {\n __typename?: \"Schema\";\n url?: string | null;\n servers: Array<{ __typename?: \"Server\"; url: string }>;\n };\n};\n\nexport type OperationsFragmentFragment = {\n __typename?: \"OperationItem\";\n slug: string;\n summary?: string | null;\n method: string;\n description?: string | null;\n operationId?: string | null;\n contentTypes: Array<string>;\n path: string;\n deprecated?: boolean | null;\n extensions?: any | null;\n servers: Array<{\n __typename?: \"Server\";\n url: string;\n description?: string | null;\n }>;\n parameters?: Array<{\n __typename?: \"ParameterItem\";\n name: string;\n in: ParameterIn;\n description?: string | null;\n required?: boolean | null;\n schema?: any | null;\n style?: string | null;\n explode?: boolean | null;\n examples?: Array<{\n __typename?: \"ExampleItem\";\n name: string;\n description?: string | null;\n externalValue?: string | null;\n value?: any | null;\n summary?: string | null;\n }> | null;\n }> | null;\n requestBody?: {\n __typename?: \"RequestBodyObject\";\n description?: string | null;\n required?: boolean | null;\n content?: Array<{\n __typename?: \"MediaTypeObject\";\n mediaType: string;\n schema?: any | null;\n encoding?: Array<{ __typename?: \"EncodingItem\"; name: string }> | null;\n examples?: Array<{\n __typename?: \"ExampleItem\";\n name: string;\n description?: string | null;\n externalValue?: string | null;\n value?: any | null;\n summary?: string | null;\n }> | null;\n }> | null;\n } | null;\n responses: Array<{\n __typename?: \"ResponseItem\";\n statusCode: string;\n links?: any | null;\n description?: string | null;\n content?: Array<{\n __typename?: \"MediaTypeObject\";\n mediaType: string;\n schema?: any | null;\n examples?: Array<{\n __typename?: \"ExampleItem\";\n name: string;\n description?: string | null;\n externalValue?: string | null;\n value?: any | null;\n summary?: string | null;\n }> | null;\n encoding?: Array<{ __typename?: \"EncodingItem\"; name: string }> | null;\n }> | null;\n }>;\n} & { \" $fragmentName\"?: \"OperationsFragmentFragment\" };\n\nexport type SchemaWarmupQueryVariables = Exact<{\n input: Scalars[\"JSON\"][\"input\"];\n type: SchemaType;\n}>;\n\nexport type SchemaWarmupQuery = {\n __typename?: \"Query\";\n schema: { __typename?: \"Schema\"; openapi: string };\n};\n\nexport type OperationsForTagQueryVariables = Exact<{\n input: Scalars[\"JSON\"][\"input\"];\n type: SchemaType;\n tag?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n untagged?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n}>;\n\nexport type OperationsForTagQuery = {\n __typename?: \"Query\";\n schema: {\n __typename?: \"Schema\";\n description?: string | null;\n summary?: string | null;\n title: string;\n url?: string | null;\n version: string;\n servers: Array<{ __typename?: \"Server\"; url: string }>;\n tag?: {\n __typename?: \"SchemaTag\";\n name?: string | null;\n description?: string | null;\n extensions?: any | null;\n operations: Array<\n { __typename?: \"OperationItem\"; slug: string } & {\n \" $fragmentRefs\"?: {\n OperationsFragmentFragment: OperationsFragmentFragment;\n };\n }\n >;\n next?: {\n __typename?: \"SchemaTag\";\n name?: string | null;\n slug?: string | null;\n extensions?: any | null;\n } | null;\n prev?: {\n __typename?: \"SchemaTag\";\n name?: string | null;\n slug?: string | null;\n extensions?: any | null;\n } | null;\n } | null;\n };\n};\n\nexport type GetSchemasQueryVariables = Exact<{\n input: Scalars[\"JSON\"][\"input\"];\n type: SchemaType;\n}>;\n\nexport type GetSchemasQuery = {\n __typename?: \"Query\";\n schema: {\n __typename?: \"Schema\";\n title: string;\n description?: string | null;\n summary?: string | null;\n components?: {\n __typename?: \"Components\";\n schemas?: Array<{\n __typename?: \"SchemaItem\";\n name: string;\n schema: any;\n extensions?: any | null;\n }> | null;\n } | null;\n };\n};\n\nexport type GetServerQueryQueryVariables = Exact<{\n input: Scalars[\"JSON\"][\"input\"];\n type: SchemaType;\n}>;\n\nexport type GetServerQueryQuery = {\n __typename?: \"Query\";\n schema: {\n __typename?: \"Schema\";\n url?: string | null;\n servers: Array<{ __typename?: \"Server\"; url: string }>;\n };\n};\n\nexport type GetNavigationOperationsQueryVariables = Exact<{\n input: Scalars[\"JSON\"][\"input\"];\n type: SchemaType;\n}>;\n\nexport type GetNavigationOperationsQuery = {\n __typename?: \"Query\";\n schema: {\n __typename?: \"Schema\";\n extensions?: any | null;\n tags: Array<{\n __typename?: \"SchemaTag\";\n slug?: string | null;\n name?: string | null;\n extensions?: any | null;\n operations: Array<{\n __typename?: \"OperationItem\";\n summary?: string | null;\n slug: string;\n method: string;\n operationId?: string | null;\n path: string;\n }>;\n }>;\n components?: {\n __typename?: \"Components\";\n schemas?: Array<{ __typename: \"SchemaItem\" }> | null;\n } | null;\n };\n};\n\nexport class TypedDocumentString<TResult, TVariables>\n extends String\n implements DocumentTypeDecoration<TResult, TVariables>\n{\n __apiType?: NonNullable<\n DocumentTypeDecoration<TResult, TVariables>[\"__apiType\"]\n >;\n private value: string;\n public __meta__?: Record<string, any> | undefined;\n\n constructor(value: string, __meta__?: Record<string, any> | undefined) {\n super(value);\n this.value = value;\n this.__meta__ = __meta__;\n }\n\n override toString(): string & DocumentTypeDecoration<TResult, TVariables> {\n return this.value;\n }\n}\nexport const OperationsFragmentFragmentDoc = new TypedDocumentString(\n `\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 `,\n { fragmentName: \"OperationsFragment\" },\n) as unknown as TypedDocumentString<OperationsFragmentFragment, unknown>;\nexport const ServersQueryDocument = new TypedDocumentString(`\n query ServersQuery($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n servers {\n url\n }\n }\n}\n `) as unknown as TypedDocumentString<\n ServersQueryQuery,\n ServersQueryQueryVariables\n>;\nexport const SchemaWarmupDocument = new TypedDocumentString(`\n query SchemaWarmup($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n openapi\n }\n}\n `) as unknown as TypedDocumentString<\n SchemaWarmupQuery,\n SchemaWarmupQueryVariables\n>;\nexport const OperationsForTagDocument = new TypedDocumentString(`\n query OperationsForTag($input: JSON!, $type: SchemaType!, $tag: String, $untagged: Boolean) {\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 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}`) as unknown as TypedDocumentString<\n OperationsForTagQuery,\n OperationsForTagQueryVariables\n>;\nexport const GetSchemasDocument = new TypedDocumentString(`\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 `) as unknown as TypedDocumentString<\n GetSchemasQuery,\n GetSchemasQueryVariables\n>;\nexport const GetServerQueryDocument = new TypedDocumentString(`\n query getServerQuery($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n servers {\n url\n }\n }\n}\n `) as unknown as TypedDocumentString<\n GetServerQueryQuery,\n GetServerQueryQueryVariables\n>;\nexport const GetNavigationOperationsDocument = new TypedDocumentString(`\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 `) as unknown as TypedDocumentString<\n GetNavigationOperationsQuery,\n GetNavigationOperationsQueryVariables\n>;\n","/* eslint-disable */\nimport * as types from \"./graphql.js\";\n\n/**\n * Map of all GraphQL operations in the project.\n *\n * This map has several performance disadvantages:\n * 1. It is not tree-shakeable, so it will include all operations in the project.\n * 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle.\n * 3. It does not support dead code elimination, so it will add unused operations.\n *\n * Therefore it is highly recommended to use the babel or swc plugin for production.\n * Learn more about it here: https://the-guild.dev/graphql/codegen/plugins/presets/preset-client#reducing-bundle-size\n */\ntype Documents = {\n \"\\n query ServersQuery($input: JSON!, $type: SchemaType!) {\\n schema(input: $input, type: $type) {\\n url\\n servers {\\n url\\n }\\n }\\n }\\n\": typeof types.ServersQueryDocument;\n \"\\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\": typeof types.OperationsFragmentFragmentDoc;\n \"\\n query SchemaWarmup($input: JSON!, $type: SchemaType!) {\\n schema(input: $input, type: $type) {\\n openapi\\n }\\n }\\n\": typeof types.SchemaWarmupDocument;\n \"\\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\": typeof types.OperationsForTagDocument;\n \"\\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\": typeof types.GetSchemasDocument;\n \"\\n query getServerQuery($input: JSON!, $type: SchemaType!) {\\n schema(input: $input, type: $type) {\\n url\\n servers {\\n url\\n }\\n }\\n }\\n\": typeof types.GetServerQueryDocument;\n \"\\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\": typeof types.GetNavigationOperationsDocument;\n};\nconst documents: Documents = {\n \"\\n query ServersQuery($input: JSON!, $type: SchemaType!) {\\n schema(input: $input, type: $type) {\\n url\\n servers {\\n url\\n }\\n }\\n }\\n\":\n types.ServersQueryDocument,\n \"\\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\":\n types.OperationsFragmentFragmentDoc,\n \"\\n query SchemaWarmup($input: JSON!, $type: SchemaType!) {\\n schema(input: $input, type: $type) {\\n openapi\\n }\\n }\\n\":\n types.SchemaWarmupDocument,\n \"\\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\":\n types.OperationsForTagDocument,\n \"\\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\":\n types.GetSchemasDocument,\n \"\\n query getServerQuery($input: JSON!, $type: SchemaType!) {\\n schema(input: $input, type: $type) {\\n url\\n servers {\\n url\\n }\\n }\\n }\\n\":\n types.GetServerQueryDocument,\n \"\\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\":\n types.GetNavigationOperationsDocument,\n};\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n query ServersQuery($input: JSON!, $type: SchemaType!) {\\n schema(input: $input, type: $type) {\\n url\\n servers {\\n url\\n }\\n }\\n }\\n\",\n): typeof import(\"./graphql.js\").ServersQueryDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\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\",\n): typeof import(\"./graphql.js\").OperationsFragmentFragmentDoc;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n query SchemaWarmup($input: JSON!, $type: SchemaType!) {\\n schema(input: $input, type: $type) {\\n openapi\\n }\\n }\\n\",\n): typeof import(\"./graphql.js\").SchemaWarmupDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\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\",\n): typeof import(\"./graphql.js\").OperationsForTagDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\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\",\n): typeof import(\"./graphql.js\").GetSchemasDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n query getServerQuery($input: JSON!, $type: SchemaType!) {\\n schema(input: $input, type: $type) {\\n url\\n servers {\\n url\\n }\\n }\\n }\\n\",\n): typeof import(\"./graphql.js\").GetServerQueryDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\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\",\n): typeof import(\"./graphql.js\").GetNavigationOperationsDocument;\n\nexport function graphql(source: string) {\n return (documents as any)[source] ?? {};\n}\n","import * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\n\nfunction Collapsible({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />;\n}\n\nfunction CollapsibleTrigger({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {\n return (\n <CollapsiblePrimitive.CollapsibleTrigger\n data-slot=\"collapsible-trigger\"\n {...props}\n />\n );\n}\n\nfunction CollapsibleContent({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {\n return (\n <CollapsiblePrimitive.CollapsibleContent\n data-slot=\"collapsible-content\"\n {...props}\n />\n );\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n","export function getOS(): \"apple\" | \"linux\" | \"unix\" | \"windows\" | undefined {\n const notFound = -1;\n const userAgent = navigator.userAgent.toLowerCase();\n if (userAgent.indexOf(\"win\") !== notFound) {\n return \"windows\";\n } else if (userAgent.indexOf(\"mac\") !== notFound) {\n return \"apple\";\n } else if (userAgent.indexOf(\"linux\") !== notFound) {\n return \"linux\";\n } else if (userAgent.indexOf(\"x11\") !== notFound) {\n return \"unix\";\n }\n return;\n}\n\nexport function isAppleDevice(): boolean {\n return getOS() === \"apple\";\n}\n","import { useEffect, useRef } from \"react\";\nimport { isAppleDevice } from \"../util/os.js\";\n\nconst keymap = {\n other: {\n alt: \"Alt\",\n meta: \"Ctrl\",\n ctrl: \"Ctrl\",\n shift: \"⇧\",\n option: \"Alt\",\n },\n apple: {\n alt: \"⌥\",\n meta: \"⌘\",\n ctrl: \"Ctrl\",\n shift: \"⇧\",\n option: \"⌥\",\n },\n};\n\nexport const useHotkey = (hotkey: string, callback: () => void) => {\n const hotkeySanitized = hotkey.toLowerCase().split(\"+\");\n const meta = hotkeySanitized.includes(\"meta\");\n const shift = hotkeySanitized.includes(\"shift\");\n const alt =\n hotkeySanitized.includes(\"option\") || hotkeySanitized.includes(\"alt\");\n const ctrl = hotkeySanitized.includes(\"ctrl\");\n\n const key = hotkey.split(\"+\").pop();\n\n const callbackRef = useRef(callback);\n\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n useEffect(() => {\n const handler = (event: KeyboardEvent) => {\n if (\n (event.code === `Key${key?.toUpperCase()}` ||\n event.code.toLowerCase() === key?.toLowerCase()) &&\n event.metaKey === meta &&\n event.shiftKey === shift &&\n event.altKey === alt &&\n event.ctrlKey === ctrl\n ) {\n event.preventDefault();\n callbackRef.current();\n }\n };\n\n window.addEventListener(\"keydown\", handler);\n return () => {\n window.removeEventListener(\"keydown\", handler);\n };\n }, [key, meta, shift, alt, ctrl]);\n\n return {\n trigger: () => callbackRef.current(),\n label: hotkeySanitized.map((key: string) =>\n key === \"meta\" ||\n key === \"ctrl\" ||\n key === \"alt\" ||\n key === \"shift\" ||\n key === \"option\"\n ? keymap[isAppleDevice() ? \"apple\" : \"other\"][key]\n : key,\n ),\n };\n};\n","import { useMemo } from \"react\";\nimport { create } from \"zustand\";\nimport { persist } from \"zustand/middleware\";\n\ninterface SelectedServerState {\n selectedServer?: string;\n setSelectedServer: (newServer: string) => void;\n}\n\nexport const useSelectedServerStore = create<SelectedServerState>()(\n persist(\n (set) => ({\n selectedServer: undefined,\n setSelectedServer: (newServer: string) =>\n set({ selectedServer: newServer }),\n }),\n { name: \"zudoku-selected-server\" },\n ),\n);\n\n/**\n * Simple wrapper for `useSelectedServerStore` to fall back to first of the provided servers\n */\nexport const useSelectedServer = (servers: Array<{ url: string }>) => {\n const { selectedServer, setSelectedServer } = useSelectedServerStore();\n\n const finalSelectedServer = useMemo(\n () =>\n selectedServer && servers.some((s) => s.url === selectedServer)\n ? selectedServer\n : (servers.at(0)?.url ?? \"\"),\n [selectedServer, servers],\n );\n\n return { selectedServer: finalSelectedServer, setSelectedServer };\n};\n","import * as React from \"react\";\n\nimport { cn } from \"../util/cn.js\";\n\nexport type TextareaProps = React.TextareaHTMLAttributes<HTMLTextAreaElement>;\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"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\",\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n },\n);\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n","/**\n * Converts a number of bytes to a human-readable file size string\n * @param bytes - The number of bytes (defaults to 0)\n * @returns A formatted string like \"1.23 MB\" or \"456 B\"\n */\nexport const humanFileSize = (bytes = 0) => {\n if (bytes === 0) {\n return \"0 B\";\n }\n\n const exponent = Math.floor(Math.log(bytes) / Math.log(1000.0));\n const decimal = (bytes / 1000.0 ** exponent).toFixed(exponent ? 2 : 0);\n\n return `${decimal} ${exponent ? `${\"kMGTPEZY\"[exponent - 1]}B` : \"B\"}`;\n};\n","import { ChevronsDownUpIcon, ChevronsUpDownIcon } from \"lucide-react\";\nimport { CollapsibleTrigger } from \"zudoku/ui/Collapsible.js\";\nimport { cn } from \"../../../util/cn.js\";\n\nexport const CollapsibleHeaderTrigger = ({\n children,\n className,\n}: {\n children: React.ReactNode;\n className?: string;\n}) => {\n return (\n <div\n className={cn(\n \"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\",\n className,\n )}\n >\n {children}\n <CollapsibleTrigger\n className={cn(\n \"flex items-center gap-4 group bg-muted w-full p-2 hover:bg-accent hover:brightness-95 opacity-75 rounded-md\",\n className,\n )}\n >\n <ChevronsDownUpIcon\n className=\"group-data-[state=closed]:hidden shrink-0\"\n size={14}\n />\n <ChevronsUpDownIcon\n className=\"group-data-[state=open]:hidden shrink-0\"\n size={14}\n />\n </CollapsibleTrigger>\n </div>\n );\n};\n\nexport const CollapsibleHeader = ({\n children,\n className,\n}: {\n children: React.ReactNode;\n className?: string;\n}) => {\n return (\n <span className={cn(\"font-semibold w-full text-start\", className)}>\n {children}\n </span>\n );\n};\n","import { PlusCircleIcon } from \"lucide-react\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"zudoku/ui/DropdownMenu.js\";\nimport type { ExampleItem, MediaTypeObject } from \"../graphql/graphql.js\";\n\nconst ExamplesDropdown = ({\n examples,\n onSelect,\n}: {\n examples: MediaTypeObject[];\n onSelect: (example: ExampleItem, mediaType: string) => void;\n}) => {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"hover:bg-accent hover:brightness-95 gap-2\"\n >\n Use Example\n <PlusCircleIcon size={14} />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent className=\"max-w-72\">\n {examples.map((mediaTypeObject) => (\n <div key={mediaTypeObject.mediaType}>\n <DropdownMenuLabel>{mediaTypeObject.mediaType}</DropdownMenuLabel>\n <DropdownMenuSeparator />\n <DropdownMenuGroup>\n {mediaTypeObject.examples?.map((example) => (\n <DropdownMenuItem\n key={example.name}\n onSelect={() => onSelect(example, mediaTypeObject.mediaType)}\n >\n <span\n className=\"line-clamp-1\"\n title={example.summary ?? example.name}\n >\n {example.summary ?? example.name}\n </span>\n </DropdownMenuItem>\n ))}\n </DropdownMenuGroup>\n </div>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n};\n\nexport default ExamplesDropdown;\n","import { XIcon } from \"lucide-react\";\nimport { Button } from \"zudoku/components\";\nimport { Input } from \"zudoku/ui/Input.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport createVariantComponent from \"../../../util/createVariantComponent.js\";\n\nconst ParamsGrid = createVariantComponent(\n \"div\",\n \"grid grid-cols-[min-content_2fr_3fr] items-center gap-x-5 [&>*:last-child_[data-slot=remove-button]]:invisible\",\n);\n\nexport const ParamsGridItem = createVariantComponent(\n \"div\",\n \"group h-9 hover:bg-accent/75 ps-4 pe-2 grid col-span-full grid-cols-subgrid items-center border-b\",\n);\n\nexport const ParamsGridInput = createVariantComponent(\n Input,\n \"w-full truncate border-0 p-0 m-0 shadow-none text-xs focus-visible:ring-0 font-mono\",\n);\n\nexport const ParamsGridRemoveButton = ({\n onClick,\n className,\n}: {\n onClick: (e: React.MouseEvent<HTMLButtonElement>) => void;\n className?: string;\n}) => (\n <Button\n size=\"icon-xs\"\n variant=\"ghost\"\n className={cn(\n \"text-muted-foreground opacity-0 group-hover:brightness-95 focus-visible:opacity-100 group-hover:opacity-100\",\n className,\n )}\n onClick={onClick}\n type=\"button\"\n // In the last row the remove button will be hidden by the ParamsGridItem selector\n data-slot=\"remove-button\"\n >\n <XIcon size={14} />\n </Button>\n);\n\nexport default ParamsGrid;\n","import * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { CheckIcon } from \"lucide-react\";\nimport type * as React from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nfunction Checkbox({\n className,\n ...props\n}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"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\",\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none\"\n >\n <CheckIcon className=\"size-3.5\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\nexport { Checkbox };\n","import { PaperclipIcon, TrashIcon } from \"lucide-react\";\nimport { useRef } from \"react\";\nimport { Button } from \"zudoku/components\";\nimport { Checkbox } from \"zudoku/ui/Checkbox.js\";\nimport { humanFileSize } from \"../../../../util/humanFileSize.js\";\nimport {\n ParamsGridInput,\n ParamsGridItem,\n ParamsGridRemoveButton,\n} from \"../ParamsGrid.js\";\nimport type { PlaygroundForm } from \"../Playground.js\";\nimport type { useKeyValueFieldManager } from \"./useKeyValueFieldManager.js\";\n\ntype MultipartFieldProps = {\n index: number;\n manager: ReturnType<\n typeof useKeyValueFieldManager<PlaygroundForm, \"multipartFormFields\">\n >;\n};\n\nexport const MultipartField = ({ index, manager }: MultipartFieldProps) => {\n const fieldFileInputRef = useRef<HTMLInputElement>(null);\n const fieldValue = manager.getValue(index, \"value\");\n\n return (\n <ParamsGridItem>\n <Checkbox\n {...manager.getCheckboxProps(index)}\n disabled={!manager.getValue(index, \"name\")}\n />\n <ParamsGridInput\n {...manager.getNameInputProps(index)}\n placeholder=\"Key\"\n />\n <div className=\"flex items-center gap-1 flex-1\">\n {fieldValue instanceof File ? (\n <div className=\"flex items-center gap-1 flex-1 min-w-0\">\n <div className=\"flex items-center gap-1 border-b cursor-default\">\n <PaperclipIcon size={12} className=\"text-muted-foreground\" />\n <span\n className=\"text-xs truncate\"\n title={`${fieldValue.name} (${humanFileSize(fieldValue.size)})`}\n >\n {fieldValue.name}\n </span>\n </div>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n className=\"opacity-50 hover:opacity-100 hover:brightness-95 transition-opacity\"\n onClick={() => manager.setValue(index, \"value\", \"\")}\n >\n <TrashIcon size={13} />\n </Button>\n </div>\n ) : (\n <>\n <ParamsGridInput\n {...manager.getValueInputProps(index)}\n placeholder=\"Value\"\n />\n <input\n ref={fieldFileInputRef}\n type=\"file\"\n className=\"hidden\"\n onChange={(e) => {\n const file = e.target.files?.[0];\n if (!file) return;\n\n manager.setValue(index, \"value\", file);\n manager.setValue(index, \"active\", true);\n }}\n />\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n onClick={() => fieldFileInputRef.current?.click()}\n title=\"Attach file\"\n className=\"opacity-0 focus-visible:opacity-100 group-hover:opacity-100 group-hover:brightness-95 transition-opacity\"\n >\n <PaperclipIcon size={14} />\n </Button>\n </>\n )}\n <ParamsGridRemoveButton {...manager.getRemoveButtonProps(index)} />\n </div>\n </ParamsGridItem>\n );\n};\n","import {\n type ComponentPropsWithoutRef,\n type KeyboardEvent,\n startTransition,\n useCallback,\n useEffect,\n useRef,\n} from \"react\";\nimport type {\n Control,\n FieldArrayPath,\n FieldArrayWithId,\n FieldValues,\n PathValue,\n} from \"react-hook-form\";\nimport { useFieldArray, useFormContext } from \"react-hook-form\";\n\nexport type Value =\n | string\n | number\n | readonly string[]\n | File\n | boolean\n | undefined;\n\nexport type KeyValueField = {\n name: string;\n value: Value;\n active: boolean;\n};\n\nexport type KeyValueFieldManagerOptions<\n TFormData extends FieldValues,\n TName extends FieldArrayPath<TFormData>,\n T extends KeyValueField = PathValue<TFormData, TName>[number],\n> = {\n control: Control<TFormData>;\n name: TName;\n defaultValue: T;\n isEmpty?: (item: T) => boolean;\n shouldSetActive?: (item: T) => boolean;\n};\n\nexport type CheckboxProps = {\n checked: boolean;\n disabled?: boolean;\n onCheckedChange: (checked: boolean) => void;\n};\n\nexport type RemoveButtonProps = { onClick: () => void; disabled?: boolean };\n\ntype SetValueFn = (\n index: number,\n field: keyof KeyValueField,\n value: Value,\n options?: { focus?: \"next\" | \"previous\" },\n) => void;\n\ntype GetValueFn = (index: number, field: keyof KeyValueField) => Value;\n\nexport type UseKeyValueFieldManagerReturn<TFormData extends FieldValues> = {\n fields: FieldArrayWithId<TFormData>[];\n getNameInputProps: GetInputPropsFn;\n getValueInputProps: GetInputPropsFn;\n getCheckboxProps: (index: number) => CheckboxProps;\n getRemoveButtonProps: (index: number) => RemoveButtonProps;\n setValue: SetValueFn;\n getValue: GetValueFn;\n};\n\ntype GetInputPropsFn = (index: number) => ComponentPropsWithoutRef<\"input\">;\n\nexport const useKeyValueFieldManager = <\n TFormData extends FieldValues,\n TName extends FieldArrayPath<TFormData>,\n T extends KeyValueField = PathValue<TFormData, TName>[number],\n>(\n options: KeyValueFieldManagerOptions<TFormData, TName>,\n): UseKeyValueFieldManagerReturn<TFormData> => {\n const {\n control,\n name,\n defaultValue,\n isEmpty: customIsEmpty,\n shouldSetActive: customShouldSetActive,\n } = options;\n const {\n setValue: internalSetValue,\n watch,\n setFocus,\n register,\n } = useFormContext();\n const { fields, append, remove } = useFieldArray({ control, name });\n const watchedFields = watch(name) as T[];\n const lastEditedIndexRef = useRef(-1);\n const prevLengthRef = useRef(-1);\n\n const setValue = useCallback<SetValueFn>(\n (index, field, value, options) => {\n if (field === \"value\" || field === \"name\") {\n lastEditedIndexRef.current = index;\n }\n\n // biome-ignore lint/suspicious/noExplicitAny: Can't infer the type of the value here\n internalSetValue(`${name}.${index}.${field}`, value as any);\n\n if (options?.focus === \"next\") {\n setFocus(\n field === \"name\"\n ? `${name}.${index}.value`\n : `${name}.${index + 1}.name`,\n );\n } else if (options?.focus === \"previous\") {\n setFocus(\n field === \"name\"\n ? `${name}.${index - 1}.value`\n : `${name}.${index}.name`,\n );\n }\n },\n [name, internalSetValue, setFocus],\n );\n\n const isEmpty = useCallback(\n (item: T) => {\n if (customIsEmpty) return customIsEmpty(item);\n return !item.name && !item.value;\n },\n [customIsEmpty],\n );\n\n const shouldSetActive = useCallback(\n (item: T) => {\n if (customShouldSetActive) return customShouldSetActive(item);\n return Boolean(item.name || item.value);\n },\n [customShouldSetActive],\n );\n\n // Handle auto append/remove of rows\n useEffect(() => {\n if (!watchedFields) return;\n\n // Prevents double-appending in Strict Mode\n if (prevLengthRef.current === -1) {\n prevLengthRef.current = watchedFields.length;\n\n if (watchedFields.length === 0) {\n // biome-ignore lint/suspicious/noExplicitAny: Generic field array type\n append(defaultValue as any, {\n shouldFocus: false,\n });\n }\n return;\n }\n\n prevLengthRef.current = watchedFields.length;\n\n // If no fields, append one\n if (watchedFields.length === 0) {\n // biome-ignore lint/suspicious/noExplicitAny: Generic field array type\n append(defaultValue as any, {\n shouldFocus: false,\n });\n return;\n }\n\n // Auto-remove empty fields (except the last one, keep at least one)\n if (watchedFields.length > 1) {\n const emptyIndices: number[] = [];\n\n // Check all fields except the last one\n for (let i = 0; i < watchedFields.length - 1; i++) {\n const field = watchedFields[i];\n if (field && isEmpty(field) && !shouldSetActive(field)) {\n emptyIndices.push(i);\n }\n }\n\n // Remove from highest index to lowest to avoid index shifting\n if (emptyIndices.length > 0) {\n const lowestRemovedIndex = emptyIndices[0];\n\n if (lowestRemovedIndex === undefined) return;\n\n for (let i = emptyIndices.length - 1; i >= 0; i--) {\n const indexToRemove = emptyIndices[i];\n if (indexToRemove !== undefined) {\n remove(indexToRemove);\n }\n }\n\n // If we just edited this field, focus the name field at the same index\n // (which now contains what was the next row), or previous row if needed\n if (lastEditedIndexRef.current === lowestRemovedIndex) {\n const newLength = watchedFields.length - emptyIndices.length;\n\n if (lowestRemovedIndex < newLength) {\n // Next row moved into this position, focus its name field\n setFocus(`${name}.${lowestRemovedIndex}.name`);\n } else if (lowestRemovedIndex > 0) {\n // Removed row was at the end, focus previous row's name\n setFocus(`${name}.${lowestRemovedIndex - 1}.name`);\n } else {\n setFocus(`${name}.0.name`);\n }\n }\n lastEditedIndexRef.current = -1;\n }\n }\n\n // If last field has content, append empty one\n const lastField = watchedFields[watchedFields.length - 1];\n if (lastField && !isEmpty(lastField)) {\n // biome-ignore lint/suspicious/noExplicitAny: Generic field array type\n append(defaultValue as any, {\n shouldFocus: false,\n });\n }\n }, [\n watchedFields,\n append,\n remove,\n defaultValue,\n isEmpty,\n name,\n setFocus,\n shouldSetActive,\n ]);\n\n // Auto set active state of row checkbox\n useEffect(() => {\n if (!watchedFields) return;\n\n const updates: Array<() => void> = [];\n\n for (let i = 0; i < watchedFields.length; i++) {\n const field = watchedFields[i];\n if (!field) continue;\n\n const shouldBeActive = shouldSetActive(field);\n if (field.active === shouldBeActive) continue;\n\n updates.push(() => setValue(i, \"active\", shouldBeActive));\n }\n\n if (updates.length === 0) return;\n\n startTransition(() => updates.forEach((update) => update()));\n }, [watchedFields, shouldSetActive, setValue]);\n\n const isFieldEmpty = useCallback(\n (index: number) => {\n const field = watchedFields?.[index];\n return field ? isEmpty(field) : true;\n },\n [watchedFields, isEmpty],\n );\n\n const createKeyDownHandler = useCallback(\n (index: number, field: \"name\" | \"value\") => {\n const next =\n field === \"name\"\n ? `${name}.${index}.value`\n : `${name}.${index + 1}.name`;\n\n const previous =\n field === \"name\"\n ? `${name}.${index - 1}.value`\n : `${name}.${index}.name`;\n const canNavigatePrevious = field === \"value\" || index > 0;\n\n return (e: KeyboardEvent<HTMLInputElement>) => {\n if (!(e.target instanceof HTMLInputElement)) return;\n\n const isAtStart = e.target.selectionStart === 0;\n const isAtEnd = e.target.selectionStart === e.target.value.length;\n const isEmpty = !e.target.value;\n\n if (e.key === \"Enter\") {\n setFocus(next);\n } else if (e.key === \"Backspace\" && isEmpty && canNavigatePrevious) {\n e.preventDefault();\n setFocus(previous);\n } else if (e.key === \"ArrowLeft\" && isAtStart && canNavigatePrevious) {\n e.preventDefault();\n setFocus(previous);\n } else if (e.key === \"ArrowRight\" && isAtEnd) {\n e.preventDefault();\n setFocus(next);\n }\n };\n },\n [name, setFocus],\n );\n\n const getNameInputProps = useCallback<GetInputPropsFn>(\n (index) => ({\n ...register(`${name}.${index}.name`),\n onChange: (e) => setValue(index, \"name\", e.target.value),\n onKeyDown: createKeyDownHandler(index, \"name\"),\n }),\n [register, name, setValue, createKeyDownHandler],\n );\n\n const getValueInputProps = useCallback<GetInputPropsFn>(\n (index) => ({\n ...register(`${name}.${index}.value`),\n onChange: (e) => setValue(index, \"value\", e.target.value),\n onKeyDown: createKeyDownHandler(index, \"value\"),\n }),\n [register, name, setValue, createKeyDownHandler],\n );\n\n const getCheckboxProps = useCallback<(index: number) => CheckboxProps>(\n (index) => ({\n ...register(`${name}.${index}.active`),\n checked: watch(`${name}.${index}.active`) ?? false,\n disabled: isFieldEmpty(index),\n onCheckedChange: (checked: boolean) => {\n setValue(index, \"active\", checked === true);\n },\n }),\n [name, register, isFieldEmpty, watch, setValue],\n );\n\n const getValue = useCallback<GetValueFn>(\n (index, field) => watchedFields?.[index]?.[field],\n [watchedFields],\n );\n\n const getRemoveButtonProps = useCallback(\n (index: number) => ({\n onClick: () => remove(index),\n disabled: index === fields.length - 1,\n }),\n [remove, fields.length],\n );\n\n return {\n fields,\n getNameInputProps,\n getValueInputProps,\n getCheckboxProps,\n getRemoveButtonProps,\n setValue,\n getValue,\n };\n};\n","import {\n ChevronDownIcon,\n FileInput,\n Grid2x2PlusIcon,\n PaperclipIcon,\n ScanTextIcon,\n XIcon,\n} from \"lucide-react\";\nimport { useRef, useState } from \"react\";\nimport { useFormContext } from \"react-hook-form\";\nimport { Button } from \"zudoku/components\";\nimport { Collapsible, CollapsibleContent } from \"zudoku/ui/Collapsible.js\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"zudoku/ui/DropdownMenu.js\";\nimport { Textarea } from \"zudoku/ui/Textarea.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { humanFileSize } from \"../../../util/humanFileSize.js\";\nimport type { MediaTypeObject } from \"../graphql/graphql.js\";\nimport {\n CollapsibleHeader,\n CollapsibleHeaderTrigger,\n} from \"./CollapsibleHeader.js\";\nimport ExamplesDropdown from \"./ExamplesDropdown.js\";\nimport ParamsGrid from \"./ParamsGrid.js\";\nimport type { PlaygroundForm } from \"./Playground.js\";\nimport { MultipartField } from \"./request-panel/MultipartField.js\";\nimport { useKeyValueFieldManager } from \"./request-panel/useKeyValueFieldManager.js\";\n\nexport const BodyPanel = ({ content }: { content?: MediaTypeObject[] }) => {\n const { register, setValue, watch, control } =\n useFormContext<PlaygroundForm>();\n const examples = (content ?? []).flatMap((e) => e.examples);\n const [headers, file, bodyMode, body, multipartFormFields] = watch([\n \"headers\",\n \"file\",\n \"bodyMode\",\n \"body\",\n \"multipartFormFields\",\n ]);\n const fileInputRef = useRef<HTMLInputElement>(null);\n const [isDragging, setIsDragging] = useState(false);\n\n const handleFileSelect = (selectedFile: File | null) => {\n setValue(\"file\", selectedFile);\n if (!selectedFile) return;\n setValue(\n \"headers\",\n headers.filter(\n (h) => h.name.toLowerCase() !== \"content-type\" || !h.active,\n ),\n );\n };\n\n const handleFileInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const selectedFile = e.target.files?.[0] ?? null;\n handleFileSelect(selectedFile);\n };\n\n const handleDragOver = (e: React.DragEvent<HTMLElement>) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragging(true);\n };\n\n const handleDragLeave = (e: React.DragEvent<HTMLElement>) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragging(false);\n };\n\n const handleDrop = (e: React.DragEvent<HTMLElement>) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragging(false);\n\n const droppedFile = e.dataTransfer.files?.[0] ?? null;\n handleFileSelect(droppedFile);\n };\n\n const manager = useKeyValueFieldManager<\n PlaygroundForm,\n \"multipartFormFields\"\n >({\n control,\n name: \"multipartFormFields\",\n defaultValue: { name: \"\", value: \"\", active: false },\n isEmpty: (item) => {\n if (item.value instanceof File) return false;\n return !item.name && !item.value;\n },\n });\n\n return (\n <Collapsible defaultOpen>\n <CollapsibleHeaderTrigger className=\"items-center\">\n <FileInput size={16} />\n <CollapsibleHeader className=\"flex items-center justify-between\">\n Body\n <div className=\"flex items-center\">\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"hover:bg-accent hover:brightness-95 gap-2\"\n >\n {bodyMode === \"text\" ? (\n <>\n <ScanTextIcon size={14} />\n Text\n </>\n ) : bodyMode === \"file\" ? (\n <>\n <PaperclipIcon size={14} />\n File\n </>\n ) : (\n <>\n <Grid2x2PlusIcon size={14} />\n Multipart\n </>\n )}\n <ChevronDownIcon size={14} />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent className=\"min-w-40\">\n <DropdownMenuItem\n onSelect={() => setValue(\"bodyMode\", \"text\")}\n className=\"gap-2\"\n >\n <ScanTextIcon size={14} />\n <span className=\"flex-1\">Text</span>\n <span>\n {body.length > 0 && (\n <div className=\"w-1.5 h-1.5 bg-primary rounded-full\" />\n )}\n </span>\n </DropdownMenuItem>\n <DropdownMenuItem\n onSelect={() => setValue(\"bodyMode\", \"file\")}\n className=\"gap-2\"\n >\n <PaperclipIcon size={14} />\n <span className=\"flex-1\">File</span>\n <span>\n {file && (\n <div className=\"w-1.5 h-1.5 bg-primary rounded-full\" />\n )}\n </span>\n </DropdownMenuItem>\n <DropdownMenuItem\n onSelect={() => setValue(\"bodyMode\", \"multipart\")}\n className=\"gap-2\"\n >\n <Grid2x2PlusIcon size={14} strokeWidth={1.5} />\n <span className=\"flex-1\">Multipart</span>\n <span>\n {multipartFormFields?.some((field) => field.active) && (\n <div className=\"w-1.5 h-1.5 bg-primary rounded-full\" />\n )}\n </span>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n <input\n ref={fileInputRef}\n type=\"file\"\n className=\"hidden\"\n onChange={handleFileInputChange}\n />\n <div className=\"w-px mx-1 h-5 bg-border\" />\n {content && examples.length > 0 ? (\n <ExamplesDropdown\n examples={content}\n onSelect={(example, mediaType) => {\n setValue(\"body\", JSON.stringify(example.value, null, 2));\n setValue(\"headers\", [\n ...headers.filter((h) => h.name !== \"Content-Type\"),\n {\n name: \"Content-Type\",\n value: mediaType,\n active: true,\n },\n ]);\n }}\n />\n ) : (\n <div />\n )}\n </div>\n </CollapsibleHeader>\n </CollapsibleHeaderTrigger>\n <CollapsibleContent className=\"CollapsibleContent flex flex-col gap-2\">\n {bodyMode === \"text\" && (\n <Textarea\n {...register(\"body\")}\n className={cn(\n \"w-full px-4 py-2.5 h-64 font-mono md:text-xs border-none rounded-none focus-visible:ring-0 transition-colors\",\n )}\n placeholder=\"Body content\"\n />\n )}\n {bodyMode === \"file\" && (\n <div\n role=\"region\"\n aria-label=\"File upload drop zone\"\n className={cn(\n \"flex flex-col items-center justify-center gap-4 min-h-[300px]\",\n )}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n >\n <button\n type=\"button\"\n onClick={() => fileInputRef.current?.click()}\n className={cn(\n \"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\",\n (file || isDragging) && \"border-solid\",\n isDragging && \"bg-accent border-primary\",\n )}\n >\n <PaperclipIcon\n className={cn(\n \"text-muted-foreground\",\n isDragging && \"text-primary\",\n )}\n size={30}\n />\n </button>\n {file ? (\n <div className=\"flex items-center justify-between gap-2 px-2 py-1.5 rounded-md border\">\n <span className=\"text-sm truncate\" title={file.name}>\n {file.name}{\" \"}\n <span className=\"text-muted-foreground\">\n ({humanFileSize(file.size)})\n </span>\n </span>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xxs\"\n onClick={() => handleFileSelect(null)}\n >\n <XIcon size={14} />\n </Button>\n </div>\n ) : (\n <span className=\"text-lg font-semibold text-muted-foreground\">\n Select or drop a file\n </span>\n )}\n </div>\n )}\n {bodyMode === \"multipart\" && (\n <ParamsGrid>\n {manager.fields.map((field, index) => (\n <MultipartField key={field.id} index={index} manager={manager} />\n ))}\n </ParamsGrid>\n )}\n </CollapsibleContent>\n </Collapsible>\n );\n};\n\nexport default BodyPanel;\n","import type { PlaygroundForm } from \"./Playground.js\";\n\nexport const createUrl = (host: string, path: string, data: PlaygroundForm) => {\n const filledPath = path.replace(/(:\\w+|\\{\\w+})/g, (match) => {\n const key = match.replace(/[:{}]/g, \"\");\n const value = data.pathParams.find((part) => part.name === key)?.value;\n\n return value ?? match;\n });\n\n // Ensure host ends with a slash and path doesn't start with one,\n // so they form a correct URL, without overriding the host's path.\n const url = new URL(\n filledPath.replace(/^\\//, \"\"),\n host.endsWith(\"/\") ? host : `${host}/`,\n );\n\n data.queryParams\n .filter((param) => param.active)\n .forEach((param) => {\n url.searchParams.set(param.name, param.value);\n });\n\n return url;\n};\n","export function isBinaryContentType(contentType: string) {\n return /^(application\\/octet-stream|image\\/|audio\\/|video\\/|font\\/|application\\/pdf|application\\/zip|application\\/x-protobuf|application\\/x-binary)/i.test(\n contentType,\n );\n}\n\nexport const extractFileName = (\n headers: Array<[string, string]>,\n url: string,\n): string => {\n const contentDisposition = headers.find(\n ([key]) => key.toLowerCase() === \"content-disposition\",\n )?.[1];\n\n if (contentDisposition) {\n const filenameMatch = contentDisposition.match(\n /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/,\n );\n if (filenameMatch?.[1]) {\n return filenameMatch[1].replace(/['\"]/g, \"\");\n }\n }\n\n // Extract filename from URL as fallback\n try {\n const urlPath = new URL(url).pathname;\n const fileName = urlPath.split(\"/\").pop() || \"download\";\n return fileName.includes(\".\") ? fileName : \"download\";\n } catch {\n return \"download\";\n }\n};\n","import * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport * as React from \"react\";\n\nimport { cn } from \"../util/cn.js\";\n\nconst Popover = PopoverPrimitive.Root;\n\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"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\",\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n));\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\nexport { Popover, PopoverContent, PopoverTrigger };\n","import { PopoverAnchor } from \"@radix-ui/react-popover\";\nimport { useCommandState } from \"cmdk\";\nimport { type KeyboardEvent, type Ref, useRef, useState } from \"react\";\nimport {\n Command,\n CommandInlineInput,\n CommandItem,\n CommandList,\n} from \"zudoku/ui/Command.js\";\nimport { Popover, PopoverContent } from \"zudoku/ui/Popover.js\";\nimport { cn } from \"../util/cn.js\";\n\ntype AutocompleteProps = {\n value?: string | number | readonly string[] | undefined;\n options: readonly string[];\n onChange: (e: string) => void;\n onSelect?: (e: string) => void;\n className?: string;\n placeholder?: string;\n onEnterPress?: (e: KeyboardEvent<HTMLInputElement>) => void;\n onKeyDown?: (e: KeyboardEvent<HTMLInputElement>) => void;\n ref?: Ref<HTMLInputElement>;\n shouldFilter?: boolean;\n};\n\nconst AutocompletePopover = ({\n value,\n options,\n onChange,\n className,\n placeholder = \"Value\",\n onEnterPress,\n onKeyDown,\n ref,\n onSelect,\n}: AutocompleteProps) => {\n const [open, setOpen] = useState(false);\n const [dontClose, setDontClose] = useState(false);\n const count = useCommandState((state) => state.filtered.count);\n const inputRef = useRef<HTMLInputElement>(null);\n\n return (\n <Popover open={open}>\n <PopoverAnchor>\n <CommandInlineInput\n autoComplete=\"off\"\n ref={(el) => {\n inputRef.current = el;\n if (typeof ref === \"function\") {\n ref(el);\n } else if (ref) {\n ref.current = el;\n }\n }}\n value={value ? String(value) : undefined}\n placeholder={placeholder}\n className={cn(\"h-9 bg-transparent\", className)}\n onFocus={() => setOpen(true)}\n onBlur={() => {\n if (dontClose) {\n return;\n }\n setOpen(false);\n }}\n onKeyDown={(e) => {\n onKeyDown?.(e);\n\n if (e.defaultPrevented) return;\n\n if (e.key === \"Enter\") {\n setOpen(false);\n inputRef.current?.blur();\n onEnterPress?.(e);\n }\n }}\n onValueChange={(e) => onChange(e)}\n />\n </PopoverAnchor>\n <PopoverContent\n onMouseEnter={() => setDontClose(true)}\n onMouseLeave={() => setDontClose(false)}\n onOpenAutoFocus={(e) => e.preventDefault()}\n className={cn(\"p-0 w-(--radix-popover-trigger-width)\", {\n \"border-0\": count === 0,\n })}\n align=\"start\"\n side=\"bottom\"\n onWheel={(e) => {\n // See: https://github.com/radix-ui/primitives/issues/1159\n e.stopPropagation();\n }}\n onTouchMove={(e) => {\n e.stopPropagation();\n }}\n >\n <CommandList className=\"max-h-[140px]\">\n {options.map((enumValue) => (\n <CommandItem\n key={enumValue}\n value={enumValue}\n onSelect={(selected) => {\n onSelect?.(selected);\n onChange(selected);\n setOpen(false);\n }}\n className=\"cursor-pointer\"\n >\n {enumValue}\n </CommandItem>\n ))}\n </CommandList>\n </PopoverContent>\n </Popover>\n );\n};\n\nexport const Autocomplete = ({ shouldFilter, ...props }: AutocompleteProps) => {\n return (\n <Command className=\"bg-transparent\" shouldFilter={shouldFilter}>\n <AutocompletePopover {...props} />\n </Command>\n );\n};\n","import { CircleAlertIcon, LockIcon, TableOfContentsIcon } from \"lucide-react\";\nimport { type Control, useFormContext } from \"react-hook-form\";\nimport { Checkbox } from \"zudoku/ui/Checkbox.js\";\nimport { Collapsible, CollapsibleContent } from \"zudoku/ui/Collapsible.js\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"zudoku/ui/Tooltip.js\";\nimport { Autocomplete } from \"../../../components/Autocomplete.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport {\n CollapsibleHeader,\n CollapsibleHeaderTrigger,\n} from \"./CollapsibleHeader.js\";\nimport ParamsGrid, {\n ParamsGridInput,\n ParamsGridItem,\n ParamsGridRemoveButton,\n} from \"./ParamsGrid.js\";\nimport type { Header, PlaygroundForm } from \"./Playground.js\";\nimport { useKeyValueFieldManager } from \"./request-panel/useKeyValueFieldManager.js\";\n\n// biome-ignore format: Easier to read\nconst headerOptions = Object.freeze([\n \"Accept\", \"Accept-Encoding\", \"Accept-Language\", \"Authorization\", \"Cache-Control\", \"Connection\",\n \"Content-Disposition\", \"Content-Encoding\", \"Content-Language\", \"Content-Length\", \"Content-Range\",\n \"Content-Security-Policy\", \"Content-Type\", \"Cookie\", \"Date\", \"ETag\", \"Expires\", \"Host\",\n \"If-Modified-Since\", \"Location\", \"Origin\", \"Pragma\", \"Referer\", \"Set-Cookie\", \"User-Agent\",\n \"X-Requested-With\",\n]);\n\nexport const Headers = ({\n control,\n schemaHeaders,\n lockedHeaders,\n}: {\n control: Control<PlaygroundForm>;\n schemaHeaders: Header[];\n lockedHeaders?: string[];\n}) => {\n const { watch, formState } = useFormContext<PlaygroundForm>();\n const watchedHeaders = watch(\"headers\");\n\n const manager = useKeyValueFieldManager<PlaygroundForm, \"headers\">({\n control,\n name: \"headers\",\n defaultValue: { name: \"\", value: \"\", active: false },\n });\n\n const missingHeaders = schemaHeaders\n .filter((h) => !watchedHeaders.some((f) => f.name === h.name))\n .map(({ name }) => name);\n\n const hiddenHeadersIndex = manager.fields.flatMap((f, index) => {\n const keep = !lockedHeaders\n ?.map((h) => h.toLowerCase())\n .includes(f.name.toLowerCase());\n\n return keep ? [] : [index];\n });\n\n const lockedHeaderFields =\n lockedHeaders?.map((h) => ({\n name: h,\n id: `locked-${h}`,\n value: \"••••••••••\",\n active: true,\n locked: true,\n })) ?? [];\n\n return (\n <Collapsible defaultOpen>\n <CollapsibleHeaderTrigger>\n <TableOfContentsIcon size={14} />\n <CollapsibleHeader>Headers</CollapsibleHeader>\n </CollapsibleHeaderTrigger>\n <CollapsibleContent className=\"CollapsibleContent\">\n <div className=\"flex flex-col gap-2\">\n <div className=\"overflow-hidden\">\n <ParamsGrid>\n {lockedHeaderFields.map((field) => (\n <Tooltip key={field.id}>\n <TooltipTrigger asChild>\n <ParamsGridItem\n key={field.id}\n className=\"opacity-50 cursor-not-allowed font-mono text-xs min-h-10\"\n >\n <LockIcon size={16} />\n <ParamsGridInput value={field.name} disabled />\n <div>{field.value}</div>\n </ParamsGridItem>\n </TooltipTrigger>\n <TooltipContent alignOffset={10} side=\"bottom\" align=\"start\">\n <p>This header is set by the selected authentication.</p>\n </TooltipContent>\n </Tooltip>\n ))}\n {manager.fields.map((field, i) => {\n const currentSchemaHeader = schemaHeaders.find(\n (h) => h.name === watchedHeaders.at(i)?.name,\n );\n const hasEnum =\n currentSchemaHeader?.enum &&\n currentSchemaHeader.enum.length > 0;\n const isHidden = hiddenHeadersIndex.includes(i);\n const nameInputProps = manager.getNameInputProps(i);\n const valueInputProps = manager.getValueInputProps(i);\n\n return (\n <ParamsGridItem\n key={field.id}\n className={cn(\n isHidden && \"text-amber-600\",\n isHidden &&\n !formState.dirtyFields.headers?.[i]?.value &&\n \"hidden\",\n )}\n >\n <Checkbox\n className={cn(isHidden && \"hidden\")}\n {...manager.getCheckboxProps(i)}\n />\n <Tooltip>\n <TooltipTrigger asChild>\n <CircleAlertIcon\n className={cn(\n \"text-amber-600\",\n !isHidden && \"hidden\",\n )}\n size={16}\n />\n </TooltipTrigger>\n <TooltipContent\n alignOffset={10}\n side=\"bottom\"\n align=\"start\"\n >\n <p>\n This header will be overwritten by the selected\n authentication.\n </p>\n </TooltipContent>\n </Tooltip>\n <ParamsGridInput asChild>\n <Autocomplete\n {...nameInputProps}\n value={String(manager.getValue(i, \"name\"))}\n placeholder=\"Name\"\n options={[...missingHeaders, ...headerOptions]}\n onChange={(v) => manager.setValue(i, \"name\", v)}\n onSelect={(v) =>\n manager.setValue(i, \"name\", v, { focus: \"next\" })\n }\n />\n </ParamsGridInput>\n <div className=\"flex items-center gap-2\">\n {!hasEnum ? (\n <ParamsGridInput\n placeholder=\"Value\"\n autoComplete=\"off\"\n {...valueInputProps}\n />\n ) : (\n <ParamsGridInput asChild>\n <Autocomplete\n {...valueInputProps}\n value={String(manager.getValue(i, \"value\"))}\n shouldFilter={false}\n options={currentSchemaHeader.enum ?? []}\n onChange={(v) => manager.setValue(i, \"value\", v)}\n onSelect={(v) =>\n manager.setValue(i, \"value\", v, { focus: \"next\" })\n }\n />\n </ParamsGridInput>\n )}\n <ParamsGridRemoveButton\n {...manager.getRemoveButtonProps(i)}\n />\n </div>\n </ParamsGridItem>\n );\n })}\n </ParamsGrid>\n </div>\n </div>\n </CollapsibleContent>\n </Collapsible>\n );\n};\n","import * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"../util/cn.js\";\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n);\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","import * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\";\nimport { Circle } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"../util/cn.js\";\n\nconst RadioGroup = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Root\n className={cn(\"grid gap-2\", className)}\n {...props}\n ref={ref}\n />\n );\n});\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName;\n\nconst RadioGroupItem = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n \"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\",\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <Circle className=\"h-2.5 w-2.5 fill-current text-current\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n});\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;\n\nexport { RadioGroup, RadioGroupItem };\n","import { Label } from \"zudoku/ui/Label.js\";\nimport { RadioGroup, RadioGroupItem } from \"zudoku/ui/RadioGroup.js\";\nimport type { ApiIdentity } from \"../../../core/ZudokuContext.js\";\nimport { NO_IDENTITY } from \"./Playground.js\";\n\nconst IdentitySelector = ({\n identities,\n setValue,\n value,\n}: {\n identities?: ApiIdentity[];\n setValue: (value: string) => void;\n value?: string;\n}) => (\n <div className=\"w-full overflow-hidden\">\n <RadioGroup\n onValueChange={(value) => setValue(value)}\n value={value}\n defaultValue={NO_IDENTITY}\n className=\"gap-0\"\n disabled={identities?.length === 0}\n >\n {[{ id: NO_IDENTITY, label: \"None\" }, ...(identities ?? [])].map(\n (identity) => (\n <Label\n key={identity.id}\n className=\"h-10 items-center border-b font-normal flex gap-4 p-4 cursor-pointer hover:bg-accent/75\"\n >\n <RadioGroupItem value={identity.id} id={identity.id} />\n <span>{identity.label}</span>\n </Label>\n ),\n )}\n </RadioGroup>\n </div>\n);\n\nexport default IdentitySelector;\n","import { useState } from \"react\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport { Card } from \"zudoku/ui/Card.js\";\nimport { Checkbox } from \"zudoku/ui/Checkbox.js\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogTitle,\n} from \"zudoku/ui/Dialog.js\";\nimport { Label } from \"zudoku/ui/Label.js\";\nimport type { ApiIdentity } from \"../../../core/ZudokuContext.js\";\nimport IdentitySelector from \"./IdentitySelector.js\";\n\nconst IdentityDialog = ({\n onSubmit,\n identities,\n open,\n onOpenChange,\n}: {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n onSubmit: ({\n rememberedIdentity,\n identity,\n }: {\n rememberedIdentity: boolean;\n identity?: string;\n }) => void;\n identities: ApiIdentity[];\n}) => {\n const [identity, setIdentity] = useState<string | undefined>(undefined);\n const [rememberedIdentity, setRememberedIdentity] = useState<boolean>(false);\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent>\n <DialogTitle>Select an auth identity</DialogTitle>\n <DialogDescription>\n Please select an identity for this request.\n </DialogDescription>\n <Card className=\"max-h-80 overflow-auto\">\n <IdentitySelector\n identities={identities}\n setValue={setIdentity}\n value={identity}\n />\n </Card>\n <DialogFooter className=\"flex flex-col gap-2\">\n <div className=\"flex items-center gap-2\">\n <Checkbox\n id=\"remember\"\n checked={rememberedIdentity}\n onCheckedChange={(checked) =>\n setRememberedIdentity(\n checked === \"indeterminate\" ? false : !!checked,\n )\n }\n />\n <Label htmlFor=\"remember\">Remember my choice</Label>\n </div>\n\n <Button\n onClick={() => onSubmit({ identity: identity, rememberedIdentity })}\n >\n Send\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n};\n\nexport { IdentityDialog };\n","const c2n = (c: string) =>\n Math.abs(\n Number.isNaN(Number(c))\n ? c.toLowerCase().charCodeAt(0) - 96\n : Number.isNaN(Number(c))\n ? 0\n : Number(c),\n );\nconst s2n = (s: string) =>\n s.length > 1\n ? Number(s.split(\"\").reduce((a, c) => `${c2n(a) + c2n(c)}`))\n : c2n(s);\n\nexport const pastellize = (\n s: string,\n options: {\n saturation?: number;\n lightness?: number;\n } = {},\n) => {\n const hue = (3 * s2n(s) + 2 * s2n(s) + s2n(s)) % 360;\n const { saturation = 75, lightness = 60 } = options;\n\n return `${hue}deg ${saturation}% ${lightness}%`;\n};\n","import { useTheme } from \"next-themes\";\nimport { type CSSProperties, type ReactNode, useEffect, useRef } from \"react\";\nimport { cn } from \"../../util/cn.js\";\nimport { pastellize } from \"../../util/pastellize.js\";\n\nexport const DATA_ATTR = \"data-linked-param\";\n\nexport const usePastellizedColor = (name: string) => {\n const { resolvedTheme } = useTheme();\n\n return {\n text: pastellize(\n name,\n resolvedTheme === \"light\" ? { saturation: 95, lightness: 38 } : {},\n ),\n background: pastellize(\n name,\n resolvedTheme === \"light\" ? { saturation: 85, lightness: 40 } : {},\n ),\n };\n};\n\nexport const useParamColor = (name: string) => {\n const normalized = name.replace(/[{}]/g, \"\");\n return usePastellizedColor(normalized);\n};\n\nexport const ColorizedParam = ({\n name,\n className,\n slug,\n title,\n children,\n onClick,\n}: {\n name: string;\n className?: string;\n backgroundOpacity?: string;\n borderOpacity?: string;\n slug?: string;\n children?: ReactNode;\n title?: string;\n onClick?: () => void;\n}) => {\n const ref = useRef<HTMLSpanElement>(null);\n const normalizedSlug = slug?.replace(/[{}]/g, \"\");\n const normalized = name.replace(/[{}]/g, \"\");\n const { text, background } = usePastellizedColor(normalized);\n\n const textColor = `hsl(${text} / 100%)`;\n const backgroundColor = `hsl(${background} / 10%)`;\n const borderColor = `hsl(${background} / 50%)`;\n\n useEffect(() => {\n if (!normalizedSlug) return;\n if (!ref.current) return;\n\n const onMouseEnter = () => {\n document\n .querySelectorAll(`[${DATA_ATTR}=\"${normalizedSlug}\"]`)\n .forEach((el) => {\n if (el instanceof HTMLElement) {\n el.dataset.active = \"true\";\n }\n });\n };\n const onMouseLeave = () => {\n document\n .querySelectorAll(`[${DATA_ATTR}=\"${normalizedSlug}\"]`)\n .forEach((el) => {\n if (el instanceof HTMLElement) {\n el.dataset.active = \"false\";\n }\n });\n };\n\n const el = ref.current;\n\n el.addEventListener(\"mouseenter\", onMouseEnter);\n el.addEventListener(\"mouseleave\", onMouseLeave);\n\n return () => {\n el.removeEventListener(\"mouseenter\", onMouseEnter);\n el.removeEventListener(\"mouseleave\", onMouseLeave);\n };\n }, [normalizedSlug]);\n\n return (\n // biome-ignore lint/a11y/noStaticElementInteractions: Just passing props through\n // biome-ignore lint/a11y/useKeyWithClickEvents: Just passing props through\n <span\n {...{ [DATA_ATTR]: normalizedSlug }}\n className={cn(\n // This may not contain (inline-)flex or (inline-)block otherwise it breaks the browser's full text search\n \"relative transition-all duration-100 rounded-lg\",\n \"border border-(--border-color) p-0.5 text-(--param-color) bg-(--background-color)\",\n \"data-[active=true]:border-(--param-color) data-[active=true]:shadow-sm data-[active=true]:bottom-px\",\n className,\n )}\n title={title}\n suppressHydrationWarning\n ref={ref}\n onClick={onClick}\n style={\n {\n \"--param-color\": textColor,\n \"--border-color\": borderColor,\n \"--background-color\": backgroundColor,\n } as CSSProperties\n }\n >\n {children ?? name}\n </span>\n );\n};\n","import { type Control, Controller, useFieldArray } from \"react-hook-form\";\nimport { ColorizedParam } from \"../ColorizedParam.js\";\nimport ParamsGrid, { ParamsGridInput, ParamsGridItem } from \"./ParamsGrid.js\";\nimport type { PlaygroundForm } from \"./Playground.js\";\n\nexport const PathParams = ({\n control,\n url,\n}: {\n control: Control<PlaygroundForm>;\n url: string;\n}) => {\n const { fields } = useFieldArray<PlaygroundForm, \"pathParams\">({\n control,\n name: \"pathParams\",\n });\n\n const sortedFields = [...fields].sort(\n (a, b) => url.indexOf(`{${a.name}}`) - url.indexOf(`{${b.name}}`),\n );\n\n return (\n <ParamsGrid>\n {sortedFields.map((field, i) => (\n <ParamsGridItem key={field.id}>\n <Controller\n control={control}\n name={`pathParams.${i}.name`}\n render={() => (\n <div className=\"flex items-center\">\n <ColorizedParam\n slug={field.name}\n name={field.name}\n className=\"font-mono text-xs px-2\"\n />\n </div>\n )}\n />\n\n <div className=\"flex justify-between items-center col-span-2\">\n <Controller\n control={control}\n name={`pathParams.${i}.value`}\n render={({ field }) => (\n <ParamsGridInput {...field} required placeholder=\"Value\" />\n )}\n />\n </div>\n </ParamsGridItem>\n ))}\n </ParamsGrid>\n );\n};\n","import { Unlink2Icon } from \"lucide-react\";\nimport { type Control, useFormContext } from \"react-hook-form\";\nimport { Checkbox } from \"zudoku/ui/Checkbox.js\";\nimport { Collapsible, CollapsibleContent } from \"zudoku/ui/Collapsible.js\";\nimport { Autocomplete } from \"../../../components/Autocomplete.js\";\nimport {\n CollapsibleHeader,\n CollapsibleHeaderTrigger,\n} from \"./CollapsibleHeader.js\";\nimport ParamsGrid, {\n ParamsGridInput,\n ParamsGridItem,\n ParamsGridRemoveButton,\n} from \"./ParamsGrid.js\";\nimport type { PlaygroundForm, QueryParam } from \"./Playground.js\";\nimport { useKeyValueFieldManager } from \"./request-panel/useKeyValueFieldManager.js\";\n\nexport const QueryParams = ({\n control,\n schemaQueryParams,\n}: {\n control: Control<PlaygroundForm>;\n schemaQueryParams: QueryParam[];\n}) => {\n const { watch } = useFormContext<PlaygroundForm>();\n const watchedQueryParams = watch(\"queryParams\");\n\n const manager = useKeyValueFieldManager<PlaygroundForm, \"queryParams\">({\n control,\n name: \"queryParams\",\n defaultValue: { name: \"\", value: \"\", active: false },\n });\n\n const requiredFields = schemaQueryParams.map((param) =>\n Boolean(param.isRequired),\n );\n\n const hasSchemaParams = schemaQueryParams.length > 0;\n\n return (\n <Collapsible defaultOpen>\n <CollapsibleHeaderTrigger>\n <Unlink2Icon size={16} />\n <CollapsibleHeader>Query Parameters</CollapsibleHeader>\n </CollapsibleHeaderTrigger>\n <CollapsibleContent className=\"CollapsibleContent\">\n <ParamsGrid>\n {manager.fields.map((field, i) => {\n const currentParam = schemaQueryParams.find(\n (param) => param.name === watchedQueryParams.at(i)?.name,\n );\n const hasEnum = currentParam?.enum && currentParam.enum.length > 0;\n const nameInputProps = manager.getNameInputProps(i);\n const valueInputProps = manager.getValueInputProps(i);\n\n return (\n <ParamsGridItem key={field.id}>\n <Checkbox {...manager.getCheckboxProps(i)} />\n {!requiredFields[i] ? (\n hasSchemaParams ? (\n <ParamsGridInput asChild>\n <Autocomplete\n {...nameInputProps}\n value={String(manager.getValue(i, \"name\"))}\n placeholder=\"Name\"\n options={schemaQueryParams.map((param) => param.name)}\n onChange={(v) => manager.setValue(i, \"name\", v)}\n onSelect={(v) =>\n manager.setValue(i, \"name\", v, { focus: \"next\" })\n }\n />\n </ParamsGridInput>\n ) : (\n <ParamsGridInput {...nameInputProps} placeholder=\"Name\" />\n )\n ) : (\n <ParamsGridInput asChild>\n <label\n className=\"flex items-center cursor-pointer gap-1\"\n htmlFor={`queryParams.${i}.active`}\n title={requiredFields[i] ? \"Required field\" : undefined}\n >\n {watchedQueryParams[i]?.name}\n {requiredFields[i] && <sup>&nbsp;*</sup>}\n </label>\n </ParamsGridInput>\n )}\n <div className=\"flex justify-between items-center\">\n {!hasEnum ? (\n <ParamsGridInput\n placeholder=\"Value\"\n aria-label=\"Query parameter value\"\n {...valueInputProps}\n />\n ) : (\n <ParamsGridInput asChild>\n <Autocomplete\n {...valueInputProps}\n value={String(manager.getValue(i, \"value\"))}\n shouldFilter={false}\n options={currentParam.enum ?? []}\n onChange={(v) => manager.setValue(i, \"value\", v)}\n onSelect={(v) =>\n manager.setValue(i, \"value\", v, { focus: \"next\" })\n }\n />\n </ParamsGridInput>\n )}\n <ParamsGridRemoveButton\n {...manager.getRemoveButtonProps(i)}\n />\n </div>\n </ParamsGridItem>\n );\n })}\n </ParamsGrid>\n </CollapsibleContent>\n </Collapsible>\n );\n};\n","import { useState } from \"react\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport { Checkbox } from \"zudoku/ui/Checkbox.js\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogTitle,\n} from \"zudoku/ui/Dialog.js\";\nimport { Label } from \"zudoku/ui/Label.js\";\n\nconst RequestLoginDialog = ({\n open,\n setOpen,\n onSignUp,\n onLogin,\n onSkip,\n}: {\n open: boolean;\n onSignUp?: () => void;\n onLogin?: () => void;\n setOpen: (open: boolean) => void;\n onSkip?: (rememberSkip: boolean) => void;\n}) => {\n const [rememberSkip, setRememberSkip] = useState(false);\n\n const handleSkip = () => {\n onSkip?.(rememberSkip);\n setOpen(false);\n };\n\n return (\n <Dialog open={open} onOpenChange={setOpen}>\n <DialogContent>\n <DialogTitle>Welcome to the Playground!</DialogTitle>\n <DialogDescription>\n The Playground is a tool for developers to test and explore our APIs.\n To use the Playground, you need to login.\n </DialogDescription>\n <Label className=\"flex items-center gap-2 font-normal\">\n <Checkbox\n checked={rememberSkip}\n onCheckedChange={(checked) => setRememberSkip(checked === true)}\n />\n Don't show this again\n </Label>\n <DialogFooter className=\"flex gap-2 sm:justify-between\">\n <Button type=\"button\" variant=\"outline\" onClick={handleSkip}>\n Skip\n </Button>\n <div className=\"flex gap-2\">\n {onSignUp && (\n <Button type=\"button\" variant=\"outline\" onClick={onSignUp}>\n Sign Up\n </Button>\n )}\n {onLogin && (\n <Button type=\"button\" variant=\"default\" onClick={onLogin}>\n Login\n </Button>\n )}\n </div>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n};\n\nexport default RequestLoginDialog;\n","import { create } from \"zustand\";\nimport { createJSONStorage, persist } from \"zustand/middleware\";\n\ninterface IdentityState {\n rememberedIdentity: string | null;\n setRememberedIdentity: (identity: string | null) => void;\n getRememberedIdentity: (availableIdentities: string[]) => string | undefined;\n}\n\nexport const useIdentityStore = create<IdentityState>()(\n persist(\n (set, get) => ({\n rememberedIdentity: null,\n setRememberedIdentity: (identity: string | null) =>\n set({ rememberedIdentity: identity }),\n getRememberedIdentity: (availableIdentities: string[]) =>\n availableIdentities.find(\n (identity) => identity === get().rememberedIdentity,\n ),\n }),\n {\n name: \"identity-storage\",\n storage: createJSONStorage(() => sessionStorage),\n },\n ),\n);\n","import { Fragment, type ReactNode } from \"react\";\n\ntype PathParamProps = {\n name: string;\n index: number;\n originalValue?: string;\n};\n\nexport const PathRenderer = ({\n path,\n renderParam,\n}: {\n path: string;\n renderParam: (props: PathParamProps) => ReactNode;\n}) => {\n let paramIndex = 0;\n return path.split(\"/\").map((part, i, arr) => {\n const matches = Array.from(part.matchAll(/{([^}]+)}/g));\n const elements: ReactNode[] = [];\n let lastIndex = 0;\n\n matches.forEach((match) => {\n const [originalValue, name] = match;\n if (!name) return;\n const startIndex = match.index;\n\n if (startIndex > lastIndex) {\n elements.push(\n <Fragment key={`text-${lastIndex}-${startIndex}`}>\n {part.slice(lastIndex, startIndex)}\n </Fragment>,\n );\n }\n\n elements.push(\n <Fragment key={`param-${name}`}>\n {renderParam({ name, originalValue, index: paramIndex++ })}\n </Fragment>,\n );\n\n lastIndex = startIndex + originalValue.length;\n });\n\n if (lastIndex < part.length) {\n elements.push(\n <Fragment key={`text-${lastIndex}-${part.length}`}>\n {part.slice(lastIndex)}\n </Fragment>,\n );\n }\n\n return (\n // biome-ignore lint/suspicious/noArrayIndexKey: index should be stable\n <Fragment key={`${part}-${i}`}>\n {elements}\n {i < arr.length - 1 && \"/\"}\n <wbr />\n </Fragment>\n );\n });\n};\n","import { useFormContext } from \"react-hook-form\";\nimport { PathRenderer } from \"../../../../components/PathRenderer.js\";\nimport { ColorizedParam } from \"../../ColorizedParam.js\";\nimport type { PlaygroundForm } from \"../Playground.js\";\n\nexport const UrlPath = ({ url }: { url: string }) => {\n const { watch, setFocus } = useFormContext<PlaygroundForm>();\n const [pathParams] = watch([\"pathParams\"]);\n\n return (\n <PathRenderer\n path={url}\n renderParam={({ name, originalValue, index }) => {\n const formValue = pathParams.find(\n (param) => param.name === name,\n )?.value;\n\n return (\n <ColorizedParam\n name={name}\n backgroundOpacity=\"0\"\n slug={name}\n onClick={() => setFocus(`pathParams.${index}.value`)}\n >\n {formValue || originalValue}\n </ColorizedParam>\n );\n }}\n />\n );\n};\n","import { Fragment } from \"react\";\nimport { useFormContext } from \"react-hook-form\";\nimport type { PlaygroundForm } from \"../Playground.js\";\n\nexport const UrlQueryParams = () => {\n const { watch } = useFormContext<PlaygroundForm>();\n const queryParams = watch(\"queryParams\");\n\n const urlQueryParams = queryParams\n .filter((p) => p.active && p.name)\n .map((p, i, arr) => (\n <Fragment key={`${i}-${p.name}`}>\n {p.name}={encodeURIComponent(p.value).replaceAll(\"%20\", \"+\")}\n {i < arr.length - 1 && \"&\"}\n <wbr />\n </Fragment>\n ));\n\n return (\n <>\n {urlQueryParams.length > 0 ? `?` : \"\"}\n {urlQueryParams}\n </>\n );\n};\n","import { useCallback, useLayoutEffect, useRef } from \"react\";\nimport { humanFileSize } from \"../../../../util/humanFileSize.js\";\n\nconst ResponseCodeCircle = ({ status }: { status?: number }) => {\n if (!status) return <div className=\"w-2 h-2 rounded-full bg-gray-500\" />;\n\n switch (Number(status.toString().slice(0, 1))) {\n case 2:\n return <div className=\"w-2 h-2 rounded-full bg-green-500\" />;\n case 4:\n return <div className=\"w-2 h-2 rounded-full bg-yellow-400\" />;\n case 5:\n return <div className=\"w-2 h-2 rounded-full bg-red-500\" />;\n default:\n return <div className=\"w-2 h-2 rounded-full bg-gray-500\" />;\n }\n};\n\nconst RealTimeCounter = () => {\n const spanRef = useRef<HTMLSpanElement>(null);\n const textRef = useRef<Text | null>(null);\n const startTimeRef = useRef<number>(Date.now());\n const animationFrameRef = useRef<number>(null);\n\n const updateTime = useCallback(() => {\n if (textRef.current) {\n const elapsed = Date.now() - startTimeRef.current;\n textRef.current.nodeValue = elapsed.toFixed();\n }\n animationFrameRef.current = requestAnimationFrame(updateTime);\n }, []);\n\n useLayoutEffect(() => {\n const currentSpanRef = spanRef.current;\n if (!currentSpanRef) return;\n\n // Create a text node and attach it to the span\n const textNode = document.createTextNode(\"0\");\n\n currentSpanRef.appendChild(textNode);\n textRef.current = textNode;\n\n // Start the real-time counter\n startTimeRef.current = Date.now();\n animationFrameRef.current = requestAnimationFrame(updateTime);\n\n return () => {\n if (animationFrameRef.current) {\n cancelAnimationFrame(animationFrameRef.current);\n }\n if (textRef.current && currentSpanRef.contains(textNode)) {\n currentSpanRef.removeChild(textNode);\n }\n };\n }, [updateTime]);\n\n return <span className=\"inline-block text-end w-[3ch]\" ref={spanRef} />;\n};\n\nexport const ResponseStatusBar = ({\n status,\n time,\n size,\n isFinished,\n progress,\n}: {\n status?: number;\n time?: number;\n size?: number;\n isFinished: boolean;\n progress: number;\n}) => {\n const statusCodeMap: Record<number, string> = {\n 200: \"OK\",\n 201: \"Created\",\n 202: \"Accepted\",\n 204: \"No Content\",\n 400: \"Bad Request\",\n 401: \"Unauthorized\",\n 403: \"Forbidden\",\n 404: \"Not Found\",\n 405: \"Method Not Allowed\",\n 500: \"Internal Server Error\",\n };\n\n return (\n <div className=\"relative shrink-0 flex h-10 text-xs gap-4 px-4 items-center justify-between font-mono border-b\">\n <div className=\"flex items-center gap-2\">\n <ResponseCodeCircle status={status} /> {status ?? \"Sending Request...\"}\n {status ? ` ${statusCodeMap[status]}` : \"\"}\n </div>\n <div className=\"flex gap-2\">\n <div>\n <span className=\"text-muted-foreground\">Size</span>{\" \"}\n <span className=\"inline-block text-end min-w-[5ch]\">\n {size ? humanFileSize(size) : \"- B\"}\n </span>\n </div>\n\n <div>\n <span className=\"text-muted-foreground\">Time</span>{\" \"}\n {time !== undefined ? `${time.toFixed(0)}` : <RealTimeCounter />}\n ms\n </div>\n </div>\n <div\n className=\"h-full bg-neutral-500/10 absolute left-0 bottom-0 z-10 transition-all duration-200 ease-in-out\"\n style={{\n opacity: isFinished ? 0 : 1,\n width: isFinished ? 0 : `${progress * 100}%`,\n }}\n />\n </div>\n );\n};\n\nexport default ResponseStatusBar;\n","type JsonValue = string | number | boolean | null | JsonObject | JsonArray;\ntype JsonObject = { [key: string]: JsonValue };\ntype JsonArray = JsonValue[];\n\nfunction inferType(value: JsonValue): string {\n if (value === null) return \"null\";\n if (Array.isArray(value)) {\n if (value.length === 0) return \"any[]\";\n const firstValue = value[0];\n if (firstValue === undefined) return \"any[]\";\n const elementType = inferType(firstValue);\n return `${elementType}[]`;\n }\n if (typeof value === \"object\") {\n return generateInterface(value);\n }\n return typeof value;\n}\n\nexport function generateInterface(obj: JsonObject, _indentation = \"\"): string {\n const lines: string[] = [\"{\"];\n\n for (const [key, value] of Object.entries(obj)) {\n const propertyType = inferType(value);\n lines.push(` ${key}: ${propertyType};`);\n }\n\n lines.push(\"}\");\n return lines.join(\"\\n\");\n}\n\nexport function convertToTypes(json: JsonValue): { lines: string[] } {\n const typeDefinition = inferType(json);\n const lines = [`type GeneratedType = ${typeDefinition};`];\n return { lines };\n}\n","import { useQuery } from \"@tanstack/react-query\";\nimport {\n CornerDownLeftIcon,\n CornerDownRightIcon,\n DownloadIcon,\n EyeIcon,\n EyeOffIcon,\n MinusCircleIcon,\n PlusCircleIcon,\n SquareCodeIcon,\n} from \"lucide-react\";\nimport { useState } from \"react\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"zudoku/ui/Collapsible.js\";\nimport { SecretText } from \"zudoku/ui/Secret.js\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"zudoku/ui/Select.js\";\nimport { SyntaxHighlight } from \"zudoku/ui/SyntaxHighlight.js\";\nimport { cn } from \"../../../../util/cn.js\";\nimport createVariantComponent from \"../../../../util/createVariantComponent.js\";\nimport { humanFileSize } from \"../../../../util/humanFileSize.js\";\nimport {\n CollapsibleHeader,\n CollapsibleHeaderTrigger,\n} from \"../CollapsibleHeader.js\";\nimport { convertToTypes } from \"./convertToTypes.js\";\n\nconst mimeTypeToLanguage = (mimeType: string) => {\n const mimeTypeMapping = {\n \"application/json\": \"json\",\n \"text/json\": \"json\",\n \"text/html\": \"html\",\n \"text/css\": \"css\",\n \"text/javascript\": \"javascript\",\n \"application/xml\": \"xml\",\n \"application/xhtml+xml\": \"xhtml\",\n };\n\n return Object.entries(mimeTypeMapping).find(([mime]) =>\n mimeType.includes(mime),\n )?.[1];\n};\n\nconst detectLanguage = (headers: Array<[string, string]>) => {\n const contentType =\n headers.find(([key]) => key.toLowerCase() === \"content-type\")?.[1] || \"\";\n return mimeTypeToLanguage(contentType);\n};\n\nconst tryParseJson = (body: string) => {\n try {\n return JSON.stringify(JSON.parse(body), null, 2);\n } catch {\n return null;\n }\n};\n\nconst sortHeadersByRelevance = (\n headers: Array<[string, string]>,\n): Array<[string, string]> => {\n const priorityOrder = [\n \"Content-Type\",\n \"Content-Length\",\n \"Authorization\",\n \"X-RateLimit-Remaining\",\n \"X-RateLimit-Limit\",\n \"Cache-Control\",\n \"ETag\",\n ].map((key) => key.toLowerCase());\n\n return [...headers].sort(([keyA], [keyB]) => {\n const indexA = priorityOrder.indexOf(keyA.toLowerCase());\n const indexB = priorityOrder.indexOf(keyB.toLowerCase());\n if (indexA === indexB) return 0;\n if (indexA === -1) return 1;\n if (indexB === -1) return -1;\n return indexA - indexB;\n });\n};\n\nconst MAX_HEADERS_TO_SHOW = 3;\n\nconst Row = createVariantComponent(\n \"div\",\n \"grid-cols-subgrid grid border-b col-span-full px-4 py-1.5 font-mono text-xs\",\n);\n\nconst RowContent = createVariantComponent(\"div\", \"py-1 break-words\");\nconst RowValue = ({ value, header }: { value: string; header: string }) => {\n const secretHeaders = [\"authorization\", \"key\", \"secret\", \"token\"];\n const isSecret = secretHeaders.includes(header.toLowerCase());\n const [revealed, setRevealed] = useState(!isSecret);\n return (\n <RowContent\n className={cn(\n \"max-h-28 overflow-auto\",\n isSecret && \"cursor-pointer flex group\",\n )}\n onClick={() => {\n if (isSecret) {\n setRevealed((prev) => !prev);\n }\n }}\n >\n {!isSecret ? (\n value\n ) : (\n <>\n <SecretText secret={value} previewChars={0} revealed={revealed} />\n {revealed ? (\n <EyeOffIcon size={14} className={cn(\"hidden group-hover:block\")} />\n ) : (\n <EyeIcon size={14} className={cn(\"hidden group-hover:block\")} />\n )}\n </>\n )}\n </RowContent>\n );\n};\n\nexport const ResponseTab = ({\n body = \"\",\n headers,\n request,\n size,\n isBinary = false,\n fileName,\n blob,\n}: {\n body?: string;\n headers: Array<[string, string]>;\n request: {\n method: string;\n url: string;\n headers: Array<[string, string]>;\n body?: string;\n };\n size: number;\n isBinary?: boolean;\n fileName?: string;\n blob?: Blob;\n}) => {\n const detectedLanguage = detectLanguage(headers);\n const jsonContent = tryParseJson(body);\n const beautifiedBody = jsonContent || body;\n const [view, setView] = useState<\"formatted\" | \"raw\" | \"types\">(\n jsonContent ? \"formatted\" : \"raw\",\n );\n\n const types = useQuery({\n queryKey: [\"types\", beautifiedBody],\n queryFn: async () => {\n return convertToTypes(JSON.parse(beautifiedBody));\n },\n enabled: view === \"types\" && !isBinary,\n });\n\n const handleDownload = () => {\n if (blob && fileName) {\n const url = URL.createObjectURL(blob);\n const link = document.createElement(\"a\");\n link.href = url;\n link.download = fileName;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n URL.revokeObjectURL(url);\n }\n };\n\n const sortedHeaders = sortHeadersByRelevance([...headers]);\n\n return (\n <>\n <Collapsible defaultOpen>\n <CollapsibleHeaderTrigger>\n <CornerDownRightIcon size={14} />\n <CollapsibleHeader>Request Headers</CollapsibleHeader>\n </CollapsibleHeaderTrigger>\n <CollapsibleContent>\n <div className=\"grid grid-cols-[2fr_3fr] gap-x-6 text-sm\">\n {request.headers\n .slice(0, MAX_HEADERS_TO_SHOW)\n .map(([key, value]) => (\n <Row key={key}>\n <RowContent>{key}</RowContent>\n <RowValue value={value} header={key} />\n </Row>\n ))}\n {request.headers.length > MAX_HEADERS_TO_SHOW && (\n <Collapsible className=\"col-span-full grid-cols-subgrid grid group\">\n <CollapsibleTrigger 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\">\n Show {request.headers.length - MAX_HEADERS_TO_SHOW} more\n headers\n <PlusCircleIcon size={12} className=\"text-muted-foreground\" />\n </CollapsibleTrigger>\n <CollapsibleContent className=\"col-span-full grid grid-cols-subgrid\">\n {request.headers\n .slice(MAX_HEADERS_TO_SHOW)\n .map(([key, value]) => (\n <Row key={key}>\n <RowContent>{key}</RowContent>\n <RowValue value={value} header={key} />\n </Row>\n ))}\n <CollapsibleTrigger className=\"justify-center col-span-2 text-xs text-muted-foreground hover:text-primary border-b h-8 flex items-center gap-2\">\n Hide {request.headers.length - MAX_HEADERS_TO_SHOW} headers\n <MinusCircleIcon\n size={12}\n className=\"text-muted-foreground\"\n />\n </CollapsibleTrigger>\n </CollapsibleContent>\n </Collapsible>\n )}\n </div>\n </CollapsibleContent>\n </Collapsible>\n\n <Collapsible defaultOpen>\n <CollapsibleHeaderTrigger>\n <CornerDownLeftIcon size={14} />\n <CollapsibleHeader>Response Headers</CollapsibleHeader>\n </CollapsibleHeaderTrigger>\n <CollapsibleContent>\n <div className=\"grid grid-cols-[2fr_3fr] gap-x-6 text-sm\">\n {sortedHeaders.slice(0, MAX_HEADERS_TO_SHOW).map(([key, value]) => (\n <Row key={key}>\n <RowContent>{key}</RowContent>\n <RowValue value={value} header={key} />\n </Row>\n ))}\n {sortedHeaders.length > MAX_HEADERS_TO_SHOW && (\n <Collapsible className=\"col-span-full grid-cols-subgrid grid group\">\n <CollapsibleTrigger 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\">\n Show {sortedHeaders.length - MAX_HEADERS_TO_SHOW} more headers\n <PlusCircleIcon size={12} className=\"text-muted-foreground\" />\n </CollapsibleTrigger>\n <CollapsibleContent className=\"col-span-full grid grid-cols-subgrid\">\n {sortedHeaders\n .slice(MAX_HEADERS_TO_SHOW)\n .map(([key, value]) => (\n <Row key={key}>\n <RowContent>{key}</RowContent>\n <RowValue value={value} header={key} />\n </Row>\n ))}\n <CollapsibleTrigger className=\"justify-center col-span-2 text-xs text-muted-foreground hover:text-primary border-b h-8 flex items-center gap-2\">\n Hide {sortedHeaders.length - MAX_HEADERS_TO_SHOW} headers\n <MinusCircleIcon\n size={12}\n className=\"text-muted-foreground\"\n />\n </CollapsibleTrigger>\n </CollapsibleContent>\n </Collapsible>\n )}\n </div>\n </CollapsibleContent>\n </Collapsible>\n\n <div className=\"flex gap-2 justify-between items-center border-b px-2 flex-0\">\n <CollapsibleHeader className=\"flex items-center gap-2\">\n <SquareCodeIcon size={14} />\n Response body\n </CollapsibleHeader>\n {jsonContent && !isBinary && (\n <Select\n value={view}\n onValueChange={(value) =>\n setView(value as \"formatted\" | \"raw\" | \"types\")\n }\n >\n <SelectTrigger className=\"max-w-32 border-0 bg-transparent\">\n <SelectValue placeholder=\"View\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"formatted\">Formatted</SelectItem>\n <SelectItem value=\"raw\">Raw</SelectItem>\n <SelectItem value=\"types\">Types</SelectItem>\n </SelectContent>\n </Select>\n )}\n </div>\n <div className=\"flex-1\">\n {isBinary ? (\n <div className=\"p-4 text-center\">\n <div className=\"flex flex-col items-center gap-4\">\n <div className=\"text-lg font-semibold\">Binary Content</div>\n <div className=\"text-sm text-muted-foreground\">\n This response contains binary data that cannot be displayed as\n text.\n </div>\n <Button\n onClick={handleDownload}\n className=\"flex items-center gap-2\"\n disabled={!blob}\n >\n <DownloadIcon className=\"h-4 w-4\" />\n Download {fileName || \"file\"} ({humanFileSize(size)})\n </Button>\n </div>\n </div>\n ) : (\n <SyntaxHighlight\n className=\"text-xs flex-1\"\n embedded\n fullHeight\n language={\n view === \"types\"\n ? \"typescript\"\n : view === \"raw\"\n ? jsonContent\n ? \"plain\"\n : detectedLanguage\n : \"json\"\n }\n code={\n (view === \"raw\"\n ? body\n : view === \"types\"\n ? types.data?.lines.join(\"\\n\")\n : beautifiedBody) ?? \"\"\n }\n />\n )}\n </div>\n </>\n );\n};\n","import type { UseMutationResult } from \"@tanstack/react-query\";\nimport { SendIcon, UnplugIcon } from \"lucide-react\";\nimport { Spinner } from \"zudoku/components\";\nimport { Alert, AlertDescription, AlertTitle } from \"zudoku/ui/Alert.js\";\nimport { Button } from \"../../../../ui/Button.js\";\nimport { cn } from \"../../../../util/cn.js\";\nimport type { PlaygroundResult } from \"../Playground.js\";\nimport ResponseStatusBar from \"./ResponseStatusBar.js\";\nimport { ResponseTab } from \"./ResponseTab.js\";\n\nexport const ResultPanel = ({\n queryMutation,\n showLongRunningWarning,\n onCancel,\n tip,\n isFinished,\n progress,\n}: {\n // biome-ignore lint/suspicious/noExplicitAny: Allow any type\n queryMutation: UseMutationResult<PlaygroundResult, Error, any>;\n showLongRunningWarning?: boolean;\n onCancel?: () => void;\n isFinished: boolean;\n progress: number;\n tip?: React.ReactNode;\n}) => {\n return (\n <div className=\"flex flex-col overflow-y-auto h-[80vh] bg-muted/50\">\n {(queryMutation.isPending || queryMutation.data) && (\n <ResponseStatusBar\n status={queryMutation.data?.status}\n time={queryMutation.data?.time}\n size={queryMutation.data?.size}\n isFinished={isFinished}\n progress={progress}\n />\n )}\n {queryMutation.error ? (\n <div className=\"max-w-2/3 mx-auto mt-20\">\n <Alert>\n <UnplugIcon size={24} strokeWidth={1.5} className=\"me-5\" />\n <AlertTitle>Request failed</AlertTitle>\n <AlertDescription>\n {queryMutation.error.message ||\n String(queryMutation.error) ||\n \"Unexpected error\"}\n </AlertDescription>\n </Alert>\n </div>\n ) : queryMutation.data ? (\n <ResponseTab\n request={queryMutation.data.request}\n size={queryMutation.data.size}\n headers={queryMutation.data.headers}\n body={queryMutation.data.body}\n isBinary={queryMutation.data.isBinary}\n fileName={queryMutation.data.fileName}\n blob={queryMutation.data.blob}\n />\n ) : queryMutation.isPending ? (\n <div className=\"grid place-items-center h-full\">\n <div className=\"flex flex-col gap-2 items-center mt-20\">\n <Spinner />\n <div\n className={cn(\n \"opacity-0 pointer-events-none transition-opacity h-20 text-sm text-muted-foreground duration-300 flex flex-col gap-2 items-center\",\n showLongRunningWarning && \"opacity-100 pointer-events-auto\",\n )}\n >\n Looks like the request is taking longer than expected.\n <Button\n type=\"button\"\n onClick={onCancel}\n size=\"sm\"\n className=\"w-fit\"\n variant=\"outline\"\n >\n Cancel\n </Button>\n </div>\n </div>\n </div>\n ) : (\n <div className=\"h-full grid place-items-center\">\n <div className=\"flex flex-col gap-4 items-center\">\n <SendIcon\n size={64}\n className=\"text-muted-foreground\"\n strokeWidth={1.2}\n />\n <span className=\"text-[16px] font-semibold text-muted-foreground\">\n Send your first request\n </span>\n {tip}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default ResultPanel;\n","import { create } from \"zustand\";\nimport { createJSONStorage, persist } from \"zustand/middleware\";\nimport { syncZustandState } from \"../../../util/syncZustandState.js\";\n\ntype RememberSkipLoginState = {\n skipLogin: boolean;\n setSkipLogin: (skipLogin: boolean) => void;\n};\n\nexport const useRememberSkipLoginDialog = create<RememberSkipLoginState>()(\n persist(\n (set) => ({\n skipLogin: false,\n setSkipLogin: (skipLogin: boolean) => set({ skipLogin }),\n }),\n {\n name: \"remember-skip-login\",\n storage: createJSONStorage(() => sessionStorage),\n },\n ),\n);\n\nsyncZustandState(useRememberSkipLoginDialog);\n","import { useNProgress } from \"@tanem/react-nprogress\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport {\n CheckIcon,\n CopyIcon,\n IdCardLanyardIcon,\n ShapesIcon,\n} from \"lucide-react\";\nimport { useEffect, useMemo, useRef, useState, useTransition } from \"react\";\nimport { FormProvider, useForm } from \"react-hook-form\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport { Collapsible, CollapsibleContent } from \"zudoku/ui/Collapsible.js\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"zudoku/ui/Select.js\";\nimport { TooltipProvider } from \"zudoku/ui/Tooltip.js\";\nimport { useApiIdentities } from \"../../../components/context/ZudokuContext.js\";\nimport { useHotkey } from \"../../../hooks/useHotkey.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { useCopyToClipboard } from \"../../../util/useCopyToClipboard.js\";\nimport { useLatest } from \"../../../util/useLatest.js\";\nimport type { MediaTypeObject } from \"../graphql/graphql.js\";\nimport { useSelectedServer } from \"../state.js\";\nimport BodyPanel from \"./BodyPanel.js\";\nimport {\n CollapsibleHeader,\n CollapsibleHeaderTrigger,\n} from \"./CollapsibleHeader.js\";\nimport { createUrl } from \"./createUrl.js\";\nimport { extractFileName, isBinaryContentType } from \"./fileUtils.js\";\nimport { Headers } from \"./Headers.js\";\nimport { IdentityDialog } from \"./IdentityDialog.js\";\nimport IdentitySelector from \"./IdentitySelector.js\";\nimport { PathParams } from \"./PathParams.js\";\nimport { QueryParams } from \"./QueryParams.js\";\nimport RequestLoginDialog from \"./RequestLoginDialog.js\";\nimport { useIdentityStore } from \"./rememberedIdentity.js\";\nimport { UrlPath } from \"./request-panel/UrlPath.js\";\nimport { UrlQueryParams } from \"./request-panel/UrlQueryParams.js\";\nimport { ResultPanel } from \"./result-panel/ResultPanel.js\";\nimport { useRememberSkipLoginDialog } from \"./useRememberSkipLoginDialog.js\";\n\nexport const NO_IDENTITY = \"__none\";\n\nexport type Header = {\n name: string;\n defaultValue?: string;\n defaultActive?: boolean;\n isRequired?: boolean;\n enum?: string[];\n type?: string;\n};\n\nexport type QueryParam = {\n name: string;\n defaultValue?: string;\n defaultActive?: boolean;\n isRequired?: boolean;\n enum?: string[];\n type?: string;\n};\n\nexport type PathParam = {\n name: string;\n defaultValue?: string;\n isRequired?: boolean;\n};\n\nexport type PlaygroundForm = {\n body: string;\n bodyMode?: \"text\" | \"file\" | \"multipart\";\n file?: File | null;\n multipartFormFields: Array<{\n name: string;\n value: File | string;\n active: boolean;\n }>;\n queryParams: Array<{\n name: string;\n value: string;\n active: boolean;\n enum?: string[];\n }>;\n pathParams: Array<{ name: string; value: string }>;\n headers: Array<{\n name: string;\n value: string;\n active: boolean;\n enum?: string[];\n }>;\n identity?: string;\n};\n\nexport type PlaygroundResult = {\n status: number;\n headers: Array<[string, string]>;\n size: number;\n body: string;\n time: number;\n isBinary?: boolean;\n fileName?: string;\n blob?: Blob;\n request: {\n method: string;\n url: string;\n headers: Array<[string, string]>;\n body?: string;\n };\n};\n\nexport type PlaygroundContentProps = {\n server?: string;\n servers?: string[];\n url: string;\n method: string;\n headers?: Header[];\n queryParams?: QueryParam[];\n pathParams?: PathParam[];\n defaultBody?: string;\n examples?: MediaTypeObject[];\n requiresLogin?: boolean;\n onLogin?: () => void;\n onSignUp?: () => void;\n};\n\nexport const Playground = ({\n server,\n servers = [],\n url,\n method,\n headers = [],\n queryParams = [],\n pathParams = [],\n defaultBody = \"\",\n examples,\n requiresLogin = false,\n onLogin,\n onSignUp,\n}: PlaygroundContentProps) => {\n const { selectedServer, setSelectedServer } = useSelectedServer(\n servers.map((url) => ({ url })),\n );\n const [showSelectIdentity, setShowSelectIdentity] = useState(false);\n const identities = useApiIdentities();\n const { setRememberedIdentity, getRememberedIdentity } = useIdentityStore();\n const [, startTransition] = useTransition();\n const { skipLogin, setSkipLogin } = useRememberSkipLoginDialog();\n const [isLoginDialogDismissed, setIsLoginDialogDismissed] = useState(false);\n const [showLongRunningWarning, setShowLongRunningWarning] = useState(false);\n const abortControllerRef = useRef<AbortController | undefined>(undefined);\n const latestSetRememberedIdentity = useLatest(setRememberedIdentity);\n const formRef = useRef<HTMLFormElement>(null);\n\n const { label: hotkeyLabel } = useHotkey(\"meta+enter\", () => {\n formRef.current?.requestSubmit();\n });\n\n const pathParamOrder =\n url.match(/\\{([^}]+)\\}/g)?.map((match) => match.slice(1, -1)) ?? [];\n const sortedPathParams = [...pathParams].sort(\n (a, b) => pathParamOrder.indexOf(a.name) - pathParamOrder.indexOf(b.name),\n );\n\n const { register, control, handleSubmit, watch, setValue, ...form } =\n useForm<PlaygroundForm>({\n defaultValues: {\n body: defaultBody,\n bodyMode: \"text\",\n file: null,\n multipartFormFields: [],\n queryParams:\n queryParams.length > 0\n ? queryParams.map((param) => ({\n name: param.name,\n value: param.defaultValue ?? \"\",\n active: param.defaultActive ?? false,\n enum: param.enum ?? [],\n }))\n : [{ name: \"\", value: \"\", active: false, enum: [] }],\n pathParams: sortedPathParams.map((param) => ({\n name: param.name,\n value: param.defaultValue ?? \"\",\n })),\n headers:\n headers.length > 0\n ? headers.map((header) => ({\n name: header.name,\n value: header.defaultValue ?? \"\",\n active: header.defaultActive ?? false,\n }))\n : [{ name: \"\", value: \"\", active: false }],\n identity: getRememberedIdentity([\n NO_IDENTITY,\n ...(identities.data?.map((i) => i.id) ?? []),\n ]),\n },\n });\n const identity = watch(\"identity\");\n\n const authorizationFields = useMemo(\n () => identities.data?.find((i) => i.id === identity)?.authorizationFields,\n [identities.data, identity],\n );\n\n useEffect(() => {\n if (identity) {\n latestSetRememberedIdentity.current(identity);\n }\n }, [latestSetRememberedIdentity, identity]);\n\n const queryMutation = useMutation({\n gcTime: 0,\n mutationFn: async (data: PlaygroundForm) => {\n const start = performance.now();\n\n const headers = new window.Headers(\n data.headers\n .filter((h) => h.name && h.active)\n .map<[string, string]>((h) => [h.name, h.value]),\n );\n\n let body: string | FormData | File | undefined;\n\n switch (data.bodyMode) {\n case \"file\":\n body = data.file || undefined;\n headers.delete(\"Content-Type\");\n break;\n case \"multipart\": {\n const formData = new FormData();\n data.multipartFormFields\n ?.filter((field) => field.name && field.active)\n .forEach((field) => formData.append(field.name, field.value));\n\n body = formData;\n headers.delete(\"Content-Type\");\n break;\n }\n default:\n body = data.body || undefined;\n break;\n }\n\n const request = new Request(\n createUrl(server ?? selectedServer, url, data),\n {\n method,\n headers,\n body: [\"GET\", \"HEAD\"].includes(method.toUpperCase()) ? null : body,\n },\n );\n\n if (data.identity !== NO_IDENTITY) {\n await identities.data\n ?.find((i) => i.id === data.identity)\n ?.authorizeRequest(request);\n }\n\n const warningTimeout = setTimeout(\n () => setShowLongRunningWarning(true),\n 3210,\n );\n abortControllerRef.current = new AbortController();\n\n abortControllerRef.current.signal.addEventListener(\"abort\", () => {\n clearTimeout(warningTimeout);\n });\n\n try {\n const response = await fetch(request, {\n cache: \"no-store\",\n signal: abortControllerRef.current.signal,\n });\n\n clearTimeout(warningTimeout);\n setShowLongRunningWarning(false);\n\n const time = performance.now() - start;\n const url = new URL(request.url);\n const responseHeaders = Array.from(response.headers.entries());\n const contentType = response.headers.get(\"content-type\") || \"\";\n const isBinary = isBinaryContentType(contentType);\n\n let body = \"\";\n let blob: Blob | undefined;\n let fileName: string | undefined;\n\n if (isBinary) {\n blob = await response.blob();\n fileName = extractFileName(responseHeaders, request.url);\n body = `Binary content (${contentType})`;\n } else {\n body = await response.text();\n }\n\n const responseSize = response.headers.get(\"content-length\");\n\n let requestBody = \"\";\n\n switch (data.bodyMode) {\n case \"text\":\n requestBody = data.body;\n break;\n case \"file\":\n requestBody = `[File: ${data.file?.name ?? \"Unknown\"}]`;\n break;\n case \"multipart\":\n requestBody = \"[Multipart Form Data]\\n\";\n requestBody += data.multipartFormFields\n ?.filter((f) => f.name && f.active)\n .map((f) =>\n f.value instanceof File\n ? `${f.name}: [File: ${f.value.name}]`\n : `${f.name}: ${f.value}`,\n )\n .join(\"\\n\");\n break;\n default:\n requestBody = data.body;\n break;\n }\n\n return {\n status: response.status,\n headers: responseHeaders,\n size: responseSize ? Number(responseSize) : body.length,\n body,\n time,\n isBinary,\n fileName,\n blob,\n request: {\n method: request.method.toUpperCase(),\n url: request.url,\n headers: [\n [\"Host\", url.host],\n [\"User-Agent\", \"Zudoku Playground\"],\n ...Array.from(request.headers.entries()),\n ],\n body: requestBody,\n },\n } satisfies PlaygroundResult;\n } catch (error) {\n clearTimeout(warningTimeout);\n setShowLongRunningWarning(false);\n if (error instanceof TypeError) {\n throw new Error(\n \"The request failed, possibly due to network issues or CORS policy.\",\n );\n } else {\n throw error;\n }\n }\n },\n });\n\n const isRequestAnimating = queryMutation.isPending;\n const [isAnimating, setIsAnimating] = useState(false);\n\n useEffect(() => {\n const timer = setTimeout(() => setIsAnimating(isRequestAnimating), 100);\n return () => clearTimeout(timer);\n }, [isRequestAnimating]);\n\n const { isFinished, progress } = useNProgress({ isAnimating });\n\n useEffect(() => {\n return () => {\n abortControllerRef.current?.abort();\n };\n }, []);\n\n const serverSelect = (\n <div className=\"inline-block opacity-50 hover:opacity-100 transition\">\n {server ? (\n <span>{server.replace(/^https?:\\/\\//, \"\").replace(/\\/$/, \"\")}</span>\n ) : (\n servers.length > 1 && (\n <Select\n onValueChange={(value) => {\n startTransition(() => setSelectedServer(value));\n }}\n value={selectedServer}\n defaultValue={selectedServer}\n >\n <SelectTrigger className=\"p-0 h-fit shadow-none border-none flex-row-reverse bg-transparent text-xs gap-0.5 translate-y-[4px]\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {servers.map((s) => (\n <SelectItem key={s} value={s}>\n {s.replace(/^https?:\\/\\//, \"\").replace(/\\/$/, \"\")}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n )\n )}\n </div>\n );\n\n const showLogin = requiresLogin && !skipLogin && !isLoginDialogDismissed;\n const isBodySupported = [\"POST\", \"PUT\", \"PATCH\", \"DELETE\"].includes(\n method.toUpperCase(),\n );\n const [isCopied, copyToClipboard] = useCopyToClipboard();\n\n return (\n <FormProvider\n {...{ register, control, handleSubmit, watch, setValue, ...form }}\n >\n <TooltipProvider delayDuration={150}>\n <form\n ref={formRef}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" && e.target instanceof HTMLInputElement) {\n e.preventDefault();\n }\n }}\n onSubmit={handleSubmit((data) => {\n if (identities.data?.length === 0 || data.identity) {\n queryMutation.mutate(data);\n } else {\n setShowSelectIdentity(true);\n }\n })}\n className=\"relative\"\n >\n <IdentityDialog\n identities={identities.data ?? []}\n open={showSelectIdentity}\n onOpenChange={setShowSelectIdentity}\n onSubmit={({ rememberedIdentity, identity }) => {\n if (rememberedIdentity) {\n setValue(\"identity\", identity ?? NO_IDENTITY);\n }\n setShowSelectIdentity(false);\n queryMutation.mutate({ ...form.getValues(), identity });\n }}\n />\n <RequestLoginDialog\n open={showLogin}\n setOpen={(open) => {\n if (!open) {\n setIsLoginDialogDismissed(true);\n }\n }}\n onSkip={(rememberSkip) => {\n setIsLoginDialogDismissed(true);\n if (rememberSkip) {\n setSkipLogin(true);\n }\n }}\n onSignUp={onSignUp}\n onLogin={onLogin}\n />\n\n <div className=\"grid grid-cols-[1fr_1px_1fr] text-sm\">\n <div className=\"col-span-3 p-4 border-b flex gap-2 items-stretch\">\n <div className=\"flex flex-1 items-center w-full border rounded-md relative overflow-hidden\">\n <div className=\"border-r p-2 bg-muted rounded-l-md self-stretch font-semibold font-mono flex items-center\">\n {method.toUpperCase()}\n </div>\n <div className=\"items-center px-2 font-mono text-xs break-all leading-6 relative h-full w-full\">\n <div className=\"h-full py-1.5\">\n {serverSelect}\n <UrlPath url={url} />\n <UrlQueryParams />\n </div>\n </div>\n <div className=\"px-1\">\n <Button\n type=\"button\"\n onClick={() => {\n copyToClipboard(\n createUrl(\n server ?? selectedServer,\n url,\n form.getValues(),\n ).toString(),\n );\n }}\n variant=\"ghost\"\n size=\"icon-xs\"\n className={cn(\n \"hover:opacity-100 transition\",\n isCopied ? \"text-emerald-600 opacity-100\" : \"opacity-50\",\n )}\n >\n {isCopied ? (\n <CheckIcon className=\"text-green-500\" size={14} />\n ) : (\n <CopyIcon size={14} />\n )}\n </Button>\n </div>\n </div>\n\n <Button\n type=\"submit\"\n variant={queryMutation.isPending ? \"destructive\" : \"default\"}\n onClick={(e) => {\n if (queryMutation.isPending) {\n abortControllerRef.current?.abort(\n \"Request cancelled by user\",\n );\n e.preventDefault();\n }\n }}\n className=\"w-18\"\n >\n {queryMutation.isPending ? \"Cancel\" : \"Send\"}\n </Button>\n </div>\n <div className=\"relative overflow-y-auto h-[80vh]\">\n {identities.data?.length !== 0 && (\n <Collapsible defaultOpen>\n <CollapsibleHeaderTrigger>\n <IdCardLanyardIcon size={16} />\n <CollapsibleHeader>Authentication</CollapsibleHeader>\n </CollapsibleHeaderTrigger>\n <CollapsibleContent className=\"CollapsibleContent\">\n <IdentitySelector\n value={identity}\n identities={identities.data ?? []}\n setValue={(value) => setValue(\"identity\", value)}\n />\n </CollapsibleContent>\n </Collapsible>\n )}\n\n {sortedPathParams.length > 0 && (\n <Collapsible defaultOpen>\n <CollapsibleHeaderTrigger>\n <ShapesIcon size={16} />\n <CollapsibleHeader>Path Parameters</CollapsibleHeader>\n </CollapsibleHeaderTrigger>\n <CollapsibleContent className=\"CollapsibleContent\">\n <PathParams url={url} control={control} />\n </CollapsibleContent>\n </Collapsible>\n )}\n\n <QueryParams control={control} schemaQueryParams={queryParams} />\n\n <Headers\n control={control}\n schemaHeaders={headers}\n lockedHeaders={authorizationFields?.headers}\n />\n {isBodySupported && <BodyPanel content={examples} />}\n </div>\n <div className=\"w-full bg-muted-foreground/20\" />\n <ResultPanel\n queryMutation={queryMutation}\n showLongRunningWarning={showLongRunningWarning}\n isFinished={isFinished}\n progress={progress}\n tip={\n <div className=\"text-xs w-full\">\n <span className=\"text-muted-foreground\">\n Press{\" \"}\n <kbd className=\"text-foreground border rounded m-0.5 px-1 py-0.5 capitalize\">\n {hotkeyLabel.join(\" + \")}\n </kbd>{\" \"}\n to send a request\n </span>\n </div>\n }\n onCancel={() => {\n abortControllerRef.current?.abort(\n \"Request cancelled by the user\",\n );\n setShowLongRunningWarning(false);\n }}\n />\n </div>\n </form>\n </TooltipProvider>\n </FormProvider>\n );\n};\n\nexport default Playground;\n","import { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport { PlayIcon } from \"lucide-react\";\nimport { type PropsWithChildren, useState } from \"react\";\nimport { useAuth } from \"zudoku/hooks\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport {\n Dialog,\n DialogContent,\n DialogTitle,\n DialogTrigger,\n} from \"zudoku/ui/Dialog.js\";\nimport { Playground, type PlaygroundContentProps } from \"./Playground.js\";\n\nexport type PlaygroundDialogProps = PropsWithChildren<PlaygroundContentProps>;\n\nconst PlaygroundDialog = (props: PlaygroundDialogProps) => {\n const [open, setOpen] = useState(false);\n const { isAuthEnabled, login, signup, isPending, isAuthenticated } =\n useAuth();\n\n return (\n <Dialog onOpenChange={(open) => setOpen(open)}>\n <DialogTrigger asChild>\n {props.children ?? (\n <Button variant=\"ghost\" size=\"icon-xs\" className=\"group\">\n <PlayIcon\n className=\"fill-muted-foreground group-hover:fill-foreground transition\"\n size={16}\n strokeWidth={1.5}\n />\n </Button>\n )}\n </DialogTrigger>\n\n <DialogContent\n className=\"max-w-screen-xl! w-full overflow-hidden p-0\"\n aria-describedby={undefined}\n showCloseButton={true}\n >\n <VisuallyHidden>\n <DialogTitle>Playground</DialogTitle>\n </VisuallyHidden>\n {open && (\n <Playground\n requiresLogin={isAuthEnabled && !isAuthenticated && !isPending}\n onLogin={() => login()}\n onSignUp={() => signup()}\n {...props}\n />\n )}\n </DialogContent>\n </Dialog>\n );\n};\n\nexport { PlaygroundDialog };\n","import type { ColorMap } from \"../../../components/navigation/NavigationBadge.js\";\n\nexport const MethodColorMap: Record<string, keyof typeof ColorMap> = {\n get: \"green\",\n post: \"blue\",\n put: \"yellow\",\n delete: \"red\",\n patch: \"purple\",\n options: \"gray\",\n head: \"gray\",\n};\n","import type { NavigationItem } from \"../../../../config/validators/NavigationSchema.js\";\nimport type { OperationResult } from \"../index.js\";\nimport { MethodColorMap } from \"./methodColorMap.js\";\n\nexport const createNavigationCategory = ({\n label,\n path,\n operations,\n collapsible,\n collapsed,\n}: {\n label: string;\n path: string;\n operations: OperationResult[];\n collapsible?: boolean;\n collapsed?: boolean;\n}): NavigationItem => ({\n type: \"category\",\n label,\n link: {\n type: \"doc\" as const,\n path,\n file: path,\n label,\n },\n collapsible,\n collapsed,\n items: operations.map((operation) => ({\n type: \"link\" as const,\n label: operation.summary ?? operation.path,\n to: `${path}#${operation.slug}`,\n badge: {\n label: operation.method,\n // biome-ignore lint/style/noNonNullAssertion: is guaranteed to be defined\n color: MethodColorMap[operation.method.toLowerCase()]!,\n invert: true,\n },\n })),\n});\n","import { createContext, useContext } from \"react\";\nimport type { OasPluginContext } from \"./interfaces.js\";\n\nconst OasContext = createContext<{ config: OasPluginContext } | undefined>(\n undefined,\n);\n\nexport const OasConfigProvider = OasContext.Provider;\n\nexport const useOasConfig = () => {\n const ctx = useContext(OasContext);\n if (!ctx) {\n throw new Error(\"useOasConfig must be used within a OasConfigProvider\");\n }\n return ctx.config;\n};\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport {\n generatePath,\n Navigate,\n type RouteObject,\n redirect,\n useLocation,\n useParams,\n} from \"react-router\";\nimport { joinUrl } from \"../../../util/joinUrl.js\";\nimport type { GraphQLClient } from \"../client/GraphQLClient.js\";\nimport { useCreateQuery } from \"../client/useCreateQuery.js\";\nimport { useOasConfig } from \"../context.js\";\nimport {\n GetNavigationOperationsQuery,\n type OpenApiPluginOptions,\n UNTAGGED_PATH,\n} from \"../index.js\";\nimport type { OasPluginConfig } from \"../interfaces.js\";\n\n// Creates the main provider route that wraps operation routes.\nconst createOasProvider = (opts: {\n routePath: string;\n basePath: string;\n version?: string;\n routes: RouteObject[];\n client: GraphQLClient;\n config: OpenApiPluginOptions;\n}): RouteObject => ({\n path: opts.routePath,\n async lazy() {\n const { OasProvider } = await import(\"../OasProvider.js\");\n return {\n element: (\n <OasProvider\n basePath={opts.basePath}\n version={opts.version}\n client={opts.client}\n config={opts.config}\n />\n ),\n };\n },\n children: opts.routes,\n});\n\n// Creates a route for displaying the operation list used for both tagged and untagged operations.\nconst createRoute = ({\n path,\n tag,\n untagged,\n}: {\n path: string;\n tag?: string;\n untagged?: boolean;\n}): RouteObject => ({\n path,\n async lazy() {\n const { OperationList } = await import(\"../OperationList.js\");\n return { element: <OperationList tag={tag} untagged={untagged} /> };\n },\n});\n\nconst NonTagPagesOperationList = ({\n render,\n path,\n}: {\n render: (tag: string) => React.ReactNode;\n path: string;\n}) => {\n const { type, input } = useOasConfig();\n const { tag: currentTag } = useParams();\n const location = useLocation();\n const query = useCreateQuery(GetNavigationOperationsQuery, { type, input });\n const {\n data: { schema },\n } = useSuspenseQuery(query);\n\n const firstTag = schema.tags.at(0);\n\n if (!currentTag && firstTag?.slug) {\n return (\n <Navigate\n to={{\n pathname: generatePath(path, { tag: firstTag.slug }),\n search: location.search,\n }}\n />\n );\n }\n\n if (currentTag && schema.tags.some((t) => t.slug === currentTag)) {\n return render(currentTag);\n }\n\n return null;\n};\n\nconst createNonTagPagesRoute = ({ path }: { path: string }): RouteObject => ({\n path,\n async lazy() {\n const { OperationList } = await import(\"../OperationList.js\");\n return {\n element: (\n <NonTagPagesOperationList\n path={path}\n render={(tag) => <OperationList tag={tag} />}\n />\n ),\n };\n },\n});\n\nconst createAdditionalRoutes = (basePath: string) => [\n // Category without tagged operations\n createRoute({\n path: joinUrl(basePath, UNTAGGED_PATH),\n untagged: true,\n }),\n // Schema list route\n {\n path: joinUrl(basePath, \"~schemas\"),\n lazy: async () => {\n const { SchemaList } = await import(\"../SchemaList.js\");\n return { element: <SchemaList /> };\n },\n },\n];\n\n// Creates routes for a specific version, including tag-based routes and the untagged operations route.\nconst createVersionRoutes = (\n versionPath: string,\n tagPages: string[],\n): RouteObject[] => {\n const firstTagRoute = joinUrl(versionPath, tagPages.at(0) ?? UNTAGGED_PATH);\n\n return [\n // Redirect to first tag on the index route\n { index: true, loader: () => redirect(firstTagRoute) },\n // Create routes for each tag\n ...tagPages.map((tag) =>\n createRoute({\n path: joinUrl(versionPath, tag),\n tag,\n }),\n ),\n ...createAdditionalRoutes(versionPath),\n ];\n};\n\nexport const getVersionMetadata = (config: OasPluginConfig) => {\n if (config.type === \"raw\" || !Array.isArray(config.input)) {\n return { versions: [], labels: {} };\n }\n\n return {\n versions: config.input.map((v) => v.path),\n labels: Object.fromEntries(\n config.input.map((v) => [v.path, v.label ?? v.path]),\n ),\n };\n};\n\nexport const getRoutes = ({\n basePath,\n config,\n client,\n}: {\n client: GraphQLClient;\n config: OpenApiPluginOptions;\n basePath: string;\n}): RouteObject[] => {\n const tagPages = config.tagPages;\n const { versions } = getVersionMetadata(config);\n\n // If the config does not provide tag pages the catch-all\n // route handles all operations on a single page\n if (!tagPages) {\n // If there are versions, create versioned routes even without tag pages\n if (versions.length > 0) {\n const versionsInPath =\n versions.length > 1 ? [undefined, ...versions] : [undefined];\n\n return versionsInPath.map((version) => {\n const versionPath = joinUrl(basePath, version);\n return createOasProvider({\n basePath,\n version,\n routePath: versionPath,\n routes: [\n createNonTagPagesRoute({ path: `${versionPath}/:tag?` }),\n ...createAdditionalRoutes(versionPath),\n ],\n client,\n config,\n });\n });\n }\n\n // No versions, single route\n return [\n createOasProvider({\n basePath,\n routePath: basePath,\n routes: [\n createNonTagPagesRoute({ path: `${basePath}/:tag?` }),\n ...createAdditionalRoutes(basePath),\n ],\n client,\n config,\n }),\n ];\n }\n\n // The latest version always is added as index path\n const versionsInPath =\n versions.length > 1 ? [undefined, ...versions] : [undefined];\n\n return versionsInPath.map((version) => {\n const versionPath = joinUrl(basePath, version);\n return createOasProvider({\n basePath,\n version,\n routePath: versionPath,\n routes: createVersionRoutes(versionPath, tagPages),\n client,\n config,\n });\n });\n};\n","import { CirclePlayIcon } from \"lucide-react\";\nimport type { PropsWithChildren } from \"react\";\nimport { matchPath } from \"react-router\";\nimport type { NavigationItem } from \"../../../config/validators/NavigationSchema.js\";\nimport type { ZudokuPlugin } from \"../../core/plugins.js\";\nimport { Button } from \"../../ui/Button.js\";\nimport { joinUrl } from \"../../util/joinUrl.js\";\nimport { GraphQLClient } from \"./client/GraphQLClient.js\";\nimport { createQuery } from \"./client/useCreateQuery.js\";\nimport type { GetNavigationOperationsQuery as GetNavigationOperationsQueryResult } from \"./graphql/graphql.js\";\nimport { graphql } from \"./graphql/index.js\";\nimport type { OasPluginConfig } from \"./interfaces.js\";\nimport type { PlaygroundContentProps } from \"./playground/Playground.js\";\nimport { PlaygroundDialog } from \"./playground/PlaygroundDialog.js\";\nimport { createNavigationCategory } from \"./util/createNavigationCategory.js\";\nimport { getRoutes, getVersionMetadata } from \"./util/getRoutes.js\";\n\nexport const GetNavigationOperationsQuery = graphql(`\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`);\n\nexport type OperationResult =\n GetNavigationOperationsQueryResult[\"schema\"][\"tags\"][number][\"operations\"][number];\n\nexport type OpenApiPluginOptions = OasPluginConfig;\n\nexport const UNTAGGED_PATH = \"~endpoints\";\n\nexport const openApiPlugin = (config: OasPluginConfig): ZudokuPlugin => {\n const basePath = joinUrl(config.path);\n const client = new GraphQLClient(config);\n\n return {\n getHead: () => {\n if (config.type === \"url\" && !config.skipPreload) {\n const urls = Array.isArray(config.input)\n ? config.input.map((v) => v.input)\n : [config.input];\n\n return urls.map((url) => (\n <link\n key={url}\n href={url}\n rel=\"preload\"\n as=\"fetch\"\n crossOrigin=\"anonymous\"\n />\n ));\n }\n\n if (config.server) {\n return <link rel=\"preconnect\" href={config.server} />;\n }\n },\n getMdxComponents: () => ({\n OpenPlaygroundButton: ({\n server,\n method = \"get\",\n url = \"/\",\n children,\n ...props\n }: PropsWithChildren<Partial<PlaygroundContentProps>>) => {\n if (!server) {\n throw new Error(\"Server is required\");\n }\n\n return (\n <PlaygroundDialog\n url={url}\n method={method}\n server={server}\n {...props}\n >\n <Button className=\"gap-2 items-center\" variant=\"outline\">\n {children ?? (\n <>\n Open in Playground\n <CirclePlayIcon size={16} />\n </>\n )}\n </Button>\n </PlaygroundDialog>\n );\n },\n }),\n getNavigation: async (path, context) => {\n if (!matchPath({ path: basePath, end: false }, path)) {\n return [];\n }\n\n const match = matchPath(\n { path: `${basePath}/:version?/:tag`, end: true },\n path,\n );\n\n try {\n const versionParam = match?.params.version;\n const { versions } = getVersionMetadata(config);\n const version = versionParam ?? versions.at(0);\n const { type } = config;\n\n const input = Array.isArray(config.input)\n ? (config.input.find((v) => v.path === version)?.input ??\n config.input[0]?.input)\n : config.input;\n\n const query = createQuery(client, GetNavigationOperationsQuery, {\n type,\n input,\n });\n const data = await context.queryClient.ensureQueryData(query);\n\n const tagCategories = new Map(\n data.schema.tags\n .filter((tag) => tag.name && tag.operations.length > 0)\n .map((tag) => {\n if (!tag.name) {\n throw new Error(`Tag ${tag.slug} has no name`);\n }\n\n const categoryPath = joinUrl(basePath, versionParam, tag.slug);\n\n const isCollapsed =\n tag.extensions?.[\"x-zudoku-collapsed\"] ??\n !config.options?.expandAllTags;\n const isCollapsible =\n tag.extensions?.[\"x-zudoku-collapsible\"] ?? true;\n\n return [\n tag.name,\n createNavigationCategory({\n label: tag.extensions?.[\"x-displayName\"] ?? tag.name,\n path: categoryPath,\n operations: tag.operations,\n collapsed: isCollapsed,\n collapsible: isCollapsible,\n }),\n ];\n }),\n );\n\n const tagGroups =\n (data.schema.extensions?.[\"x-tagGroups\"] as\n | { name: string; tags: string[] }[]\n | undefined) ?? [];\n\n const groupedTags = new Set(\n tagGroups.flatMap((group) =>\n group.tags.filter((name) => tagCategories.has(name)),\n ),\n );\n\n const groupedCategories: NavigationItem[] = tagGroups.flatMap(\n (group) => {\n const items = group.tags\n .map((name) => tagCategories.get(name))\n .filter(Boolean) as NavigationItem[];\n\n if (items.length === 0) {\n return [];\n }\n return [\n {\n type: \"category\",\n label: group.name,\n items,\n collapsible: true,\n collapsed: !config.options?.expandAllTags,\n },\n ];\n },\n );\n\n const categories: NavigationItem[] = [\n ...groupedCategories,\n ...Array.from(tagCategories.entries())\n .filter(([name]) => !groupedTags.has(name))\n .map(([, cat]) => cat),\n ];\n\n const untaggedOperations = data.schema.tags.find(\n (tag) => !tag.name,\n )?.operations;\n\n if (untaggedOperations && untaggedOperations.length > 0) {\n categories.push(\n createNavigationCategory({\n label: categories.length === 0 ? \"Endpoints\" : \"Other endpoints\",\n path: joinUrl(basePath, versionParam, UNTAGGED_PATH),\n operations: untaggedOperations,\n collapsed: !config.options?.expandAllTags,\n }),\n );\n }\n\n if (data.schema.components?.schemas?.length) {\n categories.push({\n type: \"link\" as const,\n label: \"Schemas\",\n to: joinUrl(basePath, versionParam, \"~schemas\"),\n });\n }\n\n return categories;\n } catch {\n return [];\n }\n },\n getRoutes: () => getRoutes({ basePath, config, client }),\n };\n};\n"],"names":["localServerPromise","throwIfError","response","ZudokuError","GraphQLClient","config","#getLocalServer","m","#executeFetch","init","query","variables","operationName","result","devAssert","condition","message","isObjectLike","value","invariant","LineRegExp","getLocation","source","position","lastLineStart","line","match","printLocation","location","printSourceLocation","sourceLocation","firstLineColumnOffset","body","lineIndex","lineOffset","lineNum","columnOffset","columnNum","locationStr","lines","locationLine","subLineIndex","subLineColumnNum","subLines","i","printPrefixedLines","subLine","existingLines","_","padLen","prefix","toNormalizedOptions","args","firstArg","GraphQLError","rawArgs","_this$nodes","_nodeLocations$","_ref","nodes","positions","path","originalError","extensions","undefinedIfEmpty","nodeLocations","node","loc","pos","originalExtensions","output","formattedError","array","syntaxError","description","Location","startToken","endToken","Token","kind","start","end","column","QueryDocumentKeys","kindValues","isNode","maybeNode","maybeKind","OperationTypeNode","isWhiteSpace","code","isDigit","isLetter","isNameStart","isNameContinue","dedentBlockStringLines","_firstNonEmptyLine2","commonIndent","firstNonEmptyLine","lastNonEmptyLine","_firstNonEmptyLine","indent","leadingWhitespace","str","printBlockString","options","escapedValue","isSingleLine","forceLeadingNewLine","hasTrailingTripleQuotes","hasTrailingQuote","hasTrailingSlash","forceTrailingNewline","printAsMultipleLines","skipLeadingNewLine","TokenKind","Lexer","startOfFileToken","token","nextToken","readNextToken","isPunctuatorTokenKind","isUnicodeScalarValue","isSupplementaryCodePoint","isLeadingSurrogate","isTrailingSurrogate","printCodePointAt","lexer","char","createToken","col","bodyLength","readComment","readBlockString","readString","readNumber","readName","firstCode","isFloat","readDigits","chunkStart","escape","readEscapedUnicodeVariableWidth","readEscapedUnicodeFixedWidth","readEscapedCharacter","point","size","readHexDigit","read16BitHexCode","trailingCode","lineStart","currentLine","blockLines","MAX_ARRAY_LENGTH","MAX_RECURSIVE_DEPTH","inspect","formatValue","seenValues","formatObjectValue","previouslySeenValues","isJSONable","jsonValue","formatArray","formatObject","object","entries","getObjectTag","key","len","remaining","items","tag","name","isProduction","instanceOf","constructor","_value$constructor","className","valueClassName","stringifiedValue","Source","locationOffset","isSource","stripIgnoredCharacters","sourceObj","strippedBody","wasLastAddedTokenNonPunctuator","currentToken","tokenKind","isNonPunctuator","tokenBody","GraphQLContext","createContext","GraphQLProvider","children","client","createQuery","useCreateQuery","graphQLClient","use","TypedDocumentString","__meta__","OperationsFragmentFragmentDoc","ServersQueryDocument","SchemaWarmupDocument","OperationsForTagDocument","GetSchemasDocument","GetServerQueryDocument","GetNavigationOperationsDocument","documents","types.ServersQueryDocument","types.OperationsFragmentFragmentDoc","types.SchemaWarmupDocument","types.OperationsForTagDocument","types.GetSchemasDocument","types.GetServerQueryDocument","types.GetNavigationOperationsDocument","graphql","Collapsible","props","CollapsiblePrimitive","CollapsibleTrigger","jsx","CollapsibleContent","getOS","userAgent","isAppleDevice","keymap","useHotkey","hotkey","callback","hotkeySanitized","meta","shift","alt","ctrl","callbackRef","useRef","useEffect","handler","event","useSelectedServerStore","create","persist","set","newServer","useSelectedServer","servers","selectedServer","setSelectedServer","useMemo","s","Textarea","React","ref","cn","humanFileSize","bytes","exponent","CollapsibleHeaderTrigger","jsxs","ChevronsDownUpIcon","ChevronsUpDownIcon","CollapsibleHeader","ExamplesDropdown","examples","onSelect","DropdownMenu","DropdownMenuTrigger","Button","PlusCircleIcon","DropdownMenuContent","mediaTypeObject","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuGroup","example","DropdownMenuItem","ParamsGrid","createVariantComponent","ParamsGridItem","ParamsGridInput","Input","ParamsGridRemoveButton","onClick","XIcon","Checkbox","CheckboxPrimitive","CheckIcon","MultipartField","index","manager","fieldFileInputRef","fieldValue","PaperclipIcon","TrashIcon","Fragment","e","file","useKeyValueFieldManager","control","defaultValue","customIsEmpty","customShouldSetActive","internalSetValue","watch","setFocus","register","useFormContext","fields","append","remove","useFieldArray","watchedFields","lastEditedIndexRef","prevLengthRef","setValue","useCallback","field","isEmpty","item","shouldSetActive","emptyIndices","lowestRemovedIndex","indexToRemove","newLength","lastField","updates","shouldBeActive","startTransition","update","isFieldEmpty","createKeyDownHandler","next","previous","canNavigatePrevious","isAtStart","isAtEnd","getNameInputProps","getValueInputProps","getCheckboxProps","checked","getValue","getRemoveButtonProps","BodyPanel","content","headers","bodyMode","multipartFormFields","fileInputRef","isDragging","setIsDragging","useState","handleFileSelect","selectedFile","h","handleFileInputChange","handleDragOver","handleDragLeave","handleDrop","droppedFile","FileInput","ScanTextIcon","Grid2x2PlusIcon","ChevronDownIcon","mediaType","createUrl","host","data","filledPath","part","url","param","isBinaryContentType","contentType","extractFileName","contentDisposition","filenameMatch","fileName","Popover","PopoverPrimitive","PopoverContent","align","sideOffset","AutocompletePopover","onChange","placeholder","onEnterPress","onKeyDown","open","setOpen","dontClose","setDontClose","count","useCommandState","state","inputRef","PopoverAnchor","CommandInlineInput","el","CommandList","enumValue","CommandItem","selected","Autocomplete","shouldFilter","Command","headerOptions","Headers","schemaHeaders","lockedHeaders","formState","watchedHeaders","missingHeaders","hiddenHeadersIndex","f","lockedHeaderFields","TableOfContentsIcon","Tooltip","TooltipTrigger","LockIcon","TooltipContent","currentSchemaHeader","hasEnum","isHidden","nameInputProps","valueInputProps","CircleAlertIcon","v","labelVariants","cva","Label","LabelPrimitive","RadioGroup","RadioGroupPrimitive","RadioGroupItem","Circle","IdentitySelector","identities","NO_IDENTITY","identity","IdentityDialog","onSubmit","onOpenChange","setIdentity","rememberedIdentity","setRememberedIdentity","Dialog","DialogContent","DialogTitle","DialogDescription","Card","DialogFooter","c2n","c","s2n","a","pastellize","hue","saturation","lightness","DATA_ATTR","usePastellizedColor","resolvedTheme","useTheme","ColorizedParam","slug","title","normalizedSlug","normalized","text","background","textColor","backgroundColor","borderColor","onMouseEnter","onMouseLeave","PathParams","sortedFields","b","Controller","QueryParams","schemaQueryParams","watchedQueryParams","requiredFields","hasSchemaParams","Unlink2Icon","currentParam","RequestLoginDialog","onSignUp","onLogin","onSkip","rememberSkip","setRememberSkip","handleSkip","useIdentityStore","get","availableIdentities","createJSONStorage","PathRenderer","renderParam","paramIndex","arr","matches","elements","lastIndex","originalValue","startIndex","UrlPath","pathParams","formValue","UrlQueryParams","urlQueryParams","p","ResponseCodeCircle","status","RealTimeCounter","spanRef","textRef","startTimeRef","animationFrameRef","updateTime","elapsed","useLayoutEffect","currentSpanRef","textNode","ResponseStatusBar","time","isFinished","progress","statusCodeMap","inferType","firstValue","generateInterface","obj","_indentation","propertyType","convertToTypes","json","mimeTypeToLanguage","mimeType","mime","detectLanguage","tryParseJson","sortHeadersByRelevance","priorityOrder","keyA","keyB","indexA","indexB","MAX_HEADERS_TO_SHOW","Row","RowContent","RowValue","header","isSecret","revealed","setRevealed","prev","SecretText","EyeOffIcon","EyeIcon","ResponseTab","request","isBinary","blob","detectedLanguage","jsonContent","beautifiedBody","view","setView","types","useQuery","handleDownload","link","sortedHeaders","CornerDownRightIcon","MinusCircleIcon","CornerDownLeftIcon","SquareCodeIcon","Select","SelectTrigger","SelectValue","SelectContent","SelectItem","DownloadIcon","SyntaxHighlight","ResultPanel","queryMutation","showLongRunningWarning","onCancel","tip","Alert","UnplugIcon","AlertTitle","AlertDescription","Spinner","SendIcon","useRememberSkipLoginDialog","skipLogin","syncZustandState","Playground","server","method","queryParams","defaultBody","requiresLogin","showSelectIdentity","setShowSelectIdentity","useApiIdentities","getRememberedIdentity","useTransition","setSkipLogin","isLoginDialogDismissed","setIsLoginDialogDismissed","setShowLongRunningWarning","abortControllerRef","latestSetRememberedIdentity","useLatest","formRef","hotkeyLabel","pathParamOrder","sortedPathParams","handleSubmit","form","useForm","authorizationFields","useMutation","formData","warningTimeout","responseHeaders","responseSize","requestBody","error","isRequestAnimating","isAnimating","setIsAnimating","timer","useNProgress","serverSelect","showLogin","isBodySupported","isCopied","copyToClipboard","useCopyToClipboard","FormProvider","TooltipProvider","CopyIcon","IdCardLanyardIcon","ShapesIcon","PlaygroundDialog","isAuthEnabled","login","signup","isPending","isAuthenticated","useAuth","DialogTrigger","PlayIcon","VisuallyHidden","MethodColorMap","createNavigationCategory","label","operations","collapsible","collapsed","operation","OasContext","OasConfigProvider","useOasConfig","ctx","useContext","createOasProvider","opts","OasProvider","createRoute","untagged","OperationList","NonTagPagesOperationList","render","type","input","currentTag","useParams","useLocation","GetNavigationOperationsQuery","schema","useSuspenseQuery","firstTag","Navigate","generatePath","t","createNonTagPagesRoute","createAdditionalRoutes","basePath","joinUrl","UNTAGGED_PATH","SchemaList","createVersionRoutes","versionPath","tagPages","firstTagRoute","redirect","getVersionMetadata","getRoutes","versions","version","openApiPlugin","CirclePlayIcon","context","matchPath","versionParam","tagCategories","categoryPath","isCollapsed","isCollapsible","tagGroups","groupedTags","group","categories","cat","untaggedOperations"],"mappings":"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","x_google_ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]}