zudoku 0.3.0-dev.83 → 0.3.0-dev.84

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 (185) hide show
  1. package/cli.js +5 -1
  2. package/dist/app/demo.js +5 -4
  3. package/dist/app/demo.js.map +1 -1
  4. package/dist/app/main.js +3 -1
  5. package/dist/app/main.js.map +1 -1
  6. package/dist/app/standalone.js +5 -4
  7. package/dist/app/standalone.js.map +1 -1
  8. package/dist/config/validators/ResolvedSidebarSchema.d.ts +18 -0
  9. package/dist/config/validators/ResolvedSidebarSchema.js +76 -0
  10. package/dist/config/validators/ResolvedSidebarSchema.js.map +1 -0
  11. package/dist/config/validators/SidebarSchema.d.ts +177 -0
  12. package/dist/config/validators/SidebarSchema.js +71 -0
  13. package/dist/config/validators/SidebarSchema.js.map +1 -0
  14. package/dist/config/validators/validate.d.ts +411 -59
  15. package/dist/config/validators/validate.js +22 -4
  16. package/dist/config/validators/validate.js.map +1 -1
  17. package/dist/index.d.ts +1 -1
  18. package/dist/lib/components/DevPortal.js +1 -1
  19. package/dist/lib/components/DevPortal.js.map +1 -1
  20. package/dist/lib/components/Header.js.map +1 -1
  21. package/dist/lib/components/Heading.d.ts +1 -1
  22. package/dist/lib/components/Layout.js +2 -2
  23. package/dist/lib/components/Layout.js.map +1 -1
  24. package/dist/lib/components/TopNavigation.js +5 -5
  25. package/dist/lib/components/TopNavigation.js.map +1 -1
  26. package/dist/lib/components/context/DevPortalProvider.d.ts +9 -3
  27. package/dist/lib/components/context/DevPortalProvider.js +11 -23
  28. package/dist/lib/components/context/DevPortalProvider.js.map +1 -1
  29. package/dist/lib/components/context/ThemeContext.d.ts +1 -4
  30. package/dist/lib/components/context/ThemeContext.js +3 -29
  31. package/dist/lib/components/context/ThemeContext.js.map +1 -1
  32. package/dist/lib/components/context/ThemeProvider.d.ts +4 -0
  33. package/dist/lib/components/context/ThemeProvider.js +23 -0
  34. package/dist/lib/components/context/ThemeProvider.js.map +1 -0
  35. package/dist/lib/components/navigation/Sidebar.d.ts +1 -0
  36. package/dist/lib/components/navigation/Sidebar.js +12 -0
  37. package/dist/lib/components/navigation/Sidebar.js.map +1 -0
  38. package/dist/lib/components/navigation/SidebarBadge.d.ts +22 -0
  39. package/dist/lib/components/navigation/SidebarBadge.js +24 -0
  40. package/dist/lib/components/navigation/SidebarBadge.js.map +1 -0
  41. package/dist/lib/components/navigation/SidebarCategory.d.ts +5 -0
  42. package/dist/lib/components/navigation/SidebarCategory.js +33 -0
  43. package/dist/lib/components/navigation/SidebarCategory.js.map +1 -0
  44. package/dist/lib/components/navigation/SidebarItem.d.ts +12 -0
  45. package/dist/lib/components/navigation/SidebarItem.js +42 -0
  46. package/dist/lib/components/navigation/SidebarItem.js.map +1 -0
  47. package/dist/lib/components/navigation/{SideNavigationWrapper.d.ts → SidebarWrapper.d.ts} +1 -1
  48. package/dist/lib/components/navigation/{SideNavigationWrapper.js → SidebarWrapper.js} +2 -2
  49. package/dist/lib/components/navigation/SidebarWrapper.js.map +1 -0
  50. package/dist/lib/components/navigation/utils.d.ts +16 -0
  51. package/dist/lib/components/navigation/utils.js +85 -0
  52. package/dist/lib/components/navigation/utils.js.map +1 -0
  53. package/dist/lib/core/DevPortalContext.d.ts +9 -32
  54. package/dist/lib/core/DevPortalContext.js +8 -5
  55. package/dist/lib/core/DevPortalContext.js.map +1 -1
  56. package/dist/lib/core/plugins.d.ts +6 -8
  57. package/dist/lib/core/plugins.js.map +1 -1
  58. package/dist/lib/plugins/markdown/MdxPage.js +5 -36
  59. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  60. package/dist/lib/plugins/markdown/generateRoutes.js +20 -43
  61. package/dist/lib/plugins/markdown/generateRoutes.js.map +1 -1
  62. package/dist/lib/plugins/openapi/Sidecar.js +12 -2
  63. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  64. package/dist/lib/plugins/openapi/index.js +14 -11
  65. package/dist/lib/plugins/openapi/index.js.map +1 -1
  66. package/dist/lib/plugins/openapi/interfaces.d.ts +1 -1
  67. package/dist/lib/util/useScrollToAnchor.js +31 -17
  68. package/dist/lib/util/useScrollToAnchor.js.map +1 -1
  69. package/dist/vite/plugin-sidebar.d.ts +3 -0
  70. package/dist/vite/plugin-sidebar.js +23 -0
  71. package/dist/vite/plugin-sidebar.js.map +1 -0
  72. package/dist/vite/plugin.js +2 -0
  73. package/dist/vite/plugin.js.map +1 -1
  74. package/lib/{AuthenticationPlugin-XS0DoAhE.js → AuthenticationPlugin-DgwV0hVu.js} +7 -7
  75. package/lib/{AuthenticationPlugin-XS0DoAhE.js.map → AuthenticationPlugin-DgwV0hVu.js.map} +1 -1
  76. package/lib/{CategoryHeading-DCmchnA1.js → CategoryHeading-BWq12Bfa.js} +3 -3
  77. package/lib/{CategoryHeading-DCmchnA1.js.map → CategoryHeading-BWq12Bfa.js.map} +1 -1
  78. package/lib/{Combination-C442XfGG.js → Combination-DkycFHkm.js} +4 -4
  79. package/lib/{Combination-C442XfGG.js.map → Combination-DkycFHkm.js.map} +1 -1
  80. package/lib/{DevPortalProvider-BWeAysxF.js → DevPortalProvider-CTxoCHIT.js} +375 -417
  81. package/lib/DevPortalProvider-CTxoCHIT.js.map +1 -0
  82. package/lib/DeveloperHint-BQSFXH01.js +10 -0
  83. package/lib/{DeveloperHint-DQVwIery.js.map → DeveloperHint-BQSFXH01.js.map} +1 -1
  84. package/lib/{Input-3IEt27jb.js → Input-BclXSY0g.js} +5 -5
  85. package/lib/{Input-3IEt27jb.js.map → Input-BclXSY0g.js.map} +1 -1
  86. package/lib/{Markdown-QsZ-PHET.js → Markdown-B_Gax7at.js} +1136 -1152
  87. package/lib/{Markdown-QsZ-PHET.js.map → Markdown-B_Gax7at.js.map} +1 -1
  88. package/lib/{MdxPage-CA1WmW14.js → MdxPage-Crlr0GmN.js} +67 -81
  89. package/lib/MdxPage-Crlr0GmN.js.map +1 -0
  90. package/lib/{OperationList-CHK_erYP.js → OperationList-nQ0bd8TU.js} +8 -8
  91. package/lib/{OperationList-CHK_erYP.js.map → OperationList-nQ0bd8TU.js.map} +1 -1
  92. package/lib/Route-CNvxEBnR.js +14 -0
  93. package/lib/{Route-D70pGn9n.js.map → Route-CNvxEBnR.js.map} +1 -1
  94. package/lib/{SlotletProvider-B71hNEUL.js → SlotletProvider-CzMAO73_.js} +12 -12
  95. package/lib/{SlotletProvider-B71hNEUL.js.map → SlotletProvider-CzMAO73_.js.map} +1 -1
  96. package/lib/Spinner-fF-Xv-gw.js +274 -0
  97. package/lib/Spinner-fF-Xv-gw.js.map +1 -0
  98. package/lib/index-7kcHaXD6.js +1771 -0
  99. package/lib/index-7kcHaXD6.js.map +1 -0
  100. package/lib/{index-Bl6YeerK.js → index-CgCPw6Jn.js} +1026 -1043
  101. package/lib/index-CgCPw6Jn.js.map +1 -0
  102. package/lib/{index-BH-Ub36F.js → index-DkuZvRNP.js} +4 -4
  103. package/lib/{index-BH-Ub36F.js.map → index-DkuZvRNP.js.map} +1 -1
  104. package/lib/joinPath-VeNuJa7y.js +8 -0
  105. package/lib/joinPath-VeNuJa7y.js.map +1 -0
  106. package/lib/jsx-runtime-B6kdoens.js +635 -0
  107. package/lib/jsx-runtime-B6kdoens.js.map +1 -0
  108. package/lib/{AnchorLink-BZcpTwOs.js → utils-CzT_9Tsn.js} +258 -214
  109. package/lib/utils-CzT_9Tsn.js.map +1 -0
  110. package/lib/zudoku.auth-clerk.js +1 -1
  111. package/lib/zudoku.auth-openid.js +2 -2
  112. package/lib/zudoku.components.js +1229 -1227
  113. package/lib/zudoku.components.js.map +1 -1
  114. package/lib/zudoku.plugin-api-keys.js +19 -19
  115. package/lib/zudoku.plugin-custom-page.js +2 -2
  116. package/lib/zudoku.plugin-markdown.js +21 -38
  117. package/lib/zudoku.plugin-markdown.js.map +1 -1
  118. package/lib/zudoku.plugin-openapi.js +8 -6
  119. package/lib/zudoku.plugin-openapi.js.map +1 -1
  120. package/package.json +4 -1
  121. package/src/app/demo.tsx +5 -4
  122. package/src/app/main.css +2 -2
  123. package/src/app/main.tsx +3 -1
  124. package/src/app/standalone.tsx +5 -4
  125. package/src/lib/components/DevPortal.tsx +1 -1
  126. package/src/lib/components/Header.tsx +2 -2
  127. package/src/lib/components/Layout.tsx +2 -2
  128. package/src/lib/components/TopNavigation.tsx +5 -5
  129. package/src/lib/components/context/DevPortalProvider.ts +11 -28
  130. package/src/lib/components/context/ThemeContext.tsx +3 -41
  131. package/src/lib/components/context/ThemeProvider.tsx +27 -0
  132. package/src/lib/components/navigation/{SideNavigation.tsx → Sidebar.tsx} +7 -7
  133. package/src/lib/components/navigation/SidebarBadge.tsx +40 -0
  134. package/src/lib/components/navigation/SidebarCategory.tsx +105 -0
  135. package/src/lib/components/navigation/SidebarItem.tsx +96 -0
  136. package/src/lib/components/navigation/{SideNavigationWrapper.tsx → SidebarWrapper.tsx} +1 -1
  137. package/src/lib/components/navigation/utils.ts +120 -0
  138. package/src/lib/core/DevPortalContext.ts +12 -44
  139. package/src/lib/core/plugins.ts +6 -13
  140. package/src/lib/plugins/markdown/MdxPage.tsx +14 -50
  141. package/src/lib/plugins/markdown/generateRoutes.tsx +29 -57
  142. package/src/lib/plugins/openapi/Sidecar.tsx +15 -2
  143. package/src/lib/plugins/openapi/index.tsx +17 -23
  144. package/src/lib/plugins/openapi/interfaces.ts +1 -1
  145. package/src/lib/util/useScrollToAnchor.ts +39 -18
  146. package/dist/lib/components/navigation/SideNavigation.d.ts +0 -1
  147. package/dist/lib/components/navigation/SideNavigation.js +0 -12
  148. package/dist/lib/components/navigation/SideNavigation.js.map +0 -1
  149. package/dist/lib/components/navigation/SideNavigationCategory.d.ts +0 -4
  150. package/dist/lib/components/navigation/SideNavigationCategory.js +0 -26
  151. package/dist/lib/components/navigation/SideNavigationCategory.js.map +0 -1
  152. package/dist/lib/components/navigation/SideNavigationItem.d.ts +0 -9
  153. package/dist/lib/components/navigation/SideNavigationItem.js +0 -44
  154. package/dist/lib/components/navigation/SideNavigationItem.js.map +0 -1
  155. package/dist/lib/components/navigation/SideNavigationWrapper.js.map +0 -1
  156. package/dist/lib/components/navigation/useNavigationCollapsibleState.d.ts +0 -9
  157. package/dist/lib/components/navigation/useNavigationCollapsibleState.js +0 -28
  158. package/dist/lib/components/navigation/useNavigationCollapsibleState.js.map +0 -1
  159. package/dist/lib/components/navigation/util.d.ts +0 -8
  160. package/dist/lib/components/navigation/util.js +0 -15
  161. package/dist/lib/components/navigation/util.js.map +0 -1
  162. package/dist/lib/plugins/openapi/MethodBadge.d.ts +0 -13
  163. package/dist/lib/plugins/openapi/MethodBadge.js +0 -26
  164. package/dist/lib/plugins/openapi/MethodBadge.js.map +0 -1
  165. package/dist/lib/util/traverseNavigation.d.ts +0 -6
  166. package/dist/lib/util/traverseNavigation.js +0 -30
  167. package/dist/lib/util/traverseNavigation.js.map +0 -1
  168. package/lib/AnchorLink-BZcpTwOs.js.map +0 -1
  169. package/lib/DevPortalProvider-BWeAysxF.js.map +0 -1
  170. package/lib/DeveloperHint-DQVwIery.js +0 -10
  171. package/lib/MdxPage-CA1WmW14.js.map +0 -1
  172. package/lib/Route-D70pGn9n.js +0 -13
  173. package/lib/Spinner-Coi7ORUV.js +0 -244
  174. package/lib/Spinner-Coi7ORUV.js.map +0 -1
  175. package/lib/index-Bl6YeerK.js.map +0 -1
  176. package/lib/index-Dt-pU7Vu.js +0 -916
  177. package/lib/index-Dt-pU7Vu.js.map +0 -1
  178. package/lib/jsx-runtime-CJBdjYYx.js +0 -1526
  179. package/lib/jsx-runtime-CJBdjYYx.js.map +0 -1
  180. package/src/lib/components/navigation/SideNavigationCategory.tsx +0 -72
  181. package/src/lib/components/navigation/SideNavigationItem.tsx +0 -148
  182. package/src/lib/components/navigation/useNavigationCollapsibleState.ts +0 -42
  183. package/src/lib/components/navigation/util.ts +0 -38
  184. package/src/lib/plugins/openapi/MethodBadge.tsx +0 -36
  185. package/src/lib/util/traverseNavigation.ts +0 -55
@@ -1,33 +1,47 @@
1
1
  import { useEffect } from "react";
2
2
  import { useLocation } from "react-router-dom";
3
3
  import { useViewportAnchor } from "../components/context/ViewportAnchorContext.js";
4
+ import { DATA_ANCHOR_ATTR } from "../components/navigation/SidebarItem.js";
5
+ const scrollIntoViewIfNeeded = (element, options = { block: "center" }) => {
6
+ if (!element)
7
+ return;
8
+ const rect = element.getBoundingClientRect();
9
+ const isInView = rect.top >= 0 &&
10
+ rect.left >= 0 &&
11
+ rect.bottom <=
12
+ (window.innerHeight || document.documentElement.clientHeight) &&
13
+ rect.right <= (window.innerWidth || document.documentElement.clientWidth);
14
+ if (isInView)
15
+ return;
16
+ element.scrollIntoView(options);
17
+ };
4
18
  export const useScrollToAnchor = () => {
5
19
  const location = useLocation();
6
20
  const { setActiveAnchor } = useViewportAnchor();
7
21
  useEffect(() => {
8
22
  if (!location.hash)
9
23
  return;
10
- const hash = location.hash.split("/")[0].slice(1);
11
- const element = document.getElementById(decodeURIComponent(hash));
12
- if (element) {
13
- // on page navigation element might be in DOM but not yet scrollable, so wait for a frame
14
- requestAnimationFrame(() => {
24
+ const hash = decodeURIComponent(location.hash.split("/")[0].slice(1));
25
+ const scrollToElement = () => {
26
+ const element = document.getElementById(hash);
27
+ const link = document.querySelector(`[${DATA_ANCHOR_ATTR}="${hash}"]`);
28
+ if (element) {
15
29
  element.scrollIntoView();
30
+ scrollIntoViewIfNeeded(link);
16
31
  requestIdleCallback(() => setActiveAnchor(hash));
32
+ return true;
33
+ }
34
+ return false;
35
+ };
36
+ if (!scrollToElement()) {
37
+ const observer = new MutationObserver((_, obs) => {
38
+ if (!scrollToElement())
39
+ return;
40
+ obs.disconnect();
17
41
  });
18
- return;
42
+ observer.observe(document.body, { childList: true, subtree: true });
43
+ return () => observer.disconnect();
19
44
  }
20
- // on page load, the element might not be available yet
21
- const observer = new MutationObserver((_mutations, obs) => {
22
- const element = document.getElementById(decodeURIComponent(hash));
23
- if (!element)
24
- return;
25
- element.scrollIntoView();
26
- requestIdleCallback(() => setActiveAnchor(hash));
27
- obs.disconnect();
28
- });
29
- observer.observe(document.body, { childList: true, subtree: true });
30
- return () => observer.disconnect();
31
45
  }, [location.hash, setActiveAnchor]);
32
46
  };
33
47
  //# sourceMappingURL=useScrollToAnchor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useScrollToAnchor.js","sourceRoot":"","sources":["../../../src/lib/util/useScrollToAnchor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AAEnF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,EAAE,eAAe,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAEhD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ,CAAC,IAAI;YAAE,OAAO;QAE3B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAElD,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,IAAI,OAAO,EAAE,CAAC;YACZ,yFAAyF;YACzF,qBAAqB,CAAC,GAAG,EAAE;gBACzB,OAAO,CAAC,cAAc,EAAE,CAAC;gBACzB,mBAAmB,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,uDAAuD;QACvD,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE;YACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,OAAO;gBAAE,OAAO;YAErB,OAAO,CAAC,cAAc,EAAE,CAAC;YACzB,mBAAmB,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YACjD,GAAG,CAAC,UAAU,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpE,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;AACvC,CAAC,CAAC"}
1
+ {"version":3,"file":"useScrollToAnchor.js","sourceRoot":"","sources":["../../../src/lib/util/useScrollToAnchor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAE3E,MAAM,sBAAsB,GAAG,CAC7B,OAAuB,EACvB,UAAiC,EAAE,KAAK,EAAE,QAAQ,EAAE,EACpD,EAAE;IACF,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,MAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAC7C,MAAM,QAAQ,GACZ,IAAI,CAAC,GAAG,IAAI,CAAC;QACb,IAAI,CAAC,IAAI,IAAI,CAAC;QACd,IAAI,CAAC,MAAM;YACT,CAAC,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC;QAC/D,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;IAE5E,IAAI,QAAQ;QAAE,OAAO;IAErB,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,EAAE,eAAe,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAEhD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ,CAAC,IAAI;YAAE,OAAO;QAE3B,MAAM,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtE,MAAM,eAAe,GAAG,GAAG,EAAE;YAC3B,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,gBAAgB,KAAK,IAAI,IAAI,CAAC,CAAC;YAEvE,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,cAAc,EAAE,CAAC;gBACzB,sBAAsB,CAAC,IAAI,CAAC,CAAC;gBAC7B,mBAAmB,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;gBAC/C,IAAI,CAAC,eAAe,EAAE;oBAAE,OAAO;gBAC/B,GAAG,CAAC,UAAU,EAAE,CAAC;YACnB,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAEpE,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QACrC,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;AACvC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Plugin } from "vite";
2
+ import { ZudokuPluginOptions } from "../config/config.js";
3
+ export declare const viteSidebarPlugin: (config: ZudokuPluginOptions) => Plugin;
@@ -0,0 +1,23 @@
1
+ import { resolveSidebar } from "../config/validators/ResolvedSidebarSchema.js";
2
+ export const viteSidebarPlugin = (config) => {
3
+ const virtualModuleId = "virtual:zudoku-sidebar";
4
+ const resolvedVirtualModuleId = "\0" + virtualModuleId;
5
+ return {
6
+ name: "zudoku-sidebar-plugin",
7
+ resolveId(id) {
8
+ if (id === virtualModuleId) {
9
+ return resolvedVirtualModuleId;
10
+ }
11
+ },
12
+ async load(id) {
13
+ if (id !== resolvedVirtualModuleId)
14
+ return;
15
+ const resolvedSidebar = Object.fromEntries(await Promise.all(Object.entries(config.sidebar ?? {}).map(async ([id, sidebar]) => [
16
+ id,
17
+ await resolveSidebar(config.rootDir, id, sidebar),
18
+ ])));
19
+ return `export const configuredSidebar = ${JSON.stringify(resolvedSidebar)};`;
20
+ },
21
+ };
22
+ };
23
+ //# sourceMappingURL=plugin-sidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-sidebar.js","sourceRoot":"","sources":["../../src/vite/plugin-sidebar.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAE/E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAA2B,EAAU,EAAE;IACvE,MAAM,eAAe,GAAG,wBAAwB,CAAC;IACjD,MAAM,uBAAuB,GAAG,IAAI,GAAG,eAAe,CAAC;IAEvD,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,SAAS,CAAC,EAAE;YACV,IAAI,EAAE,KAAK,eAAe,EAAE,CAAC;gBAC3B,OAAO,uBAAuB,CAAC;YACjC,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,KAAK,uBAAuB;gBAAE,OAAO;YAE3C,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,CACxC,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;gBAChE,EAAE;gBACF,MAAM,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC;aAClD,CAAC,CACH,CACF,CAAC;YAEF,OAAO,oCAAoC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC;QAChF,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -8,6 +8,7 @@ import viteCustomCss from "./plugin-custom-css.js";
8
8
  import viteDocsPlugin from "./plugin-docs.js";
9
9
  import viteMdxPlugin from "./plugin-mdx.js";
10
10
  import viteRedirectPlugin from "./plugin-redirect.js";
11
+ import { viteSidebarPlugin } from "./plugin-sidebar.js";
11
12
  export default function vitePlugin(config) {
12
13
  return [
13
14
  viteMdxPlugin(config),
@@ -16,6 +17,7 @@ export default function vitePlugin(config) {
16
17
  viteApiKeysPlugin(config),
17
18
  viteAuthPlugin(config),
18
19
  viteDocsPlugin(config),
20
+ viteSidebarPlugin(config),
19
21
  viteApiPlugin(config),
20
22
  viteComponentPlugin(config),
21
23
  viteRedirectPlugin(config),
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/vite/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,sBAAsB,CAAC;AAGzC,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AACrD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,aAAa,MAAM,wBAAwB,CAAC;AACnD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,MAA2B;IAE3B,OAAO;QACL,aAAa,CAAC,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;QACzC,gBAAgB,CAAC,MAAM,CAAC;QACxB,iBAAiB,CAAC,MAAM,CAAC;QACzB,cAAc,CAAC,MAAM,CAAC;QACtB,cAAc,CAAC,MAAM,CAAC;QACtB,aAAa,CAAC,MAAM,CAAC;QACrB,mBAAmB,CAAC,MAAM,CAAC;QAC3B,kBAAkB,CAAC,MAAM,CAAC;QAC1B,aAAa,CAAC,MAAM,CAAC;KACtB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/vite/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,sBAAsB,CAAC;AAGzC,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AACrD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,aAAa,MAAM,wBAAwB,CAAC;AACnD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,MAA2B;IAE3B,OAAO;QACL,aAAa,CAAC,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;QACzC,gBAAgB,CAAC,MAAM,CAAC;QACxB,iBAAiB,CAAC,MAAM,CAAC;QACzB,cAAc,CAAC,MAAM,CAAC;QACtB,cAAc,CAAC,MAAM,CAAC;QACtB,iBAAiB,CAAC,MAAM,CAAC;QACzB,aAAa,CAAC,MAAM,CAAC;QACrB,mBAAmB,CAAC,MAAM,CAAC;QAC3B,kBAAkB,CAAC,MAAM,CAAC;QAC1B,aAAa,CAAC,MAAM,CAAC;KACtB,CAAC;AACJ,CAAC"}
@@ -1,9 +1,9 @@
1
- import { a as s, j as i } from "./jsx-runtime-CJBdjYYx.js";
1
+ import { j as i } from "./jsx-runtime-B6kdoens.js";
2
2
  import { useEffect as o } from "react";
3
- import { u } from "./index-Dt-pU7Vu.js";
4
- import { u as a } from "./DevPortalProvider-BWeAysxF.js";
3
+ import { e as a, b as u } from "./index-7kcHaXD6.js";
4
+ import { u as s } from "./DevPortalProvider-CTxoCHIT.js";
5
5
  const r = () => {
6
- const t = a(), [n] = u();
6
+ const t = s(), [n] = a();
7
7
  return o(() => {
8
8
  var e;
9
9
  (e = t.authentication) == null || e.signIn({
@@ -11,13 +11,13 @@ const r = () => {
11
11
  });
12
12
  }, [t.authentication, n]), null;
13
13
  }, c = () => {
14
- const t = a(), n = s();
14
+ const t = s(), n = u();
15
15
  return o(() => {
16
16
  var e;
17
17
  (e = t.authentication) == null || e.signOut().then(() => n("/"));
18
18
  }, [n, t.authentication]), null;
19
19
  }, g = () => {
20
- const t = a();
20
+ const t = s();
21
21
  return o(() => {
22
22
  var n, e;
23
23
  ((n = t.authentication) == null ? void 0 : n.signUp()) ?? ((e = t.authentication) == null || e.signIn());
@@ -52,4 +52,4 @@ class x {
52
52
  export {
53
53
  x as A
54
54
  };
55
- //# sourceMappingURL=AuthenticationPlugin-XS0DoAhE.js.map
55
+ //# sourceMappingURL=AuthenticationPlugin-DgwV0hVu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuthenticationPlugin-XS0DoAhE.js","sources":["../src/lib/authentication/components/SignIn.tsx","../src/lib/authentication/components/SignOut.tsx","../src/lib/authentication/components/SignUp.tsx","../src/lib/authentication/AuthenticationPlugin.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useSearchParams } from \"react-router-dom\";\nimport { useDevPortal } from \"../../components/context/DevPortalProvider.js\";\n\nexport const SignIn = () => {\n const context = useDevPortal();\n const [search] = useSearchParams();\n useEffect(() => {\n void context.authentication?.signIn({\n redirectTo: search.get(\"redirect\") ?? undefined,\n });\n }, [context.authentication, search]);\n\n return null;\n};\n","import { useEffect } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useDevPortal } from \"../../components/context/DevPortalProvider.js\";\n\nexport const SignOut = () => {\n const context = useDevPortal();\n const navigate = useNavigate();\n useEffect(() => {\n void context.authentication?.signOut().then(() => navigate(\"/\"));\n }, [navigate, context.authentication]);\n\n return null;\n};\n","import { useEffect } from \"react\";\nimport { useDevPortal } from \"../../components/context/DevPortalProvider.js\";\n\nexport const SignUp = () => {\n const context = useDevPortal();\n useEffect(() => {\n void (context.authentication?.signUp() ?? context.authentication?.signIn());\n }, [context.authentication]);\n\n return null;\n};\n","import {\n CommonPlugin,\n NavigationPlugin,\n ProfileMenuPlugin,\n} from \"../core/plugins.js\";\nimport { SignIn } from \"./components/SignIn.js\";\nimport { SignOut } from \"./components/SignOut.js\";\nimport { SignUp } from \"./components/SignUp.js\";\n\ntype PluginInterface = NavigationPlugin & CommonPlugin & ProfileMenuPlugin;\n\nexport class AuthenticationPlugin implements PluginInterface {\n getRoutes() {\n return [\n {\n path: \"/signout\",\n element: <SignOut />,\n },\n {\n path: \"/signin\",\n element: <SignIn />,\n },\n {\n path: \"/signup\",\n element: <SignUp />,\n },\n ];\n }\n\n getProfileMenuItems() {\n return [\n {\n label: \"Logout\",\n path: \"/signout\",\n },\n ];\n }\n}\n"],"names":["SignIn","context","useDevPortal","search","useSearchParams","useEffect","_a","SignOut","navigate","useNavigate","SignUp","_b","AuthenticationPlugin"],"mappings":";;;;AAIO,MAAMA,IAAS,MAAM;AAC1B,QAAMC,IAAUC,KACV,CAACC,CAAM,IAAIC;AACjB,SAAAC,EAAU,MAAM;;AACT,KAAAC,IAAAL,EAAQ,mBAAR,QAAAK,EAAwB,OAAO;AAAA,MAClC,YAAYH,EAAO,IAAI,UAAU,KAAK;AAAA,IAAA;AAAA,EAEvC,GAAA,CAACF,EAAQ,gBAAgBE,CAAM,CAAC,GAE5B;AACT,GCVaI,IAAU,MAAM;AAC3B,QAAMN,IAAUC,KACVM,IAAWC;AACjB,SAAAJ,EAAU,MAAM;;AACT,KAAAC,IAAAL,EAAQ,mBAAR,QAAAK,EAAwB,UAAU,KAAK,MAAME,EAAS,GAAG;AAAA,EAC7D,GAAA,CAACA,GAAUP,EAAQ,cAAc,CAAC,GAE9B;AACT,GCTaS,IAAS,MAAM;AAC1B,QAAMT,IAAUC;AAChB,SAAAG,EAAU,MAAM;;AACd,MAAMC,IAAAL,EAAQ,mBAAR,gBAAAK,EAAwB,eAAYK,IAAAV,EAAQ,mBAAR,QAAAU,EAAwB;AAAA,EAAO,GACxE,CAACV,EAAQ,cAAc,CAAC,GAEpB;AACT;ACCO,MAAMW,EAAgD;AAAA,EAC3D,YAAY;AACH,WAAA;AAAA,MACL;AAAA,QACE,MAAM;AAAA,QACN,+BAAUL,GAAQ,EAAA;AAAA,MACpB;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,+BAAUP,GAAO,EAAA;AAAA,MACnB;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,+BAAUU,GAAO,EAAA;AAAA,MACnB;AAAA,IAAA;AAAA,EAEJ;AAAA,EAEA,sBAAsB;AACb,WAAA;AAAA,MACL;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,IAAA;AAAA,EAEJ;AACF;"}
1
+ {"version":3,"file":"AuthenticationPlugin-DgwV0hVu.js","sources":["../src/lib/authentication/components/SignIn.tsx","../src/lib/authentication/components/SignOut.tsx","../src/lib/authentication/components/SignUp.tsx","../src/lib/authentication/AuthenticationPlugin.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useSearchParams } from \"react-router-dom\";\nimport { useDevPortal } from \"../../components/context/DevPortalProvider.js\";\n\nexport const SignIn = () => {\n const context = useDevPortal();\n const [search] = useSearchParams();\n useEffect(() => {\n void context.authentication?.signIn({\n redirectTo: search.get(\"redirect\") ?? undefined,\n });\n }, [context.authentication, search]);\n\n return null;\n};\n","import { useEffect } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useDevPortal } from \"../../components/context/DevPortalProvider.js\";\n\nexport const SignOut = () => {\n const context = useDevPortal();\n const navigate = useNavigate();\n useEffect(() => {\n void context.authentication?.signOut().then(() => navigate(\"/\"));\n }, [navigate, context.authentication]);\n\n return null;\n};\n","import { useEffect } from \"react\";\nimport { useDevPortal } from \"../../components/context/DevPortalProvider.js\";\n\nexport const SignUp = () => {\n const context = useDevPortal();\n useEffect(() => {\n void (context.authentication?.signUp() ?? context.authentication?.signIn());\n }, [context.authentication]);\n\n return null;\n};\n","import {\n CommonPlugin,\n NavigationPlugin,\n ProfileMenuPlugin,\n} from \"../core/plugins.js\";\nimport { SignIn } from \"./components/SignIn.js\";\nimport { SignOut } from \"./components/SignOut.js\";\nimport { SignUp } from \"./components/SignUp.js\";\n\ntype PluginInterface = NavigationPlugin & CommonPlugin & ProfileMenuPlugin;\n\nexport class AuthenticationPlugin implements PluginInterface {\n getRoutes() {\n return [\n {\n path: \"/signout\",\n element: <SignOut />,\n },\n {\n path: \"/signin\",\n element: <SignIn />,\n },\n {\n path: \"/signup\",\n element: <SignUp />,\n },\n ];\n }\n\n getProfileMenuItems() {\n return [\n {\n label: \"Logout\",\n path: \"/signout\",\n },\n ];\n }\n}\n"],"names":["SignIn","context","useDevPortal","search","useSearchParams","useEffect","_a","SignOut","navigate","useNavigate","SignUp","_b","AuthenticationPlugin"],"mappings":";;;;AAIO,MAAMA,IAAS,MAAM;AAC1B,QAAMC,IAAUC,KACV,CAACC,CAAM,IAAIC;AACjB,SAAAC,EAAU,MAAM;;AACT,KAAAC,IAAAL,EAAQ,mBAAR,QAAAK,EAAwB,OAAO;AAAA,MAClC,YAAYH,EAAO,IAAI,UAAU,KAAK;AAAA,IAAA;AAAA,EAEvC,GAAA,CAACF,EAAQ,gBAAgBE,CAAM,CAAC,GAE5B;AACT,GCVaI,IAAU,MAAM;AAC3B,QAAMN,IAAUC,KACVM,IAAWC;AACjB,SAAAJ,EAAU,MAAM;;AACT,KAAAC,IAAAL,EAAQ,mBAAR,QAAAK,EAAwB,UAAU,KAAK,MAAME,EAAS,GAAG;AAAA,EAC7D,GAAA,CAACA,GAAUP,EAAQ,cAAc,CAAC,GAE9B;AACT,GCTaS,IAAS,MAAM;AAC1B,QAAMT,IAAUC;AAChB,SAAAG,EAAU,MAAM;;AACd,MAAMC,IAAAL,EAAQ,mBAAR,gBAAAK,EAAwB,eAAYK,IAAAV,EAAQ,mBAAR,QAAAU,EAAwB;AAAA,EAAO,GACxE,CAACV,EAAQ,cAAc,CAAC,GAEpB;AACT;ACCO,MAAMW,EAAgD;AAAA,EAC3D,YAAY;AACH,WAAA;AAAA,MACL;AAAA,QACE,MAAM;AAAA,QACN,+BAAUL,GAAQ,EAAA;AAAA,MACpB;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,+BAAUP,GAAO,EAAA;AAAA,MACnB;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,+BAAUU,GAAO,EAAA;AAAA,MACnB;AAAA,IAAA;AAAA,EAEJ;AAAA,EAEA,sBAAsB;AACb,WAAA;AAAA,MACL;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,IAAA;AAAA,EAEJ;AACF;"}
@@ -1,5 +1,5 @@
1
- import { j as s } from "./jsx-runtime-CJBdjYYx.js";
2
- import { b as m } from "./Markdown-QsZ-PHET.js";
1
+ import { j as s } from "./jsx-runtime-B6kdoens.js";
2
+ import { b as m } from "./Markdown-B_Gax7at.js";
3
3
  const a = ({
4
4
  children: t,
5
5
  className: r
@@ -7,4 +7,4 @@ const a = ({
7
7
  export {
8
8
  a as C
9
9
  };
10
- //# sourceMappingURL=CategoryHeading-DCmchnA1.js.map
10
+ //# sourceMappingURL=CategoryHeading-BWq12Bfa.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CategoryHeading-DCmchnA1.js","sources":["../src/lib/components/CategoryHeading.tsx"],"sourcesContent":["import { cx } from \"class-variance-authority\";\nimport type { ReactNode } from \"react\";\n\nexport const CategoryHeading = ({\n children,\n className,\n}: {\n children: ReactNode;\n className?: string;\n}) => {\n return (\n <div className={cx(\"text-sm font-semibold text-primary mb-2\", className)}>\n {children}\n </div>\n );\n};\n"],"names":["CategoryHeading","children","className","cx"],"mappings":";;AAGO,MAAMA,IAAkB,CAAC;AAAA,EAC9B,UAAAC;AAAA,EACA,WAAAC;AACF,4BAKK,OAAI,EAAA,WAAWC,EAAG,2CAA2CD,CAAS,GACpE,UAAAD,EACH,CAAA;"}
1
+ {"version":3,"file":"CategoryHeading-BWq12Bfa.js","sources":["../src/lib/components/CategoryHeading.tsx"],"sourcesContent":["import { cx } from \"class-variance-authority\";\nimport type { ReactNode } from \"react\";\n\nexport const CategoryHeading = ({\n children,\n className,\n}: {\n children: ReactNode;\n className?: string;\n}) => {\n return (\n <div className={cx(\"text-sm font-semibold text-primary mb-2\", className)}>\n {children}\n </div>\n );\n};\n"],"names":["CategoryHeading","children","className","cx"],"mappings":";;AAGO,MAAMA,IAAkB,CAAC;AAAA,EAC9B,UAAAC;AAAA,EACA,WAAAC;AACF,4BAKK,OAAI,EAAA,WAAWC,EAAG,2CAA2CD,CAAS,GACpE,UAAAD,EACH,CAAA;"}
@@ -3,11 +3,11 @@ var wt = (e) => {
3
3
  };
4
4
  var He = (e, t, n) => t.has(e) || wt("Cannot " + n);
5
5
  var L = (e, t, n) => (He(e, t, "read from private field"), n ? n.call(e) : t.get(e)), we = (e, t, n) => t.has(e) ? wt("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(e) : t.set(e, n), xe = (e, t, n, r) => (He(e, t, "write to private field"), r ? r.call(e, n) : t.set(e, n), n), Z = (e, t, n) => (He(e, t, "access private method"), n);
6
- import { j as P } from "./jsx-runtime-CJBdjYYx.js";
7
- import { a as Dn, e as Nn } from "./Markdown-QsZ-PHET.js";
6
+ import { j as P } from "./jsx-runtime-B6kdoens.js";
7
+ import { a as Dn, e as Nn } from "./Markdown-B_Gax7at.js";
8
8
  import * as f from "react";
9
9
  import oe, { useLayoutEffect as kn, useEffect as Fn, useState as In } from "react";
10
- import { R as Wn, G as _n, n as Bn, u as jn } from "./DevPortalProvider-BWeAysxF.js";
10
+ import { R as Wn, A as _n, n as Bn, u as jn } from "./DevPortalProvider-CTxoCHIT.js";
11
11
  import { u as $n } from "./state-DsXXkBLH.js";
12
12
  import * as Ht from "react-dom";
13
13
  import Hn from "react-dom";
@@ -2786,4 +2786,4 @@ export {
2786
2786
  qn as s,
2787
2787
  se as u
2788
2788
  };
2789
- //# sourceMappingURL=Combination-C442XfGG.js.map
2789
+ //# sourceMappingURL=Combination-DkycFHkm.js.map