zudoku 0.3.0-dev.8 → 0.3.0-dev.81

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 (589) hide show
  1. package/dist/app/App.d.ts +1 -2
  2. package/dist/app/App.js +1 -29
  3. package/dist/app/App.js.map +1 -1
  4. package/dist/app/demo.d.ts +2 -0
  5. package/dist/app/demo.js +32 -0
  6. package/dist/app/demo.js.map +1 -0
  7. package/dist/app/entry.client.d.ts +2 -0
  8. package/dist/app/entry.client.js +35 -0
  9. package/dist/app/entry.client.js.map +1 -0
  10. package/dist/app/entry.server.d.ts +14 -0
  11. package/dist/app/entry.server.js +105 -0
  12. package/dist/app/entry.server.js.map +1 -0
  13. package/dist/app/main.d.ts +6 -1
  14. package/dist/app/main.js +72 -12
  15. package/dist/app/main.js.map +1 -1
  16. package/dist/app/standalone.d.ts +2 -0
  17. package/dist/app/standalone.js +37 -0
  18. package/dist/app/standalone.js.map +1 -0
  19. package/dist/app/tailwind.d.ts +1 -1
  20. package/dist/app/tailwind.js +0 -4
  21. package/dist/app/tailwind.js.map +1 -1
  22. package/dist/cli/cmds/dev.js +5 -0
  23. package/dist/cli/cmds/dev.js.map +1 -1
  24. package/dist/cli/dev/handler.d.ts +1 -0
  25. package/dist/cli/dev/handler.js +3 -1
  26. package/dist/cli/dev/handler.js.map +1 -1
  27. package/dist/config/config.d.ts +19 -45
  28. package/dist/config/validators/validate.d.ts +911 -2
  29. package/dist/config/validators/validate.js +151 -1
  30. package/dist/config/validators/validate.js.map +1 -1
  31. package/dist/internal.d.ts +1 -0
  32. package/dist/internal.js +2 -0
  33. package/dist/internal.js.map +1 -0
  34. package/dist/lib/authentication/AuthenticationPlugin.d.ts +13 -0
  35. package/dist/lib/authentication/AuthenticationPlugin.js +31 -0
  36. package/dist/lib/authentication/AuthenticationPlugin.js.map +1 -0
  37. package/dist/lib/authentication/authentication.d.ts +10 -9
  38. package/dist/lib/authentication/components/SignIn.d.ts +1 -0
  39. package/dist/lib/authentication/components/SignIn.js +14 -0
  40. package/dist/lib/authentication/components/SignIn.js.map +1 -0
  41. package/dist/lib/authentication/components/SignOut.d.ts +1 -0
  42. package/dist/lib/authentication/components/SignOut.js +12 -0
  43. package/dist/lib/authentication/components/SignOut.js.map +1 -0
  44. package/dist/lib/authentication/components/SignUp.d.ts +1 -0
  45. package/dist/lib/authentication/components/SignUp.js +10 -0
  46. package/dist/lib/authentication/components/SignUp.js.map +1 -0
  47. package/dist/lib/authentication/hook.js +2 -2
  48. package/dist/lib/authentication/hook.js.map +1 -1
  49. package/dist/lib/authentication/providers/auth0.js +11 -6
  50. package/dist/lib/authentication/providers/auth0.js.map +1 -1
  51. package/dist/lib/authentication/providers/clerk.js +59 -30
  52. package/dist/lib/authentication/providers/clerk.js.map +1 -1
  53. package/dist/lib/authentication/providers/openid.d.ts +30 -7
  54. package/dist/lib/authentication/providers/openid.js +78 -29
  55. package/dist/lib/authentication/providers/openid.js.map +1 -1
  56. package/dist/lib/authentication/state.js +1 -1
  57. package/dist/lib/authentication/state.js.map +1 -1
  58. package/dist/lib/components/Bootstrap.d.ts +13 -0
  59. package/dist/lib/components/Bootstrap.js +12 -0
  60. package/dist/lib/components/Bootstrap.js.map +1 -0
  61. package/dist/lib/components/DevPortal.d.ts +5 -19
  62. package/dist/lib/components/DevPortal.js +57 -15
  63. package/dist/lib/components/DevPortal.js.map +1 -1
  64. package/dist/lib/components/DeveloperHint.d.ts +5 -0
  65. package/dist/lib/components/DeveloperHint.js +10 -0
  66. package/dist/lib/components/DeveloperHint.js.map +1 -0
  67. package/dist/lib/components/ErrorPage.d.ts +6 -0
  68. package/dist/lib/components/ErrorPage.js +9 -0
  69. package/dist/lib/components/ErrorPage.js.map +1 -0
  70. package/dist/lib/components/Header.js +21 -3
  71. package/dist/lib/components/Header.js.map +1 -1
  72. package/dist/lib/components/Heading.d.ts +9 -4
  73. package/dist/lib/components/Heading.js +17 -2
  74. package/dist/lib/components/Heading.js.map +1 -1
  75. package/dist/lib/components/InlineCode.d.ts +5 -0
  76. package/dist/lib/components/InlineCode.js +4 -0
  77. package/dist/lib/components/InlineCode.js.map +1 -0
  78. package/dist/lib/components/Layout.js +4 -2
  79. package/dist/lib/components/Layout.js.map +1 -1
  80. package/dist/lib/components/NotFoundPage.d.ts +1 -0
  81. package/dist/lib/components/NotFoundPage.js +12 -0
  82. package/dist/lib/components/NotFoundPage.js.map +1 -0
  83. package/dist/lib/components/SlotletProvider.d.ts +9 -0
  84. package/dist/lib/components/SlotletProvider.js +11 -0
  85. package/dist/lib/components/SlotletProvider.js.map +1 -0
  86. package/dist/lib/components/SyntaxHighlight.d.ts +3 -2
  87. package/dist/lib/components/SyntaxHighlight.js +24 -22
  88. package/dist/lib/components/SyntaxHighlight.js.map +1 -1
  89. package/dist/lib/components/TopNavigation.d.ts +1 -1
  90. package/dist/lib/components/TopNavigation.js +5 -1
  91. package/dist/lib/components/TopNavigation.js.map +1 -1
  92. package/dist/lib/components/context/DevPortalProvider.d.ts +1 -1
  93. package/dist/lib/components/context/DevPortalProvider.js +20 -3
  94. package/dist/lib/components/context/DevPortalProvider.js.map +1 -1
  95. package/dist/lib/components/index.d.ts +32 -3
  96. package/dist/lib/components/index.js +21 -3
  97. package/dist/lib/components/index.js.map +1 -1
  98. package/dist/lib/components/navigation/SideNavigation.js +3 -2
  99. package/dist/lib/components/navigation/SideNavigation.js.map +1 -1
  100. package/dist/lib/components/navigation/SideNavigationCategory.js +3 -3
  101. package/dist/lib/components/navigation/SideNavigationCategory.js.map +1 -1
  102. package/dist/lib/components/navigation/SideNavigationItem.d.ts +0 -4
  103. package/dist/lib/components/navigation/SideNavigationItem.js +4 -4
  104. package/dist/lib/components/navigation/SideNavigationItem.js.map +1 -1
  105. package/dist/lib/components/navigation/useNavigationCollapsibleState.d.ts +4 -1
  106. package/dist/lib/components/navigation/useNavigationCollapsibleState.js +17 -5
  107. package/dist/lib/components/navigation/useNavigationCollapsibleState.js.map +1 -1
  108. package/dist/lib/core/DevPortalContext.d.ts +52 -13
  109. package/dist/lib/core/DevPortalContext.js +10 -14
  110. package/dist/lib/core/DevPortalContext.js.map +1 -1
  111. package/dist/lib/core/plugins.d.ts +22 -5
  112. package/dist/lib/core/plugins.js +3 -0
  113. package/dist/lib/core/plugins.js.map +1 -1
  114. package/dist/lib/errors/ErrorAlert.d.ts +3 -0
  115. package/dist/lib/errors/ErrorAlert.js +8 -0
  116. package/dist/lib/errors/ErrorAlert.js.map +1 -0
  117. package/dist/lib/errors/RouterError.d.ts +1 -0
  118. package/dist/lib/errors/RouterError.js +12 -0
  119. package/dist/lib/errors/RouterError.js.map +1 -0
  120. package/dist/lib/errors/ServerError.d.ts +3 -0
  121. package/dist/lib/errors/ServerError.js +6 -0
  122. package/dist/lib/errors/ServerError.js.map +1 -0
  123. package/dist/lib/errors/TopLevelError.d.ts +2 -0
  124. package/dist/lib/errors/TopLevelError.js +7 -0
  125. package/dist/lib/errors/TopLevelError.js.map +1 -0
  126. package/dist/lib/oas/graphql/index.js +8 -5
  127. package/dist/lib/oas/graphql/index.js.map +1 -1
  128. package/dist/lib/oas/parser/index.d.ts +1 -1
  129. package/dist/lib/oas/parser/index.js +38 -12
  130. package/dist/lib/oas/parser/index.js.map +1 -1
  131. package/dist/lib/plugins/{api-key → api-keys}/CreateApiKey.js +2 -2
  132. package/dist/lib/plugins/api-keys/CreateApiKey.js.map +1 -0
  133. package/dist/lib/plugins/api-keys/ProtectedRoute.d.ts +1 -0
  134. package/dist/lib/plugins/api-keys/ProtectedRoute.js +14 -0
  135. package/dist/lib/plugins/api-keys/ProtectedRoute.js.map +1 -0
  136. package/dist/lib/plugins/api-keys/SettingsApiKeys.js +40 -0
  137. package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -0
  138. package/dist/lib/plugins/{api-key → api-keys}/index.d.ts +4 -5
  139. package/dist/lib/plugins/{api-key → api-keys}/index.js +12 -20
  140. package/dist/lib/plugins/api-keys/index.js.map +1 -0
  141. package/dist/lib/plugins/custom-page/index.d.ts +8 -0
  142. package/dist/lib/plugins/custom-page/index.js +12 -0
  143. package/dist/lib/plugins/custom-page/index.js.map +1 -0
  144. package/dist/lib/plugins/markdown/MdxPage.d.ts +3 -2
  145. package/dist/lib/plugins/markdown/MdxPage.js +7 -6
  146. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  147. package/dist/lib/plugins/markdown/Toc.js +17 -9
  148. package/dist/lib/plugins/markdown/Toc.js.map +1 -1
  149. package/dist/lib/plugins/markdown/generateRoutes.d.ts +3 -3
  150. package/dist/lib/plugins/markdown/generateRoutes.js +4 -4
  151. package/dist/lib/plugins/markdown/generateRoutes.js.map +1 -1
  152. package/dist/lib/plugins/markdown/index.d.ts +4 -1
  153. package/dist/lib/plugins/markdown/index.js +3 -7
  154. package/dist/lib/plugins/markdown/index.js.map +1 -1
  155. package/dist/lib/plugins/openapi/ColorizedParam.d.ts +2 -1
  156. package/dist/lib/plugins/openapi/ColorizedParam.js +14 -9
  157. package/dist/lib/plugins/openapi/ColorizedParam.js.map +1 -1
  158. package/dist/lib/plugins/openapi/OperationList.js +17 -5
  159. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  160. package/dist/lib/plugins/openapi/OperationListItem.js +10 -5
  161. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  162. package/dist/lib/plugins/openapi/ParameterList.js +1 -1
  163. package/dist/lib/plugins/openapi/ParameterList.js.map +1 -1
  164. package/dist/lib/plugins/openapi/ParameterListItem.js +1 -1
  165. package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
  166. package/dist/lib/plugins/openapi/{MakeRequest.d.ts → PlaygroundDialogWrapper.d.ts} +2 -1
  167. package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js +23 -0
  168. package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js.map +1 -0
  169. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js +3 -9
  170. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js.map +1 -1
  171. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +1 -1
  172. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
  173. package/dist/lib/plugins/openapi/Route.d.ts +6 -0
  174. package/dist/lib/plugins/openapi/Route.js +8 -0
  175. package/dist/lib/plugins/openapi/Route.js.map +1 -0
  176. package/dist/lib/plugins/openapi/SchemaListView.js +6 -27
  177. package/dist/lib/plugins/openapi/SchemaListView.js.map +1 -1
  178. package/dist/lib/plugins/openapi/SchemaListViewItem.d.ts +7 -0
  179. package/dist/lib/plugins/openapi/SchemaListViewItem.js +22 -0
  180. package/dist/lib/plugins/openapi/SchemaListViewItem.js.map +1 -0
  181. package/dist/lib/plugins/openapi/SchemaListViewItemGroup.d.ts +8 -0
  182. package/dist/lib/plugins/openapi/SchemaListViewItemGroup.js +17 -0
  183. package/dist/lib/plugins/openapi/SchemaListViewItemGroup.js.map +1 -0
  184. package/dist/lib/plugins/openapi/Sidecar.d.ts +4 -0
  185. package/dist/lib/plugins/openapi/Sidecar.js +43 -19
  186. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  187. package/dist/lib/plugins/openapi/SidecarBox.d.ts +1 -0
  188. package/dist/lib/plugins/openapi/SidecarBox.js +3 -2
  189. package/dist/lib/plugins/openapi/SidecarBox.js.map +1 -1
  190. package/dist/lib/plugins/openapi/{Select.d.ts → SimpleSelect.d.ts} +3 -2
  191. package/dist/lib/plugins/openapi/SimpleSelect.js +5 -0
  192. package/dist/lib/plugins/openapi/SimpleSelect.js.map +1 -0
  193. package/dist/lib/plugins/openapi/StaggeredRender.d.ts +8 -0
  194. package/dist/lib/plugins/openapi/StaggeredRender.js +18 -0
  195. package/dist/lib/plugins/openapi/StaggeredRender.js.map +1 -0
  196. package/dist/lib/plugins/openapi/client/createMemoryClient.d.ts +12 -0
  197. package/dist/lib/plugins/openapi/client/createMemoryClient.js +46 -0
  198. package/dist/lib/plugins/openapi/client/createMemoryClient.js.map +1 -0
  199. package/dist/lib/plugins/openapi/client/createServer.d.ts +4 -0
  200. package/dist/lib/plugins/openapi/client/createServer.js +30 -0
  201. package/dist/lib/plugins/openapi/client/createServer.js.map +1 -0
  202. package/dist/lib/plugins/openapi/client/createWorkerClient.d.ts +10 -0
  203. package/dist/lib/plugins/openapi/{worker/createSharedWorkerClient.js → client/createWorkerClient.js} +15 -2
  204. package/dist/lib/plugins/openapi/client/createWorkerClient.js.map +1 -0
  205. package/dist/lib/plugins/openapi/client/interfaces.d.ts +4 -0
  206. package/dist/lib/plugins/openapi/client/interfaces.js +2 -0
  207. package/dist/lib/plugins/openapi/client/interfaces.js.map +1 -0
  208. package/dist/lib/plugins/openapi/{worker → client}/worker.js +2 -2
  209. package/dist/lib/plugins/openapi/client/worker.js.map +1 -0
  210. package/dist/lib/plugins/openapi/context.d.ts +5 -0
  211. package/dist/lib/plugins/openapi/context.js +11 -0
  212. package/dist/lib/plugins/openapi/context.js.map +1 -0
  213. package/dist/lib/plugins/openapi/graphql/gql.d.ts +6 -6
  214. package/dist/lib/plugins/openapi/graphql/gql.js +1 -1
  215. package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
  216. package/dist/lib/plugins/openapi/graphql/graphql.d.ts +15 -15
  217. package/dist/lib/plugins/openapi/graphql/graphql.js +67 -67
  218. package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
  219. package/dist/lib/plugins/openapi/index.d.ts +4 -18
  220. package/dist/lib/plugins/openapi/index.js +62 -21
  221. package/dist/lib/plugins/openapi/index.js.map +1 -1
  222. package/dist/lib/plugins/openapi/interfaces.d.ts +15 -0
  223. package/dist/lib/plugins/openapi/interfaces.js +2 -0
  224. package/dist/lib/plugins/openapi/interfaces.js.map +1 -0
  225. package/dist/lib/plugins/openapi/playground/PathParams.d.ts +4 -5
  226. package/dist/lib/plugins/openapi/playground/PathParams.js +9 -13
  227. package/dist/lib/plugins/openapi/playground/PathParams.js.map +1 -1
  228. package/dist/lib/plugins/openapi/playground/Playground.d.ts +26 -14
  229. package/dist/lib/plugins/openapi/playground/Playground.js +53 -25
  230. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  231. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.d.ts +5 -0
  232. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +12 -0
  233. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js.map +1 -0
  234. package/dist/lib/plugins/openapi/playground/QueryParams.d.ts +4 -3
  235. package/dist/lib/plugins/openapi/playground/QueryParams.js +21 -12
  236. package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
  237. package/dist/lib/plugins/openapi/playground/ResponseTab.d.ts +4 -0
  238. package/dist/lib/plugins/openapi/playground/ResponseTab.js +40 -0
  239. package/dist/lib/plugins/openapi/playground/ResponseTab.js.map +1 -0
  240. package/dist/lib/plugins/openapi/playground/createUrl.d.ts +1 -1
  241. package/dist/lib/plugins/openapi/playground/createUrl.js +5 -9
  242. package/dist/lib/plugins/openapi/playground/createUrl.js.map +1 -1
  243. package/dist/lib/plugins/openapi/util/prose.d.ts +1 -0
  244. package/dist/lib/plugins/openapi/util/prose.js +4 -0
  245. package/dist/lib/plugins/openapi/util/prose.js.map +1 -0
  246. package/dist/lib/plugins/openapi-worker.d.ts +1 -1
  247. package/dist/lib/plugins/openapi-worker.js +1 -1
  248. package/dist/lib/plugins/openapi-worker.js.map +1 -1
  249. package/dist/lib/plugins/redirect/index.d.ts +0 -1
  250. package/dist/lib/plugins/redirect/index.js +3 -4
  251. package/dist/lib/plugins/redirect/index.js.map +1 -1
  252. package/dist/lib/ui/Button.d.ts +5 -1
  253. package/dist/lib/ui/Button.js +24 -1
  254. package/dist/lib/ui/Button.js.map +1 -1
  255. package/dist/lib/ui/Callout.js +2 -2
  256. package/dist/lib/ui/Callout.js.map +1 -1
  257. package/dist/lib/ui/Card.js +1 -1
  258. package/dist/lib/ui/Card.js.map +1 -1
  259. package/dist/lib/ui/DropdownMenu.d.ts +27 -0
  260. package/dist/lib/ui/DropdownMenu.js +36 -0
  261. package/dist/lib/ui/DropdownMenu.js.map +1 -0
  262. package/dist/lib/ui/Input.js.map +1 -0
  263. package/dist/lib/util/MdxComponents.d.ts +2 -2
  264. package/dist/lib/util/MdxComponents.js +7 -5
  265. package/dist/lib/util/MdxComponents.js.map +1 -1
  266. package/dist/lib/util/fetchTimeout.d.ts +1 -0
  267. package/dist/lib/util/fetchTimeout.js +14 -0
  268. package/dist/lib/util/fetchTimeout.js.map +1 -0
  269. package/dist/lib/util/groupBy.d.ts +1 -6
  270. package/dist/lib/util/groupBy.js +10 -8
  271. package/dist/lib/util/groupBy.js.map +1 -1
  272. package/dist/lib/util/invariant.d.ts +6 -0
  273. package/dist/lib/util/invariant.js +21 -0
  274. package/dist/lib/util/invariant.js.map +1 -0
  275. package/dist/lib/util/joinPath.js +2 -1
  276. package/dist/lib/util/joinPath.js.map +1 -1
  277. package/dist/lib/util/logInit.d.ts +1 -0
  278. package/dist/lib/util/logInit.js +9 -0
  279. package/dist/lib/util/logInit.js.map +1 -0
  280. package/dist/lib/util/objectEntries.d.ts +4 -0
  281. package/dist/lib/util/objectEntries.js +2 -0
  282. package/dist/lib/util/objectEntries.js.map +1 -0
  283. package/dist/lib/util/renderIf.d.ts +1 -0
  284. package/dist/lib/util/renderIf.js +2 -0
  285. package/dist/lib/util/renderIf.js.map +1 -0
  286. package/dist/lib/util/requestIdleCallbackPolyfill.d.ts +1 -0
  287. package/dist/lib/util/requestIdleCallbackPolyfill.js +7 -0
  288. package/dist/lib/util/requestIdleCallbackPolyfill.js.map +1 -0
  289. package/dist/vite/build.js +30 -7
  290. package/dist/vite/build.js.map +1 -1
  291. package/dist/vite/config.d.ts +21 -12
  292. package/dist/vite/config.js +107 -55
  293. package/dist/vite/config.js.map +1 -1
  294. package/dist/vite/config.test.js +6 -3
  295. package/dist/vite/config.test.js.map +1 -1
  296. package/dist/vite/dev-server.d.ts +2 -1
  297. package/dist/vite/dev-server.js +44 -15
  298. package/dist/vite/dev-server.js.map +1 -1
  299. package/dist/vite/html.js +18 -5
  300. package/dist/vite/html.js.map +1 -1
  301. package/dist/vite/plugin-api-keys.js +7 -8
  302. package/dist/vite/plugin-api-keys.js.map +1 -1
  303. package/dist/vite/plugin-api.js +9 -20
  304. package/dist/vite/plugin-api.js.map +1 -1
  305. package/dist/vite/plugin-auth.js +5 -6
  306. package/dist/vite/plugin-auth.js.map +1 -1
  307. package/dist/vite/plugin-component.js +5 -2
  308. package/dist/vite/plugin-component.js.map +1 -1
  309. package/dist/vite/plugin-config.d.ts +0 -2
  310. package/dist/vite/plugin-config.js +2 -13
  311. package/dist/vite/plugin-config.js.map +1 -1
  312. package/dist/vite/plugin-custom-css.d.ts +6 -0
  313. package/dist/vite/plugin-custom-css.js +54 -0
  314. package/dist/vite/plugin-custom-css.js.map +1 -0
  315. package/dist/vite/plugin-docs.js +15 -5
  316. package/dist/vite/plugin-docs.js.map +1 -1
  317. package/dist/vite/plugin-mdx.d.ts +3 -1
  318. package/dist/vite/plugin-mdx.js +5 -5
  319. package/dist/vite/plugin-mdx.js.map +1 -1
  320. package/dist/vite/plugin-metadata.js +1 -1
  321. package/dist/vite/plugin-metadata.js.map +1 -1
  322. package/dist/vite/plugin-redirect.js +10 -10
  323. package/dist/vite/plugin-redirect.js.map +1 -1
  324. package/dist/vite/plugin.js +3 -5
  325. package/dist/vite/plugin.js.map +1 -1
  326. package/dist/vite/prerender.d.ts +17 -0
  327. package/dist/vite/prerender.js +79 -0
  328. package/dist/vite/prerender.js.map +1 -0
  329. package/lib/AnchorLink-BZcpTwOs.js +705 -0
  330. package/lib/AnchorLink-BZcpTwOs.js.map +1 -0
  331. package/lib/AuthenticationPlugin-XS0DoAhE.js +55 -0
  332. package/lib/AuthenticationPlugin-XS0DoAhE.js.map +1 -0
  333. package/lib/CategoryHeading-DCmchnA1.js +10 -0
  334. package/lib/CategoryHeading-DCmchnA1.js.map +1 -0
  335. package/lib/Combination-C442XfGG.js +2789 -0
  336. package/lib/Combination-C442XfGG.js.map +1 -0
  337. package/lib/DevPortalProvider-BWeAysxF.js +1126 -0
  338. package/lib/DevPortalProvider-BWeAysxF.js.map +1 -0
  339. package/lib/DeveloperHint-DQVwIery.js +10 -0
  340. package/lib/DeveloperHint-DQVwIery.js.map +1 -0
  341. package/lib/Input-3IEt27jb.js +2239 -0
  342. package/lib/Input-3IEt27jb.js.map +1 -0
  343. package/lib/Markdown-QsZ-PHET.js +14124 -0
  344. package/lib/Markdown-QsZ-PHET.js.map +1 -0
  345. package/lib/MdxPage-CA1WmW14.js +201 -0
  346. package/lib/MdxPage-CA1WmW14.js.map +1 -0
  347. package/lib/OperationList-Bl6rGF6_.js +432 -0
  348. package/lib/OperationList-Bl6rGF6_.js.map +1 -0
  349. package/lib/Route-BEvxtkD4.js +13 -0
  350. package/lib/Route-BEvxtkD4.js.map +1 -0
  351. package/lib/SlotletProvider-B71hNEUL.js +82 -0
  352. package/lib/SlotletProvider-B71hNEUL.js.map +1 -0
  353. package/lib/Spinner-Coi7ORUV.js +244 -0
  354. package/lib/Spinner-Coi7ORUV.js.map +1 -0
  355. package/lib/_commonjsHelpers-BVfed4GL.js +29 -0
  356. package/lib/_commonjsHelpers-BVfed4GL.js.map +1 -0
  357. package/lib/assets/index-BPdJm2ty.js +1 -0
  358. package/lib/assets/index-BPdJm2ty.js.map +1 -0
  359. package/lib/assets/{worker-BCcpCNJ7.js → worker-CyHZIIfE.js} +10727 -10300
  360. package/lib/assets/worker-CyHZIIfE.js.map +1 -0
  361. package/lib/index-BH-Ub36F.js +124 -0
  362. package/lib/index-BH-Ub36F.js.map +1 -0
  363. package/lib/index-BlnQp2oR.js +5950 -0
  364. package/lib/index-BlnQp2oR.js.map +1 -0
  365. package/lib/index-Dt-pU7Vu.js +916 -0
  366. package/lib/index-Dt-pU7Vu.js.map +1 -0
  367. package/lib/index-pI9JkN46.js +4765 -0
  368. package/lib/index-pI9JkN46.js.map +1 -0
  369. package/lib/jsx-runtime-CJBdjYYx.js +1526 -0
  370. package/lib/jsx-runtime-CJBdjYYx.js.map +1 -0
  371. package/lib/prism-bash.min-DadFsM4Z.js +1 -0
  372. package/lib/prism-bash.min-DadFsM4Z.js.map +1 -0
  373. package/lib/prism-csharp.min-Yizuc34Y.js +1 -0
  374. package/lib/prism-csharp.min-Yizuc34Y.js.map +1 -0
  375. package/lib/prism-java.min-d5iT_mOd.js +1 -0
  376. package/lib/prism-java.min-d5iT_mOd.js.map +1 -0
  377. package/lib/prism-json.min-B1GJqK1k.js +1 -0
  378. package/lib/prism-json.min-B1GJqK1k.js.map +1 -0
  379. package/lib/prism-markup-templating-DZrrEs0A.js +1 -0
  380. package/lib/prism-markup-templating-DZrrEs0A.js.map +1 -0
  381. package/lib/prism-objectivec.min-BXSWqpJJ.js +1 -0
  382. package/lib/prism-objectivec.min-BXSWqpJJ.js.map +1 -0
  383. package/lib/prism-php.min-o7FpoMP_.js +1 -0
  384. package/lib/prism-php.min-o7FpoMP_.js.map +1 -0
  385. package/lib/prism-ruby.min-C7LwcKyz.js +1 -0
  386. package/lib/prism-ruby.min-C7LwcKyz.js.map +1 -0
  387. package/lib/router-BiRCp01d.js +2971 -0
  388. package/lib/router-BiRCp01d.js.map +1 -0
  389. package/lib/slugify-CiPVjteN.js +28 -0
  390. package/lib/slugify-CiPVjteN.js.map +1 -0
  391. package/lib/state-DsXXkBLH.js +288 -0
  392. package/lib/state-DsXXkBLH.js.map +1 -0
  393. package/lib/{urql-DMlBWUKL.js → urql-DrBfkb92.js} +2 -2
  394. package/lib/urql-DrBfkb92.js.map +1 -0
  395. package/lib/zudoku.auth-auth0.js +31 -20
  396. package/lib/zudoku.auth-auth0.js.map +1 -0
  397. package/lib/zudoku.auth-clerk.js +59 -29
  398. package/lib/zudoku.auth-clerk.js.map +1 -0
  399. package/lib/zudoku.auth-openid.js +740 -573
  400. package/lib/zudoku.auth-openid.js.map +1 -0
  401. package/lib/zudoku.components.js +1854 -535
  402. package/lib/zudoku.components.js.map +1 -0
  403. package/lib/zudoku.openapi-worker.js +15035 -146
  404. package/lib/zudoku.openapi-worker.js.map +1 -0
  405. package/lib/zudoku.plugin-api-keys.js +303 -0
  406. package/lib/zudoku.plugin-api-keys.js.map +1 -0
  407. package/lib/zudoku.plugin-custom-page.js +13 -0
  408. package/lib/zudoku.plugin-custom-page.js.map +1 -0
  409. package/lib/zudoku.plugin-markdown.js +48 -0
  410. package/lib/zudoku.plugin-markdown.js.map +1 -0
  411. package/lib/zudoku.plugin-openapi.js +12 -0
  412. package/lib/zudoku.plugin-openapi.js.map +1 -0
  413. package/lib/zudoku.plugin-redirect.js +11 -0
  414. package/lib/zudoku.plugin-redirect.js.map +1 -0
  415. package/package.json +60 -25
  416. package/src/app/App.tsx +0 -41
  417. package/src/app/demo-cdn.html +26 -0
  418. package/src/app/demo.html +18 -0
  419. package/src/app/demo.tsx +45 -0
  420. package/src/app/entry.client.tsx +47 -0
  421. package/src/app/entry.server.tsx +160 -0
  422. package/src/app/main.css +85 -5
  423. package/src/app/main.tsx +85 -15
  424. package/src/app/standalone.html +20 -0
  425. package/src/app/standalone.tsx +51 -0
  426. package/src/app/tailwind.ts +2 -6
  427. package/src/lib/authentication/AuthenticationPlugin.tsx +38 -0
  428. package/src/lib/authentication/authentication.ts +6 -12
  429. package/src/lib/authentication/components/SignIn.tsx +15 -0
  430. package/src/lib/authentication/components/SignOut.tsx +13 -0
  431. package/src/lib/authentication/components/SignUp.tsx +11 -0
  432. package/src/lib/authentication/hook.ts +2 -2
  433. package/src/lib/authentication/providers/auth0.tsx +16 -6
  434. package/src/lib/authentication/providers/clerk.tsx +63 -31
  435. package/src/lib/authentication/providers/openid.tsx +105 -34
  436. package/src/lib/authentication/state.ts +1 -1
  437. package/src/lib/components/Bootstrap.tsx +44 -0
  438. package/src/lib/components/DevPortal.tsx +88 -53
  439. package/src/lib/components/DeveloperHint.tsx +25 -0
  440. package/src/lib/components/ErrorPage.tsx +28 -0
  441. package/src/lib/components/Header.tsx +103 -30
  442. package/src/lib/components/Heading.tsx +26 -7
  443. package/src/lib/components/InlineCode.tsx +19 -0
  444. package/src/lib/components/Layout.tsx +12 -7
  445. package/src/lib/components/NotFoundPage.tsx +33 -0
  446. package/src/lib/components/SlotletProvider.tsx +25 -0
  447. package/src/lib/components/SyntaxHighlight.tsx +53 -44
  448. package/src/lib/components/TopNavigation.tsx +6 -1
  449. package/src/lib/components/context/DevPortalProvider.ts +24 -4
  450. package/src/lib/components/index.ts +25 -3
  451. package/src/lib/components/navigation/SideNavigation.tsx +3 -0
  452. package/src/lib/components/navigation/SideNavigationCategory.tsx +5 -9
  453. package/src/lib/components/navigation/SideNavigationItem.tsx +5 -9
  454. package/src/lib/components/navigation/useNavigationCollapsibleState.ts +21 -6
  455. package/src/lib/core/DevPortalContext.ts +64 -28
  456. package/src/lib/core/plugins.ts +37 -6
  457. package/src/lib/errors/ErrorAlert.tsx +21 -0
  458. package/src/lib/errors/RouterError.tsx +13 -0
  459. package/src/lib/errors/ServerError.tsx +5 -0
  460. package/src/lib/errors/TopLevelError.tsx +8 -0
  461. package/src/lib/oas/graphql/index.ts +11 -6
  462. package/src/lib/oas/parser/index.ts +41 -20
  463. package/src/lib/plugins/{api-key → api-keys}/CreateApiKey.tsx +2 -2
  464. package/src/lib/plugins/api-keys/ProtectedRoute.tsx +29 -0
  465. package/src/lib/plugins/{api-key → api-keys}/SettingsApiKeys.tsx +21 -9
  466. package/src/lib/plugins/{api-key → api-keys}/index.tsx +17 -41
  467. package/src/lib/plugins/custom-page/index.tsx +22 -0
  468. package/src/lib/plugins/markdown/MdxPage.tsx +51 -34
  469. package/src/lib/plugins/markdown/Toc.tsx +53 -40
  470. package/src/lib/plugins/markdown/generateRoutes.tsx +16 -6
  471. package/src/lib/plugins/markdown/index.tsx +10 -7
  472. package/src/lib/plugins/openapi/ColorizedParam.tsx +23 -16
  473. package/src/lib/plugins/openapi/OperationList.tsx +46 -10
  474. package/src/lib/plugins/openapi/OperationListItem.tsx +68 -42
  475. package/src/lib/plugins/openapi/ParameterList.tsx +1 -1
  476. package/src/lib/plugins/openapi/ParameterListItem.tsx +3 -4
  477. package/src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx +39 -0
  478. package/src/lib/plugins/openapi/RequestBodySidecarBox.tsx +3 -15
  479. package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +3 -2
  480. package/src/lib/plugins/openapi/Route.tsx +21 -0
  481. package/src/lib/plugins/openapi/SchemaListView.tsx +23 -192
  482. package/src/lib/plugins/openapi/SchemaListViewItem.tsx +116 -0
  483. package/src/lib/plugins/openapi/SchemaListViewItemGroup.tsx +63 -0
  484. package/src/lib/plugins/openapi/Sidecar.tsx +62 -28
  485. package/src/lib/plugins/openapi/SidecarBox.tsx +13 -2
  486. package/src/lib/plugins/openapi/{Select.tsx → SimpleSelect.tsx} +6 -3
  487. package/src/lib/plugins/openapi/StaggeredRender.tsx +31 -0
  488. package/src/lib/plugins/openapi/client/createMemoryClient.ts +56 -0
  489. package/src/lib/plugins/openapi/client/createServer.ts +33 -0
  490. package/src/lib/plugins/openapi/{worker/createSharedWorkerClient.ts → client/createWorkerClient.ts} +21 -2
  491. package/src/lib/plugins/openapi/client/interfaces.ts +5 -0
  492. package/src/lib/plugins/openapi/{worker → client}/worker.ts +3 -3
  493. package/src/lib/plugins/openapi/context.tsx +16 -0
  494. package/src/lib/plugins/openapi/graphql/gql.ts +8 -8
  495. package/src/lib/plugins/openapi/graphql/graphql.ts +80 -80
  496. package/src/lib/plugins/openapi/index.tsx +117 -53
  497. package/src/lib/plugins/openapi/interfaces.ts +9 -0
  498. package/src/lib/plugins/openapi/playground/PathParams.tsx +76 -50
  499. package/src/lib/plugins/openapi/playground/Playground.tsx +239 -229
  500. package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +40 -0
  501. package/src/lib/plugins/openapi/playground/QueryParams.tsx +107 -66
  502. package/src/lib/plugins/openapi/playground/ResponseTab.tsx +76 -0
  503. package/src/lib/plugins/openapi/playground/createUrl.ts +12 -15
  504. package/src/lib/plugins/openapi/util/prose.ts +7 -0
  505. package/src/lib/plugins/openapi-worker.ts +1 -1
  506. package/src/lib/plugins/redirect/index.tsx +3 -4
  507. package/src/lib/ui/Button.tsx +32 -2
  508. package/src/lib/ui/Callout.tsx +4 -4
  509. package/src/lib/ui/Card.tsx +1 -1
  510. package/src/lib/ui/DropdownMenu.tsx +199 -0
  511. package/src/lib/util/MdxComponents.tsx +7 -15
  512. package/src/lib/util/fetchTimeout.tsx +21 -0
  513. package/src/lib/util/groupBy.ts +7 -12
  514. package/src/lib/util/invariant.ts +26 -0
  515. package/src/lib/util/joinPath.tsx +2 -1
  516. package/src/lib/util/logInit.ts +9 -0
  517. package/src/lib/util/objectEntries.ts +5 -0
  518. package/src/lib/util/renderIf.ts +4 -0
  519. package/src/lib/util/requestIdleCallbackPolyfill.ts +6 -0
  520. package/dist/lib/authentication/Callback.d.ts +0 -3
  521. package/dist/lib/authentication/Callback.js +0 -34
  522. package/dist/lib/authentication/Callback.js.map +0 -1
  523. package/dist/lib/components/Input.js.map +0 -1
  524. package/dist/lib/components/Link.d.ts +0 -1
  525. package/dist/lib/components/Link.js +0 -2
  526. package/dist/lib/components/Link.js.map +0 -1
  527. package/dist/lib/components/Router.d.ts +0 -4
  528. package/dist/lib/components/Router.js +0 -20
  529. package/dist/lib/components/Router.js.map +0 -1
  530. package/dist/lib/core/helmet.d.ts +0 -4
  531. package/dist/lib/core/helmet.js +0 -5
  532. package/dist/lib/core/helmet.js.map +0 -1
  533. package/dist/lib/core/icons.d.ts +0 -1
  534. package/dist/lib/core/icons.js +0 -2
  535. package/dist/lib/core/icons.js.map +0 -1
  536. package/dist/lib/core/router.d.ts +0 -1
  537. package/dist/lib/core/router.js +0 -2
  538. package/dist/lib/core/router.js.map +0 -1
  539. package/dist/lib/plugins/api-key/CreateApiKey.js.map +0 -1
  540. package/dist/lib/plugins/api-key/SettingsApiKeys.js +0 -38
  541. package/dist/lib/plugins/api-key/SettingsApiKeys.js.map +0 -1
  542. package/dist/lib/plugins/api-key/index.js.map +0 -1
  543. package/dist/lib/plugins/index.d.ts +0 -4
  544. package/dist/lib/plugins/index.js +0 -5
  545. package/dist/lib/plugins/index.js.map +0 -1
  546. package/dist/lib/plugins/openapi/MakeRequest.js +0 -43
  547. package/dist/lib/plugins/openapi/MakeRequest.js.map +0 -1
  548. package/dist/lib/plugins/openapi/Select.js +0 -5
  549. package/dist/lib/plugins/openapi/Select.js.map +0 -1
  550. package/dist/lib/plugins/openapi/worker/createSharedWorkerClient.d.ts +0 -5
  551. package/dist/lib/plugins/openapi/worker/createSharedWorkerClient.js.map +0 -1
  552. package/dist/lib/plugins/openapi/worker/shared-worker.d.ts +0 -1
  553. package/dist/lib/plugins/openapi/worker/shared-worker.js +0 -6
  554. package/dist/lib/plugins/openapi/worker/shared-worker.js.map +0 -1
  555. package/dist/lib/plugins/openapi/worker/worker.js.map +0 -1
  556. package/dist/lib/ui/button-variants.d.ts +0 -4
  557. package/dist/lib/ui/button-variants.js +0 -24
  558. package/dist/lib/ui/button-variants.js.map +0 -1
  559. package/dist/vite/common.d.ts +0 -1
  560. package/dist/vite/common.js +0 -5
  561. package/dist/vite/common.js.map +0 -1
  562. package/dist/vite/plugin-html.d.ts +0 -3
  563. package/dist/vite/plugin-html.js +0 -47
  564. package/dist/vite/plugin-html.js.map +0 -1
  565. package/dist/vite/plugin-openapi-worker.d.ts +0 -4
  566. package/dist/vite/plugin-openapi-worker.js +0 -28
  567. package/dist/vite/plugin-openapi-worker.js.map +0 -1
  568. package/lib/Spinner-BewqqUU-.js +0 -8413
  569. package/lib/clerk-Wslx_mPo.js +0 -19685
  570. package/lib/index-PyGcnQFX.js +0 -3462
  571. package/lib/loglevel-CoH7VSwE.js +0 -152
  572. package/lib/state-2Hu1renZ.js +0 -313
  573. package/lib/zudoku.plugins.js +0 -19902
  574. package/src/lib/authentication/Callback.tsx +0 -60
  575. package/src/lib/components/Link.tsx +0 -1
  576. package/src/lib/components/Router.tsx +0 -28
  577. package/src/lib/core/helmet.ts +0 -5
  578. package/src/lib/core/icons.tsx +0 -1
  579. package/src/lib/core/router.tsx +0 -1
  580. package/src/lib/plugins/index.ts +0 -4
  581. package/src/lib/plugins/openapi/MakeRequest.tsx +0 -63
  582. package/src/lib/plugins/openapi/worker/shared-worker.ts +0 -5
  583. package/src/lib/ui/button-variants.ts +0 -31
  584. /package/dist/lib/plugins/{api-key → api-keys}/CreateApiKey.d.ts +0 -0
  585. /package/dist/lib/plugins/{api-key → api-keys}/SettingsApiKeys.d.ts +0 -0
  586. /package/dist/lib/plugins/openapi/{worker → client}/worker.d.ts +0 -0
  587. /package/dist/lib/{components → ui}/Input.d.ts +0 -0
  588. /package/dist/lib/{components → ui}/Input.js +0 -0
  589. /package/src/lib/{components → ui}/Input.tsx +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zudoku.components.js","sources":["../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/chevron-right.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/dot.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/external-link.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/moon-star.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/sun.js","../src/lib/errors/ServerError.tsx","../../../node_modules/.pnpm/react-router-dom@6.25.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-router-dom/server.js","../src/lib/components/Bootstrap.tsx","../../../node_modules/.pnpm/@tanstack+query-core@5.50.1/node_modules/@tanstack/query-core/build/modern/queryCache.js","../../../node_modules/.pnpm/@tanstack+query-core@5.50.1/node_modules/@tanstack/query-core/build/modern/mutationCache.js","../../../node_modules/.pnpm/@tanstack+query-core@5.50.1/node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","../../../node_modules/.pnpm/@tanstack+query-core@5.50.1/node_modules/@tanstack/query-core/build/modern/queryClient.js","../../../node_modules/.pnpm/react-error-boundary@4.0.13_react@18.3.1/node_modules/react-error-boundary/dist/react-error-boundary.esm.js","../src/lib/core/plugins.ts","../src/lib/core/DevPortalContext.ts","../src/lib/errors/TopLevelError.tsx","../src/lib/util/requestIdleCallbackPolyfill.ts","../../../node_modules/.pnpm/@radix-ui+react-menu@2.1.1_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@radix-ui/react-menu/dist/index.mjs","../../../node_modules/.pnpm/@radix-ui+react-dropdown-menu@2.1.1_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18._hfj62zklt5zw6dxs7nv7d5revq/node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs","../src/lib/ui/DropdownMenu.tsx","../src/lib/components/TopNavigation.tsx","../src/lib/components/Header.tsx","../src/lib/components/context/ComponentsContext.tsx","../src/lib/components/DevPortal.tsx","../src/lib/util/useScrollToAnchor.ts","../src/lib/util/useScrollToTop.ts","../src/lib/components/navigation/useNavigationCollapsibleState.ts","../src/lib/components/navigation/SideNavigationItem.tsx","../src/lib/components/navigation/SideNavigationCategory.tsx","../src/lib/components/navigation/SideNavigationWrapper.tsx","../src/lib/components/navigation/SideNavigation.tsx","../src/lib/components/Layout.tsx","../src/lib/components/index.ts"],"sourcesContent":["/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ChevronRight = createLucideIcon(\"ChevronRight\", [\n [\"path\", { d: \"m9 18 6-6-6-6\", key: \"mthhwq\" }]\n]);\n\nexport { ChevronRight as default };\n//# sourceMappingURL=chevron-right.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Dot = createLucideIcon(\"Dot\", [\n [\"circle\", { cx: \"12.1\", cy: \"12.1\", r: \"1\", key: \"18d7e5\" }]\n]);\n\nexport { Dot as default };\n//# sourceMappingURL=dot.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ExternalLink = createLucideIcon(\"ExternalLink\", [\n [\"path\", { d: \"M15 3h6v6\", key: \"1q9fwt\" }],\n [\"path\", { d: \"M10 14 21 3\", key: \"gplh6r\" }],\n [\"path\", { d: \"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\", key: \"a6xqqp\" }]\n]);\n\nexport { ExternalLink as default };\n//# sourceMappingURL=external-link.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst MoonStar = createLucideIcon(\"MoonStar\", [\n [\"path\", { d: \"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9\", key: \"4ay0iu\" }],\n [\"path\", { d: \"M20 3v4\", key: \"1olli1\" }],\n [\"path\", { d: \"M22 5h-4\", key: \"1gvqau\" }]\n]);\n\nexport { MoonStar as default };\n//# sourceMappingURL=moon-star.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Sun = createLucideIcon(\"Sun\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"4\", key: \"4exip2\" }],\n [\"path\", { d: \"M12 2v2\", key: \"tus03m\" }],\n [\"path\", { d: \"M12 20v2\", key: \"1lh1kg\" }],\n [\"path\", { d: \"m4.93 4.93 1.41 1.41\", key: \"149t6j\" }],\n [\"path\", { d: \"m17.66 17.66 1.41 1.41\", key: \"ptbguv\" }],\n [\"path\", { d: \"M2 12h2\", key: \"1t8f8n\" }],\n [\"path\", { d: \"M20 12h2\", key: \"1q8mjw\" }],\n [\"path\", { d: \"m6.34 17.66-1.41 1.41\", key: \"1m8zz5\" }],\n [\"path\", { d: \"m19.07 4.93-1.41 1.41\", key: \"1shlcs\" }]\n]);\n\nexport { Sun as default };\n//# sourceMappingURL=sun.js.map\n","import { ErrorAlert } from \"./ErrorAlert.js\";\n\nexport function ServerError({ error }: { error: unknown }) {\n return <ErrorAlert error={error} />;\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar React = require('react');\nvar router = require('@remix-run/router');\nvar reactRouter = require('react-router');\nvar reactRouterDom = require('react-router-dom');\n\nfunction _interopNamespace(e) {\n if (e && e.__esModule) return e;\n var n = Object.create(null);\n if (e) {\n Object.keys(e).forEach(function (k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () { return e[k]; }\n });\n }\n });\n }\n n[\"default\"] = e;\n return Object.freeze(n);\n}\n\nvar React__namespace = /*#__PURE__*/_interopNamespace(React);\n\n/**\n * A `<Router>` that may not navigate to any other location. This is useful\n * on the server where there is no stateful UI.\n */\nfunction StaticRouter({\n basename,\n children,\n location: locationProp = \"/\",\n future\n}) {\n if (typeof locationProp === \"string\") {\n locationProp = reactRouterDom.parsePath(locationProp);\n }\n let action = router.Action.Pop;\n let location = {\n pathname: locationProp.pathname || \"/\",\n search: locationProp.search || \"\",\n hash: locationProp.hash || \"\",\n state: locationProp.state != null ? locationProp.state : null,\n key: locationProp.key || \"default\"\n };\n let staticNavigator = getStatelessNavigator();\n return /*#__PURE__*/React__namespace.createElement(reactRouterDom.Router, {\n basename: basename,\n children: children,\n location: location,\n navigationType: action,\n navigator: staticNavigator,\n future: future,\n static: true\n });\n}\n/**\n * A Data Router that may not navigate to any other location. This is useful\n * on the server where there is no stateful UI.\n */\nfunction StaticRouterProvider({\n context,\n router: router$1,\n hydrate = true,\n nonce\n}) {\n !(router$1 && context) ? process.env.NODE_ENV !== \"production\" ? router.UNSAFE_invariant(false, \"You must provide `router` and `context` to <StaticRouterProvider>\") : router.UNSAFE_invariant(false) : void 0;\n let dataRouterContext = {\n router: router$1,\n navigator: getStatelessNavigator(),\n static: true,\n staticContext: context,\n basename: context.basename || \"/\"\n };\n let fetchersContext = new Map();\n let hydrateScript = \"\";\n if (hydrate !== false) {\n let data = {\n loaderData: context.loaderData,\n actionData: context.actionData,\n errors: serializeErrors(context.errors)\n };\n // Use JSON.parse here instead of embedding a raw JS object here to speed\n // up parsing on the client. Dual-stringify is needed to ensure all quotes\n // are properly escaped in the resulting string. See:\n // https://v8.dev/blog/cost-of-javascript-2019#json\n let json = htmlEscape(JSON.stringify(JSON.stringify(data)));\n hydrateScript = `window.__staticRouterHydrationData = JSON.parse(${json});`;\n }\n let {\n state\n } = dataRouterContext.router;\n return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(reactRouterDom.UNSAFE_DataRouterContext.Provider, {\n value: dataRouterContext\n }, /*#__PURE__*/React__namespace.createElement(reactRouterDom.UNSAFE_DataRouterStateContext.Provider, {\n value: state\n }, /*#__PURE__*/React__namespace.createElement(reactRouterDom.UNSAFE_FetchersContext.Provider, {\n value: fetchersContext\n }, /*#__PURE__*/React__namespace.createElement(reactRouterDom.UNSAFE_ViewTransitionContext.Provider, {\n value: {\n isTransitioning: false\n }\n }, /*#__PURE__*/React__namespace.createElement(reactRouterDom.Router, {\n basename: dataRouterContext.basename,\n location: state.location,\n navigationType: state.historyAction,\n navigator: dataRouterContext.navigator,\n static: dataRouterContext.static,\n future: {\n v7_relativeSplatPath: router$1.future.v7_relativeSplatPath\n }\n }, /*#__PURE__*/React__namespace.createElement(DataRoutes, {\n routes: router$1.routes,\n future: router$1.future,\n state: state\n })))))), hydrateScript ? /*#__PURE__*/React__namespace.createElement(\"script\", {\n suppressHydrationWarning: true,\n nonce: nonce,\n dangerouslySetInnerHTML: {\n __html: hydrateScript\n }\n }) : null);\n}\nfunction DataRoutes({\n routes,\n future,\n state\n}) {\n return reactRouter.UNSAFE_useRoutesImpl(routes, undefined, state, future);\n}\nfunction serializeErrors(errors) {\n if (!errors) return null;\n let entries = Object.entries(errors);\n let serialized = {};\n for (let [key, val] of entries) {\n // Hey you! If you change this, please change the corresponding logic in\n // deserializeErrors in react-router-dom/index.tsx :)\n if (router.isRouteErrorResponse(val)) {\n serialized[key] = {\n ...val,\n __type: \"RouteErrorResponse\"\n };\n } else if (val instanceof Error) {\n // Do not serialize stack traces from SSR for security reasons\n serialized[key] = {\n message: val.message,\n __type: \"Error\",\n // If this is a subclass (i.e., ReferenceError), send up the type so we\n // can re-create the same type during hydration.\n ...(val.name !== \"Error\" ? {\n __subType: val.name\n } : {})\n };\n } else {\n serialized[key] = val;\n }\n }\n return serialized;\n}\nfunction getStatelessNavigator() {\n return {\n createHref,\n encodeLocation,\n push(to) {\n throw new Error(`You cannot use navigator.push() on the server because it is a stateless ` + `environment. This error was probably triggered when you did a ` + `\\`navigate(${JSON.stringify(to)})\\` somewhere in your app.`);\n },\n replace(to) {\n throw new Error(`You cannot use navigator.replace() on the server because it is a stateless ` + `environment. This error was probably triggered when you did a ` + `\\`navigate(${JSON.stringify(to)}, { replace: true })\\` somewhere ` + `in your app.`);\n },\n go(delta) {\n throw new Error(`You cannot use navigator.go() on the server because it is a stateless ` + `environment. This error was probably triggered when you did a ` + `\\`navigate(${delta})\\` somewhere in your app.`);\n },\n back() {\n throw new Error(`You cannot use navigator.back() on the server because it is a stateless ` + `environment.`);\n },\n forward() {\n throw new Error(`You cannot use navigator.forward() on the server because it is a stateless ` + `environment.`);\n }\n };\n}\nfunction createStaticHandler(routes, opts) {\n return router.createStaticHandler(routes, {\n ...opts,\n mapRouteProperties: reactRouter.UNSAFE_mapRouteProperties\n });\n}\nfunction createStaticRouter(routes, context, opts = {}) {\n let manifest = {};\n let dataRoutes = router.UNSAFE_convertRoutesToDataRoutes(routes, reactRouter.UNSAFE_mapRouteProperties, undefined, manifest);\n // Because our context matches may be from a framework-agnostic set of\n // routes passed to createStaticHandler(), we update them here with our\n // newly created/enhanced data routes\n let matches = context.matches.map(match => {\n let route = manifest[match.route.id] || match.route;\n return {\n ...match,\n route\n };\n });\n let msg = method => `You cannot use router.${method}() on the server because it is a stateless environment`;\n return {\n get basename() {\n return context.basename;\n },\n get future() {\n return {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: opts.future?.v7_partialHydration === true,\n v7_prependBasename: false,\n v7_relativeSplatPath: opts.future?.v7_relativeSplatPath === true,\n v7_skipActionErrorRevalidation: false\n };\n },\n get state() {\n return {\n historyAction: router.Action.Pop,\n location: context.location,\n matches,\n loaderData: context.loaderData,\n actionData: context.actionData,\n errors: context.errors,\n initialized: true,\n navigation: router.IDLE_NAVIGATION,\n restoreScrollPosition: null,\n preventScrollReset: false,\n revalidation: \"idle\",\n fetchers: new Map(),\n blockers: new Map()\n };\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return undefined;\n },\n initialize() {\n throw msg(\"initialize\");\n },\n subscribe() {\n throw msg(\"subscribe\");\n },\n enableScrollRestoration() {\n throw msg(\"enableScrollRestoration\");\n },\n navigate() {\n throw msg(\"navigate\");\n },\n fetch() {\n throw msg(\"fetch\");\n },\n revalidate() {\n throw msg(\"revalidate\");\n },\n createHref,\n encodeLocation,\n getFetcher() {\n return router.IDLE_FETCHER;\n },\n deleteFetcher() {\n throw msg(\"deleteFetcher\");\n },\n dispose() {\n throw msg(\"dispose\");\n },\n getBlocker() {\n return router.IDLE_BLOCKER;\n },\n deleteBlocker() {\n throw msg(\"deleteBlocker\");\n },\n patchRoutes() {\n throw msg(\"patchRoutes\");\n },\n _internalFetchControllers: new Map(),\n _internalActiveDeferreds: new Map(),\n _internalSetRoutes() {\n throw msg(\"_internalSetRoutes\");\n }\n };\n}\nfunction createHref(to) {\n return typeof to === \"string\" ? to : reactRouterDom.createPath(to);\n}\nfunction encodeLocation(to) {\n let href = typeof to === \"string\" ? to : reactRouterDom.createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n let encoded = ABSOLUTE_URL_REGEX.test(href) ? new URL(href) : new URL(href, \"http://localhost\");\n return {\n pathname: encoded.pathname,\n search: encoded.search,\n hash: encoded.hash\n };\n}\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n// This utility is based on https://github.com/zertosh/htmlescape\n// License: https://github.com/zertosh/htmlescape/blob/0527ca7156a524d256101bb310a9f970f63078ad/LICENSE\nconst ESCAPE_LOOKUP = {\n \"&\": \"\\\\u0026\",\n \">\": \"\\\\u003e\",\n \"<\": \"\\\\u003c\",\n \"\\u2028\": \"\\\\u2028\",\n \"\\u2029\": \"\\\\u2029\"\n};\nconst ESCAPE_REGEX = /[&><\\u2028\\u2029]/g;\nfunction htmlEscape(str) {\n return str.replace(ESCAPE_REGEX, match => ESCAPE_LOOKUP[match]);\n}\n\nexports.StaticRouter = StaticRouter;\nexports.StaticRouterProvider = StaticRouterProvider;\nexports.createStaticHandler = createStaticHandler;\nexports.createStaticRouter = createStaticRouter;\n","import { type HelmetData, HelmetProvider } from \"@zudoku/react-helmet-async\";\nimport { StrictMode } from \"react\";\nimport { createBrowserRouter, RouterProvider } from \"react-router-dom\";\nimport {\n type StaticHandlerContext,\n StaticRouterProvider,\n} from \"react-router-dom/server.js\";\nimport { StaggeredRenderContext } from \"../plugins/openapi/StaggeredRender.js\";\n\nconst Bootstrap = ({\n router,\n hydrate = false,\n}: {\n hydrate?: boolean;\n router: ReturnType<typeof createBrowserRouter>;\n}) => {\n return (\n <StrictMode>\n <HelmetProvider>\n <StaggeredRenderContext.Provider value={{ stagger: !hydrate }}>\n <RouterProvider router={router} />\n </StaggeredRenderContext.Provider>\n </HelmetProvider>\n </StrictMode>\n );\n};\n\nconst BootstrapStatic = ({\n router,\n context,\n helmetContext,\n}: {\n helmetContext: HelmetData[\"context\"];\n context: StaticHandlerContext;\n router: ReturnType<typeof createBrowserRouter>;\n}) => (\n <StrictMode>\n <HelmetProvider context={helmetContext}>\n <StaticRouterProvider router={router} context={context} />\n </HelmetProvider>\n </StrictMode>\n);\n\nexport { Bootstrap, BootstrapStatic };\n","// src/queryCache.ts\nimport { hashQueryKeyByOptions, matchQuery } from \"./utils.js\";\nimport { Query } from \"./query.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar QueryCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#queries = /* @__PURE__ */ new Map();\n }\n #queries;\n build(client, options, state) {\n const queryKey = options.queryKey;\n const queryHash = options.queryHash ?? hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n if (!query) {\n query = new Query({\n cache: this,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n return query;\n }\n add(query) {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query);\n this.notify({\n type: \"added\",\n query\n });\n }\n }\n remove(query) {\n const queryInMap = this.#queries.get(query.queryHash);\n if (queryInMap) {\n query.destroy();\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash);\n }\n this.notify({ type: \"removed\", query });\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query);\n });\n });\n }\n get(queryHash) {\n return this.#queries.get(queryHash);\n }\n getAll() {\n return [...this.#queries.values()];\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (query) => matchQuery(defaultedFilters, query)\n );\n }\n findAll(filters = {}) {\n const queries = this.getAll();\n return Object.keys(filters).length > 0 ? queries.filter((query) => matchQuery(filters, query)) : queries;\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n onFocus() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus();\n });\n });\n }\n onOnline() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline();\n });\n });\n }\n};\nexport {\n QueryCache\n};\n//# sourceMappingURL=queryCache.js.map","// src/mutationCache.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Mutation } from \"./mutation.js\";\nimport { matchMutation, noop } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar MutationCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#mutations = /* @__PURE__ */ new Map();\n this.#mutationId = Date.now();\n }\n #mutations;\n #mutationId;\n build(client, options, state) {\n const mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state\n });\n this.add(mutation);\n return mutation;\n }\n add(mutation) {\n const scope = scopeFor(mutation);\n const mutations = this.#mutations.get(scope) ?? [];\n mutations.push(mutation);\n this.#mutations.set(scope, mutations);\n this.notify({ type: \"added\", mutation });\n }\n remove(mutation) {\n const scope = scopeFor(mutation);\n if (this.#mutations.has(scope)) {\n const mutations = this.#mutations.get(scope)?.filter((x) => x !== mutation);\n if (mutations) {\n if (mutations.length === 0) {\n this.#mutations.delete(scope);\n } else {\n this.#mutations.set(scope, mutations);\n }\n }\n }\n this.notify({ type: \"removed\", mutation });\n }\n canRun(mutation) {\n const firstPendingMutation = this.#mutations.get(scopeFor(mutation))?.find((m) => m.state.status === \"pending\");\n return !firstPendingMutation || firstPendingMutation === mutation;\n }\n runNext(mutation) {\n const foundMutation = this.#mutations.get(scopeFor(mutation))?.find((m) => m !== mutation && m.state.isPaused);\n return foundMutation?.continue() ?? Promise.resolve();\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((mutation) => {\n this.remove(mutation);\n });\n });\n }\n getAll() {\n return [...this.#mutations.values()].flat();\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (mutation) => matchMutation(defaultedFilters, mutation)\n );\n }\n findAll(filters = {}) {\n return this.getAll().filter((mutation) => matchMutation(filters, mutation));\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n resumePausedMutations() {\n const pausedMutations = this.getAll().filter((x) => x.state.isPaused);\n return notifyManager.batch(\n () => Promise.all(\n pausedMutations.map((mutation) => mutation.continue().catch(noop))\n )\n );\n }\n};\nfunction scopeFor(mutation) {\n return mutation.options.scope?.id ?? String(mutation.mutationId);\n}\nexport {\n MutationCache\n};\n//# sourceMappingURL=mutationCache.js.map","// src/infiniteQueryBehavior.ts\nimport { addToEnd, addToStart, ensureQueryFn } from \"./utils.js\";\nfunction infiniteQueryBehavior(pages) {\n return {\n onFetch: (context, query) => {\n const fetchFn = async () => {\n const options = context.options;\n const direction = context.fetchOptions?.meta?.fetchMore?.direction;\n const oldPages = context.state.data?.pages || [];\n const oldPageParams = context.state.data?.pageParams || [];\n const empty = { pages: [], pageParams: [] };\n let cancelled = false;\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n if (context.signal.aborted) {\n cancelled = true;\n } else {\n context.signal.addEventListener(\"abort\", () => {\n cancelled = true;\n });\n }\n return context.signal;\n }\n });\n };\n const queryFn = ensureQueryFn(context.options, context.fetchOptions);\n const fetchPage = async (data, param, previous) => {\n if (cancelled) {\n return Promise.reject();\n }\n if (param == null && data.pages.length) {\n return Promise.resolve(data);\n }\n const queryFnContext = {\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? \"backward\" : \"forward\",\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext);\n const page = await queryFn(\n queryFnContext\n );\n const { maxPages } = context.options;\n const addTo = previous ? addToStart : addToEnd;\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages)\n };\n };\n let result;\n if (direction && oldPages.length) {\n const previous = direction === \"backward\";\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams\n };\n const param = pageParamFn(options, oldData);\n result = await fetchPage(oldData, param, previous);\n } else {\n result = await fetchPage(\n empty,\n oldPageParams[0] ?? options.initialPageParam\n );\n const remainingPages = pages ?? oldPages.length;\n for (let i = 1; i < remainingPages; i++) {\n const param = getNextPageParam(options, result);\n result = await fetchPage(result, param);\n }\n }\n return result;\n };\n if (context.options.persister) {\n context.fetchFn = () => {\n return context.options.persister?.(\n fetchFn,\n {\n queryKey: context.queryKey,\n meta: context.options.meta,\n signal: context.signal\n },\n query\n );\n };\n } else {\n context.fetchFn = fetchFn;\n }\n }\n };\n}\nfunction getNextPageParam(options, { pages, pageParams }) {\n const lastIndex = pages.length - 1;\n return options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams\n );\n}\nfunction getPreviousPageParam(options, { pages, pageParams }) {\n return options.getPreviousPageParam?.(\n pages[0],\n pages,\n pageParams[0],\n pageParams\n );\n}\nfunction hasNextPage(options, data) {\n if (!data)\n return false;\n return getNextPageParam(options, data) != null;\n}\nfunction hasPreviousPage(options, data) {\n if (!data || !options.getPreviousPageParam)\n return false;\n return getPreviousPageParam(options, data) != null;\n}\nexport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n};\n//# sourceMappingURL=infiniteQueryBehavior.js.map","// src/queryClient.ts\nimport {\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n noop,\n partialMatchKey,\n resolveStaleTime,\n skipToken\n} from \"./utils.js\";\nimport { QueryCache } from \"./queryCache.js\";\nimport { MutationCache } from \"./mutationCache.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { infiniteQueryBehavior } from \"./infiniteQueryBehavior.js\";\nvar QueryClient = class {\n #queryCache;\n #mutationCache;\n #defaultOptions;\n #queryDefaults;\n #mutationDefaults;\n #mountCount;\n #unsubscribeFocus;\n #unsubscribeOnline;\n constructor(config = {}) {\n this.#queryCache = config.queryCache || new QueryCache();\n this.#mutationCache = config.mutationCache || new MutationCache();\n this.#defaultOptions = config.defaultOptions || {};\n this.#queryDefaults = /* @__PURE__ */ new Map();\n this.#mutationDefaults = /* @__PURE__ */ new Map();\n this.#mountCount = 0;\n }\n mount() {\n this.#mountCount++;\n if (this.#mountCount !== 1)\n return;\n this.#unsubscribeFocus = focusManager.subscribe(async (focused) => {\n if (focused) {\n await this.resumePausedMutations();\n this.#queryCache.onFocus();\n }\n });\n this.#unsubscribeOnline = onlineManager.subscribe(async (online) => {\n if (online) {\n await this.resumePausedMutations();\n this.#queryCache.onOnline();\n }\n });\n }\n unmount() {\n this.#mountCount--;\n if (this.#mountCount !== 0)\n return;\n this.#unsubscribeFocus?.();\n this.#unsubscribeFocus = void 0;\n this.#unsubscribeOnline?.();\n this.#unsubscribeOnline = void 0;\n }\n isFetching(filters) {\n return this.#queryCache.findAll({ ...filters, fetchStatus: \"fetching\" }).length;\n }\n isMutating(filters) {\n return this.#mutationCache.findAll({ ...filters, status: \"pending\" }).length;\n }\n getQueryData(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state.data;\n }\n ensureQueryData(options) {\n const cachedData = this.getQueryData(options.queryKey);\n if (cachedData === void 0)\n return this.fetchQuery(options);\n else {\n const defaultedOptions = this.defaultQueryOptions(options);\n const query = this.#queryCache.build(this, defaultedOptions);\n if (options.revalidateIfStale && query.isStaleByTime(resolveStaleTime(defaultedOptions.staleTime, query))) {\n void this.prefetchQuery(defaultedOptions);\n }\n return Promise.resolve(cachedData);\n }\n }\n getQueriesData(filters) {\n return this.#queryCache.findAll(filters).map(({ queryKey, state }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n setQueryData(queryKey, updater, options) {\n const defaultedOptions = this.defaultQueryOptions({ queryKey });\n const query = this.#queryCache.get(\n defaultedOptions.queryHash\n );\n const prevData = query?.state.data;\n const data = functionalUpdate(updater, prevData);\n if (data === void 0) {\n return void 0;\n }\n return this.#queryCache.build(this, defaultedOptions).setData(data, { ...options, manual: true });\n }\n setQueriesData(filters, updater, options) {\n return notifyManager.batch(\n () => this.#queryCache.findAll(filters).map(({ queryKey }) => [\n queryKey,\n this.setQueryData(queryKey, updater, options)\n ])\n );\n }\n getQueryState(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state;\n }\n removeQueries(filters) {\n const queryCache = this.#queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query);\n });\n });\n }\n resetQueries(filters, options) {\n const queryCache = this.#queryCache;\n const refetchFilters = {\n type: \"active\",\n ...filters\n };\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset();\n });\n return this.refetchQueries(refetchFilters, options);\n });\n }\n cancelQueries(filters = {}, cancelOptions = {}) {\n const defaultedCancelOptions = { revert: true, ...cancelOptions };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).map((query) => query.cancel(defaultedCancelOptions))\n );\n return Promise.all(promises).then(noop).catch(noop);\n }\n invalidateQueries(filters = {}, options = {}) {\n return notifyManager.batch(() => {\n this.#queryCache.findAll(filters).forEach((query) => {\n query.invalidate();\n });\n if (filters.refetchType === \"none\") {\n return Promise.resolve();\n }\n const refetchFilters = {\n ...filters,\n type: filters.refetchType ?? filters.type ?? \"active\"\n };\n return this.refetchQueries(refetchFilters, options);\n });\n }\n refetchQueries(filters = {}, options) {\n const fetchOptions = {\n ...options,\n cancelRefetch: options?.cancelRefetch ?? true\n };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).filter((query) => !query.isDisabled()).map((query) => {\n let promise = query.fetch(void 0, fetchOptions);\n if (!fetchOptions.throwOnError) {\n promise = promise.catch(noop);\n }\n return query.state.fetchStatus === \"paused\" ? Promise.resolve() : promise;\n })\n );\n return Promise.all(promises).then(noop);\n }\n fetchQuery(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n if (defaultedOptions.retry === void 0) {\n defaultedOptions.retry = false;\n }\n const query = this.#queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(\n resolveStaleTime(defaultedOptions.staleTime, query)\n ) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n prefetchQuery(options) {\n return this.fetchQuery(options).then(noop).catch(noop);\n }\n fetchInfiniteQuery(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.fetchQuery(options);\n }\n prefetchInfiniteQuery(options) {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop);\n }\n resumePausedMutations() {\n if (onlineManager.isOnline()) {\n return this.#mutationCache.resumePausedMutations();\n }\n return Promise.resolve();\n }\n getQueryCache() {\n return this.#queryCache;\n }\n getMutationCache() {\n return this.#mutationCache;\n }\n getDefaultOptions() {\n return this.#defaultOptions;\n }\n setDefaultOptions(options) {\n this.#defaultOptions = options;\n }\n setQueryDefaults(queryKey, options) {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options\n });\n }\n getQueryDefaults(queryKey) {\n const defaults = [...this.#queryDefaults.values()];\n let result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n result = { ...result, ...queryDefault.defaultOptions };\n }\n });\n return result;\n }\n setMutationDefaults(mutationKey, options) {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options\n });\n }\n getMutationDefaults(mutationKey) {\n const defaults = [...this.#mutationDefaults.values()];\n let result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n result = { ...result, ...queryDefault.defaultOptions };\n }\n });\n return result;\n }\n defaultQueryOptions(options) {\n if (options._defaulted) {\n return options;\n }\n const defaultedOptions = {\n ...this.#defaultOptions.queries,\n ...this.getQueryDefaults(options.queryKey),\n ...options,\n _defaulted: true\n };\n if (!defaultedOptions.queryHash) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions\n );\n }\n if (defaultedOptions.refetchOnReconnect === void 0) {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== \"always\";\n }\n if (defaultedOptions.throwOnError === void 0) {\n defaultedOptions.throwOnError = !!defaultedOptions.suspense;\n }\n if (!defaultedOptions.networkMode && defaultedOptions.persister) {\n defaultedOptions.networkMode = \"offlineFirst\";\n }\n if (defaultedOptions.enabled !== true && defaultedOptions.queryFn === skipToken) {\n defaultedOptions.enabled = false;\n }\n return defaultedOptions;\n }\n defaultMutationOptions(options) {\n if (options?._defaulted) {\n return options;\n }\n return {\n ...this.#defaultOptions.mutations,\n ...options?.mutationKey && this.getMutationDefaults(options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n clear() {\n this.#queryCache.clear();\n this.#mutationCache.clear();\n }\n};\nexport {\n QueryClient\n};\n//# sourceMappingURL=queryClient.js.map","'use client';\nimport { createContext, Component, createElement, isValidElement, useContext, useState, useMemo, forwardRef } from 'react';\n\nconst ErrorBoundaryContext = createContext(null);\n\nconst initialState = {\n didCatch: false,\n error: null\n};\nclass ErrorBoundary extends Component {\n constructor(props) {\n super(props);\n this.resetErrorBoundary = this.resetErrorBoundary.bind(this);\n this.state = initialState;\n }\n static getDerivedStateFromError(error) {\n return {\n didCatch: true,\n error\n };\n }\n resetErrorBoundary() {\n const {\n error\n } = this.state;\n if (error !== null) {\n var _this$props$onReset, _this$props;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n (_this$props$onReset = (_this$props = this.props).onReset) === null || _this$props$onReset === void 0 ? void 0 : _this$props$onReset.call(_this$props, {\n args,\n reason: \"imperative-api\"\n });\n this.setState(initialState);\n }\n }\n componentDidCatch(error, info) {\n var _this$props$onError, _this$props2;\n (_this$props$onError = (_this$props2 = this.props).onError) === null || _this$props$onError === void 0 ? void 0 : _this$props$onError.call(_this$props2, error, info);\n }\n componentDidUpdate(prevProps, prevState) {\n const {\n didCatch\n } = this.state;\n const {\n resetKeys\n } = this.props;\n\n // There's an edge case where if the thing that triggered the error happens to *also* be in the resetKeys array,\n // we'd end up resetting the error boundary immediately.\n // This would likely trigger a second error to be thrown.\n // So we make sure that we don't check the resetKeys on the first call of cDU after the error is set.\n\n if (didCatch && prevState.error !== null && hasArrayChanged(prevProps.resetKeys, resetKeys)) {\n var _this$props$onReset2, _this$props3;\n (_this$props$onReset2 = (_this$props3 = this.props).onReset) === null || _this$props$onReset2 === void 0 ? void 0 : _this$props$onReset2.call(_this$props3, {\n next: resetKeys,\n prev: prevProps.resetKeys,\n reason: \"keys\"\n });\n this.setState(initialState);\n }\n }\n render() {\n const {\n children,\n fallbackRender,\n FallbackComponent,\n fallback\n } = this.props;\n const {\n didCatch,\n error\n } = this.state;\n let childToRender = children;\n if (didCatch) {\n const props = {\n error,\n resetErrorBoundary: this.resetErrorBoundary\n };\n if (typeof fallbackRender === \"function\") {\n childToRender = fallbackRender(props);\n } else if (FallbackComponent) {\n childToRender = createElement(FallbackComponent, props);\n } else if (fallback === null || isValidElement(fallback)) {\n childToRender = fallback;\n } else {\n throw error;\n }\n }\n return createElement(ErrorBoundaryContext.Provider, {\n value: {\n didCatch,\n error,\n resetErrorBoundary: this.resetErrorBoundary\n }\n }, childToRender);\n }\n}\nfunction hasArrayChanged() {\n let a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n let b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return a.length !== b.length || a.some((item, index) => !Object.is(item, b[index]));\n}\n\nfunction assertErrorBoundaryContext(value) {\n if (value == null || typeof value.didCatch !== \"boolean\" || typeof value.resetErrorBoundary !== \"function\") {\n throw new Error(\"ErrorBoundaryContext not found\");\n }\n}\n\nfunction useErrorBoundary() {\n const context = useContext(ErrorBoundaryContext);\n assertErrorBoundaryContext(context);\n const [state, setState] = useState({\n error: null,\n hasError: false\n });\n const memoized = useMemo(() => ({\n resetBoundary: () => {\n context.resetErrorBoundary();\n setState({\n error: null,\n hasError: false\n });\n },\n showBoundary: error => setState({\n error,\n hasError: true\n })\n }), [context.resetErrorBoundary]);\n if (state.hasError) {\n throw state.error;\n }\n return memoized;\n}\n\nfunction withErrorBoundary(component, errorBoundaryProps) {\n const Wrapped = forwardRef((props, ref) => createElement(ErrorBoundary, errorBoundaryProps, createElement(component, {\n ...props,\n ref\n })));\n\n // Format for display in DevTools\n const name = component.displayName || component.name || \"Unknown\";\n Wrapped.displayName = \"withErrorBoundary(\".concat(name, \")\");\n return Wrapped;\n}\n\nexport { ErrorBoundary, ErrorBoundaryContext, useErrorBoundary, withErrorBoundary };\n","import { type ReactElement } from \"react\";\nimport { NavigateFunction, type RouteObject } from \"react-router-dom\";\nimport { MdxComponentsType } from \"../util/MdxComponents.js\";\nimport {\n DevPortalContext,\n type ApiIdentity,\n type NavigationCategory,\n} from \"./DevPortalContext.js\";\n\nexport type PluginNavigationCategory = {\n path: string;\n} & NavigationCategory;\n\nexport type DevPortalPlugin =\n | CommonPlugin\n | ProfileMenuPlugin\n | NavigationPlugin\n | ApiIdentityPlugin;\n\nexport interface NavigationPlugin {\n getRoutes: () => RouteObject[];\n getNavigation?: (path: string) => Promise<PluginNavigationCategory[]>;\n}\n\nexport interface ApiIdentityPlugin {\n getIdentities: (context: DevPortalContext) => Promise<ApiIdentity[]>;\n}\n\nexport interface ProfileMenuPlugin {\n getProfileMenuItems: (context: DevPortalContext) => NavigationItem[];\n}\n\nexport type NavigationItem = {\n label: string;\n path?: string;\n children?: NavigationItem[];\n};\n\nexport interface CommonPlugin {\n initialize?: (\n context: DevPortalContext,\n options: { navigate: NavigateFunction },\n ) => Promise<void | boolean> | void | boolean;\n getHead?: () => ReactElement | undefined;\n getMdxComponents?: () => MdxComponentsType;\n}\n\nexport const isProfileMenuPlugin = (\n obj: DevPortalPlugin,\n): obj is ProfileMenuPlugin =>\n \"getProfileMenuItems\" in obj && typeof obj.getProfileMenuItems === \"function\";\n\nexport const isNavigationPlugin = (\n obj: DevPortalPlugin,\n): obj is NavigationPlugin =>\n \"getRoutes\" in obj && typeof obj.getRoutes === \"function\";\n\nexport const needsInitialization = (\n obj: DevPortalPlugin,\n): obj is CommonPlugin =>\n \"initialize\" in obj && typeof obj.initialize === \"function\";\n\nexport const hasHead = (obj: DevPortalPlugin): obj is CommonPlugin =>\n \"getHead\" in obj && typeof obj.getHead === \"function\";\n\nexport const isMdxProviderPlugin = (\n obj: DevPortalPlugin,\n): obj is CommonPlugin =>\n \"getMdxComponents\" in obj && typeof obj.getMdxComponents === \"function\";\n\nexport const isApiIdentityPlugin = (\n obj: DevPortalPlugin,\n): obj is ApiIdentityPlugin =>\n \"getIdentities\" in obj && typeof obj.getIdentities === \"function\";\n","import { QueryClient } from \"@tanstack/react-query\";\nimport { type ReactNode } from \"react\";\nimport { NavigateFunction } from \"react-router-dom\";\nimport { type AuthenticationProvider } from \"../authentication/authentication.js\";\nimport type { ComponentsContextType } from \"../components/context/ComponentsContext.js\";\nimport { type DevPortalPath } from \"../components/DevPortal.js\";\nimport { Slotlets } from \"../components/SlotletProvider.js\";\nimport type { MdxComponentsType } from \"../util/MdxComponents.js\";\nimport {\n type DevPortalPlugin,\n isApiIdentityPlugin,\n isNavigationPlugin,\n type NavigationPlugin,\n needsInitialization,\n} from \"./plugins.js\";\n\nexport interface ApiIdentity {\n authorizeRequest: (request: Request) => Request;\n label: string;\n id: string;\n}\n\ntype BaseNavigationCategoryItem = {\n label: ReactNode;\n title?: string;\n muted?: boolean;\n icon?: ReactNode;\n};\n\nexport type PathNavigationCategoryItem = BaseNavigationCategoryItem & {\n path: string;\n children?: NavigationCategoryItem[];\n};\n\nexport type HrefNavigationCategoryItem = BaseNavigationCategoryItem & {\n href: string;\n};\n\nexport type NavigationCategoryItem =\n | PathNavigationCategoryItem\n | HrefNavigationCategoryItem;\n\nexport type NavigationCategory = {\n label: string;\n path?: string;\n expanded?: boolean;\n collapsible?: boolean;\n icon?: ReactNode;\n children: NavigationCategoryItem[];\n};\n\nexport type NavigationItem = {\n label: string;\n path: DevPortalPath;\n categories?: NavigationCategory[];\n};\n\nexport const queryClient = new QueryClient();\n\nexport type ApiKeyCache = \"api-keys\";\nexport type DevPortalCacheKey = ApiKeyCache | string;\n\ntype Metadata = Partial<{\n title: string;\n description: string;\n logo: string;\n favicon: string;\n generator: string;\n applicationName: string;\n referrer: string;\n keywords: string[];\n authors: string[];\n creator: string;\n publisher: string;\n}>;\n\ntype Page = Partial<{\n pageTitle?: string;\n logo?: {\n src: {\n light: string;\n dark: string;\n };\n width?: string;\n alt?: string;\n };\n}>;\n\nexport type ZudokuContextOptions = {\n metadata?: Metadata;\n page?: Page;\n authentication?: AuthenticationProvider;\n navigation: NavigationItem[];\n plugins?: DevPortalPlugin[];\n slotlets?: Slotlets;\n mdx?: {\n components?: MdxComponentsType;\n };\n overrides?: ComponentsContextType;\n};\n\nexport class DevPortalContext {\n public plugins: NonNullable<ZudokuContextOptions[\"plugins\"]> = [];\n public navigation: ZudokuContextOptions[\"navigation\"];\n public meta: ZudokuContextOptions[\"metadata\"];\n public page: ZudokuContextOptions[\"page\"];\n public authentication?: ZudokuContextOptions[\"authentication\"];\n private navigationPlugins: NavigationPlugin[];\n\n constructor(config: ZudokuContextOptions) {\n this.plugins = config.plugins ?? [];\n this.navigation = config.navigation;\n this.navigationPlugins = this.plugins.filter(isNavigationPlugin);\n this.authentication = config.authentication;\n this.meta = config.metadata;\n this.page = config.page;\n }\n\n initialize = async ({\n navigate,\n }: {\n navigate: NavigateFunction;\n }): Promise<void> => {\n await Promise.all(\n this.plugins\n .filter(needsInitialization)\n .map((plugin) => plugin.initialize?.(this, { navigate })),\n );\n };\n\n invalidateCache = async (key: DevPortalCacheKey[]) => {\n await queryClient.invalidateQueries({ queryKey: key });\n };\n\n getApiIdentities = async () => {\n const keys = await Promise.all(\n this.plugins\n .filter(isApiIdentityPlugin)\n .map((plugin) => plugin.getIdentities(this)),\n );\n\n return keys.flat();\n };\n\n getNavigation = async (path: string) => {\n const navigations = await Promise.all(\n this.navigationPlugins.map(async (plugin) =>\n plugin.getNavigation?.(path),\n ),\n );\n\n return navigations.flatMap((nav) => nav ?? []);\n };\n\n signRequest = async (request: Request) => {\n if (!this.authentication) {\n throw new Error(\"No authentication provider configured\");\n }\n\n const accessToken = await this.authentication.getAccessToken();\n\n request.headers.set(\"Authorization\", `Bearer ${accessToken}`);\n\n return request;\n };\n}\n","import { FallbackProps } from \"react-error-boundary\";\nimport { ErrorAlert } from \"./ErrorAlert.js\";\n\nexport function TopLevelError({ error, resetErrorBoundary }: FallbackProps) {\n // Call resetErrorBoundary() to reset the error boundary and retry the render.\n\n return <ErrorAlert error={error} />;\n}\n","const root = globalThis;\n\nif (!root.requestIdleCallback || !root.cancelIdleCallback) {\n root.requestIdleCallback = (cb: IdleRequestCallback) => setTimeout(cb, 1);\n root.cancelIdleCallback = clearTimeout;\n}\n","\"use client\";\n\n// packages/react/menu/src/Menu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs, composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { jsx } from \"react/jsx-runtime\";\nvar SELECTION_KEYS = [\"Enter\", \" \"];\nvar FIRST_KEYS = [\"ArrowDown\", \"PageUp\", \"Home\"];\nvar LAST_KEYS = [\"ArrowUp\", \"PageDown\", \"End\"];\nvar FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS];\nvar SUB_OPEN_KEYS = {\n ltr: [...SELECTION_KEYS, \"ArrowRight\"],\n rtl: [...SELECTION_KEYS, \"ArrowLeft\"]\n};\nvar SUB_CLOSE_KEYS = {\n ltr: [\"ArrowLeft\"],\n rtl: [\"ArrowRight\"]\n};\nvar MENU_NAME = \"Menu\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(MENU_NAME);\nvar [createMenuContext, createMenuScope] = createContextScope(MENU_NAME, [\n createCollectionScope,\n createPopperScope,\n createRovingFocusGroupScope\n]);\nvar usePopperScope = createPopperScope();\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [MenuProvider, useMenuContext] = createMenuContext(MENU_NAME);\nvar [MenuRootProvider, useMenuRootContext] = createMenuContext(MENU_NAME);\nvar Menu = (props) => {\n const { __scopeMenu, open = false, children, dir, onOpenChange, modal = true } = props;\n const popperScope = usePopperScope(__scopeMenu);\n const [content, setContent] = React.useState(null);\n const isUsingKeyboardRef = React.useRef(false);\n const handleOpenChange = useCallbackRef(onOpenChange);\n const direction = useDirection(dir);\n React.useEffect(() => {\n const handleKeyDown = () => {\n isUsingKeyboardRef.current = true;\n document.addEventListener(\"pointerdown\", handlePointer, { capture: true, once: true });\n document.addEventListener(\"pointermove\", handlePointer, { capture: true, once: true });\n };\n const handlePointer = () => isUsingKeyboardRef.current = false;\n document.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n document.removeEventListener(\"pointerdown\", handlePointer, { capture: true });\n document.removeEventListener(\"pointermove\", handlePointer, { capture: true });\n };\n }, []);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n MenuProvider,\n {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ jsx(\n MenuRootProvider,\n {\n scope: __scopeMenu,\n onClose: React.useCallback(() => handleOpenChange(false), [handleOpenChange]),\n isUsingKeyboardRef,\n dir: direction,\n modal,\n children\n }\n )\n }\n ) });\n};\nMenu.displayName = MENU_NAME;\nvar ANCHOR_NAME = \"MenuAnchor\";\nvar MenuAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...anchorProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });\n }\n);\nMenuAnchor.displayName = ANCHOR_NAME;\nvar PORTAL_NAME = \"MenuPortal\";\nvar [PortalProvider, usePortalContext] = createMenuContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar MenuPortal = (props) => {\n const { __scopeMenu, forceMount, children, container } = props;\n const context = useMenuContext(PORTAL_NAME, __scopeMenu);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeMenu, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"MenuContent\";\nvar [MenuContentProvider, useMenuContentContext] = createMenuContext(CONTENT_NAME);\nvar MenuContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: rootContext.modal ? /* @__PURE__ */ jsx(MenuRootContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(MenuRootContentNonModal, { ...contentProps, ref: forwardedRef }) }) }) });\n }\n);\nvar MenuRootContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const content = ref.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: context.open,\n disableOutsideScroll: true,\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n ),\n onDismiss: () => context.onOpenChange(false)\n }\n );\n }\n);\nvar MenuRootContentNonModal = React.forwardRef((props, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n onDismiss: () => context.onOpenChange(false)\n }\n );\n});\nvar MenuContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeMenu,\n loop = false,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEntryFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n disableOutsideScroll,\n ...contentProps\n } = props;\n const context = useMenuContext(CONTENT_NAME, __scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const getItems = useCollection(__scopeMenu);\n const [currentItemId, setCurrentItemId] = React.useState(null);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef, context.onContentChange);\n const timerRef = React.useRef(0);\n const searchRef = React.useRef(\"\");\n const pointerGraceTimerRef = React.useRef(0);\n const pointerGraceIntentRef = React.useRef(null);\n const pointerDirRef = React.useRef(\"right\");\n const lastPointerXRef = React.useRef(0);\n const ScrollLockWrapper = disableOutsideScroll ? RemoveScroll : React.Fragment;\n const scrollLockWrapperProps = disableOutsideScroll ? { as: Slot, allowPinchZoom: true } : void 0;\n const handleTypeaheadSearch = (key) => {\n const search = searchRef.current + key;\n const items = getItems().filter((item) => !item.disabled);\n const currentItem = document.activeElement;\n const currentMatch = items.find((item) => item.ref.current === currentItem)?.textValue;\n const values = items.map((item) => item.textValue);\n const nextMatch = getNextMatch(values, search, currentMatch);\n const newItem = items.find((item) => item.textValue === nextMatch)?.ref.current;\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n if (newItem) {\n setTimeout(() => newItem.focus());\n }\n };\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n useFocusGuards();\n const isPointerMovingToSubmenu = React.useCallback((event) => {\n const isMovingTowards = pointerDirRef.current === pointerGraceIntentRef.current?.side;\n return isMovingTowards && isPointerInGraceArea(event, pointerGraceIntentRef.current?.area);\n }, []);\n return /* @__PURE__ */ jsx(\n MenuContentProvider,\n {\n scope: __scopeMenu,\n searchRef,\n onItemEnter: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n ),\n onItemLeave: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) return;\n contentRef.current?.focus();\n setCurrentItemId(null);\n },\n [isPointerMovingToSubmenu]\n ),\n onTriggerLeave: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n ),\n pointerGraceTimerRef,\n onPointerGraceIntentChange: React.useCallback((intent) => {\n pointerGraceIntentRef.current = intent;\n }, []),\n children: /* @__PURE__ */ jsx(ScrollLockWrapper, { ...scrollLockWrapperProps, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: trapFocus,\n onMountAutoFocus: composeEventHandlers(onOpenAutoFocus, (event) => {\n event.preventDefault();\n contentRef.current?.focus({ preventScroll: true });\n }),\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n children: /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n dir: rootContext.dir,\n orientation: \"vertical\",\n loop,\n currentTabStopId: currentItemId,\n onCurrentTabStopIdChange: setCurrentItemId,\n onEntryFocus: composeEventHandlers(onEntryFocus, (event) => {\n if (!rootContext.isUsingKeyboardRef.current) event.preventDefault();\n }),\n preventScrollOnEntryFocus: true,\n children: /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n role: \"menu\",\n \"aria-orientation\": \"vertical\",\n \"data-state\": getOpenState(context.open),\n \"data-radix-menu-content\": \"\",\n dir: rootContext.dir,\n ...popperScope,\n ...contentProps,\n ref: composedRefs,\n style: { outline: \"none\", ...contentProps.style },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const target = event.target;\n const isKeyDownInside = target.closest(\"[data-radix-menu-content]\") === event.currentTarget;\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n const isCharacterKey = event.key.length === 1;\n if (isKeyDownInside) {\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && isCharacterKey) handleTypeaheadSearch(event.key);\n }\n const content = contentRef.current;\n if (event.target !== content) return;\n if (!FIRST_LAST_KEYS.includes(event.key)) return;\n event.preventDefault();\n const items = getItems().filter((item) => !item.disabled);\n const candidateNodes = items.map((item) => item.ref.current);\n if (LAST_KEYS.includes(event.key)) candidateNodes.reverse();\n focusFirst(candidateNodes);\n }),\n onBlur: composeEventHandlers(props.onBlur, (event) => {\n if (!event.currentTarget.contains(event.target)) {\n window.clearTimeout(timerRef.current);\n searchRef.current = \"\";\n }\n }),\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n const target = event.target;\n const pointerXHasChanged = lastPointerXRef.current !== event.clientX;\n if (event.currentTarget.contains(target) && pointerXHasChanged) {\n const newDir = event.clientX > lastPointerXRef.current ? \"right\" : \"left\";\n pointerDirRef.current = newDir;\n lastPointerXRef.current = event.clientX;\n }\n })\n )\n }\n )\n }\n )\n }\n )\n }\n ) })\n }\n );\n }\n);\nMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"MenuGroup\";\nvar MenuGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...groupProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", ...groupProps, ref: forwardedRef });\n }\n);\nMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"MenuLabel\";\nvar MenuLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...labelProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { ...labelProps, ref: forwardedRef });\n }\n);\nMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"MenuItem\";\nvar ITEM_SELECT = \"menu.itemSelect\";\nvar MenuItem = React.forwardRef(\n (props, forwardedRef) => {\n const { disabled = false, onSelect, ...itemProps } = props;\n const ref = React.useRef(null);\n const rootContext = useMenuRootContext(ITEM_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(ITEM_NAME, props.__scopeMenu);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const isPointerDownRef = React.useRef(false);\n const handleSelect = () => {\n const menuItem = ref.current;\n if (!disabled && menuItem) {\n const itemSelectEvent = new CustomEvent(ITEM_SELECT, { bubbles: true, cancelable: true });\n menuItem.addEventListener(ITEM_SELECT, (event) => onSelect?.(event), { once: true });\n dispatchDiscreteCustomEvent(menuItem, itemSelectEvent);\n if (itemSelectEvent.defaultPrevented) {\n isPointerDownRef.current = false;\n } else {\n rootContext.onClose();\n }\n }\n };\n return /* @__PURE__ */ jsx(\n MenuItemImpl,\n {\n ...itemProps,\n ref: composedRefs,\n disabled,\n onClick: composeEventHandlers(props.onClick, handleSelect),\n onPointerDown: (event) => {\n props.onPointerDown?.(event);\n isPointerDownRef.current = true;\n },\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n if (!isPointerDownRef.current) event.currentTarget?.click();\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (disabled || isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) {\n event.currentTarget.click();\n event.preventDefault();\n }\n })\n }\n );\n }\n);\nMenuItem.displayName = ITEM_NAME;\nvar MenuItemImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, disabled = false, textValue, ...itemProps } = props;\n const contentContext = useMenuContentContext(ITEM_NAME, __scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [isFocused, setIsFocused] = React.useState(false);\n const [textContent, setTextContent] = React.useState(\"\");\n React.useEffect(() => {\n const menuItem = ref.current;\n if (menuItem) {\n setTextContent((menuItem.textContent ?? \"\").trim());\n }\n }, [itemProps.children]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeMenu,\n disabled,\n textValue: textValue ?? textContent,\n children: /* @__PURE__ */ jsx(RovingFocusGroup.Item, { asChild: true, ...rovingFocusGroupScope, focusable: !disabled, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"menuitem\",\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...itemProps,\n ref: composedRefs,\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n if (disabled) {\n contentContext.onItemLeave(event);\n } else {\n contentContext.onItemEnter(event);\n if (!event.defaultPrevented) {\n const item = event.currentTarget;\n item.focus({ preventScroll: true });\n }\n }\n })\n ),\n onPointerLeave: composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => contentContext.onItemLeave(event))\n ),\n onFocus: composeEventHandlers(props.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(props.onBlur, () => setIsFocused(false))\n }\n ) })\n }\n );\n }\n);\nvar CHECKBOX_ITEM_NAME = \"MenuCheckboxItem\";\nvar MenuCheckboxItem = React.forwardRef(\n (props, forwardedRef) => {\n const { checked = false, onCheckedChange, ...checkboxItemProps } = props;\n return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(\n MenuItem,\n {\n role: \"menuitemcheckbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n ...checkboxItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(\n checkboxItemProps.onSelect,\n () => onCheckedChange?.(isIndeterminate(checked) ? true : !checked),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"MenuRadioGroup\";\nvar [RadioGroupProvider, useRadioGroupContext] = createMenuContext(\n RADIO_GROUP_NAME,\n { value: void 0, onValueChange: () => {\n } }\n);\nvar MenuRadioGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { value, onValueChange, ...groupProps } = props;\n const handleValueChange = useCallbackRef(onValueChange);\n return /* @__PURE__ */ jsx(RadioGroupProvider, { scope: props.__scopeMenu, value, onValueChange: handleValueChange, children: /* @__PURE__ */ jsx(MenuGroup, { ...groupProps, ref: forwardedRef }) });\n }\n);\nMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"MenuRadioItem\";\nvar MenuRadioItem = React.forwardRef(\n (props, forwardedRef) => {\n const { value, ...radioItemProps } = props;\n const context = useRadioGroupContext(RADIO_ITEM_NAME, props.__scopeMenu);\n const checked = value === context.value;\n return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(\n MenuItem,\n {\n role: \"menuitemradio\",\n \"aria-checked\": checked,\n ...radioItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(\n radioItemProps.onSelect,\n () => context.onValueChange?.(value),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar ITEM_INDICATOR_NAME = \"MenuItemIndicator\";\nvar [ItemIndicatorProvider, useItemIndicatorContext] = createMenuContext(\n ITEM_INDICATOR_NAME,\n { checked: false }\n);\nvar MenuItemIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, forceMount, ...itemIndicatorProps } = props;\n const indicatorContext = useItemIndicatorContext(ITEM_INDICATOR_NAME, __scopeMenu);\n return /* @__PURE__ */ jsx(\n Presence,\n {\n present: forceMount || isIndeterminate(indicatorContext.checked) || indicatorContext.checked === true,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...itemIndicatorProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(indicatorContext.checked)\n }\n )\n }\n );\n }\n);\nMenuItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SEPARATOR_NAME = \"MenuSeparator\";\nvar MenuSeparator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"separator\",\n \"aria-orientation\": \"horizontal\",\n ...separatorProps,\n ref: forwardedRef\n }\n );\n }\n);\nMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"MenuArrow\";\nvar MenuArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nMenuArrow.displayName = ARROW_NAME;\nvar SUB_NAME = \"MenuSub\";\nvar [MenuSubProvider, useMenuSubContext] = createMenuContext(SUB_NAME);\nvar MenuSub = (props) => {\n const { __scopeMenu, children, open = false, onOpenChange } = props;\n const parentMenuContext = useMenuContext(SUB_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const [trigger, setTrigger] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const handleOpenChange = useCallbackRef(onOpenChange);\n React.useEffect(() => {\n if (parentMenuContext.open === false) handleOpenChange(false);\n return () => handleOpenChange(false);\n }, [parentMenuContext.open, handleOpenChange]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n MenuProvider,\n {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ jsx(\n MenuSubProvider,\n {\n scope: __scopeMenu,\n contentId: useId(),\n triggerId: useId(),\n trigger,\n onTriggerChange: setTrigger,\n children\n }\n )\n }\n ) });\n};\nMenuSub.displayName = SUB_NAME;\nvar SUB_TRIGGER_NAME = \"MenuSubTrigger\";\nvar MenuSubTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const context = useMenuContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const openTimerRef = React.useRef(null);\n const { pointerGraceTimerRef, onPointerGraceIntentChange } = contentContext;\n const scope = { __scopeMenu: props.__scopeMenu };\n const clearOpenTimer = React.useCallback(() => {\n if (openTimerRef.current) window.clearTimeout(openTimerRef.current);\n openTimerRef.current = null;\n }, []);\n React.useEffect(() => clearOpenTimer, [clearOpenTimer]);\n React.useEffect(() => {\n const pointerGraceTimer = pointerGraceTimerRef.current;\n return () => {\n window.clearTimeout(pointerGraceTimer);\n onPointerGraceIntentChange(null);\n };\n }, [pointerGraceTimerRef, onPointerGraceIntentChange]);\n return /* @__PURE__ */ jsx(MenuAnchor, { asChild: true, ...scope, children: /* @__PURE__ */ jsx(\n MenuItemImpl,\n {\n id: subContext.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": subContext.contentId,\n \"data-state\": getOpenState(context.open),\n ...props,\n ref: composeRefs(forwardedRef, subContext.onTriggerChange),\n onClick: (event) => {\n props.onClick?.(event);\n if (props.disabled || event.defaultPrevented) return;\n event.currentTarget.focus();\n if (!context.open) context.onOpenChange(true);\n },\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n contentContext.onItemEnter(event);\n if (event.defaultPrevented) return;\n if (!props.disabled && !context.open && !openTimerRef.current) {\n contentContext.onPointerGraceIntentChange(null);\n openTimerRef.current = window.setTimeout(() => {\n context.onOpenChange(true);\n clearOpenTimer();\n }, 100);\n }\n })\n ),\n onPointerLeave: composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => {\n clearOpenTimer();\n const contentRect = context.content?.getBoundingClientRect();\n if (contentRect) {\n const side = context.content?.dataset.side;\n const rightSide = side === \"right\";\n const bleed = rightSide ? -5 : 5;\n const contentNearEdge = contentRect[rightSide ? \"left\" : \"right\"];\n const contentFarEdge = contentRect[rightSide ? \"right\" : \"left\"];\n contentContext.onPointerGraceIntentChange({\n area: [\n // Apply a bleed on clientX to ensure that our exit point is\n // consistently within polygon bounds\n { x: event.clientX + bleed, y: event.clientY },\n { x: contentNearEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.bottom },\n { x: contentNearEdge, y: contentRect.bottom }\n ],\n side\n });\n window.clearTimeout(pointerGraceTimerRef.current);\n pointerGraceTimerRef.current = window.setTimeout(\n () => contentContext.onPointerGraceIntentChange(null),\n 300\n );\n } else {\n contentContext.onTriggerLeave(event);\n if (event.defaultPrevented) return;\n contentContext.onPointerGraceIntentChange(null);\n }\n })\n ),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (props.disabled || isTypingAhead && event.key === \" \") return;\n if (SUB_OPEN_KEYS[rootContext.dir].includes(event.key)) {\n context.onOpenChange(true);\n context.content?.focus();\n event.preventDefault();\n }\n })\n }\n ) });\n }\n);\nMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"MenuSubContent\";\nvar MenuSubContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...subContentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n id: subContext.contentId,\n \"aria-labelledby\": subContext.triggerId,\n ...subContentProps,\n ref: composedRefs,\n align: \"start\",\n side: rootContext.dir === \"rtl\" ? \"left\" : \"right\",\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n trapFocus: false,\n onOpenAutoFocus: (event) => {\n if (rootContext.isUsingKeyboardRef.current) ref.current?.focus();\n event.preventDefault();\n },\n onCloseAutoFocus: (event) => event.preventDefault(),\n onFocusOutside: composeEventHandlers(props.onFocusOutside, (event) => {\n if (event.target !== subContext.trigger) context.onOpenChange(false);\n }),\n onEscapeKeyDown: composeEventHandlers(props.onEscapeKeyDown, (event) => {\n rootContext.onClose();\n event.preventDefault();\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isKeyDownInside = event.currentTarget.contains(event.target);\n const isCloseKey = SUB_CLOSE_KEYS[rootContext.dir].includes(event.key);\n if (isKeyDownInside && isCloseKey) {\n context.onOpenChange(false);\n subContext.trigger?.focus();\n event.preventDefault();\n }\n })\n }\n ) }) }) });\n }\n);\nMenuSubContent.displayName = SUB_CONTENT_NAME;\nfunction getOpenState(open) {\n return open ? \"open\" : \"closed\";\n}\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getCheckedState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nfunction focusFirst(candidates) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nfunction getNextMatch(values, search, currentMatch) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;\n let wrappedValues = wrapArray(values, Math.max(currentMatchIndex, 0));\n const excludeCurrentMatch = normalizedSearch.length === 1;\n if (excludeCurrentMatch) wrappedValues = wrappedValues.filter((v) => v !== currentMatch);\n const nextMatch = wrappedValues.find(\n (value) => value.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextMatch !== currentMatch ? nextMatch : void 0;\n}\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const xi = polygon[i].x;\n const yi = polygon[i].y;\n const xj = polygon[j].x;\n const yj = polygon[j].y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction isPointerInGraceArea(event, area) {\n if (!area) return false;\n const cursorPos = { x: event.clientX, y: event.clientY };\n return isPointInPolygon(cursorPos, area);\n}\nfunction whenMouse(handler) {\n return (event) => event.pointerType === \"mouse\" ? handler(event) : void 0;\n}\nvar Root3 = Menu;\nvar Anchor2 = MenuAnchor;\nvar Portal = MenuPortal;\nvar Content2 = MenuContent;\nvar Group = MenuGroup;\nvar Label = MenuLabel;\nvar Item2 = MenuItem;\nvar CheckboxItem = MenuCheckboxItem;\nvar RadioGroup = MenuRadioGroup;\nvar RadioItem = MenuRadioItem;\nvar ItemIndicator = MenuItemIndicator;\nvar Separator = MenuSeparator;\nvar Arrow2 = MenuArrow;\nvar Sub = MenuSub;\nvar SubTrigger = MenuSubTrigger;\nvar SubContent = MenuSubContent;\nexport {\n Anchor2 as Anchor,\n Arrow2 as Arrow,\n CheckboxItem,\n Content2 as Content,\n Group,\n Item2 as Item,\n ItemIndicator,\n Label,\n Menu,\n MenuAnchor,\n MenuArrow,\n MenuCheckboxItem,\n MenuContent,\n MenuGroup,\n MenuItem,\n MenuItemIndicator,\n MenuLabel,\n MenuPortal,\n MenuRadioGroup,\n MenuRadioItem,\n MenuSeparator,\n MenuSub,\n MenuSubContent,\n MenuSubTrigger,\n Portal,\n RadioGroup,\n RadioItem,\n Root3 as Root,\n Separator,\n Sub,\n SubContent,\n SubTrigger,\n createMenuScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/dropdown-menu/src/DropdownMenu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as MenuPrimitive from \"@radix-ui/react-menu\";\nimport { createMenuScope } from \"@radix-ui/react-menu\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DROPDOWN_MENU_NAME = \"DropdownMenu\";\nvar [createDropdownMenuContext, createDropdownMenuScope] = createContextScope(\n DROPDOWN_MENU_NAME,\n [createMenuScope]\n);\nvar useMenuScope = createMenuScope();\nvar [DropdownMenuProvider, useDropdownMenuContext] = createDropdownMenuContext(DROPDOWN_MENU_NAME);\nvar DropdownMenu = (props) => {\n const {\n __scopeDropdownMenu,\n children,\n dir,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true\n } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const triggerRef = React.useRef(null);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ jsx(\n DropdownMenuProvider,\n {\n scope: __scopeDropdownMenu,\n triggerId: useId(),\n triggerRef,\n contentId: useId(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n modal,\n children: /* @__PURE__ */ jsx(MenuPrimitive.Root, { ...menuScope, open, onOpenChange: setOpen, dir, modal, children })\n }\n );\n};\nDropdownMenu.displayName = DROPDOWN_MENU_NAME;\nvar TRIGGER_NAME = \"DropdownMenuTrigger\";\nvar DropdownMenuTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;\n const context = useDropdownMenuContext(TRIGGER_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Anchor, { asChild: true, ...menuScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n id: context.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.open ? context.contentId : void 0,\n \"data-state\": context.open ? \"open\" : \"closed\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n ...triggerProps,\n ref: composeRefs(forwardedRef, context.triggerRef),\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onOpenToggle();\n if (!context.open) event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (disabled) return;\n if ([\"Enter\", \" \"].includes(event.key)) context.onOpenToggle();\n if (event.key === \"ArrowDown\") context.onOpenChange(true);\n if ([\"Enter\", \" \", \"ArrowDown\"].includes(event.key)) event.preventDefault();\n })\n }\n ) });\n }\n);\nDropdownMenuTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DropdownMenuPortal\";\nvar DropdownMenuPortal = (props) => {\n const { __scopeDropdownMenu, ...portalProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Portal, { ...menuScope, ...portalProps });\n};\nDropdownMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"DropdownMenuContent\";\nvar DropdownMenuContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...contentProps } = props;\n const context = useDropdownMenuContext(CONTENT_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const hasInteractedOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n MenuPrimitive.Content,\n {\n id: context.contentId,\n \"aria-labelledby\": context.triggerId,\n ...menuScope,\n ...contentProps,\n ref: forwardedRef,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n hasInteractedOutsideRef.current = false;\n event.preventDefault();\n }),\n onInteractOutside: composeEventHandlers(props.onInteractOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (!context.modal || isRightClick) hasInteractedOutsideRef.current = true;\n }),\n style: {\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-dropdown-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-dropdown-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-dropdown-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-dropdown-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-dropdown-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n }\n);\nDropdownMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"DropdownMenuGroup\";\nvar DropdownMenuGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...groupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Group, { ...menuScope, ...groupProps, ref: forwardedRef });\n }\n);\nDropdownMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"DropdownMenuLabel\";\nvar DropdownMenuLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...labelProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Label, { ...menuScope, ...labelProps, ref: forwardedRef });\n }\n);\nDropdownMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"DropdownMenuItem\";\nvar DropdownMenuItem = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Item, { ...menuScope, ...itemProps, ref: forwardedRef });\n }\n);\nDropdownMenuItem.displayName = ITEM_NAME;\nvar CHECKBOX_ITEM_NAME = \"DropdownMenuCheckboxItem\";\nvar DropdownMenuCheckboxItem = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...checkboxItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.CheckboxItem, { ...menuScope, ...checkboxItemProps, ref: forwardedRef });\n});\nDropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"DropdownMenuRadioGroup\";\nvar DropdownMenuRadioGroup = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioGroupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.RadioGroup, { ...menuScope, ...radioGroupProps, ref: forwardedRef });\n});\nDropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"DropdownMenuRadioItem\";\nvar DropdownMenuRadioItem = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.RadioItem, { ...menuScope, ...radioItemProps, ref: forwardedRef });\n});\nDropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar INDICATOR_NAME = \"DropdownMenuItemIndicator\";\nvar DropdownMenuItemIndicator = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemIndicatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.ItemIndicator, { ...menuScope, ...itemIndicatorProps, ref: forwardedRef });\n});\nDropdownMenuItemIndicator.displayName = INDICATOR_NAME;\nvar SEPARATOR_NAME = \"DropdownMenuSeparator\";\nvar DropdownMenuSeparator = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...separatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Separator, { ...menuScope, ...separatorProps, ref: forwardedRef });\n});\nDropdownMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"DropdownMenuArrow\";\nvar DropdownMenuArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...arrowProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Arrow, { ...menuScope, ...arrowProps, ref: forwardedRef });\n }\n);\nDropdownMenuArrow.displayName = ARROW_NAME;\nvar DropdownMenuSub = (props) => {\n const { __scopeDropdownMenu, children, open: openProp, onOpenChange, defaultOpen } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ jsx(MenuPrimitive.Sub, { ...menuScope, open, onOpenChange: setOpen, children });\n};\nvar SUB_TRIGGER_NAME = \"DropdownMenuSubTrigger\";\nvar DropdownMenuSubTrigger = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...subTriggerProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.SubTrigger, { ...menuScope, ...subTriggerProps, ref: forwardedRef });\n});\nDropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"DropdownMenuSubContent\";\nvar DropdownMenuSubContent = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...subContentProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(\n MenuPrimitive.SubContent,\n {\n ...menuScope,\n ...subContentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-dropdown-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-dropdown-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-dropdown-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-dropdown-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-dropdown-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n});\nDropdownMenuSubContent.displayName = SUB_CONTENT_NAME;\nvar Root2 = DropdownMenu;\nvar Trigger = DropdownMenuTrigger;\nvar Portal2 = DropdownMenuPortal;\nvar Content2 = DropdownMenuContent;\nvar Group2 = DropdownMenuGroup;\nvar Label2 = DropdownMenuLabel;\nvar Item2 = DropdownMenuItem;\nvar CheckboxItem2 = DropdownMenuCheckboxItem;\nvar RadioGroup2 = DropdownMenuRadioGroup;\nvar RadioItem2 = DropdownMenuRadioItem;\nvar ItemIndicator2 = DropdownMenuItemIndicator;\nvar Separator2 = DropdownMenuSeparator;\nvar Arrow2 = DropdownMenuArrow;\nvar Sub2 = DropdownMenuSub;\nvar SubTrigger2 = DropdownMenuSubTrigger;\nvar SubContent2 = DropdownMenuSubContent;\nexport {\n Arrow2 as Arrow,\n CheckboxItem2 as CheckboxItem,\n Content2 as Content,\n DropdownMenu,\n DropdownMenuArrow,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuItemIndicator,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n Group2 as Group,\n Item2 as Item,\n ItemIndicator2 as ItemIndicator,\n Label2 as Label,\n Portal2 as Portal,\n RadioGroup2 as RadioGroup,\n RadioItem2 as RadioItem,\n Root2 as Root,\n Separator2 as Separator,\n Sub2 as Sub,\n SubContent2 as SubContent,\n SubTrigger2 as SubTrigger,\n Trigger,\n createDropdownMenuScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\n\nimport { CheckIcon, ChevronRightIcon, DotIcon } from \"lucide-react\";\nimport * as React from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nconst DropdownMenu = DropdownMenuPrimitive.Root;\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto h-4 w-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName =\n DropdownMenuPrimitive.SubTrigger.displayName;\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuSubContent.displayName =\n DropdownMenuPrimitive.SubContent.displayName;\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n));\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"h-4 w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName;\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <DotIcon className=\"h-4 w-4 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n));\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\"ml-auto text-xs tracking-widest opacity-60\", className)}\n {...props}\n />\n );\n};\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\nexport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n};\n","import { cx } from \"class-variance-authority\";\nimport { NavLink } from \"react-router-dom\";\n\nimport { useDevPortal } from \"./context/DevPortalProvider.js\";\n\nexport const TopNavigation = () => {\n const { navigation } = useDevPortal();\n\n // Hide tope nav if there is only one item\n if (navigation.length <= 1) {\n return null;\n }\n\n return (\n <nav className=\"border-b text-sm px-12 h-[--top-nav-height]\">\n <ul className=\"flex flex-row items-center gap-8\">\n {navigation.map((item) => (\n <li key={item.label}>\n <NavLink\n className={({ isActive }) =>\n cx(\n \"block py-3.5 font-medium -mb-px border-b-2\",\n isActive\n ? \"border-primary text-foreground\"\n : \"border-transparent text-foreground/75 hover:text-foreground hover:border-accent-foreground/25\",\n )\n }\n to={item.path}\n >\n {item.label}\n </NavLink>\n </li>\n ))}\n </ul>\n </nav>\n );\n};\n","import { MoonStarIcon, SunIcon } from \"lucide-react\";\nimport { memo } from \"react\";\n\nimport { Link, useLocation } from \"react-router-dom\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport { isProfileMenuPlugin, NavigationItem } from \"../core/plugins.js\";\nimport { Button } from \"../ui/Button.js\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from \"../ui/DropdownMenu.js\";\nimport { cn } from \"../util/cn.js\";\nimport { TopNavigation } from \"./TopNavigation.js\";\nimport { useDevPortal } from \"./context/DevPortalProvider.js\";\nimport { useTheme } from \"./context/ThemeContext.js\";\n\nconst RecursiveMenu = ({ item }: { item: NavigationItem }) => {\n return item.children ? (\n <DropdownMenuSub key={item.label}>\n <DropdownMenuSubTrigger>{item.label}</DropdownMenuSubTrigger>\n <DropdownMenuPortal>\n <DropdownMenuSubContent>\n {item.children.map((item, i) => (\n // eslint-disable-next-line react/no-array-index-key\n <RecursiveMenu key={i} item={item} />\n ))}\n </DropdownMenuSubContent>\n </DropdownMenuPortal>\n </DropdownMenuSub>\n ) : (\n <Link to={item.path ?? \"\"}>\n <DropdownMenuItem key={item.label}>{item.label}</DropdownMenuItem>\n </Link>\n );\n};\n\nexport const Header = memo(function HeaderInner() {\n const [isDark, toggleTheme] = useTheme();\n const { isAuthenticated, profile, isAuthEnabled } = useAuth();\n const { pathname } = useLocation();\n const context = useDevPortal();\n const { page, plugins } = context;\n\n const ThemeIcon = isDark ? MoonStarIcon : SunIcon;\n\n return (\n <header className=\"fixed top-0 w-full z-10 bg-background/80 backdrop-blur\">\n <div className=\"max-w-screen-2xl mx-auto\">\n <div className=\"grid grid-cols-[calc(var(--side-nav-width))_1fr] lg:gap-12 items-center border-b px-12 h-[--top-header-height]\">\n <div className=\"flex\">\n <Link to=\"/\">\n <div className=\"flex items-center gap-3.5\">\n {page?.logo && (\n <>\n <img\n src={page.logo.src.light}\n alt={page.logo.alt ?? page.pageTitle}\n style={{ width: page.logo.width }}\n className={cn(\"h-10\", isDark && \"hidden\")}\n loading=\"lazy\"\n />\n <img\n src={page.logo.src.dark}\n alt={page.logo.alt ?? page.pageTitle}\n style={{ width: page.logo.width }}\n className={cn(\"h-10\", !isDark && \"hidden\")}\n loading=\"lazy\"\n />\n </>\n )}\n <span className=\"font-bold text-2xl text-foreground/85 tracking-wide\">\n {page?.pageTitle}\n </span>\n </div>\n </Link>\n </div>\n <div className=\"grid grid-cols-[--sidecar-grid-cols] items-center gap-8\">\n <div className=\"w-full max-w-prose\">\n {/*<button className=\"flex items-center border border-input hover:bg-accent hover:text-accent-foreground p-4 relative h-8 justify-start rounded-lg bg-background text-sm text-muted-foreground shadow-none w-40 sm:w-72\">\n <div className=\"flex items-center gap-2 flex-grow\">\n <SearchIcon size={14} />\n Search\n </div>\n <kbd className=\"absolute right-[0.3rem] top-[0.3rem] hidden h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[11px] font-medium opacity-100 sm:flex\">\n ⌘K\n </kbd>\n </button>*/}\n </div>\n\n <div className=\"items-center justify-self-end text-sm hidden lg:flex gap-2\">\n {isAuthEnabled && !isAuthenticated ? (\n <Button variant=\"ghost\" asChild>\n <Link\n to={{\n pathname: \"/signin\",\n search: `?redirect=${encodeURIComponent(pathname)}`,\n }}\n >\n Login\n </Link>\n </Button>\n ) : (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"ghost\">\n {profile?.email ? `${profile.email}` : \"My Account\"}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent className=\"w-56\">\n <DropdownMenuLabel>My Account</DropdownMenuLabel>\n <DropdownMenuSeparator />\n {plugins\n .filter((p) => isProfileMenuPlugin(p))\n .flatMap((p) => p.getProfileMenuItems(context))\n .map((i) => (\n <RecursiveMenu key={i.label} item={i} />\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n )}\n\n <button\n type=\"button\"\n aria-label={\n isDark ? \"Switch to light mode\" : \"Switch to dark mode\"\n }\n className=\"cursor-pointer hover:bg-secondary p-2.5 -m-2.5 rounded-full\"\n onClick={toggleTheme}\n >\n <ThemeIcon size={18} />\n </button>\n </div>\n </div>\n </div>\n <TopNavigation />\n </div>\n </header>\n );\n});\n","import {\n createContext,\n useContext,\n type ComponentProps,\n type ComponentType,\n} from \"react\";\nimport { Header } from \"../Header.js\";\n\nexport const DEFAULT_COMPONENTS = {\n Header,\n};\n\nexport type ComponentsContextType = {\n Header?: ComponentType<ComponentProps<typeof Header>>;\n};\n\nconst ComponentsContext =\n createContext<Required<ComponentsContextType>>(DEFAULT_COMPONENTS);\n\nexport const ComponentsProvider = ComponentsContext.Provider;\n\nexport const useComponents = () => {\n return useContext(ComponentsContext);\n};\n","import { MDXProvider } from \"@mdx-js/react\";\nimport { QueryClientProvider } from \"@tanstack/react-query\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport {\n Fragment,\n memo,\n type PropsWithChildren,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { ErrorBoundary } from \"react-error-boundary\";\nimport { Outlet, useNavigate, useNavigation } from \"react-router-dom\";\nimport {\n DevPortalContext,\n queryClient,\n ZudokuContextOptions,\n} from \"../core/DevPortalContext.js\";\nimport { hasHead, isMdxProviderPlugin } from \"../core/plugins.js\";\nimport { TopLevelError } from \"../errors/TopLevelError.js\";\nimport { StaggeredRenderContext } from \"../plugins/openapi/StaggeredRender.js\";\nimport { MdxComponents } from \"../util/MdxComponents.js\";\nimport \"../util/requestIdleCallbackPolyfill.js\";\nimport {\n ComponentsProvider,\n DEFAULT_COMPONENTS,\n} from \"./context/ComponentsContext.js\";\nimport { DevPortalProvider } from \"./context/DevPortalProvider.js\";\nimport { ThemeProvider } from \"./context/ThemeContext.js\";\nimport { ViewportAnchorProvider } from \"./context/ViewportAnchorContext.js\";\nimport { SlotletProvider } from \"./SlotletProvider.js\";\n\nexport const DevPortalSystemPaths = {\n Settings: \"/settings\",\n} as const;\n\nexport type DevPortalPath =\n | string\n | (typeof DevPortalSystemPaths)[keyof typeof DevPortalSystemPaths];\n\nconst DevPortalInner = ({\n children,\n ...props\n}: PropsWithChildren<ZudokuContextOptions>) => {\n const components = useMemo(\n () => ({ ...DEFAULT_COMPONENTS, ...props.overrides }),\n [props.overrides],\n );\n\n const mdxComponents = useMemo(() => {\n const componentsFromPlugins = (props.plugins ?? [])\n .filter(isMdxProviderPlugin)\n .flatMap((plugin) =>\n plugin.getMdxComponents ? [plugin.getMdxComponents()] : [],\n );\n\n return {\n ...componentsFromPlugins.reduce((acc, curr) => ({ ...acc, ...curr }), {}),\n ...MdxComponents,\n ...props.mdx?.components,\n };\n }, [props.mdx?.components, props.plugins]);\n const [isInitialized, setIsInitialized] = useState(false);\n const { stagger } = useContext(StaggeredRenderContext);\n const [didNavigate, setDidNavigate] = useState(false);\n const navigate = useNavigate();\n const initRef = useRef<\"idle\" | \"pending\" | \"done\">(\"idle\");\n const staggeredValue = useMemo(\n () => (didNavigate ? { stagger: true } : { stagger }),\n [stagger, didNavigate],\n );\n const navigation = useNavigation();\n\n useEffect(() => {\n if (didNavigate) {\n return;\n }\n setDidNavigate(true);\n }, [didNavigate, navigation.location]);\n\n const [devPortalContext] = useState(() => new DevPortalContext(props));\n\n // TODO could be handled more elegantly\n useEffect(() => {\n if (initRef.current === \"pending\") return;\n initRef.current = \"pending\";\n void devPortalContext.initialize({ navigate }).then(() => {\n initRef.current = \"done\";\n setIsInitialized(true);\n });\n }, [devPortalContext, navigate]);\n\n const heads = props.plugins\n ?.filter(hasHead)\n // eslint-disable-next-line react/no-array-index-key\n .map((plugin, i) => <Fragment key={i}>{plugin.getHead?.()}</Fragment>);\n\n if (!isInitialized) {\n return null;\n }\n\n return (\n <QueryClientProvider client={queryClient}>\n <Helmet>{heads}</Helmet>\n <StaggeredRenderContext.Provider value={staggeredValue}>\n <DevPortalProvider value={devPortalContext}>\n <MDXProvider components={mdxComponents}>\n <ThemeProvider>\n <ComponentsProvider value={components}>\n <SlotletProvider slotlets={props.slotlets}>\n <ViewportAnchorProvider>\n {children ?? <Outlet />}\n </ViewportAnchorProvider>\n </SlotletProvider>\n </ComponentsProvider>\n </ThemeProvider>\n </MDXProvider>\n </DevPortalProvider>\n </StaggeredRenderContext.Provider>\n </QueryClientProvider>\n );\n};\n\nconst Inner = memo(DevPortalInner);\n\nconst DevPortal = (props: ZudokuContextOptions) => {\n return (\n <ErrorBoundary FallbackComponent={TopLevelError}>\n <Inner {...props} />\n </ErrorBoundary>\n );\n};\nDevPortal.displayName = \"DevPortal\";\n\nexport { DevPortal };\n","import { useEffect } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport { useViewportAnchor } from \"../components/context/ViewportAnchorContext.js\";\n\nexport const useScrollToAnchor = () => {\n const location = useLocation();\n const { setActiveAnchor } = useViewportAnchor();\n\n useEffect(() => {\n if (!location.hash) return;\n\n const hash = location.hash.split(\"/\")[0].slice(1);\n\n const element = document.getElementById(decodeURIComponent(hash));\n if (element) {\n // on page navigation element might be in DOM but not yet scrollable, so wait for a frame\n requestAnimationFrame(() => {\n element.scrollIntoView();\n requestIdleCallback(() => setActiveAnchor(hash));\n });\n return;\n }\n\n // on page load, the element might not be available yet\n const observer = new MutationObserver((_mutations, obs) => {\n const element = document.getElementById(decodeURIComponent(hash));\n if (!element) return;\n\n element.scrollIntoView();\n requestIdleCallback(() => setActiveAnchor(hash));\n obs.disconnect();\n });\n\n observer.observe(document.body, { childList: true, subtree: true });\n\n return () => observer.disconnect();\n }, [location.hash, setActiveAnchor]);\n};\n","import { useEffect, useRef } from \"react\";\nimport { useLocation } from \"react-router-dom\";\n\nexport const useScrollToTop = () => {\n const location = useLocation();\n const previousPath = useRef(location.pathname);\n\n useEffect(() => {\n if (previousPath.current === location.pathname) return;\n window.scrollTo(0, 0);\n previousPath.current = location.pathname;\n }, [location.pathname]);\n};\n","import type { CollapsibleProps } from \"@radix-ui/react-collapsible\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport type { NavigationNode } from \"../../util/traverseNavigation.js\";\nimport { checkHasActiveItem } from \"./util.js\";\n\nexport const useNavigationCollapsibleState = ({\n item,\n defaultOpen,\n path,\n}: {\n item: NavigationNode;\n defaultOpen: () => boolean;\n path: string;\n}): Partial<CollapsibleProps> & { \"data-animate\": boolean } => {\n const [open, setOpen] = useState(defaultOpen);\n const location = useLocation();\n const previousLocationPath = useRef(location.pathname);\n const [shouldAnimate, setShouldAnimate] = useState(false);\n\n useEffect(() => {\n if (!open && previousLocationPath.current !== location.pathname) {\n setOpen(checkHasActiveItem(item, location.pathname, path));\n }\n previousLocationPath.current = location.pathname;\n }, [open, item, path, location.pathname]);\n\n const onOpenChange = () => {\n setShouldAnimate(true);\n setOpen((prev) => !prev);\n };\n\n useEffect(() => {\n setShouldAnimate(false);\n }, []);\n\n return {\n open,\n onOpenChange,\n \"data-animate\": shouldAnimate,\n };\n};\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { cva } from \"class-variance-authority\";\nimport { ChevronRightIcon, ExternalLinkIcon } from \"lucide-react\";\nimport { NavLink, useLocation } from \"react-router-dom\";\n\nimport type {\n NavigationCategory,\n NavigationCategoryItem,\n NavigationItem,\n} from \"../../core/DevPortalContext.js\";\nimport { cn } from \"../../util/cn.js\";\nimport { joinPath } from \"../../util/joinPath.js\";\nimport { AnchorLink } from \"../AnchorLink.js\";\nimport { useNavigationCollapsibleState } from \"./useNavigationCollapsibleState.js\";\nimport { checkHasActiveItem, isLinkItem, isPathItem } from \"./util.js\";\n\nconst navigationListItem = cva(\n \"flex px-[--padding-nav-item] py-1.5 rounded-lg hover:bg-accent transition-colors duration-300\",\n {\n variants: {\n isActive: {\n true: \"text-primary font-medium\",\n false: \"text-foreground/80\",\n },\n isMuted: {\n true: \"text-foreground/30\",\n false: \"\",\n },\n },\n },\n);\n\nexport const DATA_ANCHOR_ATTR = \"data-anchor\";\n\nexport const SideNavigationItem = ({\n category,\n item,\n activeAnchor,\n currentTopNavItem,\n basePath = \"\",\n}: {\n category: NavigationCategory;\n item: NavigationCategoryItem;\n activeAnchor?: string;\n currentTopNavItem?: NavigationItem;\n basePath?: string;\n}) => {\n const currentPath = isPathItem(item) ? joinPath(basePath, item.path) : \"\";\n const location = useLocation();\n\n const collapsibleProps = useNavigationCollapsibleState({\n item,\n path: currentPath,\n defaultOpen: () => checkHasActiveItem(item, location.pathname, basePath),\n });\n\n if (isLinkItem(item)) {\n const classes = cn(\n \"flex items-center gap-2\",\n navigationListItem({\n isActive: item.href === location.pathname,\n }),\n );\n return item.href.startsWith(\"http\") ? (\n <a\n className={classes}\n href={item.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {item.label}\n <ExternalLinkIcon size={14} />\n </a>\n ) : (\n <NavLink className={classes} to={item.href}>\n {item.label}\n </NavLink>\n );\n }\n\n const linkContent = (\n <div className=\"flex justify-between w-full\">\n <div className=\"flex items-center gap-2 truncate w-full\">\n {item.icon}\n {typeof item.label !== \"string\" ? (\n item.label\n ) : (\n <span className=\"truncate\">{item.label}</span>\n )}\n </div>\n {item.children && (\n <ChevronRightIcon\n size={16}\n className=\"transition shrink-0 group-data-[state=open]:rotate-90\"\n />\n )}\n </div>\n );\n\n return (\n <li title={typeof item.label === \"string\" ? item.label : item.title}>\n {item.children ? (\n <Collapsible.Root {...collapsibleProps} className=\"flex flex-col\">\n <Collapsible.Trigger\n className={cn(\n \"group text-start\",\n navigationListItem({ isActive: false }),\n )}\n >\n {linkContent}\n </Collapsible.Trigger>\n <Collapsible.Content className=\"CollapsibleContent ms-[calc(var(--padding-nav-item)*1.125)]\">\n <ul className=\"mt-1 border-l ps-1.5\">\n {item.children.map((child) => (\n <SideNavigationItem\n key={isPathItem(child) ? child.path : child.href}\n category={category}\n item={child}\n activeAnchor={activeAnchor}\n currentTopNavItem={currentTopNavItem}\n basePath={currentPath}\n />\n ))}\n </ul>\n </Collapsible.Content>\n </Collapsible.Root>\n ) : item.path.startsWith(\"#\") ? (\n <AnchorLink\n to={item.path}\n {...{ [DATA_ANCHOR_ATTR]: item.path }}\n className={navigationListItem({\n isActive: item.path.slice(1) === activeAnchor,\n isMuted: item.muted,\n })}\n >\n {linkContent}\n </AnchorLink>\n ) : (\n <NavLink\n className={({ isActive }) => navigationListItem({ isActive })}\n to={currentPath}\n >\n {linkContent}\n </NavLink>\n )}\n </li>\n );\n};\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { ChevronRightIcon } from \"lucide-react\";\nimport { useLocation } from \"react-router-dom\";\nimport type { NavigationCategory } from \"../../core/DevPortalContext.js\";\nimport { cn } from \"../../util/cn.js\";\nimport { joinPath } from \"../../util/joinPath.js\";\nimport { useTopNavigationItem } from \"../context/DevPortalProvider.js\";\nimport { useViewportAnchor } from \"../context/ViewportAnchorContext.js\";\nimport { SideNavigationItem } from \"./SideNavigationItem.js\";\nimport { useNavigationCollapsibleState } from \"./useNavigationCollapsibleState.js\";\nimport { checkHasActiveItem } from \"./util.js\";\n\nexport const SideNavigationCategory = ({\n category,\n}: {\n category: NavigationCategory;\n}) => {\n const { activeAnchor } = useViewportAnchor();\n const navItem = useTopNavigationItem();\n const location = useLocation();\n\n const isCollapsible = category.collapsible ?? true;\n\n const collapsibleProps = useNavigationCollapsibleState({\n item: category,\n path: navItem?.path ?? \"\",\n defaultOpen: () =>\n !isCollapsible ||\n category.expanded ||\n checkHasActiveItem(category, location.pathname, navItem?.path ?? \"\"),\n });\n\n return (\n <Collapsible.Root key={category.label} {...collapsibleProps}>\n {category.label.length > 0 ? (\n <Collapsible.Trigger asChild={isCollapsible} disabled={!isCollapsible}>\n <h5\n className={cn(\n \"flex group items-center justify-between cursor-pointer font-semibold text-foreground/90 px-[--padding-nav-item] py-1.5 rounded-lg transition-colors duration-300 -mx-[--padding-nav-item]\",\n isCollapsible ? \"hover:bg-accent\" : \"cursor-auto\",\n )}\n >\n {category.label}\n {isCollapsible && (\n <ChevronRightIcon\n className=\"group-data-[state=open]:rotate-90 transition\"\n size={16}\n />\n )}\n </h5>\n </Collapsible.Trigger>\n ) : (\n \"Endpoints\"\n )}\n <Collapsible.Content className=\"CollapsibleContent -mx-[--padding-nav-item]\">\n {/* margin on Collapsible.Content will lead jumpiness when animating because it's not added to the calculated height */}\n <ul className=\"space-y-0.5 mt-1.5 mb-4 ms-3\">\n {category.children.map((item, i) => (\n <SideNavigationItem\n key={i}\n category={category}\n item={item}\n activeAnchor={activeAnchor}\n currentTopNavItem={navItem}\n basePath={joinPath(navItem?.path, category.path)}\n />\n ))}\n </ul>\n </Collapsible.Content>\n </Collapsible.Root>\n );\n};\n","import { forwardRef, type PropsWithChildren } from \"react\";\nimport { cn } from \"../../util/cn.js\";\n\nexport const SideNavigationWrapper = forwardRef<\n HTMLDivElement,\n PropsWithChildren<{ pushMainContent?: boolean; className?: string }>\n>(function SideNavigation({ children, className, pushMainContent }, ref) {\n return (\n <nav\n // this data attribute is used in `Layout.tsx` to determine if side navigation\n // is present for the current page so the main content is pushed to the right\n // it's also important to set `peer` class here.\n // maybe this could be simplified by adjusting the layout\n data-navigation={String(pushMainContent)}\n className={cn(\n \"peer hidden lg:flex flex-col fixed text-sm overflow-y-auto shrink-0 p-[--padding-nav-item] -mx-[--padding-nav-item] pb-20 pt-[--padding-content-top] w-[--side-nav-width] h-[calc(100%-var(--header-height))] scroll-pt-2 gap-2\",\n className,\n )}\n ref={ref}\n >\n {children}\n </nav>\n );\n});\n","import { useRef } from \"react\";\n\nimport { useNavigation } from \"../context/DevPortalProvider.js\";\nimport { Slotlet } from \"../SlotletProvider.js\";\nimport { SideNavigationCategory } from \"./SideNavigationCategory.js\";\nimport { SideNavigationWrapper } from \"./SideNavigationWrapper.js\";\n\nexport const SideNavigation = () => {\n const navRef = useRef<HTMLDivElement | null>(null);\n const navigation = useNavigation();\n\n return (\n <SideNavigationWrapper\n ref={navRef}\n pushMainContent={navigation.data.items.length > 0}\n >\n <Slotlet name=\"zudoku-before-navigation\" />\n {navigation.data.items.map((category) => (\n <SideNavigationCategory key={category.label} category={category} />\n ))}\n <Slotlet name=\"zudoku-after-navigation\" />\n </SideNavigationWrapper>\n );\n};\n","import { Helmet } from \"@zudoku/react-helmet-async\";\nimport { Suspense, useEffect, useRef, type ReactNode } from \"react\";\nimport { Outlet, useLocation } from \"react-router-dom\";\nimport { cn } from \"../util/cn.js\";\nimport { useScrollToAnchor } from \"../util/useScrollToAnchor.js\";\nimport { useScrollToTop } from \"../util/useScrollToTop.js\";\nimport { useDevPortal } from \"./context/DevPortalProvider.js\";\nimport { useViewportAnchor } from \"./context/ViewportAnchorContext.js\";\nimport { Header } from \"./Header.js\";\nimport { SideNavigation } from \"./navigation/SideNavigation.js\";\nimport { Slotlet } from \"./SlotletProvider.js\";\nimport { Spinner } from \"./Spinner.js\";\n\nexport const Layout = ({ children }: { children?: ReactNode }) => {\n const location = useLocation();\n const { setActiveAnchor } = useViewportAnchor();\n const { meta } = useDevPortal();\n\n useScrollToAnchor();\n useScrollToTop();\n\n const previousLocationPath = useRef(location.pathname);\n\n useEffect(() => {\n // always reset on location change\n if (location.pathname !== previousLocationPath.current) {\n setActiveAnchor(\"\");\n }\n previousLocationPath.current = location.pathname;\n }, [location.pathname, setActiveAnchor]);\n\n return (\n <>\n <Helmet titleTemplate={meta?.title}>\n {meta?.description && (\n <meta name=\"description\" content={meta.description} />\n )}\n {meta?.favicon && <link rel=\"icon\" href={meta.favicon} />}\n </Helmet>\n <Header />\n\n <div className=\"max-w-screen-2xl mx-auto pt-[--header-height] px-10 lg:px-12 h-full\">\n <Suspense\n fallback={\n <div className=\"grid h-full place-items-center\">\n <Spinner />\n </div>\n }\n >\n <SideNavigation />\n <main\n className={cn(\n \"dark:border-white/10 translate-x-0 h-full\",\n \"lg:overflow-visible\",\n \"lg:peer-data-[navigation=true]:w-[calc(100%-var(--side-nav-width))]\",\n \"lg:peer-data-[navigation=true]:translate-x-[--side-nav-width] lg:peer-data-[navigation=true]:pl-12\",\n )}\n >\n <Slotlet name=\"zudoku-before-content\" />\n {children ?? <Outlet />}\n <Slotlet name=\"zudoku-after-content\" />\n </main>\n </Suspense>\n </div>\n </>\n );\n};\n","import { useMDXComponents as useMDXComponentsImport } from \"@mdx-js/react\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { Link as LinkImport } from \"react-router-dom\";\nimport { RouterError as RouterErrorImport } from \"../errors/RouterError.js\";\nimport { ServerError as ServerErrorImport } from \"../errors/ServerError.js\";\nimport { Button as ButtonImport } from \"../ui/Button.js\";\nimport { Callout as CalloutImport } from \"../ui/Callout.js\";\nimport {\n Bootstrap as BootstrapImport,\n BootstrapStatic as BootstrapStaticImport,\n} from \"./Bootstrap.js\";\nimport { DevPortal as DevPortalImport } from \"./DevPortal.js\";\nimport { Layout as LayoutImport } from \"./Layout.js\";\n\nexport const useMDXComponents = /*@__PURE__*/ useMDXComponentsImport;\nexport const Callout = /*@__PURE__*/ CalloutImport;\nexport const DevPortal = /*@__PURE__*/ DevPortalImport;\nexport const Layout = /*@__PURE__*/ LayoutImport;\nexport const Link = /*@__PURE__*/ LinkImport;\nexport const RouterError = /*@__PURE__*/ RouterErrorImport;\nexport const ServerError = /*@__PURE__*/ ServerErrorImport;\nexport const Bootstrap = /*@__PURE__*/ BootstrapImport;\nexport const BootstrapStatic = /*@__PURE__*/ BootstrapStaticImport;\nexport const Button = /*@__PURE__*/ ButtonImport;\nexport const Head = /*@__PURE__*/ Helmet;\n"],"names":["ChevronRight","createLucideIcon","Dot","ExternalLink","MoonStar","Sun","ServerError","error","jsx","ErrorAlert","server","React","require$$0","router","require$$1","reactRouter","require$$2","reactRouterDom","require$$3","_interopNamespace","e","n","k","d","React__namespace","StaticRouter","basename","children","locationProp","future","action","location","staticNavigator","getStatelessNavigator","StaticRouterProvider","context","router$1","hydrate","nonce","dataRouterContext","fetchersContext","hydrateScript","data","serializeErrors","htmlEscape","state","DataRoutes","routes","errors","entries","serialized","key","val","createHref","encodeLocation","to","delta","createStaticHandler","opts","createStaticRouter","manifest","dataRoutes","matches","match","route","msg","method","_a","_b","href","encoded","ABSOLUTE_URL_REGEX","ESCAPE_LOOKUP","ESCAPE_REGEX","str","StaticRouterProvider_1","Bootstrap","StrictMode","HelmetProvider","StaggeredRenderContext","RouterProvider","BootstrapStatic","helmetContext","QueryCache","Subscribable","config","__privateAdd","_queries","__privateSet","client","options","queryKey","queryHash","hashQueryKeyByOptions","query","Query","__privateGet","queryInMap","notifyManager","filters","defaultedFilters","matchQuery","queries","event","listener","MutationCache","_mutations","_mutationId","mutation","Mutation","__privateWrapper","scope","scopeFor","mutations","x","firstPendingMutation","m","foundMutation","matchMutation","pausedMutations","noop","infiniteQueryBehavior","pages","fetchFn","direction","_c","oldPages","_d","oldPageParams","_e","empty","cancelled","addSignalProperty","object","queryFn","ensureQueryFn","fetchPage","param","previous","queryFnContext","page","maxPages","addTo","addToStart","addToEnd","result","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","remainingPages","i","pageParams","lastIndex","QueryClient","_queryCache","_mutationCache","_defaultOptions","_queryDefaults","_mutationDefaults","_mountCount","_unsubscribeFocus","_unsubscribeOnline","focusManager","focused","onlineManager","online","cachedData","defaultedOptions","resolveStaleTime","updater","prevData","functionalUpdate","queryCache","refetchFilters","cancelOptions","defaultedCancelOptions","promises","fetchOptions","promise","hashKey","defaults","queryDefault","partialMatchKey","mutationKey","skipToken","ErrorBoundaryContext","createContext","initialState","ErrorBoundary","Component","props","_this$props$onReset","_this$props","_len","args","_key","info","_this$props$onError","_this$props2","prevProps","prevState","didCatch","resetKeys","hasArrayChanged","_this$props$onReset2","_this$props3","fallbackRender","FallbackComponent","fallback","childToRender","createElement","isValidElement","a","b","item","index","isProfileMenuPlugin","obj","isNavigationPlugin","needsInitialization","hasHead","isMdxProviderPlugin","isApiIdentityPlugin","queryClient","DevPortalContext","__publicField","navigate","plugin","path","nav","request","accessToken","TopLevelError","resetErrorBoundary","root","cb","SELECTION_KEYS","FIRST_KEYS","LAST_KEYS","FIRST_LAST_KEYS","SUB_OPEN_KEYS","SUB_CLOSE_KEYS","MENU_NAME","Collection","useCollection","createCollectionScope","createCollection","createMenuContext","createMenuScope","createContextScope","createPopperScope","createRovingFocusGroupScope","usePopperScope","useRovingFocusGroupScope","MenuProvider","useMenuContext","MenuRootProvider","useMenuRootContext","Menu","__scopeMenu","open","dir","onOpenChange","modal","popperScope","content","setContent","isUsingKeyboardRef","handleOpenChange","useCallbackRef","useDirection","handleKeyDown","handlePointer","PopperPrimitive.Root","ANCHOR_NAME","MenuAnchor","forwardedRef","anchorProps","PopperPrimitive.Anchor","PORTAL_NAME","PortalProvider","usePortalContext","MenuPortal","forceMount","container","Presence","PortalPrimitive","CONTENT_NAME","MenuContentProvider","useMenuContentContext","MenuContent","portalContext","contentProps","rootContext","MenuRootContentModal","MenuRootContentNonModal","ref","composedRefs","useComposedRefs","hideOthers","MenuContentImpl","composeEventHandlers","loop","trapFocus","onOpenAutoFocus","onCloseAutoFocus","disableOutsidePointerEvents","onEntryFocus","onEscapeKeyDown","onPointerDownOutside","onFocusOutside","onInteractOutside","onDismiss","disableOutsideScroll","rovingFocusGroupScope","getItems","currentItemId","setCurrentItemId","contentRef","timerRef","searchRef","pointerGraceTimerRef","pointerGraceIntentRef","pointerDirRef","lastPointerXRef","ScrollLockWrapper","RemoveScroll","scrollLockWrapperProps","Slot","handleTypeaheadSearch","search","items","currentItem","currentMatch","values","nextMatch","getNextMatch","newItem","updateSearch","value","useFocusGuards","isPointerMovingToSubmenu","isPointerInGraceArea","intent","FocusScope","DismissableLayer","RovingFocusGroup.Root","PopperPrimitive.Content","getOpenState","isKeyDownInside","isModifierKey","isCharacterKey","candidateNodes","focusFirst","whenMouse","target","pointerXHasChanged","newDir","GROUP_NAME","MenuGroup","groupProps","Primitive","LABEL_NAME","MenuLabel","labelProps","ITEM_NAME","ITEM_SELECT","MenuItem","disabled","onSelect","itemProps","contentContext","isPointerDownRef","handleSelect","menuItem","itemSelectEvent","dispatchDiscreteCustomEvent","MenuItemImpl","isTypingAhead","textValue","isFocused","setIsFocused","textContent","setTextContent","RovingFocusGroup.Item","CHECKBOX_ITEM_NAME","MenuCheckboxItem","checked","onCheckedChange","checkboxItemProps","ItemIndicatorProvider","isIndeterminate","getCheckedState","RADIO_GROUP_NAME","RadioGroupProvider","useRadioGroupContext","MenuRadioGroup","onValueChange","handleValueChange","RADIO_ITEM_NAME","MenuRadioItem","radioItemProps","ITEM_INDICATOR_NAME","useItemIndicatorContext","MenuItemIndicator","itemIndicatorProps","indicatorContext","SEPARATOR_NAME","MenuSeparator","separatorProps","ARROW_NAME","MenuArrow","arrowProps","PopperPrimitive.Arrow","SUB_NAME","MenuSubProvider","useMenuSubContext","MenuSub","parentMenuContext","trigger","setTrigger","useId","SUB_TRIGGER_NAME","MenuSubTrigger","subContext","openTimerRef","onPointerGraceIntentChange","clearOpenTimer","pointerGraceTimer","composeRefs","contentRect","side","rightSide","bleed","contentNearEdge","contentFarEdge","SUB_CONTENT_NAME","MenuSubContent","subContentProps","isCloseKey","candidates","PREVIOUSLY_FOCUSED_ELEMENT","candidate","wrapArray","array","startIndex","_","normalizedSearch","char","currentMatchIndex","wrappedValues","v","isPointInPolygon","point","polygon","y","inside","j","xi","yi","xj","yj","area","cursorPos","handler","Root3","Anchor2","Portal","Content2","Group","Label","Item2","CheckboxItem","RadioGroup","RadioItem","ItemIndicator","Separator","Arrow2","Sub","SubTrigger","SubContent","DROPDOWN_MENU_NAME","createDropdownMenuContext","createDropdownMenuScope","useMenuScope","DropdownMenuProvider","useDropdownMenuContext","DropdownMenu","__scopeDropdownMenu","openProp","defaultOpen","menuScope","triggerRef","setOpen","useControllableState","prevOpen","MenuPrimitive.Root","TRIGGER_NAME","DropdownMenuTrigger","triggerProps","MenuPrimitive.Anchor","DropdownMenuPortal","portalProps","MenuPrimitive.Portal","DropdownMenuContent","hasInteractedOutsideRef","MenuPrimitive.Content","originalEvent","ctrlLeftClick","isRightClick","DropdownMenuGroup","MenuPrimitive.Group","DropdownMenuLabel","MenuPrimitive.Label","DropdownMenuItem","MenuPrimitive.Item","DropdownMenuCheckboxItem","MenuPrimitive.CheckboxItem","DropdownMenuRadioGroup","radioGroupProps","MenuPrimitive.RadioGroup","DropdownMenuRadioItem","MenuPrimitive.RadioItem","INDICATOR_NAME","DropdownMenuItemIndicator","MenuPrimitive.ItemIndicator","DropdownMenuSeparator","MenuPrimitive.Separator","DropdownMenuArrow","MenuPrimitive.Arrow","DropdownMenuSub","MenuPrimitive.Sub","DropdownMenuSubTrigger","subTriggerProps","MenuPrimitive.SubTrigger","DropdownMenuSubContent","MenuPrimitive.SubContent","Root2","Trigger","Portal2","Label2","CheckboxItem2","RadioItem2","ItemIndicator2","Separator2","Sub2","SubTrigger2","SubContent2","DropdownMenuPrimitive.Root","DropdownMenuPrimitive.Trigger","DropdownMenuPrimitive.Portal","DropdownMenuPrimitive.Sub","className","inset","jsxs","DropdownMenuPrimitive.SubTrigger","cn","ChevronRightIcon","DropdownMenuPrimitive.SubContent","sideOffset","DropdownMenuPrimitive.Content","DropdownMenuPrimitive.Item","DropdownMenuPrimitive.CheckboxItem","DropdownMenuPrimitive.ItemIndicator","CheckIcon","DropdownMenuPrimitive.RadioItem","DotIcon","DropdownMenuPrimitive.Label","DropdownMenuPrimitive.Separator","TopNavigation","navigation","useDevPortal","NavLink","isActive","cx","RecursiveMenu","Link","Header","memo","isDark","toggleTheme","useTheme","isAuthenticated","profile","isAuthEnabled","useAuth","pathname","useLocation","plugins","ThemeIcon","MoonStarIcon","SunIcon","Fragment","Button","p","DEFAULT_COMPONENTS","ComponentsContext","ComponentsProvider","DevPortalInner","components","useMemo","mdxComponents","acc","curr","MdxComponents","isInitialized","setIsInitialized","useState","stagger","useContext","didNavigate","setDidNavigate","useNavigate","initRef","useRef","staggeredValue","useNavigation","useEffect","devPortalContext","heads","QueryClientProvider","Helmet","DevPortalProvider","MDXProvider","ThemeProvider","SlotletProvider","ViewportAnchorProvider","Outlet","Inner","DevPortal","useScrollToAnchor","setActiveAnchor","useViewportAnchor","hash","element","observer","obs","useScrollToTop","previousPath","useNavigationCollapsibleState","previousLocationPath","shouldAnimate","setShouldAnimate","checkHasActiveItem","prev","navigationListItem","cva","DATA_ANCHOR_ATTR","SideNavigationItem","category","activeAnchor","currentTopNavItem","basePath","currentPath","isPathItem","joinPath","collapsibleProps","isLinkItem","classes","ExternalLinkIcon","linkContent","Collapsible.Root","Collapsible.Trigger","Collapsible.Content","child","AnchorLink","SideNavigationCategory","navItem","useTopNavigationItem","isCollapsible","SideNavigationWrapper","forwardRef","pushMainContent","SideNavigation","navRef","Slotlet","Layout","meta","Suspense","Spinner","useMDXComponents","useMDXComponentsImport","Callout","CalloutImport","DevPortalImport","LayoutImport","LinkImport","RouterError","RouterErrorImport","ServerErrorImport","BootstrapImport","BootstrapStaticImport","ButtonImport","Head"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,6,8,9,10,11,12,17,18]}