zudoku 0.45.1 → 0.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (532) hide show
  1. package/dist/app/main.js +4 -23
  2. package/dist/app/main.js.map +1 -1
  3. package/dist/config/config.d.ts +2 -2
  4. package/dist/config/file-exists.d.ts +1 -0
  5. package/dist/config/file-exists.js +5 -0
  6. package/dist/config/file-exists.js.map +1 -0
  7. package/dist/config/loader.d.ts +19 -4
  8. package/dist/config/loader.js +94 -14
  9. package/dist/config/loader.js.map +1 -1
  10. package/dist/config/validators/validate.d.ts +3536 -743
  11. package/dist/config/validators/validate.js +396 -11
  12. package/dist/config/validators/validate.js.map +1 -1
  13. package/dist/index.d.ts +4 -2
  14. package/dist/index.js +2 -0
  15. package/dist/index.js.map +1 -1
  16. package/dist/lib/authentication/AuthenticationPlugin.d.ts +7 -2
  17. package/dist/lib/authentication/AuthenticationPlugin.js +13 -1
  18. package/dist/lib/authentication/AuthenticationPlugin.js.map +1 -1
  19. package/dist/lib/authentication/authentication.d.ts +2 -4
  20. package/dist/lib/authentication/providers/auth0.js.map +1 -1
  21. package/dist/lib/authentication/providers/clerk.js +62 -43
  22. package/dist/lib/authentication/providers/clerk.js.map +1 -1
  23. package/dist/lib/authentication/providers/openid.d.ts +7 -12
  24. package/dist/lib/authentication/providers/openid.js +11 -22
  25. package/dist/lib/authentication/providers/openid.js.map +1 -1
  26. package/dist/lib/authentication/providers/supabase.js +3 -5
  27. package/dist/lib/authentication/providers/supabase.js.map +1 -1
  28. package/dist/lib/components/Autocomplete.js +1 -1
  29. package/dist/lib/components/Banner.js +1 -1
  30. package/dist/lib/components/Banner.js.map +1 -1
  31. package/dist/lib/components/ErrorPage.js +1 -1
  32. package/dist/lib/components/Footer.js +3 -3
  33. package/dist/lib/components/Footer.js.map +1 -1
  34. package/dist/lib/components/Header.js +16 -8
  35. package/dist/lib/components/Header.js.map +1 -1
  36. package/dist/lib/components/Heading.js +6 -1
  37. package/dist/lib/components/Heading.js.map +1 -1
  38. package/dist/lib/components/InlineCode.js +1 -1
  39. package/dist/lib/components/InlineCode.js.map +1 -1
  40. package/dist/lib/components/Layout.js +2 -2
  41. package/dist/lib/components/Layout.js.map +1 -1
  42. package/dist/lib/components/Main.js +2 -2
  43. package/dist/lib/components/Main.js.map +1 -1
  44. package/dist/lib/components/Markdown.js +8 -3
  45. package/dist/lib/components/Markdown.js.map +1 -1
  46. package/dist/lib/components/MobileTopNavigation.js +3 -2
  47. package/dist/lib/components/MobileTopNavigation.js.map +1 -1
  48. package/dist/lib/components/NotFoundPage.js +1 -1
  49. package/dist/lib/components/Pagination.js +1 -1
  50. package/dist/lib/components/Pagination.js.map +1 -1
  51. package/dist/lib/components/Search.js +1 -1
  52. package/dist/lib/components/Search.js.map +1 -1
  53. package/dist/lib/components/Slot.d.ts +17 -0
  54. package/dist/lib/components/Slot.js +24 -0
  55. package/dist/lib/components/Slot.js.map +1 -0
  56. package/dist/lib/components/Slot.test.js +168 -0
  57. package/dist/lib/components/Slot.test.js.map +1 -0
  58. package/dist/lib/components/TopNavigation.d.ts +1 -4
  59. package/dist/lib/components/TopNavigation.js +3 -11
  60. package/dist/lib/components/TopNavigation.js.map +1 -1
  61. package/dist/lib/components/Zudoku.js +2 -2
  62. package/dist/lib/components/Zudoku.js.map +1 -1
  63. package/dist/lib/components/context/SlotProvider.d.ts +26 -0
  64. package/dist/lib/components/context/SlotProvider.js +83 -0
  65. package/dist/lib/components/context/SlotProvider.js.map +1 -0
  66. package/dist/lib/components/context/ZudokuContext.d.ts +1 -1
  67. package/dist/lib/components/context/ZudokuProvider.js +2 -1
  68. package/dist/lib/components/context/ZudokuProvider.js.map +1 -1
  69. package/dist/lib/components/index.d.ts +29 -23
  70. package/dist/lib/components/index.js +13 -7
  71. package/dist/lib/components/index.js.map +1 -1
  72. package/dist/lib/components/navigation/PoweredByZudoku.js +1 -1
  73. package/dist/lib/components/navigation/Sidebar.js +3 -3
  74. package/dist/lib/components/navigation/Sidebar.js.map +1 -1
  75. package/dist/lib/components/navigation/SidebarBadge.js +1 -1
  76. package/dist/lib/components/navigation/SidebarBadge.js.map +1 -1
  77. package/dist/lib/components/navigation/SidebarCategory.js +3 -3
  78. package/dist/lib/components/navigation/SidebarCategory.js.map +1 -1
  79. package/dist/lib/components/navigation/SidebarItem.d.ts +0 -5
  80. package/dist/lib/components/navigation/SidebarItem.js +19 -23
  81. package/dist/lib/components/navigation/SidebarItem.js.map +1 -1
  82. package/dist/lib/components/navigation/SidebarWrapper.js +1 -1
  83. package/dist/lib/components/navigation/Toc.js +1 -1
  84. package/dist/lib/components/navigation/Toc.js.map +1 -1
  85. package/dist/lib/components/navigation/utils.d.ts +8 -0
  86. package/dist/lib/components/navigation/utils.js +34 -6
  87. package/dist/lib/components/navigation/utils.js.map +1 -1
  88. package/dist/lib/core/ZudokuContext.d.ts +12 -8
  89. package/dist/lib/core/ZudokuContext.js +6 -5
  90. package/dist/lib/core/ZudokuContext.js.map +1 -1
  91. package/dist/lib/core/plugins.d.ts +5 -2
  92. package/dist/lib/core/plugins.js +1 -0
  93. package/dist/lib/core/plugins.js.map +1 -1
  94. package/dist/lib/errors/ErrorAlert.js +1 -1
  95. package/dist/lib/hooks/index.d.ts +19 -0
  96. package/dist/lib/hooks/index.js +11 -0
  97. package/dist/lib/hooks/index.js.map +1 -1
  98. package/dist/lib/plugins/api-catalog/Catalog.js +1 -1
  99. package/dist/lib/plugins/api-keys/CreateApiKey.d.ts +3 -2
  100. package/dist/lib/plugins/api-keys/CreateApiKey.js +8 -4
  101. package/dist/lib/plugins/api-keys/CreateApiKey.js.map +1 -1
  102. package/dist/lib/plugins/api-keys/SettingsApiKeys.d.ts +1 -1
  103. package/dist/lib/plugins/api-keys/SettingsApiKeys.js +54 -23
  104. package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
  105. package/dist/lib/plugins/api-keys/index.d.ts +18 -9
  106. package/dist/lib/plugins/api-keys/index.js +49 -34
  107. package/dist/lib/plugins/api-keys/index.js.map +1 -1
  108. package/dist/lib/plugins/custom-pages/index.d.ts +1 -1
  109. package/dist/lib/plugins/markdown/MdxPage.js +1 -1
  110. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  111. package/dist/lib/plugins/markdown/index.d.ts +1 -1
  112. package/dist/lib/plugins/markdown/resolver.d.ts +1 -1
  113. package/dist/lib/plugins/markdown/resolver.js.map +1 -1
  114. package/dist/lib/plugins/openapi/CollapsibleCode.js +1 -1
  115. package/dist/lib/plugins/openapi/ColorizedParam.js +1 -1
  116. package/dist/lib/plugins/openapi/ColorizedParam.js.map +1 -1
  117. package/dist/lib/plugins/openapi/OperationList.js +1 -1
  118. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  119. package/dist/lib/plugins/openapi/OperationListItem.js +2 -3
  120. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  121. package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js +5 -1
  122. package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js.map +1 -1
  123. package/dist/lib/plugins/openapi/ResponsesSidecarBox.d.ts +2 -4
  124. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +1 -4
  125. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
  126. package/dist/lib/plugins/openapi/SchemaList.js +6 -5
  127. package/dist/lib/plugins/openapi/SchemaList.js.map +1 -1
  128. package/dist/lib/plugins/openapi/Sidecar.js +1 -1
  129. package/dist/lib/plugins/openapi/SidecarExamples.js +8 -0
  130. package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -1
  131. package/dist/lib/plugins/openapi/components/EnumValues.js +1 -1
  132. package/dist/lib/plugins/openapi/components/EnumValues.js.map +1 -1
  133. package/dist/lib/plugins/openapi/components/ResponseContent.d.ts +12 -0
  134. package/dist/lib/plugins/openapi/components/ResponseContent.js +21 -0
  135. package/dist/lib/plugins/openapi/components/ResponseContent.js.map +1 -0
  136. package/dist/lib/plugins/openapi/playground/Playground.js +2 -0
  137. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  138. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +1 -1
  139. package/dist/lib/plugins/openapi/playground/SubmitButton.js +7 -10
  140. package/dist/lib/plugins/openapi/playground/SubmitButton.js.map +1 -1
  141. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js +2 -2
  142. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js.map +1 -1
  143. package/dist/lib/plugins/openapi/schema/SchemaView.d.ts +2 -1
  144. package/dist/lib/plugins/openapi/schema/SchemaView.js +3 -3
  145. package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
  146. package/dist/lib/plugins/redirect/index.d.ts +1 -1
  147. package/dist/lib/ui/Badge.d.ts +2 -2
  148. package/dist/lib/ui/Badge.js +1 -1
  149. package/dist/lib/ui/Badge.js.map +1 -1
  150. package/dist/lib/ui/Button.d.ts +2 -2
  151. package/dist/lib/ui/Button.js +8 -6
  152. package/dist/lib/ui/Button.js.map +1 -1
  153. package/dist/lib/ui/Callout.js +1 -1
  154. package/dist/lib/ui/Callout.js.map +1 -1
  155. package/dist/lib/ui/Card.js +1 -1
  156. package/dist/lib/ui/Checkbox.js +1 -1
  157. package/dist/lib/ui/Checkbox.js.map +1 -1
  158. package/dist/lib/ui/Command.d.ts +2 -2
  159. package/dist/lib/ui/Command.js +3 -3
  160. package/dist/lib/ui/Command.js.map +1 -1
  161. package/dist/lib/ui/Dialog.js +1 -1
  162. package/dist/lib/ui/Dialog.js.map +1 -1
  163. package/dist/lib/ui/DropdownMenu.js +4 -4
  164. package/dist/lib/ui/DropdownMenu.js.map +1 -1
  165. package/dist/lib/ui/HoverCard.js +1 -1
  166. package/dist/lib/ui/HoverCard.js.map +1 -1
  167. package/dist/lib/ui/Input.js +1 -1
  168. package/dist/lib/ui/Input.js.map +1 -1
  169. package/dist/lib/ui/Popover.js +1 -1
  170. package/dist/lib/ui/Popover.js.map +1 -1
  171. package/dist/lib/ui/RadioGroup.js +1 -1
  172. package/dist/lib/ui/RadioGroup.js.map +1 -1
  173. package/dist/lib/ui/Select.js +2 -2
  174. package/dist/lib/ui/Select.js.map +1 -1
  175. package/dist/lib/ui/Slider.js +1 -1
  176. package/dist/lib/ui/Slider.js.map +1 -1
  177. package/dist/lib/ui/Switch.js +1 -1
  178. package/dist/lib/ui/Switch.js.map +1 -1
  179. package/dist/lib/ui/Tabs.js +2 -2
  180. package/dist/lib/ui/Tabs.js.map +1 -1
  181. package/dist/lib/ui/Textarea.js +1 -1
  182. package/dist/lib/ui/Textarea.js.map +1 -1
  183. package/dist/lib/ui/Toggle.js +1 -1
  184. package/dist/lib/ui/Toggle.js.map +1 -1
  185. package/dist/lib/ui/Tooltip.d.ts +2 -1
  186. package/dist/lib/ui/Tooltip.js +2 -1
  187. package/dist/lib/ui/Tooltip.js.map +1 -1
  188. package/dist/lib/util/useExposedProps.d.ts +8 -1
  189. package/dist/lib/util/useExposedProps.js.map +1 -1
  190. package/dist/vite/api/SchemaManager.js +16 -1
  191. package/dist/vite/api/SchemaManager.js.map +1 -1
  192. package/dist/vite/build.js +44 -6
  193. package/dist/vite/build.js.map +1 -1
  194. package/dist/vite/config.d.ts +2 -9
  195. package/dist/vite/config.js +6 -95
  196. package/dist/vite/config.js.map +1 -1
  197. package/dist/vite/config.test.js +1 -1
  198. package/dist/vite/config.test.js.map +1 -1
  199. package/dist/vite/css/plugin.d.ts +1 -2
  200. package/dist/vite/css/plugin.js +3 -2
  201. package/dist/vite/css/plugin.js.map +1 -1
  202. package/dist/vite/dev-server.d.ts +0 -1
  203. package/dist/vite/dev-server.js +10 -12
  204. package/dist/vite/dev-server.js.map +1 -1
  205. package/dist/vite/html.d.ts +2 -2
  206. package/dist/vite/html.js +5 -2
  207. package/dist/vite/html.js.map +1 -1
  208. package/dist/vite/plugin-api-keys.d.ts +1 -2
  209. package/dist/vite/plugin-api-keys.js +9 -3
  210. package/dist/vite/plugin-api-keys.js.map +1 -1
  211. package/dist/vite/plugin-api.d.ts +1 -2
  212. package/dist/vite/plugin-api.js +5 -4
  213. package/dist/vite/plugin-api.js.map +1 -1
  214. package/dist/vite/plugin-auth.d.ts +1 -2
  215. package/dist/vite/plugin-auth.js +3 -2
  216. package/dist/vite/plugin-auth.js.map +1 -1
  217. package/dist/vite/plugin-component.d.ts +1 -2
  218. package/dist/vite/plugin-component.js +3 -2
  219. package/dist/vite/plugin-component.js.map +1 -1
  220. package/dist/vite/plugin-config-reload.d.ts +1 -2
  221. package/dist/vite/plugin-config-reload.js +21 -22
  222. package/dist/vite/plugin-config-reload.js.map +1 -1
  223. package/dist/vite/plugin-config.d.ts +1 -2
  224. package/dist/vite/plugin-config.js +4 -3
  225. package/dist/vite/plugin-config.js.map +1 -1
  226. package/dist/vite/plugin-configure-tailwind.d.ts +2 -0
  227. package/dist/vite/plugin-configure-tailwind.js +38 -0
  228. package/dist/vite/plugin-configure-tailwind.js.map +1 -0
  229. package/dist/vite/plugin-custom-pages.d.ts +1 -2
  230. package/dist/vite/plugin-custom-pages.js +3 -2
  231. package/dist/vite/plugin-custom-pages.js.map +1 -1
  232. package/dist/vite/plugin-docs.d.ts +1 -2
  233. package/dist/vite/plugin-docs.js +4 -3
  234. package/dist/vite/plugin-docs.js.map +1 -1
  235. package/dist/vite/plugin-frontmatter.d.ts +1 -2
  236. package/dist/vite/plugin-frontmatter.js +3 -2
  237. package/dist/vite/plugin-frontmatter.js.map +1 -1
  238. package/dist/vite/plugin-mdx.d.ts +1 -2
  239. package/dist/vite/plugin-mdx.js +3 -2
  240. package/dist/vite/plugin-mdx.js.map +1 -1
  241. package/dist/vite/plugin-redirect.d.ts +1 -2
  242. package/dist/vite/plugin-redirect.js +3 -2
  243. package/dist/vite/plugin-redirect.js.map +1 -1
  244. package/dist/vite/plugin-search.d.ts +1 -2
  245. package/dist/vite/plugin-search.js +3 -2
  246. package/dist/vite/plugin-search.js.map +1 -1
  247. package/dist/vite/plugin-shiki-register.d.ts +1 -2
  248. package/dist/vite/plugin-shiki-register.js +2 -1
  249. package/dist/vite/plugin-shiki-register.js.map +1 -1
  250. package/dist/vite/plugin-sidebar.d.ts +1 -2
  251. package/dist/vite/plugin-sidebar.js +3 -2
  252. package/dist/vite/plugin-sidebar.js.map +1 -1
  253. package/dist/vite/plugin-theme-css.d.ts +1 -2
  254. package/dist/vite/plugin-theme-css.js +20 -60
  255. package/dist/vite/plugin-theme-css.js.map +1 -1
  256. package/dist/vite/plugin.d.ts +1 -2
  257. package/dist/vite/plugin.js +22 -21
  258. package/dist/vite/plugin.js.map +1 -1
  259. package/dist/vite/sitemap.d.ts +1 -1
  260. package/dist/zuplo/with-zuplo.d.ts +2 -2
  261. package/dist/zuplo/with-zuplo.js.map +1 -1
  262. package/lib/Button-BE9IVkWV.js +51 -0
  263. package/lib/Button-BE9IVkWV.js.map +1 -0
  264. package/lib/{Callout-XadUe37J.js → Callout-BkgOUkoZ.js} +9 -8
  265. package/lib/Callout-BkgOUkoZ.js.map +1 -0
  266. package/lib/{Card-BlCYNw5W.js → Card-DPhGbYUM.js} +3 -3
  267. package/lib/{Card-BlCYNw5W.js.map → Card-DPhGbYUM.js.map} +1 -1
  268. package/lib/{CategoryHeading-DZi-Szor.js → CategoryHeading-Cu2RwgjC.js} +2 -2
  269. package/lib/{CategoryHeading-DZi-Szor.js.map → CategoryHeading-Cu2RwgjC.js.map} +1 -1
  270. package/lib/{Dialog-CNf2oWXG.js → Dialog-Du6WMcIA.js} +8 -7
  271. package/lib/Dialog-Du6WMcIA.js.map +1 -0
  272. package/lib/{Drawer-BPBxzel2.js → Drawer-BzkOKwgC.js} +2 -2
  273. package/lib/{Drawer-BPBxzel2.js.map → Drawer-BzkOKwgC.js.map} +1 -1
  274. package/lib/Markdown-BRAyzyUJ.js +15348 -0
  275. package/lib/Markdown-BRAyzyUJ.js.map +1 -0
  276. package/lib/{MdxPage-tTTaDsLc.js → MdxPage-B3v1BSKr.js} +11 -11
  277. package/lib/MdxPage-B3v1BSKr.js.map +1 -0
  278. package/lib/{OasProvider-DalHQixM.js → OasProvider-5jrFuhVk.js} +3 -3
  279. package/lib/{OasProvider-DalHQixM.js.map → OasProvider-5jrFuhVk.js.map} +1 -1
  280. package/lib/{OperationList-BB09ENaq.js → OperationList-BmoMLQPO.js} +1039 -1005
  281. package/lib/OperationList-BmoMLQPO.js.map +1 -0
  282. package/lib/Pagination-Cr0fWZS3.js +36 -0
  283. package/lib/Pagination-Cr0fWZS3.js.map +1 -0
  284. package/lib/RouteGuard-PrSVLbSr.js +55 -0
  285. package/lib/RouteGuard-PrSVLbSr.js.map +1 -0
  286. package/lib/{SchemaList-BH9bgMRw.js → SchemaList-B4riYLoP.js} +61 -47
  287. package/lib/SchemaList-B4riYLoP.js.map +1 -0
  288. package/lib/{SchemaView-BsB7EFRl.js → SchemaView-CPZ6RgsF.js} +100 -95
  289. package/lib/SchemaView-CPZ6RgsF.js.map +1 -0
  290. package/lib/{AuthenticationPlugin-BTJ37DKg.js → SignUp-CWaiH0tY.js} +23 -50
  291. package/lib/SignUp-CWaiH0tY.js.map +1 -0
  292. package/lib/Slot-Bo6K4tnb.js +160 -0
  293. package/lib/Slot-Bo6K4tnb.js.map +1 -0
  294. package/lib/{SyntaxHighlight-UxOF1xNb.js → SyntaxHighlight-DedRjJNr.js} +233 -212
  295. package/lib/{SyntaxHighlight-UxOF1xNb.js.map → SyntaxHighlight-DedRjJNr.js.map} +1 -1
  296. package/lib/{Toc-Ax54Pw8S.js → Toc-lL3fzNkl.js} +5 -5
  297. package/lib/Toc-lL3fzNkl.js.map +1 -0
  298. package/lib/{circular-CZaZtOBs.js → circular-oB4auIIg.js} +2 -2
  299. package/lib/{circular-CZaZtOBs.js.map → circular-oB4auIIg.js.map} +1 -1
  300. package/lib/clsx-OuTLNxxd.js +17 -0
  301. package/lib/clsx-OuTLNxxd.js.map +1 -0
  302. package/lib/{cn-CwJPJKOE.js → cn-wvCW-ho6.js} +1015 -562
  303. package/lib/cn-wvCW-ho6.js.map +1 -0
  304. package/lib/{createServer-DmqFeMgf.js → createServer-DCB82j2t.js} +81 -81
  305. package/lib/{createServer-DmqFeMgf.js.map → createServer-DCB82j2t.js.map} +1 -1
  306. package/lib/{hook-BwOB_iZo.js → hook-DawSLaZr.js} +323 -300
  307. package/lib/hook-DawSLaZr.js.map +1 -0
  308. package/lib/{index-sS7O9W-R.js → index-BXYvD5-7.js} +868 -758
  309. package/lib/index-BXYvD5-7.js.map +1 -0
  310. package/lib/{index-Z13x6tPX.js → index-DI5SPFK9.js} +2 -2
  311. package/lib/{index-Z13x6tPX.js.map → index-DI5SPFK9.js.map} +1 -1
  312. package/lib/index-QzXzw_ra.js +24 -0
  313. package/lib/index-QzXzw_ra.js.map +1 -0
  314. package/lib/{RouteGuard-lkdEJoDV.js → index.esm-BFcSKCe-.js} +232 -281
  315. package/lib/index.esm-BFcSKCe-.js.map +1 -0
  316. package/lib/{index.esm-D2ZUREQN.js → index.esm-DSfX_eMP.js} +3 -3
  317. package/lib/{index.esm-D2ZUREQN.js.map → index.esm-DSfX_eMP.js.map} +1 -1
  318. package/lib/joinPath-B7kNnUX4.js +8 -0
  319. package/lib/joinPath-B7kNnUX4.js.map +1 -0
  320. package/lib/{mutation-CL2MCRQL.js → mutation-oxMvODNQ.js} +2 -2
  321. package/lib/{mutation-CL2MCRQL.js.map → mutation-oxMvODNQ.js.map} +1 -1
  322. package/lib/ui/Accordion.js +1 -1
  323. package/lib/ui/ActionButton.js +2 -2
  324. package/lib/ui/Alert.js +2 -2
  325. package/lib/ui/AlertDialog.js +1 -1
  326. package/lib/ui/Badge.js +3 -3
  327. package/lib/ui/Badge.js.map +1 -1
  328. package/lib/ui/Breadcrumb.js +1 -1
  329. package/lib/ui/Button.js +20 -18
  330. package/lib/ui/Button.js.map +1 -1
  331. package/lib/ui/Callout.js +6 -5
  332. package/lib/ui/Callout.js.map +1 -1
  333. package/lib/ui/Card.js +8 -8
  334. package/lib/ui/Card.js.map +1 -1
  335. package/lib/ui/Carousel.js +1 -1
  336. package/lib/ui/Checkbox.js +7 -7
  337. package/lib/ui/Checkbox.js.map +1 -1
  338. package/lib/ui/CodeBlock.js +1 -1
  339. package/lib/ui/Command.js +43 -43
  340. package/lib/ui/Command.js.map +1 -1
  341. package/lib/ui/Dialog.js +2 -2
  342. package/lib/ui/Dialog.js.map +1 -1
  343. package/lib/ui/Drawer.js +2 -2
  344. package/lib/ui/DropdownMenu.js +34 -34
  345. package/lib/ui/DropdownMenu.js.map +1 -1
  346. package/lib/ui/Form.js +2 -2
  347. package/lib/ui/HoverCard.js +5 -5
  348. package/lib/ui/HoverCard.js.map +1 -1
  349. package/lib/ui/Input.js +2 -2
  350. package/lib/ui/Input.js.map +1 -1
  351. package/lib/ui/Label.js +2 -2
  352. package/lib/ui/Pagination.js +1 -1
  353. package/lib/ui/Popover.js +2 -2
  354. package/lib/ui/Popover.js.map +1 -1
  355. package/lib/ui/Progress.js +1 -1
  356. package/lib/ui/RadioGroup.js +10 -10
  357. package/lib/ui/RadioGroup.js.map +1 -1
  358. package/lib/ui/ScrollArea.js +1 -1
  359. package/lib/ui/Select.js +31 -31
  360. package/lib/ui/Select.js.map +1 -1
  361. package/lib/ui/Skeleton.js +1 -1
  362. package/lib/ui/Slider.js +5 -5
  363. package/lib/ui/Slider.js.map +1 -1
  364. package/lib/ui/Switch.js +5 -5
  365. package/lib/ui/Switch.js.map +1 -1
  366. package/lib/ui/SyntaxHighlight.js +2 -2
  367. package/lib/ui/Tabs.js +16 -16
  368. package/lib/ui/Tabs.js.map +1 -1
  369. package/lib/ui/Textarea.js +5 -5
  370. package/lib/ui/Textarea.js.map +1 -1
  371. package/lib/ui/Toggle.js +7 -7
  372. package/lib/ui/Toggle.js.map +1 -1
  373. package/lib/ui/ToggleGroup.js +1 -1
  374. package/lib/ui/Tooltip.js +15 -8
  375. package/lib/ui/Tooltip.js.map +1 -1
  376. package/lib/ui/util.js +1 -1
  377. package/lib/useExposedProps-DG8J6ewJ.js.map +1 -1
  378. package/lib/useMutation-C_j3dA_L.js +97 -0
  379. package/lib/useMutation-C_j3dA_L.js.map +1 -0
  380. package/lib/zudoku.auth-auth0.js +1 -1
  381. package/lib/zudoku.auth-auth0.js.map +1 -1
  382. package/lib/zudoku.auth-clerk.js +99 -82
  383. package/lib/zudoku.auth-clerk.js.map +1 -1
  384. package/lib/zudoku.auth-openid.js +246 -216
  385. package/lib/zudoku.auth-openid.js.map +1 -1
  386. package/lib/zudoku.components.js +4957 -33
  387. package/lib/zudoku.components.js.map +1 -1
  388. package/lib/zudoku.hooks.js +21 -12
  389. package/lib/zudoku.hooks.js.map +1 -1
  390. package/lib/zudoku.plugin-api-catalog.js +8 -8
  391. package/lib/zudoku.plugin-api-catalog.js.map +1 -1
  392. package/lib/zudoku.plugin-api-keys.js +5022 -214
  393. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  394. package/lib/zudoku.plugin-custom-pages.js +2 -2
  395. package/lib/zudoku.plugin-custom-pages.js.map +1 -1
  396. package/lib/zudoku.plugin-markdown.js +1 -1
  397. package/lib/zudoku.plugin-markdown.js.map +1 -1
  398. package/lib/zudoku.plugin-openapi.js +3 -3
  399. package/lib/zudoku.plugin-redirect.js.map +1 -1
  400. package/lib/zudoku.plugin-search-pagefind.js +5 -5
  401. package/lib/zudoku.plugins.js +7 -6
  402. package/lib/zudoku.plugins.js.map +1 -1
  403. package/package.json +15 -15
  404. package/src/app/defaultTheme.css +54 -0
  405. package/src/app/font.geist.css +73 -0
  406. package/src/app/main.css +113 -156
  407. package/src/app/main.tsx +4 -28
  408. package/src/lib/authentication/AuthenticationPlugin.tsx +18 -4
  409. package/src/lib/authentication/authentication.ts +2 -5
  410. package/src/lib/authentication/providers/auth0.tsx +8 -2
  411. package/src/lib/authentication/providers/clerk.tsx +72 -48
  412. package/src/lib/authentication/providers/openid.tsx +19 -26
  413. package/src/lib/authentication/providers/supabase.tsx +7 -7
  414. package/src/lib/components/Autocomplete.tsx +1 -1
  415. package/src/lib/components/Banner.tsx +1 -1
  416. package/src/lib/components/ErrorPage.tsx +1 -1
  417. package/src/lib/components/Footer.tsx +4 -4
  418. package/src/lib/components/Header.tsx +29 -29
  419. package/src/lib/components/Heading.tsx +9 -5
  420. package/src/lib/components/InlineCode.tsx +1 -1
  421. package/src/lib/components/Layout.tsx +3 -3
  422. package/src/lib/components/Main.tsx +4 -4
  423. package/src/lib/components/Markdown.tsx +14 -4
  424. package/src/lib/components/MobileTopNavigation.tsx +3 -2
  425. package/src/lib/components/NotFoundPage.tsx +1 -1
  426. package/src/lib/components/Pagination.tsx +3 -9
  427. package/src/lib/components/Search.tsx +1 -1
  428. package/src/lib/components/Slot.test.tsx +465 -0
  429. package/src/lib/components/Slot.tsx +64 -0
  430. package/src/lib/components/TopNavigation.tsx +5 -17
  431. package/src/lib/components/Zudoku.tsx +9 -9
  432. package/src/lib/components/context/SlotProvider.tsx +149 -0
  433. package/src/lib/components/context/ZudokuProvider.tsx +2 -1
  434. package/src/lib/components/index.ts +14 -10
  435. package/src/lib/components/navigation/PoweredByZudoku.tsx +1 -1
  436. package/src/lib/components/navigation/Sidebar.tsx +3 -3
  437. package/src/lib/components/navigation/SidebarBadge.tsx +1 -1
  438. package/src/lib/components/navigation/SidebarCategory.tsx +3 -3
  439. package/src/lib/components/navigation/SidebarItem.tsx +57 -30
  440. package/src/lib/components/navigation/SidebarWrapper.tsx +2 -2
  441. package/src/lib/components/navigation/Toc.tsx +2 -2
  442. package/src/lib/components/navigation/utils.ts +42 -6
  443. package/src/lib/core/ZudokuContext.ts +24 -12
  444. package/src/lib/core/plugins.ts +10 -2
  445. package/src/lib/errors/ErrorAlert.tsx +1 -1
  446. package/src/lib/hooks/index.ts +11 -0
  447. package/src/lib/plugins/api-catalog/Catalog.tsx +1 -1
  448. package/src/lib/plugins/api-keys/CreateApiKey.tsx +54 -42
  449. package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +292 -112
  450. package/src/lib/plugins/api-keys/index.tsx +101 -55
  451. package/src/lib/plugins/custom-pages/index.tsx +1 -1
  452. package/src/lib/plugins/markdown/MdxPage.tsx +2 -2
  453. package/src/lib/plugins/markdown/index.tsx +2 -2
  454. package/src/lib/plugins/markdown/resolver.ts +4 -2
  455. package/src/lib/plugins/openapi/CollapsibleCode.tsx +1 -1
  456. package/src/lib/plugins/openapi/ColorizedParam.tsx +2 -2
  457. package/src/lib/plugins/openapi/OperationList.tsx +2 -2
  458. package/src/lib/plugins/openapi/OperationListItem.tsx +6 -34
  459. package/src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx +7 -1
  460. package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +5 -16
  461. package/src/lib/plugins/openapi/SchemaList.tsx +20 -8
  462. package/src/lib/plugins/openapi/Sidecar.tsx +1 -1
  463. package/src/lib/plugins/openapi/SidecarExamples.tsx +6 -0
  464. package/src/lib/plugins/openapi/components/EnumValues.tsx +1 -1
  465. package/src/lib/plugins/openapi/components/ResponseContent.tsx +104 -0
  466. package/src/lib/plugins/openapi/playground/Playground.tsx +7 -1
  467. package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +1 -1
  468. package/src/lib/plugins/openapi/playground/SubmitButton.tsx +24 -29
  469. package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +2 -2
  470. package/src/lib/plugins/openapi/schema/SchemaView.tsx +7 -3
  471. package/src/lib/plugins/redirect/index.tsx +1 -1
  472. package/src/lib/ui/Badge.tsx +2 -2
  473. package/src/lib/ui/Button.tsx +9 -6
  474. package/src/lib/ui/Callout.tsx +1 -0
  475. package/src/lib/ui/Card.tsx +1 -1
  476. package/src/lib/ui/Checkbox.tsx +1 -1
  477. package/src/lib/ui/Command.tsx +5 -5
  478. package/src/lib/ui/Dialog.tsx +1 -1
  479. package/src/lib/ui/DropdownMenu.tsx +4 -4
  480. package/src/lib/ui/HoverCard.tsx +1 -1
  481. package/src/lib/ui/Input.tsx +1 -1
  482. package/src/lib/ui/Popover.tsx +1 -1
  483. package/src/lib/ui/RadioGroup.tsx +1 -1
  484. package/src/lib/ui/Select.tsx +3 -3
  485. package/src/lib/ui/Slider.tsx +1 -1
  486. package/src/lib/ui/Switch.tsx +1 -1
  487. package/src/lib/ui/Tabs.tsx +2 -2
  488. package/src/lib/ui/Textarea.tsx +1 -1
  489. package/src/lib/ui/Toggle.tsx +1 -1
  490. package/src/lib/ui/Tooltip.tsx +16 -1
  491. package/src/lib/util/useExposedProps.tsx +12 -1
  492. package/dist/app/tailwind.d.ts +0 -4
  493. package/dist/app/tailwind.js +0 -97
  494. package/dist/app/tailwind.js.map +0 -1
  495. package/dist/config/common.d.ts +0 -10
  496. package/dist/config/common.js +0 -2
  497. package/dist/config/common.js.map +0 -1
  498. package/dist/config/validators/common.d.ts +0 -8001
  499. package/dist/config/validators/common.js +0 -414
  500. package/dist/config/validators/common.js.map +0 -1
  501. package/dist/lib/components/SlotletProvider.d.ts +0 -17
  502. package/dist/lib/components/SlotletProvider.js +0 -18
  503. package/dist/lib/components/SlotletProvider.js.map +0 -1
  504. package/dist/vite/plugin-docs.test.js +0 -22
  505. package/dist/vite/plugin-docs.test.js.map +0 -1
  506. package/lib/AuthenticationPlugin-BTJ37DKg.js.map +0 -1
  507. package/lib/Button-Bdk_Ij3U.js +0 -49
  508. package/lib/Button-Bdk_Ij3U.js.map +0 -1
  509. package/lib/Callout-XadUe37J.js.map +0 -1
  510. package/lib/Dialog-CNf2oWXG.js.map +0 -1
  511. package/lib/Markdown-D96AphCL.js +0 -7691
  512. package/lib/Markdown-D96AphCL.js.map +0 -1
  513. package/lib/MdxPage-tTTaDsLc.js.map +0 -1
  514. package/lib/OperationList-BB09ENaq.js.map +0 -1
  515. package/lib/Pagination-CtmnJOJi.js +0 -48
  516. package/lib/Pagination-CtmnJOJi.js.map +0 -1
  517. package/lib/RouteGuard-lkdEJoDV.js.map +0 -1
  518. package/lib/SchemaList-BH9bgMRw.js.map +0 -1
  519. package/lib/SchemaView-BsB7EFRl.js.map +0 -1
  520. package/lib/Select-HTio1oSE.js +0 -211
  521. package/lib/Select-HTio1oSE.js.map +0 -1
  522. package/lib/SlotletProvider-CTgIBRWg.js +0 -257
  523. package/lib/SlotletProvider-CTgIBRWg.js.map +0 -1
  524. package/lib/Toc-Ax54Pw8S.js.map +0 -1
  525. package/lib/cn-CwJPJKOE.js.map +0 -1
  526. package/lib/hook-BwOB_iZo.js.map +0 -1
  527. package/lib/index-BnT4-Efz.js +0 -4975
  528. package/lib/index-BnT4-Efz.js.map +0 -1
  529. package/lib/index-sS7O9W-R.js.map +0 -1
  530. package/src/app/tailwind.ts +0 -103
  531. package/src/lib/components/SlotletProvider.tsx +0 -55
  532. /package/dist/{vite/plugin-docs.test.d.ts → lib/components/Slot.test.d.ts} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"hook-BwOB_iZo.js","sources":["../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/subscribable.js","../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/utils.js","../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/focusManager.js","../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/onlineManager.js","../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/thenable.js","../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/retryer.js","../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/notifyManager.js","../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/removable.js","../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/query.js","../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/queryObserver.js","../../../node_modules/.pnpm/@tanstack+react-query@5.74.3_react@19.1.0/node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js","../../../node_modules/.pnpm/@tanstack+react-query@5.74.3_react@19.1.0/node_modules/@tanstack/react-query/build/modern/isRestoring.js","../../../node_modules/.pnpm/@tanstack+react-query@5.74.3_react@19.1.0/node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js","../../../node_modules/.pnpm/@tanstack+react-query@5.74.3_react@19.1.0/node_modules/@tanstack/react-query/build/modern/utils.js","../../../node_modules/.pnpm/@tanstack+react-query@5.74.3_react@19.1.0/node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js","../../../node_modules/.pnpm/@tanstack+react-query@5.74.3_react@19.1.0/node_modules/@tanstack/react-query/build/modern/suspense.js","../../../node_modules/.pnpm/@tanstack+react-query@5.74.3_react@19.1.0/node_modules/@tanstack/react-query/build/modern/useBaseQuery.js","../../../node_modules/.pnpm/@tanstack+react-query@5.74.3_react@19.1.0/node_modules/@tanstack/react-query/build/modern/useQuery.js","../../../node_modules/.pnpm/@tanstack+react-query@5.74.3_react@19.1.0/node_modules/@tanstack/react-query/build/modern/useSuspenseQuery.js","../src/lib/util/joinUrl.ts","../src/lib/components/cache.ts","../src/lib/util/joinPath.tsx","../src/lib/components/navigation/utils.ts","../src/lib/components/context/ZudokuContext.ts","../../../node_modules/.pnpm/zustand@5.0.3_@types+react@19.1.1_react@19.1.0_use-sync-external-store@1.5.0_react@19.1.0_/node_modules/zustand/esm/vanilla.mjs","../../../node_modules/.pnpm/zustand@5.0.3_@types+react@19.1.1_react@19.1.0_use-sync-external-store@1.5.0_react@19.1.0_/node_modules/zustand/esm/react.mjs","../../../node_modules/.pnpm/zustand@5.0.3_@types+react@19.1.1_react@19.1.0_use-sync-external-store@1.5.0_react@19.1.0_/node_modules/zustand/esm/middleware.mjs","../src/lib/authentication/state.ts","../src/lib/authentication/hook.ts"],"sourcesContent":["// src/subscribable.ts\nvar Subscribable = class {\n constructor() {\n this.listeners = /* @__PURE__ */ new Set();\n this.subscribe = this.subscribe.bind(this);\n }\n subscribe(listener) {\n this.listeners.add(listener);\n this.onSubscribe();\n return () => {\n this.listeners.delete(listener);\n this.onUnsubscribe();\n };\n }\n hasListeners() {\n return this.listeners.size > 0;\n }\n onSubscribe() {\n }\n onUnsubscribe() {\n }\n};\nexport {\n Subscribable\n};\n//# sourceMappingURL=subscribable.js.map","// src/utils.ts\nvar isServer = typeof window === \"undefined\" || \"Deno\" in globalThis;\nfunction noop() {\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === \"function\" ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === \"number\" && value >= 0 && value !== Infinity;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction resolveStaleTime(staleTime, query) {\n return typeof staleTime === \"function\" ? staleTime(query) : staleTime;\n}\nfunction resolveEnabled(enabled, query) {\n return typeof enabled === \"function\" ? enabled(query) : enabled;\n}\nfunction matchQuery(filters, query) {\n const {\n type = \"all\",\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n if (queryKey) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n if (type !== \"all\") {\n const isActive = query.isActive();\n if (type === \"active\" && !isActive) {\n return false;\n }\n if (type === \"inactive\" && isActive) {\n return false;\n }\n }\n if (typeof stale === \"boolean\" && query.isStale() !== stale) {\n return false;\n }\n if (fetchStatus && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n if (predicate && !predicate(query)) {\n return false;\n }\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const { exact, status, predicate, mutationKey } = filters;\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n if (status && mutation.state.status !== status) {\n return false;\n }\n if (predicate && !predicate(mutation)) {\n return false;\n }\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = options?.queryKeyHashFn || hashKey;\n return hashFn(queryKey);\n}\nfunction hashKey(queryKey) {\n return JSON.stringify(\n queryKey,\n (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val\n );\n}\nfunction partialMatchKey(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (a && b && typeof a === \"object\" && typeof b === \"object\") {\n return Object.keys(b).every((key) => partialMatchKey(a[key], b[key]));\n }\n return false;\n}\nfunction replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n const array = isPlainArray(a) && isPlainArray(b);\n if (array || isPlainObject(a) && isPlainObject(b)) {\n const aItems = array ? a : Object.keys(a);\n const aSize = aItems.length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? [] : {};\n let equalItems = 0;\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n if ((!array && aItems.includes(key) || array) && a[key] === void 0 && b[key] === void 0) {\n copy[key] = void 0;\n equalItems++;\n } else {\n copy[key] = replaceEqualDeep(a[key], b[key]);\n if (copy[key] === a[key] && a[key] !== void 0) {\n equalItems++;\n }\n }\n }\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n return b;\n}\nfunction shallowEqualObjects(a, b) {\n if (!b || Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (ctor === void 0) {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n if (Object.getPrototypeOf(o) !== Object.prototype) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction sleep(timeout) {\n return new Promise((resolve) => {\n setTimeout(resolve, timeout);\n });\n}\nfunction replaceData(prevData, data, options) {\n if (typeof options.structuralSharing === \"function\") {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n if (process.env.NODE_ENV !== \"production\") {\n try {\n return replaceEqualDeep(prevData, data);\n } catch (error) {\n console.error(\n `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${options.queryHash}]: ${error}`\n );\n throw error;\n }\n }\n return replaceEqualDeep(prevData, data);\n }\n return data;\n}\nfunction keepPreviousData(previousData) {\n return previousData;\n}\nfunction addToEnd(items, item, max = 0) {\n const newItems = [...items, item];\n return max && newItems.length > max ? newItems.slice(1) : newItems;\n}\nfunction addToStart(items, item, max = 0) {\n const newItems = [item, ...items];\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n}\nvar skipToken = Symbol();\nfunction ensureQueryFn(options, fetchOptions) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\n `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`\n );\n }\n }\n if (!options.queryFn && fetchOptions?.initialPromise) {\n return () => fetchOptions.initialPromise;\n }\n if (!options.queryFn || options.queryFn === skipToken) {\n return () => Promise.reject(new Error(`Missing queryFn: '${options.queryHash}'`));\n }\n return options.queryFn;\n}\nexport {\n addToEnd,\n addToStart,\n ensureQueryFn,\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n isPlainArray,\n isPlainObject,\n isServer,\n isValidTimeout,\n keepPreviousData,\n matchMutation,\n matchQuery,\n noop,\n partialMatchKey,\n replaceData,\n replaceEqualDeep,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n skipToken,\n sleep,\n timeUntilStale\n};\n//# sourceMappingURL=utils.js.map","// src/focusManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar FocusManager = class extends Subscribable {\n #focused;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onFocus) => {\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus();\n window.addEventListener(\"visibilitychange\", listener, false);\n return () => {\n window.removeEventListener(\"visibilitychange\", listener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup((focused) => {\n if (typeof focused === \"boolean\") {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n setFocused(focused) {\n const changed = this.#focused !== focused;\n if (changed) {\n this.#focused = focused;\n this.onFocus();\n }\n }\n onFocus() {\n const isFocused = this.isFocused();\n this.listeners.forEach((listener) => {\n listener(isFocused);\n });\n }\n isFocused() {\n if (typeof this.#focused === \"boolean\") {\n return this.#focused;\n }\n return globalThis.document?.visibilityState !== \"hidden\";\n }\n};\nvar focusManager = new FocusManager();\nexport {\n FocusManager,\n focusManager\n};\n//# sourceMappingURL=focusManager.js.map","// src/onlineManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar OnlineManager = class extends Subscribable {\n #online = true;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onOnline) => {\n if (!isServer && window.addEventListener) {\n const onlineListener = () => onOnline(true);\n const offlineListener = () => onOnline(false);\n window.addEventListener(\"online\", onlineListener, false);\n window.addEventListener(\"offline\", offlineListener, false);\n return () => {\n window.removeEventListener(\"online\", onlineListener);\n window.removeEventListener(\"offline\", offlineListener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup(this.setOnline.bind(this));\n }\n setOnline(online) {\n const changed = this.#online !== online;\n if (changed) {\n this.#online = online;\n this.listeners.forEach((listener) => {\n listener(online);\n });\n }\n }\n isOnline() {\n return this.#online;\n }\n};\nvar onlineManager = new OnlineManager();\nexport {\n OnlineManager,\n onlineManager\n};\n//# sourceMappingURL=onlineManager.js.map","// src/thenable.ts\nfunction pendingThenable() {\n let resolve;\n let reject;\n const thenable = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n thenable.status = \"pending\";\n thenable.catch(() => {\n });\n function finalize(data) {\n Object.assign(thenable, data);\n delete thenable.resolve;\n delete thenable.reject;\n }\n thenable.resolve = (value) => {\n finalize({\n status: \"fulfilled\",\n value\n });\n resolve(value);\n };\n thenable.reject = (reason) => {\n finalize({\n status: \"rejected\",\n reason\n });\n reject(reason);\n };\n return thenable;\n}\nexport {\n pendingThenable\n};\n//# sourceMappingURL=thenable.js.map","// src/retryer.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport { isServer, sleep } from \"./utils.js\";\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1e3 * 2 ** failureCount, 3e4);\n}\nfunction canFetch(networkMode) {\n return (networkMode ?? \"online\") === \"online\" ? onlineManager.isOnline() : true;\n}\nvar CancelledError = class extends Error {\n constructor(options) {\n super(\"CancelledError\");\n this.revert = options?.revert;\n this.silent = options?.silent;\n }\n};\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let isResolved = false;\n let continueFn;\n const thenable = pendingThenable();\n const cancel = (cancelOptions) => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions));\n config.abort?.();\n }\n };\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n const canContinue = () => focusManager.isFocused() && (config.networkMode === \"always\" || onlineManager.isOnline()) && config.canRun();\n const canStart = () => canFetch(config.networkMode) && config.canRun();\n const resolve = (value) => {\n if (!isResolved) {\n isResolved = true;\n config.onSuccess?.(value);\n continueFn?.();\n thenable.resolve(value);\n }\n };\n const reject = (value) => {\n if (!isResolved) {\n isResolved = true;\n config.onError?.(value);\n continueFn?.();\n thenable.reject(value);\n }\n };\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n if (isResolved || canContinue()) {\n continueResolve(value);\n }\n };\n config.onPause?.();\n }).then(() => {\n continueFn = void 0;\n if (!isResolved) {\n config.onContinue?.();\n }\n });\n };\n const run = () => {\n if (isResolved) {\n return;\n }\n let promiseOrValue;\n const initialPromise = failureCount === 0 ? config.initialPromise : void 0;\n try {\n promiseOrValue = initialPromise ?? config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n Promise.resolve(promiseOrValue).then(resolve).catch((error) => {\n if (isResolved) {\n return;\n }\n const retry = config.retry ?? (isServer ? 0 : 3);\n const retryDelay = config.retryDelay ?? defaultRetryDelay;\n const delay = typeof retryDelay === \"function\" ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === \"number\" && failureCount < retry || typeof retry === \"function\" && retry(failureCount, error);\n if (isRetryCancelled || !shouldRetry) {\n reject(error);\n return;\n }\n failureCount++;\n config.onFail?.(failureCount, error);\n sleep(delay).then(() => {\n return canContinue() ? void 0 : pause();\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n };\n return {\n promise: thenable,\n cancel,\n continue: () => {\n continueFn?.();\n return thenable;\n },\n cancelRetry,\n continueRetry,\n canStart,\n start: () => {\n if (canStart()) {\n run();\n } else {\n pause().then(run);\n }\n return thenable;\n }\n };\n}\nexport {\n CancelledError,\n canFetch,\n createRetryer,\n isCancelledError\n};\n//# sourceMappingURL=retryer.js.map","// src/notifyManager.ts\nvar defaultScheduler = (cb) => setTimeout(cb, 0);\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n let notifyFn = (callback) => {\n callback();\n };\n let batchNotifyFn = (callback) => {\n callback();\n };\n let scheduleFn = defaultScheduler;\n const schedule = (callback) => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleFn(() => {\n notifyFn(callback);\n });\n }\n };\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n if (originalQueue.length) {\n scheduleFn(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n return {\n batch: (callback) => {\n let result;\n transactions++;\n try {\n result = callback();\n } finally {\n transactions--;\n if (!transactions) {\n flush();\n }\n }\n return result;\n },\n /**\n * All calls to the wrapped function will be batched.\n */\n batchCalls: (callback) => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n },\n schedule,\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n setNotifyFunction: (fn) => {\n notifyFn = fn;\n },\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n setBatchNotifyFunction: (fn) => {\n batchNotifyFn = fn;\n },\n setScheduler: (fn) => {\n scheduleFn = fn;\n }\n };\n}\nvar notifyManager = createNotifyManager();\nexport {\n createNotifyManager,\n defaultScheduler,\n notifyManager\n};\n//# sourceMappingURL=notifyManager.js.map","// src/removable.ts\nimport { isServer, isValidTimeout } from \"./utils.js\";\nvar Removable = class {\n #gcTimeout;\n destroy() {\n this.clearGcTimeout();\n }\n scheduleGc() {\n this.clearGcTimeout();\n if (isValidTimeout(this.gcTime)) {\n this.#gcTimeout = setTimeout(() => {\n this.optionalRemove();\n }, this.gcTime);\n }\n }\n updateGcTime(newGcTime) {\n this.gcTime = Math.max(\n this.gcTime || 0,\n newGcTime ?? (isServer ? Infinity : 5 * 60 * 1e3)\n );\n }\n clearGcTimeout() {\n if (this.#gcTimeout) {\n clearTimeout(this.#gcTimeout);\n this.#gcTimeout = void 0;\n }\n }\n};\nexport {\n Removable\n};\n//# sourceMappingURL=removable.js.map","// src/query.ts\nimport {\n ensureQueryFn,\n noop,\n replaceData,\n resolveEnabled,\n skipToken,\n timeUntilStale\n} from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { canFetch, createRetryer, isCancelledError } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\nvar Query = class extends Removable {\n #initialState;\n #revertState;\n #cache;\n #client;\n #retryer;\n #defaultOptions;\n #abortSignalConsumed;\n constructor(config) {\n super();\n this.#abortSignalConsumed = false;\n this.#defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.#client = config.client;\n this.#cache = this.#client.getQueryCache();\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.#initialState = getDefaultState(this.options);\n this.state = config.state ?? this.#initialState;\n this.scheduleGc();\n }\n get meta() {\n return this.options.meta;\n }\n get promise() {\n return this.#retryer?.promise;\n }\n setOptions(options) {\n this.options = { ...this.#defaultOptions, ...options };\n this.updateGcTime(this.options.gcTime);\n }\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === \"idle\") {\n this.#cache.remove(this);\n }\n }\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options);\n this.#dispatch({\n data,\n type: \"success\",\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual\n });\n return data;\n }\n setState(state, setStateOptions) {\n this.#dispatch({ type: \"setState\", state, setStateOptions });\n }\n cancel(options) {\n const promise = this.#retryer?.promise;\n this.#retryer?.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n destroy() {\n super.destroy();\n this.cancel({ silent: true });\n }\n reset() {\n this.destroy();\n this.setState(this.#initialState);\n }\n isActive() {\n return this.observers.some(\n (observer) => resolveEnabled(observer.options.enabled, this) !== false\n );\n }\n isDisabled() {\n if (this.getObserversCount() > 0) {\n return !this.isActive();\n }\n return this.options.queryFn === skipToken || this.state.dataUpdateCount + this.state.errorUpdateCount === 0;\n }\n isStale() {\n if (this.state.isInvalidated) {\n return true;\n }\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => observer.getCurrentResult().isStale\n );\n }\n return this.state.data === void 0;\n }\n isStaleByTime(staleTime = 0) {\n return this.state.isInvalidated || this.state.data === void 0 || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n onFocus() {\n const observer = this.observers.find((x) => x.shouldFetchOnWindowFocus());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n onOnline() {\n const observer = this.observers.find((x) => x.shouldFetchOnReconnect());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer);\n this.clearGcTimeout();\n this.#cache.notify({ type: \"observerAdded\", query: this, observer });\n }\n }\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter((x) => x !== observer);\n if (!this.observers.length) {\n if (this.#retryer) {\n if (this.#abortSignalConsumed) {\n this.#retryer.cancel({ revert: true });\n } else {\n this.#retryer.cancelRetry();\n }\n }\n this.scheduleGc();\n }\n this.#cache.notify({ type: \"observerRemoved\", query: this, observer });\n }\n }\n getObserversCount() {\n return this.observers.length;\n }\n invalidate() {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: \"invalidate\" });\n }\n }\n fetch(options, fetchOptions) {\n if (this.state.fetchStatus !== \"idle\") {\n if (this.state.data !== void 0 && fetchOptions?.cancelRefetch) {\n this.cancel({ silent: true });\n } else if (this.#retryer) {\n this.#retryer.continueRetry();\n return this.#retryer.promise;\n }\n }\n if (options) {\n this.setOptions(options);\n }\n if (!this.options.queryFn) {\n const observer = this.observers.find((x) => x.options.queryFn);\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`\n );\n }\n }\n const abortController = new AbortController();\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true;\n return abortController.signal;\n }\n });\n };\n const fetchFn = () => {\n const queryFn = ensureQueryFn(this.options, fetchOptions);\n const queryFnContext = {\n client: this.#client,\n queryKey: this.queryKey,\n meta: this.meta\n };\n addSignalProperty(queryFnContext);\n this.#abortSignalConsumed = false;\n if (this.options.persister) {\n return this.options.persister(\n queryFn,\n queryFnContext,\n this\n );\n }\n return queryFn(queryFnContext);\n };\n const context = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n client: this.#client,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context);\n this.options.behavior?.onFetch(\n context,\n this\n );\n this.#revertState = this.state;\n if (this.state.fetchStatus === \"idle\" || this.state.fetchMeta !== context.fetchOptions?.meta) {\n this.#dispatch({ type: \"fetch\", meta: context.fetchOptions?.meta });\n }\n const onError = (error) => {\n if (!(isCancelledError(error) && error.silent)) {\n this.#dispatch({\n type: \"error\",\n error\n });\n }\n if (!isCancelledError(error)) {\n this.#cache.config.onError?.(\n error,\n this\n );\n this.#cache.config.onSettled?.(\n this.state.data,\n error,\n this\n );\n }\n this.scheduleGc();\n };\n this.#retryer = createRetryer({\n initialPromise: fetchOptions?.initialPromise,\n fn: context.fetchFn,\n abort: abortController.abort.bind(abortController),\n onSuccess: (data) => {\n if (data === void 0) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`\n );\n }\n onError(new Error(`${this.queryHash} data is undefined`));\n return;\n }\n try {\n this.setData(data);\n } catch (error) {\n onError(error);\n return;\n }\n this.#cache.config.onSuccess?.(data, this);\n this.#cache.config.onSettled?.(\n data,\n this.state.error,\n this\n );\n this.scheduleGc();\n },\n onError,\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n canRun: () => true\n });\n return this.#retryer.start();\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n fetchStatus: \"paused\"\n };\n case \"continue\":\n return {\n ...state,\n fetchStatus: \"fetching\"\n };\n case \"fetch\":\n return {\n ...state,\n ...fetchState(state.data, this.options),\n fetchMeta: action.meta ?? null\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: action.dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: \"success\",\n ...!action.manual && {\n fetchStatus: \"idle\",\n fetchFailureCount: 0,\n fetchFailureReason: null\n }\n };\n case \"error\":\n const error = action.error;\n if (isCancelledError(error) && error.revert && this.#revertState) {\n return { ...this.#revertState, fetchStatus: \"idle\" };\n }\n return {\n ...state,\n error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: \"idle\",\n status: \"error\"\n };\n case \"invalidate\":\n return {\n ...state,\n isInvalidated: true\n };\n case \"setState\":\n return {\n ...state,\n ...action.state\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onQueryUpdate();\n });\n this.#cache.notify({ query: this, type: \"updated\", action });\n });\n }\n};\nfunction fetchState(data, options) {\n return {\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchStatus: canFetch(options.networkMode) ? \"fetching\" : \"paused\",\n ...data === void 0 && {\n error: null,\n status: \"pending\"\n }\n };\n}\nfunction getDefaultState(options) {\n const data = typeof options.initialData === \"function\" ? options.initialData() : options.initialData;\n const hasData = data !== void 0;\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === \"function\" ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? \"success\" : \"pending\",\n fetchStatus: \"idle\"\n };\n}\nexport {\n Query,\n fetchState\n};\n//# sourceMappingURL=query.js.map","// src/queryObserver.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { fetchState } from \"./query.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n timeUntilStale\n} from \"./utils.js\";\nvar QueryObserver = class extends Subscribable {\n constructor(client, options) {\n super();\n this.options = options;\n this.#client = client;\n this.#selectError = null;\n this.#currentThenable = pendingThenable();\n if (!this.options.experimental_prefetchInRender) {\n this.#currentThenable.reject(\n new Error(\"experimental_prefetchInRender feature flag is not enabled\")\n );\n }\n this.bindMethods();\n this.setOptions(options);\n }\n #client;\n #currentQuery = void 0;\n #currentQueryInitialState = void 0;\n #currentResult = void 0;\n #currentResultState;\n #currentResultOptions;\n #currentThenable;\n #selectError;\n #selectFn;\n #selectResult;\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData;\n #staleTimeoutId;\n #refetchIntervalId;\n #currentRefetchInterval;\n #trackedProps = /* @__PURE__ */ new Set();\n bindMethods() {\n this.refetch = this.refetch.bind(this);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this);\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch();\n } else {\n this.updateResult();\n }\n this.#updateTimers();\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.destroy();\n }\n }\n shouldFetchOnReconnect() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect\n );\n }\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus\n );\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#clearStaleTimeout();\n this.#clearRefetchInterval();\n this.#currentQuery.removeObserver(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n const prevQuery = this.#currentQuery;\n this.options = this.#client.defaultQueryOptions(options);\n if (this.options.enabled !== void 0 && typeof this.options.enabled !== \"boolean\" && typeof this.options.enabled !== \"function\" && typeof resolveEnabled(this.options.enabled, this.#currentQuery) !== \"boolean\") {\n throw new Error(\n \"Expected enabled to be a boolean or a callback that returns a boolean\"\n );\n }\n this.#updateQuery();\n this.#currentQuery.setOptions(this.options);\n if (prevOptions._defaulted && !shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getQueryCache().notify({\n type: \"observerOptionsUpdated\",\n query: this.#currentQuery,\n observer: this\n });\n }\n const mounted = this.hasListeners();\n if (mounted && shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions\n )) {\n this.#executeFetch();\n }\n this.updateResult();\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || resolveStaleTime(this.options.staleTime, this.#currentQuery) !== resolveStaleTime(prevOptions.staleTime, this.#currentQuery))) {\n this.#updateStaleTimeout();\n }\n const nextRefetchInterval = this.#computeRefetchInterval();\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || nextRefetchInterval !== this.#currentRefetchInterval)) {\n this.#updateRefetchInterval(nextRefetchInterval);\n }\n }\n getOptimisticResult(options) {\n const query = this.#client.getQueryCache().build(this.#client, options);\n const result = this.createResult(query, options);\n if (shouldAssignObserverCurrentProperties(this, result)) {\n this.#currentResult = result;\n this.#currentResultOptions = this.options;\n this.#currentResultState = this.#currentQuery.state;\n }\n return result;\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n trackResult(result, onPropTracked) {\n const trackedResult = {};\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.trackProp(key);\n onPropTracked?.(key);\n return result[key];\n }\n });\n });\n return trackedResult;\n }\n trackProp(key) {\n this.#trackedProps.add(key);\n }\n getCurrentQuery() {\n return this.#currentQuery;\n }\n refetch({ ...options } = {}) {\n return this.fetch({\n ...options\n });\n }\n fetchOptimistic(options) {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const query = this.#client.getQueryCache().build(this.#client, defaultedOptions);\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n fetch(fetchOptions) {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true\n }).then(() => {\n this.updateResult();\n return this.#currentResult;\n });\n }\n #executeFetch(fetchOptions) {\n this.#updateQuery();\n let promise = this.#currentQuery.fetch(\n this.options,\n fetchOptions\n );\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop);\n }\n return promise;\n }\n #updateStaleTimeout() {\n this.#clearStaleTimeout();\n const staleTime = resolveStaleTime(\n this.options.staleTime,\n this.#currentQuery\n );\n if (isServer || this.#currentResult.isStale || !isValidTimeout(staleTime)) {\n return;\n }\n const time = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime);\n const timeout = time + 1;\n this.#staleTimeoutId = setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n #computeRefetchInterval() {\n return (typeof this.options.refetchInterval === \"function\" ? this.options.refetchInterval(this.#currentQuery) : this.options.refetchInterval) ?? false;\n }\n #updateRefetchInterval(nextInterval) {\n this.#clearRefetchInterval();\n this.#currentRefetchInterval = nextInterval;\n if (isServer || resolveEnabled(this.options.enabled, this.#currentQuery) === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {\n return;\n }\n this.#refetchIntervalId = setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.#executeFetch();\n }\n }, this.#currentRefetchInterval);\n }\n #updateTimers() {\n this.#updateStaleTimeout();\n this.#updateRefetchInterval(this.#computeRefetchInterval());\n }\n #clearStaleTimeout() {\n if (this.#staleTimeoutId) {\n clearTimeout(this.#staleTimeoutId);\n this.#staleTimeoutId = void 0;\n }\n }\n #clearRefetchInterval() {\n if (this.#refetchIntervalId) {\n clearInterval(this.#refetchIntervalId);\n this.#refetchIntervalId = void 0;\n }\n }\n createResult(query, options) {\n const prevQuery = this.#currentQuery;\n const prevOptions = this.options;\n const prevResult = this.#currentResult;\n const prevResultState = this.#currentResultState;\n const prevResultOptions = this.#currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.#currentQueryInitialState;\n const { state } = query;\n let newState = { ...state };\n let isPlaceholderData = false;\n let data;\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n if (fetchOnMount || fetchOptionally) {\n newState = {\n ...newState,\n ...fetchState(state.data, query.options)\n };\n }\n if (options._optimisticResults === \"isRestoring\") {\n newState.fetchStatus = \"idle\";\n }\n }\n let { error, errorUpdatedAt, status } = newState;\n data = newState.data;\n let skipSelect = false;\n if (options.placeholderData !== void 0 && data === void 0 && status === \"pending\") {\n let placeholderData;\n if (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {\n placeholderData = prevResult.data;\n skipSelect = true;\n } else {\n placeholderData = typeof options.placeholderData === \"function\" ? options.placeholderData(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData\n ) : options.placeholderData;\n }\n if (placeholderData !== void 0) {\n status = \"success\";\n data = replaceData(\n prevResult?.data,\n placeholderData,\n options\n );\n isPlaceholderData = true;\n }\n }\n if (options.select && data !== void 0 && !skipSelect) {\n if (prevResult && data === prevResultState?.data && options.select === this.#selectFn) {\n data = this.#selectResult;\n } else {\n try {\n this.#selectFn = options.select;\n data = options.select(data);\n data = replaceData(prevResult?.data, data, options);\n this.#selectResult = data;\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n }\n if (this.#selectError) {\n error = this.#selectError;\n data = this.#selectResult;\n errorUpdatedAt = Date.now();\n status = \"error\";\n }\n const isFetching = newState.fetchStatus === \"fetching\";\n const isPending = status === \"pending\";\n const isError = status === \"error\";\n const isLoading = isPending && isFetching;\n const hasData = data !== void 0;\n const result = {\n status,\n fetchStatus: newState.fetchStatus,\n isPending,\n isSuccess: status === \"success\",\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: newState.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: newState.fetchFailureCount,\n failureReason: newState.fetchFailureReason,\n errorUpdateCount: newState.errorUpdateCount,\n isFetched: newState.dataUpdateCount > 0 || newState.errorUpdateCount > 0,\n isFetchedAfterMount: newState.dataUpdateCount > queryInitialState.dataUpdateCount || newState.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && !hasData,\n isPaused: newState.fetchStatus === \"paused\",\n isPlaceholderData,\n isRefetchError: isError && hasData,\n isStale: isStale(query, options),\n refetch: this.refetch,\n promise: this.#currentThenable\n };\n const nextResult = result;\n if (this.options.experimental_prefetchInRender) {\n const finalizeThenableIfPossible = (thenable) => {\n if (nextResult.status === \"error\") {\n thenable.reject(nextResult.error);\n } else if (nextResult.data !== void 0) {\n thenable.resolve(nextResult.data);\n }\n };\n const recreateThenable = () => {\n const pending = this.#currentThenable = nextResult.promise = pendingThenable();\n finalizeThenableIfPossible(pending);\n };\n const prevThenable = this.#currentThenable;\n switch (prevThenable.status) {\n case \"pending\":\n if (query.queryHash === prevQuery.queryHash) {\n finalizeThenableIfPossible(prevThenable);\n }\n break;\n case \"fulfilled\":\n if (nextResult.status === \"error\" || nextResult.data !== prevThenable.value) {\n recreateThenable();\n }\n break;\n case \"rejected\":\n if (nextResult.status !== \"error\" || nextResult.error !== prevThenable.reason) {\n recreateThenable();\n }\n break;\n }\n }\n return nextResult;\n }\n updateResult() {\n const prevResult = this.#currentResult;\n const nextResult = this.createResult(this.#currentQuery, this.options);\n this.#currentResultState = this.#currentQuery.state;\n this.#currentResultOptions = this.options;\n if (this.#currentResultState.data !== void 0) {\n this.#lastQueryWithDefinedData = this.#currentQuery;\n }\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n this.#currentResult = nextResult;\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n const { notifyOnChangeProps } = this.options;\n const notifyOnChangePropsValue = typeof notifyOnChangeProps === \"function\" ? notifyOnChangeProps() : notifyOnChangeProps;\n if (notifyOnChangePropsValue === \"all\" || !notifyOnChangePropsValue && !this.#trackedProps.size) {\n return true;\n }\n const includedProps = new Set(\n notifyOnChangePropsValue ?? this.#trackedProps\n );\n if (this.options.throwOnError) {\n includedProps.add(\"error\");\n }\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key;\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n this.#notify({ listeners: shouldNotifyListeners() });\n }\n #updateQuery() {\n const query = this.#client.getQueryCache().build(this.#client, this.options);\n if (query === this.#currentQuery) {\n return;\n }\n const prevQuery = this.#currentQuery;\n this.#currentQuery = query;\n this.#currentQueryInitialState = query.state;\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this);\n query.addObserver(this);\n }\n }\n onQueryUpdate() {\n this.updateResult();\n if (this.hasListeners()) {\n this.#updateTimers();\n }\n }\n #notify(notifyOptions) {\n notifyManager.batch(() => {\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n }\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: \"observerResultsUpdated\"\n });\n });\n }\n};\nfunction shouldLoadOnMount(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.state.data === void 0 && !(query.state.status === \"error\" && options.retryOnMount === false);\n}\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.data !== void 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\nfunction shouldFetchOn(query, options, field) {\n if (resolveEnabled(options.enabled, query) !== false) {\n const value = typeof field === \"function\" ? field(query) : field;\n return value === \"always\" || value !== false && isStale(query, options);\n }\n return false;\n}\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return (query !== prevQuery || resolveEnabled(prevOptions.enabled, query) === false) && (!options.suspense || query.state.status !== \"error\") && isStale(query, options);\n}\nfunction isStale(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.isStaleByTime(resolveStaleTime(options.staleTime, query));\n}\nfunction shouldAssignObserverCurrentProperties(observer, optimisticResult) {\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true;\n }\n return false;\n}\nexport {\n QueryObserver\n};\n//# sourceMappingURL=queryObserver.js.map","\"use client\";\n\n// src/QueryClientProvider.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar QueryClientContext = React.createContext(\n void 0\n);\nvar useQueryClient = (queryClient) => {\n const client = React.useContext(QueryClientContext);\n if (queryClient) {\n return queryClient;\n }\n if (!client) {\n throw new Error(\"No QueryClient set, use QueryClientProvider to set one\");\n }\n return client;\n};\nvar QueryClientProvider = ({\n client,\n children\n}) => {\n React.useEffect(() => {\n client.mount();\n return () => {\n client.unmount();\n };\n }, [client]);\n return /* @__PURE__ */ jsx(QueryClientContext.Provider, { value: client, children });\n};\nexport {\n QueryClientContext,\n QueryClientProvider,\n useQueryClient\n};\n//# sourceMappingURL=QueryClientProvider.js.map","\"use client\";\n\n// src/isRestoring.ts\nimport * as React from \"react\";\nvar IsRestoringContext = React.createContext(false);\nvar useIsRestoring = () => React.useContext(IsRestoringContext);\nvar IsRestoringProvider = IsRestoringContext.Provider;\nexport {\n IsRestoringProvider,\n useIsRestoring\n};\n//# sourceMappingURL=isRestoring.js.map","\"use client\";\n\n// src/QueryErrorResetBoundary.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\nvar QueryErrorResetBoundaryContext = React.createContext(createValue());\nvar useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext);\nvar QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /* @__PURE__ */ jsx(QueryErrorResetBoundaryContext.Provider, { value, children: typeof children === \"function\" ? children(value) : children });\n};\nexport {\n QueryErrorResetBoundary,\n useQueryErrorResetBoundary\n};\n//# sourceMappingURL=QueryErrorResetBoundary.js.map","// src/utils.ts\nfunction shouldThrowError(throwError, params) {\n if (typeof throwError === \"function\") {\n return throwError(...params);\n }\n return !!throwError;\n}\nfunction noop() {\n}\nexport {\n noop,\n shouldThrowError\n};\n//# sourceMappingURL=utils.js.map","\"use client\";\n\n// src/errorBoundaryUtils.ts\nimport * as React from \"react\";\nimport { shouldThrowError } from \"./utils.js\";\nvar ensurePreventErrorBoundaryRetry = (options, errorResetBoundary) => {\n if (options.suspense || options.throwOnError || options.experimental_prefetchInRender) {\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false;\n }\n }\n};\nvar useClearResetErrorBoundary = (errorResetBoundary) => {\n React.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n};\nvar getHasError = ({\n result,\n errorResetBoundary,\n throwOnError,\n query,\n suspense\n}) => {\n return result.isError && !errorResetBoundary.isReset() && !result.isFetching && query && (suspense && result.data === void 0 || shouldThrowError(throwOnError, [result.error, query]));\n};\nexport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n};\n//# sourceMappingURL=errorBoundaryUtils.js.map","// src/suspense.ts\nvar defaultThrowOnError = (_error, query) => query.state.data === void 0;\nvar ensureSuspenseTimers = (defaultedOptions) => {\n const originalStaleTime = defaultedOptions.staleTime;\n if (defaultedOptions.suspense) {\n defaultedOptions.staleTime = typeof originalStaleTime === \"function\" ? (...args) => Math.max(originalStaleTime(...args), 1e3) : Math.max(originalStaleTime ?? 1e3, 1e3);\n if (typeof defaultedOptions.gcTime === \"number\") {\n defaultedOptions.gcTime = Math.max(defaultedOptions.gcTime, 1e3);\n }\n }\n};\nvar willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;\nvar shouldSuspend = (defaultedOptions, result) => defaultedOptions?.suspense && result.isPending;\nvar fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).catch(() => {\n errorResetBoundary.clearReset();\n});\nexport {\n defaultThrowOnError,\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n};\n//# sourceMappingURL=suspense.js.map","\"use client\";\n\n// src/useBaseQuery.ts\nimport * as React from \"react\";\nimport { isServer, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport { useIsRestoring } from \"./isRestoring.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n} from \"./suspense.js\";\nimport { noop } from \"./utils.js\";\nfunction useBaseQuery(options, Observer, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n throw new Error(\n 'Bad argument type. Starting with v5, only the \"Object\" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object'\n );\n }\n }\n const client = useQueryClient(queryClient);\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedOptions = client.defaultQueryOptions(options);\n client.getDefaultOptions().queries?._experimental_beforeQuery?.(\n defaultedOptions\n );\n if (process.env.NODE_ENV !== \"production\") {\n if (!defaultedOptions.queryFn) {\n console.error(\n `[${defaultedOptions.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`\n );\n }\n }\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n ensureSuspenseTimers(defaultedOptions);\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary);\n useClearResetErrorBoundary(errorResetBoundary);\n const isNewCacheEntry = !client.getQueryCache().get(defaultedOptions.queryHash);\n const [observer] = React.useState(\n () => new Observer(\n client,\n defaultedOptions\n )\n );\n const result = observer.getOptimisticResult(defaultedOptions);\n const shouldSubscribe = !isRestoring && options.subscribed !== false;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n const unsubscribe = shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop;\n observer.updateResult();\n return unsubscribe;\n },\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setOptions(defaultedOptions);\n }, [defaultedOptions, observer]);\n if (shouldSuspend(defaultedOptions, result)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n }\n if (getHasError({\n result,\n errorResetBoundary,\n throwOnError: defaultedOptions.throwOnError,\n query: client.getQueryCache().get(defaultedOptions.queryHash),\n suspense: defaultedOptions.suspense\n })) {\n throw result.error;\n }\n ;\n client.getDefaultOptions().queries?._experimental_afterQuery?.(\n defaultedOptions,\n result\n );\n if (defaultedOptions.experimental_prefetchInRender && !isServer && willFetch(result, isRestoring)) {\n const promise = isNewCacheEntry ? (\n // Fetch immediately on render in order to ensure `.promise` is resolved even if the component is unmounted\n fetchOptimistic(defaultedOptions, observer, errorResetBoundary)\n ) : (\n // subscribe to the \"cache promise\" so that we can finalize the currentThenable once data comes in\n client.getQueryCache().get(defaultedOptions.queryHash)?.promise\n );\n promise?.catch(noop).finally(() => {\n observer.updateResult();\n });\n }\n return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\nexport {\n useBaseQuery\n};\n//# sourceMappingURL=useBaseQuery.js.map","\"use client\";\n\n// src/useQuery.ts\nimport { QueryObserver } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nfunction useQuery(options, queryClient) {\n return useBaseQuery(options, QueryObserver, queryClient);\n}\nexport {\n useQuery\n};\n//# sourceMappingURL=useQuery.js.map","\"use client\";\n\n// src/useSuspenseQuery.ts\nimport { QueryObserver, skipToken } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nimport { defaultThrowOnError } from \"./suspense.js\";\nfunction useSuspenseQuery(options, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\"skipToken is not allowed for useSuspenseQuery\");\n }\n }\n return useBaseQuery(\n {\n ...options,\n enabled: true,\n suspense: true,\n throwOnError: defaultThrowOnError,\n placeholderData: void 0\n },\n QueryObserver,\n queryClient\n );\n}\nexport {\n useSuspenseQuery\n};\n//# sourceMappingURL=useSuspenseQuery.js.map","// Mostly adapted from https://github.com/moxystudio/js-proper-url-join\nconst defaultUrlRegExp = /^(\\w+:\\/\\/[^/?]+)?([^?]*)(\\?.*)?$/;\n\nconst normalizeParts = (\n parts: (string | number | null | undefined | false)[],\n): string[] =>\n parts\n .filter(\n (part): part is string | number =>\n part !== null &&\n part !== undefined &&\n part !== false &&\n (typeof part === \"string\" || typeof part === \"number\"),\n )\n .map((part) => `${part}`)\n .filter((part) => part);\n\ninterface ParsedParts {\n prefix: string;\n pathname: string[];\n}\n\nconst parseParts = (parts: string[]): ParsedParts => {\n const partsStr = parts.join(\"/\");\n const [, prefix = \"\", pathname = \"\"] = partsStr.match(defaultUrlRegExp) ?? [];\n\n return {\n prefix,\n pathname: pathname.split(\"/\").filter((part) => part !== \"\"),\n };\n};\n\nconst buildUrl = (parsedParts: ParsedParts): string => {\n const { prefix, pathname } = parsedParts;\n let url = prefix;\n\n if (pathname.length > 0) {\n if (url) {\n url += \"/\";\n } else {\n url = \"/\";\n }\n url += pathname.join(\"/\");\n } else if (!url) {\n url = \"/\";\n }\n\n return url;\n};\n\nexport const joinUrl = (\n ...parts: Array<string | number | null | undefined | false>\n): string => {\n const normalizedParts = normalizeParts(parts);\n const parsedParts = parseParts(normalizedParts);\n return buildUrl(parsedParts);\n};\n","import { useQueryClient } from \"@tanstack/react-query\";\n\nexport const CACHE_KEYS = Object.freeze({\n API_IDENTITIES: [\"api-identities\"],\n});\n\nexport const useCache = () => {\n const queryClient = useQueryClient();\n\n return {\n invalidateCache: async (key: keyof typeof CACHE_KEYS) => {\n await queryClient.invalidateQueries({ queryKey: CACHE_KEYS[key] });\n },\n };\n};\n\n/**\n * If a query has this key in its queryKey, it will not put its result in the dehydrated state in the SSR.\n *\n * This is useful if the query should only be suspended and not included in the initial HTML response.\n * (e.g. too large in size, or not needed for the initial page load)\n */\nexport const NO_DEHYDRATE = \"no-dehydrate\";\n","/**\n * @deprecated Use `joinUrl` instead.\n */\nexport const joinPath = (\n ...parts: Array<string | null | undefined | boolean>\n) => {\n const cleanPath = parts\n .filter((part): part is string => Boolean(part))\n .map((part) => part.replace(/(^\\/+|\\/+$)/g, \"\")) // Strip leading and trailing slashes\n .join(\"/\")\n .replace(/(^\\/+|\\/+$)/g, \"\");\n\n return cleanPath ? `/${cleanPath}` : \"/\";\n};\n","import { useLocation } from \"react-router\";\nimport type {\n SidebarItem,\n SidebarItemCategory,\n} from \"../../../config/validators/SidebarSchema.js\";\nimport { joinPath } from \"../../util/joinPath.js\";\nimport { useCurrentNavigation } from \"../context/ZudokuContext.js\";\n\nexport type TraverseCallback<T> = (\n item: SidebarItem,\n parentCategories: SidebarItem[],\n) => T | void;\n\nexport const traverseSidebar = <T>(\n sidebar: SidebarItem[],\n callback: TraverseCallback<T>,\n): T | undefined => {\n for (const item of sidebar) {\n const result = traverseSidebarItem(item, callback);\n if (result !== undefined) return result;\n }\n};\n\nexport const traverseSidebarItem = <T>(\n item: SidebarItem,\n callback: TraverseCallback<T>,\n parentCategories: SidebarItem[] = [],\n): T | undefined => {\n const result = callback(item, parentCategories);\n if (result !== undefined) return result;\n\n if (item.type === \"category\") {\n for (const child of item.items) {\n const childResult = traverseSidebarItem(child, callback, [\n ...parentCategories,\n item,\n ]);\n if (childResult !== undefined) return childResult;\n }\n }\n};\n\nexport const useCurrentItem = () => {\n const location = useLocation();\n const nav = useCurrentNavigation();\n\n const currentSidebar = nav.sidebar;\n\n return traverseSidebar(currentSidebar, (item) => {\n if (item.type === \"doc\" && joinPath(item.id) === location.pathname) {\n return item;\n }\n });\n};\n\nexport const useIsCategoryOpen = (category: SidebarItemCategory) => {\n const location = useLocation();\n\n return traverseSidebarItem(category, (item) => {\n if (item.type === \"category\" && item.link) {\n const categoryLinkPath = joinPath(item.link.id);\n if (categoryLinkPath === location.pathname) {\n return true;\n }\n }\n\n if (item.type === \"doc\") {\n const docPath = joinPath(item.id);\n if (docPath === location.pathname) {\n return true;\n }\n }\n });\n};\n\nexport const usePrevNext = (): {\n prev?: { label: string; id: string };\n next?: { label: string; id: string };\n} => {\n const currentId = useLocation().pathname;\n const nav = useCurrentNavigation();\n const currentSidebar = nav.sidebar;\n\n let prev;\n let next;\n\n let foundCurrent = false;\n\n traverseSidebar(currentSidebar, (item) => {\n const itemId =\n item.type === \"doc\"\n ? joinPath(item.id)\n : item.type === \"category\" && item.link\n ? joinPath(item.link.id)\n : undefined;\n\n if (!itemId) return;\n\n if (foundCurrent) {\n next = { label: item.label, id: itemId };\n return true;\n }\n\n if (currentId === itemId) {\n foundCurrent = true;\n } else {\n prev = { label: item.label, id: itemId };\n }\n });\n\n return { prev, next };\n};\n","import { useQuery, useSuspenseQuery } from \"@tanstack/react-query\";\nimport { createContext, useContext } from \"react\";\nimport { matchPath, useLocation } from \"react-router\";\nimport { useAuth } from \"../../authentication/hook.js\";\nimport type { ZudokuContext } from \"../../core/ZudokuContext.js\";\nimport { joinUrl } from \"../../util/joinUrl.js\";\nimport { CACHE_KEYS } from \"../cache.js\";\nimport { traverseSidebar } from \"../navigation/utils.js\";\n\nexport const ZudokuReactContext = createContext<ZudokuContext | undefined>(\n undefined,\n);\n\nexport const useZudoku = () => {\n const context = useContext(ZudokuReactContext);\n\n if (!context) {\n throw new Error(\"useZudoku must be used within a ZudokuProvider.\");\n }\n\n return context;\n};\n\nexport const useApiIdentities = () => {\n const { getApiIdentities } = useZudoku();\n\n return useQuery({\n queryFn: getApiIdentities,\n queryKey: CACHE_KEYS.API_IDENTITIES,\n });\n};\n\nexport const useCurrentNavigation = () => {\n const { getPluginSidebar, sidebars, topNavigation, options } = useZudoku();\n const location = useLocation();\n const auth = useAuth();\n\n const isProtectedRoute = options.protectedRoutes?.some((route) =>\n matchPath(route, location.pathname),\n );\n\n let currentSidebarItem = Object.entries(sidebars).find(([, sidebar]) => {\n return traverseSidebar(sidebar, (item) => {\n const itemId =\n item.type === \"doc\"\n ? joinUrl(item.id)\n : item.type === \"category\" && item.link\n ? joinUrl(item.link.id)\n : undefined;\n\n if (itemId === location.pathname) {\n return item;\n }\n });\n });\n const currentTopNavItem =\n topNavigation.find((t) => t.id === currentSidebarItem?.[0]) ??\n topNavigation.find((item) => matchPath(item.id, location.pathname));\n\n if (\n currentTopNavItem &&\n !currentSidebarItem &&\n currentTopNavItem.id in sidebars\n ) {\n currentSidebarItem = [\"\", sidebars[currentTopNavItem.id]!];\n }\n\n const { data } = useSuspenseQuery({\n queryFn: () => getPluginSidebar(location.pathname),\n queryKey: [\"plugin-sidebar\", location.pathname],\n });\n\n const hideSidebar =\n auth.isAuthEnabled && !auth.isAuthenticated && isProtectedRoute;\n\n return {\n sidebar: hideSidebar\n ? []\n : [...(currentSidebarItem ? currentSidebarItem[1] : []), ...data],\n topNavItem: currentTopNavItem,\n };\n};\n","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\n\nexport { createStore };\n","import React from 'react';\nimport { createStore } from 'zustand/vanilla';\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n () => selector(api.getState()),\n () => selector(api.getInitialState())\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = (createState) => createState ? createImpl(createState) : createImpl;\n\nexport { create, useStore };\n","const reduxImpl = (reducer, initial) => (set, _get, api) => {\n api.dispatch = (action) => {\n set((state) => reducer(state, action), false, action);\n return action;\n };\n api.dispatchFromDevtools = true;\n return { dispatch: (...a) => api.dispatch(...a), ...initial };\n};\nconst redux = reduxImpl;\n\nconst trackedConnections = /* @__PURE__ */ new Map();\nconst getTrackedConnectionState = (name) => {\n const api = trackedConnections.get(name);\n if (!api) return {};\n return Object.fromEntries(\n Object.entries(api.stores).map(([key, api2]) => [key, api2.getState()])\n );\n};\nconst extractConnectionInformation = (store, extensionConnector, options) => {\n if (store === undefined) {\n return {\n type: \"untracked\",\n connection: extensionConnector.connect(options)\n };\n }\n const existingConnection = trackedConnections.get(options.name);\n if (existingConnection) {\n return { type: \"tracked\", store, ...existingConnection };\n }\n const newConnection = {\n connection: extensionConnector.connect(options),\n stores: {}\n };\n trackedConnections.set(options.name, newConnection);\n return { type: \"tracked\", store, ...newConnection };\n};\nconst devtoolsImpl = (fn, devtoolsOptions = {}) => (set, get, api) => {\n const { enabled, anonymousActionType, store, ...options } = devtoolsOptions;\n let extensionConnector;\n try {\n extensionConnector = (enabled != null ? enabled : (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") && window.__REDUX_DEVTOOLS_EXTENSION__;\n } catch (e) {\n }\n if (!extensionConnector) {\n return fn(set, get, api);\n }\n const { connection, ...connectionInformation } = extractConnectionInformation(store, extensionConnector, options);\n let isRecording = true;\n api.setState = (state, replace, nameOrAction) => {\n const r = set(state, replace);\n if (!isRecording) return r;\n const action = nameOrAction === undefined ? { type: anonymousActionType || \"anonymous\" } : typeof nameOrAction === \"string\" ? { type: nameOrAction } : nameOrAction;\n if (store === undefined) {\n connection == null ? undefined : connection.send(action, get());\n return r;\n }\n connection == null ? undefined : connection.send(\n {\n ...action,\n type: `${store}/${action.type}`\n },\n {\n ...getTrackedConnectionState(options.name),\n [store]: api.getState()\n }\n );\n return r;\n };\n const setStateFromDevtools = (...a) => {\n const originalIsRecording = isRecording;\n isRecording = false;\n set(...a);\n isRecording = originalIsRecording;\n };\n const initialState = fn(api.setState, get, api);\n if (connectionInformation.type === \"untracked\") {\n connection == null ? undefined : connection.init(initialState);\n } else {\n connectionInformation.stores[connectionInformation.store] = api;\n connection == null ? undefined : connection.init(\n Object.fromEntries(\n Object.entries(connectionInformation.stores).map(([key, store2]) => [\n key,\n key === connectionInformation.store ? initialState : store2.getState()\n ])\n )\n );\n }\n if (api.dispatchFromDevtools && typeof api.dispatch === \"function\") {\n let didWarnAboutReservedActionType = false;\n const originalDispatch = api.dispatch;\n api.dispatch = (...a) => {\n if ((import.meta.env ? import.meta.env.MODE : undefined) !== \"production\" && a[0].type === \"__setState\" && !didWarnAboutReservedActionType) {\n console.warn(\n '[zustand devtools middleware] \"__setState\" action type is reserved to set state from the devtools. Avoid using it.'\n );\n didWarnAboutReservedActionType = true;\n }\n originalDispatch(...a);\n };\n }\n connection.subscribe((message) => {\n var _a;\n switch (message.type) {\n case \"ACTION\":\n if (typeof message.payload !== \"string\") {\n console.error(\n \"[zustand devtools middleware] Unsupported action format\"\n );\n return;\n }\n return parseJsonThen(\n message.payload,\n (action) => {\n if (action.type === \"__setState\") {\n if (store === undefined) {\n setStateFromDevtools(action.state);\n return;\n }\n if (Object.keys(action.state).length !== 1) {\n console.error(\n `\n [zustand devtools middleware] Unsupported __setState action format.\n When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),\n and value of this only key should be a state object. Example: { \"type\": \"__setState\", \"state\": { \"abc123Store\": { \"foo\": \"bar\" } } }\n `\n );\n }\n const stateFromDevtools = action.state[store];\n if (stateFromDevtools === undefined || stateFromDevtools === null) {\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(stateFromDevtools)) {\n setStateFromDevtools(stateFromDevtools);\n }\n return;\n }\n if (!api.dispatchFromDevtools) return;\n if (typeof api.dispatch !== \"function\") return;\n api.dispatch(action);\n }\n );\n case \"DISPATCH\":\n switch (message.payload.type) {\n case \"RESET\":\n setStateFromDevtools(initialState);\n if (store === undefined) {\n return connection == null ? undefined : connection.init(api.getState());\n }\n return connection == null ? undefined : connection.init(getTrackedConnectionState(options.name));\n case \"COMMIT\":\n if (store === undefined) {\n connection == null ? undefined : connection.init(api.getState());\n return;\n }\n return connection == null ? undefined : connection.init(getTrackedConnectionState(options.name));\n case \"ROLLBACK\":\n return parseJsonThen(message.state, (state) => {\n if (store === undefined) {\n setStateFromDevtools(state);\n connection == null ? undefined : connection.init(api.getState());\n return;\n }\n setStateFromDevtools(state[store]);\n connection == null ? undefined : connection.init(getTrackedConnectionState(options.name));\n });\n case \"JUMP_TO_STATE\":\n case \"JUMP_TO_ACTION\":\n return parseJsonThen(message.state, (state) => {\n if (store === undefined) {\n setStateFromDevtools(state);\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(state[store])) {\n setStateFromDevtools(state[store]);\n }\n });\n case \"IMPORT_STATE\": {\n const { nextLiftedState } = message.payload;\n const lastComputedState = (_a = nextLiftedState.computedStates.slice(-1)[0]) == null ? undefined : _a.state;\n if (!lastComputedState) return;\n if (store === undefined) {\n setStateFromDevtools(lastComputedState);\n } else {\n setStateFromDevtools(lastComputedState[store]);\n }\n connection == null ? undefined : connection.send(\n null,\n // FIXME no-any\n nextLiftedState\n );\n return;\n }\n case \"PAUSE_RECORDING\":\n return isRecording = !isRecording;\n }\n return;\n }\n });\n return initialState;\n};\nconst devtools = devtoolsImpl;\nconst parseJsonThen = (stringified, f) => {\n let parsed;\n try {\n parsed = JSON.parse(stringified);\n } catch (e) {\n console.error(\n \"[zustand devtools middleware] Could not parse the received json\",\n e\n );\n }\n if (parsed !== undefined) f(parsed);\n};\n\nconst subscribeWithSelectorImpl = (fn) => (set, get, api) => {\n const origSubscribe = api.subscribe;\n api.subscribe = (selector, optListener, options) => {\n let listener = selector;\n if (optListener) {\n const equalityFn = (options == null ? undefined : options.equalityFn) || Object.is;\n let currentSlice = selector(api.getState());\n listener = (state) => {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n optListener(currentSlice = nextSlice, previousSlice);\n }\n };\n if (options == null ? undefined : options.fireImmediately) {\n optListener(currentSlice, currentSlice);\n }\n }\n return origSubscribe(listener);\n };\n const initialState = fn(set, get, api);\n return initialState;\n};\nconst subscribeWithSelector = subscribeWithSelectorImpl;\n\nconst combine = (initialState, create) => (...a) => Object.assign({}, initialState, create(...a));\n\nfunction createJSONStorage(getStorage, options) {\n let storage;\n try {\n storage = getStorage();\n } catch (e) {\n return;\n }\n const persistStorage = {\n getItem: (name) => {\n var _a;\n const parse = (str2) => {\n if (str2 === null) {\n return null;\n }\n return JSON.parse(str2, options == null ? undefined : options.reviver);\n };\n const str = (_a = storage.getItem(name)) != null ? _a : null;\n if (str instanceof Promise) {\n return str.then(parse);\n }\n return parse(str);\n },\n setItem: (name, newValue) => storage.setItem(\n name,\n JSON.stringify(newValue, options == null ? undefined : options.replacer)\n ),\n removeItem: (name) => storage.removeItem(name)\n };\n return persistStorage;\n}\nconst toThenable = (fn) => (input) => {\n try {\n const result = fn(input);\n if (result instanceof Promise) {\n return result;\n }\n return {\n then(onFulfilled) {\n return toThenable(onFulfilled)(result);\n },\n catch(_onRejected) {\n return this;\n }\n };\n } catch (e) {\n return {\n then(_onFulfilled) {\n return this;\n },\n catch(onRejected) {\n return toThenable(onRejected)(e);\n }\n };\n }\n};\nconst persistImpl = (config, baseOptions) => (set, get, api) => {\n let options = {\n storage: createJSONStorage(() => localStorage),\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => ({\n ...currentState,\n ...persistedState\n }),\n ...baseOptions\n };\n let hasHydrated = false;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage = options.storage;\n if (!storage) {\n return config(\n (...args) => {\n console.warn(\n `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n );\n set(...args);\n },\n get,\n api\n );\n }\n const setItem = () => {\n const state = options.partialize({ ...get() });\n return storage.setItem(options.name, {\n state,\n version: options.version\n });\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n void setItem();\n };\n const configResult = config(\n (...args) => {\n set(...args);\n void setItem();\n },\n get,\n api\n );\n api.getInitialState = () => configResult;\n let stateFromStorage;\n const hydrate = () => {\n var _a, _b;\n if (!storage) return;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => {\n var _a2;\n return cb((_a2 = get()) != null ? _a2 : configResult);\n });\n const postRehydrationCallback = ((_b = options.onRehydrateStorage) == null ? undefined : _b.call(options, (_a = get()) != null ? _a : configResult)) || undefined;\n return toThenable(storage.getItem.bind(storage))(options.name).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n const migration = options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n );\n if (migration instanceof Promise) {\n return migration.then((result) => [true, result]);\n }\n return [true, migration];\n }\n console.error(\n `State loaded from storage couldn't be migrated since no migrate function was provided`\n );\n } else {\n return [false, deserializedStorageValue.state];\n }\n }\n return [false, undefined];\n }).then((migrationResult) => {\n var _a2;\n const [migrated, migratedState] = migrationResult;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n if (migrated) {\n return setItem();\n }\n }).then(() => {\n postRehydrationCallback == null ? undefined : postRehydrationCallback(stateFromStorage, undefined);\n stateFromStorage = get();\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n postRehydrationCallback == null ? undefined : postRehydrationCallback(undefined, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = {\n ...options,\n ...newOptions\n };\n if (newOptions.storage) {\n storage = newOptions.storage;\n }\n },\n clearStorage: () => {\n storage == null ? undefined : storage.removeItem(options.name);\n },\n getOptions: () => options,\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n if (!options.skipHydration) {\n hydrate();\n }\n return stateFromStorage || configResult;\n};\nconst persist = persistImpl;\n\nexport { combine, createJSONStorage, devtools, persist, redux, subscribeWithSelector };\n","import { create, type Mutate, type StoreApi } from \"zustand\";\nimport { createJSONStorage, persist } from \"zustand/middleware\";\n\nexport interface AuthState<ProviderData = unknown> {\n isAuthenticated: boolean;\n isPending: boolean;\n profile: UserProfile | null;\n providerData: ProviderData | null;\n}\n\nexport class Authentication {\n async setLoggedIn(isLoggedIn: boolean) {}\n async setProfile() {}\n async setPersistentProviderData() {}\n}\n\nexport type StoreWithPersist<T> = Mutate<\n StoreApi<T>,\n [[\"zustand/persist\", unknown]]\n>;\n\nconst withStorageDOMEvents = <T>(store: StoreWithPersist<T>) => {\n const storageEventCallback = (e: StorageEvent) => {\n if (e.key === store.persist.getOptions().name && e.newValue) {\n void store.persist.rehydrate();\n }\n };\n\n window.addEventListener(\"storage\", storageEventCallback);\n\n return () => {\n window.removeEventListener(\"storage\", storageEventCallback);\n };\n};\n\nexport const useAuthState = create<AuthState>()(\n persist(\n (state) => ({\n isAuthenticated: false,\n isPending: true,\n profile: null,\n providerData: null,\n }),\n {\n merge: (persistedState, currentState) => {\n return {\n ...currentState,\n isPending: false,\n ...(typeof persistedState === \"object\" ? persistedState : {}),\n };\n },\n name: \"auth-state\",\n storage: createJSONStorage(() => localStorage),\n },\n ),\n);\n\nif (typeof window !== \"undefined\") {\n withStorageDOMEvents(useAuthState);\n}\n\nexport interface UserProfile {\n sub: string;\n email: string | undefined;\n emailVerified: boolean;\n name: string | undefined;\n pictureUrl: string | undefined;\n [key: string]: string | boolean | undefined;\n}\n","import { useZudoku } from \"../components/context/ZudokuContext.js\";\nimport { useAuthState } from \"./state.js\";\n\nexport const useAuth = () => {\n const { authentication } = useZudoku();\n const authState = useAuthState();\n const isAuthEnabled = typeof authentication !== \"undefined\";\n\n return {\n isAuthEnabled,\n ...authState,\n\n login: async () => {\n if (!isAuthEnabled) {\n throw new Error(\"Authentication is not enabled.\");\n }\n // TODO: Should handle errors/state\n await authentication.signIn({\n redirectTo: window.location.href,\n });\n },\n\n logout: async () => {\n if (!isAuthEnabled) {\n throw new Error(\"Authentication is not enabled.\");\n }\n // TODO: Should handle errors/state\n await authentication.signOut();\n\n // Redirect to home\n window.location.href = \"/\";\n },\n\n signup: async () => {\n if (!isAuthEnabled) {\n throw new Error(\"Authentication is not enabled.\");\n }\n await authentication.signUp({\n redirectTo: window.location.href,\n });\n },\n };\n};\n"],"names":["Subscribable","listener","isServer","noop","functionalUpdate","updater","input","isValidTimeout","value","timeUntilStale","updatedAt","staleTime","resolveStaleTime","query","resolveEnabled","enabled","matchQuery","filters","type","exact","fetchStatus","predicate","queryKey","stale","hashQueryKeyByOptions","partialMatchKey","isActive","matchMutation","mutation","status","mutationKey","hashKey","options","_","val","isPlainObject","result","key","a","b","replaceEqualDeep","array","isPlainArray","aItems","aSize","bItems","bSize","copy","equalItems","i","shallowEqualObjects","o","hasObjectPrototype","ctor","prot","sleep","timeout","resolve","replaceData","prevData","data","error","keepPreviousData","previousData","addToEnd","items","item","max","newItems","addToStart","skipToken","ensureQueryFn","fetchOptions","FocusManager","#focused","#cleanup","#setup","onFocus","setup","focused","isFocused","focusManager","OnlineManager","#online","onOnline","onlineListener","offlineListener","online","onlineManager","pendingThenable","reject","thenable","_resolve","_reject","finalize","reason","defaultRetryDelay","failureCount","canFetch","networkMode","CancelledError","isCancelledError","createRetryer","config","isRetryCancelled","isResolved","continueFn","cancel","cancelOptions","cancelRetry","continueRetry","canContinue","canStart","pause","continueResolve","run","promiseOrValue","initialPromise","retry","retryDelay","delay","shouldRetry","defaultScheduler","cb","createNotifyManager","queue","transactions","notifyFn","callback","batchNotifyFn","scheduleFn","schedule","flush","originalQueue","args","fn","notifyManager","Removable","#gcTimeout","newGcTime","Query","#initialState","#revertState","#cache","#client","#retryer","#defaultOptions","#abortSignalConsumed","getDefaultState","newData","#dispatch","state","setStateOptions","promise","observer","x","abortController","addSignalProperty","object","fetchFn","queryFn","queryFnContext","context","onError","action","reducer","fetchState","hasData","initialDataUpdatedAt","QueryObserver","client","#selectError","#currentThenable","#currentQuery","#currentQueryInitialState","#currentResult","#currentResultState","#currentResultOptions","#selectFn","#selectResult","#lastQueryWithDefinedData","#staleTimeoutId","#refetchIntervalId","#currentRefetchInterval","#trackedProps","shouldFetchOnMount","#executeFetch","#updateTimers","shouldFetchOn","#clearStaleTimeout","#clearRefetchInterval","prevOptions","prevQuery","#updateQuery","mounted","shouldFetchOptionally","#updateStaleTimeout","nextRefetchInterval","#computeRefetchInterval","#updateRefetchInterval","shouldAssignObserverCurrentProperties","onPropTracked","trackedResult","defaultedOptions","nextInterval","prevResult","prevResultState","prevResultOptions","queryInitialState","newState","isPlaceholderData","fetchOnMount","fetchOptionally","errorUpdatedAt","skipSelect","placeholderData","selectError","isFetching","isPending","isError","isLoading","nextResult","isStale","finalizeThenableIfPossible","recreateThenable","pending","prevThenable","shouldNotifyListeners","notifyOnChangeProps","notifyOnChangePropsValue","includedProps","typedKey","#notify","notifyOptions","shouldLoadOnMount","field","optimisticResult","QueryClientContext","React","useQueryClient","queryClient","QueryClientProvider","children","jsx","IsRestoringContext","useIsRestoring","createValue","isReset","QueryErrorResetBoundaryContext","useQueryErrorResetBoundary","shouldThrowError","throwError","params","ensurePreventErrorBoundaryRetry","errorResetBoundary","useClearResetErrorBoundary","getHasError","throwOnError","suspense","defaultThrowOnError","_error","ensureSuspenseTimers","originalStaleTime","willFetch","isRestoring","shouldSuspend","fetchOptimistic","useBaseQuery","Observer","isNewCacheEntry","shouldSubscribe","onStoreChange","unsubscribe","useQuery","useSuspenseQuery","defaultUrlRegExp","normalizeParts","parts","part","parseParts","partsStr","prefix","pathname","buildUrl","parsedParts","url","joinUrl","normalizedParts","CACHE_KEYS","useCache","joinPath","cleanPath","traverseSidebar","sidebar","traverseSidebarItem","parentCategories","child","childResult","useCurrentItem","location","useLocation","currentSidebar","useCurrentNavigation","useIsCategoryOpen","category","usePrevNext","currentId","prev","next","foundCurrent","itemId","ZudokuReactContext","createContext","useZudoku","useContext","useApiIdentities","getApiIdentities","getPluginSidebar","sidebars","topNavigation","auth","useAuth","isProtectedRoute","route","matchPath","currentSidebarItem","currentTopNavItem","t","createStoreImpl","createState","listeners","setState","partial","replace","nextState","previousState","getState","api","initialState","createStore","identity","arg","useStore","selector","slice","createImpl","useBoundStore","create","createJSONStorage","getStorage","storage","name","_a","parse","str2","str","newValue","toThenable","onFulfilled","_onRejected","e","_onFulfilled","onRejected","persistImpl","baseOptions","set","get","persistedState","currentState","hasHydrated","hydrationListeners","finishHydrationListeners","setItem","savedSetState","configResult","stateFromStorage","hydrate","_b","_a2","postRehydrationCallback","deserializedStorageValue","migration","migrationResult","migrated","migratedState","newOptions","persist","withStorageDOMEvents","store","storageEventCallback","useAuthState","authentication","authState","isAuthEnabled"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,24,25,26]}