zudoku 0.0.0-f3858d6 → 0.0.0-f417aae

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 (239) hide show
  1. package/README.md +121 -0
  2. package/cli.js +2 -2
  3. package/dist/app/entry.client.js +2 -2
  4. package/dist/app/entry.client.js.map +1 -1
  5. package/dist/app/entry.server.js +0 -3
  6. package/dist/app/entry.server.js.map +1 -1
  7. package/dist/app/main.d.ts +0 -1
  8. package/dist/app/main.js +23 -10
  9. package/dist/app/main.js.map +1 -1
  10. package/dist/app/standalone.js.map +1 -1
  11. package/dist/cli/common/machine-id/lib.js.map +1 -1
  12. package/dist/cli/common/outdated.js.map +1 -1
  13. package/dist/cli/common/utils/box.js.map +1 -1
  14. package/dist/config/validators/InputSidebarSchema.d.ts +21 -6
  15. package/dist/config/validators/InputSidebarSchema.js +7 -28
  16. package/dist/config/validators/InputSidebarSchema.js.map +1 -1
  17. package/dist/config/validators/SidebarSchema.d.ts +1 -1
  18. package/dist/config/validators/SidebarSchema.js +14 -11
  19. package/dist/config/validators/SidebarSchema.js.map +1 -1
  20. package/dist/config/validators/validate.d.ts +117 -95
  21. package/dist/config/validators/validate.js +23 -8
  22. package/dist/config/validators/validate.js.map +1 -1
  23. package/dist/index.d.ts +2 -5
  24. package/dist/index.js +1 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/lib/authentication/components/CallbackHandler.js +21 -31
  27. package/dist/lib/authentication/components/CallbackHandler.js.map +1 -1
  28. package/dist/lib/authentication/hook.d.ts +1 -1
  29. package/dist/lib/authentication/hook.js +1 -1
  30. package/dist/lib/authentication/hook.js.map +1 -1
  31. package/dist/lib/components/Header.js +1 -5
  32. package/dist/lib/components/Header.js.map +1 -1
  33. package/dist/lib/components/MobileTopNavigation.js +4 -1
  34. package/dist/lib/components/MobileTopNavigation.js.map +1 -1
  35. package/dist/lib/components/Search.js +1 -1
  36. package/dist/lib/components/Search.js.map +1 -1
  37. package/dist/lib/components/SlotletProvider.d.ts +6 -2
  38. package/dist/lib/components/SlotletProvider.js +3 -5
  39. package/dist/lib/components/SlotletProvider.js.map +1 -1
  40. package/dist/lib/components/TopNavigation.d.ts +3 -0
  41. package/dist/lib/components/TopNavigation.js +13 -30
  42. package/dist/lib/components/TopNavigation.js.map +1 -1
  43. package/dist/lib/components/context/ZudokuContext.d.ts +11 -4
  44. package/dist/lib/components/context/ZudokuContext.js +20 -26
  45. package/dist/lib/components/context/ZudokuContext.js.map +1 -1
  46. package/dist/lib/components/index.d.ts +17 -8
  47. package/dist/lib/components/index.js +10 -3
  48. package/dist/lib/components/index.js.map +1 -1
  49. package/dist/lib/components/navigation/Sidebar.js +3 -3
  50. package/dist/lib/components/navigation/Sidebar.js.map +1 -1
  51. package/dist/lib/components/navigation/SidebarCategory.js +20 -7
  52. package/dist/lib/components/navigation/SidebarCategory.js.map +1 -1
  53. package/dist/lib/components/navigation/SidebarItem.js +14 -5
  54. package/dist/lib/components/navigation/SidebarItem.js.map +1 -1
  55. package/dist/lib/components/navigation/utils.js +14 -10
  56. package/dist/lib/components/navigation/utils.js.map +1 -1
  57. package/dist/lib/core/DevPortalContext.d.ts +7 -3
  58. package/dist/lib/core/DevPortalContext.js.map +1 -1
  59. package/dist/lib/core/plugins.d.ts +0 -1
  60. package/dist/lib/core/plugins.js.map +1 -1
  61. package/dist/lib/errors/ErrorAlert.d.ts +1 -1
  62. package/dist/lib/errors/ErrorAlert.js +8 -3
  63. package/dist/lib/errors/ErrorAlert.js.map +1 -1
  64. package/dist/lib/plugins/custom-pages/CustomPage.d.ts +2 -0
  65. package/dist/lib/plugins/custom-pages/CustomPage.js +11 -0
  66. package/dist/lib/plugins/custom-pages/CustomPage.js.map +1 -0
  67. package/dist/lib/plugins/custom-pages/index.d.ts +8 -6
  68. package/dist/lib/plugins/custom-pages/index.js +3 -4
  69. package/dist/lib/plugins/custom-pages/index.js.map +1 -1
  70. package/dist/lib/plugins/markdown/MdxPage.js +1 -1
  71. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  72. package/dist/lib/plugins/markdown/generateRoutes.d.ts +3 -0
  73. package/dist/lib/plugins/markdown/generateRoutes.js +21 -0
  74. package/dist/lib/plugins/markdown/generateRoutes.js.map +1 -0
  75. package/dist/lib/plugins/markdown/index.d.ts +6 -5
  76. package/dist/lib/plugins/markdown/index.js +3 -31
  77. package/dist/lib/plugins/markdown/index.js.map +1 -1
  78. package/dist/lib/plugins/openapi/Endpoint.js.map +1 -1
  79. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js.map +1 -1
  80. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  81. package/dist/lib/plugins/openapi/client/worker.js.map +1 -1
  82. package/dist/lib/plugins/openapi/index.js.map +1 -1
  83. package/dist/lib/plugins/openapi/playground/Playground.js +1 -0
  84. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  85. package/dist/lib/util/invariant.d.ts +9 -0
  86. package/dist/lib/util/invariant.js +7 -3
  87. package/dist/lib/util/invariant.js.map +1 -1
  88. package/dist/lib/util/useExposedProps.d.ts +2 -0
  89. package/dist/lib/util/useExposedProps.js +8 -0
  90. package/dist/lib/util/useExposedProps.js.map +1 -0
  91. package/dist/lib/util/useScrollToAnchor.js.map +1 -1
  92. package/dist/vite/build.js +2 -7
  93. package/dist/vite/build.js.map +1 -1
  94. package/dist/vite/config.js +1 -1
  95. package/dist/vite/config.js.map +1 -1
  96. package/dist/vite/dev-server.js +1 -1
  97. package/dist/vite/dev-server.js.map +1 -1
  98. package/dist/vite/plugin-config-reload.js.map +1 -1
  99. package/dist/vite/plugin-docs.js +26 -26
  100. package/dist/vite/plugin-docs.js.map +1 -1
  101. package/dist/vite/plugin-mdx.js +17 -0
  102. package/dist/vite/plugin-mdx.js.map +1 -1
  103. package/dist/vite/plugin-search.d.ts +3 -0
  104. package/dist/vite/plugin-search.js +26 -0
  105. package/dist/vite/plugin-search.js.map +1 -0
  106. package/dist/vite/plugin-sidebar.js +2 -5
  107. package/dist/vite/plugin-sidebar.js.map +1 -1
  108. package/dist/vite/plugin.js +2 -0
  109. package/dist/vite/plugin.js.map +1 -1
  110. package/dist/vite/prerender.d.ts +1 -5
  111. package/dist/vite/prerender.js +5 -6
  112. package/dist/vite/prerender.js.map +1 -1
  113. package/lib/{AuthenticationPlugin-Cnqy9csQ.js → AuthenticationPlugin-tBvLKsFg.js} +3 -3
  114. package/lib/{AuthenticationPlugin-Cnqy9csQ.js.map → AuthenticationPlugin-tBvLKsFg.js.map} +1 -1
  115. package/lib/{CategoryHeading-C7VfgpFZ.js → CategoryHeading-D2WS6sRI.js} +2 -2
  116. package/lib/{CategoryHeading-C7VfgpFZ.js.map → CategoryHeading-D2WS6sRI.js.map} +1 -1
  117. package/lib/ClientOnly-CVN6leDu.js +11 -0
  118. package/lib/ClientOnly-CVN6leDu.js.map +1 -0
  119. package/lib/{DeveloperHint-CNyuFROc.js → DeveloperHint-CRiZjqd2.js} +2 -2
  120. package/lib/{DeveloperHint-CNyuFROc.js.map → DeveloperHint-CRiZjqd2.js.map} +1 -1
  121. package/lib/{Input-x-t53FyR.js → Input-CO-1DOZa.js} +4 -4
  122. package/lib/{Input-x-t53FyR.js.map → Input-CO-1DOZa.js.map} +1 -1
  123. package/lib/{Markdown-C-0TaxoY.js → Markdown-DM4zv3MA.js} +9 -8
  124. package/lib/{Markdown-C-0TaxoY.js.map → Markdown-DM4zv3MA.js.map} +1 -1
  125. package/lib/{MdxPage-C5I9c7R1.js → MdxPage-tWI_P8wP.js} +27 -28
  126. package/lib/MdxPage-tWI_P8wP.js.map +1 -0
  127. package/lib/{OperationList-qsBOguHS.js → OperationList-Cd3lue0b.js} +11 -12
  128. package/lib/OperationList-Cd3lue0b.js.map +1 -0
  129. package/lib/{Route-DlKvXPAO.js → Route-DI0Y0pIV.js} +3 -3
  130. package/lib/{Route-DlKvXPAO.js.map → Route-DI0Y0pIV.js.map} +1 -1
  131. package/lib/SlotletProvider-CBqY8mp6.js +241 -0
  132. package/lib/SlotletProvider-CBqY8mp6.js.map +1 -0
  133. package/lib/{SidebarBadge-DaA0-bFW.js → Spinner-DFQhPMBl.js} +60 -58
  134. package/lib/Spinner-DFQhPMBl.js.map +1 -0
  135. package/lib/{ZudokuContext-DSipF8sq.js → ZudokuContext-DEoP3GGJ.js} +411 -460
  136. package/lib/ZudokuContext-DEoP3GGJ.js.map +1 -0
  137. package/lib/_commonjsHelpers-BkfeUUK-.js +29 -0
  138. package/lib/_commonjsHelpers-BkfeUUK-.js.map +1 -0
  139. package/lib/assets/{worker-DaFlmuyf.js → worker-Bf8vjASY.js} +2306 -2220
  140. package/lib/assets/{worker-DaFlmuyf.js.map → worker-Bf8vjASY.js.map} +1 -1
  141. package/lib/index-Bn6Lc9tq.js +9 -0
  142. package/lib/{index-DJqnphbT.js.map → index-Bn6Lc9tq.js.map} +1 -1
  143. package/lib/{index-BIl-R3aH.js → index-Bs9roz8y.js} +690 -669
  144. package/lib/index-Bs9roz8y.js.map +1 -0
  145. package/lib/{index-Dssw7Gff.js → index-CBr6BM_4.js} +13 -13
  146. package/lib/index-CBr6BM_4.js.map +1 -0
  147. package/lib/{index-SrtqdZ3j.js → index-CRo94sKK.js} +8 -6
  148. package/lib/{index-SrtqdZ3j.js.map → index-CRo94sKK.js.map} +1 -1
  149. package/lib/{index-D06ATMgg.js → index-LNp6rxyU.js} +2 -2
  150. package/lib/{index-D06ATMgg.js.map → index-LNp6rxyU.js.map} +1 -1
  151. package/lib/{index-CKmSo0py.js → index-UUT9q9f9.js} +3 -3
  152. package/lib/{index-CKmSo0py.js.map → index-UUT9q9f9.js.map} +1 -1
  153. package/lib/invariant-Caa8-XvF.js +26 -0
  154. package/lib/invariant-Caa8-XvF.js.map +1 -0
  155. package/lib/joinPath-B7kNnUX4.js +8 -0
  156. package/lib/joinPath-B7kNnUX4.js.map +1 -0
  157. package/lib/{router-Oe6YmY6B.js → router-BsfSoK2j.js} +3 -3
  158. package/lib/{router-Oe6YmY6B.js.map → router-BsfSoK2j.js.map} +1 -1
  159. package/lib/urql-core-KJnLL26g.js.map +1 -1
  160. package/lib/useExposedProps-B9K-9GTc.js +9 -0
  161. package/lib/useExposedProps-B9K-9GTc.js.map +1 -0
  162. package/lib/{AnchorLink-DovtSBJk.js → utils-G5XSiZc9.js} +275 -231
  163. package/lib/utils-G5XSiZc9.js.map +1 -0
  164. package/lib/zudoku.auth-clerk.js +1 -1
  165. package/lib/zudoku.auth-openid.js +477 -483
  166. package/lib/zudoku.auth-openid.js.map +1 -1
  167. package/lib/zudoku.components.js +937 -935
  168. package/lib/zudoku.components.js.map +1 -1
  169. package/lib/zudoku.openapi-worker.js +2354 -2268
  170. package/lib/zudoku.openapi-worker.js.map +1 -1
  171. package/lib/zudoku.plugin-api-keys.js +60 -70
  172. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  173. package/lib/zudoku.plugin-custom-pages.js +16 -8
  174. package/lib/zudoku.plugin-custom-pages.js.map +1 -1
  175. package/lib/zudoku.plugin-markdown.js +27 -93
  176. package/lib/zudoku.plugin-markdown.js.map +1 -1
  177. package/lib/zudoku.plugin-openapi.js +7 -7
  178. package/lib/zudoku.plugin-redirect.js +1 -1
  179. package/lib/zudoku.plugin-search-inkeep.js +9 -13
  180. package/lib/zudoku.plugin-search-inkeep.js.map +1 -1
  181. package/package.json +1 -1
  182. package/src/app/entry.client.tsx +2 -4
  183. package/src/app/entry.server.tsx +0 -4
  184. package/src/app/main.css +0 -5
  185. package/src/app/main.tsx +27 -13
  186. package/src/app/standalone.tsx +1 -1
  187. package/src/lib/authentication/components/CallbackHandler.tsx +20 -51
  188. package/src/lib/authentication/hook.ts +1 -1
  189. package/src/lib/components/Header.tsx +4 -12
  190. package/src/lib/components/MobileTopNavigation.tsx +9 -3
  191. package/src/lib/components/Search.tsx +1 -1
  192. package/src/lib/components/SlotletProvider.tsx +14 -7
  193. package/src/lib/components/TopNavigation.tsx +37 -58
  194. package/src/lib/components/context/ZudokuContext.ts +20 -28
  195. package/src/lib/components/index.ts +13 -4
  196. package/src/lib/components/navigation/Sidebar.tsx +6 -6
  197. package/src/lib/components/navigation/SidebarCategory.tsx +37 -27
  198. package/src/lib/components/navigation/SidebarItem.tsx +19 -18
  199. package/src/lib/components/navigation/utils.ts +16 -11
  200. package/src/lib/core/DevPortalContext.ts +7 -3
  201. package/src/lib/core/plugins.ts +0 -2
  202. package/src/lib/errors/ErrorAlert.tsx +18 -5
  203. package/src/lib/plugins/custom-pages/CustomPage.tsx +18 -0
  204. package/src/lib/plugins/custom-pages/index.tsx +11 -9
  205. package/src/lib/plugins/markdown/MdxPage.tsx +10 -8
  206. package/src/lib/plugins/markdown/generateRoutes.tsx +38 -0
  207. package/src/lib/plugins/markdown/index.tsx +12 -49
  208. package/src/lib/plugins/openapi/Endpoint.tsx +2 -2
  209. package/src/lib/plugins/openapi/RequestBodySidecarBox.tsx +1 -1
  210. package/src/lib/plugins/openapi/Sidecar.tsx +1 -1
  211. package/src/lib/plugins/openapi/client/worker.ts +2 -2
  212. package/src/lib/plugins/openapi/index.tsx +1 -1
  213. package/src/lib/plugins/openapi/playground/Playground.tsx +1 -0
  214. package/src/lib/util/invariant.ts +15 -3
  215. package/src/lib/util/useExposedProps.tsx +10 -0
  216. package/src/lib/util/useScrollToAnchor.ts +1 -1
  217. package/dist/lib/plugins/markdown/resolver.d.ts +0 -38
  218. package/dist/lib/plugins/markdown/resolver.js +0 -75
  219. package/dist/lib/plugins/markdown/resolver.js.map +0 -1
  220. package/dist/vite/debug.d.ts +0 -1
  221. package/dist/vite/debug.js +0 -10
  222. package/dist/vite/debug.js.map +0 -1
  223. package/lib/AnchorLink-DovtSBJk.js.map +0 -1
  224. package/lib/ErrorPage-CUz-Zzmx.js +0 -16
  225. package/lib/ErrorPage-CUz-Zzmx.js.map +0 -1
  226. package/lib/MdxPage-C5I9c7R1.js.map +0 -1
  227. package/lib/OperationList-qsBOguHS.js.map +0 -1
  228. package/lib/SidebarBadge-DaA0-bFW.js.map +0 -1
  229. package/lib/SlotletProvider-BGEs7yyu.js +0 -240
  230. package/lib/SlotletProvider-BGEs7yyu.js.map +0 -1
  231. package/lib/Spinner-3cQDBVGr.js +0 -7
  232. package/lib/Spinner-3cQDBVGr.js.map +0 -1
  233. package/lib/ZudokuContext-DSipF8sq.js.map +0 -1
  234. package/lib/__vite-browser-external-BYRIRx8p.js +0 -9
  235. package/lib/__vite-browser-external-BYRIRx8p.js.map +0 -1
  236. package/lib/index-BIl-R3aH.js.map +0 -1
  237. package/lib/index-DJqnphbT.js +0 -35
  238. package/lib/index-Dssw7Gff.js.map +0 -1
  239. package/src/lib/plugins/markdown/resolver.ts +0 -92
@@ -30,10 +30,6 @@ export const Header = memo(function HeaderInner() {
30
30
  .flatMap((p) => p.getProfileMenuItems(context))
31
31
  .map((i) => _jsx(RecursiveMenu, { item: i }, i.label));
32
32
  const ThemeIcon = isDark ? MoonStarIcon : SunIcon;
33
- return (_jsxs("header", { className: "sticky lg:top-0 z-10 bg-background/80 backdrop-blur w-full", children: [_jsx(Banner, {}), _jsxs("div", { className: "max-w-screen-2xl mx-auto", children: [_jsxs("div", { className: "grid grid-cols-2 lg:grid-cols-[calc(var(--side-nav-width))_1fr] lg:gap-12 items-center border-b px-10 lg:px-12 h-[--top-header-height]", children: [_jsx("div", { className: "flex", children: _jsx(Link, { to: "/", children: _jsxs("div", { className: "flex items-center gap-3.5", children: [page?.logo && (_jsxs(_Fragment, { children: [_jsx("img", { src: /https?:\/\//.test(page.logo.src.light)
34
- ? page.logo.src.light
35
- : import.meta.env.BASE_URL + page.logo.src.light, alt: page.logo.alt ?? page.pageTitle, style: { width: page.logo.width }, className: cn("h-10", isDark && "hidden"), loading: "lazy" }), _jsx("img", { src: /https?:\/\//.test(page.logo.src.dark)
36
- ? page.logo.src.dark
37
- : import.meta.env.BASE_URL + page.logo.src.dark, alt: page.logo.alt ?? page.pageTitle, style: { width: page.logo.width }, className: cn("h-10", !isDark && "hidden"), loading: "lazy" })] })), _jsx("span", { className: "font-bold text-2xl text-foreground/85 tracking-wide", children: page?.pageTitle })] }) }) }), _jsxs("div", { className: "grid grid-cols-2 md:grid-cols-[--sidecar-grid-cols] items-center gap-8", children: [_jsx("div", { className: "w-full justify-center hidden md:flex ", children: _jsx(Search, {}) }), _jsx(MobileTopNavigation, {}), _jsxs("div", { className: "hidden lg:flex items-center justify-self-end text-sm gap-2", children: [_jsx(Slotlet, { name: "head-navigation-start" }), isAuthEnabled && !isAuthenticated ? (_jsx(Button, { variant: "ghost", onClick: () => auth.login(), children: "Login" })) : (accountItems.length > 0 && (_jsxs(DropdownMenu, { modal: false, children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { variant: "ghost", children: profile?.email ? `${profile.email}` : "My Account" }) }), _jsxs(DropdownMenuContent, { className: "w-56", children: [_jsx(DropdownMenuLabel, { children: "My Account" }), _jsx(DropdownMenuSeparator, {}), accountItems] })] }))), _jsx("button", { type: "button", "aria-label": isDark ? "Switch to light mode" : "Switch to dark mode", className: "cursor-pointer hover:bg-secondary p-2.5 -m-2.5 rounded-full", onClick: toggleTheme, children: _jsx(ThemeIcon, { size: 18 }) }), _jsx(Slotlet, { name: "head-navigation-end" })] })] })] }), _jsx(Slotlet, { name: "top-navigation-before" }), _jsx(TopNavigation, {}), _jsx(Slotlet, { name: "top-navigation-after" })] })] }));
33
+ return (_jsxs("header", { className: "sticky lg:top-0 z-10 bg-background/80 backdrop-blur w-full", children: [_jsx(Banner, {}), _jsxs("div", { className: "max-w-screen-2xl mx-auto", children: [_jsxs("div", { className: "grid grid-cols-2 lg:grid-cols-[calc(var(--side-nav-width))_1fr] lg:gap-12 items-center border-b px-10 lg:px-12 h-[--top-header-height]", children: [_jsx("div", { className: "flex", children: _jsx(Link, { to: "/", children: _jsxs("div", { className: "flex items-center gap-3.5", children: [page?.logo && (_jsxs(_Fragment, { children: [_jsx("img", { src: page.logo.src.light, alt: page.logo.alt ?? page.pageTitle, style: { width: page.logo.width }, className: cn("h-10", isDark && "hidden"), loading: "lazy" }), _jsx("img", { src: page.logo.src.dark, alt: page.logo.alt ?? page.pageTitle, style: { width: page.logo.width }, className: cn("h-10", !isDark && "hidden"), loading: "lazy" })] })), _jsx("span", { className: "font-bold text-2xl text-foreground/85 tracking-wide", children: page?.pageTitle })] }) }) }), _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-[--sidecar-grid-cols] items-center gap-8", children: [_jsx("div", { className: "w-full justify-center hidden lg:flex", children: _jsx(Search, {}) }), _jsx(MobileTopNavigation, {}), _jsxs("div", { className: "hidden lg:flex items-center justify-self-end text-sm gap-2", children: [_jsx(Slotlet, { name: "head-navigation-start" }), isAuthEnabled && !isAuthenticated ? (_jsx(Button, { variant: "ghost", onClick: () => auth.login(), children: "Login" })) : (accountItems.length > 0 && (_jsxs(DropdownMenu, { modal: false, children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { variant: "ghost", children: profile?.email ? `${profile.email}` : "My Account" }) }), _jsxs(DropdownMenuContent, { className: "w-56", children: [_jsx(DropdownMenuLabel, { children: "My Account" }), _jsx(DropdownMenuSeparator, {}), accountItems] })] }))), _jsx("button", { type: "button", "aria-label": isDark ? "Switch to light mode" : "Switch to dark mode", className: "cursor-pointer hover:bg-secondary p-2.5 -m-2.5 rounded-full", onClick: toggleTheme, children: _jsx(ThemeIcon, { size: 18 }) }), _jsx(Slotlet, { name: "head-navigation-end" })] })] })] }), _jsx(Slotlet, { name: "top-navigation-before" }), _jsx(TopNavigation, {}), _jsx(Slotlet, { name: "top-navigation-after" })] })] }));
38
34
  });
39
35
  //# sourceMappingURL=Header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/lib/components/Header.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/lib/components/Header.tsx"],"names":[],"mappings":"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"}
@@ -3,12 +3,15 @@ import { VisuallyHidden } from "@radix-ui/react-visually-hidden";
3
3
  import { cx } from "class-variance-authority";
4
4
  import { MenuIcon } from "lucide-react";
5
5
  import { NavLink } from "react-router-dom";
6
+ import { useAuth } from "../authentication/hook.js";
6
7
  import { Drawer, DrawerClose, DrawerContent, DrawerTitle, DrawerTrigger, } from "../ui/Drawer.js";
7
8
  import { useZudoku } from "./context/ZudokuContext.js";
8
9
  import { Search } from "./Search.js";
10
+ import { isHiddenItem } from "./TopNavigation.js";
9
11
  export const MobileTopNavigation = () => {
10
12
  const { topNavigation } = useZudoku();
11
- return (_jsxs(Drawer, { direction: "right", children: [_jsx("div", { className: "flex lg:hidden justify-self-end", children: _jsx(DrawerTrigger, { className: "lg:hidden", children: _jsx(MenuIcon, { size: 22 }) }) }), _jsxs(DrawerContent, { className: "lg:hidden h-screen right-0 left-auto w-[320px] rounded-none", "aria-describedby": undefined, children: [_jsx(VisuallyHidden, { children: _jsx(DrawerTitle, { children: "Navigation" }) }), _jsx(Search, {}), _jsx("ul", { className: "flex flex-col items-center gap-4 p-4", children: topNavigation.map((item) => (_jsx("li", { children: _jsx(NavLink, { className: ({ isActive }) => cx("block font-medium border-b-2", isActive
13
+ const { isAuthenticated } = useAuth();
14
+ return (_jsxs(Drawer, { direction: "right", children: [_jsx("div", { className: "flex lg:hidden justify-self-end", children: _jsx(DrawerTrigger, { className: "lg:hidden", children: _jsx(MenuIcon, { size: 22 }) }) }), _jsxs(DrawerContent, { className: "lg:hidden h-screen right-0 left-auto w-[320px] rounded-none overflow-auto", "aria-describedby": undefined, children: [_jsx(VisuallyHidden, { children: _jsx(DrawerTitle, { children: "Navigation" }) }), _jsx("div", { className: "flex p-4", children: _jsx(Search, {}) }), _jsx("ul", { className: "flex flex-col items-center gap-4 p-4", children: topNavigation.filter(isHiddenItem(isAuthenticated)).map((item) => (_jsx("li", { children: _jsx(NavLink, { className: ({ isActive }) => cx("block font-medium border-b-2", isActive
12
15
  ? "border-primary text-foreground"
13
16
  : "border-transparent text-foreground/75 hover:text-foreground hover:border-accent-foreground/25"), to: item.id, children: _jsx(DrawerClose, { children: item.label }) }) }, item.label))) })] })] }));
14
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"MobileTopNavigation.js","sourceRoot":"","sources":["../../../src/lib/components/MobileTopNavigation.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EACL,MAAM,EACN,WAAW,EACX,aAAa,EACb,WAAW,EACX,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,MAAM,EAAE,aAAa,EAAE,GAAG,SAAS,EAAE,CAAC;IACtC,OAAO,CACL,MAAC,MAAM,IAAC,SAAS,EAAC,OAAO,aACvB,cAAK,SAAS,EAAC,iCAAiC,YAC9C,KAAC,aAAa,IAAC,SAAS,EAAC,WAAW,YAClC,KAAC,QAAQ,IAAC,IAAI,EAAE,EAAE,GAAI,GACR,GACZ,EACN,MAAC,aAAa,IACZ,SAAS,EAAC,6DAA6D,sBACrD,SAAS,aAE3B,KAAC,cAAc,cACb,KAAC,WAAW,6BAAyB,GACtB,EACjB,KAAC,MAAM,KAAG,EACV,aAAI,SAAS,EAAC,sCAAsC,YACjD,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC3B,uBACE,KAAC,OAAO,IACN,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAC1B,EAAE,CACA,8BAA8B,EAC9B,QAAQ;oCACN,CAAC,CAAC,gCAAgC;oCAClC,CAAC,CAAC,+FAA+F,CACpG,EAEH,EAAE,EAAE,IAAI,CAAC,EAAE,YAEX,KAAC,WAAW,cAAE,IAAI,CAAC,KAAK,GAAe,GAC/B,IAbH,IAAI,CAAC,KAAK,CAcd,CACN,CAAC,GACC,IACS,IACT,CACV,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"MobileTopNavigation.js","sourceRoot":"","sources":["../../../src/lib/components/MobileTopNavigation.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EACL,MAAM,EACN,WAAW,EACX,aAAa,EACb,WAAW,EACX,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,MAAM,EAAE,aAAa,EAAE,GAAG,SAAS,EAAE,CAAC;IACtC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;IAEtC,OAAO,CACL,MAAC,MAAM,IAAC,SAAS,EAAC,OAAO,aACvB,cAAK,SAAS,EAAC,iCAAiC,YAC9C,KAAC,aAAa,IAAC,SAAS,EAAC,WAAW,YAClC,KAAC,QAAQ,IAAC,IAAI,EAAE,EAAE,GAAI,GACR,GACZ,EACN,MAAC,aAAa,IACZ,SAAS,EAAC,2EAA2E,sBACnE,SAAS,aAE3B,KAAC,cAAc,cACb,KAAC,WAAW,6BAAyB,GACtB,EACjB,cAAK,SAAS,EAAC,UAAU,YACvB,KAAC,MAAM,KAAG,GACN,EACN,aAAI,SAAS,EAAC,sCAAsC,YACjD,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACjE,uBACE,KAAC,OAAO,IACN,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAC1B,EAAE,CACA,8BAA8B,EAC9B,QAAQ;oCACN,CAAC,CAAC,gCAAgC;oCAClC,CAAC,CAAC,+FAA+F,CACpG,EAEH,EAAE,EAAE,IAAI,CAAC,EAAE,YAEX,KAAC,WAAW,cAAE,IAAI,CAAC,KAAK,GAAe,GAC/B,IAbH,IAAI,CAAC,KAAK,CAcd,CACN,CAAC,GACC,IACS,IACT,CACV,CAAC;AACJ,CAAC,CAAC"}
@@ -26,7 +26,7 @@ export const Search = () => {
26
26
  if (!searchPlugin) {
27
27
  return null;
28
28
  }
29
- return (_jsxs(_Fragment, { children: [_jsxs("button", { type: "button", onClick: () => setIsOpen(true), 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", children: [_jsxs("div", { className: "flex items-center gap-2 flex-grow", children: [_jsx(SearchIcon, { size: 14 }), "Search"] }), _jsx("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", children: "\u2318K" })] }), _jsx(Suspense, { fallback: null, children: searchPlugin.renderSearch({
29
+ return (_jsxs(_Fragment, { children: [_jsxs("button", { type: "button", onClick: () => setIsOpen(true), className: "flex items-center border border-input hover:bg-accent hover:text-accent-foreground p-4 relative h-8 justify-start rounded-lg bg-background text-sm text-muted-foreground shadow-none w-full sm:w-72", children: [_jsxs("div", { className: "flex items-center gap-2 flex-grow", children: [_jsx(SearchIcon, { size: 14 }), "Search"] }), _jsx("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", children: "\u2318K" })] }), _jsx(Suspense, { fallback: null, children: searchPlugin.renderSearch({
30
30
  isOpen,
31
31
  onClose,
32
32
  }) })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"Search.js","sourceRoot":"","sources":["../../../src/lib/components/Search.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,EAAE;IACzB,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IACxB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAExD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,SAAS,SAAS,CAAC,KAAoB;YACrC,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1D,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,SAAS,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAE9C,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAExB,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAEtD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,8BACE,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAC9B,SAAS,EAAC,mMAAmM,aAE7M,eAAK,SAAS,EAAC,mCAAmC,aAChD,KAAC,UAAU,IAAC,IAAI,EAAE,EAAE,GAAI,cAEpB,EACN,cAAK,SAAS,EAAC,qKAAqK,wBAE9K,IACC,EACT,KAAC,QAAQ,IAAC,QAAQ,EAAE,IAAI,YACrB,YAAY,CAAC,YAAY,CAAC;oBACzB,MAAM;oBACN,OAAO;iBACR,CAAC,GACO,IACV,CACJ,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Search.js","sourceRoot":"","sources":["../../../src/lib/components/Search.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,EAAE;IACzB,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IACxB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAExD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,SAAS,SAAS,CAAC,KAAoB;YACrC,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1D,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,SAAS,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAE9C,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAExB,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAEtD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,8BACE,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAC9B,SAAS,EAAC,qMAAqM,aAE/M,eAAK,SAAS,EAAC,mCAAmC,aAChD,KAAC,UAAU,IAAC,IAAI,EAAE,EAAE,GAAI,cAEpB,EACN,cAAK,SAAS,EAAC,qKAAqK,wBAE9K,IACC,EACT,KAAC,QAAQ,IAAC,QAAQ,EAAE,IAAI,YACrB,YAAY,CAAC,YAAY,CAAC;oBACzB,MAAM;oBACN,OAAO;iBACR,CAAC,GACO,IACV,CACJ,CAAC;AACJ,CAAC,CAAC"}
@@ -1,11 +1,15 @@
1
1
  import React, { type ComponentType, type ReactElement, ReactNode } from "react";
2
- export type Slotlets = Record<string, ReactNode | ReactElement | ComponentType<SlotletComponentProps>>;
2
+ import { type Location, type NavigateFunction, type SetURLSearchParams } from "react-router-dom";
3
+ export type Slotlets = Record<string, ReactNode | ReactElement | ComponentType<ExposedComponentProps>>;
3
4
  export declare const SlotletProvider: ({ slotlets, children, }: {
4
5
  children: ReactNode;
5
6
  slotlets?: Slotlets;
6
7
  }) => import("react/jsx-runtime").JSX.Element;
7
- export type SlotletComponentProps = {
8
+ export type ExposedComponentProps = {
8
9
  location: Location;
10
+ navigate: NavigateFunction;
11
+ searchParams: URLSearchParams;
12
+ setSearchParams: SetURLSearchParams;
9
13
  };
10
14
  export declare const Slotlet: ({ name }: {
11
15
  name: string;
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import React, { useContext, } from "react";
3
3
  import { isValidElementType } from "react-is";
4
- import { useLocation } from "react-router-dom";
4
+ import { useExposedProps } from "../util/useExposedProps.js";
5
5
  const SlotletContext = React.createContext({});
6
6
  export const SlotletProvider = ({ slotlets, children, }) => {
7
7
  return (_jsx(SlotletContext.Provider, { value: slotlets, children: children }));
@@ -9,11 +9,9 @@ export const SlotletProvider = ({ slotlets, children, }) => {
9
9
  export const Slotlet = ({ name }) => {
10
10
  const context = useContext(SlotletContext);
11
11
  const componentOrElement = context?.[name];
12
- const location = useLocation();
12
+ const slotletProps = useExposedProps();
13
13
  if (isValidElementType(componentOrElement)) {
14
- return React.createElement(componentOrElement, {
15
- location,
16
- });
14
+ return React.createElement(componentOrElement, slotletProps);
17
15
  }
18
16
  return componentOrElement;
19
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SlotletProvider.js","sourceRoot":"","sources":["../../../src/lib/components/SlotletProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAIZ,UAAU,GACX,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAM/C,MAAM,cAAc,GAAG,KAAK,CAAC,aAAa,CAAuB,EAAE,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC9B,QAAQ,EACR,QAAQ,GAIT,EAAE,EAAE;IACH,OAAO,CACL,KAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,QAAQ,YACrC,QAAQ,GACe,CAC3B,CAAC;AACJ,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;IACpD,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAC3C,MAAM,kBAAkB,GAAG,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,IAAI,kBAAkB,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC,aAAa,CAAC,kBAAkB,EAAE;YAC7C,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED,OAAO,kBAA+B,CAAC;AACzC,CAAC,CAAC"}
1
+ {"version":3,"file":"SlotletProvider.js","sourceRoot":"","sources":["../../../src/lib/components/SlotletProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAIZ,UAAU,GACX,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAM9C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAO7D,MAAM,cAAc,GAAG,KAAK,CAAC,aAAa,CAAuB,EAAE,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC9B,QAAQ,EACR,QAAQ,GAIT,EAAE,EAAE;IACH,OAAO,CACL,KAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,QAAQ,YACrC,QAAQ,GACe,CAC3B,CAAC;AACJ,CAAC,CAAC;AASF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;IACpD,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAC3C,MAAM,kBAAkB,GAAG,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IAEvC,IAAI,kBAAkB,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC,aAAa,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,kBAA+B,CAAC;AACzC,CAAC,CAAC"}
@@ -1 +1,4 @@
1
+ export declare const isHiddenItem: (isAuthenticated?: boolean) => (item: {
2
+ display?: "auth" | "anon" | "always";
3
+ }) => boolean;
1
4
  export declare const TopNavigation: () => import("react/jsx-runtime").JSX.Element;
@@ -1,40 +1,23 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { cx } from "class-variance-authority";
3
- import { Suspense } from "react";
4
- import { Link } from "react-router-dom";
5
- import { joinPath } from "../util/joinPath.js";
6
- import { useCurrentNavigation, useZudoku } from "./context/ZudokuContext.js";
7
- import { traverseSidebar } from "./navigation/utils.js";
3
+ import { NavLink } from "react-router-dom";
4
+ import { useAuth } from "../authentication/hook.js";
5
+ import { useZudoku } from "./context/ZudokuContext.js";
6
+ export const isHiddenItem = (isAuthenticated) => (item) => {
7
+ return ((item.display === "auth" && isAuthenticated) ||
8
+ (item.display === "anon" && !isAuthenticated) ||
9
+ !item.display ||
10
+ item.display === "always");
11
+ };
8
12
  export const TopNavigation = () => {
9
13
  const { topNavigation } = useZudoku();
14
+ const { isAuthenticated } = useAuth();
10
15
  // Hide top nav if there is only one item
11
16
  if (topNavigation.length <= 1) {
12
17
  return _jsx("style", { children: `:root { --top-nav-height: 0px; }` });
13
18
  }
14
- return (_jsx(Suspense, { children: _jsx("nav", { className: "hidden lg:block border-b text-sm px-12 h-[--top-nav-height]", children: _jsx("ul", { className: "flex flex-row items-center gap-8", children: topNavigation.map((item) => (_jsx("li", { children: _jsx(TopNavItem, { ...item }) }, item.id))) }) }) }));
15
- };
16
- const TopNavItem = ({ id, label, default: defaultLink }) => {
17
- const { sidebars } = useZudoku();
18
- const nav = useCurrentNavigation();
19
- const currentSidebar = sidebars[id];
20
- // TODO: This is a bit of a hack to get the first link in the sidebar
21
- // We should really process this when we load the config so we can validate
22
- // that the sidebar is actually set. In this case we just fall back to linking
23
- // to the id if we can't resolve a sidebar.
24
- const first = defaultLink ??
25
- (currentSidebar
26
- ? traverseSidebar(currentSidebar, (item) => {
27
- if (item.type === "doc")
28
- return joinPath(item.id);
29
- })
30
- : joinPath(id));
31
- if (!first) {
32
- throw new Error(`No links found in top navigation for top navigation '${id}'. Check that the sidebar isn't empty or that a default link set.`);
33
- }
34
- // Manually set the active sidebar based on our logic of what is active
35
- const isActive = nav.data.topNavItem?.id === id;
36
- return (_jsx(Link, { className: cx("block py-3.5 font-medium -mb-px border-b-2", isActive
37
- ? "border-primary text-foreground"
38
- : "border-transparent text-foreground/75 hover:text-foreground hover:border-accent-foreground/25"), to: first, children: label }));
19
+ return (_jsx("nav", { className: "hidden lg:block border-b text-sm px-12 h-[--top-nav-height]", children: _jsx("ul", { className: "flex flex-row items-center gap-8", children: topNavigation.filter(isHiddenItem(isAuthenticated)).map((item) => (_jsx("li", { children: _jsx(NavLink, { className: ({ isActive }) => cx("block py-3.5 font-medium -mb-px border-b-2", isActive
20
+ ? "border-primary text-foreground"
21
+ : "border-transparent text-foreground/75 hover:text-foreground hover:border-accent-foreground/25"), to: item.id, children: item.label }) }, item.label))) }) }));
39
22
  };
40
23
  //# sourceMappingURL=TopNavigation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TopNavigation.js","sourceRoot":"","sources":["../../../src/lib/components/TopNavigation.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE;IAChC,MAAM,EAAE,aAAa,EAAE,GAAG,SAAS,EAAE,CAAC;IAEtC,yCAAyC;IACzC,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO,0BAAQ,kCAAkC,GAAS,CAAC;IAC7D,CAAC;IAED,OAAO,CACL,KAAC,QAAQ,cACP,cAAK,SAAS,EAAC,6DAA6D,YAC1E,aAAI,SAAS,EAAC,kCAAkC,YAC7C,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC3B,uBACE,KAAC,UAAU,OAAK,IAAI,GAAI,IADjB,IAAI,CAAC,EAAE,CAEX,CACN,CAAC,GACC,GACD,GACG,CACZ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAqB,EAAE,EAAE;IAC5E,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,CAAC;IACjC,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;IACnC,MAAM,cAAc,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEpC,qEAAqE;IACrE,2EAA2E;IAC3E,8EAA8E;IAC9E,2CAA2C;IAC3C,MAAM,KAAK,GACT,WAAW;QACX,CAAC,cAAc;YACb,CAAC,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE;gBACvC,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;oBAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpD,CAAC,CAAC;YACJ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,wDAAwD,EAAE,mEAAmE,CAC9H,CAAC;IACJ,CAAC;IAED,uEAAuE;IACvE,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC;IAEhD,OAAO,CACL,KAAC,IAAI,IACH,SAAS,EAAE,EAAE,CACX,4CAA4C,EAC5C,QAAQ;YACN,CAAC,CAAC,gCAAgC;YAClC,CAAC,CAAC,+FAA+F,CACpG,EACD,EAAE,EAAE,KAAK,YAER,KAAK,GACD,CACR,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"TopNavigation.js","sourceRoot":"","sources":["../../../src/lib/components/TopNavigation.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,MAAM,CAAC,MAAM,YAAY,GACvB,CAAC,eAAyB,EAAE,EAAE,CAC9B,CAAC,IAA8C,EAAE,EAAE;IACjD,OAAO,CACL,CAAC,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,eAAe,CAAC;QAC5C,CAAC,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,eAAe,CAAC;QAC7C,CAAC,IAAI,CAAC,OAAO;QACb,IAAI,CAAC,OAAO,KAAK,QAAQ,CAC1B,CAAC;AACJ,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE;IAChC,MAAM,EAAE,aAAa,EAAE,GAAG,SAAS,EAAE,CAAC;IACtC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;IAEtC,yCAAyC;IACzC,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO,0BAAQ,kCAAkC,GAAS,CAAC;IAC7D,CAAC;IAED,OAAO,CACL,cAAK,SAAS,EAAC,6DAA6D,YAC1E,aAAI,SAAS,EAAC,kCAAkC,YAC7C,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACjE,uBACE,KAAC,OAAO,IACN,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAC1B,EAAE,CACA,4CAA4C,EAC5C,QAAQ;wBACN,CAAC,CAAC,gCAAgC;wBAClC,CAAC,CAAC,+FAA+F,CACpG,EAEH,EAAE,EAAE,IAAI,CAAC,EAAE,YAEV,IAAI,CAAC,KAAK,GACH,IAbH,IAAI,CAAC,KAAK,CAcd,CACN,CAAC,GACC,GACD,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -2,11 +2,18 @@ import { DevPortalContext } from "../../core/DevPortalContext.js";
2
2
  export declare const ZudokuReactContext: import("react").Context<DevPortalContext | undefined>;
3
3
  export declare const useZudoku: () => DevPortalContext;
4
4
  export declare const useApiIdentities: () => import("@tanstack/react-query").UseQueryResult<import("../../core/DevPortalContext.js").ApiIdentity[], Error>;
5
- export declare const useCurrentNavigation: () => import("@tanstack/react-query").UseSuspenseQueryResult<{
6
- sidebar: import("../../../config/validators/SidebarSchema.js").SidebarItem[];
7
- topNavItem: {
5
+ export declare const useTopNavigationItem: () => {
6
+ id: string;
7
+ label: string;
8
+ default?: string;
9
+ display?: "auth" | "anon" | "always";
10
+ } | undefined;
11
+ export declare const useNavigation: () => import("@tanstack/react-query").UseSuspenseQueryResult<{
12
+ items: import("../../../config/validators/SidebarSchema.js").SidebarItem[];
13
+ currentTopNavItem: {
8
14
  id: string;
9
15
  label: string;
10
- default?: string | undefined;
16
+ default?: string;
17
+ display?: "auth" | "anon" | "always";
11
18
  } | undefined;
12
19
  }, Error>;
@@ -1,8 +1,6 @@
1
1
  import { useQuery, useSuspenseQuery } from "@tanstack/react-query";
2
2
  import { createContext, useContext } from "react";
3
- import { matchPath, useLocation } from "react-router-dom";
4
- import { joinPath } from "../../util/joinPath.js";
5
- import { traverseSidebar } from "../navigation/utils.js";
3
+ import { useLocation } from "react-router-dom";
6
4
  export const ZudokuReactContext = createContext(undefined);
7
5
  export const useZudoku = () => {
8
6
  const context = useContext(ZudokuReactContext);
@@ -18,35 +16,31 @@ export const useApiIdentities = () => {
18
16
  queryKey: ["api-identities"],
19
17
  });
20
18
  };
21
- export const useCurrentNavigation = () => {
22
- const { getPluginSidebar, sidebars, topNavigation } = useZudoku();
19
+ export const useTopNavigationItem = () => {
20
+ const { topNavigation } = useZudoku();
21
+ const location = useLocation();
22
+ const firstPart = location.pathname.split("/").at(1);
23
+ if (!firstPart)
24
+ return;
25
+ return topNavigation.find((item) => item.id === firstPart);
26
+ };
27
+ export const useNavigation = () => {
28
+ const { getPluginSidebar, sidebars } = useZudoku();
29
+ const navItem = useTopNavigationItem();
30
+ const path = navItem?.id;
31
+ const currentSidebar = path ? (sidebars[path] ?? []) : [];
23
32
  const location = useLocation();
24
- const currentSidebarItem = Object.entries(sidebars).find(([, sidebar]) => {
25
- return traverseSidebar(sidebar, (item) => {
26
- const itemId = item.type === "doc"
27
- ? joinPath(item.id)
28
- : item.type === "category" && item.link
29
- ? joinPath(item.link.id)
30
- : undefined;
31
- if (itemId === location.pathname) {
32
- return item;
33
- }
34
- });
35
- });
36
- const currentTopNavItem = topNavigation.find((t) => t.id === currentSidebarItem?.[0]) ??
37
- topNavigation.find((item) => matchPath(item.id, location.pathname));
38
33
  return useSuspenseQuery({
39
34
  queryFn: async () => {
40
- const pluginSidebar = await getPluginSidebar(location.pathname);
35
+ const pluginSidebar = path
36
+ ? await getPluginSidebar(path)
37
+ : await getPluginSidebar(location.pathname);
41
38
  return {
42
- sidebar: [
43
- ...(currentSidebarItem ? currentSidebarItem[1] : []),
44
- ...pluginSidebar,
45
- ],
46
- topNavItem: currentTopNavItem,
39
+ items: [...currentSidebar, ...pluginSidebar],
40
+ currentTopNavItem: navItem,
47
41
  };
48
42
  },
49
- queryKey: ["navigation", location.pathname],
43
+ queryKey: ["navigation", path],
50
44
  });
51
45
  };
52
46
  //# sourceMappingURL=ZudokuContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ZudokuContext.js","sourceRoot":"","sources":["../../../../src/lib/components/context/ZudokuContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAC7C,SAAS,CACV,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE;IAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAAE,CAAC;IACzC,OAAO,QAAQ,CAAC;QACd,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,CAAC,gBAAgB,CAAC;KAC7B,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,SAAS,EAAE,CAAC;IAClE,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE;QACvE,OAAO,eAAe,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACvC,MAAM,MAAM,GACV,IAAI,CAAC,IAAI,KAAK,KAAK;gBACjB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnB,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI;oBACrC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,CAAC,CAAC,SAAS,CAAC;YAElB,IAAI,MAAM,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACjC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,iBAAiB,GACrB,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3D,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEtE,OAAO,gBAAgB,CAAC;QACtB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAEhE,OAAO;gBACL,OAAO,EAAE;oBACP,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpD,GAAG,aAAa;iBACjB;gBACD,UAAU,EAAE,iBAAiB;aAC9B,CAAC;QACJ,CAAC;QACD,QAAQ,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC;KAC5C,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"ZudokuContext.js","sourceRoot":"","sources":["../../../../src/lib/components/context/ZudokuContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAC7C,SAAS,CACV,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE;IAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAAE,CAAC;IACzC,OAAO,QAAQ,CAAC;QACd,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,CAAC,gBAAgB,CAAC;KAC7B,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,MAAM,EAAE,aAAa,EAAE,GAAG,SAAS,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrD,IAAI,CAAC,SAAS;QAAE,OAAO;IAEvB,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE;IAChC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,CAAC;IACnD,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;IACvC,MAAM,IAAI,GAAG,OAAO,EAAE,EAAE,CAAC;IACzB,MAAM,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,OAAO,gBAAgB,CAAC;QACtB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,aAAa,GAAG,IAAI;gBACxB,CAAC,CAAC,MAAM,gBAAgB,CAAC,IAAI,CAAC;gBAC9B,CAAC,CAAC,MAAM,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAE9C,OAAO;gBACL,KAAK,EAAE,CAAC,GAAG,cAAc,EAAE,GAAG,aAAa,CAAC;gBAC5C,iBAAiB,EAAE,OAAO;aAC3B,CAAC;QACJ,CAAC;QACD,QAAQ,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC;KAC/B,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -4,12 +4,6 @@ import { Link as LinkImport } from "react-router-dom";
4
4
  import { RouterError as RouterErrorImport } from "../errors/RouterError.js";
5
5
  import { ServerError as ServerErrorImport } from "../errors/ServerError.js";
6
6
  export declare const useMDXComponents: typeof useMDXComponentsImport;
7
- export declare const Callout: ({ type, children, title, className }: {
8
- type: "note" | "tip" | "info" | "caution" | "danger";
9
- title?: string;
10
- children: import("react").ReactNode;
11
- className?: string;
12
- }) => import("react/jsx-runtime").JSX.Element;
13
7
  export declare const DevPortal: {
14
8
  (props: import("../core/DevPortalContext.js").ZudokuContextOptions): import("react/jsx-runtime").JSX.Element;
15
9
  displayName: string;
@@ -17,7 +11,6 @@ export declare const DevPortal: {
17
11
  export declare const Layout: ({ children }: {
18
12
  children?: import("react").ReactNode;
19
13
  }) => import("react/jsx-runtime").JSX.Element;
20
- export declare const Link: typeof LinkImport;
21
14
  export declare const RouterError: typeof RouterErrorImport;
22
15
  export declare const ServerError: typeof ServerErrorImport;
23
16
  export declare const Bootstrap: ({ router, hydrate, }: {
@@ -29,5 +22,21 @@ export declare const BootstrapStatic: ({ router, context, helmetContext, }: {
29
22
  context: import("react-router-dom/server.js").StaticHandlerContext;
30
23
  router: ReturnType<typeof import("react-router-dom/server.js").createStaticRouter>;
31
24
  }) => import("react/jsx-runtime").JSX.Element;
32
- export declare const Button: import("react").ForwardRefExoticComponent<import("../ui/Button.js").ButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
33
25
  export declare const Head: typeof Helmet;
26
+ export declare const useZudoku: () => import("../core/DevPortalContext.js").DevPortalContext;
27
+ export declare const useAuth: import("zustand").UseBoundStore<import("zustand").StoreApi<import("../authentication/state.js").AuthState>>;
28
+ export declare const Zudoku: {
29
+ (props: import("../core/DevPortalContext.js").ZudokuContextOptions): import("react/jsx-runtime").JSX.Element;
30
+ displayName: string;
31
+ };
32
+ export declare const Callout: ({ type, children, title, className }: {
33
+ type: "note" | "tip" | "info" | "caution" | "danger";
34
+ title?: string;
35
+ children: import("react").ReactNode;
36
+ className?: string;
37
+ }) => import("react/jsx-runtime").JSX.Element;
38
+ export declare const ClientOnly: (props: {
39
+ children: React.ReactNode;
40
+ }) => import("react").ReactNode;
41
+ export declare const Button: import("react").ForwardRefExoticComponent<import("../ui/Button.js").ButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
42
+ export declare const Link: typeof LinkImport;
@@ -1,22 +1,29 @@
1
1
  import { useMDXComponents as useMDXComponentsImport } from "@mdx-js/react";
2
2
  import { Helmet } from "@zudoku/react-helmet-async";
3
3
  import { Link as LinkImport } from "react-router-dom";
4
+ import { useAuthState } from "../authentication/state.js";
4
5
  import { RouterError as RouterErrorImport } from "../errors/RouterError.js";
5
6
  import { ServerError as ServerErrorImport } from "../errors/ServerError.js";
6
7
  import { Button as ButtonImport } from "../ui/Button.js";
7
8
  import { Callout as CalloutImport } from "../ui/Callout.js";
8
9
  import { Bootstrap as BootstrapImport, BootstrapStatic as BootstrapStaticImport, } from "./Bootstrap.js";
10
+ import { ClientOnly as ClientOnlyImport } from "./ClientOnly.js";
9
11
  import { DevPortal as DevPortalImport } from "./DevPortal.js";
10
12
  import { Layout as LayoutImport } from "./Layout.js";
13
+ import { useZudoku as useZudokuImport } from "./context/ZudokuContext.js";
11
14
  export const useMDXComponents = /*@__PURE__*/ useMDXComponentsImport;
12
- export const Callout = /*@__PURE__*/ CalloutImport;
13
15
  export const DevPortal = /*@__PURE__*/ DevPortalImport;
14
16
  export const Layout = /*@__PURE__*/ LayoutImport;
15
- export const Link = /*@__PURE__*/ LinkImport;
16
17
  export const RouterError = /*@__PURE__*/ RouterErrorImport;
17
18
  export const ServerError = /*@__PURE__*/ ServerErrorImport;
18
19
  export const Bootstrap = /*@__PURE__*/ BootstrapImport;
19
20
  export const BootstrapStatic = /*@__PURE__*/ BootstrapStaticImport;
20
- export const Button = /*@__PURE__*/ ButtonImport;
21
21
  export const Head = /*@__PURE__*/ Helmet;
22
+ export const useZudoku = /*@__PURE__*/ useZudokuImport;
23
+ export const useAuth = /*@__PURE__*/ useAuthState;
24
+ export const Zudoku = /*@__PURE__*/ DevPortalImport;
25
+ export const Callout = /*@__PURE__*/ CalloutImport;
26
+ export const ClientOnly = /*@__PURE__*/ ClientOnlyImport;
27
+ export const Button = /*@__PURE__*/ ButtonImport;
28
+ export const Link = /*@__PURE__*/ LinkImport;
22
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EACL,SAAS,IAAI,eAAe,EAC5B,eAAe,IAAI,qBAAqB,GACzC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAC,sBAAsB,CAAC;AACrE,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC;AACnD,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC,eAAe,CAAC;AACvD,MAAM,CAAC,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC;AACjD,MAAM,CAAC,MAAM,IAAI,GAAsB,aAAa,CAAC,UAAU,CAAC;AAChE,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC,iBAAiB,CAAC;AAC3D,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC,iBAAiB,CAAC;AAC3D,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC,eAAe,CAAC;AACvD,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAC,qBAAqB,CAAC;AACnE,MAAM,CAAC,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC;AACjD,MAAM,CAAC,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EACL,SAAS,IAAI,eAAe,EAC5B,eAAe,IAAI,qBAAqB,GACzC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,IAAI,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC1E,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAC,sBAAsB,CAAC;AACrE,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC,eAAe,CAAC;AACvD,MAAM,CAAC,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC;AACjD,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC,iBAAiB,CAAC;AAC3D,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC,iBAAiB,CAAC;AAC3D,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC,eAAe,CAAC;AACvD,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAC,qBAAqB,CAAC;AAEnE,MAAM,CAAC,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC;AAEzC,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC,eAAe,CAAC;AACvD,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC;AAClD,MAAM,CAAC,MAAM,MAAM,GAAG,aAAa,CAAC,eAAe,CAAC;AAEpD,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC;AACnD,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC,gBAAgB,CAAC;AACzD,MAAM,CAAC,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC;AACjD,MAAM,CAAC,MAAM,IAAI,GAAsB,aAAa,CAAC,UAAU,CAAC"}
@@ -2,13 +2,13 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  import { useRef } from "react";
3
3
  import { VisuallyHidden } from "@radix-ui/react-visually-hidden";
4
4
  import { DrawerContent, DrawerTitle } from "../../ui/Drawer.js";
5
- import { useCurrentNavigation } from "../context/ZudokuContext.js";
5
+ import { useNavigation } from "../context/ZudokuContext.js";
6
6
  import { Slotlet } from "../SlotletProvider.js";
7
7
  import { SidebarItem } from "./SidebarItem.js";
8
8
  import { SidebarWrapper } from "./SidebarWrapper.js";
9
9
  export const Sidebar = () => {
10
10
  const navRef = useRef(null);
11
- const navigation = useCurrentNavigation();
12
- return (_jsxs(_Fragment, { children: [_jsxs(SidebarWrapper, { ref: navRef, pushMainContent: navigation.data.sidebar.length > 0, children: [_jsx(Slotlet, { name: "zudoku-before-navigation" }), navigation.data.sidebar.map((item) => (_jsx(SidebarItem, { item: item }, item.label))), _jsx(Slotlet, { name: "zudoku-after-navigation" })] }), _jsxs(DrawerContent, { className: "lg:hidden h-screen left-0 p-6 w-[320px] rounded-none", "aria-describedby": undefined, children: [_jsx(VisuallyHidden, { children: _jsx(DrawerTitle, { children: "Sidebar" }) }), navigation.data.sidebar.map((item) => (_jsx(SidebarItem, { item: item }, item.label)))] })] }));
11
+ const navigation = useNavigation();
12
+ return (_jsxs(_Fragment, { children: [_jsxs(SidebarWrapper, { ref: navRef, pushMainContent: navigation.data.items.length > 0, children: [_jsx(Slotlet, { name: "zudoku-before-navigation" }), navigation.data.items.map((item) => (_jsx(SidebarItem, { item: item }, item.label))), _jsx(Slotlet, { name: "zudoku-after-navigation" })] }), _jsxs(DrawerContent, { className: "lg:hidden h-screen left-0 p-6 w-[320px] rounded-none overflow-auto", "aria-describedby": undefined, children: [_jsx(VisuallyHidden, { children: _jsx(DrawerTitle, { children: "Sidebar" }) }), navigation.data.items.map((item) => (_jsx(SidebarItem, { item: item }, item.label)))] })] }));
13
13
  };
14
14
  //# sourceMappingURL=Sidebar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/Sidebar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE;IAC1B,MAAM,MAAM,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,oBAAoB,EAAE,CAAC;IAE1C,OAAO,CACL,8BACE,MAAC,cAAc,IACb,GAAG,EAAE,MAAM,EACX,eAAe,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,aAEnD,KAAC,OAAO,IAAC,IAAI,EAAC,0BAA0B,GAAG,EAC1C,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACrC,KAAC,WAAW,IAAkB,IAAI,EAAE,IAAI,IAAtB,IAAI,CAAC,KAAK,CAAgB,CAC7C,CAAC,EACF,KAAC,OAAO,IAAC,IAAI,EAAC,yBAAyB,GAAG,IAC3B,EACjB,MAAC,aAAa,IACZ,SAAS,EAAC,sDAAsD,sBAC9C,SAAS,aAE3B,KAAC,cAAc,cACb,KAAC,WAAW,0BAAsB,GACnB,EAChB,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACrC,KAAC,WAAW,IAAkB,IAAI,EAAE,IAAI,IAAtB,IAAI,CAAC,KAAK,CAAgB,CAC7C,CAAC,IACY,IACf,CACJ,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/Sidebar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE;IAC1B,MAAM,MAAM,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IAEnC,OAAO,CACL,8BACE,MAAC,cAAc,IACb,GAAG,EAAE,MAAM,EACX,eAAe,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,aAEjD,KAAC,OAAO,IAAC,IAAI,EAAC,0BAA0B,GAAG,EAC1C,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnC,KAAC,WAAW,IAAkB,IAAI,EAAE,IAAI,IAAtB,IAAI,CAAC,KAAK,CAAgB,CAC7C,CAAC,EACF,KAAC,OAAO,IAAC,IAAI,EAAC,yBAAyB,GAAG,IAC3B,EACjB,MAAC,aAAa,IACZ,SAAS,EAAC,oEAAoE,sBAC5D,SAAS,aAE3B,KAAC,cAAc,cACb,KAAC,WAAW,0BAAsB,GACnB,EAChB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnC,KAAC,WAAW,IAAkB,IAAI,EAAE,IAAI,IAAtB,IAAI,CAAC,KAAK,CAAgB,CAC7C,CAAC,IACY,IACf,CACJ,CAAC;AACJ,CAAC,CAAC"}
@@ -2,18 +2,21 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import * as Collapsible from "@radix-ui/react-collapsible";
3
3
  import { ChevronRightIcon } from "lucide-react";
4
4
  import { useEffect, useState } from "react";
5
- import { NavLink } from "react-router-dom";
5
+ import { NavLink, useMatch } from "react-router-dom";
6
6
  import { cn } from "../../util/cn.js";
7
7
  import { joinPath } from "../../util/joinPath.js";
8
+ import { useTopNavigationItem } from "../context/ZudokuContext.js";
8
9
  import { navigationListItem, SidebarItem } from "./SidebarItem.js";
9
10
  import { useIsCategoryOpen } from "./utils.js";
10
11
  export const SidebarCategory = ({ category, level, }) => {
12
+ const topNavItem = useTopNavigationItem();
11
13
  const isCategoryOpen = useIsCategoryOpen(category);
12
14
  const [hasInteracted, setHasInteracted] = useState(false);
13
15
  const isCollapsible = category.collapsible ?? true;
14
16
  const isCollapsed = category.collapsed ?? true;
15
17
  const isDefaultOpen = Boolean(!isCollapsible || !isCollapsed || isCategoryOpen);
16
18
  const [open, setOpen] = useState(isDefaultOpen);
19
+ const isActive = useMatch(joinPath(topNavItem?.id, category.link?.id));
17
20
  useEffect(() => {
18
21
  // this is triggered when an item from the sidebar is clicked
19
22
  // and the sidebar, enclosing this item, is not opened
@@ -26,13 +29,23 @@ export const SidebarCategory = ({ category, level, }) => {
26
29
  setOpen((prev) => !prev);
27
30
  setHasInteracted(true);
28
31
  }, children: _jsx(ChevronRightIcon, { size: 16, className: cn(hasInteracted && "transition", "shrink-0 group-data-[state=open]:rotate-90") }) }));
29
- return (_jsxs(Collapsible.Root, { className: cn("flex flex-col", level === 0 && "-mx-[--padding-nav-item]"), defaultOpen: isDefaultOpen, open: open, onOpenChange: () => setOpen(true), children: [_jsx(Collapsible.Trigger, { className: "group", asChild: true, disabled: !isCollapsible, children: _jsxs("div", { className: cn("text-start", navigationListItem({ isActive: false, isTopLevel: level === 0 }), isCollapsible
30
- ? "cursor-pointer"
31
- : "cursor-default hover:bg-transparent"), children: [category.icon && (_jsx(category.icon, { size: 16, className: "align-[-0.125em] -translate-x-1" })), category.link?.type === "doc" ? (_jsx(NavLink, { to: joinPath(category.link.id), className: "flex-1", onClick: () => setHasInteracted(true), children: ({ isActive }) => (_jsxs("div", { className: cn("flex items-center gap-2 justify-between w-full", isActive
32
- ? "text-primary font-medium"
33
- : "text-foreground/80"), children: [_jsx("div", { className: "truncate", children: category.label }), ToggleButton] })) })) : (_jsxs("div", { className: "flex items-center justify-between w-full", children: [_jsx("div", { className: "flex gap-2 truncate w-full", children: category.label }), ToggleButton] }))] }) }), _jsx(Collapsible.Content, { className: cn(
32
+ return (_jsxs(Collapsible.Root, { className: "flex flex-col", defaultOpen: isDefaultOpen, open: open, onOpenChange: () => setOpen(true), children: [_jsx(Collapsible.Trigger, { className: "group", asChild: true, disabled: !isCollapsible, children: _jsxs("div", { onClick: () => setHasInteracted(true), className: navigationListItem({
33
+ isActive: false,
34
+ isTopLevel: level === 0,
35
+ className: [
36
+ "text-start",
37
+ isCollapsible
38
+ ? "cursor-pointer"
39
+ : "cursor-default hover:bg-transparent",
40
+ ],
41
+ }), children: [category.icon && (_jsx(category.icon, { size: 16, className: cn("align-[-0.125em] -translate-x-1", isActive && "text-primary") })), category.link?.type === "doc" ? (_jsx(NavLink, { to: joinPath(topNavItem?.id, category.link.id), className: "flex-1", onClick: () => {
42
+ // if it is the current path and closed then open it because there's no path change to trigger the open
43
+ if (isActive && !open) {
44
+ setOpen(true);
45
+ }
46
+ }, children: _jsxs("div", { className: cn("flex items-center gap-2 justify-between w-full", isActive ? "text-primary" : "text-foreground/80"), children: [_jsx("div", { className: "truncate", children: category.label }), ToggleButton] }) })) : (_jsxs("div", { className: "flex items-center justify-between w-full", children: [_jsx("div", { className: "flex gap-2 truncate w-full", children: category.label }), ToggleButton] }))] }) }), _jsx(Collapsible.Content, { className: cn(
34
47
  // CollapsibleContent class is used to animate and it should only be applied when the user has triggered the toggle
35
- hasInteracted && "CollapsibleContent", "ms-[calc(var(--padding-nav-item)*1.125)]"), children: _jsx("ul", { className: "mt-1 border-l ps-2", children: category.items.map((item) => (_jsx(SidebarItem, { level: level + 1, item: item }, ("id" in item ? item.id : "") +
48
+ hasInteracted && "CollapsibleContent"), children: _jsx("ul", { className: "mt-1 border-l ms-0.5", children: category.items.map((item) => (_jsx(SidebarItem, { level: level + 1, item: item }, ("id" in item ? item.id : "") +
36
49
  ("href" in item ? item.href : "") +
37
50
  item.label))) }) })] }));
38
51
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SidebarCategory.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/SidebarCategory.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SidebarCategory.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/SidebarCategory.tsx"],"names":[],"mappings":"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"}
@@ -2,16 +2,17 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
2
2
  import { cva } from "class-variance-authority";
3
3
  import { ExternalLinkIcon } from "lucide-react";
4
4
  import { NavLink, useSearchParams } from "react-router-dom";
5
- import { cn } from "../../util/cn.js";
6
5
  import { joinPath } from "../../util/joinPath.js";
7
6
  import { AnchorLink } from "../AnchorLink.js";
8
7
  import { useViewportAnchor } from "../context/ViewportAnchorContext.js";
8
+ import { useTopNavigationItem } from "../context/ZudokuContext.js";
9
9
  import { SidebarBadge } from "./SidebarBadge.js";
10
10
  import { SidebarCategory } from "./SidebarCategory.js";
11
11
  export const navigationListItem = cva("flex items-center gap-2 px-[--padding-nav-item] py-1.5 rounded-lg hover:bg-accent transition-colors duration-300", {
12
12
  variants: {
13
13
  isTopLevel: {
14
- true: "font-semibold",
14
+ true: "font-medium -mx-[--padding-nav-item]",
15
+ false: "-mr-[--padding-nav-item] ml-[--padding-nav-item]",
15
16
  },
16
17
  isActive: {
17
18
  true: "text-primary font-medium",
@@ -22,20 +23,28 @@ export const navigationListItem = cva("flex items-center gap-2 px-[--padding-nav
22
23
  false: "",
23
24
  },
24
25
  },
26
+ defaultVariants: {
27
+ isActive: false,
28
+ },
25
29
  });
26
30
  export const DATA_ANCHOR_ATTR = "data-anchor";
27
31
  export const SidebarItem = ({ item, level = 0, }) => {
32
+ const topNavItem = useTopNavigationItem();
28
33
  const { activeAnchor } = useViewportAnchor();
29
34
  const [searchParams] = useSearchParams();
30
35
  switch (item.type) {
31
36
  case "category":
32
37
  return _jsx(SidebarCategory, { category: item, level: level });
33
38
  case "doc":
34
- return (_jsxs(NavLink, { className: ({ isActive }) => navigationListItem({ isActive, isTopLevel: level === 0 }), to: joinPath(item.id), children: [item.icon && _jsx(item.icon, { size: 16, className: "align-[-0.125em]" }), item.badge ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "truncate", title: item.label, children: item.label }), _jsx(SidebarBadge, { ...item.badge })] })) : (item.label)] }));
39
+ return (_jsxs(NavLink, { className: ({ isActive }) => navigationListItem({ isActive, isTopLevel: level === 0 }), to: joinPath(topNavItem?.id, item.id), children: [item.icon && _jsx(item.icon, { size: 16, className: "align-[-0.125em]" }), item.badge ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "truncate flex-1", title: item.label, children: item.label }), _jsx(SidebarBadge, { ...item.badge })] })) : (item.label)] }));
35
40
  case "link":
36
- return item.href.startsWith("#") ? (_jsx(AnchorLink, { to: { hash: item.href, search: searchParams.toString() }, [DATA_ANCHOR_ATTR]: item.href.slice(1), className: cn("flex gap-2.5 justify-between", level === 0 && "-mx-[--padding-nav-item]", navigationListItem({
41
+ return item.href.startsWith("#") ? (_jsx(AnchorLink, { to: { hash: item.href, search: searchParams.toString() }, [DATA_ANCHOR_ATTR]: item.href.slice(1), className: navigationListItem({
37
42
  isActive: item.href.slice(1) === activeAnchor,
38
- })), children: item.badge ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "truncate", title: item.label, children: item.label }), _jsx(SidebarBadge, { ...item.badge })] })) : (_jsx("span", { className: "break-all", children: item.label })) })) : !item.href.startsWith("http") ? (_jsx(NavLink, { className: cn("flex gap-2.5 justify-between", navigationListItem()), to: item.href, children: item.badge ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "truncate", title: item.label, children: item.label }), _jsx(SidebarBadge, { ...item.badge })] })) : (_jsx("span", { className: "break-all", children: item.label })) })) : (_jsxs("a", { className: cn(navigationListItem({ isTopLevel: level === 0 }), "block"), href: item.href, target: "_blank", rel: "noopener noreferrer", children: [_jsx("span", { className: "whitespace-normal", children: item.label }), _jsxs("span", { className: "whitespace-nowrap", children: ["\u00A0", _jsx(ExternalLinkIcon, { className: "inline ml-1", size: 12 })] })] }));
43
+ isTopLevel: level === 0,
44
+ className: item.badge?.placement !== "start" && "justify-between",
45
+ }), children: item.badge ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "truncate", title: item.label, children: item.label }), _jsx(SidebarBadge, { ...item.badge })] })) : (_jsx("span", { className: "break-all", children: item.label })) })) : !item.href.startsWith("http") ? (_jsx(NavLink, { className: navigationListItem({
46
+ className: item.badge?.placement !== "start" && "justify-between",
47
+ }), to: item.href, children: item.badge ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "truncate", title: item.label, children: item.label }), _jsx(SidebarBadge, { ...item.badge })] })) : (_jsx("span", { className: "break-all", children: item.label })) })) : (_jsxs("a", { className: navigationListItem({ isTopLevel: level === 0 }), href: item.href, target: "_blank", rel: "noopener noreferrer", children: [_jsx("span", { className: "whitespace-normal", children: item.label }), _jsx("span", { className: "whitespace-nowrap", children: _jsx(ExternalLinkIcon, { className: "inline -translate-y-0.5", size: 12 }) })] }));
39
48
  }
40
49
  };
41
50
  //# sourceMappingURL=SidebarItem.js.map