zudoku 0.3.0-dev.9 → 0.3.0-dev.91

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 (663) hide show
  1. package/cli.js +5 -1
  2. package/dist/app/App.d.ts +1 -2
  3. package/dist/app/App.js +1 -29
  4. package/dist/app/App.js.map +1 -1
  5. package/dist/app/demo.d.ts +2 -0
  6. package/dist/app/demo.js +33 -0
  7. package/dist/app/demo.js.map +1 -0
  8. package/dist/app/entry.client.d.ts +2 -0
  9. package/dist/app/entry.client.js +35 -0
  10. package/dist/app/entry.client.js.map +1 -0
  11. package/dist/app/entry.server.d.ts +14 -0
  12. package/dist/app/entry.server.js +105 -0
  13. package/dist/app/entry.server.js.map +1 -0
  14. package/dist/app/main.d.ts +6 -1
  15. package/dist/app/main.js +74 -12
  16. package/dist/app/main.js.map +1 -1
  17. package/dist/app/standalone.d.ts +2 -0
  18. package/dist/app/standalone.js +38 -0
  19. package/dist/app/standalone.js.map +1 -0
  20. package/dist/app/tailwind.d.ts +1 -1
  21. package/dist/app/tailwind.js +0 -4
  22. package/dist/app/tailwind.js.map +1 -1
  23. package/dist/cli/cmds/dev.js +5 -0
  24. package/dist/cli/cmds/dev.js.map +1 -1
  25. package/dist/cli/dev/handler.d.ts +1 -0
  26. package/dist/cli/dev/handler.js +3 -1
  27. package/dist/cli/dev/handler.js.map +1 -1
  28. package/dist/config/config.d.ts +21 -46
  29. package/dist/config/validators/InputSidebarSchema.d.ts +176 -0
  30. package/dist/config/validators/InputSidebarSchema.js +71 -0
  31. package/dist/config/validators/InputSidebarSchema.js.map +1 -0
  32. package/dist/config/validators/SidebarSchema.d.ts +17 -0
  33. package/dist/config/validators/SidebarSchema.js +76 -0
  34. package/dist/config/validators/SidebarSchema.js.map +1 -0
  35. package/dist/config/validators/validate.d.ts +1263 -2
  36. package/dist/config/validators/validate.js +170 -1
  37. package/dist/config/validators/validate.js.map +1 -1
  38. package/dist/index.d.ts +1 -1
  39. package/dist/internal.d.ts +1 -0
  40. package/dist/internal.js +2 -0
  41. package/dist/internal.js.map +1 -0
  42. package/dist/lib/authentication/AuthenticationPlugin.d.ts +13 -0
  43. package/dist/lib/authentication/AuthenticationPlugin.js +31 -0
  44. package/dist/lib/authentication/AuthenticationPlugin.js.map +1 -0
  45. package/dist/lib/authentication/authentication.d.ts +10 -9
  46. package/dist/lib/authentication/components/SignIn.d.ts +1 -0
  47. package/dist/lib/authentication/components/SignIn.js +14 -0
  48. package/dist/lib/authentication/components/SignIn.js.map +1 -0
  49. package/dist/lib/authentication/components/SignOut.d.ts +1 -0
  50. package/dist/lib/authentication/components/SignOut.js +12 -0
  51. package/dist/lib/authentication/components/SignOut.js.map +1 -0
  52. package/dist/lib/authentication/components/SignUp.d.ts +1 -0
  53. package/dist/lib/authentication/components/SignUp.js +10 -0
  54. package/dist/lib/authentication/components/SignUp.js.map +1 -0
  55. package/dist/lib/authentication/hook.js +4 -4
  56. package/dist/lib/authentication/hook.js.map +1 -1
  57. package/dist/lib/authentication/providers/auth0.js +11 -6
  58. package/dist/lib/authentication/providers/auth0.js.map +1 -1
  59. package/dist/lib/authentication/providers/clerk.js +59 -30
  60. package/dist/lib/authentication/providers/clerk.js.map +1 -1
  61. package/dist/lib/authentication/providers/openid.d.ts +30 -7
  62. package/dist/lib/authentication/providers/openid.js +79 -29
  63. package/dist/lib/authentication/providers/openid.js.map +1 -1
  64. package/dist/lib/authentication/state.js +1 -1
  65. package/dist/lib/authentication/state.js.map +1 -1
  66. package/dist/lib/components/Bootstrap.d.ts +13 -0
  67. package/dist/lib/components/Bootstrap.js +12 -0
  68. package/dist/lib/components/Bootstrap.js.map +1 -0
  69. package/dist/lib/components/DevPortal.d.ts +5 -23
  70. package/dist/lib/components/DevPortal.js +43 -20
  71. package/dist/lib/components/DevPortal.js.map +1 -1
  72. package/dist/lib/components/DeveloperHint.d.ts +5 -0
  73. package/dist/lib/components/DeveloperHint.js +10 -0
  74. package/dist/lib/components/DeveloperHint.js.map +1 -0
  75. package/dist/lib/components/ErrorPage.d.ts +6 -0
  76. package/dist/lib/components/ErrorPage.js +9 -0
  77. package/dist/lib/components/ErrorPage.js.map +1 -0
  78. package/dist/lib/components/Header.js +23 -4
  79. package/dist/lib/components/Header.js.map +1 -1
  80. package/dist/lib/components/Heading.d.ts +9 -4
  81. package/dist/lib/components/Heading.js +17 -2
  82. package/dist/lib/components/Heading.js.map +1 -1
  83. package/dist/lib/components/InlineCode.d.ts +5 -0
  84. package/dist/lib/components/InlineCode.js +4 -0
  85. package/dist/lib/components/InlineCode.js.map +1 -0
  86. package/dist/lib/components/Layout.js +7 -5
  87. package/dist/lib/components/Layout.js.map +1 -1
  88. package/dist/lib/components/NotFoundPage.d.ts +1 -0
  89. package/dist/lib/components/NotFoundPage.js +12 -0
  90. package/dist/lib/components/NotFoundPage.js.map +1 -0
  91. package/dist/lib/components/SlotletProvider.d.ts +9 -0
  92. package/dist/lib/components/SlotletProvider.js +11 -0
  93. package/dist/lib/components/SlotletProvider.js.map +1 -0
  94. package/dist/lib/components/SyntaxHighlight.d.ts +3 -2
  95. package/dist/lib/components/SyntaxHighlight.js +24 -22
  96. package/dist/lib/components/SyntaxHighlight.js.map +1 -1
  97. package/dist/lib/components/TopNavigation.d.ts +1 -1
  98. package/dist/lib/components/TopNavigation.js +8 -4
  99. package/dist/lib/components/TopNavigation.js.map +1 -1
  100. package/dist/lib/components/context/ThemeContext.d.ts +1 -4
  101. package/dist/lib/components/context/ThemeContext.js +3 -29
  102. package/dist/lib/components/context/ThemeContext.js.map +1 -1
  103. package/dist/lib/components/context/ThemeProvider.d.ts +4 -0
  104. package/dist/lib/components/context/ThemeProvider.js +23 -0
  105. package/dist/lib/components/context/ThemeProvider.js.map +1 -0
  106. package/dist/lib/components/context/ZudokuContext.d.ts +15 -0
  107. package/dist/lib/components/context/ZudokuContext.js +46 -0
  108. package/dist/lib/components/context/ZudokuContext.js.map +1 -0
  109. package/dist/lib/components/context/ZudokuProvider.d.ts +5 -0
  110. package/dist/lib/components/context/ZudokuProvider.js +16 -0
  111. package/dist/lib/components/context/ZudokuProvider.js.map +1 -0
  112. package/dist/lib/components/index.d.ts +32 -3
  113. package/dist/lib/components/index.js +21 -3
  114. package/dist/lib/components/index.js.map +1 -1
  115. package/dist/lib/components/navigation/Sidebar.d.ts +1 -0
  116. package/dist/lib/components/navigation/Sidebar.js +12 -0
  117. package/dist/lib/components/navigation/Sidebar.js.map +1 -0
  118. package/dist/lib/components/navigation/SidebarBadge.d.ts +22 -0
  119. package/dist/lib/components/navigation/SidebarBadge.js +24 -0
  120. package/dist/lib/components/navigation/SidebarBadge.js.map +1 -0
  121. package/dist/lib/components/navigation/SidebarCategory.d.ts +5 -0
  122. package/dist/lib/components/navigation/SidebarCategory.js +33 -0
  123. package/dist/lib/components/navigation/SidebarCategory.js.map +1 -0
  124. package/dist/lib/components/navigation/SidebarItem.d.ts +12 -0
  125. package/dist/lib/components/navigation/SidebarItem.js +42 -0
  126. package/dist/lib/components/navigation/SidebarItem.js.map +1 -0
  127. package/dist/lib/components/navigation/{SideNavigationWrapper.d.ts → SidebarWrapper.d.ts} +1 -1
  128. package/dist/lib/components/navigation/{SideNavigationWrapper.js → SidebarWrapper.js} +2 -2
  129. package/dist/lib/components/navigation/SidebarWrapper.js.map +1 -0
  130. package/dist/lib/components/navigation/utils.d.ts +16 -0
  131. package/dist/lib/components/navigation/utils.js +85 -0
  132. package/dist/lib/components/navigation/utils.js.map +1 -0
  133. package/dist/lib/core/DevPortalContext.d.ts +58 -42
  134. package/dist/lib/core/DevPortalContext.js +18 -19
  135. package/dist/lib/core/DevPortalContext.js.map +1 -1
  136. package/dist/lib/core/plugins.d.ts +25 -10
  137. package/dist/lib/core/plugins.js +3 -0
  138. package/dist/lib/core/plugins.js.map +1 -1
  139. package/dist/lib/errors/ErrorAlert.d.ts +3 -0
  140. package/dist/lib/errors/ErrorAlert.js +8 -0
  141. package/dist/lib/errors/ErrorAlert.js.map +1 -0
  142. package/dist/lib/errors/RouterError.d.ts +1 -0
  143. package/dist/lib/errors/RouterError.js +12 -0
  144. package/dist/lib/errors/RouterError.js.map +1 -0
  145. package/dist/lib/errors/ServerError.d.ts +3 -0
  146. package/dist/lib/errors/ServerError.js +6 -0
  147. package/dist/lib/errors/ServerError.js.map +1 -0
  148. package/dist/lib/errors/TopLevelError.d.ts +2 -0
  149. package/dist/lib/errors/TopLevelError.js +7 -0
  150. package/dist/lib/errors/TopLevelError.js.map +1 -0
  151. package/dist/lib/oas/graphql/index.js +8 -5
  152. package/dist/lib/oas/graphql/index.js.map +1 -1
  153. package/dist/lib/oas/parser/index.d.ts +1 -1
  154. package/dist/lib/oas/parser/index.js +38 -12
  155. package/dist/lib/oas/parser/index.js.map +1 -1
  156. package/dist/lib/plugins/{api-key → api-keys}/CreateApiKey.js +4 -4
  157. package/dist/lib/plugins/api-keys/CreateApiKey.js.map +1 -0
  158. package/dist/lib/plugins/api-keys/ProtectedRoute.d.ts +1 -0
  159. package/dist/lib/plugins/api-keys/ProtectedRoute.js +14 -0
  160. package/dist/lib/plugins/api-keys/ProtectedRoute.js.map +1 -0
  161. package/dist/lib/plugins/api-keys/SettingsApiKeys.js +54 -0
  162. package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -0
  163. package/dist/lib/plugins/{api-key → api-keys}/index.d.ts +4 -5
  164. package/dist/lib/plugins/{api-key → api-keys}/index.js +18 -20
  165. package/dist/lib/plugins/api-keys/index.js.map +1 -0
  166. package/dist/lib/plugins/custom-page/index.d.ts +8 -0
  167. package/dist/lib/plugins/custom-page/index.js +12 -0
  168. package/dist/lib/plugins/custom-page/index.js.map +1 -0
  169. package/dist/lib/plugins/markdown/MdxPage.d.ts +3 -2
  170. package/dist/lib/plugins/markdown/MdxPage.js +10 -40
  171. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  172. package/dist/lib/plugins/markdown/Toc.js +17 -9
  173. package/dist/lib/plugins/markdown/Toc.js.map +1 -1
  174. package/dist/lib/plugins/markdown/generateRoutes.d.ts +3 -3
  175. package/dist/lib/plugins/markdown/generateRoutes.js +20 -43
  176. package/dist/lib/plugins/markdown/generateRoutes.js.map +1 -1
  177. package/dist/lib/plugins/markdown/index.d.ts +4 -1
  178. package/dist/lib/plugins/markdown/index.js +3 -7
  179. package/dist/lib/plugins/markdown/index.js.map +1 -1
  180. package/dist/lib/plugins/openapi/ColorizedParam.d.ts +2 -1
  181. package/dist/lib/plugins/openapi/ColorizedParam.js +14 -9
  182. package/dist/lib/plugins/openapi/ColorizedParam.js.map +1 -1
  183. package/dist/lib/plugins/openapi/OperationList.js +17 -5
  184. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  185. package/dist/lib/plugins/openapi/OperationListItem.js +11 -5
  186. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  187. package/dist/lib/plugins/openapi/ParameterList.js +2 -1
  188. package/dist/lib/plugins/openapi/ParameterList.js.map +1 -1
  189. package/dist/lib/plugins/openapi/ParameterListItem.js +1 -1
  190. package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
  191. package/dist/lib/plugins/openapi/{MakeRequest.d.ts → PlaygroundDialogWrapper.d.ts} +2 -1
  192. package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js +23 -0
  193. package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js.map +1 -0
  194. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js +3 -9
  195. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js.map +1 -1
  196. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +1 -1
  197. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
  198. package/dist/lib/plugins/openapi/Route.d.ts +6 -0
  199. package/dist/lib/plugins/openapi/Route.js +8 -0
  200. package/dist/lib/plugins/openapi/Route.js.map +1 -0
  201. package/dist/lib/plugins/openapi/SchemaListView.js +10 -26
  202. package/dist/lib/plugins/openapi/SchemaListView.js.map +1 -1
  203. package/dist/lib/plugins/openapi/SchemaListViewItem.d.ts +8 -0
  204. package/dist/lib/plugins/openapi/SchemaListViewItem.js +25 -0
  205. package/dist/lib/plugins/openapi/SchemaListViewItem.js.map +1 -0
  206. package/dist/lib/plugins/openapi/SchemaListViewItemGroup.d.ts +8 -0
  207. package/dist/lib/plugins/openapi/SchemaListViewItemGroup.js +17 -0
  208. package/dist/lib/plugins/openapi/SchemaListViewItemGroup.js.map +1 -0
  209. package/dist/lib/plugins/openapi/Sidecar.d.ts +4 -0
  210. package/dist/lib/plugins/openapi/Sidecar.js +55 -21
  211. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  212. package/dist/lib/plugins/openapi/SidecarBox.d.ts +1 -0
  213. package/dist/lib/plugins/openapi/SidecarBox.js +3 -2
  214. package/dist/lib/plugins/openapi/SidecarBox.js.map +1 -1
  215. package/dist/lib/plugins/openapi/{Select.d.ts → SimpleSelect.d.ts} +3 -2
  216. package/dist/lib/plugins/openapi/SimpleSelect.js +5 -0
  217. package/dist/lib/plugins/openapi/SimpleSelect.js.map +1 -0
  218. package/dist/lib/plugins/openapi/StaggeredRender.d.ts +8 -0
  219. package/dist/lib/plugins/openapi/StaggeredRender.js +18 -0
  220. package/dist/lib/plugins/openapi/StaggeredRender.js.map +1 -0
  221. package/dist/lib/plugins/openapi/client/createMemoryClient.d.ts +12 -0
  222. package/dist/lib/plugins/openapi/client/createMemoryClient.js +46 -0
  223. package/dist/lib/plugins/openapi/client/createMemoryClient.js.map +1 -0
  224. package/dist/lib/plugins/openapi/client/createServer.d.ts +4 -0
  225. package/dist/lib/plugins/openapi/client/createServer.js +30 -0
  226. package/dist/lib/plugins/openapi/client/createServer.js.map +1 -0
  227. package/dist/lib/plugins/openapi/client/createWorkerClient.d.ts +10 -0
  228. package/dist/lib/plugins/openapi/{worker/createSharedWorkerClient.js → client/createWorkerClient.js} +15 -2
  229. package/dist/lib/plugins/openapi/client/createWorkerClient.js.map +1 -0
  230. package/dist/lib/plugins/openapi/client/interfaces.d.ts +4 -0
  231. package/dist/lib/plugins/openapi/client/interfaces.js +2 -0
  232. package/dist/lib/plugins/openapi/client/interfaces.js.map +1 -0
  233. package/dist/lib/plugins/openapi/{worker → client}/worker.js +2 -2
  234. package/dist/lib/plugins/openapi/client/worker.js.map +1 -0
  235. package/dist/lib/plugins/openapi/context.d.ts +5 -0
  236. package/dist/lib/plugins/openapi/context.js +11 -0
  237. package/dist/lib/plugins/openapi/context.js.map +1 -0
  238. package/dist/lib/plugins/openapi/graphql/gql.d.ts +6 -6
  239. package/dist/lib/plugins/openapi/graphql/gql.js +1 -1
  240. package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
  241. package/dist/lib/plugins/openapi/graphql/graphql.d.ts +15 -15
  242. package/dist/lib/plugins/openapi/graphql/graphql.js +67 -67
  243. package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
  244. package/dist/lib/plugins/openapi/index.d.ts +4 -18
  245. package/dist/lib/plugins/openapi/index.js +76 -32
  246. package/dist/lib/plugins/openapi/index.js.map +1 -1
  247. package/dist/lib/plugins/openapi/interfaces.d.ts +16 -0
  248. package/dist/lib/plugins/openapi/interfaces.js +2 -0
  249. package/dist/lib/plugins/openapi/interfaces.js.map +1 -0
  250. package/dist/lib/plugins/openapi/playground/Headers.js +1 -1
  251. package/dist/lib/plugins/openapi/playground/Headers.js.map +1 -1
  252. package/dist/lib/plugins/openapi/playground/PathParams.d.ts +4 -5
  253. package/dist/lib/plugins/openapi/playground/PathParams.js +9 -13
  254. package/dist/lib/plugins/openapi/playground/PathParams.js.map +1 -1
  255. package/dist/lib/plugins/openapi/playground/Playground.d.ts +26 -14
  256. package/dist/lib/plugins/openapi/playground/Playground.js +54 -26
  257. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  258. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.d.ts +5 -0
  259. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +12 -0
  260. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js.map +1 -0
  261. package/dist/lib/plugins/openapi/playground/QueryParams.d.ts +4 -3
  262. package/dist/lib/plugins/openapi/playground/QueryParams.js +21 -12
  263. package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
  264. package/dist/lib/plugins/openapi/playground/ResponseTab.d.ts +4 -0
  265. package/dist/lib/plugins/openapi/playground/ResponseTab.js +40 -0
  266. package/dist/lib/plugins/openapi/playground/ResponseTab.js.map +1 -0
  267. package/dist/lib/plugins/openapi/playground/createUrl.d.ts +1 -1
  268. package/dist/lib/plugins/openapi/playground/createUrl.js +5 -9
  269. package/dist/lib/plugins/openapi/playground/createUrl.js.map +1 -1
  270. package/dist/lib/plugins/openapi/util/prose.d.ts +1 -0
  271. package/dist/lib/plugins/openapi/util/prose.js +4 -0
  272. package/dist/lib/plugins/openapi/util/prose.js.map +1 -0
  273. package/dist/lib/plugins/openapi-worker.d.ts +1 -1
  274. package/dist/lib/plugins/openapi-worker.js +1 -1
  275. package/dist/lib/plugins/openapi-worker.js.map +1 -1
  276. package/dist/lib/plugins/redirect/index.d.ts +0 -1
  277. package/dist/lib/plugins/redirect/index.js +3 -4
  278. package/dist/lib/plugins/redirect/index.js.map +1 -1
  279. package/dist/lib/ui/Button.d.ts +5 -1
  280. package/dist/lib/ui/Button.js +24 -1
  281. package/dist/lib/ui/Button.js.map +1 -1
  282. package/dist/lib/ui/Callout.js +2 -2
  283. package/dist/lib/ui/Callout.js.map +1 -1
  284. package/dist/lib/ui/Card.js +1 -1
  285. package/dist/lib/ui/Card.js.map +1 -1
  286. package/dist/lib/ui/DropdownMenu.d.ts +27 -0
  287. package/dist/lib/ui/DropdownMenu.js +36 -0
  288. package/dist/lib/ui/DropdownMenu.js.map +1 -0
  289. package/dist/lib/ui/Input.js.map +1 -0
  290. package/dist/lib/util/MdxComponents.d.ts +2 -2
  291. package/dist/lib/util/MdxComponents.js +7 -5
  292. package/dist/lib/util/MdxComponents.js.map +1 -1
  293. package/dist/lib/util/fetchTimeout.d.ts +1 -0
  294. package/dist/lib/util/fetchTimeout.js +14 -0
  295. package/dist/lib/util/fetchTimeout.js.map +1 -0
  296. package/dist/lib/util/groupBy.d.ts +1 -6
  297. package/dist/lib/util/groupBy.js +10 -8
  298. package/dist/lib/util/groupBy.js.map +1 -1
  299. package/dist/lib/util/invariant.d.ts +6 -0
  300. package/dist/lib/util/invariant.js +21 -0
  301. package/dist/lib/util/invariant.js.map +1 -0
  302. package/dist/lib/util/joinPath.js +2 -1
  303. package/dist/lib/util/joinPath.js.map +1 -1
  304. package/dist/lib/util/logInit.d.ts +1 -0
  305. package/dist/lib/util/logInit.js +9 -0
  306. package/dist/lib/util/logInit.js.map +1 -0
  307. package/dist/lib/util/objectEntries.d.ts +4 -0
  308. package/dist/lib/util/objectEntries.js +2 -0
  309. package/dist/lib/util/objectEntries.js.map +1 -0
  310. package/dist/lib/util/renderIf.d.ts +1 -0
  311. package/dist/lib/util/renderIf.js +2 -0
  312. package/dist/lib/util/renderIf.js.map +1 -0
  313. package/dist/lib/util/requestIdleCallbackPolyfill.d.ts +1 -0
  314. package/dist/lib/util/requestIdleCallbackPolyfill.js +7 -0
  315. package/dist/lib/util/requestIdleCallbackPolyfill.js.map +1 -0
  316. package/dist/lib/util/useScrollToAnchor.js +31 -17
  317. package/dist/lib/util/useScrollToAnchor.js.map +1 -1
  318. package/dist/vite/build.js +30 -7
  319. package/dist/vite/build.js.map +1 -1
  320. package/dist/vite/config.d.ts +20 -12
  321. package/dist/vite/config.js +107 -55
  322. package/dist/vite/config.js.map +1 -1
  323. package/dist/vite/config.test.js +6 -3
  324. package/dist/vite/config.test.js.map +1 -1
  325. package/dist/vite/dev-server.d.ts +2 -1
  326. package/dist/vite/dev-server.js +44 -15
  327. package/dist/vite/dev-server.js.map +1 -1
  328. package/dist/vite/html.js +18 -5
  329. package/dist/vite/html.js.map +1 -1
  330. package/dist/vite/plugin-api-keys.js +7 -8
  331. package/dist/vite/plugin-api-keys.js.map +1 -1
  332. package/dist/vite/plugin-api.js +9 -20
  333. package/dist/vite/plugin-api.js.map +1 -1
  334. package/dist/vite/plugin-auth.js +5 -6
  335. package/dist/vite/plugin-auth.js.map +1 -1
  336. package/dist/vite/plugin-component.js +5 -2
  337. package/dist/vite/plugin-component.js.map +1 -1
  338. package/dist/vite/plugin-config.d.ts +3 -6
  339. package/dist/vite/plugin-config.js +5 -8
  340. package/dist/vite/plugin-config.js.map +1 -1
  341. package/dist/vite/plugin-custom-css.d.ts +6 -0
  342. package/dist/vite/plugin-custom-css.js +54 -0
  343. package/dist/vite/plugin-custom-css.js.map +1 -0
  344. package/dist/vite/plugin-docs.js +11 -5
  345. package/dist/vite/plugin-docs.js.map +1 -1
  346. package/dist/vite/plugin-mdx.d.ts +3 -1
  347. package/dist/vite/plugin-mdx.js +5 -5
  348. package/dist/vite/plugin-mdx.js.map +1 -1
  349. package/dist/vite/plugin-metadata.js +1 -1
  350. package/dist/vite/plugin-metadata.js.map +1 -1
  351. package/dist/vite/plugin-redirect.js +10 -10
  352. package/dist/vite/plugin-redirect.js.map +1 -1
  353. package/dist/vite/plugin-sidebar.d.ts +3 -0
  354. package/dist/vite/plugin-sidebar.js +23 -0
  355. package/dist/vite/plugin-sidebar.js.map +1 -0
  356. package/dist/vite/plugin.js +5 -5
  357. package/dist/vite/plugin.js.map +1 -1
  358. package/dist/vite/prerender.d.ts +17 -0
  359. package/dist/vite/prerender.js +79 -0
  360. package/dist/vite/prerender.js.map +1 -0
  361. package/lib/AuthenticationPlugin-CH5NSVOu.js +55 -0
  362. package/lib/AuthenticationPlugin-CH5NSVOu.js.map +1 -0
  363. package/lib/CategoryHeading-BWq12Bfa.js +10 -0
  364. package/lib/CategoryHeading-BWq12Bfa.js.map +1 -0
  365. package/lib/Combination-D-9IH0zy.js +2789 -0
  366. package/lib/Combination-D-9IH0zy.js.map +1 -0
  367. package/lib/DeveloperHint-BQSFXH01.js +10 -0
  368. package/lib/DeveloperHint-BQSFXH01.js.map +1 -0
  369. package/lib/Input-HmAaR6kw.js +2239 -0
  370. package/lib/Input-HmAaR6kw.js.map +1 -0
  371. package/lib/Markdown-B_Gax7at.js +14108 -0
  372. package/lib/Markdown-B_Gax7at.js.map +1 -0
  373. package/lib/MdxPage-3-PenZs2.js +187 -0
  374. package/lib/MdxPage-3-PenZs2.js.map +1 -0
  375. package/lib/OperationList-DvKqvB16.js +448 -0
  376. package/lib/OperationList-DvKqvB16.js.map +1 -0
  377. package/lib/Route-CnmaDun4.js +14 -0
  378. package/lib/Route-CnmaDun4.js.map +1 -0
  379. package/lib/SlotletProvider-CzMAO73_.js +82 -0
  380. package/lib/SlotletProvider-CzMAO73_.js.map +1 -0
  381. package/lib/Spinner-D99Tq0hv.js +274 -0
  382. package/lib/Spinner-D99Tq0hv.js.map +1 -0
  383. package/lib/ZudokuContext-BIZ8zHbZ.js +1084 -0
  384. package/lib/ZudokuContext-BIZ8zHbZ.js.map +1 -0
  385. package/lib/_commonjsHelpers-BVfed4GL.js +29 -0
  386. package/lib/_commonjsHelpers-BVfed4GL.js.map +1 -0
  387. package/lib/assets/index-BPdJm2ty.js +1 -0
  388. package/lib/assets/index-BPdJm2ty.js.map +1 -0
  389. package/lib/assets/{worker-BCcpCNJ7.js → worker-CyHZIIfE.js} +10727 -10300
  390. package/lib/assets/worker-CyHZIIfE.js.map +1 -0
  391. package/lib/index-7kcHaXD6.js +1771 -0
  392. package/lib/index-7kcHaXD6.js.map +1 -0
  393. package/lib/index-7nswqEVR.js +124 -0
  394. package/lib/index-7nswqEVR.js.map +1 -0
  395. package/lib/index-DjaqWcmv.js +5934 -0
  396. package/lib/index-DjaqWcmv.js.map +1 -0
  397. package/lib/index-pI9JkN46.js +4765 -0
  398. package/lib/index-pI9JkN46.js.map +1 -0
  399. package/lib/joinPath-VeNuJa7y.js +8 -0
  400. package/lib/joinPath-VeNuJa7y.js.map +1 -0
  401. package/lib/jsx-runtime-B6kdoens.js +635 -0
  402. package/lib/jsx-runtime-B6kdoens.js.map +1 -0
  403. package/lib/prism-bash.min-DadFsM4Z.js +1 -0
  404. package/lib/prism-bash.min-DadFsM4Z.js.map +1 -0
  405. package/lib/prism-csharp.min-Yizuc34Y.js +1 -0
  406. package/lib/prism-csharp.min-Yizuc34Y.js.map +1 -0
  407. package/lib/prism-java.min-d5iT_mOd.js +1 -0
  408. package/lib/prism-java.min-d5iT_mOd.js.map +1 -0
  409. package/lib/prism-json.min-B1GJqK1k.js +1 -0
  410. package/lib/prism-json.min-B1GJqK1k.js.map +1 -0
  411. package/lib/prism-markup-templating-DZrrEs0A.js +1 -0
  412. package/lib/prism-markup-templating-DZrrEs0A.js.map +1 -0
  413. package/lib/prism-objectivec.min-BXSWqpJJ.js +1 -0
  414. package/lib/prism-objectivec.min-BXSWqpJJ.js.map +1 -0
  415. package/lib/prism-php.min-o7FpoMP_.js +1 -0
  416. package/lib/prism-php.min-o7FpoMP_.js.map +1 -0
  417. package/lib/prism-ruby.min-C7LwcKyz.js +1 -0
  418. package/lib/prism-ruby.min-C7LwcKyz.js.map +1 -0
  419. package/lib/router-BiRCp01d.js +2971 -0
  420. package/lib/router-BiRCp01d.js.map +1 -0
  421. package/lib/slugify-CiPVjteN.js +28 -0
  422. package/lib/slugify-CiPVjteN.js.map +1 -0
  423. package/lib/state-DsXXkBLH.js +288 -0
  424. package/lib/state-DsXXkBLH.js.map +1 -0
  425. package/lib/{urql-DMlBWUKL.js → urql-DrBfkb92.js} +2 -2
  426. package/lib/urql-DrBfkb92.js.map +1 -0
  427. package/lib/utils-D3g3xyZM.js +749 -0
  428. package/lib/utils-D3g3xyZM.js.map +1 -0
  429. package/lib/zudoku.auth-auth0.js +31 -20
  430. package/lib/zudoku.auth-auth0.js.map +1 -0
  431. package/lib/zudoku.auth-clerk.js +59 -29
  432. package/lib/zudoku.auth-clerk.js.map +1 -0
  433. package/lib/zudoku.auth-openid.js +742 -573
  434. package/lib/zudoku.auth-openid.js.map +1 -0
  435. package/lib/zudoku.components.js +2008 -684
  436. package/lib/zudoku.components.js.map +1 -0
  437. package/lib/zudoku.openapi-worker.js +15035 -146
  438. package/lib/zudoku.openapi-worker.js.map +1 -0
  439. package/lib/zudoku.plugin-api-keys.js +325 -0
  440. package/lib/zudoku.plugin-api-keys.js.map +1 -0
  441. package/lib/zudoku.plugin-custom-page.js +13 -0
  442. package/lib/zudoku.plugin-custom-page.js.map +1 -0
  443. package/lib/zudoku.plugin-markdown.js +31 -0
  444. package/lib/zudoku.plugin-markdown.js.map +1 -0
  445. package/lib/zudoku.plugin-openapi.js +14 -0
  446. package/lib/zudoku.plugin-openapi.js.map +1 -0
  447. package/lib/zudoku.plugin-redirect.js +11 -0
  448. package/lib/zudoku.plugin-redirect.js.map +1 -0
  449. package/package.json +64 -25
  450. package/src/app/App.tsx +0 -41
  451. package/src/app/demo-cdn.html +26 -0
  452. package/src/app/demo.html +18 -0
  453. package/src/app/demo.tsx +46 -0
  454. package/src/app/entry.client.tsx +47 -0
  455. package/src/app/entry.server.tsx +160 -0
  456. package/src/app/main.css +83 -3
  457. package/src/app/main.tsx +87 -15
  458. package/src/app/standalone.html +20 -0
  459. package/src/app/standalone.tsx +52 -0
  460. package/src/app/tailwind.ts +2 -6
  461. package/src/lib/authentication/AuthenticationPlugin.tsx +38 -0
  462. package/src/lib/authentication/authentication.ts +6 -12
  463. package/src/lib/authentication/components/SignIn.tsx +15 -0
  464. package/src/lib/authentication/components/SignOut.tsx +13 -0
  465. package/src/lib/authentication/components/SignUp.tsx +11 -0
  466. package/src/lib/authentication/hook.ts +4 -4
  467. package/src/lib/authentication/providers/auth0.tsx +16 -6
  468. package/src/lib/authentication/providers/clerk.tsx +63 -31
  469. package/src/lib/authentication/providers/openid.tsx +104 -34
  470. package/src/lib/authentication/state.ts +1 -1
  471. package/src/lib/components/Bootstrap.tsx +44 -0
  472. package/src/lib/components/DevPortal.tsx +75 -66
  473. package/src/lib/components/DeveloperHint.tsx +25 -0
  474. package/src/lib/components/ErrorPage.tsx +28 -0
  475. package/src/lib/components/Header.tsx +106 -31
  476. package/src/lib/components/Heading.tsx +26 -7
  477. package/src/lib/components/InlineCode.tsx +19 -0
  478. package/src/lib/components/Layout.tsx +16 -11
  479. package/src/lib/components/NotFoundPage.tsx +33 -0
  480. package/src/lib/components/SlotletProvider.tsx +25 -0
  481. package/src/lib/components/SyntaxHighlight.tsx +53 -44
  482. package/src/lib/components/TopNavigation.tsx +10 -5
  483. package/src/lib/components/context/ThemeContext.tsx +3 -41
  484. package/src/lib/components/context/ThemeProvider.tsx +27 -0
  485. package/src/lib/components/context/ZudokuContext.ts +58 -0
  486. package/src/lib/components/context/ZudokuProvider.tsx +26 -0
  487. package/src/lib/components/index.ts +25 -3
  488. package/src/lib/components/navigation/Sidebar.tsx +24 -0
  489. package/src/lib/components/navigation/SidebarBadge.tsx +40 -0
  490. package/src/lib/components/navigation/SidebarCategory.tsx +105 -0
  491. package/src/lib/components/navigation/SidebarItem.tsx +100 -0
  492. package/src/lib/components/navigation/{SideNavigationWrapper.tsx → SidebarWrapper.tsx} +1 -1
  493. package/src/lib/components/navigation/utils.ts +117 -0
  494. package/src/lib/core/DevPortalContext.ts +72 -68
  495. package/src/lib/core/plugins.ts +40 -16
  496. package/src/lib/errors/ErrorAlert.tsx +21 -0
  497. package/src/lib/errors/RouterError.tsx +13 -0
  498. package/src/lib/errors/ServerError.tsx +5 -0
  499. package/src/lib/errors/TopLevelError.tsx +8 -0
  500. package/src/lib/oas/graphql/index.ts +11 -6
  501. package/src/lib/oas/parser/index.ts +41 -20
  502. package/src/lib/plugins/{api-key → api-keys}/CreateApiKey.tsx +4 -4
  503. package/src/lib/plugins/api-keys/ProtectedRoute.tsx +29 -0
  504. package/src/lib/plugins/{api-key → api-keys}/SettingsApiKeys.tsx +49 -16
  505. package/src/lib/plugins/{api-key → api-keys}/index.tsx +27 -41
  506. package/src/lib/plugins/custom-page/index.tsx +22 -0
  507. package/src/lib/plugins/markdown/MdxPage.tsx +54 -73
  508. package/src/lib/plugins/markdown/Toc.tsx +53 -40
  509. package/src/lib/plugins/markdown/generateRoutes.tsx +35 -53
  510. package/src/lib/plugins/markdown/index.tsx +10 -7
  511. package/src/lib/plugins/openapi/ColorizedParam.tsx +23 -16
  512. package/src/lib/plugins/openapi/OperationList.tsx +46 -10
  513. package/src/lib/plugins/openapi/OperationListItem.tsx +51 -30
  514. package/src/lib/plugins/openapi/ParameterList.tsx +13 -10
  515. package/src/lib/plugins/openapi/ParameterListItem.tsx +3 -4
  516. package/src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx +39 -0
  517. package/src/lib/plugins/openapi/RequestBodySidecarBox.tsx +3 -15
  518. package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +3 -2
  519. package/src/lib/plugins/openapi/Route.tsx +21 -0
  520. package/src/lib/plugins/openapi/SchemaListView.tsx +39 -192
  521. package/src/lib/plugins/openapi/SchemaListViewItem.tsx +125 -0
  522. package/src/lib/plugins/openapi/SchemaListViewItemGroup.tsx +63 -0
  523. package/src/lib/plugins/openapi/Sidecar.tsx +77 -30
  524. package/src/lib/plugins/openapi/SidecarBox.tsx +13 -2
  525. package/src/lib/plugins/openapi/{Select.tsx → SimpleSelect.tsx} +6 -3
  526. package/src/lib/plugins/openapi/StaggeredRender.tsx +31 -0
  527. package/src/lib/plugins/openapi/client/createMemoryClient.ts +56 -0
  528. package/src/lib/plugins/openapi/client/createServer.ts +33 -0
  529. package/src/lib/plugins/openapi/{worker/createSharedWorkerClient.ts → client/createWorkerClient.ts} +21 -2
  530. package/src/lib/plugins/openapi/client/interfaces.ts +5 -0
  531. package/src/lib/plugins/openapi/{worker → client}/worker.ts +3 -3
  532. package/src/lib/plugins/openapi/context.tsx +16 -0
  533. package/src/lib/plugins/openapi/graphql/gql.ts +8 -8
  534. package/src/lib/plugins/openapi/graphql/graphql.ts +80 -80
  535. package/src/lib/plugins/openapi/index.tsx +134 -76
  536. package/src/lib/plugins/openapi/interfaces.ts +10 -0
  537. package/src/lib/plugins/openapi/playground/Headers.tsx +1 -1
  538. package/src/lib/plugins/openapi/playground/PathParams.tsx +76 -50
  539. package/src/lib/plugins/openapi/playground/Playground.tsx +240 -230
  540. package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +40 -0
  541. package/src/lib/plugins/openapi/playground/QueryParams.tsx +107 -66
  542. package/src/lib/plugins/openapi/playground/ResponseTab.tsx +76 -0
  543. package/src/lib/plugins/openapi/playground/createUrl.ts +12 -15
  544. package/src/lib/plugins/openapi/util/prose.ts +7 -0
  545. package/src/lib/plugins/openapi-worker.ts +1 -1
  546. package/src/lib/plugins/redirect/index.tsx +3 -4
  547. package/src/lib/ui/Button.tsx +32 -2
  548. package/src/lib/ui/Callout.tsx +4 -4
  549. package/src/lib/ui/Card.tsx +1 -1
  550. package/src/lib/ui/DropdownMenu.tsx +199 -0
  551. package/src/lib/util/MdxComponents.tsx +7 -15
  552. package/src/lib/util/fetchTimeout.tsx +21 -0
  553. package/src/lib/util/groupBy.ts +7 -12
  554. package/src/lib/util/invariant.ts +26 -0
  555. package/src/lib/util/joinPath.tsx +2 -1
  556. package/src/lib/util/logInit.ts +9 -0
  557. package/src/lib/util/objectEntries.ts +5 -0
  558. package/src/lib/util/renderIf.ts +4 -0
  559. package/src/lib/util/requestIdleCallbackPolyfill.ts +6 -0
  560. package/src/lib/util/useScrollToAnchor.ts +39 -18
  561. package/dist/lib/authentication/Callback.d.ts +0 -3
  562. package/dist/lib/authentication/Callback.js +0 -34
  563. package/dist/lib/authentication/Callback.js.map +0 -1
  564. package/dist/lib/components/Input.js.map +0 -1
  565. package/dist/lib/components/Link.d.ts +0 -1
  566. package/dist/lib/components/Link.js +0 -2
  567. package/dist/lib/components/Link.js.map +0 -1
  568. package/dist/lib/components/Router.d.ts +0 -4
  569. package/dist/lib/components/Router.js +0 -20
  570. package/dist/lib/components/Router.js.map +0 -1
  571. package/dist/lib/components/context/DevPortalProvider.d.ts +0 -9
  572. package/dist/lib/components/context/DevPortalProvider.js +0 -39
  573. package/dist/lib/components/context/DevPortalProvider.js.map +0 -1
  574. package/dist/lib/components/navigation/SideNavigation.d.ts +0 -1
  575. package/dist/lib/components/navigation/SideNavigation.js +0 -11
  576. package/dist/lib/components/navigation/SideNavigation.js.map +0 -1
  577. package/dist/lib/components/navigation/SideNavigationCategory.d.ts +0 -4
  578. package/dist/lib/components/navigation/SideNavigationCategory.js +0 -26
  579. package/dist/lib/components/navigation/SideNavigationCategory.js.map +0 -1
  580. package/dist/lib/components/navigation/SideNavigationItem.d.ts +0 -13
  581. package/dist/lib/components/navigation/SideNavigationItem.js +0 -44
  582. package/dist/lib/components/navigation/SideNavigationItem.js.map +0 -1
  583. package/dist/lib/components/navigation/SideNavigationWrapper.js.map +0 -1
  584. package/dist/lib/components/navigation/useNavigationCollapsibleState.d.ts +0 -6
  585. package/dist/lib/components/navigation/useNavigationCollapsibleState.js +0 -16
  586. package/dist/lib/components/navigation/useNavigationCollapsibleState.js.map +0 -1
  587. package/dist/lib/components/navigation/util.d.ts +0 -8
  588. package/dist/lib/components/navigation/util.js +0 -15
  589. package/dist/lib/components/navigation/util.js.map +0 -1
  590. package/dist/lib/core/helmet.d.ts +0 -4
  591. package/dist/lib/core/helmet.js +0 -5
  592. package/dist/lib/core/helmet.js.map +0 -1
  593. package/dist/lib/core/icons.d.ts +0 -1
  594. package/dist/lib/core/icons.js +0 -2
  595. package/dist/lib/core/icons.js.map +0 -1
  596. package/dist/lib/core/router.d.ts +0 -1
  597. package/dist/lib/core/router.js +0 -2
  598. package/dist/lib/core/router.js.map +0 -1
  599. package/dist/lib/plugins/api-key/CreateApiKey.js.map +0 -1
  600. package/dist/lib/plugins/api-key/SettingsApiKeys.js +0 -38
  601. package/dist/lib/plugins/api-key/SettingsApiKeys.js.map +0 -1
  602. package/dist/lib/plugins/api-key/index.js.map +0 -1
  603. package/dist/lib/plugins/index.d.ts +0 -4
  604. package/dist/lib/plugins/index.js +0 -5
  605. package/dist/lib/plugins/index.js.map +0 -1
  606. package/dist/lib/plugins/openapi/MakeRequest.js +0 -43
  607. package/dist/lib/plugins/openapi/MakeRequest.js.map +0 -1
  608. package/dist/lib/plugins/openapi/MethodBadge.d.ts +0 -13
  609. package/dist/lib/plugins/openapi/MethodBadge.js +0 -26
  610. package/dist/lib/plugins/openapi/MethodBadge.js.map +0 -1
  611. package/dist/lib/plugins/openapi/Select.js +0 -5
  612. package/dist/lib/plugins/openapi/Select.js.map +0 -1
  613. package/dist/lib/plugins/openapi/worker/createSharedWorkerClient.d.ts +0 -5
  614. package/dist/lib/plugins/openapi/worker/createSharedWorkerClient.js.map +0 -1
  615. package/dist/lib/plugins/openapi/worker/shared-worker.d.ts +0 -1
  616. package/dist/lib/plugins/openapi/worker/shared-worker.js +0 -6
  617. package/dist/lib/plugins/openapi/worker/shared-worker.js.map +0 -1
  618. package/dist/lib/plugins/openapi/worker/worker.js.map +0 -1
  619. package/dist/lib/ui/button-variants.d.ts +0 -4
  620. package/dist/lib/ui/button-variants.js +0 -24
  621. package/dist/lib/ui/button-variants.js.map +0 -1
  622. package/dist/lib/util/traverseNavigation.d.ts +0 -6
  623. package/dist/lib/util/traverseNavigation.js +0 -30
  624. package/dist/lib/util/traverseNavigation.js.map +0 -1
  625. package/dist/vite/common.d.ts +0 -1
  626. package/dist/vite/common.js +0 -5
  627. package/dist/vite/common.js.map +0 -1
  628. package/dist/vite/plugin-html.d.ts +0 -3
  629. package/dist/vite/plugin-html.js +0 -47
  630. package/dist/vite/plugin-html.js.map +0 -1
  631. package/dist/vite/plugin-openapi-worker.d.ts +0 -4
  632. package/dist/vite/plugin-openapi-worker.js +0 -28
  633. package/dist/vite/plugin-openapi-worker.js.map +0 -1
  634. package/lib/Spinner-BewqqUU-.js +0 -8413
  635. package/lib/clerk-Wslx_mPo.js +0 -19685
  636. package/lib/index-PyGcnQFX.js +0 -3462
  637. package/lib/loglevel-CoH7VSwE.js +0 -152
  638. package/lib/state-2Hu1renZ.js +0 -313
  639. package/lib/zudoku.plugins.js +0 -19904
  640. package/src/lib/authentication/Callback.tsx +0 -60
  641. package/src/lib/components/Link.tsx +0 -1
  642. package/src/lib/components/Router.tsx +0 -28
  643. package/src/lib/components/context/DevPortalProvider.ts +0 -54
  644. package/src/lib/components/navigation/SideNavigation.tsx +0 -21
  645. package/src/lib/components/navigation/SideNavigationCategory.tsx +0 -76
  646. package/src/lib/components/navigation/SideNavigationItem.tsx +0 -152
  647. package/src/lib/components/navigation/useNavigationCollapsibleState.ts +0 -27
  648. package/src/lib/components/navigation/util.ts +0 -38
  649. package/src/lib/core/helmet.ts +0 -5
  650. package/src/lib/core/icons.tsx +0 -1
  651. package/src/lib/core/router.tsx +0 -1
  652. package/src/lib/plugins/index.ts +0 -4
  653. package/src/lib/plugins/openapi/MakeRequest.tsx +0 -63
  654. package/src/lib/plugins/openapi/MethodBadge.tsx +0 -36
  655. package/src/lib/plugins/openapi/worker/shared-worker.ts +0 -5
  656. package/src/lib/ui/button-variants.ts +0 -31
  657. package/src/lib/util/traverseNavigation.ts +0 -55
  658. /package/dist/lib/plugins/{api-key → api-keys}/CreateApiKey.d.ts +0 -0
  659. /package/dist/lib/plugins/{api-key → api-keys}/SettingsApiKeys.d.ts +0 -0
  660. /package/dist/lib/plugins/openapi/{worker → client}/worker.d.ts +0 -0
  661. /package/dist/lib/{components → ui}/Input.d.ts +0 -0
  662. /package/dist/lib/{components → ui}/Input.js +0 -0
  663. /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/context/ThemeProvider.tsx","../src/lib/components/context/ZudokuProvider.tsx","../src/lib/components/DevPortal.tsx","../src/lib/components/navigation/SidebarCategory.tsx","../src/lib/components/navigation/SidebarItem.tsx","../src/lib/util/useScrollToAnchor.ts","../src/lib/util/useScrollToTop.ts","../src/lib/components/navigation/SidebarWrapper.tsx","../src/lib/components/navigation/Sidebar.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 type { Sidebar } from \"../../config/validators/SidebarSchema.js\";\nimport { MdxComponentsType } from \"../util/MdxComponents.js\";\nimport { DevPortalContext, type ApiIdentity } from \"./DevPortalContext.js\";\n\nexport type DevPortalPlugin =\n | CommonPlugin\n | ProfileMenuPlugin\n | NavigationPlugin\n | ApiIdentityPlugin;\n\nexport interface NavigationPlugin {\n getRoutes: () => RouteObject[];\n getSidebar?: (path: string) => Promise<Sidebar>;\n}\n\nexport interface ApiIdentityPlugin {\n getIdentities: (context: DevPortalContext) => Promise<ApiIdentity[]>;\n}\n\nexport interface ProfileMenuPlugin {\n getProfileMenuItems: (context: DevPortalContext) => ProfileNavigationItem[];\n}\n\nexport type ProfileNavigationItem = {\n label: string;\n path?: string;\n children?: ProfileNavigationItem[];\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 { NavigateFunction } from \"react-router-dom\";\nimport type { SidebarConfig } from \"../../config/validators/SidebarSchema.js\";\nimport { type AuthenticationProvider } from \"../authentication/authentication.js\";\nimport type { ComponentsContextType } from \"../components/context/ComponentsContext.js\";\nimport { Slotlets } from \"../components/SlotletProvider.js\";\nimport { joinPath } from \"../util/joinPath.js\";\nimport type { MdxComponentsType } from \"../util/MdxComponents.js\";\nimport {\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\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 topNavigation?: Array<{ id: string; label: string }>;\n sidebars?: SidebarConfig;\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 sidebars: NonNullable<ZudokuContextOptions[\"sidebars\"]>;\n public topNavigation: NonNullable<ZudokuContextOptions[\"topNavigation\"]>;\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.topNavigation = config.topNavigation ?? [];\n this.sidebars = config.sidebars ?? {};\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 getPluginSidebar = async (path: string) => {\n const navigations = await Promise.all(\n this.navigationPlugins.map((plugin) =>\n plugin.getSidebar?.(joinPath(path)),\n ),\n );\n\n return navigations.flatMap((nav) => nav ?? []);\n };\n\n signRequest = async (request: Request) => {\n if (!this.authentication) {\n throw new Error(\"No authentication provider configured\");\n }\n\n const accessToken = await this.authentication.getAccessToken();\n\n request.headers.set(\"Authorization\", `Bearer ${accessToken}`);\n\n return request;\n };\n}\n","import { FallbackProps } from \"react-error-boundary\";\nimport { ErrorAlert } from \"./ErrorAlert.js\";\n\nexport function TopLevelError({ error, resetErrorBoundary }: FallbackProps) {\n // Call resetErrorBoundary() to reset the error boundary and retry the render.\n\n return <ErrorAlert error={error} />;\n}\n","const root = globalThis;\n\nif (!root.requestIdleCallback || !root.cancelIdleCallback) {\n root.requestIdleCallback = (cb: IdleRequestCallback) => setTimeout(cb, 1);\n root.cancelIdleCallback = clearTimeout;\n}\n","\"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 { useZudoku } from \"./context/ZudokuContext.js\";\n\nexport const TopNavigation = () => {\n const { topNavigation } = useZudoku();\n\n // Hide top nav if there is only one item\n if (topNavigation.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 {topNavigation.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.id}\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, ProfileNavigationItem } 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 { useTheme } from \"./context/ThemeContext.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\n\nconst RecursiveMenu = ({ item }: { item: ProfileNavigationItem }) => {\n return item.children ? (\n <DropdownMenuSub key={item.label}>\n <DropdownMenuSubTrigger>{item.label}</DropdownMenuSubTrigger>\n <DropdownMenuPortal>\n <DropdownMenuSubContent>\n {item.children.map((item, i) => (\n // eslint-disable-next-line react/no-array-index-key\n <RecursiveMenu key={i} item={item} />\n ))}\n </DropdownMenuSubContent>\n </DropdownMenuPortal>\n </DropdownMenuSub>\n ) : (\n <Link to={item.path ?? \"\"}>\n <DropdownMenuItem key={item.label}>{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 = useZudoku();\n const { page, plugins } = context;\n\n const accountItems = plugins\n .filter((p) => isProfileMenuPlugin(p))\n .flatMap((p) => p.getProfileMenuItems(context))\n .map((i) => <RecursiveMenu key={i.label} item={i} />);\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 accountItems.length > 0 && (\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 {accountItems}\n </DropdownMenuContent>\n </DropdownMenu>\n )\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 { ReactNode, useCallback, useEffect, useState } from \"react\";\nimport { ThemeContext } from \"./ThemeContext.js\";\n\nexport const ThemeProvider = (props: { children: ReactNode }) => {\n const [dark, setDark] = useState(false);\n\n // On mount, read the preferred theme from the persistence\n useEffect(() => {\n const theme = localStorage.getItem(\"theme\");\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const isDark = theme === \"dark\" || (!theme && prefersDark.matches);\n\n setDark(isDark);\n }, [dark]);\n\n // To toggle between dark and light modes\n const toggle = useCallback(() => {\n const toggled = !dark;\n document.documentElement.classList.toggle(\"dark\", toggled);\n localStorage.setItem(\"theme\", toggled ? \"dark\" : \"light\");\n setDark(toggled);\n }, [dark]);\n\n const value = [dark, toggle] as const;\n\n return <ThemeContext.Provider value={value} {...props} />;\n};\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport type { PropsWithChildren } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { DevPortalContext } from \"../../core/DevPortalContext.js\";\nimport { ZudokuReactContext } from \"./ZudokuContext.js\";\n\nexport const ZudokuProvider = ({\n children,\n context,\n}: PropsWithChildren<{ context: DevPortalContext }>) => {\n const navigate = useNavigate();\n\n useSuspenseQuery({\n queryFn: async () => {\n await context.initialize({ navigate });\n return true;\n },\n queryKey: [\"zudoku-initialize\"],\n });\n\n return (\n <ZudokuReactContext.Provider value={context}>\n {children}\n </ZudokuReactContext.Provider>\n );\n};\n","import { MDXProvider } from \"@mdx-js/react\";\nimport { 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 useState,\n} from \"react\";\nimport { ErrorBoundary } from \"react-error-boundary\";\nimport { Outlet, 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 { ThemeProvider } from \"./context/ThemeProvider.js\";\nimport { ViewportAnchorProvider } from \"./context/ViewportAnchorContext.js\";\nimport { ZudokuProvider } from \"./context/ZudokuProvider.js\";\nimport { SlotletProvider } from \"./SlotletProvider.js\";\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 { stagger } = useContext(StaggeredRenderContext);\n const [didNavigate, setDidNavigate] = useState(false);\n const staggeredValue = useMemo(\n () => (didNavigate ? { stagger: true } : { stagger }),\n [stagger, didNavigate],\n );\n const navigation = useNavigation();\n\n useEffect(() => {\n if (didNavigate) {\n return;\n }\n setDidNavigate(true);\n }, [didNavigate, navigation.location]);\n\n const [devPortalContext] = useState(() => new DevPortalContext(props));\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 return (\n <QueryClientProvider client={queryClient}>\n <Helmet>{heads}</Helmet>\n <StaggeredRenderContext.Provider value={staggeredValue}>\n <ZudokuProvider context={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 </ZudokuProvider>\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 * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { ChevronRightIcon } from \"lucide-react\";\nimport { useEffect, useState } from \"react\";\nimport { NavLink } from \"react-router-dom\";\nimport type { SidebarItemCategory } from \"../../../config/validators/SidebarSchema.js\";\nimport { cn } from \"../../util/cn.js\";\nimport { joinPath } from \"../../util/joinPath.js\";\nimport { useTopNavigationItem } from \"../context/ZudokuContext.js\";\nimport { navigationListItem, SidebarItem } from \"./SidebarItem.js\";\nimport { useIsCategoryOpen } from \"./utils.js\";\n\nexport const SidebarCategory = ({\n category,\n level,\n}: {\n category: SidebarItemCategory;\n level: number;\n}) => {\n const topNavItem = useTopNavigationItem();\n const isCategoryOpen = useIsCategoryOpen(category);\n\n const isCollapsible = category.collapsible ?? true;\n const isCollapsed = category.collapsed ?? true;\n const isDefaultOpen = Boolean(\n !isCollapsible || !isCollapsed || isCategoryOpen,\n );\n const [open, setOpen] = useState(isDefaultOpen);\n\n useEffect(() => {\n // this is triggered when an item from the sidebar is clicked\n // and the sidebar, enclosing this item, is not opened\n if (isCategoryOpen) {\n setOpen(true);\n }\n }, [isCategoryOpen]);\n\n const ToggleButton = isCollapsible && (\n <button\n type=\"button\"\n onClick={(e) => {\n e.preventDefault();\n setOpen((prev) => !prev);\n }}\n >\n <ChevronRightIcon\n size={16}\n className=\"transition shrink-0 group-data-[state=open]:rotate-90\"\n />\n </button>\n );\n\n return (\n <Collapsible.Root\n className={cn(\"flex flex-col\", level === 0 && \"-mx-[--padding-nav-item]\")}\n defaultOpen={isDefaultOpen}\n open={open}\n onOpenChange={() => setOpen(true)}\n >\n <Collapsible.Trigger\n className={cn(\n \"group text-start\",\n navigationListItem({ isActive: false, isTopLevel: level === 0 }),\n isCollapsible\n ? \"cursor-pointer\"\n : \"cursor-default hover:bg-transparent\",\n )}\n asChild\n disabled={!isCollapsible}\n >\n {category.link?.type === \"doc\" ? (\n <NavLink to={joinPath(topNavItem?.id, category.link.id)}>\n {({ isActive }) => (\n <div\n className={cn(\n \"flex items-center gap-2 justify-between w-full\",\n isActive ? \"text-primary font-medium\" : \"text-foreground/80\",\n )}\n >\n <div className=\"truncate\">{category.label}</div>\n {ToggleButton}\n </div>\n )}\n </NavLink>\n ) : (\n <div className=\"flex items-center justify-between w-full\">\n <div className=\"flex gap-2 truncate w-full\">{category.label}</div>\n {ToggleButton}\n </div>\n )}\n </Collapsible.Trigger>\n <Collapsible.Content className=\"CollapsibleContent ms-[calc(var(--padding-nav-item)*1.125)]\">\n <ul className=\"mt-1 border-l ps-2\">\n {category.items.map((item) => (\n <SidebarItem\n key={item.label}\n level={level + 1}\n item={item}\n // activeAnchor={activeAnchor}\n />\n ))}\n </ul>\n </Collapsible.Content>\n </Collapsible.Root>\n );\n};\n","import { cva } from \"class-variance-authority\";\nimport { ExternalLinkIcon } from \"lucide-react\";\nimport { NavLink } from \"react-router-dom\";\n\nimport type { SidebarItem as SidebarItemType } from \"../../../config/validators/SidebarSchema.js\";\nimport { cn } from \"../../util/cn.js\";\nimport { joinPath } from \"../../util/joinPath.js\";\nimport { AnchorLink } from \"../AnchorLink.js\";\nimport { useViewportAnchor } from \"../context/ViewportAnchorContext.js\";\nimport { useTopNavigationItem } from \"../context/ZudokuContext.js\";\nimport { SidebarBadge } from \"./SidebarBadge.js\";\nimport { SidebarCategory } from \"./SidebarCategory.js\";\n\nexport const navigationListItem = cva(\n \"flex px-[--padding-nav-item] py-1.5 rounded-lg hover:bg-accent transition-colors duration-300\",\n {\n variants: {\n isTopLevel: {\n true: \"font-semibold\",\n },\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 SidebarItem = ({\n item,\n level = 0,\n}: {\n item: SidebarItemType;\n basePath?: string;\n level?: number;\n}) => {\n const topNavItem = useTopNavigationItem();\n const { activeAnchor } = useViewportAnchor();\n\n switch (item.type) {\n case \"category\":\n return <SidebarCategory category={item} level={level} />;\n case \"doc\":\n return (\n <NavLink\n className={({ isActive }) =>\n navigationListItem({ isActive, isTopLevel: level === 0 })\n }\n to={joinPath(topNavItem?.id, item.id)}\n >\n {item.label}\n {item.badge && <SidebarBadge {...item.badge} />}\n </NavLink>\n );\n case \"link\":\n return item.href.startsWith(\"#\") ? (\n <AnchorLink\n to={item.href}\n {...{ [DATA_ANCHOR_ATTR]: item.href.slice(1) }}\n className={cn(\n \"flex gap-2.5 justify-between\",\n level === 0 && \"-mx-[--padding-nav-item]\",\n navigationListItem({\n isActive: item.href.slice(1) === activeAnchor,\n }),\n )}\n >\n {item.label}\n {item.badge && <SidebarBadge {...item.badge} />}\n </AnchorLink>\n ) : item.href.startsWith(\"http\") ? (\n <a\n className={cn(\n navigationListItem({ isTopLevel: level === 0 }),\n \"block\",\n )}\n href={item.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span className=\"whitespace-normal\">{item.label}</span>\n {/* This prevents that the icon would be positioned in its own line if the text fills an line entirely */}\n <span className=\"whitespace-nowrap\">\n &nbsp;\n <ExternalLinkIcon className=\"inline ml-1\" size={12} />\n </span>\n </a>\n ) : (\n <NavLink className={cn(navigationListItem({}), \"block\")} to={item.href}>\n {item.label}\n </NavLink>\n );\n }\n};\n","import { useEffect } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport { useViewportAnchor } from \"../components/context/ViewportAnchorContext.js\";\nimport { DATA_ANCHOR_ATTR } from \"../components/navigation/SidebarItem.js\";\n\nconst scrollIntoViewIfNeeded = (\n element: Element | null,\n options: ScrollIntoViewOptions = { block: \"center\" },\n) => {\n if (!element) return;\n\n const rect = element.getBoundingClientRect();\n const isInView =\n rect.top >= 0 &&\n rect.left >= 0 &&\n rect.bottom <=\n (window.innerHeight || document.documentElement.clientHeight) &&\n rect.right <= (window.innerWidth || document.documentElement.clientWidth);\n\n if (isInView) return;\n\n element.scrollIntoView(options);\n};\n\nexport const useScrollToAnchor = () => {\n const location = useLocation();\n const { setActiveAnchor } = useViewportAnchor();\n\n useEffect(() => {\n if (!location.hash) return;\n\n const hash = decodeURIComponent(location.hash.split(\"/\")[0].slice(1));\n\n const scrollToElement = () => {\n const element = document.getElementById(hash);\n const link = document.querySelector(`[${DATA_ANCHOR_ATTR}=\"${hash}\"]`);\n\n if (element) {\n element.scrollIntoView();\n scrollIntoViewIfNeeded(link);\n requestIdleCallback(() => setActiveAnchor(hash));\n return true;\n }\n\n return false;\n };\n\n if (!scrollToElement()) {\n const observer = new MutationObserver((_, obs) => {\n if (!scrollToElement()) return;\n obs.disconnect();\n });\n\n observer.observe(document.body, { childList: true, subtree: true });\n\n return () => observer.disconnect();\n }\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 { forwardRef, type PropsWithChildren } from \"react\";\nimport { cn } from \"../../util/cn.js\";\n\nexport const SidebarWrapper = forwardRef<\n HTMLDivElement,\n PropsWithChildren<{ pushMainContent?: boolean; className?: string }>\n>(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/ZudokuContext.js\";\nimport { Slotlet } from \"../SlotletProvider.js\";\nimport { SidebarItem } from \"./SidebarItem.js\";\nimport { SidebarWrapper } from \"./SidebarWrapper.js\";\n\nexport const Sidebar = () => {\n const navRef = useRef<HTMLDivElement | null>(null);\n const navigation = useNavigation();\n\n return (\n <SidebarWrapper\n ref={navRef}\n pushMainContent={navigation.data.items.length > 0}\n >\n <Slotlet name=\"zudoku-before-navigation\" />\n {navigation.data.items.map((item) => (\n <SidebarItem key={item.label} item={item} />\n ))}\n <Slotlet name=\"zudoku-after-navigation\" />\n </SidebarWrapper>\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 { useViewportAnchor } from \"./context/ViewportAnchorContext.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\nimport { Header } from \"./Header.js\";\nimport { Sidebar } from \"./navigation/Sidebar.js\";\nimport { Slotlet } from \"./SlotletProvider.js\";\nimport { Spinner } from \"./Spinner.js\";\n\nexport const Layout = ({ children }: { children?: ReactNode }) => {\n const location = useLocation();\n const { setActiveAnchor } = useViewportAnchor();\n const { meta } = useZudoku();\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 <Sidebar />\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","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","joinPath","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","topNavigation","useZudoku","NavLink","isActive","cx","RecursiveMenu","Link","Header","memo","isDark","toggleTheme","useTheme","isAuthenticated","profile","isAuthEnabled","useAuth","pathname","useLocation","plugins","accountItems","p","ThemeIcon","MoonStarIcon","SunIcon","Fragment","Button","DEFAULT_COMPONENTS","ComponentsContext","ComponentsProvider","ThemeProvider","dark","setDark","useState","useEffect","theme","prefersDark","toggle","useCallback","toggled","ThemeContext","ZudokuProvider","useNavigate","useSuspenseQuery","ZudokuReactContext","DevPortalInner","components","useMemo","mdxComponents","acc","curr","MdxComponents","stagger","useContext","didNavigate","setDidNavigate","staggeredValue","navigation","useNavigation","devPortalContext","heads","QueryClientProvider","Helmet","MDXProvider","SlotletProvider","ViewportAnchorProvider","Outlet","Inner","DevPortal","SidebarCategory","category","level","topNavItem","useTopNavigationItem","isCategoryOpen","useIsCategoryOpen","isCollapsible","isCollapsed","isDefaultOpen","ToggleButton","e","prev","Collapsible.Root","Collapsible.Trigger","navigationListItem","Collapsible.Content","SidebarItem","cva","DATA_ANCHOR_ATTR","activeAnchor","useViewportAnchor","SidebarBadge","AnchorLink","ExternalLinkIcon","scrollIntoViewIfNeeded","element","rect","useScrollToAnchor","setActiveAnchor","hash","scrollToElement","link","observer","obs","useScrollToTop","previousPath","useRef","SidebarWrapper","forwardRef","pushMainContent","Sidebar","navRef","Slotlet","Layout","meta","previousLocationPath","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]}