zudoku 0.0.0-e614aaa → 0.0.0-e64b729

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 (1312) hide show
  1. package/README.md +1 -1
  2. package/cli.js +8 -2
  3. package/dist/app/ZuploBuildConfig.d.ts +155 -0
  4. package/dist/app/ZuploBuildConfig.js +29 -0
  5. package/dist/app/ZuploBuildConfig.js.map +1 -0
  6. package/dist/app/entry.client.js +36 -0
  7. package/dist/app/entry.client.js.map +1 -1
  8. package/dist/app/entry.server.d.ts +8 -6
  9. package/dist/app/entry.server.js +12 -8
  10. package/dist/app/entry.server.js.map +1 -1
  11. package/dist/app/env.d.ts +33 -0
  12. package/dist/app/env.js +29 -0
  13. package/dist/app/env.js.map +1 -0
  14. package/dist/app/main.js +22 -27
  15. package/dist/app/main.js.map +1 -1
  16. package/dist/cli/build/handler.js +2 -1
  17. package/dist/cli/build/handler.js.map +1 -1
  18. package/dist/cli/cli.js +12 -1
  19. package/dist/cli/cli.js.map +1 -1
  20. package/dist/cli/cmds/dev.d.ts +1 -1
  21. package/dist/cli/cmds/dev.js.map +1 -1
  22. package/dist/cli/common/machine-id/lib.js +1 -0
  23. package/dist/cli/common/machine-id/lib.js.map +1 -1
  24. package/dist/cli/dev/handler.js +2 -1
  25. package/dist/cli/dev/handler.js.map +1 -1
  26. package/dist/cli/preview/handler.js +13 -15
  27. package/dist/cli/preview/handler.js.map +1 -1
  28. package/dist/config/config.d.ts +18 -11
  29. package/dist/config/file-exists.d.ts +1 -0
  30. package/dist/config/file-exists.js +5 -0
  31. package/dist/config/file-exists.js.map +1 -0
  32. package/dist/config/loader.d.ts +18 -17
  33. package/dist/config/loader.js +105 -120
  34. package/dist/config/loader.js.map +1 -1
  35. package/dist/config/validators/BuildSchema.d.ts +60 -0
  36. package/dist/config/validators/BuildSchema.js +31 -0
  37. package/dist/config/validators/BuildSchema.js.map +1 -0
  38. package/dist/config/validators/icon-types.d.ts +1 -1
  39. package/dist/config/validators/validate.d.ts +4117 -459
  40. package/dist/config/validators/validate.js +396 -11
  41. package/dist/config/validators/validate.js.map +1 -1
  42. package/dist/index.d.ts +5 -3
  43. package/dist/index.js +2 -0
  44. package/dist/index.js.map +1 -1
  45. package/dist/lib/authentication/AuthenticationPlugin.d.ts +7 -2
  46. package/dist/lib/authentication/AuthenticationPlugin.js +13 -1
  47. package/dist/lib/authentication/AuthenticationPlugin.js.map +1 -1
  48. package/dist/lib/authentication/authentication.d.ts +3 -4
  49. package/dist/lib/authentication/components/CallbackHandler.js +5 -1
  50. package/dist/lib/authentication/components/CallbackHandler.js.map +1 -1
  51. package/dist/lib/authentication/components/SignIn.d.ts +1 -1
  52. package/dist/lib/authentication/components/SignIn.js +5 -2
  53. package/dist/lib/authentication/components/SignIn.js.map +1 -1
  54. package/dist/lib/authentication/components/SignUp.d.ts +1 -1
  55. package/dist/lib/authentication/components/SignUp.js +4 -1
  56. package/dist/lib/authentication/components/SignUp.js.map +1 -1
  57. package/dist/lib/authentication/hook.d.ts +1 -0
  58. package/dist/lib/authentication/hook.js +11 -1
  59. package/dist/lib/authentication/hook.js.map +1 -1
  60. package/dist/lib/authentication/providers/auth0.js +1 -1
  61. package/dist/lib/authentication/providers/auth0.js.map +1 -1
  62. package/dist/lib/authentication/providers/clerk.d.ts +2 -2
  63. package/dist/lib/authentication/providers/clerk.js +92 -46
  64. package/dist/lib/authentication/providers/clerk.js.map +1 -1
  65. package/dist/lib/authentication/providers/openid.d.ts +12 -17
  66. package/dist/lib/authentication/providers/openid.js +37 -42
  67. package/dist/lib/authentication/providers/openid.js.map +1 -1
  68. package/dist/lib/authentication/providers/supabase.d.ts +4 -0
  69. package/dist/lib/authentication/providers/supabase.js +115 -0
  70. package/dist/lib/authentication/providers/supabase.js.map +1 -0
  71. package/dist/lib/authentication/state.d.ts +0 -26
  72. package/dist/lib/authentication/state.js +1 -16
  73. package/dist/lib/authentication/state.js.map +1 -1
  74. package/dist/lib/components/AnchorLink.d.ts +2 -2
  75. package/dist/lib/components/AnchorLink.js +5 -4
  76. package/dist/lib/components/AnchorLink.js.map +1 -1
  77. package/dist/lib/components/Autocomplete.js +1 -1
  78. package/dist/lib/components/Banner.js +1 -1
  79. package/dist/lib/components/Banner.js.map +1 -1
  80. package/dist/lib/components/Bootstrap.d.ts +2 -1
  81. package/dist/lib/components/Bootstrap.js +3 -2
  82. package/dist/lib/components/Bootstrap.js.map +1 -1
  83. package/dist/lib/components/BuildCheck.d.ts +4 -0
  84. package/dist/lib/components/BuildCheck.js +38 -0
  85. package/dist/lib/components/BuildCheck.js.map +1 -0
  86. package/dist/lib/components/ErrorPage.js +1 -1
  87. package/dist/lib/components/Footer.d.ts +1 -0
  88. package/dist/lib/components/Footer.js +32 -0
  89. package/dist/lib/components/Footer.js.map +1 -0
  90. package/dist/lib/components/Header.js +17 -9
  91. package/dist/lib/components/Header.js.map +1 -1
  92. package/dist/lib/components/Heading.d.ts +3 -3
  93. package/dist/lib/components/Heading.js +6 -1
  94. package/dist/lib/components/Heading.js.map +1 -1
  95. package/dist/lib/components/InlineCode.d.ts +2 -1
  96. package/dist/lib/components/InlineCode.js +2 -9
  97. package/dist/lib/components/InlineCode.js.map +1 -1
  98. package/dist/lib/components/Layout.js +9 -29
  99. package/dist/lib/components/Layout.js.map +1 -1
  100. package/dist/lib/components/Main.d.ts +2 -0
  101. package/dist/lib/components/Main.js +18 -0
  102. package/dist/lib/components/Main.js.map +1 -0
  103. package/dist/lib/components/Markdown.d.ts +3 -1
  104. package/dist/lib/components/Markdown.js +8 -14
  105. package/dist/lib/components/Markdown.js.map +1 -1
  106. package/dist/lib/components/MobileTopNavigation.js +7 -3
  107. package/dist/lib/components/MobileTopNavigation.js.map +1 -1
  108. package/dist/lib/components/NotFoundPage.js +1 -1
  109. package/dist/lib/components/Pagination.d.ts +11 -0
  110. package/dist/lib/components/Pagination.js +10 -0
  111. package/dist/lib/components/Pagination.js.map +1 -0
  112. package/dist/lib/components/Search.js +7 -1
  113. package/dist/lib/components/Search.js.map +1 -1
  114. package/dist/lib/components/Slot.d.ts +17 -0
  115. package/dist/lib/components/Slot.js +24 -0
  116. package/dist/lib/components/Slot.js.map +1 -0
  117. package/dist/lib/components/Slot.test.js +168 -0
  118. package/dist/lib/components/Slot.test.js.map +1 -0
  119. package/dist/lib/components/TopNavigation.d.ts +2 -4
  120. package/dist/lib/components/TopNavigation.js +25 -20
  121. package/dist/lib/components/TopNavigation.js.map +1 -1
  122. package/dist/lib/components/Zudoku.js +9 -5
  123. package/dist/lib/components/Zudoku.js.map +1 -1
  124. package/dist/lib/components/cache.d.ts +7 -0
  125. package/dist/lib/components/cache.js +7 -0
  126. package/dist/lib/components/cache.js.map +1 -1
  127. package/dist/lib/components/context/BypassProtectedRoutesContext.d.ts +1 -0
  128. package/dist/lib/components/context/BypassProtectedRoutesContext.js +3 -0
  129. package/dist/lib/components/context/BypassProtectedRoutesContext.js.map +1 -0
  130. package/dist/lib/components/context/SlotProvider.d.ts +26 -0
  131. package/dist/lib/components/context/SlotProvider.js +83 -0
  132. package/dist/lib/components/context/SlotProvider.js.map +1 -0
  133. package/dist/lib/components/context/ViewportAnchorContext.d.ts +2 -4
  134. package/dist/lib/components/context/ViewportAnchorContext.js +13 -19
  135. package/dist/lib/components/context/ViewportAnchorContext.js.map +1 -1
  136. package/dist/lib/components/context/ZudokuContext.d.ts +2 -2
  137. package/dist/lib/components/context/ZudokuContext.js +10 -5
  138. package/dist/lib/components/context/ZudokuContext.js.map +1 -1
  139. package/dist/lib/components/context/ZudokuProvider.js +2 -1
  140. package/dist/lib/components/context/ZudokuProvider.js.map +1 -1
  141. package/dist/lib/components/index.d.ts +11 -3
  142. package/dist/lib/components/index.js +2 -0
  143. package/dist/lib/components/index.js.map +1 -1
  144. package/dist/lib/components/navigation/PoweredByZudoku.d.ts +3 -0
  145. package/dist/lib/components/navigation/PoweredByZudoku.js +7 -0
  146. package/dist/lib/components/navigation/PoweredByZudoku.js.map +1 -0
  147. package/dist/lib/components/navigation/Sidebar.d.ts +3 -1
  148. package/dist/lib/components/navigation/Sidebar.js +4 -13
  149. package/dist/lib/components/navigation/Sidebar.js.map +1 -1
  150. package/dist/lib/components/navigation/SidebarBadge.js +1 -1
  151. package/dist/lib/components/navigation/SidebarBadge.js.map +1 -1
  152. package/dist/lib/components/navigation/SidebarCategory.d.ts +2 -2
  153. package/dist/lib/components/navigation/SidebarCategory.js +18 -10
  154. package/dist/lib/components/navigation/SidebarCategory.js.map +1 -1
  155. package/dist/lib/components/navigation/SidebarItem.d.ts +1 -0
  156. package/dist/lib/components/navigation/SidebarItem.js +17 -12
  157. package/dist/lib/components/navigation/SidebarItem.js.map +1 -1
  158. package/dist/lib/components/navigation/SidebarWrapper.d.ts +7 -6
  159. package/dist/lib/components/navigation/SidebarWrapper.js +18 -3
  160. package/dist/lib/components/navigation/SidebarWrapper.js.map +1 -1
  161. package/dist/lib/{plugins/markdown → components/navigation}/Toc.js +6 -8
  162. package/dist/lib/components/navigation/Toc.js.map +1 -0
  163. package/dist/lib/components/navigation/ZudokuLogo.d.ts +6 -0
  164. package/dist/lib/components/navigation/ZudokuLogo.js +5 -0
  165. package/dist/lib/components/navigation/ZudokuLogo.js.map +1 -0
  166. package/dist/lib/components/navigation/ZuploLogo.d.ts +3 -0
  167. package/dist/lib/components/navigation/ZuploLogo.js +4 -0
  168. package/dist/lib/components/navigation/ZuploLogo.js.map +1 -0
  169. package/dist/lib/components/navigation/utils.d.ts +3 -0
  170. package/dist/lib/components/navigation/utils.js +8 -0
  171. package/dist/lib/components/navigation/utils.js.map +1 -1
  172. package/dist/lib/core/RouteGuard.d.ts +1 -0
  173. package/dist/lib/core/RouteGuard.js +10 -3
  174. package/dist/lib/core/RouteGuard.js.map +1 -1
  175. package/dist/lib/core/ZudokuContext.d.ts +40 -11
  176. package/dist/lib/core/ZudokuContext.js +17 -9
  177. package/dist/lib/core/ZudokuContext.js.map +1 -1
  178. package/dist/lib/core/plugins.d.ts +14 -9
  179. package/dist/lib/core/plugins.js +1 -0
  180. package/dist/lib/core/plugins.js.map +1 -1
  181. package/dist/lib/errors/ErrorAlert.js +6 -1
  182. package/dist/lib/errors/ErrorAlert.js.map +1 -1
  183. package/dist/lib/hooks/useEvent.test.js +1 -1
  184. package/dist/lib/hooks/useEvent.test.js.map +1 -1
  185. package/dist/lib/oas/graphql/circular.js +23 -18
  186. package/dist/lib/oas/graphql/circular.js.map +1 -1
  187. package/dist/lib/oas/graphql/index.d.ts +17 -4
  188. package/dist/lib/oas/graphql/index.js +148 -38
  189. package/dist/lib/oas/graphql/index.js.map +1 -1
  190. package/dist/lib/oas/parser/dereference/index.js +2 -0
  191. package/dist/lib/oas/parser/dereference/index.js.map +1 -1
  192. package/dist/lib/oas/parser/index.d.ts +8 -3
  193. package/dist/lib/oas/parser/index.js +7 -23
  194. package/dist/lib/oas/parser/index.js.map +1 -1
  195. package/dist/lib/oas/parser/upgrade/index.d.ts +1 -0
  196. package/dist/lib/oas/parser/upgrade/index.js +77 -25
  197. package/dist/lib/oas/parser/upgrade/index.js.map +1 -1
  198. package/dist/lib/plugins/api-catalog/Catalog.js +1 -1
  199. package/dist/lib/plugins/api-catalog/Catalog.js.map +1 -1
  200. package/dist/lib/plugins/api-catalog/index.js +19 -17
  201. package/dist/lib/plugins/api-catalog/index.js.map +1 -1
  202. package/dist/lib/plugins/api-keys/CreateApiKey.d.ts +3 -2
  203. package/dist/lib/plugins/api-keys/CreateApiKey.js +8 -4
  204. package/dist/lib/plugins/api-keys/CreateApiKey.js.map +1 -1
  205. package/dist/lib/plugins/api-keys/SettingsApiKeys.d.ts +1 -1
  206. package/dist/lib/plugins/api-keys/SettingsApiKeys.js +54 -23
  207. package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
  208. package/dist/lib/plugins/api-keys/index.d.ts +18 -9
  209. package/dist/lib/plugins/api-keys/index.js +49 -34
  210. package/dist/lib/plugins/api-keys/index.js.map +1 -1
  211. package/dist/lib/plugins/custom-pages/index.d.ts +1 -1
  212. package/dist/lib/plugins/markdown/MdxPage.d.ts +1 -1
  213. package/dist/lib/plugins/markdown/MdxPage.js +3 -9
  214. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  215. package/dist/lib/plugins/markdown/index.d.ts +1 -1
  216. package/dist/lib/plugins/markdown/resolver.d.ts +1 -1
  217. package/dist/lib/plugins/markdown/resolver.js.map +1 -1
  218. package/dist/lib/plugins/openapi/CollapsibleCode.js +1 -1
  219. package/dist/lib/plugins/openapi/CollapsibleCode.js.map +1 -1
  220. package/dist/lib/plugins/openapi/ColorizedParam.js +1 -1
  221. package/dist/lib/plugins/openapi/ColorizedParam.js.map +1 -1
  222. package/dist/lib/plugins/openapi/Endpoint.js +1 -1
  223. package/dist/lib/plugins/openapi/Endpoint.js.map +1 -1
  224. package/dist/lib/plugins/openapi/OperationList.js +67 -21
  225. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  226. package/dist/lib/plugins/openapi/OperationListItem.d.ts +1 -1
  227. package/dist/lib/plugins/openapi/OperationListItem.js +8 -13
  228. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  229. package/dist/lib/plugins/openapi/ParamInfos.d.ts +6 -0
  230. package/dist/lib/plugins/openapi/ParamInfos.js +45 -0
  231. package/dist/lib/plugins/openapi/ParamInfos.js.map +1 -0
  232. package/dist/lib/plugins/openapi/ParameterListItem.js +16 -4
  233. package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
  234. package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js +8 -2
  235. package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js.map +1 -1
  236. package/dist/lib/plugins/openapi/ResponsesSidecarBox.d.ts +2 -4
  237. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +1 -4
  238. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
  239. package/dist/lib/plugins/openapi/SchemaList.d.ts +1 -0
  240. package/dist/lib/plugins/openapi/SchemaList.js +53 -0
  241. package/dist/lib/plugins/openapi/SchemaList.js.map +1 -0
  242. package/dist/lib/plugins/openapi/Sidecar.js +69 -10
  243. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  244. package/dist/lib/plugins/openapi/SidecarExamples.js +9 -1
  245. package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -1
  246. package/dist/lib/plugins/openapi/SimpleSelect.js +1 -1
  247. package/dist/lib/plugins/openapi/SimpleSelect.js.map +1 -1
  248. package/dist/lib/plugins/openapi/client/GraphQLClient.d.ts +1 -1
  249. package/dist/lib/plugins/openapi/client/GraphQLClient.js +1 -1
  250. package/dist/lib/plugins/openapi/client/GraphQLClient.js.map +1 -1
  251. package/dist/lib/plugins/openapi/client/useCreateQuery.d.ts +11 -2
  252. package/dist/lib/plugins/openapi/client/useCreateQuery.js +14 -7
  253. package/dist/lib/plugins/openapi/client/useCreateQuery.js.map +1 -1
  254. package/dist/lib/plugins/openapi/components/ConstValue.d.ts +5 -0
  255. package/dist/lib/plugins/openapi/components/ConstValue.js +6 -0
  256. package/dist/lib/plugins/openapi/components/ConstValue.js.map +1 -0
  257. package/dist/lib/plugins/openapi/components/EnumValues.d.ts +5 -0
  258. package/dist/lib/plugins/openapi/components/EnumValues.js +15 -0
  259. package/dist/lib/plugins/openapi/components/EnumValues.js.map +1 -0
  260. package/dist/lib/plugins/openapi/components/ResponseContent.d.ts +12 -0
  261. package/dist/lib/plugins/openapi/components/ResponseContent.js +21 -0
  262. package/dist/lib/plugins/openapi/components/ResponseContent.js.map +1 -0
  263. package/dist/lib/plugins/openapi/components/SelectOnClick.d.ts +5 -0
  264. package/dist/lib/plugins/openapi/components/SelectOnClick.js +16 -0
  265. package/dist/lib/plugins/openapi/components/SelectOnClick.js.map +1 -0
  266. package/dist/lib/plugins/openapi/graphql/gql.d.ts +9 -5
  267. package/dist/lib/plugins/openapi/graphql/gql.js +5 -4
  268. package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
  269. package/dist/lib/plugins/openapi/graphql/graphql.d.ts +108 -55
  270. package/dist/lib/plugins/openapi/graphql/graphql.js +59 -34
  271. package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
  272. package/dist/lib/plugins/openapi/index.d.ts +6 -12
  273. package/dist/lib/plugins/openapi/index.js +43 -60
  274. package/dist/lib/plugins/openapi/index.js.map +1 -1
  275. package/dist/lib/plugins/openapi/interfaces.d.ts +37 -10
  276. package/dist/lib/plugins/openapi/playground/ExamplesDropdown.d.ts +2 -2
  277. package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js +1 -5
  278. package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js.map +1 -1
  279. package/dist/lib/plugins/openapi/playground/Headers.js +3 -3
  280. package/dist/lib/plugins/openapi/playground/Headers.js.map +1 -1
  281. package/dist/lib/plugins/openapi/playground/IdentityDialog.d.ts +11 -0
  282. package/dist/lib/plugins/openapi/playground/IdentityDialog.js +14 -0
  283. package/dist/lib/plugins/openapi/playground/IdentityDialog.js.map +1 -0
  284. package/dist/lib/plugins/openapi/playground/IdentitySelector.d.ts +7 -0
  285. package/dist/lib/plugins/openapi/playground/IdentitySelector.js +8 -0
  286. package/dist/lib/plugins/openapi/playground/IdentitySelector.js.map +1 -0
  287. package/dist/lib/plugins/openapi/playground/Playground.d.ts +13 -2
  288. package/dist/lib/plugins/openapi/playground/Playground.js +83 -27
  289. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  290. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +1 -1
  291. package/dist/lib/plugins/openapi/playground/QueryParams.d.ts +1 -1
  292. package/dist/lib/plugins/openapi/playground/QueryParams.js +3 -3
  293. package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
  294. package/dist/lib/plugins/openapi/playground/RequestLoginDialog.d.ts +7 -0
  295. package/dist/lib/plugins/openapi/playground/RequestLoginDialog.js +8 -0
  296. package/dist/lib/plugins/openapi/playground/RequestLoginDialog.js.map +1 -0
  297. package/dist/lib/plugins/openapi/playground/SubmitButton.d.ts +1 -1
  298. package/dist/lib/plugins/openapi/playground/SubmitButton.js +7 -10
  299. package/dist/lib/plugins/openapi/playground/SubmitButton.js.map +1 -1
  300. package/dist/lib/plugins/openapi/playground/rememberedIdentity.d.ts +17 -0
  301. package/dist/lib/plugins/openapi/playground/rememberedIdentity.js +11 -0
  302. package/dist/lib/plugins/openapi/playground/rememberedIdentity.js.map +1 -0
  303. package/dist/lib/plugins/openapi/playground/result-panel/RequestTab.js +1 -1
  304. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +19 -13
  305. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js.map +1 -1
  306. package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.d.ts +6 -4
  307. package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js +4 -3
  308. package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js.map +1 -1
  309. package/dist/lib/plugins/openapi/processors/removeExtensions.d.ts +8 -0
  310. package/dist/lib/plugins/openapi/{post-processors → processors}/removeExtensions.js +1 -1
  311. package/dist/lib/plugins/openapi/processors/removeExtensions.js.map +1 -0
  312. package/dist/lib/plugins/openapi/{post-processors → processors}/removeExtensions.test.js +26 -6
  313. package/dist/lib/plugins/openapi/processors/removeExtensions.test.js.map +1 -0
  314. package/dist/lib/plugins/openapi/{post-processors → processors}/removeParameters.d.ts +3 -1
  315. package/dist/lib/plugins/openapi/{post-processors → processors}/removeParameters.js +1 -1
  316. package/dist/lib/plugins/openapi/processors/removeParameters.js.map +1 -0
  317. package/dist/lib/plugins/openapi/{post-processors → processors}/removeParameters.test.js +53 -25
  318. package/dist/lib/plugins/openapi/processors/removeParameters.test.js.map +1 -0
  319. package/dist/lib/plugins/openapi/{post-processors → processors}/removePaths.d.ts +3 -1
  320. package/dist/lib/plugins/openapi/{post-processors → processors}/removePaths.js +1 -1
  321. package/dist/lib/plugins/openapi/processors/removePaths.js.map +1 -0
  322. package/dist/lib/plugins/openapi/processors/removePaths.test.js +144 -0
  323. package/dist/lib/plugins/openapi/processors/removePaths.test.js.map +1 -0
  324. package/dist/lib/plugins/openapi/processors/traverse.js.map +1 -0
  325. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.d.ts +1 -2
  326. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.js +2 -2
  327. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.js.map +1 -1
  328. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.d.ts +2 -1
  329. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.js +2 -2
  330. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.js.map +1 -1
  331. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.d.ts +0 -1
  332. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.js +1 -1
  333. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.js.map +1 -1
  334. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.d.ts +4 -0
  335. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js +15 -0
  336. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js.map +1 -0
  337. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.d.ts +2 -4
  338. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js +24 -16
  339. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js.map +1 -1
  340. package/dist/lib/plugins/openapi/schema/SchemaView.d.ts +2 -2
  341. package/dist/lib/plugins/openapi/schema/SchemaView.js +37 -49
  342. package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
  343. package/dist/lib/plugins/openapi/schema/utils.d.ts +7 -1
  344. package/dist/lib/plugins/openapi/schema/utils.js +14 -5
  345. package/dist/lib/plugins/openapi/schema/utils.js.map +1 -1
  346. package/dist/lib/plugins/openapi/state.d.ts +25 -0
  347. package/dist/lib/plugins/openapi/state.js +18 -0
  348. package/dist/lib/plugins/openapi/state.js.map +1 -0
  349. package/dist/lib/plugins/openapi/util/createSidebarCategory.js +5 -7
  350. package/dist/lib/plugins/openapi/util/createSidebarCategory.js.map +1 -1
  351. package/dist/lib/plugins/openapi/util/generateSchemaExample.d.ts +1 -1
  352. package/dist/lib/plugins/openapi/util/generateSchemaExample.js +44 -0
  353. package/dist/lib/plugins/openapi/util/generateSchemaExample.js.map +1 -1
  354. package/dist/lib/plugins/openapi/util/getRoutes.js +54 -11
  355. package/dist/lib/plugins/openapi/util/getRoutes.js.map +1 -1
  356. package/dist/lib/plugins/redirect/index.d.ts +1 -1
  357. package/dist/lib/plugins/search-pagefind/PagefindSearch.js +23 -10
  358. package/dist/lib/plugins/search-pagefind/PagefindSearch.js.map +1 -1
  359. package/dist/lib/plugins/search-pagefind/ResultList.d.ts +1 -0
  360. package/dist/lib/plugins/search-pagefind/ResultList.js +19 -17
  361. package/dist/lib/plugins/search-pagefind/ResultList.js.map +1 -1
  362. package/dist/lib/plugins/search-pagefind/get-results.d.ts +8 -1
  363. package/dist/lib/plugins/search-pagefind/get-results.js +9 -4
  364. package/dist/lib/plugins/search-pagefind/get-results.js.map +1 -1
  365. package/dist/lib/shiki.d.ts +35 -0
  366. package/dist/lib/shiki.js +103 -0
  367. package/dist/lib/shiki.js.map +1 -0
  368. package/dist/lib/ui/Badge.d.ts +1 -1
  369. package/dist/lib/ui/Badge.js +1 -1
  370. package/dist/lib/ui/Badge.js.map +1 -1
  371. package/dist/lib/ui/Button.d.ts +3 -3
  372. package/dist/lib/ui/Button.js +9 -6
  373. package/dist/lib/ui/Button.js.map +1 -1
  374. package/dist/lib/ui/Callout.d.ts +2 -1
  375. package/dist/lib/ui/Callout.js +3 -2
  376. package/dist/lib/ui/Callout.js.map +1 -1
  377. package/dist/lib/ui/Card.js +1 -1
  378. package/dist/lib/ui/Checkbox.d.ts +2 -8
  379. package/dist/lib/ui/Checkbox.js +1 -13
  380. package/dist/lib/ui/Checkbox.js.map +1 -1
  381. package/dist/lib/ui/CodeBlock.d.ts +16 -0
  382. package/dist/lib/ui/CodeBlock.js +18 -0
  383. package/dist/lib/ui/CodeBlock.js.map +1 -0
  384. package/dist/lib/ui/Command.d.ts +1 -1
  385. package/dist/lib/ui/Command.js +3 -3
  386. package/dist/lib/ui/Command.js.map +1 -1
  387. package/dist/lib/ui/Dialog.js +1 -1
  388. package/dist/lib/ui/Dialog.js.map +1 -1
  389. package/dist/lib/ui/DropdownMenu.js +4 -4
  390. package/dist/lib/ui/DropdownMenu.js.map +1 -1
  391. package/dist/lib/ui/Form.d.ts +1 -1
  392. package/dist/lib/ui/HoverCard.js +1 -1
  393. package/dist/lib/ui/HoverCard.js.map +1 -1
  394. package/dist/lib/ui/Input.js +1 -1
  395. package/dist/lib/ui/Input.js.map +1 -1
  396. package/dist/lib/ui/Popover.js +1 -1
  397. package/dist/lib/ui/Popover.js.map +1 -1
  398. package/dist/lib/ui/RadioGroup.js +1 -1
  399. package/dist/lib/ui/RadioGroup.js.map +1 -1
  400. package/dist/lib/ui/Select.js +2 -2
  401. package/dist/lib/ui/Select.js.map +1 -1
  402. package/dist/lib/ui/Slider.js +1 -1
  403. package/dist/lib/ui/Slider.js.map +1 -1
  404. package/dist/lib/ui/Stepper.d.ts +0 -1
  405. package/dist/lib/ui/Stepper.js +1 -1
  406. package/dist/lib/ui/Stepper.js.map +1 -1
  407. package/dist/lib/ui/Switch.js +1 -1
  408. package/dist/lib/ui/Switch.js.map +1 -1
  409. package/dist/lib/ui/SyntaxHighlight.d.ts +10 -14
  410. package/dist/lib/ui/SyntaxHighlight.js +13 -55
  411. package/dist/lib/ui/SyntaxHighlight.js.map +1 -1
  412. package/dist/lib/ui/Tabs.js +2 -2
  413. package/dist/lib/ui/Tabs.js.map +1 -1
  414. package/dist/lib/ui/Textarea.js +1 -1
  415. package/dist/lib/ui/Textarea.js.map +1 -1
  416. package/dist/lib/ui/Toggle.js +1 -1
  417. package/dist/lib/ui/Toggle.js.map +1 -1
  418. package/dist/lib/util/MdxComponents.d.ts +12 -4
  419. package/dist/lib/util/MdxComponents.js +13 -12
  420. package/dist/lib/util/MdxComponents.js.map +1 -1
  421. package/dist/lib/util/detectOS.d.ts +1 -0
  422. package/dist/lib/util/detectOS.js +11 -0
  423. package/dist/lib/util/detectOS.js.map +1 -0
  424. package/dist/lib/util/ensureArray.d.ts +1 -0
  425. package/dist/lib/util/ensureArray.js +2 -0
  426. package/dist/lib/util/ensureArray.js.map +1 -0
  427. package/dist/lib/util/joinPath.d.ts +3 -0
  428. package/dist/lib/util/joinPath.js +3 -0
  429. package/dist/lib/util/joinPath.js.map +1 -1
  430. package/dist/lib/util/traverse.d.ts +3 -9
  431. package/dist/lib/util/traverse.js +7 -6
  432. package/dist/lib/util/traverse.js.map +1 -1
  433. package/dist/lib/util/types.d.ts +7 -0
  434. package/dist/lib/util/types.js +2 -0
  435. package/dist/lib/util/types.js.map +1 -0
  436. package/dist/lib/util/url.d.ts +4 -0
  437. package/dist/lib/util/url.js +13 -0
  438. package/dist/lib/util/url.js.map +1 -0
  439. package/dist/lib/util/url.test.js +26 -0
  440. package/dist/lib/util/url.test.js.map +1 -0
  441. package/dist/lib/util/useExposedProps.d.ts +8 -1
  442. package/dist/lib/util/useExposedProps.js.map +1 -1
  443. package/dist/lib/util/useOnScreen.d.ts +3 -2
  444. package/dist/lib/util/useOnScreen.js +3 -3
  445. package/dist/lib/util/useOnScreen.js.map +1 -1
  446. package/dist/lib/util/useScrollToAnchor.js +20 -12
  447. package/dist/lib/util/useScrollToAnchor.js.map +1 -1
  448. package/dist/vite/api/SchemaManager.d.ts +36 -0
  449. package/dist/vite/api/SchemaManager.js +137 -0
  450. package/dist/vite/api/SchemaManager.js.map +1 -0
  451. package/dist/vite/api/SchemaManager.test.d.ts +1 -0
  452. package/dist/vite/api/SchemaManager.test.js +106 -0
  453. package/dist/vite/api/SchemaManager.test.js.map +1 -0
  454. package/dist/vite/api/schema-codegen.d.ts +1 -1
  455. package/dist/vite/api/schema-codegen.js +35 -12
  456. package/dist/vite/api/schema-codegen.js.map +1 -1
  457. package/dist/vite/api/schema-codegen.test.js +66 -0
  458. package/dist/vite/api/schema-codegen.test.js.map +1 -1
  459. package/dist/vite/build.js +46 -10
  460. package/dist/vite/build.js.map +1 -1
  461. package/dist/vite/config.d.ts +2 -9
  462. package/dist/vite/config.js +50 -103
  463. package/dist/vite/config.js.map +1 -1
  464. package/dist/vite/config.test.js +1 -1
  465. package/dist/vite/config.test.js.map +1 -1
  466. package/dist/vite/create-pagefind-index.d.ts +4 -0
  467. package/dist/vite/create-pagefind-index.js +12 -0
  468. package/dist/vite/create-pagefind-index.js.map +1 -0
  469. package/dist/vite/css/plugin.d.ts +1 -2
  470. package/dist/vite/css/plugin.js +3 -2
  471. package/dist/vite/css/plugin.js.map +1 -1
  472. package/dist/vite/dev-server.d.ts +0 -1
  473. package/dist/vite/dev-server.js +16 -15
  474. package/dist/vite/dev-server.js.map +1 -1
  475. package/dist/vite/html.d.ts +7 -3
  476. package/dist/vite/html.js +15 -9
  477. package/dist/vite/html.js.map +1 -1
  478. package/dist/vite/plugin-api-keys.d.ts +1 -2
  479. package/dist/vite/plugin-api-keys.js +9 -3
  480. package/dist/vite/plugin-api-keys.js.map +1 -1
  481. package/dist/vite/plugin-api.d.ts +1 -2
  482. package/dist/vite/plugin-api.js +74 -123
  483. package/dist/vite/plugin-api.js.map +1 -1
  484. package/dist/vite/plugin-auth.d.ts +1 -2
  485. package/dist/vite/plugin-auth.js +3 -2
  486. package/dist/vite/plugin-auth.js.map +1 -1
  487. package/dist/vite/plugin-component.d.ts +1 -2
  488. package/dist/vite/plugin-component.js +3 -2
  489. package/dist/vite/plugin-component.js.map +1 -1
  490. package/dist/vite/plugin-config-reload.d.ts +1 -2
  491. package/dist/vite/plugin-config-reload.js +23 -23
  492. package/dist/vite/plugin-config-reload.js.map +1 -1
  493. package/dist/vite/plugin-config.d.ts +1 -2
  494. package/dist/vite/plugin-config.js +4 -3
  495. package/dist/vite/plugin-config.js.map +1 -1
  496. package/dist/vite/plugin-configure-tailwind.d.ts +2 -0
  497. package/dist/vite/plugin-configure-tailwind.js +38 -0
  498. package/dist/vite/plugin-configure-tailwind.js.map +1 -0
  499. package/dist/vite/plugin-custom-pages.d.ts +1 -2
  500. package/dist/vite/plugin-custom-pages.js +3 -2
  501. package/dist/vite/plugin-custom-pages.js.map +1 -1
  502. package/dist/vite/plugin-docs.d.ts +2 -3
  503. package/dist/vite/plugin-docs.js +21 -3
  504. package/dist/vite/plugin-docs.js.map +1 -1
  505. package/dist/vite/plugin-frontmatter.d.ts +1 -2
  506. package/dist/vite/plugin-frontmatter.js +3 -2
  507. package/dist/vite/plugin-frontmatter.js.map +1 -1
  508. package/dist/vite/plugin-mdx.d.ts +1 -2
  509. package/dist/vite/plugin-mdx.js +7 -13
  510. package/dist/vite/plugin-mdx.js.map +1 -1
  511. package/dist/vite/plugin-redirect.d.ts +1 -2
  512. package/dist/vite/plugin-redirect.js +3 -2
  513. package/dist/vite/plugin-redirect.js.map +1 -1
  514. package/dist/vite/plugin-search.d.ts +1 -2
  515. package/dist/vite/plugin-search.js +3 -2
  516. package/dist/vite/plugin-search.js.map +1 -1
  517. package/dist/vite/plugin-shiki-register.d.ts +2 -0
  518. package/dist/vite/plugin-shiki-register.js +39 -0
  519. package/dist/vite/plugin-shiki-register.js.map +1 -0
  520. package/dist/vite/plugin-sidebar.d.ts +4 -3
  521. package/dist/vite/plugin-sidebar.js +12 -5
  522. package/dist/vite/plugin-sidebar.js.map +1 -1
  523. package/dist/vite/plugin-theme-css.d.ts +1 -2
  524. package/dist/vite/plugin-theme-css.js +20 -60
  525. package/dist/vite/plugin-theme-css.js.map +1 -1
  526. package/dist/vite/plugin.d.ts +1 -2
  527. package/dist/vite/plugin.js +23 -20
  528. package/dist/vite/plugin.js.map +1 -1
  529. package/dist/vite/prerender/FileWritingResponse.d.ts +9 -5
  530. package/dist/vite/prerender/FileWritingResponse.js +5 -5
  531. package/dist/vite/prerender/FileWritingResponse.js.map +1 -1
  532. package/dist/vite/prerender/InMemoryResponse.d.ts +16 -0
  533. package/dist/vite/prerender/InMemoryResponse.js +32 -0
  534. package/dist/vite/prerender/InMemoryResponse.js.map +1 -0
  535. package/dist/vite/prerender/PrerenderResponse.d.ts +10 -0
  536. package/dist/vite/prerender/PrerenderResponse.js +2 -0
  537. package/dist/vite/prerender/PrerenderResponse.js.map +1 -0
  538. package/dist/vite/prerender/prerender.d.ts +1 -0
  539. package/dist/vite/prerender/prerender.js +38 -13
  540. package/dist/vite/prerender/prerender.js.map +1 -1
  541. package/dist/vite/prerender/worker.js +41 -14
  542. package/dist/vite/prerender/worker.js.map +1 -1
  543. package/dist/vite/sitemap.d.ts +1 -1
  544. package/dist/zuplo/enrich-with-zuplo.d.ts +3 -3
  545. package/dist/zuplo/enrich-with-zuplo.js +18 -17
  546. package/dist/zuplo/enrich-with-zuplo.js.map +1 -1
  547. package/dist/zuplo/with-zuplo-processors.d.ts +2 -2
  548. package/dist/zuplo/with-zuplo-processors.js +7 -7
  549. package/dist/zuplo/with-zuplo-processors.js.map +1 -1
  550. package/dist/zuplo/with-zuplo.d.ts +5 -2
  551. package/dist/zuplo/with-zuplo.js +6 -5
  552. package/dist/zuplo/with-zuplo.js.map +1 -1
  553. package/lib/Button-u7M2QYds.js +51 -0
  554. package/lib/Button-u7M2QYds.js.map +1 -0
  555. package/lib/Callout-CtCQJ6Cc.js +230 -0
  556. package/lib/Callout-CtCQJ6Cc.js.map +1 -0
  557. package/lib/Card-DkH-AU1V.js +61 -0
  558. package/lib/Card-DkH-AU1V.js.map +1 -0
  559. package/lib/{CategoryHeading-DpB47wvk.js → CategoryHeading-BA7lKNWz.js} +3 -3
  560. package/lib/{CategoryHeading-DpB47wvk.js.map → CategoryHeading-BA7lKNWz.js.map} +1 -1
  561. package/lib/Dialog-irKZWXGg.js +99 -0
  562. package/lib/Dialog-irKZWXGg.js.map +1 -0
  563. package/lib/Drawer-DZ214i5V.js +1133 -0
  564. package/lib/Drawer-DZ214i5V.js.map +1 -0
  565. package/lib/Markdown-ms3FtIha.js +7694 -0
  566. package/lib/Markdown-ms3FtIha.js.map +1 -0
  567. package/lib/MdxPage-D6v_c0tx.js +84 -0
  568. package/lib/MdxPage-D6v_c0tx.js.map +1 -0
  569. package/lib/OasProvider-DCp8HxF4.js +33 -0
  570. package/lib/{OasProvider-BSuptFK-.js.map → OasProvider-DCp8HxF4.js.map} +1 -1
  571. package/lib/OperationList-Ct68OoIk.js +5145 -0
  572. package/lib/OperationList-Ct68OoIk.js.map +1 -0
  573. package/lib/Pagination-C-FbzRep.js +36 -0
  574. package/lib/Pagination-C-FbzRep.js.map +1 -0
  575. package/lib/RouteGuard-CIyGFkFD.js +55 -0
  576. package/lib/RouteGuard-CIyGFkFD.js.map +1 -0
  577. package/lib/SchemaList-_lITigpx.js +160 -0
  578. package/lib/SchemaList-_lITigpx.js.map +1 -0
  579. package/lib/SchemaView-Dbd9iTsb.js +375 -0
  580. package/lib/SchemaView-Dbd9iTsb.js.map +1 -0
  581. package/lib/SignUp-DWvtcgpY.js +63 -0
  582. package/lib/SignUp-DWvtcgpY.js.map +1 -0
  583. package/lib/Slot-CiKlwC-1.js +160 -0
  584. package/lib/Slot-CiKlwC-1.js.map +1 -0
  585. package/lib/Spinner-mNLZ6awP.js +7 -0
  586. package/lib/Spinner-mNLZ6awP.js.map +1 -0
  587. package/lib/SyntaxHighlight-DTgNHbGp.js +9107 -0
  588. package/lib/SyntaxHighlight-DTgNHbGp.js.map +1 -0
  589. package/lib/Toc-CBERuLsq.js +92 -0
  590. package/lib/Toc-CBERuLsq.js.map +1 -0
  591. package/lib/{chunk-IR6S3I6Y-D_3UmFIn.js → chunk-BAXFHI7N-C9WnHsLV.js} +620 -602
  592. package/lib/chunk-BAXFHI7N-C9WnHsLV.js.map +1 -0
  593. package/lib/{circular-v7K6lDDh.js → circular-Y7yjLNW1.js} +2997 -3477
  594. package/lib/circular-Y7yjLNW1.js.map +1 -0
  595. package/lib/{cn-qaFjX9_3.js → cn-BOFVZgHd.js} +1017 -552
  596. package/lib/cn-BOFVZgHd.js.map +1 -0
  597. package/lib/{createServer-DmusVVsi.js → createServer-CNtv3YKi.js} +4984 -5218
  598. package/lib/createServer-CNtv3YKi.js.map +1 -0
  599. package/lib/hook-BpiAQVtd.js +1446 -0
  600. package/lib/hook-BpiAQVtd.js.map +1 -0
  601. package/lib/{index-DwT-v3zK.js → index--oeBayMa.js} +2 -2
  602. package/lib/{index-DwT-v3zK.js.map → index--oeBayMa.js.map} +1 -1
  603. package/lib/{index-LNp6rxyU.js → index-BvvmIczU.js} +2 -2
  604. package/lib/{index-LNp6rxyU.js.map → index-BvvmIczU.js.map} +1 -1
  605. package/lib/{index-CPNSgwSb.js → index-C1S4w-gl.js} +5 -5
  606. package/lib/{index-CPNSgwSb.js.map → index-C1S4w-gl.js.map} +1 -1
  607. package/lib/index-C_9WfVu2.js +3268 -0
  608. package/lib/index-C_9WfVu2.js.map +1 -0
  609. package/lib/index-CrcNWbel.js +316 -0
  610. package/lib/index-CrcNWbel.js.map +1 -0
  611. package/lib/index-PL1g52PU.js +4977 -0
  612. package/lib/index-PL1g52PU.js.map +1 -0
  613. package/lib/{index-Dl3Yl0yb.js → index-zddirpDj.js} +621 -636
  614. package/lib/index-zddirpDj.js.map +1 -0
  615. package/lib/index.esm-BFcSKCe-.js +683 -0
  616. package/lib/{index.esm-CQHE3GEU.js.map → index.esm-BFcSKCe-.js.map} +1 -1
  617. package/lib/index.esm-DSfX_eMP.js +1216 -0
  618. package/lib/index.esm-DSfX_eMP.js.map +1 -0
  619. package/lib/invariant-DAFpPywt.js +48 -0
  620. package/lib/{invariant-Caa8-XvF.js.map → invariant-DAFpPywt.js.map} +1 -1
  621. package/lib/jsx-runtime-C5mzlN2N.js +285 -0
  622. package/lib/jsx-runtime-C5mzlN2N.js.map +1 -0
  623. package/lib/mutation-CJrIFMgY.js +196 -0
  624. package/lib/mutation-CJrIFMgY.js.map +1 -0
  625. package/lib/{post-processors → processors}/removeExtensions.js +1 -1
  626. package/lib/processors/removeExtensions.js.map +1 -0
  627. package/lib/processors/removeParameters.js +47 -0
  628. package/lib/processors/removeParameters.js.map +1 -0
  629. package/lib/processors/removePaths.js +28 -0
  630. package/lib/processors/removePaths.js.map +1 -0
  631. package/lib/processors/traverse.js +17 -0
  632. package/lib/processors/traverse.js.map +1 -0
  633. package/lib/ui/Accordion.js +2 -2
  634. package/lib/ui/ActionButton.js +11 -10
  635. package/lib/ui/ActionButton.js.map +1 -1
  636. package/lib/ui/Alert.js +3 -3
  637. package/lib/ui/AlertDialog.js +2 -2
  638. package/lib/ui/Badge.js +4 -4
  639. package/lib/ui/Badge.js.map +1 -1
  640. package/lib/ui/Breadcrumb.js +2 -2
  641. package/lib/ui/Button.js +22 -19
  642. package/lib/ui/Button.js.map +1 -1
  643. package/lib/ui/Callout.js +41 -22
  644. package/lib/ui/Callout.js.map +1 -1
  645. package/lib/ui/Card.js +9 -9
  646. package/lib/ui/Card.js.map +1 -1
  647. package/lib/ui/Carousel.js +348 -348
  648. package/lib/ui/Carousel.js.map +1 -1
  649. package/lib/ui/Checkbox.js +16 -26
  650. package/lib/ui/Checkbox.js.map +1 -1
  651. package/lib/ui/CodeBlock.js +83 -0
  652. package/lib/ui/CodeBlock.js.map +1 -0
  653. package/lib/ui/Command.js +58 -58
  654. package/lib/ui/Command.js.map +1 -1
  655. package/lib/ui/Dialog.js +3 -3
  656. package/lib/ui/Dialog.js.map +1 -1
  657. package/lib/ui/Drawer.js +14 -1129
  658. package/lib/ui/Drawer.js.map +1 -1
  659. package/lib/ui/DropdownMenu.js +35 -35
  660. package/lib/ui/DropdownMenu.js.map +1 -1
  661. package/lib/ui/Form.js +3 -3
  662. package/lib/ui/HoverCard.js +6 -6
  663. package/lib/ui/HoverCard.js.map +1 -1
  664. package/lib/ui/Input.js +3 -3
  665. package/lib/ui/Input.js.map +1 -1
  666. package/lib/ui/Label.js +3 -3
  667. package/lib/ui/Pagination.js +2 -2
  668. package/lib/ui/Popover.js +3 -3
  669. package/lib/ui/Popover.js.map +1 -1
  670. package/lib/ui/Progress.js +2 -2
  671. package/lib/ui/RadioGroup.js +11 -11
  672. package/lib/ui/RadioGroup.js.map +1 -1
  673. package/lib/ui/ScrollArea.js +2 -2
  674. package/lib/ui/Select.js +32 -32
  675. package/lib/ui/Select.js.map +1 -1
  676. package/lib/ui/Skeleton.js +2 -2
  677. package/lib/ui/Slider.js +6 -6
  678. package/lib/ui/Slider.js.map +1 -1
  679. package/lib/ui/Stepper.js +1 -1
  680. package/lib/ui/Stepper.js.map +1 -1
  681. package/lib/ui/Switch.js +6 -6
  682. package/lib/ui/Switch.js.map +1 -1
  683. package/lib/ui/SyntaxHighlight.js +7 -2902
  684. package/lib/ui/SyntaxHighlight.js.map +1 -1
  685. package/lib/ui/Tabs.js +17 -17
  686. package/lib/ui/Tabs.js.map +1 -1
  687. package/lib/ui/Textarea.js +6 -6
  688. package/lib/ui/Textarea.js.map +1 -1
  689. package/lib/ui/Toggle.js +8 -8
  690. package/lib/ui/Toggle.js.map +1 -1
  691. package/lib/ui/ToggleGroup.js +2 -2
  692. package/lib/ui/Tooltip.js +2 -2
  693. package/lib/ui/util.js +1 -1
  694. package/lib/{useExposedProps-RIvey2Oy.js → useExposedProps-DG8J6ewJ.js} +2 -2
  695. package/lib/useExposedProps-DG8J6ewJ.js.map +1 -0
  696. package/lib/useLatest-hmRS46UF.js +11 -0
  697. package/lib/useLatest-hmRS46UF.js.map +1 -0
  698. package/lib/useMutation-B2LNwShM.js +97 -0
  699. package/lib/useMutation-B2LNwShM.js.map +1 -0
  700. package/lib/zudoku.auth-auth0.js +28 -31
  701. package/lib/zudoku.auth-auth0.js.map +1 -1
  702. package/lib/zudoku.auth-clerk.js +107 -78
  703. package/lib/zudoku.auth-clerk.js.map +1 -1
  704. package/lib/zudoku.auth-openid.js +511 -478
  705. package/lib/zudoku.auth-openid.js.map +1 -1
  706. package/lib/zudoku.components.js +34 -1395
  707. package/lib/zudoku.components.js.map +1 -1
  708. package/lib/zudoku.hooks.js +2 -2
  709. package/lib/zudoku.icons.js +1 -1
  710. package/lib/zudoku.plugin-api-catalog.js +95 -99
  711. package/lib/zudoku.plugin-api-catalog.js.map +1 -1
  712. package/lib/zudoku.plugin-api-keys.js +5022 -214
  713. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  714. package/lib/zudoku.plugin-custom-pages.js +4 -4
  715. package/lib/zudoku.plugin-custom-pages.js.map +1 -1
  716. package/lib/zudoku.plugin-markdown.js +25 -28
  717. package/lib/zudoku.plugin-markdown.js.map +1 -1
  718. package/lib/zudoku.plugin-openapi.js +7 -8
  719. package/lib/zudoku.plugin-openapi.js.map +1 -1
  720. package/lib/zudoku.plugin-redirect.js +1 -1
  721. package/lib/zudoku.plugin-redirect.js.map +1 -1
  722. package/lib/zudoku.plugin-search-inkeep.js +26 -27
  723. package/lib/zudoku.plugin-search-inkeep.js.map +1 -1
  724. package/lib/zudoku.plugin-search-pagefind.js +230 -0
  725. package/lib/zudoku.plugin-search-pagefind.js.map +1 -0
  726. package/lib/zudoku.plugins.js +7 -6
  727. package/lib/zudoku.plugins.js.map +1 -1
  728. package/package.json +101 -83
  729. package/src/app/ZuploBuildConfig.ts +33 -0
  730. package/src/app/defaultTheme.css +54 -0
  731. package/src/app/demo.html +1 -1
  732. package/src/app/entry.client.tsx +43 -0
  733. package/src/app/entry.server.tsx +23 -13
  734. package/src/app/env.ts +35 -0
  735. package/src/app/font.geist.css +73 -0
  736. package/src/app/main.css +197 -143
  737. package/src/app/main.tsx +30 -29
  738. package/src/lib/authentication/AuthenticationPlugin.tsx +18 -4
  739. package/src/lib/authentication/authentication.ts +4 -5
  740. package/src/lib/authentication/components/CallbackHandler.tsx +11 -1
  741. package/src/lib/authentication/components/SignIn.tsx +35 -2
  742. package/src/lib/authentication/components/SignUp.tsx +35 -1
  743. package/src/lib/authentication/hook.ts +12 -1
  744. package/src/lib/authentication/providers/auth0.tsx +9 -3
  745. package/src/lib/authentication/providers/clerk.tsx +105 -57
  746. package/src/lib/authentication/providers/openid.tsx +52 -53
  747. package/src/lib/authentication/providers/supabase.tsx +157 -0
  748. package/src/lib/authentication/state.ts +1 -35
  749. package/src/lib/components/AnchorLink.tsx +9 -7
  750. package/src/lib/components/Autocomplete.tsx +1 -1
  751. package/src/lib/components/Banner.tsx +2 -2
  752. package/src/lib/components/Bootstrap.tsx +13 -6
  753. package/src/lib/components/BuildCheck.tsx +75 -0
  754. package/src/lib/components/ErrorPage.tsx +1 -1
  755. package/src/lib/components/Footer.tsx +136 -0
  756. package/src/lib/components/Header.tsx +40 -36
  757. package/src/lib/components/Heading.tsx +11 -7
  758. package/src/lib/components/InlineCode.tsx +13 -16
  759. package/src/lib/components/Layout.tsx +30 -72
  760. package/src/lib/components/Main.tsx +51 -0
  761. package/src/lib/components/Markdown.tsx +29 -24
  762. package/src/lib/components/MobileTopNavigation.tsx +30 -20
  763. package/src/lib/components/NotFoundPage.tsx +1 -1
  764. package/src/lib/components/Pagination.tsx +44 -0
  765. package/src/lib/components/Search.tsx +15 -4
  766. package/src/lib/components/Slot.test.tsx +465 -0
  767. package/src/lib/components/Slot.tsx +64 -0
  768. package/src/lib/components/TopNavigation.tsx +40 -29
  769. package/src/lib/components/Zudoku.tsx +19 -12
  770. package/src/lib/components/cache.ts +8 -0
  771. package/src/lib/components/context/BypassProtectedRoutesContext.ts +3 -0
  772. package/src/lib/components/context/SlotProvider.tsx +149 -0
  773. package/src/lib/components/context/ViewportAnchorContext.tsx +14 -30
  774. package/src/lib/components/context/ZudokuContext.ts +14 -6
  775. package/src/lib/components/context/ZudokuProvider.tsx +2 -1
  776. package/src/lib/components/index.ts +2 -0
  777. package/src/lib/components/navigation/PoweredByZudoku.tsx +33 -0
  778. package/src/lib/components/navigation/Sidebar.tsx +38 -45
  779. package/src/lib/components/navigation/SidebarBadge.tsx +1 -1
  780. package/src/lib/components/navigation/SidebarCategory.tsx +24 -17
  781. package/src/lib/components/navigation/SidebarItem.tsx +21 -30
  782. package/src/lib/components/navigation/SidebarWrapper.tsx +42 -23
  783. package/src/lib/{plugins/markdown → components/navigation}/Toc.tsx +9 -18
  784. package/src/lib/components/navigation/ZudokuLogo.tsx +25 -0
  785. package/src/lib/components/navigation/ZuploLogo.tsx +14 -0
  786. package/src/lib/components/navigation/utils.ts +12 -0
  787. package/src/lib/core/RouteGuard.tsx +27 -4
  788. package/src/lib/core/ZudokuContext.ts +57 -19
  789. package/src/lib/core/plugins.ts +18 -10
  790. package/src/lib/errors/ErrorAlert.tsx +24 -17
  791. package/src/lib/hooks/useEvent.test.tsx +1 -1
  792. package/src/lib/oas/graphql/circular.ts +27 -19
  793. package/src/lib/oas/graphql/index.ts +202 -54
  794. package/src/lib/oas/parser/dereference/index.ts +2 -0
  795. package/src/lib/oas/parser/index.ts +14 -30
  796. package/src/lib/oas/parser/upgrade/index.ts +98 -28
  797. package/src/lib/plugins/api-catalog/Catalog.tsx +1 -4
  798. package/src/lib/plugins/api-catalog/index.tsx +40 -35
  799. package/src/lib/plugins/api-keys/CreateApiKey.tsx +54 -42
  800. package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +292 -112
  801. package/src/lib/plugins/api-keys/index.tsx +101 -55
  802. package/src/lib/plugins/custom-pages/index.tsx +1 -1
  803. package/src/lib/plugins/markdown/MdxPage.tsx +11 -47
  804. package/src/lib/plugins/markdown/index.tsx +2 -2
  805. package/src/lib/plugins/markdown/resolver.ts +4 -2
  806. package/src/lib/plugins/openapi/CollapsibleCode.tsx +8 -5
  807. package/src/lib/plugins/openapi/ColorizedParam.tsx +3 -3
  808. package/src/lib/plugins/openapi/Endpoint.tsx +1 -1
  809. package/src/lib/plugins/openapi/OperationList.tsx +177 -87
  810. package/src/lib/plugins/openapi/OperationListItem.tsx +102 -115
  811. package/src/lib/plugins/openapi/ParamInfos.tsx +90 -0
  812. package/src/lib/plugins/openapi/ParameterListItem.tsx +65 -23
  813. package/src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx +14 -1
  814. package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +5 -16
  815. package/src/lib/plugins/openapi/SchemaList.tsx +163 -0
  816. package/src/lib/plugins/openapi/Sidecar.tsx +83 -14
  817. package/src/lib/plugins/openapi/SidecarExamples.tsx +8 -2
  818. package/src/lib/plugins/openapi/SimpleSelect.tsx +1 -1
  819. package/src/lib/plugins/openapi/client/GraphQLClient.tsx +1 -1
  820. package/src/lib/plugins/openapi/client/useCreateQuery.ts +34 -7
  821. package/src/lib/plugins/openapi/components/ConstValue.tsx +24 -0
  822. package/src/lib/plugins/openapi/components/EnumValues.tsx +58 -0
  823. package/src/lib/plugins/openapi/components/ResponseContent.tsx +104 -0
  824. package/src/lib/plugins/openapi/components/SelectOnClick.tsx +29 -0
  825. package/src/lib/plugins/openapi/graphql/gql.ts +29 -20
  826. package/src/lib/plugins/openapi/graphql/graphql.ts +172 -86
  827. package/src/lib/plugins/openapi/index.tsx +56 -87
  828. package/src/lib/plugins/openapi/interfaces.ts +45 -15
  829. package/src/lib/plugins/openapi/playground/ExamplesDropdown.tsx +30 -32
  830. package/src/lib/plugins/openapi/playground/Headers.tsx +2 -3
  831. package/src/lib/plugins/openapi/playground/IdentityDialog.tsx +74 -0
  832. package/src/lib/plugins/openapi/playground/IdentitySelector.tsx +41 -0
  833. package/src/lib/plugins/openapi/playground/Playground.tsx +186 -93
  834. package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +1 -1
  835. package/src/lib/plugins/openapi/playground/QueryParams.tsx +4 -5
  836. package/src/lib/plugins/openapi/playground/RequestLoginDialog.tsx +51 -0
  837. package/src/lib/plugins/openapi/playground/SubmitButton.tsx +25 -30
  838. package/src/lib/plugins/openapi/playground/rememberedIdentity.ts +26 -0
  839. package/src/lib/plugins/openapi/playground/result-panel/RequestTab.tsx +2 -2
  840. package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +25 -5
  841. package/src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx +67 -45
  842. package/src/lib/plugins/openapi/{post-processors → processors}/removeExtensions.test.ts +29 -9
  843. package/src/lib/plugins/openapi/{post-processors → processors}/removeExtensions.ts +5 -3
  844. package/src/lib/plugins/openapi/{post-processors → processors}/removeParameters.test.ts +67 -33
  845. package/src/lib/plugins/openapi/{post-processors → processors}/removeParameters.ts +5 -3
  846. package/src/lib/plugins/openapi/processors/removePaths.test.ts +167 -0
  847. package/src/lib/plugins/openapi/{post-processors → processors}/removePaths.ts +5 -3
  848. package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.tsx +1 -8
  849. package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.tsx +3 -0
  850. package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.tsx +6 -3
  851. package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +39 -0
  852. package/src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx +69 -60
  853. package/src/lib/plugins/openapi/schema/SchemaView.tsx +101 -140
  854. package/src/lib/plugins/openapi/schema/utils.ts +29 -6
  855. package/src/lib/plugins/openapi/state.ts +36 -0
  856. package/src/lib/plugins/openapi/util/createSidebarCategory.tsx +5 -7
  857. package/src/lib/plugins/openapi/util/generateSchemaExample.ts +51 -1
  858. package/src/lib/plugins/openapi/util/getRoutes.tsx +89 -14
  859. package/src/lib/plugins/redirect/index.tsx +1 -1
  860. package/src/lib/plugins/search-pagefind/PagefindSearch.tsx +39 -14
  861. package/src/lib/plugins/search-pagefind/ResultList.tsx +60 -53
  862. package/src/lib/plugins/search-pagefind/get-results.tsx +31 -10
  863. package/src/lib/shiki.ts +133 -0
  864. package/src/lib/ui/Badge.tsx +2 -2
  865. package/src/lib/ui/Button.tsx +12 -7
  866. package/src/lib/ui/Callout.tsx +29 -10
  867. package/src/lib/ui/Card.tsx +1 -1
  868. package/src/lib/ui/Checkbox.tsx +8 -24
  869. package/src/lib/ui/CodeBlock.tsx +102 -0
  870. package/src/lib/ui/Command.tsx +5 -5
  871. package/src/lib/ui/Dialog.tsx +1 -1
  872. package/src/lib/ui/DropdownMenu.tsx +4 -4
  873. package/src/lib/ui/HoverCard.tsx +1 -1
  874. package/src/lib/ui/Input.tsx +1 -1
  875. package/src/lib/ui/Popover.tsx +1 -1
  876. package/src/lib/ui/RadioGroup.tsx +1 -1
  877. package/src/lib/ui/Select.tsx +3 -3
  878. package/src/lib/ui/Slider.tsx +1 -1
  879. package/src/lib/ui/Stepper.tsx +1 -1
  880. package/src/lib/ui/Switch.tsx +1 -1
  881. package/src/lib/ui/SyntaxHighlight.tsx +21 -180
  882. package/src/lib/ui/Tabs.tsx +2 -2
  883. package/src/lib/ui/Textarea.tsx +1 -1
  884. package/src/lib/ui/Toggle.tsx +1 -1
  885. package/src/lib/util/MdxComponents.tsx +31 -16
  886. package/src/lib/util/detectOS.ts +9 -0
  887. package/src/lib/util/ensureArray.ts +3 -0
  888. package/src/lib/util/joinPath.tsx +3 -0
  889. package/src/lib/util/traverse.ts +12 -13
  890. package/src/lib/util/types.ts +7 -0
  891. package/src/lib/util/url.test.ts +51 -0
  892. package/src/lib/util/url.ts +18 -0
  893. package/src/lib/util/useExposedProps.tsx +12 -1
  894. package/src/lib/util/useOnScreen.ts +6 -4
  895. package/src/lib/util/useScrollToAnchor.ts +22 -12
  896. package/src/shiki/langs/abap.js +1 -0
  897. package/src/shiki/langs/actionscript-3.js +1 -0
  898. package/src/shiki/langs/ada.js +1 -0
  899. package/src/shiki/langs/angular-expression.js +1 -0
  900. package/src/shiki/langs/angular-html.js +1 -0
  901. package/src/shiki/langs/angular-inline-style.js +1 -0
  902. package/src/shiki/langs/angular-inline-template.js +1 -0
  903. package/src/shiki/langs/angular-let-declaration.js +1 -0
  904. package/src/shiki/langs/angular-template-blocks.js +1 -0
  905. package/src/shiki/langs/angular-template.js +1 -0
  906. package/src/shiki/langs/angular-ts.js +1 -0
  907. package/src/shiki/langs/apache.js +1 -0
  908. package/src/shiki/langs/apex.js +1 -0
  909. package/src/shiki/langs/apl.js +1 -0
  910. package/src/shiki/langs/applescript.js +1 -0
  911. package/src/shiki/langs/ara.js +1 -0
  912. package/src/shiki/langs/asciidoc.js +1 -0
  913. package/src/shiki/langs/asm.js +1 -0
  914. package/src/shiki/langs/astro.js +1 -0
  915. package/src/shiki/langs/awk.js +1 -0
  916. package/src/shiki/langs/ballerina.js +1 -0
  917. package/src/shiki/langs/bat.js +1 -0
  918. package/src/shiki/langs/beancount.js +1 -0
  919. package/src/shiki/langs/berry.js +1 -0
  920. package/src/shiki/langs/bibtex.js +1 -0
  921. package/src/shiki/langs/bicep.js +1 -0
  922. package/src/shiki/langs/blade.js +1 -0
  923. package/src/shiki/langs/bsl.js +1 -0
  924. package/src/shiki/langs/c.js +1 -0
  925. package/src/shiki/langs/cadence.js +1 -0
  926. package/src/shiki/langs/cairo.js +1 -0
  927. package/src/shiki/langs/clarity.js +1 -0
  928. package/src/shiki/langs/clojure.js +1 -0
  929. package/src/shiki/langs/cmake.js +1 -0
  930. package/src/shiki/langs/cobol.js +1 -0
  931. package/src/shiki/langs/codeowners.js +1 -0
  932. package/src/shiki/langs/codeql.js +1 -0
  933. package/src/shiki/langs/coffee.js +1 -0
  934. package/src/shiki/langs/common-lisp.js +1 -0
  935. package/src/shiki/langs/coq.js +1 -0
  936. package/src/shiki/langs/cpp-macro.js +1 -0
  937. package/src/shiki/langs/cpp.js +1 -0
  938. package/src/shiki/langs/crystal.js +1 -0
  939. package/src/shiki/langs/csharp.js +1 -0
  940. package/src/shiki/langs/css.js +1 -0
  941. package/src/shiki/langs/csv.js +1 -0
  942. package/src/shiki/langs/cue.js +1 -0
  943. package/src/shiki/langs/cypher.js +1 -0
  944. package/src/shiki/langs/d.js +1 -0
  945. package/src/shiki/langs/dart.js +1 -0
  946. package/src/shiki/langs/dax.js +1 -0
  947. package/src/shiki/langs/desktop.js +1 -0
  948. package/src/shiki/langs/diff.js +1 -0
  949. package/src/shiki/langs/docker.js +1 -0
  950. package/src/shiki/langs/dotenv.js +1 -0
  951. package/src/shiki/langs/dream-maker.js +1 -0
  952. package/src/shiki/langs/edge.js +1 -0
  953. package/src/shiki/langs/elixir.js +1 -0
  954. package/src/shiki/langs/elm.js +1 -0
  955. package/src/shiki/langs/emacs-lisp.js +1 -0
  956. package/src/shiki/langs/erb.js +1 -0
  957. package/src/shiki/langs/erlang.js +1 -0
  958. package/src/shiki/langs/es-tag-css.js +1 -0
  959. package/src/shiki/langs/es-tag-glsl.js +1 -0
  960. package/src/shiki/langs/es-tag-html.js +1 -0
  961. package/src/shiki/langs/es-tag-sql.js +1 -0
  962. package/src/shiki/langs/es-tag-xml.js +1 -0
  963. package/src/shiki/langs/fennel.js +1 -0
  964. package/src/shiki/langs/fish.js +1 -0
  965. package/src/shiki/langs/fluent.js +1 -0
  966. package/src/shiki/langs/fortran-fixed-form.js +1 -0
  967. package/src/shiki/langs/fortran-free-form.js +1 -0
  968. package/src/shiki/langs/fsharp.js +1 -0
  969. package/src/shiki/langs/gdresource.js +1 -0
  970. package/src/shiki/langs/gdscript.js +1 -0
  971. package/src/shiki/langs/gdshader.js +1 -0
  972. package/src/shiki/langs/genie.js +1 -0
  973. package/src/shiki/langs/gherkin.js +1 -0
  974. package/src/shiki/langs/git-commit.js +1 -0
  975. package/src/shiki/langs/git-rebase.js +1 -0
  976. package/src/shiki/langs/gleam.js +1 -0
  977. package/src/shiki/langs/glimmer-js.js +1 -0
  978. package/src/shiki/langs/glimmer-ts.js +1 -0
  979. package/src/shiki/langs/glsl.js +1 -0
  980. package/src/shiki/langs/gnuplot.js +1 -0
  981. package/src/shiki/langs/go.js +1 -0
  982. package/src/shiki/langs/graphql.js +1 -0
  983. package/src/shiki/langs/groovy.js +1 -0
  984. package/src/shiki/langs/hack.js +1 -0
  985. package/src/shiki/langs/haml.js +1 -0
  986. package/src/shiki/langs/handlebars.js +1 -0
  987. package/src/shiki/langs/haskell.js +1 -0
  988. package/src/shiki/langs/haxe.js +1 -0
  989. package/src/shiki/langs/hcl.js +1 -0
  990. package/src/shiki/langs/hjson.js +1 -0
  991. package/src/shiki/langs/hlsl.js +1 -0
  992. package/src/shiki/langs/html-derivative.js +1 -0
  993. package/src/shiki/langs/html.js +1 -0
  994. package/src/shiki/langs/http.js +1 -0
  995. package/src/shiki/langs/hxml.js +1 -0
  996. package/src/shiki/langs/hy.js +1 -0
  997. package/src/shiki/langs/imba.js +1 -0
  998. package/src/shiki/langs/ini.js +1 -0
  999. package/src/shiki/langs/java.js +1 -0
  1000. package/src/shiki/langs/javascript.js +1 -0
  1001. package/src/shiki/langs/jinja-html.js +1 -0
  1002. package/src/shiki/langs/jinja.js +1 -0
  1003. package/src/shiki/langs/jison.js +1 -0
  1004. package/src/shiki/langs/json.js +1 -0
  1005. package/src/shiki/langs/json5.js +1 -0
  1006. package/src/shiki/langs/jsonc.js +1 -0
  1007. package/src/shiki/langs/jsonl.js +1 -0
  1008. package/src/shiki/langs/jsonnet.js +1 -0
  1009. package/src/shiki/langs/jssm.js +1 -0
  1010. package/src/shiki/langs/jsx.js +1 -0
  1011. package/src/shiki/langs/julia.js +1 -0
  1012. package/src/shiki/langs/kotlin.js +1 -0
  1013. package/src/shiki/langs/kusto.js +1 -0
  1014. package/src/shiki/langs/latex.js +1 -0
  1015. package/src/shiki/langs/lean.js +1 -0
  1016. package/src/shiki/langs/less.js +1 -0
  1017. package/src/shiki/langs/liquid.js +1 -0
  1018. package/src/shiki/langs/llvm.js +1 -0
  1019. package/src/shiki/langs/log.js +1 -0
  1020. package/src/shiki/langs/logo.js +1 -0
  1021. package/src/shiki/langs/lua.js +1 -0
  1022. package/src/shiki/langs/luau.js +1 -0
  1023. package/src/shiki/langs/make.js +1 -0
  1024. package/src/shiki/langs/markdown-vue.js +1 -0
  1025. package/src/shiki/langs/markdown.js +1 -0
  1026. package/src/shiki/langs/marko.js +1 -0
  1027. package/src/shiki/langs/matlab.js +1 -0
  1028. package/src/shiki/langs/mdc.js +1 -0
  1029. package/src/shiki/langs/mdx.js +1 -0
  1030. package/src/shiki/langs/mermaid.js +1 -0
  1031. package/src/shiki/langs/mipsasm.js +1 -0
  1032. package/src/shiki/langs/mojo.js +1 -0
  1033. package/src/shiki/langs/move.js +1 -0
  1034. package/src/shiki/langs/narrat.js +1 -0
  1035. package/src/shiki/langs/nextflow.js +1 -0
  1036. package/src/shiki/langs/nginx.js +1 -0
  1037. package/src/shiki/langs/nim.js +1 -0
  1038. package/src/shiki/langs/nix.js +1 -0
  1039. package/src/shiki/langs/nushell.js +1 -0
  1040. package/src/shiki/langs/objective-c.js +1 -0
  1041. package/src/shiki/langs/objective-cpp.js +1 -0
  1042. package/src/shiki/langs/ocaml.js +1 -0
  1043. package/src/shiki/langs/pascal.js +1 -0
  1044. package/src/shiki/langs/perl.js +1 -0
  1045. package/src/shiki/langs/php.js +1 -0
  1046. package/src/shiki/langs/plsql.js +1 -0
  1047. package/src/shiki/langs/po.js +1 -0
  1048. package/src/shiki/langs/polar.js +1 -0
  1049. package/src/shiki/langs/postcss.js +1 -0
  1050. package/src/shiki/langs/powerquery.js +1 -0
  1051. package/src/shiki/langs/powershell.js +1 -0
  1052. package/src/shiki/langs/prisma.js +1 -0
  1053. package/src/shiki/langs/prolog.js +1 -0
  1054. package/src/shiki/langs/proto.js +1 -0
  1055. package/src/shiki/langs/pug.js +1 -0
  1056. package/src/shiki/langs/puppet.js +1 -0
  1057. package/src/shiki/langs/purescript.js +1 -0
  1058. package/src/shiki/langs/python.js +1 -0
  1059. package/src/shiki/langs/qml.js +1 -0
  1060. package/src/shiki/langs/qmldir.js +1 -0
  1061. package/src/shiki/langs/qss.js +1 -0
  1062. package/src/shiki/langs/r.js +1 -0
  1063. package/src/shiki/langs/racket.js +1 -0
  1064. package/src/shiki/langs/raku.js +1 -0
  1065. package/src/shiki/langs/razor.js +1 -0
  1066. package/src/shiki/langs/reg.js +1 -0
  1067. package/src/shiki/langs/regexp.js +1 -0
  1068. package/src/shiki/langs/rel.js +1 -0
  1069. package/src/shiki/langs/riscv.js +1 -0
  1070. package/src/shiki/langs/rst.js +1 -0
  1071. package/src/shiki/langs/ruby.js +1 -0
  1072. package/src/shiki/langs/rust.js +1 -0
  1073. package/src/shiki/langs/sas.js +1 -0
  1074. package/src/shiki/langs/sass.js +1 -0
  1075. package/src/shiki/langs/scala.js +1 -0
  1076. package/src/shiki/langs/scheme.js +1 -0
  1077. package/src/shiki/langs/scss.js +1 -0
  1078. package/src/shiki/langs/sdbl.js +1 -0
  1079. package/src/shiki/langs/shaderlab.js +1 -0
  1080. package/src/shiki/langs/shellscript.js +1 -0
  1081. package/src/shiki/langs/shellsession.js +1 -0
  1082. package/src/shiki/langs/smalltalk.js +1 -0
  1083. package/src/shiki/langs/solidity.js +1 -0
  1084. package/src/shiki/langs/soy.js +1 -0
  1085. package/src/shiki/langs/sparql.js +1 -0
  1086. package/src/shiki/langs/splunk.js +1 -0
  1087. package/src/shiki/langs/sql.js +1 -0
  1088. package/src/shiki/langs/ssh-config.js +1 -0
  1089. package/src/shiki/langs/stata.js +1 -0
  1090. package/src/shiki/langs/stylus.js +1 -0
  1091. package/src/shiki/langs/svelte.js +1 -0
  1092. package/src/shiki/langs/swift.js +1 -0
  1093. package/src/shiki/langs/system-verilog.js +1 -0
  1094. package/src/shiki/langs/systemd.js +1 -0
  1095. package/src/shiki/langs/talonscript.js +1 -0
  1096. package/src/shiki/langs/tasl.js +1 -0
  1097. package/src/shiki/langs/tcl.js +1 -0
  1098. package/src/shiki/langs/templ.js +1 -0
  1099. package/src/shiki/langs/terraform.js +1 -0
  1100. package/src/shiki/langs/tex.js +1 -0
  1101. package/src/shiki/langs/toml.js +1 -0
  1102. package/src/shiki/langs/ts-tags.js +1 -0
  1103. package/src/shiki/langs/tsv.js +1 -0
  1104. package/src/shiki/langs/tsx.js +1 -0
  1105. package/src/shiki/langs/turtle.js +1 -0
  1106. package/src/shiki/langs/twig.js +1 -0
  1107. package/src/shiki/langs/typescript.js +1 -0
  1108. package/src/shiki/langs/typespec.js +1 -0
  1109. package/src/shiki/langs/typst.js +1 -0
  1110. package/src/shiki/langs/v.js +1 -0
  1111. package/src/shiki/langs/vala.js +1 -0
  1112. package/src/shiki/langs/vb.js +1 -0
  1113. package/src/shiki/langs/verilog.js +1 -0
  1114. package/src/shiki/langs/vhdl.js +1 -0
  1115. package/src/shiki/langs/viml.js +1 -0
  1116. package/src/shiki/langs/vue-directives.js +1 -0
  1117. package/src/shiki/langs/vue-html.js +1 -0
  1118. package/src/shiki/langs/vue-interpolations.js +1 -0
  1119. package/src/shiki/langs/vue-sfc-style-variable-injection.js +1 -0
  1120. package/src/shiki/langs/vue.js +1 -0
  1121. package/src/shiki/langs/vyper.js +1 -0
  1122. package/src/shiki/langs/wasm.js +1 -0
  1123. package/src/shiki/langs/wenyan.js +1 -0
  1124. package/src/shiki/langs/wgsl.js +1 -0
  1125. package/src/shiki/langs/wikitext.js +1 -0
  1126. package/src/shiki/langs/wit.js +1 -0
  1127. package/src/shiki/langs/wolfram.js +1 -0
  1128. package/src/shiki/langs/xml.js +1 -0
  1129. package/src/shiki/langs/xsl.js +1 -0
  1130. package/src/shiki/langs/yaml.js +1 -0
  1131. package/src/shiki/langs/zenscript.js +1 -0
  1132. package/src/shiki/langs/zig.js +1 -0
  1133. package/src/shiki/themes/andromeeda.js +1 -0
  1134. package/src/shiki/themes/aurora-x.js +1 -0
  1135. package/src/shiki/themes/ayu-dark.js +1 -0
  1136. package/src/shiki/themes/catppuccin-frappe.js +1 -0
  1137. package/src/shiki/themes/catppuccin-latte.js +1 -0
  1138. package/src/shiki/themes/catppuccin-macchiato.js +1 -0
  1139. package/src/shiki/themes/catppuccin-mocha.js +1 -0
  1140. package/src/shiki/themes/dark-plus.js +1 -0
  1141. package/src/shiki/themes/dracula-soft.js +1 -0
  1142. package/src/shiki/themes/dracula.js +1 -0
  1143. package/src/shiki/themes/everforest-dark.js +1 -0
  1144. package/src/shiki/themes/everforest-light.js +1 -0
  1145. package/src/shiki/themes/github-dark-default.js +1 -0
  1146. package/src/shiki/themes/github-dark-dimmed.js +1 -0
  1147. package/src/shiki/themes/github-dark-high-contrast.js +1 -0
  1148. package/src/shiki/themes/github-dark.js +1 -0
  1149. package/src/shiki/themes/github-light-default.js +1 -0
  1150. package/src/shiki/themes/github-light-high-contrast.js +1 -0
  1151. package/src/shiki/themes/github-light.js +1 -0
  1152. package/src/shiki/themes/gruvbox-dark-hard.js +1 -0
  1153. package/src/shiki/themes/gruvbox-dark-medium.js +1 -0
  1154. package/src/shiki/themes/gruvbox-dark-soft.js +1 -0
  1155. package/src/shiki/themes/gruvbox-light-hard.js +1 -0
  1156. package/src/shiki/themes/gruvbox-light-medium.js +1 -0
  1157. package/src/shiki/themes/gruvbox-light-soft.js +1 -0
  1158. package/src/shiki/themes/houston.js +1 -0
  1159. package/src/shiki/themes/kanagawa-dragon.js +1 -0
  1160. package/src/shiki/themes/kanagawa-lotus.js +1 -0
  1161. package/src/shiki/themes/kanagawa-wave.js +1 -0
  1162. package/src/shiki/themes/laserwave.js +1 -0
  1163. package/src/shiki/themes/light-plus.js +1 -0
  1164. package/src/shiki/themes/material-theme-darker.js +1 -0
  1165. package/src/shiki/themes/material-theme-lighter.js +1 -0
  1166. package/src/shiki/themes/material-theme-ocean.js +1 -0
  1167. package/src/shiki/themes/material-theme-palenight.js +1 -0
  1168. package/src/shiki/themes/material-theme.js +1 -0
  1169. package/src/shiki/themes/min-dark.js +1 -0
  1170. package/src/shiki/themes/min-light.js +1 -0
  1171. package/src/shiki/themes/monokai.js +1 -0
  1172. package/src/shiki/themes/night-owl.js +1 -0
  1173. package/src/shiki/themes/nord.js +1 -0
  1174. package/src/shiki/themes/one-dark-pro.js +1 -0
  1175. package/src/shiki/themes/one-light.js +1 -0
  1176. package/src/shiki/themes/plastic.js +1 -0
  1177. package/src/shiki/themes/poimandres.js +1 -0
  1178. package/src/shiki/themes/red.js +1 -0
  1179. package/src/shiki/themes/rose-pine-dawn.js +1 -0
  1180. package/src/shiki/themes/rose-pine-moon.js +1 -0
  1181. package/src/shiki/themes/rose-pine.js +1 -0
  1182. package/src/shiki/themes/slack-dark.js +1 -0
  1183. package/src/shiki/themes/slack-ochin.js +1 -0
  1184. package/src/shiki/themes/snazzy-light.js +1 -0
  1185. package/src/shiki/themes/solarized-dark.js +1 -0
  1186. package/src/shiki/themes/solarized-light.js +1 -0
  1187. package/src/shiki/themes/synthwave-84.js +1 -0
  1188. package/src/shiki/themes/tokyo-night.js +1 -0
  1189. package/src/shiki/themes/vesper.js +1 -0
  1190. package/src/shiki/themes/vitesse-black.js +1 -0
  1191. package/src/shiki/themes/vitesse-dark.js +1 -0
  1192. package/src/shiki/themes/vitesse-light.js +1 -0
  1193. package/client.d.ts +0 -8
  1194. package/dist/app/tailwind.d.ts +0 -4
  1195. package/dist/app/tailwind.js +0 -83
  1196. package/dist/app/tailwind.js.map +0 -1
  1197. package/dist/config/common.d.ts +0 -11
  1198. package/dist/config/common.js +0 -2
  1199. package/dist/config/common.js.map +0 -1
  1200. package/dist/config/validators/common.d.ts +0 -5538
  1201. package/dist/config/validators/common.js +0 -331
  1202. package/dist/config/validators/common.js.map +0 -1
  1203. package/dist/lib/components/SlotletProvider.d.ts +0 -17
  1204. package/dist/lib/components/SlotletProvider.js +0 -18
  1205. package/dist/lib/components/SlotletProvider.js.map +0 -1
  1206. package/dist/lib/components/context/PluginSystem.js +0 -2
  1207. package/dist/lib/components/context/PluginSystem.js.map +0 -1
  1208. package/dist/lib/plugins/markdown/Toc.js.map +0 -1
  1209. package/dist/lib/plugins/openapi/post-processors/removeExtensions.d.ts +0 -7
  1210. package/dist/lib/plugins/openapi/post-processors/removeExtensions.js.map +0 -1
  1211. package/dist/lib/plugins/openapi/post-processors/removeExtensions.test.js.map +0 -1
  1212. package/dist/lib/plugins/openapi/post-processors/removeParameters.js.map +0 -1
  1213. package/dist/lib/plugins/openapi/post-processors/removeParameters.test.js.map +0 -1
  1214. package/dist/lib/plugins/openapi/post-processors/removePaths.js.map +0 -1
  1215. package/dist/lib/plugins/openapi/post-processors/removePaths.test.js +0 -104
  1216. package/dist/lib/plugins/openapi/post-processors/removePaths.test.js.map +0 -1
  1217. package/dist/lib/plugins/openapi/post-processors/traverse.js.map +0 -1
  1218. package/dist/vite/pagefind.d.ts +0 -4
  1219. package/dist/vite/pagefind.js +0 -15
  1220. package/dist/vite/pagefind.js.map +0 -1
  1221. package/dist/vite/plugin-docs.test.js +0 -22
  1222. package/dist/vite/plugin-docs.test.js.map +0 -1
  1223. package/dist/zuplo/env.d.ts +0 -7
  1224. package/dist/zuplo/env.js +0 -12
  1225. package/dist/zuplo/env.js.map +0 -1
  1226. package/lib/AuthenticationPlugin-CiO1FM6Q.js +0 -58
  1227. package/lib/AuthenticationPlugin-CiO1FM6Q.js.map +0 -1
  1228. package/lib/Dialog-DIKGQxQc.js +0 -83
  1229. package/lib/Dialog-DIKGQxQc.js.map +0 -1
  1230. package/lib/Markdown-DePfm7oQ.js +0 -15264
  1231. package/lib/Markdown-DePfm7oQ.js.map +0 -1
  1232. package/lib/MdxPage-BN6l6zXL.js +0 -201
  1233. package/lib/MdxPage-BN6l6zXL.js.map +0 -1
  1234. package/lib/OasProvider-BSuptFK-.js +0 -34
  1235. package/lib/OperationList-DOcfDmJP.js +0 -5217
  1236. package/lib/OperationList-DOcfDmJP.js.map +0 -1
  1237. package/lib/Select-Dqtcn53H.js +0 -223
  1238. package/lib/Select-Dqtcn53H.js.map +0 -1
  1239. package/lib/SlotletProvider-DdtIOUi6.js +0 -221
  1240. package/lib/SlotletProvider-DdtIOUi6.js.map +0 -1
  1241. package/lib/Spinner-1KrEmx1V.js +0 -51
  1242. package/lib/Spinner-1KrEmx1V.js.map +0 -1
  1243. package/lib/_commonjsHelpers-BkfeUUK-.js +0 -29
  1244. package/lib/_commonjsHelpers-BkfeUUK-.js.map +0 -1
  1245. package/lib/chunk-IR6S3I6Y-D_3UmFIn.js.map +0 -1
  1246. package/lib/circular-v7K6lDDh.js.map +0 -1
  1247. package/lib/cn-qaFjX9_3.js.map +0 -1
  1248. package/lib/context-DLCwaMXN.js +0 -22
  1249. package/lib/context-DLCwaMXN.js.map +0 -1
  1250. package/lib/createServer-DmusVVsi.js.map +0 -1
  1251. package/lib/hook-CN__aZIt.js +0 -1464
  1252. package/lib/hook-CN__aZIt.js.map +0 -1
  1253. package/lib/index-BTbP6Lgf.js +0 -2103
  1254. package/lib/index-BTbP6Lgf.js.map +0 -1
  1255. package/lib/index-Dl3Yl0yb.js.map +0 -1
  1256. package/lib/index-gQD2h1wX.js +0 -447
  1257. package/lib/index-gQD2h1wX.js.map +0 -1
  1258. package/lib/index.esm--gIChbWs.js +0 -1207
  1259. package/lib/index.esm--gIChbWs.js.map +0 -1
  1260. package/lib/index.esm-CQHE3GEU.js +0 -691
  1261. package/lib/invariant-Caa8-XvF.js +0 -26
  1262. package/lib/joinUrl-10po2Jdj.js +0 -20
  1263. package/lib/joinUrl-10po2Jdj.js.map +0 -1
  1264. package/lib/jsx-runtime-CYK1ROHF.js +0 -446
  1265. package/lib/jsx-runtime-CYK1ROHF.js.map +0 -1
  1266. package/lib/mutation-EclmI0is.js +0 -208
  1267. package/lib/mutation-EclmI0is.js.map +0 -1
  1268. package/lib/post-processors/removeExtensions.js.map +0 -1
  1269. package/lib/post-processors/removeParameters.js +0 -48
  1270. package/lib/post-processors/removeParameters.js.map +0 -1
  1271. package/lib/post-processors/removePaths.js +0 -28
  1272. package/lib/post-processors/removePaths.js.map +0 -1
  1273. package/lib/post-processors/traverse.js +0 -15
  1274. package/lib/post-processors/traverse.js.map +0 -1
  1275. package/lib/prism-bash.min-HHIMdNJ_.js +0 -7
  1276. package/lib/prism-bash.min-HHIMdNJ_.js.map +0 -1
  1277. package/lib/prism-csharp.min-bQAo2pmx.js +0 -63
  1278. package/lib/prism-csharp.min-bQAo2pmx.js.map +0 -1
  1279. package/lib/prism-java.min-BpvsOuIa.js +0 -35
  1280. package/lib/prism-java.min-BpvsOuIa.js.map +0 -1
  1281. package/lib/prism-javascript.min-CEqHqgbm.js +0 -9
  1282. package/lib/prism-javascript.min-CEqHqgbm.js.map +0 -1
  1283. package/lib/prism-json.min-B1GJqK1k.js +0 -2
  1284. package/lib/prism-json.min-B1GJqK1k.js.map +0 -1
  1285. package/lib/prism-markdown.min-C0Qn0m-5.js +0 -61
  1286. package/lib/prism-markdown.min-C0Qn0m-5.js.map +0 -1
  1287. package/lib/prism-markup-BNGj0Tvm.js +0 -174
  1288. package/lib/prism-markup-BNGj0Tvm.js.map +0 -1
  1289. package/lib/prism-objectivec.min-BXSWqpJJ.js +0 -2
  1290. package/lib/prism-objectivec.min-BXSWqpJJ.js.map +0 -1
  1291. package/lib/prism-ruby.min-Dx9KO9ds.js +0 -38
  1292. package/lib/prism-ruby.min-Dx9KO9ds.js.map +0 -1
  1293. package/lib/prism-typescript.min-CD7H2IYQ.js +0 -34
  1294. package/lib/prism-typescript.min-CD7H2IYQ.js.map +0 -1
  1295. package/lib/useExposedProps-RIvey2Oy.js.map +0 -1
  1296. package/lib/useScrollToAnchor-RyqO3lj4.js +0 -290
  1297. package/lib/useScrollToAnchor-RyqO3lj4.js.map +0 -1
  1298. package/lib/zudoku.css +0 -1
  1299. package/src/app/tailwind.ts +0 -89
  1300. package/src/lib/components/SlotletProvider.tsx +0 -55
  1301. package/src/lib/components/context/PluginSystem.ts +0 -0
  1302. package/src/lib/plugins/openapi/post-processors/removePaths.test.ts +0 -126
  1303. package/src/lib/ui/Stepper.css +0 -43
  1304. /package/dist/lib/components/{context/PluginSystem.d.ts → Slot.test.d.ts} +0 -0
  1305. /package/dist/lib/{plugins/markdown → components/navigation}/Toc.d.ts +0 -0
  1306. /package/dist/lib/plugins/openapi/{post-processors → processors}/removeExtensions.test.d.ts +0 -0
  1307. /package/dist/lib/plugins/openapi/{post-processors → processors}/removeParameters.test.d.ts +0 -0
  1308. /package/dist/lib/plugins/openapi/{post-processors → processors}/removePaths.test.d.ts +0 -0
  1309. /package/dist/lib/plugins/openapi/{post-processors → processors}/traverse.d.ts +0 -0
  1310. /package/dist/lib/plugins/openapi/{post-processors → processors}/traverse.js +0 -0
  1311. /package/dist/{vite/plugin-docs.test.d.ts → lib/util/url.test.d.ts} +0 -0
  1312. /package/src/lib/plugins/openapi/{post-processors → processors}/traverse.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"zudoku.components.js","sources":["../../../node_modules/.pnpm/@tanstack+query-core@5.66.4/node_modules/@tanstack/query-core/build/modern/queryCache.js","../../../node_modules/.pnpm/@tanstack+query-core@5.66.4/node_modules/@tanstack/query-core/build/modern/mutationCache.js","../../../node_modules/.pnpm/@tanstack+query-core@5.66.4/node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","../../../node_modules/.pnpm/@tanstack+query-core@5.66.4/node_modules/@tanstack/query-core/build/modern/queryClient.js","../../../node_modules/.pnpm/@tanstack+query-core@5.66.4/node_modules/@tanstack/query-core/build/modern/hydration.js","../../../node_modules/.pnpm/@tanstack+react-query@5.66.6_react@19.0.0/node_modules/@tanstack/react-query/build/modern/HydrationBoundary.js","../src/lib/util/useLatest.ts","../src/lib/core/RouteGuard.tsx","../src/lib/errors/ServerError.tsx","../../../node_modules/.pnpm/react-router@7.1.5_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/react-router/dist/development/dom-export.mjs","../src/lib/plugins/openapi/StaggeredRender.tsx","../src/lib/components/Bootstrap.tsx","../../../node_modules/.pnpm/spin-delay@2.0.1_react@19.0.0/node_modules/spin-delay/dist/index.js","../src/lib/util/useScrollToTop.ts","../src/lib/ui/Skeleton.tsx","../src/lib/components/Banner.tsx","../src/lib/components/Search.tsx","../src/lib/components/ThemeSwitch.tsx","../src/lib/components/TopNavigation.tsx","../src/lib/components/MobileTopNavigation.tsx","../src/lib/components/Header.tsx","../src/lib/components/navigation/SidebarWrapper.tsx","../src/lib/components/navigation/Sidebar.tsx","../src/lib/components/Layout.tsx","../src/lib/components/ErrorPage.tsx","../src/lib/components/StatusPage.tsx","../../../node_modules/.pnpm/react-error-boundary@5.0.0_react@19.0.0/node_modules/react-error-boundary/dist/react-error-boundary.esm.js","../../../node_modules/.pnpm/nanoevents@9.1.0/node_modules/nanoevents/index.js","../src/lib/core/ZudokuContext.ts","../src/lib/errors/TopLevelError.tsx","../src/lib/util/requestIdleCallbackPolyfill.ts","../src/lib/components/context/ComponentsContext.tsx","../src/lib/components/context/RouterEventsEmitter.tsx","../src/lib/components/context/ZudokuProvider.tsx","../src/lib/components/Zudoku.tsx","../src/lib/components/index.ts"],"sourcesContent":["// src/queryCache.ts\nimport { hashQueryKeyByOptions, matchQuery } from \"./utils.js\";\nimport { Query } from \"./query.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar QueryCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#queries = /* @__PURE__ */ new Map();\n }\n #queries;\n build(client, options, state) {\n const queryKey = options.queryKey;\n const queryHash = options.queryHash ?? hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n if (!query) {\n query = new Query({\n client,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n return query;\n }\n add(query) {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query);\n this.notify({\n type: \"added\",\n query\n });\n }\n }\n remove(query) {\n const queryInMap = this.#queries.get(query.queryHash);\n if (queryInMap) {\n query.destroy();\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash);\n }\n this.notify({ type: \"removed\", query });\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query);\n });\n });\n }\n get(queryHash) {\n return this.#queries.get(queryHash);\n }\n getAll() {\n return [...this.#queries.values()];\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (query) => matchQuery(defaultedFilters, query)\n );\n }\n findAll(filters = {}) {\n const queries = this.getAll();\n return Object.keys(filters).length > 0 ? queries.filter((query) => matchQuery(filters, query)) : queries;\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n onFocus() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus();\n });\n });\n }\n onOnline() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline();\n });\n });\n }\n};\nexport {\n QueryCache\n};\n//# sourceMappingURL=queryCache.js.map","// src/mutationCache.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Mutation } from \"./mutation.js\";\nimport { matchMutation, noop } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar MutationCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#mutations = /* @__PURE__ */ new Set();\n this.#scopes = /* @__PURE__ */ new Map();\n this.#mutationId = 0;\n }\n #mutations;\n #scopes;\n #mutationId;\n build(client, options, state) {\n const mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state\n });\n this.add(mutation);\n return mutation;\n }\n add(mutation) {\n this.#mutations.add(mutation);\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n scopedMutations.push(mutation);\n } else {\n this.#scopes.set(scope, [mutation]);\n }\n }\n this.notify({ type: \"added\", mutation });\n }\n remove(mutation) {\n if (this.#mutations.delete(mutation)) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n if (scopedMutations.length > 1) {\n const index = scopedMutations.indexOf(mutation);\n if (index !== -1) {\n scopedMutations.splice(index, 1);\n }\n } else if (scopedMutations[0] === mutation) {\n this.#scopes.delete(scope);\n }\n }\n }\n }\n this.notify({ type: \"removed\", mutation });\n }\n canRun(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const mutationsWithSameScope = this.#scopes.get(scope);\n const firstPendingMutation = mutationsWithSameScope?.find(\n (m) => m.state.status === \"pending\"\n );\n return !firstPendingMutation || firstPendingMutation === mutation;\n } else {\n return true;\n }\n }\n runNext(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const foundMutation = this.#scopes.get(scope)?.find((m) => m !== mutation && m.state.isPaused);\n return foundMutation?.continue() ?? Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.#mutations.forEach((mutation) => {\n this.notify({ type: \"removed\", mutation });\n });\n this.#mutations.clear();\n this.#scopes.clear();\n });\n }\n getAll() {\n return Array.from(this.#mutations);\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (mutation) => matchMutation(defaultedFilters, mutation)\n );\n }\n findAll(filters = {}) {\n return this.getAll().filter((mutation) => matchMutation(filters, mutation));\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n resumePausedMutations() {\n const pausedMutations = this.getAll().filter((x) => x.state.isPaused);\n return notifyManager.batch(\n () => Promise.all(\n pausedMutations.map((mutation) => mutation.continue().catch(noop))\n )\n );\n }\n};\nfunction scopeFor(mutation) {\n return mutation.options.scope?.id;\n}\nexport {\n MutationCache\n};\n//# sourceMappingURL=mutationCache.js.map","// src/infiniteQueryBehavior.ts\nimport { addToEnd, addToStart, ensureQueryFn } from \"./utils.js\";\nfunction infiniteQueryBehavior(pages) {\n return {\n onFetch: (context, query) => {\n const options = context.options;\n const direction = context.fetchOptions?.meta?.fetchMore?.direction;\n const oldPages = context.state.data?.pages || [];\n const oldPageParams = context.state.data?.pageParams || [];\n let result = { pages: [], pageParams: [] };\n let currentPage = 0;\n const fetchFn = async () => {\n let cancelled = false;\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n if (context.signal.aborted) {\n cancelled = true;\n } else {\n context.signal.addEventListener(\"abort\", () => {\n cancelled = true;\n });\n }\n return context.signal;\n }\n });\n };\n const queryFn = ensureQueryFn(context.options, context.fetchOptions);\n const fetchPage = async (data, param, previous) => {\n if (cancelled) {\n return Promise.reject();\n }\n if (param == null && data.pages.length) {\n return Promise.resolve(data);\n }\n const queryFnContext = {\n client: context.client,\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? \"backward\" : \"forward\",\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext);\n const page = await queryFn(\n queryFnContext\n );\n const { maxPages } = context.options;\n const addTo = previous ? addToStart : addToEnd;\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages)\n };\n };\n if (direction && oldPages.length) {\n const previous = direction === \"backward\";\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams\n };\n const param = pageParamFn(options, oldData);\n result = await fetchPage(oldData, param, previous);\n } else {\n const remainingPages = pages ?? oldPages.length;\n do {\n const param = currentPage === 0 ? oldPageParams[0] ?? options.initialPageParam : getNextPageParam(options, result);\n if (currentPage > 0 && param == null) {\n break;\n }\n result = await fetchPage(result, param);\n currentPage++;\n } while (currentPage < remainingPages);\n }\n return result;\n };\n if (context.options.persister) {\n context.fetchFn = () => {\n return context.options.persister?.(\n fetchFn,\n {\n client: context.client,\n queryKey: context.queryKey,\n meta: context.options.meta,\n signal: context.signal\n },\n query\n );\n };\n } else {\n context.fetchFn = fetchFn;\n }\n }\n };\n}\nfunction getNextPageParam(options, { pages, pageParams }) {\n const lastIndex = pages.length - 1;\n return pages.length > 0 ? options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams\n ) : void 0;\n}\nfunction getPreviousPageParam(options, { pages, pageParams }) {\n return pages.length > 0 ? options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams) : void 0;\n}\nfunction hasNextPage(options, data) {\n if (!data)\n return false;\n return getNextPageParam(options, data) != null;\n}\nfunction hasPreviousPage(options, data) {\n if (!data || !options.getPreviousPageParam)\n return false;\n return getPreviousPageParam(options, data) != null;\n}\nexport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n};\n//# sourceMappingURL=infiniteQueryBehavior.js.map","// src/queryClient.ts\nimport {\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n noop,\n partialMatchKey,\n resolveStaleTime,\n skipToken\n} from \"./utils.js\";\nimport { QueryCache } from \"./queryCache.js\";\nimport { MutationCache } from \"./mutationCache.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { infiniteQueryBehavior } from \"./infiniteQueryBehavior.js\";\nvar QueryClient = class {\n #queryCache;\n #mutationCache;\n #defaultOptions;\n #queryDefaults;\n #mutationDefaults;\n #mountCount;\n #unsubscribeFocus;\n #unsubscribeOnline;\n constructor(config = {}) {\n this.#queryCache = config.queryCache || new QueryCache();\n this.#mutationCache = config.mutationCache || new MutationCache();\n this.#defaultOptions = config.defaultOptions || {};\n this.#queryDefaults = /* @__PURE__ */ new Map();\n this.#mutationDefaults = /* @__PURE__ */ new Map();\n this.#mountCount = 0;\n }\n mount() {\n this.#mountCount++;\n if (this.#mountCount !== 1)\n return;\n this.#unsubscribeFocus = focusManager.subscribe(async (focused) => {\n if (focused) {\n await this.resumePausedMutations();\n this.#queryCache.onFocus();\n }\n });\n this.#unsubscribeOnline = onlineManager.subscribe(async (online) => {\n if (online) {\n await this.resumePausedMutations();\n this.#queryCache.onOnline();\n }\n });\n }\n unmount() {\n this.#mountCount--;\n if (this.#mountCount !== 0)\n return;\n this.#unsubscribeFocus?.();\n this.#unsubscribeFocus = void 0;\n this.#unsubscribeOnline?.();\n this.#unsubscribeOnline = void 0;\n }\n isFetching(filters) {\n return this.#queryCache.findAll({ ...filters, fetchStatus: \"fetching\" }).length;\n }\n isMutating(filters) {\n return this.#mutationCache.findAll({ ...filters, status: \"pending\" }).length;\n }\n getQueryData(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state.data;\n }\n ensureQueryData(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n const query = this.#queryCache.build(this, defaultedOptions);\n const cachedData = query.state.data;\n if (cachedData === void 0) {\n return this.fetchQuery(options);\n }\n if (options.revalidateIfStale && query.isStaleByTime(resolveStaleTime(defaultedOptions.staleTime, query))) {\n void this.prefetchQuery(defaultedOptions);\n }\n return Promise.resolve(cachedData);\n }\n getQueriesData(filters) {\n return this.#queryCache.findAll(filters).map(({ queryKey, state }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n setQueryData(queryKey, updater, options) {\n const defaultedOptions = this.defaultQueryOptions({ queryKey });\n const query = this.#queryCache.get(\n defaultedOptions.queryHash\n );\n const prevData = query?.state.data;\n const data = functionalUpdate(updater, prevData);\n if (data === void 0) {\n return void 0;\n }\n return this.#queryCache.build(this, defaultedOptions).setData(data, { ...options, manual: true });\n }\n setQueriesData(filters, updater, options) {\n return notifyManager.batch(\n () => this.#queryCache.findAll(filters).map(({ queryKey }) => [\n queryKey,\n this.setQueryData(queryKey, updater, options)\n ])\n );\n }\n getQueryState(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(\n options.queryHash\n )?.state;\n }\n removeQueries(filters) {\n const queryCache = this.#queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query);\n });\n });\n }\n resetQueries(filters, options) {\n const queryCache = this.#queryCache;\n const refetchFilters = {\n type: \"active\",\n ...filters\n };\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset();\n });\n return this.refetchQueries(refetchFilters, options);\n });\n }\n cancelQueries(filters, cancelOptions = {}) {\n const defaultedCancelOptions = { revert: true, ...cancelOptions };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).map((query) => query.cancel(defaultedCancelOptions))\n );\n return Promise.all(promises).then(noop).catch(noop);\n }\n invalidateQueries(filters, options = {}) {\n return notifyManager.batch(() => {\n this.#queryCache.findAll(filters).forEach((query) => {\n query.invalidate();\n });\n if (filters?.refetchType === \"none\") {\n return Promise.resolve();\n }\n const refetchFilters = {\n ...filters,\n type: filters?.refetchType ?? filters?.type ?? \"active\"\n };\n return this.refetchQueries(refetchFilters, options);\n });\n }\n refetchQueries(filters, options = {}) {\n const fetchOptions = {\n ...options,\n cancelRefetch: options.cancelRefetch ?? true\n };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).filter((query) => !query.isDisabled()).map((query) => {\n let promise = query.fetch(void 0, fetchOptions);\n if (!fetchOptions.throwOnError) {\n promise = promise.catch(noop);\n }\n return query.state.fetchStatus === \"paused\" ? Promise.resolve() : promise;\n })\n );\n return Promise.all(promises).then(noop);\n }\n fetchQuery(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n if (defaultedOptions.retry === void 0) {\n defaultedOptions.retry = false;\n }\n const query = this.#queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(\n resolveStaleTime(defaultedOptions.staleTime, query)\n ) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n prefetchQuery(options) {\n return this.fetchQuery(options).then(noop).catch(noop);\n }\n fetchInfiniteQuery(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.fetchQuery(options);\n }\n prefetchInfiniteQuery(options) {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop);\n }\n ensureInfiniteQueryData(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.ensureQueryData(options);\n }\n resumePausedMutations() {\n if (onlineManager.isOnline()) {\n return this.#mutationCache.resumePausedMutations();\n }\n return Promise.resolve();\n }\n getQueryCache() {\n return this.#queryCache;\n }\n getMutationCache() {\n return this.#mutationCache;\n }\n getDefaultOptions() {\n return this.#defaultOptions;\n }\n setDefaultOptions(options) {\n this.#defaultOptions = options;\n }\n setQueryDefaults(queryKey, options) {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options\n });\n }\n getQueryDefaults(queryKey) {\n const defaults = [...this.#queryDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n setMutationDefaults(mutationKey, options) {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options\n });\n }\n getMutationDefaults(mutationKey) {\n const defaults = [...this.#mutationDefaults.values()];\n let result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n result = { ...result, ...queryDefault.defaultOptions };\n }\n });\n return result;\n }\n defaultQueryOptions(options) {\n if (options._defaulted) {\n return options;\n }\n const defaultedOptions = {\n ...this.#defaultOptions.queries,\n ...this.getQueryDefaults(options.queryKey),\n ...options,\n _defaulted: true\n };\n if (!defaultedOptions.queryHash) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions\n );\n }\n if (defaultedOptions.refetchOnReconnect === void 0) {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== \"always\";\n }\n if (defaultedOptions.throwOnError === void 0) {\n defaultedOptions.throwOnError = !!defaultedOptions.suspense;\n }\n if (!defaultedOptions.networkMode && defaultedOptions.persister) {\n defaultedOptions.networkMode = \"offlineFirst\";\n }\n if (defaultedOptions.queryFn === skipToken) {\n defaultedOptions.enabled = false;\n }\n return defaultedOptions;\n }\n defaultMutationOptions(options) {\n if (options?._defaulted) {\n return options;\n }\n return {\n ...this.#defaultOptions.mutations,\n ...options?.mutationKey && this.getMutationDefaults(options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n clear() {\n this.#queryCache.clear();\n this.#mutationCache.clear();\n }\n};\nexport {\n QueryClient\n};\n//# sourceMappingURL=queryClient.js.map","// src/hydration.ts\nfunction defaultTransformerFn(data) {\n return data;\n}\nfunction dehydrateMutation(mutation) {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state,\n ...mutation.options.scope && { scope: mutation.options.scope },\n ...mutation.meta && { meta: mutation.meta }\n };\n}\nfunction dehydrateQuery(query, serializeData, shouldRedactErrors) {\n return {\n state: {\n ...query.state,\n ...query.state.data !== void 0 && {\n data: serializeData(query.state.data)\n }\n },\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n ...query.state.status === \"pending\" && {\n promise: query.promise?.then(serializeData).catch((error) => {\n if (!shouldRedactErrors(error)) {\n return Promise.reject(error);\n }\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `A query that was dehydrated as pending ended up rejecting. [${query.queryHash}]: ${error}; The error will be redacted in production builds`\n );\n }\n return Promise.reject(new Error(\"redacted\"));\n })\n },\n ...query.meta && { meta: query.meta }\n };\n}\nfunction defaultShouldDehydrateMutation(mutation) {\n return mutation.state.isPaused;\n}\nfunction defaultShouldDehydrateQuery(query) {\n return query.state.status === \"success\";\n}\nfunction defaultshouldRedactErrors(_) {\n return true;\n}\nfunction dehydrate(client, options = {}) {\n const filterMutation = options.shouldDehydrateMutation ?? client.getDefaultOptions().dehydrate?.shouldDehydrateMutation ?? defaultShouldDehydrateMutation;\n const mutations = client.getMutationCache().getAll().flatMap(\n (mutation) => filterMutation(mutation) ? [dehydrateMutation(mutation)] : []\n );\n const filterQuery = options.shouldDehydrateQuery ?? client.getDefaultOptions().dehydrate?.shouldDehydrateQuery ?? defaultShouldDehydrateQuery;\n const shouldRedactErrors = options.shouldRedactErrors ?? client.getDefaultOptions().dehydrate?.shouldRedactErrors ?? defaultshouldRedactErrors;\n const serializeData = options.serializeData ?? client.getDefaultOptions().dehydrate?.serializeData ?? defaultTransformerFn;\n const queries = client.getQueryCache().getAll().flatMap(\n (query) => filterQuery(query) ? [dehydrateQuery(query, serializeData, shouldRedactErrors)] : []\n );\n return { mutations, queries };\n}\nfunction hydrate(client, dehydratedState, options) {\n if (typeof dehydratedState !== \"object\" || dehydratedState === null) {\n return;\n }\n const mutationCache = client.getMutationCache();\n const queryCache = client.getQueryCache();\n const deserializeData = options?.defaultOptions?.deserializeData ?? client.getDefaultOptions().hydrate?.deserializeData ?? defaultTransformerFn;\n const mutations = dehydratedState.mutations || [];\n const queries = dehydratedState.queries || [];\n mutations.forEach(({ state, ...mutationOptions }) => {\n mutationCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.mutations,\n ...options?.defaultOptions?.mutations,\n ...mutationOptions\n },\n state\n );\n });\n queries.forEach(({ queryKey, state, queryHash, meta, promise }) => {\n let query = queryCache.get(queryHash);\n const data = state.data === void 0 ? state.data : deserializeData(state.data);\n if (query) {\n if (query.state.dataUpdatedAt < state.dataUpdatedAt) {\n const { fetchStatus: _ignored, ...serializedState } = state;\n query.setState({\n ...serializedState,\n data\n });\n }\n } else {\n query = queryCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.queries,\n ...options?.defaultOptions?.queries,\n queryKey,\n queryHash,\n meta\n },\n // Reset fetch status to idle to avoid\n // query being stuck in fetching state upon hydration\n {\n ...state,\n data,\n fetchStatus: \"idle\"\n }\n );\n }\n if (promise) {\n const initialPromise = Promise.resolve(promise).then(deserializeData);\n void query.fetch(void 0, { initialPromise });\n }\n });\n}\nexport {\n defaultShouldDehydrateMutation,\n defaultShouldDehydrateQuery,\n defaultshouldRedactErrors,\n dehydrate,\n hydrate\n};\n//# sourceMappingURL=hydration.js.map","\"use client\";\n\n// src/HydrationBoundary.tsx\nimport * as React from \"react\";\nimport { hydrate } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nvar hasProperty = (obj, key) => {\n return typeof obj === \"object\" && obj !== null && key in obj;\n};\nvar HydrationBoundary = ({\n children,\n options = {},\n state,\n queryClient\n}) => {\n const client = useQueryClient(queryClient);\n const [hydrationQueue, setHydrationQueue] = React.useState();\n const optionsRef = React.useRef(options);\n optionsRef.current = options;\n React.useMemo(() => {\n if (state) {\n if (typeof state !== \"object\") {\n return;\n }\n const queryCache = client.getQueryCache();\n const queries = state.queries || [];\n const newQueries = [];\n const existingQueries = [];\n for (const dehydratedQuery of queries) {\n const existingQuery = queryCache.get(dehydratedQuery.queryHash);\n if (!existingQuery) {\n newQueries.push(dehydratedQuery);\n } else {\n const hydrationIsNewer = dehydratedQuery.state.dataUpdatedAt > existingQuery.state.dataUpdatedAt || // RSC special serialized then-able chunks\n hasProperty(dehydratedQuery.promise, \"status\") && hasProperty(existingQuery.promise, \"status\") && dehydratedQuery.promise.status !== existingQuery.promise.status;\n const queryAlreadyQueued = hydrationQueue?.find(\n (query) => query.queryHash === dehydratedQuery.queryHash\n );\n if (hydrationIsNewer && (!queryAlreadyQueued || dehydratedQuery.state.dataUpdatedAt > queryAlreadyQueued.state.dataUpdatedAt)) {\n existingQueries.push(dehydratedQuery);\n }\n }\n }\n if (newQueries.length > 0) {\n hydrate(client, { queries: newQueries }, optionsRef.current);\n }\n if (existingQueries.length > 0) {\n setHydrationQueue(\n (prev) => prev ? [...prev, ...existingQueries] : existingQueries\n );\n }\n }\n }, [client, hydrationQueue, state]);\n React.useEffect(() => {\n if (hydrationQueue) {\n hydrate(client, { queries: hydrationQueue }, optionsRef.current);\n setHydrationQueue(void 0);\n }\n }, [client, hydrationQueue]);\n return children;\n};\nexport {\n HydrationBoundary\n};\n//# sourceMappingURL=HydrationBoundary.js.map","import { useEffect, useRef } from \"react\";\n\n// This hook is useful when you need to store a reference to a variable that changes over time,\n// but you don't want to re-run any callbacks that depend on that variable every time it changes.\n// By using a reference to the latest value, you can ensure that any callbacks only run when necessary,\n// without any unnecessary re-renders.\n\n// Note: It's safe to put the return value of this hook in a dependency array, because it won't change!\nexport const useLatest = <T>(current: T) => {\n const valueRef = useRef(current);\n valueRef.current = current;\n\n useEffect(() => {\n valueRef.current = current;\n }, [current]);\n\n return valueRef;\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { matchPath, Outlet, useLocation, useNavigate } from \"react-router\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from \"zudoku/ui/Dialog.js\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport { useZudoku } from \"../components/context/ZudokuContext.js\";\nimport { ZudokuError } from \"../util/invariant.js\";\nimport { useLatest } from \"../util/useLatest.js\";\n\nexport const RouteGuard = () => {\n const auth = useAuth();\n const zudoku = useZudoku();\n const navigate = useNavigate();\n const location = useLocation();\n const latestPath = useLatest(location.pathname);\n\n const isProtected = zudoku.options.protectedRoutes?.some((path) =>\n matchPath({ path, end: true }, location.pathname),\n );\n\n useQuery({\n queryKey: [\"login-redirect\"],\n queryFn: async () => {\n await new Promise((resolve) => setTimeout(resolve, 1200));\n await zudoku.authentication?.signIn({\n redirectTo: latestPath.current,\n });\n return true;\n },\n enabled:\n typeof window !== \"undefined\" &&\n isProtected &&\n !auth.isPending &&\n !auth.isAuthenticated,\n });\n\n if (isProtected && !auth.isAuthenticated) {\n return (\n <Dialog\n open={true}\n onOpenChange={(open) => {\n if (!open) {\n void navigate(-1);\n }\n }}\n >\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Logging you in...</DialogTitle>\n </DialogHeader>\n <DialogDescription>\n Please wait while we log you in.\n </DialogDescription>\n </DialogContent>\n </Dialog>\n );\n }\n\n if (isProtected && !auth.isAuthEnabled) {\n throw new ZudokuError(\"Authentication is not enabled\", {\n title: \"Authentication is not enabled\",\n developerHint:\n \"To use protectedRoutes you need authentication to be enabled\",\n });\n }\n\n return <Outlet />;\n};\n","import { ErrorAlert } from \"./ErrorAlert.js\";\n\nexport function ServerError({ error }: { error: unknown }) {\n return <ErrorAlert error={error} />;\n}\n","/**\n * react-router v7.1.5\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport {\n FrameworkContext,\n RemixErrorBoundary,\n RouterProvider,\n createBrowserHistory,\n createClientRoutes,\n createClientRoutesWithHMRRevalidationOptOut,\n createRouter,\n decodeViaTurboStream,\n deserializeErrors,\n getPatchRoutesOnNavigationFunction,\n getSingleFetchDataStrategy,\n invariant,\n mapRouteProperties,\n matchRoutes,\n shouldHydrateRouteLoader,\n useFogOFWarDiscovery\n} from \"./chunk-IR6S3I6Y.mjs\";\n\n// lib/dom-export/dom-router-provider.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nfunction RouterProvider2(props) {\n return /* @__PURE__ */ React.createElement(RouterProvider, { flushSync: ReactDOM.flushSync, ...props });\n}\n\n// lib/dom-export/hydrated-router.tsx\nimport * as React2 from \"react\";\nvar ssrInfo = null;\nvar router = null;\nfunction initSsrInfo() {\n if (!ssrInfo && window.__reactRouterContext && window.__reactRouterManifest && window.__reactRouterRouteModules) {\n ssrInfo = {\n context: window.__reactRouterContext,\n manifest: window.__reactRouterManifest,\n routeModules: window.__reactRouterRouteModules,\n stateDecodingPromise: void 0,\n router: void 0,\n routerInitialized: false\n };\n }\n}\nfunction createHydratedRouter() {\n initSsrInfo();\n if (!ssrInfo) {\n throw new Error(\n \"You must be using the SSR features of React Router in order to skip passing a `router` prop to `<RouterProvider>`\"\n );\n }\n let localSsrInfo = ssrInfo;\n if (!ssrInfo.stateDecodingPromise) {\n let stream = ssrInfo.context.stream;\n invariant(stream, \"No stream found for single fetch decoding\");\n ssrInfo.context.stream = void 0;\n ssrInfo.stateDecodingPromise = decodeViaTurboStream(stream, window).then((value) => {\n ssrInfo.context.state = value.value;\n localSsrInfo.stateDecodingPromise.value = true;\n }).catch((e) => {\n localSsrInfo.stateDecodingPromise.error = e;\n });\n }\n if (ssrInfo.stateDecodingPromise.error) {\n throw ssrInfo.stateDecodingPromise.error;\n }\n if (!ssrInfo.stateDecodingPromise.value) {\n throw ssrInfo.stateDecodingPromise;\n }\n let routes = createClientRoutes(\n ssrInfo.manifest.routes,\n ssrInfo.routeModules,\n ssrInfo.context.state,\n ssrInfo.context.isSpaMode\n );\n let hydrationData = void 0;\n if (!ssrInfo.context.isSpaMode) {\n hydrationData = {\n ...ssrInfo.context.state,\n loaderData: { ...ssrInfo.context.state.loaderData }\n };\n let initialMatches = matchRoutes(\n routes,\n window.location,\n window.__reactRouterContext?.basename\n );\n if (initialMatches) {\n for (let match of initialMatches) {\n let routeId = match.route.id;\n let route = ssrInfo.routeModules[routeId];\n let manifestRoute = ssrInfo.manifest.routes[routeId];\n if (route && manifestRoute && shouldHydrateRouteLoader(\n manifestRoute,\n route,\n ssrInfo.context.isSpaMode\n ) && (route.HydrateFallback || !manifestRoute.hasLoader)) {\n delete hydrationData.loaderData[routeId];\n } else if (manifestRoute && !manifestRoute.hasLoader) {\n hydrationData.loaderData[routeId] = null;\n }\n }\n }\n if (hydrationData && hydrationData.errors) {\n hydrationData.errors = deserializeErrors(hydrationData.errors);\n }\n }\n let router2 = createRouter({\n routes,\n history: createBrowserHistory(),\n basename: ssrInfo.context.basename,\n hydrationData,\n mapRouteProperties,\n dataStrategy: getSingleFetchDataStrategy(\n ssrInfo.manifest,\n ssrInfo.routeModules,\n () => router2\n ),\n patchRoutesOnNavigation: getPatchRoutesOnNavigationFunction(\n ssrInfo.manifest,\n ssrInfo.routeModules,\n ssrInfo.context.isSpaMode,\n ssrInfo.context.basename\n )\n });\n ssrInfo.router = router2;\n if (router2.state.initialized) {\n ssrInfo.routerInitialized = true;\n router2.initialize();\n }\n router2.createRoutesForHMR = /* spacer so ts-ignore does not affect the right hand of the assignment */\n createClientRoutesWithHMRRevalidationOptOut;\n window.__reactRouterDataRouter = router2;\n return router2;\n}\nfunction HydratedRouter() {\n if (!router) {\n router = createHydratedRouter();\n }\n let [criticalCss, setCriticalCss] = React2.useState(\n process.env.NODE_ENV === \"development\" ? ssrInfo?.context.criticalCss : void 0\n );\n if (process.env.NODE_ENV === \"development\") {\n if (ssrInfo) {\n window.__reactRouterClearCriticalCss = () => setCriticalCss(void 0);\n }\n }\n let [location, setLocation] = React2.useState(router.state.location);\n React2.useLayoutEffect(() => {\n if (ssrInfo && ssrInfo.router && !ssrInfo.routerInitialized) {\n ssrInfo.routerInitialized = true;\n ssrInfo.router.initialize();\n }\n }, []);\n React2.useLayoutEffect(() => {\n if (ssrInfo && ssrInfo.router) {\n return ssrInfo.router.subscribe((newState) => {\n if (newState.location !== location) {\n setLocation(newState.location);\n }\n });\n }\n }, [location]);\n invariant(ssrInfo, \"ssrInfo unavailable for HydratedRouter\");\n useFogOFWarDiscovery(\n router,\n ssrInfo.manifest,\n ssrInfo.routeModules,\n ssrInfo.context.isSpaMode\n );\n return (\n // This fragment is important to ensure we match the <ServerRouter> JSX\n // structure so that useId values hydrate correctly\n /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(\n FrameworkContext.Provider,\n {\n value: {\n manifest: ssrInfo.manifest,\n routeModules: ssrInfo.routeModules,\n future: ssrInfo.context.future,\n criticalCss,\n isSpaMode: ssrInfo.context.isSpaMode\n }\n },\n /* @__PURE__ */ React2.createElement(RemixErrorBoundary, { location }, /* @__PURE__ */ React2.createElement(RouterProvider2, { router }))\n ), /* @__PURE__ */ React2.createElement(React2.Fragment, null))\n );\n}\nexport {\n HydratedRouter,\n RouterProvider2 as RouterProvider\n};\n","import {\n Children,\n createContext,\n ReactNode,\n useContext,\n useEffect,\n useState,\n} from \"react\";\n\nexport const StaggeredRenderContext = createContext({ stagger: false });\n\nconst StaggeredRender = ({ children }: { children: ReactNode[] }) => {\n const { stagger } = useContext(StaggeredRenderContext);\n const [renderAll, setRenderAll] = useState(!stagger);\n\n useEffect(() => {\n if (renderAll) {\n return;\n }\n\n const idle = requestIdleCallback(() => {\n setRenderAll(true);\n });\n\n return () => cancelIdleCallback(idle);\n }, [renderAll]);\n\n return !renderAll ? Children.toArray(children).slice(0, 3) : children;\n};\n\nexport default StaggeredRender;\n","import {\n HydrationBoundary,\n QueryClient,\n QueryClientProvider,\n} from \"@tanstack/react-query\";\nimport { type HelmetData, HelmetProvider } from \"@zudoku/react-helmet-async\";\nimport { StrictMode } from \"react\";\nimport {\n type createBrowserRouter,\n type createStaticRouter,\n type StaticHandlerContext,\n StaticRouterProvider,\n} from \"react-router\";\nimport { RouterProvider } from \"react-router/dom\";\nimport { StaggeredRenderContext } from \"../plugins/openapi/StaggeredRender.js\";\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n staleTime: 1000 * 60 * 5,\n },\n },\n});\n\nconst Bootstrap = ({\n router,\n hydrate = false,\n}: {\n hydrate?: boolean;\n router: ReturnType<typeof createBrowserRouter>;\n}) => (\n <StrictMode>\n <QueryClientProvider client={queryClient}>\n <HydrationBoundary state={hydrate ? (window as any).DATA : undefined}>\n <HelmetProvider>\n <StaggeredRenderContext.Provider value={{ stagger: !hydrate }}>\n <RouterProvider router={router} />\n </StaggeredRenderContext.Provider>\n </HelmetProvider>\n </HydrationBoundary>\n </QueryClientProvider>\n </StrictMode>\n);\n\nconst BootstrapStatic = ({\n router,\n context,\n queryClient,\n helmetContext,\n}: {\n helmetContext: HelmetData[\"context\"];\n context: StaticHandlerContext;\n queryClient: QueryClient;\n router: ReturnType<typeof createStaticRouter>;\n}) => (\n <StrictMode>\n <QueryClientProvider client={queryClient}>\n <HelmetProvider context={helmetContext}>\n <StaticRouterProvider router={router} context={context} />\n </HelmetProvider>\n </QueryClientProvider>\n </StrictMode>\n);\n\nexport { Bootstrap, BootstrapStatic };\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :\n typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) :\n (global = global || self, factory(global.spinDelay = {}, global.react));\n}(this, (function (exports, react) {\n const defaultOptions = {\n delay: 500,\n minDuration: 200,\n ssr: true\n };\n\n function useIsSSR() {\n const [isSSR, setIsSSR] = react.useState(true);\n react.useEffect(() => {\n setIsSSR(false);\n }, []);\n return isSSR;\n }\n\n function useSpinDelay(loading, options) {\n options = Object.assign({}, defaultOptions, options);\n const isSSR = useIsSSR() && options.ssr;\n const initialState = isSSR && loading ? 'DISPLAY' : 'IDLE';\n const [state, setState] = react.useState(initialState);\n const timeout = react.useRef(null);\n react.useEffect(() => {\n if (loading && (state === 'IDLE' || isSSR)) {\n clearTimeout(timeout.current);\n const delay = isSSR ? 0 : options.delay;\n timeout.current = setTimeout(() => {\n if (!loading) {\n return setState('IDLE');\n }\n\n timeout.current = setTimeout(() => {\n setState('EXPIRE');\n }, options.minDuration);\n setState('DISPLAY');\n }, delay);\n\n if (!isSSR) {\n setState('DELAY');\n }\n }\n\n if (!loading && state !== 'DISPLAY') {\n clearTimeout(timeout.current);\n setState('IDLE');\n }\n }, [loading, state, options.delay, options.minDuration, isSSR]);\n react.useEffect(() => {\n return () => clearTimeout(timeout.current);\n }, []);\n return state === 'DISPLAY' || state === 'EXPIRE';\n }\n\n exports.defaultOptions = defaultOptions;\n exports.useSpinDelay = useSpinDelay;\n\n})));\n//# sourceMappingURL=index.js.map\n","import { useEffect, useRef } from \"react\";\nimport { useLocation } from \"react-router\";\n\nexport const useScrollToTop = () => {\n const location = useLocation();\n const previousPath = useRef(location.pathname);\n\n useEffect(() => {\n const isNewPage = previousPath.current !== location.pathname;\n const hasAnchor = location.hash !== \"\";\n\n if (isNewPage && !hasAnchor) {\n window.scrollTo(0, 0);\n }\n\n previousPath.current = location.pathname;\n }, [location.pathname, location.hash]);\n};\n","import { cn } from \"../util/cn.js\";\n\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"animate-pulse rounded-md bg-muted\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n","import { CircleXIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { cn } from \"../util/cn.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\n\nconst COLOR_MAP = {\n info: \"bg-blue-500\",\n note: \"bg-gray-500\",\n tip: \"bg-green-600\",\n caution: \"bg-orange-500\",\n danger: \"bg-rose-500\",\n} as const;\n\nexport const Banner = () => {\n const { page } = useZudoku();\n const [isBannerOpen, setIsBannerOpen] = useState(true);\n\n if (!page?.banner || !isBannerOpen) {\n return <style>{`:root { --banner-height: 0px; }`}</style>;\n }\n\n const mappedColor =\n page.banner.color && page.banner.color in COLOR_MAP\n ? COLOR_MAP[page.banner.color as keyof typeof COLOR_MAP]\n : !page.banner.color\n ? \"bg-primary\"\n : undefined;\n\n const style = !mappedColor ? { backgroundColor: page.banner.color } : {};\n\n return (\n <div\n className={cn(\n \"relative text-primary-foreground text-sm font-medium px-4 py-2 flex gap-2 items-center\",\n mappedColor,\n )}\n data-pagefind-ignore=\"all\"\n style={style}\n >\n <div className=\"w-full\">{page.banner.message}</div>\n {page.banner.dismissible && (\n <button\n type=\"button\"\n className=\"md:absolute md:right-4 -m-1.5 p-1.5 hover:bg-accent-foreground/10 rounded-md\"\n onClick={() => setIsBannerOpen(false)}\n >\n <CircleXIcon size={16} />\n </button>\n )}\n </div>\n );\n};\n","import { SearchIcon } from \"lucide-react\";\nimport { Suspense, useCallback, useEffect, useState } from \"react\";\nimport { isSearchPlugin } from \"../core/plugins.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\n\nexport const Search = ({ className }: { className?: string }) => {\n const ctx = useZudoku();\n const [isOpen, setIsOpen] = useState(false);\n\n const onClose = useCallback(() => setIsOpen(false), []);\n\n useEffect(() => {\n if (isOpen) {\n return;\n }\n\n function onKeyDown(event: KeyboardEvent) {\n if (event.key === \"k\" && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n setIsOpen(true);\n }\n }\n\n window.addEventListener(\"keydown\", onKeyDown);\n\n return () => {\n window.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [isOpen, setIsOpen]);\n\n const searchPlugin = ctx.plugins.find(isSearchPlugin);\n\n if (!searchPlugin) {\n return null;\n }\n\n return (\n <div className={className}>\n <button\n type=\"button\"\n onClick={() => setIsOpen(true)}\n className=\"flex items-center border border-input hover:bg-accent hover:text-accent-foreground p-4 relative h-8 justify-start rounded-lg bg-background text-sm text-muted-foreground shadow-none w-full sm:w-72\"\n >\n <div className=\"flex items-center gap-2 flex-grow\">\n <SearchIcon size={14} />\n Search\n </div>\n <kbd className=\"absolute right-[0.3rem] top-[0.3rem] hidden h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[11px] font-medium opacity-100 sm:flex\">\n ⌘K\n </kbd>\n </button>\n <Suspense fallback={null}>\n {searchPlugin.renderSearch({\n isOpen,\n onClose,\n })}\n </Suspense>\n </div>\n );\n};\n","import { MoonIcon, SunIcon } from \"lucide-react\";\nimport { useTheme } from \"next-themes\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport { cn } from \"../util/cn.js\";\nimport { ClientOnly } from \"./ClientOnly.js\";\n\nexport const ThemeSwitch = () => {\n const { resolvedTheme, setTheme } = useTheme();\n\n return (\n <ClientOnly fallback={<Button variant=\"ghost\" size=\"icon\" />}>\n <button\n type=\"button\"\n className=\"flex rounded-full border p-0.5 gap-0.5 group\"\n onClick={() => setTheme(resolvedTheme === \"dark\" ? \"light\" : \"dark\")}\n aria-label={\n resolvedTheme === \"dark\"\n ? \"Switch to light mode\"\n : \"Switch to dark mode\"\n }\n >\n <div\n className={cn(\n \"border border-transparent rounded-full p-0.5 [&>svg>circle]:transition-colors [&>svg>path]:transition-transform transition-all [&>svg>path]:duration-200 [&>svg>circle]:duration-500 [&>svg>circle]:fill-transparent\",\n resolvedTheme === \"light\" && \"border-border bg-muted\",\n resolvedTheme === \"dark\" &&\n \"group-hover:[&>svg>path]:scale-110 group-hover:[&>svg>path]:-translate-x-[1px] group-hover:[&>svg>path]:-translate-y-[1px] group-hover:rotate-[15deg] \",\n )}\n >\n <SunIcon size={16} />\n </div>\n <div\n className={cn(\n \"border border-transparent rounded-full p-0.5 transition-transform transform-gpu duration-500\",\n resolvedTheme === \"dark\" &&\n \"border-border bg-muted [&>svg>path]:fill-white [&>svg>path]:stroke-transparent\",\n resolvedTheme === \"light\" &&\n \"group-hover:rotate-[-10deg] [&>svg>path]:stroke-currentColor\",\n )}\n >\n <MoonIcon size={16} />\n </div>\n </button>\n </ClientOnly>\n );\n};\n","import { cx } from \"class-variance-authority\";\nimport { Suspense } from \"react\";\nimport { NavLink, useNavigation } from \"react-router\";\nimport { TopNavigationItem } from \"../../config/validators/common.js\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport { ZudokuError } from \"../util/invariant.js\";\nimport { joinPath } from \"../util/joinPath.js\";\nimport { useCurrentNavigation, useZudoku } from \"./context/ZudokuContext.js\";\nimport { traverseSidebar } from \"./navigation/utils.js\";\nimport { Slotlet } from \"./SlotletProvider.js\";\n\nexport const isHiddenItem =\n (isAuthenticated?: boolean) =>\n (item: { display?: \"auth\" | \"anon\" | \"always\" }) => {\n return (\n (item.display === \"auth\" && isAuthenticated) ||\n (item.display === \"anon\" && !isAuthenticated) ||\n !item.display ||\n item.display === \"always\"\n );\n };\n\nexport const TopNavigation = () => {\n const { topNavigation } = useZudoku();\n const { isAuthenticated } = useAuth();\n\n // Hide top nav if there is only one item\n if (topNavigation.length <= 1) {\n return <style>{`:root { --top-nav-height: 0px; }`}</style>;\n }\n\n return (\n <Suspense>\n <div className=\" items-center justify-between px-8 h-[--top-nav-height] hidden lg:flex text-sm\">\n <nav className=\"text-sm\">\n <ul className=\"flex flex-row items-center gap-8\">\n {topNavigation.filter(isHiddenItem(isAuthenticated)).map((item) => (\n <li key={item.id}>\n <TopNavItem {...item} />\n </li>\n ))}\n </ul>\n </nav>\n <Slotlet name=\"top-navigation-side\" />\n </div>\n </Suspense>\n );\n};\n\nexport const TopNavItem = ({\n id,\n label,\n default: defaultLink,\n}: TopNavigationItem) => {\n const { sidebars } = useZudoku();\n const currentSidebar = sidebars[id];\n const currentNav = useCurrentNavigation();\n const isNavigating = Boolean(useNavigation().location);\n const isActive = currentNav.topNavItem?.id === id && !isNavigating;\n\n // TODO: This is a bit of a hack to get the first link in the sidebar\n // We should really process this when we load the config so we can validate\n // that the sidebar is actually set. In this case we just fall back to linking\n // to the id if we can't resolve a sidebar.\n const first =\n defaultLink ??\n (currentSidebar\n ? traverseSidebar(currentSidebar, (item) => {\n if (item.type === \"doc\") return joinPath(item.id);\n })\n : joinPath(id));\n\n if (!first) {\n throw new ZudokuError(\"Page not found.\", {\n developerHint: `No links found in top navigation for '${id}'. Check that the sidebar isn't empty or that a default link is set.`,\n });\n }\n\n return (\n // We don't use isActive here because it has to be inside the sidebar,\n // the top nav id doesn't necessarily start with the sidebar id\n <NavLink\n className={({ isPending }) =>\n cx(\n \"block lg:py-3.5 font-medium -mb-px\",\n isActive || isPending\n ? \"border-primary text-foreground\"\n : \"border-transparent text-foreground/75 hover:text-foreground hover:border-accent-foreground/25\",\n )\n }\n to={first}\n >\n {label}\n </NavLink>\n );\n};\n","import { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport { MenuIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport {\n Drawer,\n DrawerContent,\n DrawerTitle,\n DrawerTrigger,\n} from \"../ui/Drawer.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\nimport { Search } from \"./Search.js\";\nimport { ThemeSwitch } from \"./ThemeSwitch.js\";\nimport { isHiddenItem, TopNavItem } from \"./TopNavigation.js\";\n\nexport const MobileTopNavigation = () => {\n const { topNavigation } = useZudoku();\n const { isAuthenticated } = useAuth();\n const [drawerOpen, setDrawerOpen] = useState(false);\n\n return (\n <Drawer\n direction=\"right\"\n open={drawerOpen}\n onOpenChange={(open) => setDrawerOpen(open)}\n >\n <div className=\"flex lg:hidden justify-self-end\">\n <DrawerTrigger className=\"lg:hidden\">\n <MenuIcon size={22} />\n </DrawerTrigger>\n </div>\n <DrawerContent\n className=\"lg:hidden h-[100dvh] right-0 left-auto w-[320px] rounded-none\"\n aria-describedby={undefined}\n >\n <div className=\"p-4 overflow-y-auto overscroll-none\">\n <VisuallyHidden>\n <DrawerTitle>Navigation</DrawerTitle>\n </VisuallyHidden>\n <Search className=\"flex p-4\" />\n <ul className=\"flex flex-col items-center gap-4 p-4\">\n <li>\n <ThemeSwitch />\n </li>\n {topNavigation.filter(isHiddenItem(isAuthenticated)).map((item) => (\n <li key={item.label}>\n <button onClick={() => setDrawerOpen(false)}>\n <TopNavItem {...item} />\n </button>\n </li>\n ))}\n </ul>\n </div>\n </DrawerContent>\n </Drawer>\n );\n};\n","import { memo } from \"react\";\nimport { Link } from \"react-router\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport { Skeleton } from \"zudoku/ui/Skeleton.js\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport { isProfileMenuPlugin, ProfileNavigationItem } from \"../core/plugins.js\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from \"../ui/DropdownMenu.js\";\nimport { joinUrl } from \"../util/joinUrl.js\";\nimport { Banner } from \"./Banner.js\";\nimport { ClientOnly } from \"./ClientOnly.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\nimport { MobileTopNavigation } from \"./MobileTopNavigation.js\";\nimport { Search } from \"./Search.js\";\nimport { Slotlet } from \"./SlotletProvider.js\";\nimport { ThemeSwitch } from \"./ThemeSwitch.js\";\nimport { TopNavigation } from \"./TopNavigation.js\";\n\nconst RecursiveMenu = ({ item }: { item: ProfileNavigationItem }) => {\n return item.children ? (\n <DropdownMenuSub key={item.label}>\n <DropdownMenuSubTrigger>{item.label}</DropdownMenuSubTrigger>\n <DropdownMenuPortal>\n <DropdownMenuSubContent>\n {item.children.map((item, i) => (\n // eslint-disable-next-line react/no-array-index-key\n <RecursiveMenu key={i} item={item} />\n ))}\n </DropdownMenuSubContent>\n </DropdownMenuPortal>\n </DropdownMenuSub>\n ) : (\n <Link to={item.path ?? \"\"}>\n <DropdownMenuItem key={item.label} className=\"flex gap-2\">\n {item.icon && (\n <item.icon size={16} strokeWidth={1} absoluteStrokeWidth />\n )}\n {item.label}\n </DropdownMenuItem>\n </Link>\n );\n};\n\nexport const Header = memo(function HeaderInner() {\n const auth = useAuth();\n const { isAuthenticated, profile, isAuthEnabled } = useAuth();\n const context = useZudoku();\n const { page, plugins } = context;\n\n const accountItems = plugins\n .filter((p) => isProfileMenuPlugin(p))\n .flatMap((p) => p.getProfileMenuItems(context))\n .sort((i) => i.weight ?? 0);\n\n return (\n <header className=\"sticky lg:top-0 z-10 bg-background/80 backdrop-blur w-full\">\n <Banner />\n <div className=\"border-b\">\n <div className=\"max-w-screen-2xl 2xl:border-x mx-auto grid grid-cols-[1fr_auto] lg:grid-cols-[calc(var(--side-nav-width))_1fr] lg:gap-12 items-center px-4 lg:px-8 h-[--top-header-height]\">\n <div className=\"flex\">\n <Link to=\"/\">\n <div className=\"flex items-center gap-3.5\">\n {page?.logo && (\n <>\n <img\n src={\n /https?:\\/\\//.test(page.logo.src.light)\n ? page.logo.src.light\n : joinUrl(\n import.meta.env.BASE_URL,\n page.logo.src.light,\n )\n }\n alt={page.logo.alt ?? page.pageTitle}\n style={{ width: page.logo.width }}\n className=\"h-10 dark:hidden\"\n loading=\"lazy\"\n />\n <img\n src={\n /https?:\\/\\//.test(page.logo.src.dark)\n ? page.logo.src.dark\n : joinUrl(\n import.meta.env.BASE_URL,\n page.logo.src.dark,\n )\n }\n alt={page.logo.alt ?? page.pageTitle}\n style={{ width: page.logo.width }}\n className=\"h-10 hidden dark:block\"\n loading=\"lazy\"\n />\n </>\n )}\n <span className=\"font-bold text-2xl text-foreground/85 tracking-wide\">\n {page?.pageTitle}\n </span>\n </div>\n </Link>\n </div>\n <div className=\"grid grid-cols-1 lg:grid-cols-[--sidecar-grid-cols] items-center gap-8\">\n <div className=\"w-full justify-center hidden lg:flex\">\n <Search />\n </div>\n\n <MobileTopNavigation />\n <div className=\"hidden lg:flex items-center justify-self-end text-sm gap-2\">\n <Slotlet name=\"head-navigation-start\" />\n {isAuthEnabled && (\n <ClientOnly\n fallback={<Skeleton className=\"rounded h-5 w-24 mr-4\" />}\n >\n {!isAuthenticated ? (\n <Button variant=\"ghost\" onClick={() => auth.login()}>\n Login\n </Button>\n ) : (\n Object.values(accountItems).length > 0 && (\n <DropdownMenu modal={false}>\n <DropdownMenuTrigger asChild>\n <Button variant=\"ghost\">\n {profile?.name ? `${profile.name}` : \"My Account\"}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent className=\"w-56\">\n <DropdownMenuLabel>\n {profile?.name ? `${profile.name}` : \"My Account\"}\n {profile?.email && (\n <div className=\"font-normal text-muted-foreground\">\n {profile.email}\n </div>\n )}\n </DropdownMenuLabel>\n {accountItems.filter((i) => i.category === \"top\")\n .length > 0 && <DropdownMenuSeparator />}\n {accountItems\n .filter((i) => i.category === \"top\")\n .map((i) => (\n <RecursiveMenu key={i.label} item={i} />\n ))}\n {accountItems.filter(\n (i) => !i.category || i.category === \"middle\",\n ).length > 0 && <DropdownMenuSeparator />}\n {accountItems\n .filter(\n (i) => !i.category || i.category === \"middle\",\n )\n .map((i) => (\n <RecursiveMenu key={i.label} item={i} />\n ))}\n {accountItems.filter((i) => i.category === \"bottom\")\n .length > 0 && <DropdownMenuSeparator />}\n {accountItems\n .filter((i) => i.category === \"bottom\")\n .map((i) => (\n <RecursiveMenu key={i.label} item={i} />\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n )}\n </ClientOnly>\n )}\n <Slotlet name=\"head-navigation-end\" />\n <ThemeSwitch />\n </div>\n </div>\n </div>\n </div>\n <div className=\"border-b hidden lg:block\">\n <div className=\"max-w-screen-2xl mx-auto 2xl:border-x\">\n <Slotlet name=\"top-navigation-before\" />\n <TopNavigation />\n <Slotlet name=\"top-navigation-after\" />\n </div>\n </div>\n </header>\n );\n});\n","import { forwardRef, type PropsWithChildren } from \"react\";\nimport { cn } from \"../../util/cn.js\";\n\nexport const SidebarWrapper = forwardRef<\n HTMLDivElement,\n PropsWithChildren<{ pushMainContent?: boolean; className?: string }>\n>(({ children, className, pushMainContent }, ref) => (\n <nav\n // this data attribute is used in `Layout.tsx` to determine if side navigation\n // is present for the current page so the main content is pushed to the right\n // it's also important to set `peer` class here.\n // maybe this could be simplified by adjusting the layout\n data-navigation={String(pushMainContent)}\n className={cn(\n \"scrollbar peer hidden lg:flex flex-col fixed text-sm overflow-y-auto shrink-0 border-r pr-6\",\n \"-mx-[--padding-nav-item] pb-20 pt-[--padding-content-top]\",\n \"w-[--side-nav-width] h-[calc(100%-var(--header-height))] scroll-pt-2 gap-2\",\n !pushMainContent && \"border-r-0\",\n className,\n )}\n ref={ref}\n >\n {children}\n </nav>\n));\n\nSidebarWrapper.displayName = \"SidebarWrapper\";\n","import { useEffect, useRef } from \"react\";\n\nimport { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport { DrawerContent, DrawerTitle } from \"../../ui/Drawer.js\";\nimport { scrollIntoViewIfNeeded } from \"../../util/scrollIntoViewIfNeeded.js\";\nimport { useCurrentNavigation } from \"../context/ZudokuContext.js\";\nimport { Slotlet } from \"../SlotletProvider.js\";\nimport { SidebarItem } from \"./SidebarItem.js\";\nimport { SidebarWrapper } from \"./SidebarWrapper.js\";\n\nexport const Sidebar = ({\n onRequestClose,\n}: {\n onRequestClose?: () => void;\n}) => {\n const navRef = useRef<HTMLDivElement | null>(null);\n const navigation = useCurrentNavigation();\n\n useEffect(() => {\n const active = navRef.current?.querySelector('[aria-current=\"page\"]');\n scrollIntoViewIfNeeded(active ?? null);\n }, []);\n\n return (\n <>\n <SidebarWrapper\n ref={navRef}\n pushMainContent={navigation.sidebar.length > 0}\n >\n <Slotlet name=\"zudoku-before-navigation\" />\n {navigation.sidebar.map((item) => (\n <SidebarItem key={item.label} item={item} />\n ))}\n <Slotlet name=\"zudoku-after-navigation\" />\n </SidebarWrapper>\n <DrawerContent\n className=\"lg:hidden h-[100dvh] left-0 w-[320px] rounded-none\"\n aria-describedby={undefined}\n >\n <div className=\"p-4 overflow-y-auto overscroll-none\">\n <VisuallyHidden>\n <DrawerTitle>Sidebar</DrawerTitle>\n </VisuallyHidden>\n {navigation.sidebar.map((item) => (\n <SidebarItem\n key={item.label}\n item={item}\n onRequestClose={onRequestClose}\n />\n ))}\n </div>\n </DrawerContent>\n </>\n );\n};\n","import { Helmet } from \"@zudoku/react-helmet-async\";\nimport { PanelLeftIcon } from \"lucide-react\";\nimport { Suspense, useEffect, useRef, useState, type ReactNode } from \"react\";\nimport { Outlet, useLocation, useNavigation } from \"react-router\";\nimport { useSpinDelay } from \"spin-delay\";\nimport { Drawer, DrawerTrigger } from \"../ui/Drawer.js\";\nimport { cn } from \"../util/cn.js\";\nimport { useScrollToAnchor } from \"../util/useScrollToAnchor.js\";\nimport { useScrollToTop } from \"../util/useScrollToTop.js\";\nimport { useViewportAnchor } from \"./context/ViewportAnchorContext.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\nimport { Header } from \"./Header.js\";\nimport { Sidebar } from \"./navigation/Sidebar.js\";\nimport { Slotlet } from \"./SlotletProvider.js\";\nimport { Spinner } from \"./Spinner.js\";\n\nconst LoadingFallback = () => (\n <main className=\"grid h-[calc(100vh-var(--header-height))] place-items-center\">\n <Spinner />\n </main>\n);\n\nexport const Layout = ({ children }: { children?: ReactNode }) => {\n const location = useLocation();\n const { setActiveAnchor } = useViewportAnchor();\n const { meta, authentication } = useZudoku();\n\n useScrollToAnchor();\n useScrollToTop();\n\n const previousLocationPath = useRef(location.pathname);\n\n useEffect(() => {\n // Initialize the authentication plugin\n authentication?.onPageLoad?.();\n }, [authentication]);\n\n useEffect(() => {\n // always reset on location change\n if (location.pathname !== previousLocationPath.current) {\n setActiveAnchor(\"\");\n }\n previousLocationPath.current = location.pathname;\n }, [location.pathname, setActiveAnchor]);\n\n // Page transition is happening: https://reactrouter.com/start/framework/pending-ui#global-pending-navigation\n const isNavigating = Boolean(useNavigation().location);\n const showSpinner = useSpinDelay(isNavigating, {\n delay: 300,\n minDuration: 500,\n });\n const [isDrawerOpen, setDrawerOpen] = useState(false);\n\n return (\n <>\n {import.meta.env.MODE === \"standalone\" && (\n <style>{`:root { --top-nav-height: 0px; }`}</style>\n )}\n <Helmet titleTemplate={meta?.title}>\n {meta?.description && (\n <meta name=\"description\" content={meta.description} />\n )}\n {meta?.favicon && <link rel=\"icon\" href={meta.favicon} />}\n </Helmet>\n <Slotlet name=\"layout-before-head\" />\n <Header />\n <Slotlet name=\"layout-after-head\" />\n\n <div className=\"w-full min-h-[calc(100vh-var(--header-height))] max-w-screen-2xl mx-auto px-4 lg:px-8 2xl:border-x\">\n {showSpinner ? (\n <LoadingFallback />\n ) : (\n <Suspense fallback={<LoadingFallback />}>\n <Drawer\n direction=\"left\"\n open={isDrawerOpen}\n onOpenChange={(open) => setDrawerOpen(open)}\n >\n <Sidebar onRequestClose={() => setDrawerOpen(false)} />\n <div\n className={cn(\n \"lg:hidden -mx-4 px-4 py-2 sticky bg-background/80 backdrop-blur z-10 top-0 left-0 right-0 border-b\",\n \"peer-data-[navigation=false]:hidden\",\n )}\n >\n <DrawerTrigger className=\"flex items-center gap-2\">\n <PanelLeftIcon size={16} strokeWidth={1.5} />\n <span className=\"text-sm\">Menu</span>\n </DrawerTrigger>\n </div>\n <main\n data-pagefind-body\n className={cn(\n \"h-full dark:border-white/10 translate-x-0\",\n \"lg:overflow-visible\",\n // This works in tandem with the `SidebarWrapper` component\n \"lg:peer-data-[navigation=true]:w-[calc(100%-var(--side-nav-width))]\",\n \"lg:peer-data-[navigation=true]:translate-x-[--side-nav-width] lg:peer-data-[navigation=true]:pl-12\",\n )}\n >\n <Slotlet name=\"zudoku-before-content\" />\n {children ?? <Outlet />}\n <Slotlet name=\"zudoku-after-content\" />\n </main>\n </Drawer>\n </Suspense>\n )}\n </div>\n </>\n );\n};\n","import type { ReactNode } from \"react\";\nimport { CategoryHeading } from \"./CategoryHeading.js\";\nimport { Heading } from \"./Heading.js\";\nimport { ProseClasses } from \"./Markdown.js\";\n\nexport const ErrorPage = ({\n title = \"An error occurred\",\n message,\n category,\n}: {\n title?: ReactNode;\n message?: ReactNode;\n category?: ReactNode;\n}) => {\n return (\n <div className={ProseClasses + \" h-full pt-[--padding-content-top]\"}>\n {category && <CategoryHeading>{category}</CategoryHeading>}\n {title && (\n <Heading level={1} className=\"flex gap-3.5 items-center\">\n {title}\n </Heading>\n )}\n <p>{message}</p>\n </div>\n );\n};\n","import type { ReactNode } from \"react\";\nimport { ErrorPage } from \"./ErrorPage.js\";\n\ntype StatusPageProps = {\n statusCode: number;\n message?: ReactNode;\n};\n\nconst getDefaultContent = (\n statusCode: number,\n): { title: string; message: string } => {\n switch (statusCode) {\n case 400:\n return {\n title: \"Bad Request\",\n message:\n \"The request could not be understood by the server due to malformed syntax.\",\n };\n case 403:\n return {\n title: \"Forbidden\",\n message: \"You don't have permission to access this resource.\",\n };\n case 404:\n return {\n title: \"Not Found\",\n message: \"The requested resource could not be found.\",\n };\n case 405:\n return {\n title: \"Method Not Allowed\",\n message:\n \"The request method is not supported for the requested resource.\",\n };\n case 414:\n return {\n title: \"Request URI Too Large\",\n message: \"The request URI is too large.\",\n };\n case 416:\n return {\n title: \"Range Not Satisfiable\",\n message: \"The server cannot satisfy the request range.\",\n };\n case 500:\n return {\n title: \"Internal Server Error\",\n message: \"An unexpected error occurred while processing your request.\",\n };\n case 501:\n return {\n title: \"Not Implemented\",\n message:\n \"The server does not support the functionality required to fulfill the request.\",\n };\n case 502:\n return {\n title: \"Bad Gateway\",\n message:\n \"The server received an invalid response from the upstream server.\",\n };\n case 503:\n return {\n title: \"Service Unavailable\",\n message: \"The server is temporarily unable to handle the request.\",\n };\n case 504:\n return {\n title: \"Gateway Timeout\",\n message:\n \"The server did not receive a timely response from the upstream server.\",\n };\n default:\n return {\n title: \"An error occurred\",\n message: \"Something went wrong while processing your request.\",\n };\n }\n};\n\nexport const StatusPage = ({ statusCode, message }: StatusPageProps) => {\n const defaultContent = getDefaultContent(statusCode);\n\n return (\n <ErrorPage\n title={defaultContent.title}\n message={message ?? defaultContent.message}\n category={statusCode}\n />\n );\n};\n","'use client';\nimport { createContext, Component, createElement, useContext, useState, useMemo, forwardRef } from 'react';\n\nconst ErrorBoundaryContext = createContext(null);\n\nconst initialState = {\n didCatch: false,\n error: null\n};\nclass ErrorBoundary extends Component {\n constructor(props) {\n super(props);\n this.resetErrorBoundary = this.resetErrorBoundary.bind(this);\n this.state = initialState;\n }\n static getDerivedStateFromError(error) {\n return {\n didCatch: true,\n error\n };\n }\n resetErrorBoundary() {\n const {\n error\n } = this.state;\n if (error !== null) {\n var _this$props$onReset, _this$props;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n (_this$props$onReset = (_this$props = this.props).onReset) === null || _this$props$onReset === void 0 ? void 0 : _this$props$onReset.call(_this$props, {\n args,\n reason: \"imperative-api\"\n });\n this.setState(initialState);\n }\n }\n componentDidCatch(error, info) {\n var _this$props$onError, _this$props2;\n (_this$props$onError = (_this$props2 = this.props).onError) === null || _this$props$onError === void 0 ? void 0 : _this$props$onError.call(_this$props2, error, info);\n }\n componentDidUpdate(prevProps, prevState) {\n const {\n didCatch\n } = this.state;\n const {\n resetKeys\n } = this.props;\n\n // There's an edge case where if the thing that triggered the error happens to *also* be in the resetKeys array,\n // we'd end up resetting the error boundary immediately.\n // This would likely trigger a second error to be thrown.\n // So we make sure that we don't check the resetKeys on the first call of cDU after the error is set.\n\n if (didCatch && prevState.error !== null && hasArrayChanged(prevProps.resetKeys, resetKeys)) {\n var _this$props$onReset2, _this$props3;\n (_this$props$onReset2 = (_this$props3 = this.props).onReset) === null || _this$props$onReset2 === void 0 ? void 0 : _this$props$onReset2.call(_this$props3, {\n next: resetKeys,\n prev: prevProps.resetKeys,\n reason: \"keys\"\n });\n this.setState(initialState);\n }\n }\n render() {\n const {\n children,\n fallbackRender,\n FallbackComponent,\n fallback\n } = this.props;\n const {\n didCatch,\n error\n } = this.state;\n let childToRender = children;\n if (didCatch) {\n const props = {\n error,\n resetErrorBoundary: this.resetErrorBoundary\n };\n if (typeof fallbackRender === \"function\") {\n childToRender = fallbackRender(props);\n } else if (FallbackComponent) {\n childToRender = createElement(FallbackComponent, props);\n } else if (fallback !== undefined) {\n childToRender = fallback;\n } else {\n throw error;\n }\n }\n return createElement(ErrorBoundaryContext.Provider, {\n value: {\n didCatch,\n error,\n resetErrorBoundary: this.resetErrorBoundary\n }\n }, childToRender);\n }\n}\nfunction hasArrayChanged() {\n let a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n let b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return a.length !== b.length || a.some((item, index) => !Object.is(item, b[index]));\n}\n\nfunction assertErrorBoundaryContext(value) {\n if (value == null || typeof value.didCatch !== \"boolean\" || typeof value.resetErrorBoundary !== \"function\") {\n throw new Error(\"ErrorBoundaryContext not found\");\n }\n}\n\nfunction useErrorBoundary() {\n const context = useContext(ErrorBoundaryContext);\n assertErrorBoundaryContext(context);\n const [state, setState] = useState({\n error: null,\n hasError: false\n });\n const memoized = useMemo(() => ({\n resetBoundary: () => {\n context.resetErrorBoundary();\n setState({\n error: null,\n hasError: false\n });\n },\n showBoundary: error => setState({\n error,\n hasError: true\n })\n }), [context.resetErrorBoundary]);\n if (state.hasError) {\n throw state.error;\n }\n return memoized;\n}\n\nfunction withErrorBoundary(component, errorBoundaryProps) {\n const Wrapped = forwardRef((props, ref) => createElement(ErrorBoundary, errorBoundaryProps, createElement(component, {\n ...props,\n ref\n })));\n\n // Format for display in DevTools\n const name = component.displayName || component.name || \"Unknown\";\n Wrapped.displayName = \"withErrorBoundary(\".concat(name, \")\");\n return Wrapped;\n}\n\nexport { ErrorBoundary, ErrorBoundaryContext, useErrorBoundary, withErrorBoundary };\n","export let createNanoEvents = () => ({\n emit(event, ...args) {\n for (\n let callbacks = this.events[event] || [],\n i = 0,\n length = callbacks.length;\n i < length;\n i++\n ) {\n callbacks[i](...args)\n }\n },\n events: {},\n on(event, cb) {\n ;(this.events[event] ||= []).push(cb)\n return () => {\n this.events[event] = this.events[event]?.filter(i => cb !== i)\n }\n }\n})\n","import { createNanoEvents } from \"nanoevents\";\nimport { ReactNode } from \"react\";\nimport { Location } from \"react-router\";\nimport { TopNavigationItem } from \"../../config/validators/common.js\";\nimport type { SidebarConfig } from \"../../config/validators/SidebarSchema.js\";\nimport { type AuthenticationProvider } from \"../authentication/authentication.js\";\nimport type { ComponentsContextType } from \"../components/context/ComponentsContext.js\";\nimport { Slotlets } from \"../components/SlotletProvider.js\";\nimport { joinPath } from \"../util/joinPath.js\";\nimport type { MdxComponentsType } from \"../util/MdxComponents.js\";\nimport { objectEntries } from \"../util/objectEntries.js\";\nimport {\n isApiIdentityPlugin,\n isEventConsumerPlugin,\n isNavigationPlugin,\n type NavigationPlugin,\n needsInitialization,\n type ZudokuPlugin,\n} from \"./plugins.js\";\n\nexport interface ZudokuEvents {\n location: (event: { from?: Location; to: Location }) => void;\n}\n\nexport interface ApiIdentity {\n authorizeRequest: (request: Request) => Promise<Request> | Request;\n label: string;\n id: string;\n}\n\nexport type ApiKeyCache = \"api-keys\";\n\ntype Metadata = Partial<{\n title: string;\n description: string;\n logo: string;\n favicon: string;\n generator: string;\n applicationName: string;\n referrer: string;\n keywords: string[];\n authors: string[];\n creator: string;\n publisher: string;\n}>;\n\ntype Page = Partial<{\n pageTitle?: string;\n logo?: {\n src: {\n light: string;\n dark: string;\n };\n width?: string;\n alt?: string;\n };\n banner?: {\n message: ReactNode;\n color?: \"note\" | \"tip\" | \"info\" | \"caution\" | \"danger\" | (string & {});\n dismissible?: boolean;\n };\n}>;\n\nexport type ZudokuContextOptions = {\n metadata?: Metadata;\n page?: Page;\n authentication?: AuthenticationProvider;\n topNavigation?: TopNavigationItem[];\n sidebars?: SidebarConfig;\n plugins?: ZudokuPlugin[];\n slotlets?: Slotlets;\n mdx?: {\n components?: MdxComponentsType;\n };\n overrides?: ComponentsContextType;\n protectedRoutes?: string[];\n};\n\nexport class ZudokuContext {\n public plugins: NonNullable<ZudokuContextOptions[\"plugins\"]>;\n public sidebars: SidebarConfig;\n public topNavigation: NonNullable<ZudokuContextOptions[\"topNavigation\"]>;\n public meta: ZudokuContextOptions[\"metadata\"];\n public page: ZudokuContextOptions[\"page\"];\n public authentication?: ZudokuContextOptions[\"authentication\"];\n private readonly navigationPlugins: NavigationPlugin[];\n private emitter = createNanoEvents<ZudokuEvents>();\n\n constructor(public readonly options: ZudokuContextOptions) {\n this.plugins = options.plugins ?? [];\n this.topNavigation = options.topNavigation ?? [];\n this.sidebars = options.sidebars ?? {};\n this.navigationPlugins = this.plugins.filter(isNavigationPlugin);\n this.authentication = options.authentication;\n this.meta = options.metadata;\n this.page = options.page;\n\n this.plugins.forEach((plugin) => {\n if (!isEventConsumerPlugin(plugin)) return;\n\n objectEntries(plugin.events).forEach(([event, handler]) => {\n this.emitter.on(event, handler);\n });\n });\n }\n\n initialize = async (): Promise<void> => {\n await Promise.all(\n this.plugins\n .filter(needsInitialization)\n .map((plugin) => plugin.initialize?.(this)),\n );\n };\n\n getApiIdentities = async () => {\n const keys = await Promise.all(\n this.plugins\n .filter(isApiIdentityPlugin)\n .map((plugin) => plugin.getIdentities(this)),\n );\n\n return keys.flat();\n };\n\n addEventListener<E extends keyof ZudokuEvents>(\n event: E,\n callback: ZudokuEvents[E],\n ) {\n return this.emitter.on(event, callback);\n }\n\n emitEvent = <E extends keyof ZudokuEvents>(\n event: E,\n ...data: Parameters<ZudokuEvents[E]>\n ) => {\n return this.emitter.emit(event, ...data);\n };\n\n getPluginSidebar = async (path: string) => {\n const navigations = await Promise.all(\n this.navigationPlugins.map((plugin) =>\n plugin.getSidebar?.(joinPath(path)),\n ),\n );\n\n return navigations.flatMap((nav) => nav ?? []);\n };\n\n signRequest = async (request: Request) => {\n if (!this.authentication) {\n throw new Error(\"No authentication provider configured\");\n }\n\n const accessToken = await this.authentication.getAccessToken();\n\n request.headers.set(\"Authorization\", `Bearer ${accessToken}`);\n\n return request;\n };\n}\n","import { FallbackProps } from \"react-error-boundary\";\nimport { ErrorAlert } from \"./ErrorAlert.js\";\n\nexport function TopLevelError({ error, resetErrorBoundary }: FallbackProps) {\n // Call resetErrorBoundary() to reset the error boundary and retry the render.\n\n return <ErrorAlert error={error} />;\n}\n","const root = globalThis;\n\nif (!root.requestIdleCallback || !root.cancelIdleCallback) {\n root.requestIdleCallback = (cb: IdleRequestCallback) => setTimeout(cb, 1);\n root.cancelIdleCallback = clearTimeout;\n}\n","import {\n createContext,\n useContext,\n type ComponentProps,\n type ComponentType,\n} from \"react\";\nimport { Header } from \"../Header.js\";\n\nexport const DEFAULT_COMPONENTS = {\n Header,\n};\n\nexport type ComponentsContextType = {\n Header?: ComponentType<ComponentProps<typeof Header>>;\n};\n\nconst ComponentsContext =\n createContext<Required<ComponentsContextType>>(DEFAULT_COMPONENTS);\n\nexport const ComponentsProvider = ComponentsContext.Provider;\n\nexport const useComponents = () => {\n return useContext(ComponentsContext);\n};\n","import { useEffect, useRef } from \"react\";\nimport { useLocation, type Location } from \"react-router\";\nimport { useZudoku } from \"./ZudokuContext.js\";\n\nexport const RouterEventsEmitter = () => {\n const location = useLocation();\n const zudoku = useZudoku();\n const previousLocation = useRef<Location | undefined>(undefined);\n\n useEffect(() => {\n zudoku.emitEvent(\"location\", {\n from: previousLocation.current,\n to: location,\n });\n previousLocation.current = location;\n }, [zudoku, location]);\n\n return null;\n};\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport type { PropsWithChildren } from \"react\";\nimport { ZudokuContext } from \"../../core/ZudokuContext.js\";\nimport { ZudokuReactContext } from \"./ZudokuContext.js\";\n\nexport const ZudokuProvider = ({\n children,\n context,\n}: PropsWithChildren<{ context: ZudokuContext }>) => {\n useSuspenseQuery({\n queryFn: async () => {\n await context.initialize();\n return true;\n },\n queryKey: [\"zudoku-initialize\"],\n });\n\n return (\n <ZudokuReactContext.Provider value={context}>\n {children}\n </ZudokuReactContext.Provider>\n );\n};\n","import { MDXProvider } from \"@mdx-js/react\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { ThemeProvider } from \"next-themes\";\nimport {\n memo,\n type PropsWithChildren,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { ErrorBoundary } from \"react-error-boundary\";\nimport { Outlet, useNavigation } from \"react-router\";\nimport { hasHead, isMdxProviderPlugin } from \"../core/plugins.js\";\nimport {\n ZudokuContext,\n type ZudokuContextOptions,\n} from \"../core/ZudokuContext.js\";\nimport { TopLevelError } from \"../errors/TopLevelError.js\";\nimport { StaggeredRenderContext } from \"../plugins/openapi/StaggeredRender.js\";\nimport { MdxComponents } from \"../util/MdxComponents.js\";\nimport \"../util/requestIdleCallbackPolyfill.js\";\nimport {\n ComponentsProvider,\n DEFAULT_COMPONENTS,\n} from \"./context/ComponentsContext.js\";\nimport { RouterEventsEmitter } from \"./context/RouterEventsEmitter.js\";\nimport { ViewportAnchorProvider } from \"./context/ViewportAnchorContext.js\";\nimport { ZudokuProvider } from \"./context/ZudokuProvider.js\";\nimport { SlotletProvider } from \"./SlotletProvider.js\";\n\nconst ZudokoInner = memo(\n ({ children, ...props }: PropsWithChildren<ZudokuContextOptions>) => {\n const components = useMemo(\n () => ({ ...DEFAULT_COMPONENTS, ...props.overrides }),\n [props.overrides],\n );\n\n const mdxComponents = useMemo(() => {\n const componentsFromPlugins = (props.plugins ?? [])\n .filter(isMdxProviderPlugin)\n .flatMap((plugin) =>\n plugin.getMdxComponents ? [plugin.getMdxComponents()] : [],\n );\n\n return {\n ...componentsFromPlugins.reduce(\n (acc, curr) => ({ ...acc, ...curr }),\n {},\n ),\n ...MdxComponents,\n ...props.mdx?.components,\n };\n }, [props.mdx?.components, props.plugins]);\n const { stagger } = useContext(StaggeredRenderContext);\n const [didNavigate, setDidNavigate] = useState(false);\n const staggeredValue = useMemo(\n () => (didNavigate ? { stagger: true } : { stagger }),\n [stagger, didNavigate],\n );\n const navigation = useNavigation();\n\n useEffect(() => {\n if (didNavigate) {\n return;\n }\n setDidNavigate(true);\n }, [didNavigate, navigation.location]);\n\n const [zudokuContext] = useState(() => new ZudokuContext(props));\n\n const heads = props.plugins\n ?.flatMap((plugin) => (hasHead(plugin) ? (plugin.getHead?.() ?? []) : []))\n // eslint-disable-next-line react/no-array-index-key\n .map((entry, i) => <Helmet key={i}>{entry}</Helmet>);\n\n return (\n <>\n {heads}\n <StaggeredRenderContext.Provider value={staggeredValue}>\n <ZudokuProvider context={zudokuContext}>\n <RouterEventsEmitter />\n <MDXProvider components={mdxComponents}>\n <ThemeProvider attribute=\"class\" disableTransitionOnChange>\n <ComponentsProvider value={components}>\n <SlotletProvider slotlets={props.slotlets}>\n <ViewportAnchorProvider>\n {children ?? <Outlet />}\n </ViewportAnchorProvider>\n </SlotletProvider>\n </ComponentsProvider>\n </ThemeProvider>\n </MDXProvider>\n </ZudokuProvider>\n </StaggeredRenderContext.Provider>\n </>\n );\n },\n);\n\nZudokoInner.displayName = \"ZudokoInner\";\n\nconst Zudoku = (props: ZudokuContextOptions) => {\n return (\n <ErrorBoundary FallbackComponent={TopLevelError}>\n <ZudokoInner {...props} />\n </ErrorBoundary>\n );\n};\nZudoku.displayName = \"Zudoku\";\n\nexport { Zudoku };\n","import { useMDXComponents as useMDXComponentsImport } from \"@mdx-js/react\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { useTheme as useThemeImport } from \"next-themes\";\nimport { Link as LinkImport } from \"react-router\";\nimport { useAuth as useAuthImport } from \"../authentication/hook.js\";\nimport { RouteGuard as RouteGuardImport } from \"../core/RouteGuard.js\";\nimport { RouterError as RouterErrorImport } from \"../errors/RouterError.js\";\nimport { ServerError as ServerErrorImport } from \"../errors/ServerError.js\";\nimport { Button as ButtonImport } from \"../ui/Button.js\";\nimport { Callout as CalloutImport } from \"../ui/Callout.js\";\nimport {\n Bootstrap as BootstrapImport,\n BootstrapStatic as BootstrapStaticImport,\n} from \"./Bootstrap.js\";\nimport {\n CACHE_KEYS as CACHE_KEYS_IMPORT,\n useCache as useCacheImport,\n} from \"./cache.js\";\nimport { ClientOnly as ClientOnlyImport } from \"./ClientOnly.js\";\nimport { useZudoku as useZudokuImport } from \"./context/ZudokuContext.js\";\nimport { Layout as LayoutImport } from \"./Layout.js\";\nimport { Markdown as MarkdownImport } from \"./Markdown.js\";\nimport { Spinner as SpinnerImport } from \"./Spinner.js\";\nimport { StatusPage as StatusPageImport } from \"./StatusPage.js\";\nimport { Zudoku as ZudokuImport } from \"./Zudoku.js\";\n\nexport const useMDXComponents = /*@__PURE__*/ useMDXComponentsImport;\nexport const Layout = /*@__PURE__*/ LayoutImport;\nexport const RouterError = /*@__PURE__*/ RouterErrorImport;\nexport const ServerError = /*@__PURE__*/ ServerErrorImport;\nexport const Bootstrap = /*@__PURE__*/ BootstrapImport;\nexport const BootstrapStatic = /*@__PURE__*/ BootstrapStaticImport;\nexport const RouteGuard = /*@__PURE__*/ RouteGuardImport;\n\nexport const Head = /*@__PURE__*/ Helmet;\n\nexport const useZudoku = /*@__PURE__*/ useZudokuImport;\nexport const useAuth = /*@__PURE__*/ useAuthImport;\nexport const useCache = /*@__PURE__*/ useCacheImport;\nexport const CACHE_KEYS = /*@__PURE__*/ CACHE_KEYS_IMPORT;\nexport const Zudoku = /*@__PURE__*/ ZudokuImport;\n\nexport const StatusPage = /*@__PURE__*/ StatusPageImport;\nexport const Callout = /*@__PURE__*/ CalloutImport;\nexport const Markdown = /*@__PURE__*/ MarkdownImport;\nexport const Spinner = /*@__PURE__*/ SpinnerImport;\nexport const ClientOnly = /*@__PURE__*/ ClientOnlyImport;\nexport const Button = /*@__PURE__*/ ButtonImport;\nexport const Link = /*@__PURE__*/ LinkImport;\nexport const useTheme = /*@__PURE__*/ useThemeImport;\n"],"names":["QueryCache","_a","Subscribable","config","__privateAdd","_queries","__privateSet","client","options","state","queryKey","queryHash","hashQueryKeyByOptions","query","Query","__privateGet","queryInMap","notifyManager","filters","defaultedFilters","matchQuery","queries","event","listener","MutationCache","_mutations","_scopes","_mutationId","mutation","Mutation","__privateWrapper","scope","scopeFor","scopedMutations","index","mutationsWithSameScope","firstPendingMutation","m","foundMutation","matchMutation","pausedMutations","x","noop","infiniteQueryBehavior","pages","context","direction","_c","_b","oldPages","_d","oldPageParams","_e","result","currentPage","fetchFn","cancelled","addSignalProperty","object","queryFn","ensureQueryFn","fetchPage","data","param","previous","queryFnContext","page","maxPages","addTo","addToStart","addToEnd","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","remainingPages","pageParams","lastIndex","QueryClient","_queryCache","_mutationCache","_defaultOptions","_queryDefaults","_mutationDefaults","_mountCount","_unsubscribeFocus","_unsubscribeOnline","focusManager","focused","onlineManager","online","defaultedOptions","cachedData","resolveStaleTime","updater","prevData","functionalUpdate","queryCache","refetchFilters","cancelOptions","defaultedCancelOptions","promises","fetchOptions","promise","hashKey","defaults","queryDefault","partialMatchKey","mutationKey","skipToken","defaultTransformerFn","hydrate","dehydratedState","mutationCache","deserializeData","mutations","mutationOptions","meta","_ignored","serializedState","initialPromise","hasProperty","obj","key","HydrationBoundary","children","queryClient","useQueryClient","hydrationQueue","setHydrationQueue","React","optionsRef","newQueries","existingQueries","dehydratedQuery","existingQuery","hydrationIsNewer","queryAlreadyQueued","prev","useLatest","current","valueRef","useRef","useEffect","RouteGuard","auth","useAuth","zudoku","useZudoku","navigate","useNavigate","location","useLocation","latestPath","isProtected","path","matchPath","useQuery","resolve","jsx","Dialog","open","DialogContent","DialogHeader","DialogTitle","DialogDescription","ZudokuError","Outlet","ServerError","error","ErrorAlert","RouterProvider2","props","RouterProvider","ReactDOM","StaggeredRenderContext","createContext","Bootstrap","router","StrictMode","QueryClientProvider","HelmetProvider","BootstrapStatic","helmetContext","StaticRouterProvider","global","factory","exports","require$$0","this","react","defaultOptions","useIsSSR","isSSR","setIsSSR","useSpinDelay","loading","initialState","setState","timeout","delay","useScrollToTop","previousPath","isNewPage","hasAnchor","Skeleton","className","cn","COLOR_MAP","Banner","isBannerOpen","setIsBannerOpen","useState","mappedColor","style","jsxs","CircleXIcon","Search","ctx","isOpen","setIsOpen","onClose","useCallback","onKeyDown","searchPlugin","isSearchPlugin","SearchIcon","Suspense","ThemeSwitch","resolvedTheme","setTheme","useTheme","ClientOnly","Button","SunIcon","MoonIcon","isHiddenItem","isAuthenticated","item","TopNavigation","topNavigation","TopNavItem","Slotlet","id","label","defaultLink","sidebars","currentSidebar","currentNav","useCurrentNavigation","isNavigating","useNavigation","isActive","first","traverseSidebar","joinPath","NavLink","isPending","cx","MobileTopNavigation","drawerOpen","setDrawerOpen","Drawer","DrawerTrigger","MenuIcon","DrawerContent","VisuallyHidden","DrawerTitle","RecursiveMenu","DropdownMenuSub","DropdownMenuSubTrigger","DropdownMenuPortal","DropdownMenuSubContent","i","Link","DropdownMenuItem","Header","memo","profile","isAuthEnabled","plugins","accountItems","p","isProfileMenuPlugin","Fragment","joinUrl","DropdownMenu","DropdownMenuTrigger","DropdownMenuContent","DropdownMenuLabel","DropdownMenuSeparator","SidebarWrapper","forwardRef","pushMainContent","ref","Sidebar","onRequestClose","navRef","navigation","active","scrollIntoViewIfNeeded","SidebarItem","LoadingFallback","Spinner","Layout","setActiveAnchor","useViewportAnchor","authentication","useScrollToAnchor","previousLocationPath","showSpinner","isDrawerOpen","Helmet","PanelLeftIcon","ErrorPage","title","message","category","ProseClasses","CategoryHeading","Heading","getDefaultContent","statusCode","StatusPage","defaultContent","ErrorBoundaryContext","ErrorBoundary","Component","_this$props$onReset","_this$props","_len","args","_key","info","_this$props$onError","_this$props2","prevProps","prevState","didCatch","resetKeys","hasArrayChanged","_this$props$onReset2","_this$props3","fallbackRender","FallbackComponent","fallback","childToRender","createElement","a","b","createNanoEvents","callbacks","length","cb","ZudokuContext","__publicField","needsInitialization","plugin","isApiIdentityPlugin","nav","request","accessToken","isNavigationPlugin","isEventConsumerPlugin","objectEntries","handler","callback","TopLevelError","resetErrorBoundary","root","DEFAULT_COMPONENTS","ComponentsContext","ComponentsProvider","RouterEventsEmitter","previousLocation","ZudokuProvider","useSuspenseQuery","ZudokuReactContext","ZudokoInner","components","useMemo","mdxComponents","isMdxProviderPlugin","acc","curr","MdxComponents","stagger","useContext","didNavigate","setDidNavigate","staggeredValue","zudokuContext","heads","hasHead","entry","MDXProvider","ThemeProvider","SlotletProvider","ViewportAnchorProvider","Zudoku","useMDXComponents","useMDXComponentsImport","LayoutImport","RouterError","RouterErrorImport","ServerErrorImport","BootstrapImport","BootstrapStaticImport","RouteGuardImport","Head","useZudokuImport","useAuthImport","useCache","useCacheImport","CACHE_KEYS","CACHE_KEYS_IMPORT","ZudokuImport","StatusPageImport","Callout","CalloutImport","Markdown","MarkdownImport","SpinnerImport","ClientOnlyImport","ButtonImport","LinkImport","useThemeImport"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,9,12,26,27]}
1
+ {"version":3,"file":"zudoku.components.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
- import { z as f } from "./index-DwT-v3zK.js";
1
+ import { z as f } from "./index--oeBayMa.js";
2
2
  import { useState as m, useEffect as i } from "react";
3
- import { a } from "./hook-CN__aZIt.js";
3
+ import { e as a } from "./hook-BpiAQVtd.js";
4
4
  function d(e, t) {
5
5
  const s = a(), [n, o] = m();
6
6
  return i(() => s.addEventListener(e, (...u) => {
@@ -1,6 +1,6 @@
1
1
  import { CircleDashed as e } from "lucide-react";
2
2
  export * from "lucide-react";
3
- import { j as o } from "./jsx-runtime-CYK1ROHF.js";
3
+ import { j as o } from "./jsx-runtime-C5mzlN2N.js";
4
4
  import { TooltipProvider as t, Tooltip as i, TooltipTrigger as s, TooltipContent as n } from "./ui/Tooltip.js";
5
5
  const d = (r) => /* @__PURE__ */ o.jsx(t, { children: /* @__PURE__ */ o.jsxs(i, { children: [
6
6
  /* @__PURE__ */ o.jsx(s, { className: "text-red-500", children: /* @__PURE__ */ o.jsx(e, { ...r }) }),
@@ -1,121 +1,117 @@
1
- import { j as e } from "./jsx-runtime-CYK1ROHF.js";
2
- import { s as h } from "./index-LNp6rxyU.js";
3
- import { d as b, m as x } from "./chunk-IR6S3I6Y-D_3UmFIn.js";
4
- import { j as d } from "./joinUrl-10po2Jdj.js";
5
- import { u as j, b as y } from "./hook-CN__aZIt.js";
6
- import { H as v } from "./index.esm-CQHE3GEU.js";
7
- import { Link as N } from "./zudoku.components.js";
8
- import { H as S, M as w } from "./Markdown-DePfm7oQ.js";
9
- const H = ({
10
- items: s,
11
- filterCatalogItems: l = (n) => n,
1
+ import { j as t } from "./jsx-runtime-C5mzlN2N.js";
2
+ import { s as f } from "./index-BvvmIczU.js";
3
+ import { d as b, m as x } from "./chunk-BAXFHI7N-C9WnHsLV.js";
4
+ import { u as j, d as y, k as m } from "./hook-BpiAQVtd.js";
5
+ import { H as v } from "./index.esm-BFcSKCe-.js";
6
+ import { L as N } from "./index-PL1g52PU.js";
7
+ import { H as S, M as k } from "./Markdown-ms3FtIha.js";
8
+ const w = ({
9
+ items: r,
10
+ filterCatalogItems: o = (n) => n,
12
11
  label: c = "API Library",
13
- categoryLabel: r
12
+ categoryLabel: a
14
13
  }) => {
15
- const n = j(), o = b({ path: "/catalog/:category" }), a = o == null ? void 0 : o.params.category, p = y({
16
- queryFn: () => l(s, { auth: n }),
14
+ const n = j(), s = b({ path: "/catalog/:category" })?.params.category, l = y({
15
+ queryFn: () => o(r, { auth: n }),
17
16
  queryKey: ["catalogItems", n]
18
- }), i = a ? { "data-pagefind-ignore": "all" } : {};
19
- return /* @__PURE__ */ e.jsxs(
20
- "section",
21
- {
22
- className: "pt-[--padding-content-top] pb-[--padding-content-bottom]",
23
- ...i,
24
- children: [
25
- /* @__PURE__ */ e.jsx(v, { children: /* @__PURE__ */ e.jsxs("title", { children: [
26
- r ? `${r} - ` : "",
27
- c
28
- ] }) }),
29
- /* @__PURE__ */ e.jsxs("div", { className: "grid gap-4", children: [
30
- /* @__PURE__ */ e.jsxs(S, { level: 2, children: [
31
- c,
32
- r && ` - ${r}`
33
- ] }),
34
- /* @__PURE__ */ e.jsx("div", { className: "grid grid-cols-2 gap-4", children: p.data.filter(
35
- (t) => !a || t.categories.find(
36
- (m) => m.tags.find((u) => f(m.label, u) === a)
17
+ }), d = s ? { "data-pagefind-ignore": "all" } : {};
18
+ return /* @__PURE__ */ t.jsxs("section", { className: "pt-(--padding-content-top)", ...d, children: [
19
+ /* @__PURE__ */ t.jsx(v, { children: /* @__PURE__ */ t.jsxs("title", { children: [
20
+ a ? `${a} - ` : "",
21
+ c
22
+ ] }) }),
23
+ /* @__PURE__ */ t.jsxs("div", { className: "grid gap-4", children: [
24
+ /* @__PURE__ */ t.jsxs(S, { level: 2, children: [
25
+ c,
26
+ a && ` - ${a}`
27
+ ] }),
28
+ /* @__PURE__ */ t.jsx("div", { className: "grid grid-cols-2 gap-4", children: l.data.filter(
29
+ (e) => !s || e.categories.find(
30
+ (i) => i.tags.find((h) => u(i.label, h) === s)
31
+ )
32
+ ).map((e) => /* @__PURE__ */ t.jsx(
33
+ N,
34
+ {
35
+ to: m(e.path),
36
+ className: "no-underline hover:!text-foreground",
37
+ children: /* @__PURE__ */ t.jsxs("div", { className: "border h-full rounded-lg p-4 flex flex-col gap-2 cursor-pointer hover:bg-border/20 font-normal", children: [
38
+ /* @__PURE__ */ t.jsx("span", { className: "font-semibold", children: e.label }),
39
+ /* @__PURE__ */ t.jsx(
40
+ k,
41
+ {
42
+ className: "text-sm whitespace-pre-wrap mb-6 line-clamp-2",
43
+ content: e.description
44
+ }
37
45
  )
38
- ).map((t) => /* @__PURE__ */ e.jsx(
39
- N,
40
- {
41
- to: d(t.path),
42
- className: "no-underline hover:!text-foreground",
43
- children: /* @__PURE__ */ e.jsxs("div", { className: "border h-full rounded-lg p-4 flex flex-col gap-2 cursor-pointer hover:bg-border/20 font-normal", children: [
44
- /* @__PURE__ */ e.jsx("span", { className: "font-semibold", children: t.label }),
45
- /* @__PURE__ */ e.jsx(
46
- w,
47
- {
48
- className: "text-sm whitespace-pre-wrap mb-6 line-clamp-2",
49
- content: t.description
50
- }
51
- )
52
- ] })
53
- },
54
- t.path
55
- )) })
56
- ] })
57
- ]
58
- }
59
- );
60
- }, f = (s, l) => h(`${s}-${l}`), R = ({
61
- navigationId: s,
62
- items: l,
46
+ ] })
47
+ },
48
+ e.path
49
+ )) })
50
+ ] })
51
+ ] });
52
+ }, u = (r, o) => f(`${r}-${o}`), A = ({
53
+ navigationId: r,
54
+ items: o,
63
55
  label: c,
64
- categories: r = [],
56
+ categories: a = [],
65
57
  filterCatalogItems: n
66
- }) => ({
67
- getSidebar: async function(a) {
68
- if (!x({ path: d(s), end: !1 }, a))
69
- return [];
70
- const p = r.map((i) => ({
71
- type: "category",
72
- label: i.label,
73
- collapsible: !1,
74
- items: i.tags.map((t) => {
75
- const m = f(i.label, t);
76
- return {
58
+ }) => {
59
+ const p = Object.fromEntries(
60
+ a.flatMap(
61
+ (s) => [void 0, ...s.tags].map((l) => [
62
+ m(r, l ? u(s.label, l) : void 0),
63
+ l
64
+ ])
65
+ )
66
+ );
67
+ return {
68
+ getSidebar: async (s) => {
69
+ if (!Object.keys(p).some(
70
+ (e) => x(e, s)
71
+ ))
72
+ return [];
73
+ const d = a.map((e) => ({
74
+ type: "category",
75
+ label: e.label,
76
+ collapsible: !1,
77
+ items: e.tags.map((i) => ({
77
78
  type: "doc",
78
- id: d(s, m),
79
- label: t,
79
+ id: m(r, u(e.label, i)),
80
+ label: i,
80
81
  badge: {
81
82
  label: String(
82
- l.filter(
83
- (u) => u.categories.find((g) => g.tags.includes(t))
83
+ o.filter(
84
+ (h) => h.categories.find((g) => g.tags.includes(i))
84
85
  ).length
85
86
  ),
86
87
  color: "outline"
87
88
  }
88
- };
89
- })
90
- }));
91
- return p.unshift({
92
- type: "doc",
93
- id: d(s),
94
- label: "Overview",
95
- badge: { label: String(l.length), color: "outline" }
96
- }), p;
97
- },
98
- getRoutes: () => r.flatMap(
99
- (o) => [void 0, ...o.tags].map((a) => ({
100
- path: d(
101
- s,
102
- a ? f(o.label, a) : void 0
103
- ),
104
- element: /* @__PURE__ */ e.jsx(
105
- H,
89
+ }))
90
+ }));
91
+ return d.unshift({
92
+ type: "doc",
93
+ id: m(r),
94
+ label: "Overview",
95
+ badge: { label: String(o.length), color: "outline" }
96
+ }), d;
97
+ },
98
+ getRoutes: () => Object.entries(p).map(([s, l]) => ({
99
+ path: s,
100
+ element: /* @__PURE__ */ t.jsx(
101
+ w,
106
102
  {
107
103
  label: c,
108
- categoryLabel: a,
109
- items: l,
104
+ categoryLabel: l,
105
+ items: o,
110
106
  filterCatalogItems: n,
111
- categories: r
107
+ categories: a
112
108
  }
113
109
  )
114
110
  }))
115
- )
116
- });
111
+ };
112
+ };
117
113
  export {
118
- R as apiCatalogPlugin,
119
- f as getKey
114
+ A as apiCatalogPlugin,
115
+ u as getKey
120
116
  };
121
117
  //# sourceMappingURL=zudoku.plugin-api-catalog.js.map