zudoku 0.0.0-f471fb8 → 0.0.0-f52e8af

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 (974) hide show
  1. package/cli.js +8 -2
  2. package/dist/app/ZuploBuildConfig.d.ts +155 -0
  3. package/dist/app/ZuploBuildConfig.js +29 -0
  4. package/dist/app/ZuploBuildConfig.js.map +1 -0
  5. package/dist/app/entry.client.js +36 -0
  6. package/dist/app/entry.client.js.map +1 -1
  7. package/dist/app/entry.server.d.ts +5 -4
  8. package/dist/app/entry.server.js +2 -2
  9. package/dist/app/entry.server.js.map +1 -1
  10. package/dist/app/env.d.ts +33 -0
  11. package/dist/app/env.js +29 -0
  12. package/dist/app/env.js.map +1 -0
  13. package/dist/app/main.js +16 -4
  14. package/dist/app/main.js.map +1 -1
  15. package/dist/cli/build/handler.js +2 -1
  16. package/dist/cli/build/handler.js.map +1 -1
  17. package/dist/cli/cli.js +12 -1
  18. package/dist/cli/cli.js.map +1 -1
  19. package/dist/cli/cmds/dev.js +1 -7
  20. package/dist/cli/cmds/dev.js.map +1 -1
  21. package/dist/cli/common/machine-id/lib.js +1 -0
  22. package/dist/cli/common/machine-id/lib.js.map +1 -1
  23. package/dist/cli/dev/handler.js +2 -1
  24. package/dist/cli/dev/handler.js.map +1 -1
  25. package/dist/config/config.d.ts +3 -1
  26. package/dist/config/loader.d.ts +2 -16
  27. package/dist/config/loader.js +10 -94
  28. package/dist/config/loader.js.map +1 -1
  29. package/dist/config/validators/BuildSchema.d.ts +60 -0
  30. package/dist/config/validators/BuildSchema.js +31 -0
  31. package/dist/config/validators/BuildSchema.js.map +1 -0
  32. package/dist/config/validators/common.d.ts +1487 -335
  33. package/dist/config/validators/common.js +59 -9
  34. package/dist/config/validators/common.js.map +1 -1
  35. package/dist/config/validators/icon-types.d.ts +1 -1
  36. package/dist/config/validators/validate.d.ts +515 -128
  37. package/dist/index.d.ts +2 -1
  38. package/dist/index.js +1 -0
  39. package/dist/index.js.map +1 -1
  40. package/dist/lib/authentication/components/CallbackHandler.js +5 -1
  41. package/dist/lib/authentication/components/CallbackHandler.js.map +1 -1
  42. package/dist/lib/authentication/components/SignIn.d.ts +1 -1
  43. package/dist/lib/authentication/components/SignIn.js +5 -2
  44. package/dist/lib/authentication/components/SignIn.js.map +1 -1
  45. package/dist/lib/authentication/components/SignUp.d.ts +1 -1
  46. package/dist/lib/authentication/components/SignUp.js +4 -1
  47. package/dist/lib/authentication/components/SignUp.js.map +1 -1
  48. package/dist/lib/authentication/providers/auth0.js +1 -1
  49. package/dist/lib/authentication/providers/auth0.js.map +1 -1
  50. package/dist/lib/authentication/providers/clerk.js +15 -7
  51. package/dist/lib/authentication/providers/clerk.js.map +1 -1
  52. package/dist/lib/authentication/providers/openid.d.ts +5 -6
  53. package/dist/lib/authentication/providers/openid.js +14 -20
  54. package/dist/lib/authentication/providers/openid.js.map +1 -1
  55. package/dist/lib/components/Banner.js +1 -1
  56. package/dist/lib/components/Banner.js.map +1 -1
  57. package/dist/lib/components/Bootstrap.d.ts +2 -1
  58. package/dist/lib/components/Bootstrap.js +3 -2
  59. package/dist/lib/components/Bootstrap.js.map +1 -1
  60. package/dist/lib/components/BuildCheck.d.ts +4 -0
  61. package/dist/lib/components/BuildCheck.js +38 -0
  62. package/dist/lib/components/BuildCheck.js.map +1 -0
  63. package/dist/lib/components/Footer.d.ts +1 -0
  64. package/dist/lib/components/Footer.js +32 -0
  65. package/dist/lib/components/Footer.js.map +1 -0
  66. package/dist/lib/components/Header.js +3 -3
  67. package/dist/lib/components/Header.js.map +1 -1
  68. package/dist/lib/components/Heading.d.ts +2 -2
  69. package/dist/lib/components/Heading.js +1 -1
  70. package/dist/lib/components/Heading.js.map +1 -1
  71. package/dist/lib/components/Layout.js +3 -1
  72. package/dist/lib/components/Layout.js.map +1 -1
  73. package/dist/lib/components/Main.js +3 -2
  74. package/dist/lib/components/Main.js.map +1 -1
  75. package/dist/lib/components/Markdown.d.ts +3 -1
  76. package/dist/lib/components/Markdown.js +8 -14
  77. package/dist/lib/components/Markdown.js.map +1 -1
  78. package/dist/lib/components/MobileTopNavigation.js +6 -3
  79. package/dist/lib/components/MobileTopNavigation.js.map +1 -1
  80. package/dist/lib/components/Pagination.d.ts +2 -1
  81. package/dist/lib/components/Pagination.js +3 -3
  82. package/dist/lib/components/Pagination.js.map +1 -1
  83. package/dist/lib/components/Search.js +7 -1
  84. package/dist/lib/components/Search.js.map +1 -1
  85. package/dist/lib/components/TopNavigation.d.ts +1 -0
  86. package/dist/lib/components/TopNavigation.js +3 -3
  87. package/dist/lib/components/TopNavigation.js.map +1 -1
  88. package/dist/lib/components/Zudoku.js +2 -1
  89. package/dist/lib/components/Zudoku.js.map +1 -1
  90. package/dist/lib/components/context/BypassProtectedRoutesContext.d.ts +1 -0
  91. package/dist/lib/components/context/BypassProtectedRoutesContext.js +3 -0
  92. package/dist/lib/components/context/BypassProtectedRoutesContext.js.map +1 -0
  93. package/dist/lib/components/context/ViewportAnchorContext.js +8 -9
  94. package/dist/lib/components/context/ViewportAnchorContext.js.map +1 -1
  95. package/dist/lib/components/context/ZudokuContext.d.ts +1 -1
  96. package/dist/lib/components/context/ZudokuContext.js +2 -3
  97. package/dist/lib/components/context/ZudokuContext.js.map +1 -1
  98. package/dist/lib/components/index.d.ts +8 -2
  99. package/dist/lib/components/index.js +2 -0
  100. package/dist/lib/components/index.js.map +1 -1
  101. package/dist/lib/components/navigation/PoweredByZudoku.d.ts +3 -0
  102. package/dist/lib/components/navigation/PoweredByZudoku.js +7 -0
  103. package/dist/lib/components/navigation/PoweredByZudoku.js.map +1 -0
  104. package/dist/lib/components/navigation/Sidebar.js +3 -10
  105. package/dist/lib/components/navigation/Sidebar.js.map +1 -1
  106. package/dist/lib/components/navigation/SidebarCategory.js +9 -5
  107. package/dist/lib/components/navigation/SidebarCategory.js.map +1 -1
  108. package/dist/lib/components/navigation/SidebarItem.js +2 -3
  109. package/dist/lib/components/navigation/SidebarItem.js.map +1 -1
  110. package/dist/lib/components/navigation/SidebarWrapper.d.ts +2 -3
  111. package/dist/lib/components/navigation/SidebarWrapper.js +18 -2
  112. package/dist/lib/components/navigation/SidebarWrapper.js.map +1 -1
  113. package/dist/lib/components/navigation/Toc.js +2 -2
  114. package/dist/lib/components/navigation/Toc.js.map +1 -1
  115. package/dist/lib/components/navigation/ZudokuLogo.d.ts +6 -0
  116. package/dist/lib/components/navigation/ZudokuLogo.js +5 -0
  117. package/dist/lib/components/navigation/ZudokuLogo.js.map +1 -0
  118. package/dist/lib/components/navigation/ZuploLogo.d.ts +3 -0
  119. package/dist/lib/components/navigation/ZuploLogo.js +4 -0
  120. package/dist/lib/components/navigation/ZuploLogo.js.map +1 -0
  121. package/dist/lib/core/RouteGuard.d.ts +1 -0
  122. package/dist/lib/core/RouteGuard.js +9 -3
  123. package/dist/lib/core/RouteGuard.js.map +1 -1
  124. package/dist/lib/core/ZudokuContext.d.ts +14 -2
  125. package/dist/lib/core/ZudokuContext.js.map +1 -1
  126. package/dist/lib/errors/ErrorAlert.js +1 -1
  127. package/dist/lib/errors/ErrorAlert.js.map +1 -1
  128. package/dist/lib/oas/graphql/circular.js +23 -18
  129. package/dist/lib/oas/graphql/circular.js.map +1 -1
  130. package/dist/lib/oas/parser/index.d.ts +3 -0
  131. package/dist/lib/oas/parser/index.js +7 -1
  132. package/dist/lib/oas/parser/index.js.map +1 -1
  133. package/dist/lib/oas/parser/upgrade/index.d.ts +1 -0
  134. package/dist/lib/oas/parser/upgrade/index.js +77 -25
  135. package/dist/lib/oas/parser/upgrade/index.js.map +1 -1
  136. package/dist/lib/plugins/api-catalog/Catalog.js +1 -1
  137. package/dist/lib/plugins/api-catalog/Catalog.js.map +1 -1
  138. package/dist/lib/plugins/markdown/MdxPage.js +1 -1
  139. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  140. package/dist/lib/plugins/openapi/CollapsibleCode.js +1 -1
  141. package/dist/lib/plugins/openapi/CollapsibleCode.js.map +1 -1
  142. package/dist/lib/plugins/openapi/ColorizedParam.js +1 -1
  143. package/dist/lib/plugins/openapi/ColorizedParam.js.map +1 -1
  144. package/dist/lib/plugins/openapi/OperationList.d.ts +1 -1
  145. package/dist/lib/plugins/openapi/OperationList.js +7 -5
  146. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  147. package/dist/lib/plugins/openapi/OperationListItem.js +4 -3
  148. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  149. package/dist/lib/plugins/openapi/ParamInfos.js +4 -1
  150. package/dist/lib/plugins/openapi/ParamInfos.js.map +1 -1
  151. package/dist/lib/plugins/openapi/ParameterListItem.js +9 -1
  152. package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
  153. package/dist/lib/plugins/openapi/ResponsesSidecarBox.d.ts +2 -4
  154. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +1 -4
  155. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
  156. package/dist/lib/plugins/openapi/SchemaList.js +6 -5
  157. package/dist/lib/plugins/openapi/SchemaList.js.map +1 -1
  158. package/dist/lib/plugins/openapi/Sidecar.js +33 -3
  159. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  160. package/dist/lib/plugins/openapi/SidecarExamples.js +9 -1
  161. package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -1
  162. package/dist/lib/plugins/openapi/client/useCreateQuery.d.ts +5 -0
  163. package/dist/lib/plugins/openapi/client/useCreateQuery.js +10 -4
  164. package/dist/lib/plugins/openapi/client/useCreateQuery.js.map +1 -1
  165. package/dist/lib/plugins/openapi/components/ConstValue.d.ts +5 -0
  166. package/dist/lib/plugins/openapi/components/ConstValue.js +6 -0
  167. package/dist/lib/plugins/openapi/components/ConstValue.js.map +1 -0
  168. package/dist/lib/plugins/openapi/components/EnumValues.js +1 -1
  169. package/dist/lib/plugins/openapi/components/EnumValues.js.map +1 -1
  170. package/dist/lib/plugins/openapi/components/ResponseContent.d.ts +12 -0
  171. package/dist/lib/plugins/openapi/components/ResponseContent.js +21 -0
  172. package/dist/lib/plugins/openapi/components/ResponseContent.js.map +1 -0
  173. package/dist/lib/plugins/openapi/index.d.ts +3 -4
  174. package/dist/lib/plugins/openapi/index.js +6 -4
  175. package/dist/lib/plugins/openapi/index.js.map +1 -1
  176. package/dist/lib/plugins/openapi/interfaces.d.ts +4 -3
  177. package/dist/lib/plugins/openapi/playground/Headers.js +2 -2
  178. package/dist/lib/plugins/openapi/playground/Headers.js.map +1 -1
  179. package/dist/lib/plugins/openapi/playground/IdentitySelector.js +1 -3
  180. package/dist/lib/plugins/openapi/playground/IdentitySelector.js.map +1 -1
  181. package/dist/lib/plugins/openapi/playground/Playground.js +2 -2
  182. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  183. package/dist/lib/plugins/openapi/playground/QueryParams.d.ts +1 -1
  184. package/dist/lib/plugins/openapi/playground/QueryParams.js +3 -3
  185. package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
  186. package/dist/lib/plugins/openapi/playground/SubmitButton.d.ts +1 -1
  187. package/dist/lib/plugins/openapi/playground/SubmitButton.js +1 -1
  188. package/dist/lib/plugins/openapi/playground/result-panel/RequestTab.js +1 -1
  189. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +1 -1
  190. package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js +1 -1
  191. package/dist/lib/plugins/openapi/processors/removeExtensions.d.ts +8 -0
  192. package/dist/lib/plugins/openapi/{post-processors → processors}/removeExtensions.js +1 -1
  193. package/dist/lib/plugins/openapi/processors/removeExtensions.js.map +1 -0
  194. package/dist/lib/plugins/openapi/{post-processors → processors}/removeExtensions.test.js +26 -6
  195. package/dist/lib/plugins/openapi/processors/removeExtensions.test.js.map +1 -0
  196. package/dist/lib/plugins/openapi/{post-processors → processors}/removeParameters.d.ts +3 -1
  197. package/dist/lib/plugins/openapi/{post-processors → processors}/removeParameters.js +1 -1
  198. package/dist/lib/plugins/openapi/processors/removeParameters.js.map +1 -0
  199. package/dist/lib/plugins/openapi/{post-processors → processors}/removeParameters.test.js +53 -25
  200. package/dist/lib/plugins/openapi/processors/removeParameters.test.js.map +1 -0
  201. package/dist/lib/plugins/openapi/{post-processors → processors}/removePaths.d.ts +3 -1
  202. package/dist/lib/plugins/openapi/{post-processors → processors}/removePaths.js +1 -1
  203. package/dist/lib/plugins/openapi/processors/removePaths.js.map +1 -0
  204. package/dist/lib/plugins/openapi/processors/removePaths.test.js +144 -0
  205. package/dist/lib/plugins/openapi/processors/removePaths.test.js.map +1 -0
  206. package/dist/lib/plugins/openapi/processors/traverse.js.map +1 -0
  207. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.d.ts +1 -2
  208. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.js +2 -2
  209. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.js.map +1 -1
  210. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.d.ts +2 -1
  211. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.js +2 -2
  212. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.js.map +1 -1
  213. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.d.ts +0 -1
  214. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.js +1 -1
  215. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.js.map +1 -1
  216. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.d.ts +4 -0
  217. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js +15 -0
  218. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js.map +1 -0
  219. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.d.ts +2 -4
  220. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js +19 -13
  221. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js.map +1 -1
  222. package/dist/lib/plugins/openapi/schema/SchemaView.d.ts +2 -2
  223. package/dist/lib/plugins/openapi/schema/SchemaView.js +34 -53
  224. package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
  225. package/dist/lib/plugins/openapi/schema/utils.d.ts +7 -1
  226. package/dist/lib/plugins/openapi/schema/utils.js +14 -5
  227. package/dist/lib/plugins/openapi/schema/utils.js.map +1 -1
  228. package/dist/lib/plugins/openapi/util/generateSchemaExample.d.ts +1 -1
  229. package/dist/lib/plugins/openapi/util/generateSchemaExample.js +44 -0
  230. package/dist/lib/plugins/openapi/util/generateSchemaExample.js.map +1 -1
  231. package/dist/lib/plugins/openapi/util/getRoutes.js +52 -15
  232. package/dist/lib/plugins/openapi/util/getRoutes.js.map +1 -1
  233. package/dist/lib/plugins/search-pagefind/PagefindSearch.js +9 -4
  234. package/dist/lib/plugins/search-pagefind/PagefindSearch.js.map +1 -1
  235. package/dist/lib/plugins/search-pagefind/ResultList.d.ts +1 -1
  236. package/dist/lib/plugins/search-pagefind/ResultList.js +6 -12
  237. package/dist/lib/plugins/search-pagefind/ResultList.js.map +1 -1
  238. package/dist/lib/plugins/search-pagefind/index.d.ts +1 -3
  239. package/dist/lib/shiki.d.ts +35 -0
  240. package/dist/lib/shiki.js +103 -0
  241. package/dist/lib/shiki.js.map +1 -0
  242. package/dist/lib/ui/Callout.js +1 -1
  243. package/dist/lib/ui/Callout.js.map +1 -1
  244. package/dist/lib/ui/CodeBlock.d.ts +16 -0
  245. package/dist/lib/ui/CodeBlock.js +18 -0
  246. package/dist/lib/ui/CodeBlock.js.map +1 -0
  247. package/dist/lib/ui/Form.d.ts +1 -1
  248. package/dist/lib/ui/SyntaxHighlight.d.ts +10 -15
  249. package/dist/lib/ui/SyntaxHighlight.js +12 -60
  250. package/dist/lib/ui/SyntaxHighlight.js.map +1 -1
  251. package/dist/lib/util/MdxComponents.d.ts +10 -3
  252. package/dist/lib/util/MdxComponents.js +11 -10
  253. package/dist/lib/util/MdxComponents.js.map +1 -1
  254. package/dist/lib/util/detectOS.d.ts +1 -0
  255. package/dist/lib/util/detectOS.js +11 -0
  256. package/dist/lib/util/detectOS.js.map +1 -0
  257. package/dist/lib/util/ensureArray.d.ts +1 -0
  258. package/dist/lib/util/ensureArray.js +2 -0
  259. package/dist/lib/util/ensureArray.js.map +1 -0
  260. package/dist/lib/util/traverse.d.ts +1 -1
  261. package/dist/lib/util/traverse.js +6 -5
  262. package/dist/lib/util/traverse.js.map +1 -1
  263. package/dist/lib/util/url.d.ts +4 -0
  264. package/dist/lib/util/url.js +13 -0
  265. package/dist/lib/util/url.js.map +1 -0
  266. package/dist/lib/util/url.test.js +26 -0
  267. package/dist/lib/util/url.test.js.map +1 -0
  268. package/dist/vite/api/SchemaManager.d.ts +36 -0
  269. package/dist/vite/api/SchemaManager.js +122 -0
  270. package/dist/vite/api/SchemaManager.js.map +1 -0
  271. package/dist/vite/api/SchemaManager.test.d.ts +1 -0
  272. package/dist/vite/api/SchemaManager.test.js +106 -0
  273. package/dist/vite/api/SchemaManager.test.js.map +1 -0
  274. package/dist/vite/api/schema-codegen.js +10 -6
  275. package/dist/vite/api/schema-codegen.js.map +1 -1
  276. package/dist/vite/build.js +2 -9
  277. package/dist/vite/build.js.map +1 -1
  278. package/dist/vite/config.js +56 -17
  279. package/dist/vite/config.js.map +1 -1
  280. package/dist/vite/dev-server.d.ts +0 -1
  281. package/dist/vite/dev-server.js +12 -12
  282. package/dist/vite/dev-server.js.map +1 -1
  283. package/dist/vite/html.d.ts +6 -2
  284. package/dist/vite/html.js +11 -8
  285. package/dist/vite/html.js.map +1 -1
  286. package/dist/vite/plugin-api.js +52 -106
  287. package/dist/vite/plugin-api.js.map +1 -1
  288. package/dist/vite/plugin-config-reload.js +6 -3
  289. package/dist/vite/plugin-config-reload.js.map +1 -1
  290. package/dist/vite/plugin-mdx.js +4 -11
  291. package/dist/vite/plugin-mdx.js.map +1 -1
  292. package/dist/vite/plugin-search.js +1 -1
  293. package/dist/vite/plugin-search.js.map +1 -1
  294. package/dist/vite/plugin-shiki-register.d.ts +3 -0
  295. package/dist/vite/plugin-shiki-register.js +38 -0
  296. package/dist/vite/plugin-shiki-register.js.map +1 -0
  297. package/dist/vite/plugin-sidebar.d.ts +3 -1
  298. package/dist/vite/plugin-sidebar.js +9 -3
  299. package/dist/vite/plugin-sidebar.js.map +1 -1
  300. package/dist/vite/plugin.js +2 -0
  301. package/dist/vite/plugin.js.map +1 -1
  302. package/dist/vite/prerender/FileWritingResponse.d.ts +9 -5
  303. package/dist/vite/prerender/FileWritingResponse.js +5 -5
  304. package/dist/vite/prerender/FileWritingResponse.js.map +1 -1
  305. package/dist/vite/prerender/InMemoryResponse.d.ts +16 -0
  306. package/dist/vite/prerender/InMemoryResponse.js +32 -0
  307. package/dist/vite/prerender/InMemoryResponse.js.map +1 -0
  308. package/dist/vite/prerender/PrerenderResponse.d.ts +10 -0
  309. package/dist/vite/prerender/PrerenderResponse.js +2 -0
  310. package/dist/vite/prerender/PrerenderResponse.js.map +1 -0
  311. package/dist/vite/prerender/prerender.d.ts +1 -0
  312. package/dist/vite/prerender/prerender.js +24 -5
  313. package/dist/vite/prerender/prerender.js.map +1 -1
  314. package/dist/vite/prerender/worker.js +36 -8
  315. package/dist/vite/prerender/worker.js.map +1 -1
  316. package/dist/zuplo/enrich-with-zuplo.d.ts +3 -3
  317. package/dist/zuplo/enrich-with-zuplo.js +18 -17
  318. package/dist/zuplo/enrich-with-zuplo.js.map +1 -1
  319. package/dist/zuplo/with-zuplo-processors.d.ts +2 -2
  320. package/dist/zuplo/with-zuplo-processors.js +7 -7
  321. package/dist/zuplo/with-zuplo-processors.js.map +1 -1
  322. package/dist/zuplo/with-zuplo.d.ts +4 -1
  323. package/dist/zuplo/with-zuplo.js +6 -5
  324. package/dist/zuplo/with-zuplo.js.map +1 -1
  325. package/lib/AuthenticationPlugin-B9ZLD8dq.js +90 -0
  326. package/lib/AuthenticationPlugin-B9ZLD8dq.js.map +1 -0
  327. package/lib/{Button-Fp19CMUr.js → Button-Bdk_Ij3U.js} +4 -4
  328. package/lib/{Button-Fp19CMUr.js.map → Button-Bdk_Ij3U.js.map} +1 -1
  329. package/lib/{Callout-D5frCCJ0.js → Callout-hI9CHaoU.js} +20 -19
  330. package/lib/{Callout-D5frCCJ0.js.map → Callout-hI9CHaoU.js.map} +1 -1
  331. package/lib/Card-BlCYNw5W.js +61 -0
  332. package/lib/Card-BlCYNw5W.js.map +1 -0
  333. package/lib/{CategoryHeading-DpB47wvk.js → CategoryHeading-DZi-Szor.js} +3 -3
  334. package/lib/{CategoryHeading-DpB47wvk.js.map → CategoryHeading-DZi-Szor.js.map} +1 -1
  335. package/lib/{Dialog-Dv6WG8RN.js → Dialog-qJtc4-PZ.js} +8 -8
  336. package/lib/{Dialog-Dv6WG8RN.js.map → Dialog-qJtc4-PZ.js.map} +1 -1
  337. package/lib/{Drawer-kDAfOq_2.js → Drawer-BPBxzel2.js} +26 -26
  338. package/lib/Drawer-BPBxzel2.js.map +1 -0
  339. package/lib/Markdown-D3MUf20w.js +7691 -0
  340. package/lib/Markdown-D3MUf20w.js.map +1 -0
  341. package/lib/MdxPage-qSYniGrR.js +84 -0
  342. package/lib/MdxPage-qSYniGrR.js.map +1 -0
  343. package/lib/OasProvider-BHyIG4Ge.js +33 -0
  344. package/lib/{OasProvider-OlYb8W57.js.map → OasProvider-BHyIG4Ge.js.map} +1 -1
  345. package/lib/{OperationList-BvfIzVRx.js → OperationList-CfVK_S-T.js} +2055 -1978
  346. package/lib/OperationList-CfVK_S-T.js.map +1 -0
  347. package/lib/Pagination-CjsamWJW.js +48 -0
  348. package/lib/Pagination-CjsamWJW.js.map +1 -0
  349. package/lib/RouteGuard-ChX1tPqA.js +55 -0
  350. package/lib/RouteGuard-ChX1tPqA.js.map +1 -0
  351. package/lib/{SchemaList-Bi35O4XD.js → SchemaList-BZRVKC7J.js} +60 -48
  352. package/lib/SchemaList-BZRVKC7J.js.map +1 -0
  353. package/lib/SchemaView-Db5jA7z7.js +375 -0
  354. package/lib/SchemaView-Db5jA7z7.js.map +1 -0
  355. package/lib/Select-CaRC4cvg.js +211 -0
  356. package/lib/{Select-DVFRKf1R.js.map → Select-CaRC4cvg.js.map} +1 -1
  357. package/lib/SlotletProvider-ZhDNaV0q.js +257 -0
  358. package/lib/SlotletProvider-ZhDNaV0q.js.map +1 -0
  359. package/lib/{Spinner-CE68iCm0.js → Spinner-mNLZ6awP.js} +2 -2
  360. package/lib/{Spinner-CE68iCm0.js.map → Spinner-mNLZ6awP.js.map} +1 -1
  361. package/lib/SyntaxHighlight-IcJTpNbL.js +9107 -0
  362. package/lib/SyntaxHighlight-IcJTpNbL.js.map +1 -0
  363. package/lib/{Toc-YBsgI72s.js → Toc-B0gpT6e6.js} +19 -19
  364. package/lib/Toc-B0gpT6e6.js.map +1 -0
  365. package/lib/{chunk-HA7DTUK3-C4gP41vD.js → chunk-BAXFHI7N-C9WnHsLV.js} +715 -697
  366. package/lib/chunk-BAXFHI7N-C9WnHsLV.js.map +1 -0
  367. package/lib/{circular-ByJI6Mci.js → circular-BGxf3iUW.js} +4224 -5172
  368. package/lib/circular-BGxf3iUW.js.map +1 -0
  369. package/lib/{cn-qaFjX9_3.js → cn-CwJPJKOE.js} +28 -29
  370. package/lib/{cn-qaFjX9_3.js.map → cn-CwJPJKOE.js.map} +1 -1
  371. package/lib/{createServer-mMau3eV_.js → createServer-C1kGUn7C.js} +4509 -4443
  372. package/lib/createServer-C1kGUn7C.js.map +1 -0
  373. package/lib/hook-CqYKERnR.js +1442 -0
  374. package/lib/hook-CqYKERnR.js.map +1 -0
  375. package/lib/{index-DwT-v3zK.js → index--oeBayMa.js} +2 -2
  376. package/lib/{index-DwT-v3zK.js.map → index--oeBayMa.js.map} +1 -1
  377. package/lib/{index-LNp6rxyU.js → index-BvvmIczU.js} +2 -2
  378. package/lib/{index-LNp6rxyU.js.map → index-BvvmIczU.js.map} +1 -1
  379. package/lib/index-CrcNWbel.js +316 -0
  380. package/lib/index-CrcNWbel.js.map +1 -0
  381. package/lib/index-D1LYvDiD.js +3158 -0
  382. package/lib/index-D1LYvDiD.js.map +1 -0
  383. package/lib/index-LSPm9Daf.js +4976 -0
  384. package/lib/index-LSPm9Daf.js.map +1 -0
  385. package/lib/{index-CPNSgwSb.js → index-Z13x6tPX.js} +5 -5
  386. package/lib/{index-CPNSgwSb.js.map → index-Z13x6tPX.js.map} +1 -1
  387. package/lib/{index-Dl3Yl0yb.js → index-zddirpDj.js} +621 -636
  388. package/lib/index-zddirpDj.js.map +1 -0
  389. package/lib/index.esm-BFcSKCe-.js +683 -0
  390. package/lib/index.esm-BFcSKCe-.js.map +1 -0
  391. package/lib/index.esm-D2ZUREQN.js +1216 -0
  392. package/lib/index.esm-D2ZUREQN.js.map +1 -0
  393. package/lib/invariant-DAFpPywt.js +48 -0
  394. package/lib/{invariant-Caa8-XvF.js.map → invariant-DAFpPywt.js.map} +1 -1
  395. package/lib/jsx-runtime-C5mzlN2N.js +285 -0
  396. package/lib/jsx-runtime-C5mzlN2N.js.map +1 -0
  397. package/lib/mutation-DpoXF3gn.js +196 -0
  398. package/lib/mutation-DpoXF3gn.js.map +1 -0
  399. package/lib/objectEntries-yMIkr2mI.js +5 -0
  400. package/lib/objectEntries-yMIkr2mI.js.map +1 -0
  401. package/lib/{post-processors → processors}/removeExtensions.js +1 -1
  402. package/lib/processors/removeExtensions.js.map +1 -0
  403. package/lib/processors/removeParameters.js +47 -0
  404. package/lib/processors/removeParameters.js.map +1 -0
  405. package/lib/processors/removePaths.js +28 -0
  406. package/lib/processors/removePaths.js.map +1 -0
  407. package/lib/processors/traverse.js +17 -0
  408. package/lib/processors/traverse.js.map +1 -0
  409. package/lib/ui/Accordion.js +2 -2
  410. package/lib/ui/ActionButton.js +4 -4
  411. package/lib/ui/Alert.js +3 -3
  412. package/lib/ui/AlertDialog.js +2 -2
  413. package/lib/ui/Badge.js +3 -3
  414. package/lib/ui/Breadcrumb.js +2 -2
  415. package/lib/ui/Button.js +3 -3
  416. package/lib/ui/Callout.js +9 -8
  417. package/lib/ui/Callout.js.map +1 -1
  418. package/lib/ui/Card.js +2 -2
  419. package/lib/ui/Carousel.js +348 -348
  420. package/lib/ui/Carousel.js.map +1 -1
  421. package/lib/ui/Checkbox.js +2 -2
  422. package/lib/ui/CodeBlock.js +83 -0
  423. package/lib/ui/CodeBlock.js.map +1 -0
  424. package/lib/ui/Command.js +58 -58
  425. package/lib/ui/Command.js.map +1 -1
  426. package/lib/ui/Dialog.js +2 -2
  427. package/lib/ui/Drawer.js +3 -3
  428. package/lib/ui/DropdownMenu.js +2 -2
  429. package/lib/ui/Form.js +3 -3
  430. package/lib/ui/HoverCard.js +2 -2
  431. package/lib/ui/Input.js +2 -2
  432. package/lib/ui/Label.js +3 -3
  433. package/lib/ui/Pagination.js +2 -2
  434. package/lib/ui/Popover.js +2 -2
  435. package/lib/ui/Progress.js +2 -2
  436. package/lib/ui/RadioGroup.js +2 -2
  437. package/lib/ui/ScrollArea.js +2 -2
  438. package/lib/ui/Select.js +2 -2
  439. package/lib/ui/Skeleton.js +2 -2
  440. package/lib/ui/Slider.js +2 -2
  441. package/lib/ui/Stepper.js +1 -1
  442. package/lib/ui/Switch.js +2 -2
  443. package/lib/ui/SyntaxHighlight.js +6 -7
  444. package/lib/ui/SyntaxHighlight.js.map +1 -1
  445. package/lib/ui/Tabs.js +11 -11
  446. package/lib/ui/Textarea.js +2 -2
  447. package/lib/ui/Toggle.js +3 -3
  448. package/lib/ui/ToggleGroup.js +2 -2
  449. package/lib/ui/Tooltip.js +2 -2
  450. package/lib/ui/util.js +1 -1
  451. package/lib/{useExposedProps-B9qXJedG.js → useExposedProps-DG8J6ewJ.js} +2 -2
  452. package/lib/{useExposedProps-B9qXJedG.js.map → useExposedProps-DG8J6ewJ.js.map} +1 -1
  453. package/lib/useLatest-hmRS46UF.js +11 -0
  454. package/lib/useLatest-hmRS46UF.js.map +1 -0
  455. package/lib/zudoku.auth-auth0.js +28 -31
  456. package/lib/zudoku.auth-auth0.js.map +1 -1
  457. package/lib/zudoku.auth-clerk.js +66 -72
  458. package/lib/zudoku.auth-clerk.js.map +1 -1
  459. package/lib/zudoku.auth-openid.js +493 -494
  460. package/lib/zudoku.auth-openid.js.map +1 -1
  461. package/lib/zudoku.components.js +31 -28
  462. package/lib/zudoku.components.js.map +1 -1
  463. package/lib/zudoku.hooks.js +2 -2
  464. package/lib/zudoku.icons.js +1 -1
  465. package/lib/zudoku.plugin-api-catalog.js +59 -65
  466. package/lib/zudoku.plugin-api-catalog.js.map +1 -1
  467. package/lib/zudoku.plugin-api-keys.js +10 -10
  468. package/lib/zudoku.plugin-custom-pages.js +4 -4
  469. package/lib/zudoku.plugin-markdown.js +25 -28
  470. package/lib/zudoku.plugin-markdown.js.map +1 -1
  471. package/lib/zudoku.plugin-openapi.js +7 -6
  472. package/lib/zudoku.plugin-redirect.js +1 -1
  473. package/lib/zudoku.plugin-search-inkeep.js +26 -27
  474. package/lib/zudoku.plugin-search-inkeep.js.map +1 -1
  475. package/lib/zudoku.plugin-search-pagefind.js +111 -119
  476. package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
  477. package/package.json +81 -72
  478. package/src/app/ZuploBuildConfig.ts +33 -0
  479. package/src/app/demo.html +1 -1
  480. package/src/app/entry.client.tsx +43 -0
  481. package/src/app/entry.server.tsx +6 -3
  482. package/src/app/env.ts +35 -0
  483. package/src/app/main.css +64 -7
  484. package/src/app/main.tsx +24 -1
  485. package/src/lib/authentication/components/CallbackHandler.tsx +11 -1
  486. package/src/lib/authentication/components/SignIn.tsx +35 -2
  487. package/src/lib/authentication/components/SignUp.tsx +35 -1
  488. package/src/lib/authentication/providers/auth0.tsx +1 -1
  489. package/src/lib/authentication/providers/clerk.tsx +16 -12
  490. package/src/lib/authentication/providers/openid.tsx +20 -27
  491. package/src/lib/components/Banner.tsx +1 -1
  492. package/src/lib/components/Bootstrap.tsx +13 -6
  493. package/src/lib/components/BuildCheck.tsx +75 -0
  494. package/src/lib/components/Footer.tsx +136 -0
  495. package/src/lib/components/Header.tsx +3 -3
  496. package/src/lib/components/Heading.tsx +3 -3
  497. package/src/lib/components/Layout.tsx +10 -4
  498. package/src/lib/components/Main.tsx +7 -5
  499. package/src/lib/components/Markdown.tsx +29 -24
  500. package/src/lib/components/MobileTopNavigation.tsx +29 -20
  501. package/src/lib/components/Pagination.tsx +7 -4
  502. package/src/lib/components/Search.tsx +14 -3
  503. package/src/lib/components/TopNavigation.tsx +3 -3
  504. package/src/lib/components/Zudoku.tsx +3 -3
  505. package/src/lib/components/context/BypassProtectedRoutesContext.ts +3 -0
  506. package/src/lib/components/context/ViewportAnchorContext.tsx +8 -15
  507. package/src/lib/components/context/ZudokuContext.ts +2 -3
  508. package/src/lib/components/index.ts +2 -0
  509. package/src/lib/components/navigation/PoweredByZudoku.tsx +33 -0
  510. package/src/lib/components/navigation/Sidebar.tsx +33 -38
  511. package/src/lib/components/navigation/SidebarCategory.tsx +9 -5
  512. package/src/lib/components/navigation/SidebarItem.tsx +2 -3
  513. package/src/lib/components/navigation/SidebarWrapper.tsx +37 -16
  514. package/src/lib/components/navigation/Toc.tsx +4 -4
  515. package/src/lib/components/navigation/ZudokuLogo.tsx +25 -0
  516. package/src/lib/components/navigation/ZuploLogo.tsx +14 -0
  517. package/src/lib/core/RouteGuard.tsx +26 -4
  518. package/src/lib/core/ZudokuContext.ts +14 -2
  519. package/src/lib/errors/ErrorAlert.tsx +1 -1
  520. package/src/lib/oas/graphql/circular.ts +27 -19
  521. package/src/lib/oas/parser/index.ts +7 -1
  522. package/src/lib/oas/parser/upgrade/index.ts +98 -28
  523. package/src/lib/plugins/api-catalog/Catalog.tsx +1 -4
  524. package/src/lib/plugins/markdown/MdxPage.tsx +3 -2
  525. package/src/lib/plugins/openapi/CollapsibleCode.tsx +7 -4
  526. package/src/lib/plugins/openapi/ColorizedParam.tsx +1 -1
  527. package/src/lib/plugins/openapi/OperationList.tsx +28 -17
  528. package/src/lib/plugins/openapi/OperationListItem.tsx +23 -42
  529. package/src/lib/plugins/openapi/ParamInfos.tsx +4 -1
  530. package/src/lib/plugins/openapi/ParameterListItem.tsx +32 -0
  531. package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +5 -16
  532. package/src/lib/plugins/openapi/SchemaList.tsx +19 -7
  533. package/src/lib/plugins/openapi/Sidecar.tsx +36 -3
  534. package/src/lib/plugins/openapi/SidecarExamples.tsx +8 -2
  535. package/src/lib/plugins/openapi/client/useCreateQuery.ts +23 -4
  536. package/src/lib/plugins/openapi/components/ConstValue.tsx +24 -0
  537. package/src/lib/plugins/openapi/components/EnumValues.tsx +1 -1
  538. package/src/lib/plugins/openapi/components/ResponseContent.tsx +104 -0
  539. package/src/lib/plugins/openapi/index.tsx +8 -7
  540. package/src/lib/plugins/openapi/interfaces.ts +4 -3
  541. package/src/lib/plugins/openapi/playground/Headers.tsx +2 -2
  542. package/src/lib/plugins/openapi/playground/IdentitySelector.tsx +22 -35
  543. package/src/lib/plugins/openapi/playground/Playground.tsx +5 -5
  544. package/src/lib/plugins/openapi/playground/QueryParams.tsx +4 -4
  545. package/src/lib/plugins/openapi/playground/SubmitButton.tsx +2 -2
  546. package/src/lib/plugins/openapi/playground/result-panel/RequestTab.tsx +2 -2
  547. package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +1 -1
  548. package/src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx +1 -1
  549. package/src/lib/plugins/openapi/{post-processors → processors}/removeExtensions.test.ts +29 -9
  550. package/src/lib/plugins/openapi/{post-processors → processors}/removeExtensions.ts +5 -3
  551. package/src/lib/plugins/openapi/{post-processors → processors}/removeParameters.test.ts +67 -33
  552. package/src/lib/plugins/openapi/{post-processors → processors}/removeParameters.ts +5 -3
  553. package/src/lib/plugins/openapi/processors/removePaths.test.ts +167 -0
  554. package/src/lib/plugins/openapi/{post-processors → processors}/removePaths.ts +5 -3
  555. package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.tsx +1 -8
  556. package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.tsx +3 -0
  557. package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.tsx +6 -3
  558. package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +39 -0
  559. package/src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx +45 -34
  560. package/src/lib/plugins/openapi/schema/SchemaView.tsx +91 -143
  561. package/src/lib/plugins/openapi/schema/utils.ts +29 -6
  562. package/src/lib/plugins/openapi/util/generateSchemaExample.ts +51 -1
  563. package/src/lib/plugins/openapi/util/getRoutes.tsx +87 -15
  564. package/src/lib/plugins/search-pagefind/PagefindSearch.tsx +11 -4
  565. package/src/lib/plugins/search-pagefind/ResultList.tsx +5 -16
  566. package/src/lib/plugins/search-pagefind/index.tsx +1 -1
  567. package/src/lib/shiki.ts +133 -0
  568. package/src/lib/ui/Callout.tsx +2 -1
  569. package/src/lib/ui/CodeBlock.tsx +102 -0
  570. package/src/lib/ui/SyntaxHighlight.tsx +23 -182
  571. package/src/lib/util/MdxComponents.tsx +29 -14
  572. package/src/lib/util/detectOS.ts +9 -0
  573. package/src/lib/util/ensureArray.ts +3 -0
  574. package/src/lib/util/traverse.ts +8 -5
  575. package/src/lib/util/url.test.ts +51 -0
  576. package/src/lib/util/url.ts +18 -0
  577. package/src/shiki/langs/abap.js +1 -0
  578. package/src/shiki/langs/actionscript-3.js +1 -0
  579. package/src/shiki/langs/ada.js +1 -0
  580. package/src/shiki/langs/angular-expression.js +1 -0
  581. package/src/shiki/langs/angular-html.js +1 -0
  582. package/src/shiki/langs/angular-inline-style.js +1 -0
  583. package/src/shiki/langs/angular-inline-template.js +1 -0
  584. package/src/shiki/langs/angular-let-declaration.js +1 -0
  585. package/src/shiki/langs/angular-template-blocks.js +1 -0
  586. package/src/shiki/langs/angular-template.js +1 -0
  587. package/src/shiki/langs/angular-ts.js +1 -0
  588. package/src/shiki/langs/apache.js +1 -0
  589. package/src/shiki/langs/apex.js +1 -0
  590. package/src/shiki/langs/apl.js +1 -0
  591. package/src/shiki/langs/applescript.js +1 -0
  592. package/src/shiki/langs/ara.js +1 -0
  593. package/src/shiki/langs/asciidoc.js +1 -0
  594. package/src/shiki/langs/asm.js +1 -0
  595. package/src/shiki/langs/astro.js +1 -0
  596. package/src/shiki/langs/awk.js +1 -0
  597. package/src/shiki/langs/ballerina.js +1 -0
  598. package/src/shiki/langs/bat.js +1 -0
  599. package/src/shiki/langs/beancount.js +1 -0
  600. package/src/shiki/langs/berry.js +1 -0
  601. package/src/shiki/langs/bibtex.js +1 -0
  602. package/src/shiki/langs/bicep.js +1 -0
  603. package/src/shiki/langs/blade.js +1 -0
  604. package/src/shiki/langs/bsl.js +1 -0
  605. package/src/shiki/langs/c.js +1 -0
  606. package/src/shiki/langs/cadence.js +1 -0
  607. package/src/shiki/langs/cairo.js +1 -0
  608. package/src/shiki/langs/clarity.js +1 -0
  609. package/src/shiki/langs/clojure.js +1 -0
  610. package/src/shiki/langs/cmake.js +1 -0
  611. package/src/shiki/langs/cobol.js +1 -0
  612. package/src/shiki/langs/codeowners.js +1 -0
  613. package/src/shiki/langs/codeql.js +1 -0
  614. package/src/shiki/langs/coffee.js +1 -0
  615. package/src/shiki/langs/common-lisp.js +1 -0
  616. package/src/shiki/langs/coq.js +1 -0
  617. package/src/shiki/langs/cpp-macro.js +1 -0
  618. package/src/shiki/langs/cpp.js +1 -0
  619. package/src/shiki/langs/crystal.js +1 -0
  620. package/src/shiki/langs/csharp.js +1 -0
  621. package/src/shiki/langs/css.js +1 -0
  622. package/src/shiki/langs/csv.js +1 -0
  623. package/src/shiki/langs/cue.js +1 -0
  624. package/src/shiki/langs/cypher.js +1 -0
  625. package/src/shiki/langs/d.js +1 -0
  626. package/src/shiki/langs/dart.js +1 -0
  627. package/src/shiki/langs/dax.js +1 -0
  628. package/src/shiki/langs/desktop.js +1 -0
  629. package/src/shiki/langs/diff.js +1 -0
  630. package/src/shiki/langs/docker.js +1 -0
  631. package/src/shiki/langs/dotenv.js +1 -0
  632. package/src/shiki/langs/dream-maker.js +1 -0
  633. package/src/shiki/langs/edge.js +1 -0
  634. package/src/shiki/langs/elixir.js +1 -0
  635. package/src/shiki/langs/elm.js +1 -0
  636. package/src/shiki/langs/emacs-lisp.js +1 -0
  637. package/src/shiki/langs/erb.js +1 -0
  638. package/src/shiki/langs/erlang.js +1 -0
  639. package/src/shiki/langs/es-tag-css.js +1 -0
  640. package/src/shiki/langs/es-tag-glsl.js +1 -0
  641. package/src/shiki/langs/es-tag-html.js +1 -0
  642. package/src/shiki/langs/es-tag-sql.js +1 -0
  643. package/src/shiki/langs/es-tag-xml.js +1 -0
  644. package/src/shiki/langs/fennel.js +1 -0
  645. package/src/shiki/langs/fish.js +1 -0
  646. package/src/shiki/langs/fluent.js +1 -0
  647. package/src/shiki/langs/fortran-fixed-form.js +1 -0
  648. package/src/shiki/langs/fortran-free-form.js +1 -0
  649. package/src/shiki/langs/fsharp.js +1 -0
  650. package/src/shiki/langs/gdresource.js +1 -0
  651. package/src/shiki/langs/gdscript.js +1 -0
  652. package/src/shiki/langs/gdshader.js +1 -0
  653. package/src/shiki/langs/genie.js +1 -0
  654. package/src/shiki/langs/gherkin.js +1 -0
  655. package/src/shiki/langs/git-commit.js +1 -0
  656. package/src/shiki/langs/git-rebase.js +1 -0
  657. package/src/shiki/langs/gleam.js +1 -0
  658. package/src/shiki/langs/glimmer-js.js +1 -0
  659. package/src/shiki/langs/glimmer-ts.js +1 -0
  660. package/src/shiki/langs/glsl.js +1 -0
  661. package/src/shiki/langs/gnuplot.js +1 -0
  662. package/src/shiki/langs/go.js +1 -0
  663. package/src/shiki/langs/graphql.js +1 -0
  664. package/src/shiki/langs/groovy.js +1 -0
  665. package/src/shiki/langs/hack.js +1 -0
  666. package/src/shiki/langs/haml.js +1 -0
  667. package/src/shiki/langs/handlebars.js +1 -0
  668. package/src/shiki/langs/haskell.js +1 -0
  669. package/src/shiki/langs/haxe.js +1 -0
  670. package/src/shiki/langs/hcl.js +1 -0
  671. package/src/shiki/langs/hjson.js +1 -0
  672. package/src/shiki/langs/hlsl.js +1 -0
  673. package/src/shiki/langs/html-derivative.js +1 -0
  674. package/src/shiki/langs/html.js +1 -0
  675. package/src/shiki/langs/http.js +1 -0
  676. package/src/shiki/langs/hxml.js +1 -0
  677. package/src/shiki/langs/hy.js +1 -0
  678. package/src/shiki/langs/imba.js +1 -0
  679. package/src/shiki/langs/ini.js +1 -0
  680. package/src/shiki/langs/java.js +1 -0
  681. package/src/shiki/langs/javascript.js +1 -0
  682. package/src/shiki/langs/jinja-html.js +1 -0
  683. package/src/shiki/langs/jinja.js +1 -0
  684. package/src/shiki/langs/jison.js +1 -0
  685. package/src/shiki/langs/json.js +1 -0
  686. package/src/shiki/langs/json5.js +1 -0
  687. package/src/shiki/langs/jsonc.js +1 -0
  688. package/src/shiki/langs/jsonl.js +1 -0
  689. package/src/shiki/langs/jsonnet.js +1 -0
  690. package/src/shiki/langs/jssm.js +1 -0
  691. package/src/shiki/langs/jsx.js +1 -0
  692. package/src/shiki/langs/julia.js +1 -0
  693. package/src/shiki/langs/kotlin.js +1 -0
  694. package/src/shiki/langs/kusto.js +1 -0
  695. package/src/shiki/langs/latex.js +1 -0
  696. package/src/shiki/langs/lean.js +1 -0
  697. package/src/shiki/langs/less.js +1 -0
  698. package/src/shiki/langs/liquid.js +1 -0
  699. package/src/shiki/langs/llvm.js +1 -0
  700. package/src/shiki/langs/log.js +1 -0
  701. package/src/shiki/langs/logo.js +1 -0
  702. package/src/shiki/langs/lua.js +1 -0
  703. package/src/shiki/langs/luau.js +1 -0
  704. package/src/shiki/langs/make.js +1 -0
  705. package/src/shiki/langs/markdown-vue.js +1 -0
  706. package/src/shiki/langs/markdown.js +1 -0
  707. package/src/shiki/langs/marko.js +1 -0
  708. package/src/shiki/langs/matlab.js +1 -0
  709. package/src/shiki/langs/mdc.js +1 -0
  710. package/src/shiki/langs/mdx.js +1 -0
  711. package/src/shiki/langs/mermaid.js +1 -0
  712. package/src/shiki/langs/mipsasm.js +1 -0
  713. package/src/shiki/langs/mojo.js +1 -0
  714. package/src/shiki/langs/move.js +1 -0
  715. package/src/shiki/langs/narrat.js +1 -0
  716. package/src/shiki/langs/nextflow.js +1 -0
  717. package/src/shiki/langs/nginx.js +1 -0
  718. package/src/shiki/langs/nim.js +1 -0
  719. package/src/shiki/langs/nix.js +1 -0
  720. package/src/shiki/langs/nushell.js +1 -0
  721. package/src/shiki/langs/objective-c.js +1 -0
  722. package/src/shiki/langs/objective-cpp.js +1 -0
  723. package/src/shiki/langs/ocaml.js +1 -0
  724. package/src/shiki/langs/pascal.js +1 -0
  725. package/src/shiki/langs/perl.js +1 -0
  726. package/src/shiki/langs/php.js +1 -0
  727. package/src/shiki/langs/plsql.js +1 -0
  728. package/src/shiki/langs/po.js +1 -0
  729. package/src/shiki/langs/polar.js +1 -0
  730. package/src/shiki/langs/postcss.js +1 -0
  731. package/src/shiki/langs/powerquery.js +1 -0
  732. package/src/shiki/langs/powershell.js +1 -0
  733. package/src/shiki/langs/prisma.js +1 -0
  734. package/src/shiki/langs/prolog.js +1 -0
  735. package/src/shiki/langs/proto.js +1 -0
  736. package/src/shiki/langs/pug.js +1 -0
  737. package/src/shiki/langs/puppet.js +1 -0
  738. package/src/shiki/langs/purescript.js +1 -0
  739. package/src/shiki/langs/python.js +1 -0
  740. package/src/shiki/langs/qml.js +1 -0
  741. package/src/shiki/langs/qmldir.js +1 -0
  742. package/src/shiki/langs/qss.js +1 -0
  743. package/src/shiki/langs/r.js +1 -0
  744. package/src/shiki/langs/racket.js +1 -0
  745. package/src/shiki/langs/raku.js +1 -0
  746. package/src/shiki/langs/razor.js +1 -0
  747. package/src/shiki/langs/reg.js +1 -0
  748. package/src/shiki/langs/regexp.js +1 -0
  749. package/src/shiki/langs/rel.js +1 -0
  750. package/src/shiki/langs/riscv.js +1 -0
  751. package/src/shiki/langs/rst.js +1 -0
  752. package/src/shiki/langs/ruby.js +1 -0
  753. package/src/shiki/langs/rust.js +1 -0
  754. package/src/shiki/langs/sas.js +1 -0
  755. package/src/shiki/langs/sass.js +1 -0
  756. package/src/shiki/langs/scala.js +1 -0
  757. package/src/shiki/langs/scheme.js +1 -0
  758. package/src/shiki/langs/scss.js +1 -0
  759. package/src/shiki/langs/sdbl.js +1 -0
  760. package/src/shiki/langs/shaderlab.js +1 -0
  761. package/src/shiki/langs/shellscript.js +1 -0
  762. package/src/shiki/langs/shellsession.js +1 -0
  763. package/src/shiki/langs/smalltalk.js +1 -0
  764. package/src/shiki/langs/solidity.js +1 -0
  765. package/src/shiki/langs/soy.js +1 -0
  766. package/src/shiki/langs/sparql.js +1 -0
  767. package/src/shiki/langs/splunk.js +1 -0
  768. package/src/shiki/langs/sql.js +1 -0
  769. package/src/shiki/langs/ssh-config.js +1 -0
  770. package/src/shiki/langs/stata.js +1 -0
  771. package/src/shiki/langs/stylus.js +1 -0
  772. package/src/shiki/langs/svelte.js +1 -0
  773. package/src/shiki/langs/swift.js +1 -0
  774. package/src/shiki/langs/system-verilog.js +1 -0
  775. package/src/shiki/langs/systemd.js +1 -0
  776. package/src/shiki/langs/talonscript.js +1 -0
  777. package/src/shiki/langs/tasl.js +1 -0
  778. package/src/shiki/langs/tcl.js +1 -0
  779. package/src/shiki/langs/templ.js +1 -0
  780. package/src/shiki/langs/terraform.js +1 -0
  781. package/src/shiki/langs/tex.js +1 -0
  782. package/src/shiki/langs/toml.js +1 -0
  783. package/src/shiki/langs/ts-tags.js +1 -0
  784. package/src/shiki/langs/tsv.js +1 -0
  785. package/src/shiki/langs/tsx.js +1 -0
  786. package/src/shiki/langs/turtle.js +1 -0
  787. package/src/shiki/langs/twig.js +1 -0
  788. package/src/shiki/langs/typescript.js +1 -0
  789. package/src/shiki/langs/typespec.js +1 -0
  790. package/src/shiki/langs/typst.js +1 -0
  791. package/src/shiki/langs/v.js +1 -0
  792. package/src/shiki/langs/vala.js +1 -0
  793. package/src/shiki/langs/vb.js +1 -0
  794. package/src/shiki/langs/verilog.js +1 -0
  795. package/src/shiki/langs/vhdl.js +1 -0
  796. package/src/shiki/langs/viml.js +1 -0
  797. package/src/shiki/langs/vue-directives.js +1 -0
  798. package/src/shiki/langs/vue-html.js +1 -0
  799. package/src/shiki/langs/vue-interpolations.js +1 -0
  800. package/src/shiki/langs/vue-sfc-style-variable-injection.js +1 -0
  801. package/src/shiki/langs/vue.js +1 -0
  802. package/src/shiki/langs/vyper.js +1 -0
  803. package/src/shiki/langs/wasm.js +1 -0
  804. package/src/shiki/langs/wenyan.js +1 -0
  805. package/src/shiki/langs/wgsl.js +1 -0
  806. package/src/shiki/langs/wikitext.js +1 -0
  807. package/src/shiki/langs/wit.js +1 -0
  808. package/src/shiki/langs/wolfram.js +1 -0
  809. package/src/shiki/langs/xml.js +1 -0
  810. package/src/shiki/langs/xsl.js +1 -0
  811. package/src/shiki/langs/yaml.js +1 -0
  812. package/src/shiki/langs/zenscript.js +1 -0
  813. package/src/shiki/langs/zig.js +1 -0
  814. package/src/shiki/themes/andromeeda.js +1 -0
  815. package/src/shiki/themes/aurora-x.js +1 -0
  816. package/src/shiki/themes/ayu-dark.js +1 -0
  817. package/src/shiki/themes/catppuccin-frappe.js +1 -0
  818. package/src/shiki/themes/catppuccin-latte.js +1 -0
  819. package/src/shiki/themes/catppuccin-macchiato.js +1 -0
  820. package/src/shiki/themes/catppuccin-mocha.js +1 -0
  821. package/src/shiki/themes/dark-plus.js +1 -0
  822. package/src/shiki/themes/dracula-soft.js +1 -0
  823. package/src/shiki/themes/dracula.js +1 -0
  824. package/src/shiki/themes/everforest-dark.js +1 -0
  825. package/src/shiki/themes/everforest-light.js +1 -0
  826. package/src/shiki/themes/github-dark-default.js +1 -0
  827. package/src/shiki/themes/github-dark-dimmed.js +1 -0
  828. package/src/shiki/themes/github-dark-high-contrast.js +1 -0
  829. package/src/shiki/themes/github-dark.js +1 -0
  830. package/src/shiki/themes/github-light-default.js +1 -0
  831. package/src/shiki/themes/github-light-high-contrast.js +1 -0
  832. package/src/shiki/themes/github-light.js +1 -0
  833. package/src/shiki/themes/gruvbox-dark-hard.js +1 -0
  834. package/src/shiki/themes/gruvbox-dark-medium.js +1 -0
  835. package/src/shiki/themes/gruvbox-dark-soft.js +1 -0
  836. package/src/shiki/themes/gruvbox-light-hard.js +1 -0
  837. package/src/shiki/themes/gruvbox-light-medium.js +1 -0
  838. package/src/shiki/themes/gruvbox-light-soft.js +1 -0
  839. package/src/shiki/themes/houston.js +1 -0
  840. package/src/shiki/themes/kanagawa-dragon.js +1 -0
  841. package/src/shiki/themes/kanagawa-lotus.js +1 -0
  842. package/src/shiki/themes/kanagawa-wave.js +1 -0
  843. package/src/shiki/themes/laserwave.js +1 -0
  844. package/src/shiki/themes/light-plus.js +1 -0
  845. package/src/shiki/themes/material-theme-darker.js +1 -0
  846. package/src/shiki/themes/material-theme-lighter.js +1 -0
  847. package/src/shiki/themes/material-theme-ocean.js +1 -0
  848. package/src/shiki/themes/material-theme-palenight.js +1 -0
  849. package/src/shiki/themes/material-theme.js +1 -0
  850. package/src/shiki/themes/min-dark.js +1 -0
  851. package/src/shiki/themes/min-light.js +1 -0
  852. package/src/shiki/themes/monokai.js +1 -0
  853. package/src/shiki/themes/night-owl.js +1 -0
  854. package/src/shiki/themes/nord.js +1 -0
  855. package/src/shiki/themes/one-dark-pro.js +1 -0
  856. package/src/shiki/themes/one-light.js +1 -0
  857. package/src/shiki/themes/plastic.js +1 -0
  858. package/src/shiki/themes/poimandres.js +1 -0
  859. package/src/shiki/themes/red.js +1 -0
  860. package/src/shiki/themes/rose-pine-dawn.js +1 -0
  861. package/src/shiki/themes/rose-pine-moon.js +1 -0
  862. package/src/shiki/themes/rose-pine.js +1 -0
  863. package/src/shiki/themes/slack-dark.js +1 -0
  864. package/src/shiki/themes/slack-ochin.js +1 -0
  865. package/src/shiki/themes/snazzy-light.js +1 -0
  866. package/src/shiki/themes/solarized-dark.js +1 -0
  867. package/src/shiki/themes/solarized-light.js +1 -0
  868. package/src/shiki/themes/synthwave-84.js +1 -0
  869. package/src/shiki/themes/tokyo-night.js +1 -0
  870. package/src/shiki/themes/vesper.js +1 -0
  871. package/src/shiki/themes/vitesse-black.js +1 -0
  872. package/src/shiki/themes/vitesse-dark.js +1 -0
  873. package/src/shiki/themes/vitesse-light.js +1 -0
  874. package/client.d.ts +0 -8
  875. package/dist/cli/dev/pagefind-command.d.ts +0 -3
  876. package/dist/cli/dev/pagefind-command.js +0 -59
  877. package/dist/cli/dev/pagefind-command.js.map +0 -1
  878. package/dist/lib/components/context/PluginSystem.js +0 -2
  879. package/dist/lib/components/context/PluginSystem.js.map +0 -1
  880. package/dist/lib/plugins/openapi/post-processors/removeExtensions.d.ts +0 -7
  881. package/dist/lib/plugins/openapi/post-processors/removeExtensions.js.map +0 -1
  882. package/dist/lib/plugins/openapi/post-processors/removeExtensions.test.js.map +0 -1
  883. package/dist/lib/plugins/openapi/post-processors/removeParameters.js.map +0 -1
  884. package/dist/lib/plugins/openapi/post-processors/removeParameters.test.js.map +0 -1
  885. package/dist/lib/plugins/openapi/post-processors/removePaths.js.map +0 -1
  886. package/dist/lib/plugins/openapi/post-processors/removePaths.test.js +0 -104
  887. package/dist/lib/plugins/openapi/post-processors/removePaths.test.js.map +0 -1
  888. package/dist/lib/plugins/openapi/post-processors/traverse.js.map +0 -1
  889. package/dist/zuplo/env.d.ts +0 -7
  890. package/dist/zuplo/env.js +0 -12
  891. package/dist/zuplo/env.js.map +0 -1
  892. package/lib/AuthenticationPlugin-foqdvvkf.js +0 -58
  893. package/lib/AuthenticationPlugin-foqdvvkf.js.map +0 -1
  894. package/lib/Drawer-kDAfOq_2.js.map +0 -1
  895. package/lib/Markdown-aF5FdsNi.js +0 -16960
  896. package/lib/Markdown-aF5FdsNi.js.map +0 -1
  897. package/lib/MdxPage-ZW1StNhp.js +0 -83
  898. package/lib/MdxPage-ZW1StNhp.js.map +0 -1
  899. package/lib/OasProvider-OlYb8W57.js +0 -34
  900. package/lib/OperationList-BvfIzVRx.js.map +0 -1
  901. package/lib/Pagination-CYB3nVYx.js +0 -46
  902. package/lib/Pagination-CYB3nVYx.js.map +0 -1
  903. package/lib/SchemaList-Bi35O4XD.js.map +0 -1
  904. package/lib/SchemaView-D7MC5cjz.js +0 -356
  905. package/lib/SchemaView-D7MC5cjz.js.map +0 -1
  906. package/lib/Select-DVFRKf1R.js +0 -223
  907. package/lib/SlotletProvider-DXvc0aY6.js +0 -338
  908. package/lib/SlotletProvider-DXvc0aY6.js.map +0 -1
  909. package/lib/SyntaxHighlight-BEoSoPEo.js +0 -2890
  910. package/lib/SyntaxHighlight-BEoSoPEo.js.map +0 -1
  911. package/lib/Toc-YBsgI72s.js.map +0 -1
  912. package/lib/_commonjsHelpers-BkfeUUK-.js +0 -29
  913. package/lib/_commonjsHelpers-BkfeUUK-.js.map +0 -1
  914. package/lib/chunk-HA7DTUK3-C4gP41vD.js.map +0 -1
  915. package/lib/circular-ByJI6Mci.js.map +0 -1
  916. package/lib/context-DLCwaMXN.js +0 -22
  917. package/lib/context-DLCwaMXN.js.map +0 -1
  918. package/lib/createServer-mMau3eV_.js.map +0 -1
  919. package/lib/hook-CqpVYDqN.js +0 -1483
  920. package/lib/hook-CqpVYDqN.js.map +0 -1
  921. package/lib/index-Bt7MKhZq.js +0 -2514
  922. package/lib/index-Bt7MKhZq.js.map +0 -1
  923. package/lib/index-CXfEwK_7.js +0 -2226
  924. package/lib/index-CXfEwK_7.js.map +0 -1
  925. package/lib/index-Dl3Yl0yb.js.map +0 -1
  926. package/lib/index-gQD2h1wX.js +0 -447
  927. package/lib/index-gQD2h1wX.js.map +0 -1
  928. package/lib/index.esm--gIChbWs.js +0 -1207
  929. package/lib/index.esm--gIChbWs.js.map +0 -1
  930. package/lib/invariant-Caa8-XvF.js +0 -26
  931. package/lib/jsx-runtime-CYK1ROHF.js +0 -446
  932. package/lib/jsx-runtime-CYK1ROHF.js.map +0 -1
  933. package/lib/mutation-8LjrN7uz.js +0 -208
  934. package/lib/mutation-8LjrN7uz.js.map +0 -1
  935. package/lib/objectEntries-BS7aAgOm.js +0 -12
  936. package/lib/objectEntries-BS7aAgOm.js.map +0 -1
  937. package/lib/post-processors/removeExtensions.js.map +0 -1
  938. package/lib/post-processors/removeParameters.js +0 -48
  939. package/lib/post-processors/removeParameters.js.map +0 -1
  940. package/lib/post-processors/removePaths.js +0 -28
  941. package/lib/post-processors/removePaths.js.map +0 -1
  942. package/lib/post-processors/traverse.js +0 -15
  943. package/lib/post-processors/traverse.js.map +0 -1
  944. package/lib/prism-bash.min-HHIMdNJ_.js +0 -7
  945. package/lib/prism-bash.min-HHIMdNJ_.js.map +0 -1
  946. package/lib/prism-csharp.min-bQAo2pmx.js +0 -63
  947. package/lib/prism-csharp.min-bQAo2pmx.js.map +0 -1
  948. package/lib/prism-java.min-BpvsOuIa.js +0 -35
  949. package/lib/prism-java.min-BpvsOuIa.js.map +0 -1
  950. package/lib/prism-javascript.min-CEqHqgbm.js +0 -9
  951. package/lib/prism-javascript.min-CEqHqgbm.js.map +0 -1
  952. package/lib/prism-json.min-B1GJqK1k.js +0 -2
  953. package/lib/prism-json.min-B1GJqK1k.js.map +0 -1
  954. package/lib/prism-jsstacktrace.min-BfobCF2F.js +0 -2
  955. package/lib/prism-jsstacktrace.min-BfobCF2F.js.map +0 -1
  956. package/lib/prism-markdown.min-C0Qn0m-5.js +0 -61
  957. package/lib/prism-markdown.min-C0Qn0m-5.js.map +0 -1
  958. package/lib/prism-markup-BNGj0Tvm.js +0 -174
  959. package/lib/prism-markup-BNGj0Tvm.js.map +0 -1
  960. package/lib/prism-objectivec.min-BXSWqpJJ.js +0 -2
  961. package/lib/prism-objectivec.min-BXSWqpJJ.js.map +0 -1
  962. package/lib/prism-ruby.min-Dx9KO9ds.js +0 -38
  963. package/lib/prism-ruby.min-Dx9KO9ds.js.map +0 -1
  964. package/lib/prism-typescript.min-CD7H2IYQ.js +0 -34
  965. package/lib/prism-typescript.min-CD7H2IYQ.js.map +0 -1
  966. package/src/lib/components/context/PluginSystem.ts +0 -0
  967. package/src/lib/plugins/openapi/post-processors/removePaths.test.ts +0 -126
  968. /package/dist/lib/plugins/openapi/{post-processors → processors}/removeExtensions.test.d.ts +0 -0
  969. /package/dist/lib/plugins/openapi/{post-processors → processors}/removeParameters.test.d.ts +0 -0
  970. /package/dist/lib/plugins/openapi/{post-processors → processors}/removePaths.test.d.ts +0 -0
  971. /package/dist/lib/plugins/openapi/{post-processors → processors}/traverse.d.ts +0 -0
  972. /package/dist/lib/plugins/openapi/{post-processors → processors}/traverse.js +0 -0
  973. /package/dist/lib/{components/context/PluginSystem.d.ts → util/url.test.d.ts} +0 -0
  974. /package/src/lib/plugins/openapi/{post-processors → processors}/traverse.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-Bt7MKhZq.js","sources":["../../../node_modules/.pnpm/@mdx-js+react@3.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@mdx-js/react/lib/index.js","../../../node_modules/.pnpm/react-fast-compare@3.2.2/node_modules/react-fast-compare/index.js","../../../node_modules/.pnpm/invariant@2.2.4/node_modules/invariant/browser.js","../../../node_modules/.pnpm/shallowequal@1.1.0/node_modules/shallowequal/index.js","../../../node_modules/.pnpm/@zudoku+react-helmet-async@2.0.5_react@19.0.0/node_modules/@zudoku/react-helmet-async/lib/index.esm.js","../../../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/core/RouteGuard.tsx","../src/lib/errors/ServerError.tsx","../../../node_modules/.pnpm/react-router@7.2.0_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","../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","../../../node_modules/.pnpm/@babel+runtime@7.27.0/node_modules/@babel/runtime/helpers/esm/extends.js","../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.development.js","../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js","../../../node_modules/.pnpm/hoist-non-react-statics@3.3.2/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../../node_modules/.pnpm/@tanem+react-nprogress@5.0.55_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@tanem/react-nprogress/dist/react-nprogress.esm.js","../src/lib/components/TopNavigation.tsx","../src/lib/components/MobileTopNavigation.tsx","../src/lib/components/Header.tsx","../src/lib/ui/Drawer.tsx","../src/lib/components/navigation/SidebarWrapper.tsx","../src/lib/components/navigation/Sidebar.tsx","../src/lib/components/Main.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":["/**\n * @import {MDXComponents} from 'mdx/types.js'\n * @import {Component, ReactElement, ReactNode} from 'react'\n */\n\n/**\n * @callback MergeComponents\n * Custom merge function.\n * @param {Readonly<MDXComponents>} currentComponents\n * Current components from the context.\n * @returns {MDXComponents}\n * Additional components.\n *\n * @typedef Props\n * Configuration for `MDXProvider`.\n * @property {ReactNode | null | undefined} [children]\n * Children (optional).\n * @property {Readonly<MDXComponents> | MergeComponents | null | undefined} [components]\n * Additional components to use or a function that creates them (optional).\n * @property {boolean | null | undefined} [disableParentContext=false]\n * Turn off outer component context (default: `false`).\n */\n\nimport React from 'react'\n\n/** @type {Readonly<MDXComponents>} */\nconst emptyComponents = {}\n\nconst MDXContext = React.createContext(emptyComponents)\n\n/**\n * Get current components from the MDX Context.\n *\n * @param {Readonly<MDXComponents> | MergeComponents | null | undefined} [components]\n * Additional components to use or a function that creates them (optional).\n * @returns {MDXComponents}\n * Current components.\n */\nexport function useMDXComponents(components) {\n const contextComponents = React.useContext(MDXContext)\n\n // Memoize to avoid unnecessary top-level context changes\n return React.useMemo(\n function () {\n // Custom merge via a function prop\n if (typeof components === 'function') {\n return components(contextComponents)\n }\n\n return {...contextComponents, ...components}\n },\n [contextComponents, components]\n )\n}\n\n/**\n * Provider for MDX context.\n *\n * @param {Readonly<Props>} properties\n * Properties.\n * @returns {ReactElement}\n * Element.\n * @satisfies {Component}\n */\nexport function MDXProvider(properties) {\n /** @type {Readonly<MDXComponents>} */\n let allComponents\n\n if (properties.disableParentContext) {\n allComponents =\n typeof properties.components === 'function'\n ? properties.components(emptyComponents)\n : properties.components || emptyComponents\n } else {\n allComponents = useMDXComponents(properties.components)\n }\n\n return React.createElement(\n MDXContext.Provider,\n {value: allComponents},\n properties.children\n )\n}\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","// src/index.tsx\nimport React3, { Component as Component3 } from \"react\";\nimport fastCompare from \"react-fast-compare\";\nimport invariant from \"invariant\";\n\n// src/Provider.tsx\nimport React2, { Component } from \"react\";\n\n// src/server.ts\nimport React from \"react\";\n\n// src/constants.ts\nvar TAG_NAMES = /* @__PURE__ */ ((TAG_NAMES2) => {\n TAG_NAMES2[\"BASE\"] = \"base\";\n TAG_NAMES2[\"BODY\"] = \"body\";\n TAG_NAMES2[\"HEAD\"] = \"head\";\n TAG_NAMES2[\"HTML\"] = \"html\";\n TAG_NAMES2[\"LINK\"] = \"link\";\n TAG_NAMES2[\"META\"] = \"meta\";\n TAG_NAMES2[\"NOSCRIPT\"] = \"noscript\";\n TAG_NAMES2[\"SCRIPT\"] = \"script\";\n TAG_NAMES2[\"STYLE\"] = \"style\";\n TAG_NAMES2[\"TITLE\"] = \"title\";\n TAG_NAMES2[\"FRAGMENT\"] = \"Symbol(react.fragment)\";\n return TAG_NAMES2;\n})(TAG_NAMES || {});\nvar SEO_PRIORITY_TAGS = {\n link: { rel: [\"amphtml\", \"canonical\", \"alternate\"] },\n script: { type: [\"application/ld+json\"] },\n meta: {\n charset: \"\",\n name: [\"generator\", \"robots\", \"description\"],\n property: [\n \"og:type\",\n \"og:title\",\n \"og:url\",\n \"og:image\",\n \"og:image:alt\",\n \"og:description\",\n \"twitter:url\",\n \"twitter:title\",\n \"twitter:description\",\n \"twitter:image\",\n \"twitter:image:alt\",\n \"twitter:card\",\n \"twitter:site\"\n ]\n }\n};\nvar VALID_TAG_NAMES = Object.values(TAG_NAMES);\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\nvar HTML_TAG_MAP = Object.entries(REACT_TAG_MAP).reduce(\n (carry, [key, value]) => {\n carry[value] = key;\n return carry;\n },\n {}\n);\nvar HELMET_ATTRIBUTE = \"data-rh\";\n\n// src/utils.ts\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\",\n PRIORITIZE_SEO_TAGS: \"prioritizeSeoTags\"\n};\nvar getInnermostProperty = (propsList, property) => {\n for (let i = propsList.length - 1; i >= 0; i -= 1) {\n const props = propsList[i];\n if (Object.prototype.hasOwnProperty.call(props, property)) {\n return props[property];\n }\n }\n return null;\n};\nvar getTitleFromPropsList = (propsList) => {\n let innermostTitle = getInnermostProperty(propsList, \"title\" /* TITLE */);\n const innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n if (Array.isArray(innermostTitle)) {\n innermostTitle = innermostTitle.join(\"\");\n }\n if (innermostTemplate && innermostTitle) {\n return innermostTemplate.replace(/%s/g, () => innermostTitle);\n }\n const innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n return innermostTitle || innermostDefaultTitle || void 0;\n};\nvar getOnChangeClientState = (propsList) => getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || (() => {\n});\nvar getAttributesFromPropsList = (tagType, propsList) => propsList.filter((props) => typeof props[tagType] !== \"undefined\").map((props) => props[tagType]).reduce((tagAttrs, current) => ({ ...tagAttrs, ...current }), {});\nvar getBaseTagFromPropsList = (primaryAttributes, propsList) => propsList.filter((props) => typeof props[\"base\" /* BASE */] !== \"undefined\").map((props) => props[\"base\" /* BASE */]).reverse().reduce((innermostBaseTag, tag) => {\n if (!innermostBaseTag.length) {\n const keys = Object.keys(tag);\n for (let i = 0; i < keys.length; i += 1) {\n const attributeKey = keys[i];\n const lowerCaseAttributeKey = attributeKey.toLowerCase();\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n return innermostBaseTag;\n}, []);\nvar warn = (msg) => console && typeof console.warn === \"function\" && console.warn(msg);\nvar getTagsFromPropsList = (tagName, primaryAttributes, propsList) => {\n const approvedSeenTags = {};\n return propsList.filter((props) => {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\n `Helmet: ${tagName} should be of type \"Array\". Instead found type \"${typeof props[tagName]}\"`\n );\n }\n return false;\n }).map((props) => props[tagName]).reverse().reduce((approvedTags, instanceTags) => {\n const instanceSeenTags = {};\n instanceTags.filter((tag) => {\n let primaryAttributeKey;\n const keys2 = Object.keys(tag);\n for (let i = 0; i < keys2.length; i += 1) {\n const attributeKey = keys2[i];\n const lowerCaseAttributeKey = attributeKey.toLowerCase();\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === \"rel\" /* REL */ && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === \"rel\" /* REL */ && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === \"innerHTML\" /* INNER_HTML */ || attributeKey === \"cssText\" /* CSS_TEXT */ || attributeKey === \"itemprop\" /* ITEM_PROP */)) {\n primaryAttributeKey = attributeKey;\n }\n }\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n const value = tag[primaryAttributeKey].toLowerCase();\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n return false;\n }).reverse().forEach((tag) => approvedTags.push(tag));\n const keys = Object.keys(instanceSeenTags);\n for (let i = 0; i < keys.length; i += 1) {\n const attributeKey = keys[i];\n const tagUnion = {\n ...approvedSeenTags[attributeKey],\n ...instanceSeenTags[attributeKey]\n };\n approvedSeenTags[attributeKey] = tagUnion;\n }\n return approvedTags;\n }, []).reverse();\n};\nvar getAnyTrueFromPropsList = (propsList, checkedTag) => {\n if (Array.isArray(propsList) && propsList.length) {\n for (let index = 0; index < propsList.length; index += 1) {\n const prop = propsList[index];\n if (prop[checkedTag]) {\n return true;\n }\n }\n }\n return false;\n};\nvar reducePropsToState = (propsList) => ({\n baseTag: getBaseTagFromPropsList([\"href\" /* HREF */], propsList),\n bodyAttributes: getAttributesFromPropsList(\"bodyAttributes\" /* BODY */, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(\"htmlAttributes\" /* HTML */, propsList),\n linkTags: getTagsFromPropsList(\n \"link\" /* LINK */,\n [\"rel\" /* REL */, \"href\" /* HREF */],\n propsList\n ),\n metaTags: getTagsFromPropsList(\n \"meta\" /* META */,\n [\n \"name\" /* NAME */,\n \"charset\" /* CHARSET */,\n \"http-equiv\" /* HTTPEQUIV */,\n \"property\" /* PROPERTY */,\n \"itemprop\" /* ITEM_PROP */\n ],\n propsList\n ),\n noscriptTags: getTagsFromPropsList(\"noscript\" /* NOSCRIPT */, [\"innerHTML\" /* INNER_HTML */], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(\n \"script\" /* SCRIPT */,\n [\"src\" /* SRC */, \"innerHTML\" /* INNER_HTML */],\n propsList\n ),\n styleTags: getTagsFromPropsList(\"style\" /* STYLE */, [\"cssText\" /* CSS_TEXT */], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(\"titleAttributes\" /* TITLE */, propsList),\n prioritizeSeoTags: getAnyTrueFromPropsList(propsList, HELMET_PROPS.PRIORITIZE_SEO_TAGS)\n});\nvar flattenArray = (possibleArray) => Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\nvar checkIfPropsMatch = (props, toMatch) => {\n const keys = Object.keys(props);\n for (let i = 0; i < keys.length; i += 1) {\n if (toMatch[keys[i]] && toMatch[keys[i]].includes(props[keys[i]])) {\n return true;\n }\n }\n return false;\n};\nvar prioritizer = (elementsList, propsToMatch) => {\n if (Array.isArray(elementsList)) {\n return elementsList.reduce(\n (acc, elementAttrs) => {\n if (checkIfPropsMatch(elementAttrs, propsToMatch)) {\n acc.priority.push(elementAttrs);\n } else {\n acc.default.push(elementAttrs);\n }\n return acc;\n },\n { priority: [], default: [] }\n );\n }\n return { default: elementsList, priority: [] };\n};\nvar without = (obj, key) => {\n return {\n ...obj,\n [key]: void 0\n };\n};\n\n// src/server.ts\nvar SELF_CLOSING_TAGS = [\"noscript\" /* NOSCRIPT */, \"script\" /* SCRIPT */, \"style\" /* STYLE */];\nvar encodeSpecialCharacters = (str, encode = true) => {\n if (encode === false) {\n return String(str);\n }\n return String(str).replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\").replace(/\"/g, \"&quot;\").replace(/'/g, \"&#x27;\");\n};\nvar generateElementAttributesAsString = (attributes) => Object.keys(attributes).reduce((str, key) => {\n const attr = typeof attributes[key] !== \"undefined\" ? `${key}=\"${attributes[key]}\"` : `${key}`;\n return str ? `${str} ${attr}` : attr;\n}, \"\");\nvar generateTitleAsString = (type, title, attributes, encode) => {\n const attributeString = generateElementAttributesAsString(attributes);\n const flattenedTitle = flattenArray(title);\n return attributeString ? `<${type} ${HELMET_ATTRIBUTE}=\"true\" ${attributeString}>${encodeSpecialCharacters(\n flattenedTitle,\n encode\n )}</${type}>` : `<${type} ${HELMET_ATTRIBUTE}=\"true\">${encodeSpecialCharacters(\n flattenedTitle,\n encode\n )}</${type}>`;\n};\nvar generateTagsAsString = (type, tags, encode = true) => tags.reduce((str, t) => {\n const tag = t;\n const attributeHtml = Object.keys(tag).filter(\n (attribute) => !(attribute === \"innerHTML\" /* INNER_HTML */ || attribute === \"cssText\" /* CSS_TEXT */)\n ).reduce((string, attribute) => {\n const attr = typeof tag[attribute] === \"undefined\" ? attribute : `${attribute}=\"${encodeSpecialCharacters(tag[attribute], encode)}\"`;\n return string ? `${string} ${attr}` : attr;\n }, \"\");\n const tagContent = tag.innerHTML || tag.cssText || \"\";\n const isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n return `${str}<${type} ${HELMET_ATTRIBUTE}=\"true\" ${attributeHtml}${isSelfClosing ? `/>` : `>${tagContent}</${type}>`}`;\n}, \"\");\nvar convertElementAttributesToReactProps = (attributes, initProps = {}) => Object.keys(attributes).reduce((obj, key) => {\n const mapped = REACT_TAG_MAP[key];\n obj[mapped || key] = attributes[key];\n return obj;\n}, initProps);\nvar generateTitleAsReactComponent = (_type, title, attributes) => {\n const initProps = {\n key: title,\n [HELMET_ATTRIBUTE]: true\n };\n const props = convertElementAttributesToReactProps(attributes, initProps);\n return [React.createElement(\"title\" /* TITLE */, props, title)];\n};\nvar generateTagsAsReactComponent = (type, tags) => tags.map((tag, i) => {\n const mappedTag = {\n key: i,\n [HELMET_ATTRIBUTE]: true\n };\n Object.keys(tag).forEach((attribute) => {\n const mapped = REACT_TAG_MAP[attribute];\n const mappedAttribute = mapped || attribute;\n if (mappedAttribute === \"innerHTML\" /* INNER_HTML */ || mappedAttribute === \"cssText\" /* CSS_TEXT */) {\n const content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n return React.createElement(type, mappedTag);\n});\nvar getMethodsForTag = (type, tags, encode = true) => {\n switch (type) {\n case \"title\" /* TITLE */:\n return {\n toComponent: () => generateTitleAsReactComponent(type, tags.title, tags.titleAttributes),\n toString: () => generateTitleAsString(type, tags.title, tags.titleAttributes, encode)\n };\n case \"bodyAttributes\" /* BODY */:\n case \"htmlAttributes\" /* HTML */:\n return {\n toComponent: () => convertElementAttributesToReactProps(tags),\n toString: () => generateElementAttributesAsString(tags)\n };\n default:\n return {\n toComponent: () => generateTagsAsReactComponent(type, tags),\n toString: () => generateTagsAsString(type, tags, encode)\n };\n }\n};\nvar getPriorityMethods = ({ metaTags, linkTags, scriptTags, encode }) => {\n const meta = prioritizer(metaTags, SEO_PRIORITY_TAGS.meta);\n const link = prioritizer(linkTags, SEO_PRIORITY_TAGS.link);\n const script = prioritizer(scriptTags, SEO_PRIORITY_TAGS.script);\n const priorityMethods = {\n toComponent: () => [\n ...generateTagsAsReactComponent(\"meta\" /* META */, meta.priority),\n ...generateTagsAsReactComponent(\"link\" /* LINK */, link.priority),\n ...generateTagsAsReactComponent(\"script\" /* SCRIPT */, script.priority)\n ],\n toString: () => (\n // generate all the tags as strings and concatenate them\n `${getMethodsForTag(\"meta\" /* META */, meta.priority, encode)} ${getMethodsForTag(\n \"link\" /* LINK */,\n link.priority,\n encode\n )} ${getMethodsForTag(\"script\" /* SCRIPT */, script.priority, encode)}`\n )\n };\n return {\n priorityMethods,\n metaTags: meta.default,\n linkTags: link.default,\n scriptTags: script.default\n };\n};\nvar mapStateOnServer = (props) => {\n const {\n baseTag,\n bodyAttributes,\n encode = true,\n htmlAttributes,\n noscriptTags,\n styleTags,\n title = \"\",\n titleAttributes,\n prioritizeSeoTags\n } = props;\n let { linkTags, metaTags, scriptTags } = props;\n let priorityMethods = {\n toComponent: () => {\n },\n toString: () => \"\"\n };\n if (prioritizeSeoTags) {\n ({ priorityMethods, linkTags, metaTags, scriptTags } = getPriorityMethods(props));\n }\n return {\n priority: priorityMethods,\n base: getMethodsForTag(\"base\" /* BASE */, baseTag, encode),\n bodyAttributes: getMethodsForTag(\"bodyAttributes\" /* BODY */, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(\"htmlAttributes\" /* HTML */, htmlAttributes, encode),\n link: getMethodsForTag(\"link\" /* LINK */, linkTags, encode),\n meta: getMethodsForTag(\"meta\" /* META */, metaTags, encode),\n noscript: getMethodsForTag(\"noscript\" /* NOSCRIPT */, noscriptTags, encode),\n script: getMethodsForTag(\"script\" /* SCRIPT */, scriptTags, encode),\n style: getMethodsForTag(\"style\" /* STYLE */, styleTags, encode),\n title: getMethodsForTag(\"title\" /* TITLE */, { title, titleAttributes }, encode)\n };\n};\nvar server_default = mapStateOnServer;\n\n// src/HelmetData.ts\nvar instances = [];\nvar isDocument = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar HelmetData = class {\n instances = [];\n canUseDOM = isDocument;\n context;\n value = {\n setHelmet: (serverState) => {\n this.context.helmet = serverState;\n },\n helmetInstances: {\n get: () => this.canUseDOM ? instances : this.instances,\n add: (instance) => {\n (this.canUseDOM ? instances : this.instances).push(instance);\n },\n remove: (instance) => {\n const index = (this.canUseDOM ? instances : this.instances).indexOf(instance);\n (this.canUseDOM ? instances : this.instances).splice(index, 1);\n }\n }\n };\n constructor(context, canUseDOM) {\n this.context = context;\n this.canUseDOM = canUseDOM || false;\n if (!canUseDOM) {\n context.helmet = server_default({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n }\n};\n\n// src/Provider.tsx\nvar defaultValue = {};\nvar Context = React2.createContext(defaultValue);\nvar HelmetProvider = class _HelmetProvider extends Component {\n static canUseDOM = isDocument;\n helmetData;\n constructor(props) {\n super(props);\n this.helmetData = new HelmetData(this.props.context || {}, _HelmetProvider.canUseDOM);\n }\n render() {\n return /* @__PURE__ */ React2.createElement(Context.Provider, { value: this.helmetData.value }, this.props.children);\n }\n};\n\n// src/Dispatcher.tsx\nimport { Component as Component2 } from \"react\";\nimport shallowEqual from \"shallowequal\";\n\n// src/client.ts\nvar updateTags = (type, tags) => {\n const headElement = document.head || document.querySelector(\"head\" /* HEAD */);\n const tagNodes = headElement.querySelectorAll(`${type}[${HELMET_ATTRIBUTE}]`);\n const oldTags = [].slice.call(tagNodes);\n const newTags = [];\n let indexToDelete;\n if (tags && tags.length) {\n tags.forEach((tag) => {\n const newElement = document.createElement(type);\n for (const attribute in tag) {\n if (Object.prototype.hasOwnProperty.call(tag, attribute)) {\n if (attribute === \"innerHTML\" /* INNER_HTML */) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === \"cssText\" /* CSS_TEXT */) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n const attr = attribute;\n const value = typeof tag[attr] === \"undefined\" ? \"\" : tag[attr];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n if (oldTags.some((existingTag, index) => {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n oldTags.forEach((tag) => tag.parentNode?.removeChild(tag));\n newTags.forEach((tag) => headElement.appendChild(tag));\n return {\n oldTags,\n newTags\n };\n};\nvar updateAttributes = (tagName, attributes) => {\n const elementTag = document.getElementsByTagName(tagName)[0];\n if (!elementTag) {\n return;\n }\n const helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n const helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n const attributesToRemove = [...helmetAttributes];\n const attributeKeys = Object.keys(attributes);\n for (const attribute of attributeKeys) {\n const value = attributes[attribute] || \"\";\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n const indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n for (let i = attributesToRemove.length - 1; i >= 0; i -= 1) {\n elementTag.removeAttribute(attributesToRemove[i]);\n }\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\nvar updateTitle = (title, attributes) => {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n updateAttributes(\"title\" /* TITLE */, attributes);\n};\nvar commitTagChanges = (newState, cb) => {\n const {\n baseTag,\n bodyAttributes,\n htmlAttributes,\n linkTags,\n metaTags,\n noscriptTags,\n onChangeClientState,\n scriptTags,\n styleTags,\n title,\n titleAttributes\n } = newState;\n updateAttributes(\"body\" /* BODY */, bodyAttributes);\n updateAttributes(\"html\" /* HTML */, htmlAttributes);\n updateTitle(title, titleAttributes);\n const tagUpdates = {\n baseTag: updateTags(\"base\" /* BASE */, baseTag),\n linkTags: updateTags(\"link\" /* LINK */, linkTags),\n metaTags: updateTags(\"meta\" /* META */, metaTags),\n noscriptTags: updateTags(\"noscript\" /* NOSCRIPT */, noscriptTags),\n scriptTags: updateTags(\"script\" /* SCRIPT */, scriptTags),\n styleTags: updateTags(\"style\" /* STYLE */, styleTags)\n };\n const addedTags = {};\n const removedTags = {};\n Object.keys(tagUpdates).forEach((tagType) => {\n const { newTags, oldTags } = tagUpdates[tagType];\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n if (cb) {\n cb();\n }\n onChangeClientState(newState, addedTags, removedTags);\n};\nvar _helmetCallback = null;\nvar handleStateChangeOnClient = (newState) => {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(() => {\n commitTagChanges(newState, () => {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\nvar client_default = handleStateChangeOnClient;\n\n// src/Dispatcher.tsx\nvar HelmetDispatcher = class extends Component2 {\n rendered = false;\n shouldComponentUpdate(nextProps) {\n return !shallowEqual(nextProps, this.props);\n }\n componentDidUpdate() {\n this.emitChange();\n }\n componentWillUnmount() {\n const { helmetInstances } = this.props.context;\n helmetInstances.remove(this);\n this.emitChange();\n }\n emitChange() {\n const { helmetInstances, setHelmet } = this.props.context;\n let serverState = null;\n const state = reducePropsToState(\n helmetInstances.get().map((instance) => {\n const props = { ...instance.props };\n delete props.context;\n return props;\n })\n );\n if (HelmetProvider.canUseDOM) {\n client_default(state);\n } else if (server_default) {\n serverState = server_default(state);\n }\n setHelmet(serverState);\n }\n // componentWillMount will be deprecated\n // for SSR, initialize on first render\n // constructor is also unsafe in StrictMode\n init() {\n if (this.rendered) {\n return;\n }\n this.rendered = true;\n const { helmetInstances } = this.props.context;\n helmetInstances.add(this);\n this.emitChange();\n }\n render() {\n this.init();\n return null;\n }\n};\n\n// src/index.tsx\nvar Helmet = class extends Component3 {\n static defaultProps = {\n defer: true,\n encodeSpecialCharacters: true,\n prioritizeSeoTags: false\n };\n shouldComponentUpdate(nextProps) {\n return !fastCompare(without(this.props, \"helmetData\"), without(nextProps, \"helmetData\"));\n }\n mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n switch (child.type) {\n case \"script\" /* SCRIPT */:\n case \"noscript\" /* NOSCRIPT */:\n return {\n innerHTML: nestedChildren\n };\n case \"style\" /* STYLE */:\n return {\n cssText: nestedChildren\n };\n default:\n throw new Error(\n `<${child.type} /> elements are self-closing and can not contain children. Refer to our API for more information.`\n );\n }\n }\n flattenArrayTypeChildren(child, arrayTypeChildren, newChildProps, nestedChildren) {\n return {\n ...arrayTypeChildren,\n [child.type]: [\n ...arrayTypeChildren[child.type] || [],\n {\n ...newChildProps,\n ...this.mapNestedChildrenToProps(child, nestedChildren)\n }\n ]\n };\n }\n mapObjectTypeChildren(child, newProps, newChildProps, nestedChildren) {\n switch (child.type) {\n case \"title\" /* TITLE */:\n return {\n ...newProps,\n [child.type]: nestedChildren,\n titleAttributes: { ...newChildProps }\n };\n case \"body\" /* BODY */:\n return {\n ...newProps,\n bodyAttributes: { ...newChildProps }\n };\n case \"html\" /* HTML */:\n return {\n ...newProps,\n htmlAttributes: { ...newChildProps }\n };\n default:\n return {\n ...newProps,\n [child.type]: { ...newChildProps }\n };\n }\n }\n mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n let newFlattenedProps = { ...newProps };\n Object.keys(arrayTypeChildren).forEach((arrayChildName) => {\n newFlattenedProps = {\n ...newFlattenedProps,\n [arrayChildName]: arrayTypeChildren[arrayChildName]\n };\n });\n return newFlattenedProps;\n }\n warnOnInvalidChildren(child, nestedChildren) {\n invariant(\n VALID_TAG_NAMES.some((name) => child.type === name),\n typeof child.type === \"function\" ? `You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.` : `Only elements types ${VALID_TAG_NAMES.join(\n \", \"\n )} are allowed. Helmet does not support rendering <${child.type}> elements. Refer to our API for more information.`\n );\n invariant(\n !nestedChildren || typeof nestedChildren === \"string\" || Array.isArray(nestedChildren) && !nestedChildren.some((nestedChild) => typeof nestedChild !== \"string\"),\n `Helmet expects a string as a child of <${child.type}>. Did you forget to wrap your children in braces? ( <${child.type}>{\\`\\`}</${child.type}> ) Refer to our API for more information.`\n );\n return true;\n }\n mapChildrenToProps(children, newProps) {\n let arrayTypeChildren = {};\n React3.Children.forEach(children, (child) => {\n if (!child || !child.props) {\n return;\n }\n const { children: nestedChildren, ...childProps } = child.props;\n const newChildProps = Object.keys(childProps).reduce((obj, key) => {\n obj[HTML_TAG_MAP[key] || key] = childProps[key];\n return obj;\n }, {});\n let { type } = child;\n if (typeof type === \"symbol\") {\n type = type.toString();\n } else {\n this.warnOnInvalidChildren(child, nestedChildren);\n }\n switch (type) {\n case \"Symbol(react.fragment)\" /* FRAGMENT */:\n newProps = this.mapChildrenToProps(nestedChildren, newProps);\n break;\n case \"link\" /* LINK */:\n case \"meta\" /* META */:\n case \"noscript\" /* NOSCRIPT */:\n case \"script\" /* SCRIPT */:\n case \"style\" /* STYLE */:\n arrayTypeChildren = this.flattenArrayTypeChildren(\n child,\n arrayTypeChildren,\n newChildProps,\n nestedChildren\n );\n break;\n default:\n newProps = this.mapObjectTypeChildren(child, newProps, newChildProps, nestedChildren);\n break;\n }\n });\n return this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n }\n render() {\n const { children, ...props } = this.props;\n let newProps = { ...props };\n let { helmetData } = props;\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n if (helmetData && !(helmetData instanceof HelmetData)) {\n const data = helmetData;\n helmetData = new HelmetData(data.context, true);\n delete newProps.helmetData;\n }\n return helmetData ? /* @__PURE__ */ React3.createElement(HelmetDispatcher, { ...newProps, context: helmetData.value }) : /* @__PURE__ */ React3.createElement(Context.Consumer, null, (context) => /* @__PURE__ */ React3.createElement(HelmetDispatcher, { ...newProps, context }));\n }\n};\nexport {\n Helmet,\n HelmetData,\n HelmetProvider\n};\n","// 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 { 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 const { protectedRoutes = [] } = zudoku.options;\n\n const isProtected = 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.2.0\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-HA7DTUK3.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.ssr,\n ssrInfo.context.isSpaMode\n );\n let hydrationData = void 0;\n let loaderData = ssrInfo.context.state.loaderData;\n if (ssrInfo.context.isSpaMode) {\n hydrationData = { loaderData };\n } else {\n hydrationData = {\n ...ssrInfo.context.state,\n loaderData: { ...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 ssrInfo.context.ssr,\n () => router2\n ),\n patchRoutesOnNavigation: getPatchRoutesOnNavigationFunction(\n ssrInfo.manifest,\n ssrInfo.routeModules,\n ssrInfo.context.ssr,\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.ssr,\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 ssr: ssrInfo.context.ssr,\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","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","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/objectWithoutPropertiesLoose';\nimport _extends from '@babel/runtime/helpers/extends';\nimport * as React from 'react';\nimport { useEffect, useRef, useCallback, useState } from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\n\nvar clamp = function clamp(num, lower, upper) {\n num = num <= upper ? num : upper;\n num = num >= lower ? num : lower;\n return num;\n};\n\nvar createQueue = function createQueue() {\n var isRunning = false;\n var pending = [];\n var _next = function next() {\n isRunning = true;\n var cb = pending.shift();\n if (cb) {\n return cb(_next);\n }\n isRunning = false;\n };\n var clear = function clear() {\n isRunning = false;\n pending = [];\n };\n var enqueue = function enqueue(cb) {\n pending.push(cb);\n if (!isRunning && pending.length === 1) {\n _next();\n }\n };\n return {\n clear: clear,\n enqueue: enqueue\n };\n};\n\nvar createTimeout = function createTimeout() {\n var handle;\n var cancel = function cancel() {\n if (handle) {\n window.cancelAnimationFrame(handle);\n }\n };\n var schedule = function schedule(callback, delay) {\n var deltaTime;\n var start;\n var _frame = function frame(time) {\n start = start || time;\n deltaTime = time - start;\n if (deltaTime > delay) {\n callback();\n return;\n }\n handle = window.requestAnimationFrame(_frame);\n };\n handle = window.requestAnimationFrame(_frame);\n };\n return {\n cancel: cancel,\n schedule: schedule\n };\n};\n\nvar increment = function increment(progress) {\n var amount = 0;\n if (progress >= 0 && progress < 0.2) {\n amount = 0.1;\n } else if (progress >= 0.2 && progress < 0.5) {\n amount = 0.04;\n } else if (progress >= 0.5 && progress < 0.8) {\n amount = 0.02;\n } else if (progress >= 0.8 && progress < 0.99) {\n amount = 0.005;\n }\n return clamp(progress + amount, 0, 0.994);\n};\n\n// Hat-tip:\n// https://github.com/streamich/react-use/blob/master/src/useEffectOnce.ts.\n//\n// `react-use` appears to be unmaintained, so moving the required code into\n// this project for now.\nvar useEffectOnce = function useEffectOnce(effect) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(effect, []);\n};\n\nvar incrementParameter = function incrementParameter(num) {\n return ++num % 1000000;\n};\nvar useUpdate = function useUpdate() {\n var _useState = useState(0),\n setState = _useState[1];\n return useCallback(function () {\n return setState(incrementParameter);\n }, []);\n};\nvar useGetSetState = function useGetSetState(/* istanbul ignore next */\ninitialState) {\n if (initialState === undefined) {\n initialState = {};\n }\n var update = useUpdate();\n var state = useRef(_extends({}, initialState));\n var get = useCallback(function () {\n return state.current;\n }, []);\n var set = useCallback(function (patch) {\n if (!patch) {\n return;\n }\n Object.assign(state.current, patch);\n update();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return [get, set];\n};\n\n// Hat-tip:\n// https://github.com/streamich/react-use/blob/master/src/useUpdateEffect.ts.\n//\n// `react-use` appears to be unmaintained, so moving the required code into\n// this project for now.\nvar useFirstMountState = function useFirstMountState() {\n var isFirst = useRef(true);\n if (isFirst.current) {\n isFirst.current = false;\n return true;\n }\n return isFirst.current;\n};\nvar useUpdateEffect = function useUpdateEffect(effect, deps) {\n var isFirstMount = useFirstMountState();\n useEffect(function () {\n if (!isFirstMount) {\n return effect();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n};\n\n/* istanbul ignore next */\nvar noop = function noop() {\n return undefined;\n};\nvar initialState = {\n isFinished: true,\n progress: 0,\n sideEffect: noop\n};\nvar useNProgress = function useNProgress(_temp) {\n var _ref = _temp === undefined ? {} : _temp,\n _ref$animationDuratio = _ref.animationDuration,\n animationDuration = _ref$animationDuratio === undefined ? 200 : _ref$animationDuratio,\n _ref$incrementDuratio = _ref.incrementDuration,\n incrementDuration = _ref$incrementDuratio === undefined ? 800 : _ref$incrementDuratio,\n _ref$isAnimating = _ref.isAnimating,\n isAnimating = _ref$isAnimating === undefined ? false : _ref$isAnimating,\n _ref$minimum = _ref.minimum,\n minimum = _ref$minimum === undefined ? 0.08 : _ref$minimum;\n var _useGetSetState = useGetSetState(initialState),\n get = _useGetSetState[0],\n setState = _useGetSetState[1];\n var queue = useRef(null);\n var timeout = useRef(null);\n useEffectOnce(function () {\n queue.current = createQueue();\n timeout.current = createTimeout();\n });\n var cleanup = useCallback(function () {\n var _timeout$current, _queue$current;\n (_timeout$current = timeout.current) == null || _timeout$current.cancel();\n (_queue$current = queue.current) == null || _queue$current.clear();\n }, []);\n var set = useCallback(function (n) {\n var _queue$current4;\n n = clamp(n, minimum, 1);\n if (n === 1) {\n var _queue$current2, _queue$current3;\n cleanup();\n (_queue$current2 = queue.current) == null || _queue$current2.enqueue(function (next) {\n setState({\n progress: n,\n sideEffect: function sideEffect() {\n var _timeout$current2;\n return (_timeout$current2 = timeout.current) == null ? undefined : _timeout$current2.schedule(next, animationDuration);\n }\n });\n });\n (_queue$current3 = queue.current) == null || _queue$current3.enqueue(function () {\n setState({\n isFinished: true,\n sideEffect: cleanup\n });\n });\n return;\n }\n (_queue$current4 = queue.current) == null || _queue$current4.enqueue(function (next) {\n setState({\n isFinished: false,\n progress: n,\n sideEffect: function sideEffect() {\n var _timeout$current3;\n return (_timeout$current3 = timeout.current) == null ? undefined : _timeout$current3.schedule(next, animationDuration);\n }\n });\n });\n }, [animationDuration, cleanup, minimum, queue, setState, timeout]);\n var trickle = useCallback(function () {\n set(increment(get().progress));\n }, [get, set]);\n var start = useCallback(function () {\n var _work = function work() {\n var _queue$current5;\n trickle();\n (_queue$current5 = queue.current) == null || _queue$current5.enqueue(function (next) {\n var _timeout$current4;\n (_timeout$current4 = timeout.current) == null || _timeout$current4.schedule(function () {\n _work();\n next();\n }, incrementDuration);\n });\n };\n _work();\n }, [incrementDuration, queue, timeout, trickle]);\n var savedTrickle = useRef(noop);\n var sideEffect = get().sideEffect;\n useEffect(function () {\n savedTrickle.current = trickle;\n });\n useEffectOnce(function () {\n if (isAnimating) {\n start();\n }\n return cleanup;\n });\n useUpdateEffect(function () {\n get().sideEffect();\n }, [get, sideEffect]);\n useUpdateEffect(function () {\n if (!isAnimating) {\n set(1);\n } else {\n setState(_extends({}, initialState, {\n sideEffect: start\n }));\n }\n }, [isAnimating, set, setState, start]);\n return {\n animationDuration: animationDuration,\n isFinished: get().isFinished,\n progress: get().progress\n };\n};\n\nvar _excluded = [\"children\"];\nvar NProgress = function NProgress(_ref) {\n var children = _ref.children,\n restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n var renderProps = useNProgress(restProps);\n return children(renderProps);\n};\n\nfunction withNProgress(BaseComponent) {\n var WithNProgress = function WithNProgress(props) {\n var hookProps = useNProgress(props);\n return /*#__PURE__*/React.createElement(BaseComponent, _extends({}, props, hookProps));\n };\n hoistNonReactStatics(WithNProgress, BaseComponent);\n return WithNProgress;\n}\n\nexport { NProgress, useNProgress, withNProgress };\n//# sourceMappingURL=react-nprogress.esm.js.map\n","import { useNProgress } from \"@tanem/react-nprogress\";\nimport { cx } from \"class-variance-authority\";\nimport { Suspense, useEffect, useState } from \"react\";\nimport { NavLink, useNavigation } from \"react-router\";\nimport type { TopNavigationItem } from \"../../config/validators/common.js\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport { joinUrl } from \"../util/joinUrl.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\" | \"hide\" }): boolean => {\n if (item.display === \"hide\") return false;\n return (\n (item.display === \"auth\" && isAuthenticated) ||\n (item.display === \"anon\" && !isAuthenticated) ||\n !item.display ||\n item.display === \"always\"\n );\n };\n\nconst Progress = () => {\n const navigation = useNavigation();\n const isNavigating = navigation.state === \"loading\";\n // delay the animation to avoid flickering\n const [isAnimating, setIsAnimating] = useState(false);\n\n useEffect(() => {\n const timer = setTimeout(() => setIsAnimating(isNavigating), 100);\n\n return () => clearTimeout(timer);\n }, [isNavigating]);\n\n const { isFinished, progress } = useNProgress({ isAnimating });\n\n return (\n <div\n className=\"absolute w-0 left-0 right-0 bottom-[-1px] h-[2px] bg-primary transition-all duration-300 ease-in-out\"\n style={{\n opacity: isFinished ? 0 : 1,\n width: isFinished ? 0 : `${progress * 100}%`,\n }}\n />\n );\n};\n\nexport const TopNavigation = () => {\n const { topNavigation } = useZudoku();\n const { isAuthenticated } = useAuth();\n\n const filteredItems = topNavigation.filter(isHiddenItem(isAuthenticated));\n\n if (filteredItems.length === 0) {\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 relative\">\n <nav className=\"text-sm\">\n <ul className=\"flex flex-row items-center gap-8\">\n {filteredItems.map((item) => (\n <li key={item.id}>\n <TopNavItem {...item} />\n </li>\n ))}\n </ul>\n </nav>\n <Slotlet name=\"top-navigation-side\" />\n <Progress />\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 joinUrl(item.id);\n })\n : joinUrl(id)) ??\n joinUrl(id);\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 type=\"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 {\n isProfileMenuPlugin,\n type ProfileNavigationItem,\n} 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 flex relative items-center justify-between 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\n <div className=\"absolute inset-x-0 justify-center items-center hidden lg:flex w-full pointer-events-none\">\n <Search className=\"pointer-events-auto\" />\n </div>\n\n <div className=\"flex items-center gap-8\">\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 * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\nimport { cn } from \"../util/cn.js\";\n\nconst Drawer = ({\n shouldScaleBackground = true,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) => (\n <DrawerPrimitive.Root\n shouldScaleBackground={shouldScaleBackground}\n {...props}\n />\n);\nDrawer.displayName = \"Drawer\";\n\nconst DrawerTrigger: typeof DrawerPrimitive.Trigger = DrawerPrimitive.Trigger;\n\nconst DrawerPortal: typeof DrawerPrimitive.Portal = DrawerPrimitive.Portal;\n\nconst DrawerClose: typeof DrawerPrimitive.Close = DrawerPrimitive.Close;\n\nconst DrawerOverlay: React.ForwardRefExoticComponent<\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay> &\n React.RefAttributes<React.ElementRef<typeof DrawerPrimitive.Overlay>>\n> = React.forwardRef(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n className={cn(\"fixed inset-0 z-50 bg-black/80\", className)}\n {...props}\n />\n));\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;\n\nconst DrawerContent: React.ForwardRefExoticComponent<\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content> & {\n hideBar?: boolean;\n } & React.RefAttributes<React.ElementRef<typeof DrawerPrimitive.Content>>\n> = React.forwardRef(\n ({ className, children, hideBar = true, ...props }, ref) => (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background\",\n className,\n )}\n {...props}\n >\n {!hideBar && (\n <div className=\"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted\" />\n )}\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n ),\n);\n\nDrawerContent.displayName = \"DrawerContent\";\n\nconst DrawerHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"grid gap-1.5 p-4 text-center sm:text-left\", className)}\n {...props}\n />\n);\nDrawerHeader.displayName = \"DrawerHeader\";\n\nconst DrawerFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n);\nDrawerFooter.displayName = \"DrawerFooter\";\n\nconst DrawerTitle: React.ForwardRefExoticComponent<\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title> &\n React.RefAttributes<React.ElementRef<typeof DrawerPrimitive.Title>>\n> = React.forwardRef(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName;\n\nconst DrawerDescription: React.ForwardRefExoticComponent<\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description> &\n React.RefAttributes<React.ElementRef<typeof DrawerPrimitive.Description>>\n> = React.forwardRef(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName;\n\nexport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerOverlay,\n DrawerPortal,\n DrawerTitle,\n DrawerTrigger,\n};\n","import { type PropsWithChildren, type Ref } from \"react\";\nimport { cn } from \"../../util/cn.js\";\n\nexport const SidebarWrapper = ({\n children,\n className,\n ref,\n}: PropsWithChildren<{\n className?: string;\n ref?: Ref<HTMLDivElement>;\n}>) => (\n <nav\n className={cn(\n \"hidden lg:flex h-full scrollbar flex-col overflow-y-auto shrink-0 text-sm border-r pr-6\",\n \"sticky top-[--header-height] h-[calc(100vh-var(--header-height))]\",\n \"-mx-[--padding-nav-item] max-w-[--side-nav-width] pb-6 pt-[--padding-content-top] scroll-pt-2 gap-2\",\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 type { SidebarItem as SidebarItemType } from \"../../../config/validators/SidebarSchema.js\";\nimport { DrawerContent, DrawerTitle } from \"../../ui/Drawer.js\";\nimport { scrollIntoViewIfNeeded } from \"../../util/scrollIntoViewIfNeeded.js\";\nimport { Slotlet } from \"../SlotletProvider.js\";\nimport { SidebarItem } from \"./SidebarItem.js\";\nimport { SidebarWrapper } from \"./SidebarWrapper.js\";\n\nexport const Sidebar = ({\n onRequestClose,\n sidebar,\n}: {\n onRequestClose?: () => void;\n sidebar: SidebarItemType[];\n}) => {\n const navRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const active = navRef.current?.querySelector('[aria-current=\"page\"]');\n scrollIntoViewIfNeeded(active ?? null);\n }, []);\n\n return (\n <>\n <SidebarWrapper ref={navRef}>\n <Slotlet name=\"zudoku-before-navigation\" />\n {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 {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 { PanelLeftIcon } from \"lucide-react\";\nimport { type PropsWithChildren, useState } from \"react\";\nimport { useNavigation } from \"react-router\";\nimport { Drawer, DrawerTrigger } from \"zudoku/ui/Drawer.js\";\nimport { cn } from \"../util/cn.js\";\nimport { useCurrentNavigation } from \"./context/ZudokuContext.js\";\nimport { Sidebar } from \"./navigation/Sidebar.js\";\nimport { Slotlet } from \"./SlotletProvider.js\";\n\nexport const Main = ({ children }: PropsWithChildren) => {\n const [isDrawerOpen, setDrawerOpen] = useState(false);\n const { sidebar } = useCurrentNavigation();\n const hasSidebar = sidebar.length > 0;\n const isNavigating = useNavigation().state === \"loading\";\n\n return (\n <Drawer\n direction=\"left\"\n open={isDrawerOpen}\n onOpenChange={(open) => setDrawerOpen(open)}\n >\n {hasSidebar && (\n <Sidebar\n onRequestClose={() => setDrawerOpen(false)}\n sidebar={sidebar}\n />\n )}\n {hasSidebar && (\n <div className=\"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 <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 )}\n <main\n data-pagefind-body\n className={cn(\n hasSidebar ? \"lg:pl-12\" : \"col-span-full\",\n isNavigating && \"animate-pulse\",\n )}\n >\n <Slotlet name=\"zudoku-before-content\" />\n {children}\n <Slotlet name=\"zudoku-after-content\" />\n </main>\n </Drawer>\n );\n};\n","import { Helmet } from \"@zudoku/react-helmet-async\";\nimport { Suspense, useEffect, type ReactNode } from \"react\";\nimport { Outlet, useLocation } from \"react-router\";\nimport { joinUrl } from \"../util/joinUrl.js\";\nimport { useScrollToAnchor } from \"../util/useScrollToAnchor.js\";\nimport { useScrollToTop } from \"../util/useScrollToTop.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\nimport { Header } from \"./Header.js\";\nimport { Main } from \"./Main.js\";\nimport { Slotlet } from \"./SlotletProvider.js\";\nimport { Spinner } from \"./Spinner.js\";\n\nconst LoadingFallback = () => (\n <main className=\"col-span-full row-span-full grid place-items-center\">\n <Spinner />\n </main>\n);\n\nexport const Layout = ({ children }: { children?: ReactNode }) => {\n const { meta, authentication, options } = useZudoku();\n const location = useLocation();\n\n useScrollToAnchor();\n useScrollToTop();\n\n useEffect(() => {\n // Initialize the authentication plugin\n authentication?.onPageLoad?.();\n }, [authentication]);\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 {options.canonicalUrlOrigin && (\n <link\n rel=\"canonical\"\n href={joinUrl(\n options.canonicalUrlOrigin,\n options.basePath,\n location.pathname,\n )}\n />\n )}\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=\"grid grid-cols-1 grid-rows-[min-content_1fr] lg:grid-cols-[var(--side-nav-width)_1fr] max-w-screen-2xl w-full lg:mx-auto px-4 lg:px-8 2xl:border-x\">\n <Suspense fallback={<LoadingFallback />}>\n <Main>{children ?? <Outlet />}</Main>\n </Suspense>\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 type { QueryClient } from \"@tanstack/react-query\";\nimport { createNanoEvents } from \"nanoevents\";\nimport type { ReactNode } from \"react\";\nimport type { Location } from \"react-router\";\nimport type { TopNavigationItem } from \"../../config/validators/common.js\";\nimport type { SidebarConfig } from \"../../config/validators/SidebarSchema.js\";\nimport type { AuthenticationProvider } from \"../authentication/authentication.js\";\nimport { type AuthState, useAuthState } from \"../authentication/state.js\";\nimport type { ComponentsContextType } from \"../components/context/ComponentsContext.js\";\nimport type { 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 auth: (auth: { prev: AuthState; next: AuthState }) => void;\n}\n\nexport interface ApiIdentity {\n authorizeRequest: (request: Request) => Promise<Request> | Request;\n authorizationFields?: {\n headers?: string[];\n queryParams?: string[];\n };\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 basePath?: string;\n canonicalUrlOrigin?: string;\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(\n public readonly options: ZudokuContextOptions,\n public readonly queryClient: QueryClient,\n ) {\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 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 useAuthState.subscribe((state, prevState) => {\n this.emitEvent(\"auth\", {\n prev: prevState,\n next: state,\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), this),\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 return await this.authentication.signRequest(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 { useQueryClient } from \"@tanstack/react-query\";\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, useLocation, 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 location = useLocation();\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 const queryClient = useQueryClient();\n\n useEffect(() => {\n if (didNavigate) {\n return;\n }\n setDidNavigate(true);\n }, [didNavigate, navigation.location]);\n\n const [zudokuContext] = useState(\n () => new ZudokuContext(props, queryClient),\n );\n\n const heads = props.plugins\n ?.flatMap((plugin) =>\n hasHead(plugin) ? (plugin.getHead?.({ location }) ?? []) : [],\n )\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":["emptyComponents","MDXContext","React","useMDXComponents","components","contextComponents","MDXProvider","properties","allComponents","hasElementType","hasMap","hasSet","hasArrayBuffer","equal","a","b","length","i","keys","it","reactFastCompare","error","invariant","condition","format","c","d","e","f","args","argIndex","browser","shallowequal","objA","objB","compare","compareContext","ret","keysA","keysB","bHasOwnProperty","idx","key","valueA","valueB","TAG_NAMES","TAG_NAMES2","SEO_PRIORITY_TAGS","VALID_TAG_NAMES","REACT_TAG_MAP","HTML_TAG_MAP","carry","value","HELMET_ATTRIBUTE","HELMET_PROPS","getInnermostProperty","propsList","property","props","getTitleFromPropsList","innermostTitle","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","current","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","tag","lowerCaseAttributeKey","warn","msg","getTagsFromPropsList","tagName","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","keys2","attributeKey","tagUnion","getAnyTrueFromPropsList","checkedTag","index","reducePropsToState","flattenArray","possibleArray","checkIfPropsMatch","toMatch","prioritizer","elementsList","propsToMatch","acc","elementAttrs","without","obj","SELF_CLOSING_TAGS","encodeSpecialCharacters","str","encode","generateElementAttributesAsString","attributes","attr","generateTitleAsString","type","title","attributeString","flattenedTitle","generateTagsAsString","tags","t","attributeHtml","attribute","string","tagContent","isSelfClosing","convertElementAttributesToReactProps","initProps","mapped","generateTitleAsReactComponent","_type","generateTagsAsReactComponent","mappedTag","mappedAttribute","content","getMethodsForTag","getPriorityMethods","metaTags","linkTags","scriptTags","meta","link","script","mapStateOnServer","baseTag","bodyAttributes","htmlAttributes","noscriptTags","styleTags","titleAttributes","prioritizeSeoTags","priorityMethods","server_default","instances","isDocument","HelmetData","context","canUseDOM","__publicField","serverState","instance","defaultValue","Context","React2","HelmetProvider","_a","Component","updateTags","headElement","tagNodes","oldTags","newTags","indexToDelete","newElement","existingTag","updateAttributes","elementTag","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","indexToSave","updateTitle","commitTagChanges","newState","cb","onChangeClientState","tagUpdates","addedTags","removedTags","_helmetCallback","handleStateChangeOnClient","client_default","HelmetDispatcher","Component2","nextProps","shallowEqual","helmetInstances","setHelmet","state","Helmet","Component3","fastCompare","child","nestedChildren","arrayTypeChildren","newChildProps","newProps","newFlattenedProps","arrayChildName","name","nestedChild","children","React3","childProps","helmetData","data","QueryCache","Subscribable","config","__privateAdd","_queries","__privateSet","client","options","queryKey","queryHash","hashQueryKeyByOptions","query","Query","__privateGet","queryInMap","notifyManager","filters","defaultedFilters","matchQuery","queries","event","listener","MutationCache","_mutations","_scopes","_mutationId","mutation","Mutation","__privateWrapper","scope","scopeFor","scopedMutations","mutationsWithSameScope","firstPendingMutation","m","foundMutation","matchMutation","pausedMutations","x","noop","infiniteQueryBehavior","pages","direction","_c","_b","oldPages","_d","oldPageParams","_e","result","currentPage","fetchFn","cancelled","addSignalProperty","object","queryFn","ensureQueryFn","fetchPage","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","_ignored","serializedState","initialPromise","hasProperty","HydrationBoundary","queryClient","useQueryClient","hydrationQueue","setHydrationQueue","optionsRef","newQueries","existingQueries","dehydratedQuery","existingQuery","hydrationIsNewer","queryAlreadyQueued","prev","RouteGuard","auth","useAuth","zudoku","useZudoku","navigate","useNavigate","location","useLocation","latestPath","useLatest","protectedRoutes","isProtected","path","matchPath","useQuery","resolve","jsx","Dialog","open","DialogContent","DialogHeader","DialogTitle","DialogDescription","ZudokuError","Outlet","ServerError","ErrorAlert","RouterProvider2","RouterProvider","ReactDOM","StaggeredRenderContext","createContext","Bootstrap","router","StrictMode","QueryClientProvider","BootstrapStatic","helmetContext","StaticRouterProvider","useScrollToTop","previousPath","useRef","useEffect","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","_extends","n","r","g","h","k","l","p","q","v","w","y","z","u","A","reactIs_production_min","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","isValidElementType","typeOf","$$typeof","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","hasWarnedAboutDeprecatedIsAsyncMode","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","reactIs_development","reactIsModule","require$$0","require$$1","reactIs","REACT_STATICS","KNOWN_STATICS","FORWARD_REF_STATICS","MEMO_STATICS","TYPE_STATICS","getStatics","component","defineProperty","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","hoistNonReactStatics_cjs","clamp","num","lower","upper","createQueue","isRunning","pending","_next","clear","enqueue","createTimeout","handle","cancel","schedule","callback","delay","deltaTime","start","_frame","time","increment","progress","amount","useEffectOnce","effect","incrementParameter","useUpdate","_useState","setState","useGetSetState","initialState","update","get","set","patch","useFirstMountState","isFirst","useUpdateEffect","deps","isFirstMount","useNProgress","_temp","_ref","_ref$animationDuratio","animationDuration","_ref$incrementDuratio","incrementDuration","_ref$isAnimating","isAnimating","_ref$minimum","minimum","_useGetSetState","queue","timeout","cleanup","_timeout$current","_queue$current","_queue$current4","_queue$current2","_queue$current3","next","_timeout$current2","_timeout$current3","trickle","_work","_queue$current5","_timeout$current4","savedTrickle","sideEffect","isHiddenItem","isAuthenticated","item","Progress","isNavigating","useNavigation","setIsAnimating","timer","isFinished","TopNavigation","topNavigation","filteredItems","TopNavItem","Slotlet","id","label","defaultLink","sidebars","currentSidebar","currentNav","useCurrentNavigation","isActive","first","traverseSidebar","joinUrl","NavLink","isPending","cx","MobileTopNavigation","drawerOpen","setDrawerOpen","Drawer","DrawerTrigger","MenuIcon","DrawerContent","VisuallyHidden","DrawerTitle","RecursiveMenu","DropdownMenuSub","DropdownMenuSubTrigger","DropdownMenuPortal","DropdownMenuSubContent","Link","DropdownMenuItem","Header","memo","profile","isAuthEnabled","plugins","accountItems","isProfileMenuPlugin","DropdownMenu","DropdownMenuTrigger","DropdownMenuContent","DropdownMenuLabel","DropdownMenuSeparator","shouldScaleBackground","DrawerPrimitive","DrawerPortal","DrawerOverlay","ref","hideBar","DrawerDescription","SidebarWrapper","Sidebar","onRequestClose","sidebar","navRef","active","scrollIntoViewIfNeeded","SidebarItem","Main","isDrawerOpen","hasSidebar","PanelLeftIcon","LoadingFallback","Spinner","Layout","authentication","useScrollToAnchor","ErrorPage","message","category","ProseClasses","CategoryHeading","Heading","getDefaultContent","statusCode","StatusPage","defaultContent","ErrorBoundaryContext","ErrorBoundary","_this$props$onReset","_this$props","_len","_key","info","_this$props$onError","_this$props2","prevProps","prevState","didCatch","resetKeys","hasArrayChanged","_this$props$onReset2","_this$props3","fallbackRender","FallbackComponent","fallback","childToRender","createElement","createNanoEvents","callbacks","ZudokuContext","needsInitialization","plugin","isApiIdentityPlugin","joinPath","nav","request","isNavigationPlugin","isEventConsumerPlugin","objectEntries","handler","useAuthState","TopLevelError","resetErrorBoundary","root","DEFAULT_COMPONENTS","ComponentsContext","ComponentsProvider","RouterEventsEmitter","previousLocation","ZudokuProvider","useSuspenseQuery","ZudokuReactContext","ZudokoInner","useMemo","mdxComponents","isMdxProviderPlugin","curr","MdxComponents","stagger","useContext","didNavigate","setDidNavigate","staggeredValue","navigation","zudokuContext","heads","hasHead","entry","ThemeProvider","SlotletProvider","ViewportAnchorProvider","Zudoku","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,6,7,8,9,10,13,21,22,23,24,25,26,37,38]}