zudoku 0.3.0-dev.83 → 0.3.0-dev.85

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 (206) 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 +5 -4
  21. package/dist/lib/components/Header.js.map +1 -1
  22. package/dist/lib/components/Heading.d.ts +1 -1
  23. package/dist/lib/components/Layout.js +2 -2
  24. package/dist/lib/components/Layout.js.map +1 -1
  25. package/dist/lib/components/TopNavigation.js +5 -5
  26. package/dist/lib/components/TopNavigation.js.map +1 -1
  27. package/dist/lib/components/context/DevPortalProvider.d.ts +9 -3
  28. package/dist/lib/components/context/DevPortalProvider.js +11 -23
  29. package/dist/lib/components/context/DevPortalProvider.js.map +1 -1
  30. package/dist/lib/components/context/ThemeContext.d.ts +1 -4
  31. package/dist/lib/components/context/ThemeContext.js +3 -29
  32. package/dist/lib/components/context/ThemeContext.js.map +1 -1
  33. package/dist/lib/components/context/ThemeProvider.d.ts +4 -0
  34. package/dist/lib/components/context/ThemeProvider.js +23 -0
  35. package/dist/lib/components/context/ThemeProvider.js.map +1 -0
  36. package/dist/lib/components/navigation/Sidebar.d.ts +1 -0
  37. package/dist/lib/components/navigation/Sidebar.js +12 -0
  38. package/dist/lib/components/navigation/Sidebar.js.map +1 -0
  39. package/dist/lib/components/navigation/SidebarBadge.d.ts +22 -0
  40. package/dist/lib/components/navigation/SidebarBadge.js +24 -0
  41. package/dist/lib/components/navigation/SidebarBadge.js.map +1 -0
  42. package/dist/lib/components/navigation/SidebarCategory.d.ts +5 -0
  43. package/dist/lib/components/navigation/SidebarCategory.js +33 -0
  44. package/dist/lib/components/navigation/SidebarCategory.js.map +1 -0
  45. package/dist/lib/components/navigation/SidebarItem.d.ts +12 -0
  46. package/dist/lib/components/navigation/SidebarItem.js +42 -0
  47. package/dist/lib/components/navigation/SidebarItem.js.map +1 -0
  48. package/dist/lib/components/navigation/{SideNavigationWrapper.d.ts → SidebarWrapper.d.ts} +1 -1
  49. package/dist/lib/components/navigation/{SideNavigationWrapper.js → SidebarWrapper.js} +2 -2
  50. package/dist/lib/components/navigation/SidebarWrapper.js.map +1 -0
  51. package/dist/lib/components/navigation/utils.d.ts +16 -0
  52. package/dist/lib/components/navigation/utils.js +85 -0
  53. package/dist/lib/components/navigation/utils.js.map +1 -0
  54. package/dist/lib/core/DevPortalContext.d.ts +9 -32
  55. package/dist/lib/core/DevPortalContext.js +8 -5
  56. package/dist/lib/core/DevPortalContext.js.map +1 -1
  57. package/dist/lib/core/plugins.d.ts +6 -8
  58. package/dist/lib/core/plugins.js.map +1 -1
  59. package/dist/lib/plugins/markdown/MdxPage.js +5 -36
  60. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  61. package/dist/lib/plugins/markdown/generateRoutes.js +20 -43
  62. package/dist/lib/plugins/markdown/generateRoutes.js.map +1 -1
  63. package/dist/lib/plugins/openapi/OperationListItem.js +4 -3
  64. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  65. package/dist/lib/plugins/openapi/ParameterList.js +2 -1
  66. package/dist/lib/plugins/openapi/ParameterList.js.map +1 -1
  67. package/dist/lib/plugins/openapi/SchemaListView.js +6 -1
  68. package/dist/lib/plugins/openapi/SchemaListView.js.map +1 -1
  69. package/dist/lib/plugins/openapi/SchemaListViewItem.d.ts +3 -2
  70. package/dist/lib/plugins/openapi/SchemaListViewItem.js +6 -3
  71. package/dist/lib/plugins/openapi/SchemaListViewItem.js.map +1 -1
  72. package/dist/lib/plugins/openapi/Sidecar.js +12 -2
  73. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  74. package/dist/lib/plugins/openapi/index.js +14 -11
  75. package/dist/lib/plugins/openapi/index.js.map +1 -1
  76. package/dist/lib/plugins/openapi/interfaces.d.ts +1 -1
  77. package/dist/lib/plugins/openapi/playground/Headers.js +1 -1
  78. package/dist/lib/plugins/openapi/playground/Headers.js.map +1 -1
  79. package/dist/lib/plugins/openapi/playground/Playground.js +1 -1
  80. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  81. package/dist/lib/util/useScrollToAnchor.js +31 -17
  82. package/dist/lib/util/useScrollToAnchor.js.map +1 -1
  83. package/dist/vite/plugin-sidebar.d.ts +3 -0
  84. package/dist/vite/plugin-sidebar.js +23 -0
  85. package/dist/vite/plugin-sidebar.js.map +1 -0
  86. package/dist/vite/plugin.js +2 -0
  87. package/dist/vite/plugin.js.map +1 -1
  88. package/lib/{AuthenticationPlugin-XS0DoAhE.js → AuthenticationPlugin-DgwV0hVu.js} +7 -7
  89. package/lib/{AuthenticationPlugin-XS0DoAhE.js.map → AuthenticationPlugin-DgwV0hVu.js.map} +1 -1
  90. package/lib/{CategoryHeading-DCmchnA1.js → CategoryHeading-BWq12Bfa.js} +3 -3
  91. package/lib/{CategoryHeading-DCmchnA1.js.map → CategoryHeading-BWq12Bfa.js.map} +1 -1
  92. package/lib/{Combination-C442XfGG.js → Combination-DkycFHkm.js} +4 -4
  93. package/lib/{Combination-C442XfGG.js.map → Combination-DkycFHkm.js.map} +1 -1
  94. package/lib/{DevPortalProvider-BWeAysxF.js → DevPortalProvider-CTxoCHIT.js} +375 -417
  95. package/lib/DevPortalProvider-CTxoCHIT.js.map +1 -0
  96. package/lib/DeveloperHint-BQSFXH01.js +10 -0
  97. package/lib/{DeveloperHint-DQVwIery.js.map → DeveloperHint-BQSFXH01.js.map} +1 -1
  98. package/lib/{Input-3IEt27jb.js → Input-BclXSY0g.js} +5 -5
  99. package/lib/{Input-3IEt27jb.js.map → Input-BclXSY0g.js.map} +1 -1
  100. package/lib/{Markdown-QsZ-PHET.js → Markdown-B_Gax7at.js} +1136 -1152
  101. package/lib/{Markdown-QsZ-PHET.js.map → Markdown-B_Gax7at.js.map} +1 -1
  102. package/lib/{MdxPage-CA1WmW14.js → MdxPage-Crlr0GmN.js} +67 -81
  103. package/lib/MdxPage-Crlr0GmN.js.map +1 -0
  104. package/lib/{OperationList-CHK_erYP.js → OperationList-CMH3DPpj.js} +145 -129
  105. package/lib/OperationList-CMH3DPpj.js.map +1 -0
  106. package/lib/Route-CwXfyIUw.js +14 -0
  107. package/lib/{Route-D70pGn9n.js.map → Route-CwXfyIUw.js.map} +1 -1
  108. package/lib/{SlotletProvider-B71hNEUL.js → SlotletProvider-CzMAO73_.js} +12 -12
  109. package/lib/{SlotletProvider-B71hNEUL.js.map → SlotletProvider-CzMAO73_.js.map} +1 -1
  110. package/lib/Spinner-fF-Xv-gw.js +274 -0
  111. package/lib/Spinner-fF-Xv-gw.js.map +1 -0
  112. package/lib/index-7kcHaXD6.js +1771 -0
  113. package/lib/index-7kcHaXD6.js.map +1 -0
  114. package/lib/{index-Bl6YeerK.js → index-DUrF63A6.js} +1028 -1044
  115. package/lib/index-DUrF63A6.js.map +1 -0
  116. package/lib/{index-BH-Ub36F.js → index-DkuZvRNP.js} +4 -4
  117. package/lib/{index-BH-Ub36F.js.map → index-DkuZvRNP.js.map} +1 -1
  118. package/lib/joinPath-VeNuJa7y.js +8 -0
  119. package/lib/joinPath-VeNuJa7y.js.map +1 -0
  120. package/lib/jsx-runtime-B6kdoens.js +635 -0
  121. package/lib/jsx-runtime-B6kdoens.js.map +1 -0
  122. package/lib/{AnchorLink-BZcpTwOs.js → utils-CzT_9Tsn.js} +258 -214
  123. package/lib/utils-CzT_9Tsn.js.map +1 -0
  124. package/lib/zudoku.auth-clerk.js +1 -1
  125. package/lib/zudoku.auth-openid.js +2 -2
  126. package/lib/zudoku.components.js +1229 -1227
  127. package/lib/zudoku.components.js.map +1 -1
  128. package/lib/zudoku.plugin-api-keys.js +19 -19
  129. package/lib/zudoku.plugin-custom-page.js +2 -2
  130. package/lib/zudoku.plugin-markdown.js +21 -38
  131. package/lib/zudoku.plugin-markdown.js.map +1 -1
  132. package/lib/zudoku.plugin-openapi.js +8 -6
  133. package/lib/zudoku.plugin-openapi.js.map +1 -1
  134. package/package.json +4 -1
  135. package/src/app/demo.tsx +5 -4
  136. package/src/app/main.css +2 -2
  137. package/src/app/main.tsx +3 -1
  138. package/src/app/standalone.tsx +5 -4
  139. package/src/lib/components/DevPortal.tsx +1 -1
  140. package/src/lib/components/Header.tsx +21 -19
  141. package/src/lib/components/Layout.tsx +2 -2
  142. package/src/lib/components/TopNavigation.tsx +5 -5
  143. package/src/lib/components/context/DevPortalProvider.ts +11 -28
  144. package/src/lib/components/context/ThemeContext.tsx +3 -41
  145. package/src/lib/components/context/ThemeProvider.tsx +27 -0
  146. package/src/lib/components/navigation/{SideNavigation.tsx → Sidebar.tsx} +7 -7
  147. package/src/lib/components/navigation/SidebarBadge.tsx +40 -0
  148. package/src/lib/components/navigation/SidebarCategory.tsx +105 -0
  149. package/src/lib/components/navigation/SidebarItem.tsx +96 -0
  150. package/src/lib/components/navigation/{SideNavigationWrapper.tsx → SidebarWrapper.tsx} +1 -1
  151. package/src/lib/components/navigation/utils.ts +120 -0
  152. package/src/lib/core/DevPortalContext.ts +12 -44
  153. package/src/lib/core/plugins.ts +6 -13
  154. package/src/lib/plugins/markdown/MdxPage.tsx +14 -50
  155. package/src/lib/plugins/markdown/generateRoutes.tsx +29 -57
  156. package/src/lib/plugins/openapi/OperationListItem.tsx +5 -6
  157. package/src/lib/plugins/openapi/ParameterList.tsx +13 -10
  158. package/src/lib/plugins/openapi/SchemaListView.tsx +18 -2
  159. package/src/lib/plugins/openapi/SchemaListViewItem.tsx +16 -7
  160. package/src/lib/plugins/openapi/Sidecar.tsx +15 -2
  161. package/src/lib/plugins/openapi/index.tsx +17 -23
  162. package/src/lib/plugins/openapi/interfaces.ts +1 -1
  163. package/src/lib/plugins/openapi/playground/Headers.tsx +1 -1
  164. package/src/lib/plugins/openapi/playground/Playground.tsx +1 -1
  165. package/src/lib/util/useScrollToAnchor.ts +39 -18
  166. package/dist/lib/components/navigation/SideNavigation.d.ts +0 -1
  167. package/dist/lib/components/navigation/SideNavigation.js +0 -12
  168. package/dist/lib/components/navigation/SideNavigation.js.map +0 -1
  169. package/dist/lib/components/navigation/SideNavigationCategory.d.ts +0 -4
  170. package/dist/lib/components/navigation/SideNavigationCategory.js +0 -26
  171. package/dist/lib/components/navigation/SideNavigationCategory.js.map +0 -1
  172. package/dist/lib/components/navigation/SideNavigationItem.d.ts +0 -9
  173. package/dist/lib/components/navigation/SideNavigationItem.js +0 -44
  174. package/dist/lib/components/navigation/SideNavigationItem.js.map +0 -1
  175. package/dist/lib/components/navigation/SideNavigationWrapper.js.map +0 -1
  176. package/dist/lib/components/navigation/useNavigationCollapsibleState.d.ts +0 -9
  177. package/dist/lib/components/navigation/useNavigationCollapsibleState.js +0 -28
  178. package/dist/lib/components/navigation/useNavigationCollapsibleState.js.map +0 -1
  179. package/dist/lib/components/navigation/util.d.ts +0 -8
  180. package/dist/lib/components/navigation/util.js +0 -15
  181. package/dist/lib/components/navigation/util.js.map +0 -1
  182. package/dist/lib/plugins/openapi/MethodBadge.d.ts +0 -13
  183. package/dist/lib/plugins/openapi/MethodBadge.js +0 -26
  184. package/dist/lib/plugins/openapi/MethodBadge.js.map +0 -1
  185. package/dist/lib/util/traverseNavigation.d.ts +0 -6
  186. package/dist/lib/util/traverseNavigation.js +0 -30
  187. package/dist/lib/util/traverseNavigation.js.map +0 -1
  188. package/lib/AnchorLink-BZcpTwOs.js.map +0 -1
  189. package/lib/DevPortalProvider-BWeAysxF.js.map +0 -1
  190. package/lib/DeveloperHint-DQVwIery.js +0 -10
  191. package/lib/MdxPage-CA1WmW14.js.map +0 -1
  192. package/lib/OperationList-CHK_erYP.js.map +0 -1
  193. package/lib/Route-D70pGn9n.js +0 -13
  194. package/lib/Spinner-Coi7ORUV.js +0 -244
  195. package/lib/Spinner-Coi7ORUV.js.map +0 -1
  196. package/lib/index-Bl6YeerK.js.map +0 -1
  197. package/lib/index-Dt-pU7Vu.js +0 -916
  198. package/lib/index-Dt-pU7Vu.js.map +0 -1
  199. package/lib/jsx-runtime-CJBdjYYx.js +0 -1526
  200. package/lib/jsx-runtime-CJBdjYYx.js.map +0 -1
  201. package/src/lib/components/navigation/SideNavigationCategory.tsx +0 -72
  202. package/src/lib/components/navigation/SideNavigationItem.tsx +0 -148
  203. package/src/lib/components/navigation/useNavigationCollapsibleState.ts +0 -42
  204. package/src/lib/components/navigation/util.ts +0 -38
  205. package/src/lib/plugins/openapi/MethodBadge.tsx +0 -36
  206. package/src/lib/util/traverseNavigation.ts +0 -55
@@ -1,45 +1,44 @@
1
- import { j as e, u as E } from "./jsx-runtime-CJBdjYYx.js";
2
- import { A as _, a as $, u as q } from "./AnchorLink-BZcpTwOs.js";
3
- import { useRef as T, useState as z, useEffect as B, useMemo as D } from "react";
4
- import { L as A } from "./index-Dt-pU7Vu.js";
5
- import { C as F } from "./CategoryHeading-DCmchnA1.js";
6
- import { c as V, d as W, a as g, P as X, H as v } from "./Markdown-QsZ-PHET.js";
7
- import { v as G, z as M, l as P } from "./DevPortalProvider-BWeAysxF.js";
8
- import { s as J } from "./slugify-CiPVjteN.js";
1
+ import { j as e } from "./jsx-runtime-B6kdoens.js";
2
+ import { A, c as T, d as P, a as C, b as M } from "./utils-CzT_9Tsn.js";
3
+ import { L as y } from "./index-7kcHaXD6.js";
4
+ import { C as H } from "./CategoryHeading-BWq12Bfa.js";
5
+ import { c as L, d as R, a as x, P as S, H as m } from "./Markdown-B_Gax7at.js";
6
+ import { s as E } from "./slugify-CiPVjteN.js";
7
+ import { useRef as f, useState as I, useEffect as _ } from "react";
9
8
  /**
10
9
  * @license lucide-react v0.378.0 - ISC
11
10
  *
12
11
  * This source code is licensed under the ISC license.
13
12
  * See the LICENSE file in the root directory of this source tree.
14
13
  */
15
- const K = V("ListTree", [
14
+ const $ = L("ListTree", [
16
15
  ["path", { d: "M21 12h-8", key: "1bmf0i" }],
17
16
  ["path", { d: "M21 6H8", key: "1pqkrb" }],
18
17
  ["path", { d: "M21 18h-8", key: "1tm79t" }],
19
18
  ["path", { d: "M3 6v4c0 1.1.9 2 2 2h3", key: "1ywdgy" }],
20
19
  ["path", { d: "M3 10v6c0 1.1.9 2 2 2h3", key: "2wc746" }]
21
- ]), H = "data-active", C = ({
20
+ ]), N = "data-active", b = ({
22
21
  item: r,
23
22
  children: t,
24
23
  className: s,
25
- isActive: a
24
+ isActive: c
26
25
  }) => /* @__PURE__ */ e.jsxs(
27
26
  "li",
28
27
  {
29
- className: g(
28
+ className: x(
30
29
  "truncate",
31
- a ? "text-primary" : "text-foreground/65 dark:text-foreground/75",
30
+ c ? "text-primary" : "text-foreground/65 dark:text-foreground/75",
32
31
  s
33
32
  ),
34
33
  title: r.value,
35
34
  children: [
36
35
  /* @__PURE__ */ e.jsx(
37
- _,
36
+ A,
38
37
  {
39
38
  to: `#${r.id}`,
40
- [H]: r.id,
41
- className: g(
42
- a ? "text-primary" : "text-foreground/65 dark:text-foreground/75 hover:text-foreground"
39
+ [N]: r.id,
40
+ className: x(
41
+ c ? "text-primary" : "text-foreground/65 dark:text-foreground/75 hover:text-foreground"
43
42
  ),
44
43
  children: r.value
45
44
  }
@@ -47,30 +46,30 @@ const K = V("ListTree", [
47
46
  t
48
47
  ]
49
48
  }
50
- ), Q = ({ entries: r }) => {
51
- const { activeAnchor: t } = W(), s = T(null), a = T(!1), [c, d] = z({
49
+ ), q = ({ entries: r }) => {
50
+ const { activeAnchor: t } = R(), s = f(null), c = f(!1), [p, i] = I({
52
51
  top: 0,
53
52
  opacity: 0
54
53
  });
55
- return B(() => {
54
+ return _(() => {
56
55
  if (!s.current) return;
57
- const i = s.current.querySelector(
58
- `[${H}='${t}']`
56
+ const a = s.current.querySelector(
57
+ `[${N}='${t}']`
59
58
  );
60
- if (!i) {
61
- d({ top: 0, opacity: 0 });
59
+ if (!a) {
60
+ i({ top: 0, opacity: 0 });
62
61
  return;
63
62
  }
64
- const n = s.current.getBoundingClientRect().top, u = i.getBoundingClientRect().top;
65
- d({
63
+ const n = s.current.getBoundingClientRect().top, h = a.getBoundingClientRect().top;
64
+ i({
66
65
  opacity: 1,
67
- top: `${u - n}px`
68
- }), !a.current && requestIdleCallback(() => {
69
- a.current = !0;
66
+ top: `${h - n}px`
67
+ }), !c.current && requestIdleCallback(() => {
68
+ c.current = !0;
70
69
  });
71
70
  }, [t]), /* @__PURE__ */ e.jsxs("aside", { className: "sticky top-[--header-height] h-[calc(100vh-var(--header-height))] pt-[--padding-content-top] pb-[--padding-content-bottom] overflow-y-auto ps-1 text-sm", children: [
72
71
  /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-2 font-medium mb-2", children: [
73
- /* @__PURE__ */ e.jsx(K, { size: 16 }),
72
+ /* @__PURE__ */ e.jsx($, { size: 16 }),
74
73
  "On this page"
75
74
  ] }),
76
75
  /* @__PURE__ */ e.jsxs("div", { className: "relative ms-2 ps-4", children: [
@@ -78,11 +77,11 @@ const K = V("ListTree", [
78
77
  /* @__PURE__ */ e.jsx(
79
78
  "div",
80
79
  {
81
- className: g(
80
+ className: x(
82
81
  "absolute -left-px -translate-y-1 h-6 w-[4px] rounded bg-primary",
83
- a.current && "ease-out [transition:top_150ms,opacity_325ms]"
82
+ c.current && "ease-out [transition:top_150ms,opacity_325ms]"
84
83
  ),
85
- style: c
84
+ style: p
86
85
  }
87
86
  ),
88
87
  /* @__PURE__ */ e.jsx(
@@ -90,14 +89,14 @@ const K = V("ListTree", [
90
89
  {
91
90
  ref: s,
92
91
  className: "relative font-medium list-none space-y-2",
93
- children: r.map((i) => /* @__PURE__ */ e.jsx(
94
- C,
92
+ children: r.map((a) => /* @__PURE__ */ e.jsx(
93
+ b,
95
94
  {
96
- isActive: i.id === t,
97
- item: i,
95
+ isActive: a.id === t,
96
+ item: a,
98
97
  className: "pl-0",
99
- children: i.children && /* @__PURE__ */ e.jsx("ul", { className: "list-none pl-4 pt-2 space-y-2", children: i.children.map((n) => /* @__PURE__ */ e.jsx(
100
- C,
98
+ children: a.children && /* @__PURE__ */ e.jsx("ul", { className: "list-none pl-4 pt-2 space-y-2", children: a.children.map((n) => /* @__PURE__ */ e.jsx(
99
+ b,
101
100
  {
102
101
  item: n,
103
102
  isActive: n.id === t
@@ -105,85 +104,72 @@ const K = V("ListTree", [
105
104
  n.id
106
105
  )) })
107
106
  },
108
- i.id
107
+ a.id
109
108
  ))
110
109
  }
111
110
  )
112
111
  ] })
113
112
  ] });
114
- }, U = {
115
- h2: ({ children: r, id: t }) => /* @__PURE__ */ e.jsx(v, { level: 2, id: t, registerSidebarAnchor: !0, children: r }),
116
- h3: ({ children: r, id: t }) => /* @__PURE__ */ e.jsxs(v, { level: 3, id: t, registerSidebarAnchor: !0, children: [
113
+ }, B = {
114
+ h2: ({ children: r, id: t }) => /* @__PURE__ */ e.jsx(m, { level: 2, id: t, registerSidebarAnchor: !0, children: r }),
115
+ h3: ({ children: r, id: t }) => /* @__PURE__ */ e.jsxs(m, { level: 3, id: t, registerSidebarAnchor: !0, children: [
117
116
  " ",
118
117
  r
119
118
  ] })
120
- }, ie = ({
119
+ }, J = ({
121
120
  mdxComponent: r,
122
121
  frontmatter: t = {},
123
122
  defaultOptions: s,
124
- tableOfContents: a
123
+ tableOfContents: c
125
124
  }) => {
126
- var j, y;
127
- const c = G(), d = E(), i = c ? M(c, (l, x, m) => {
128
- var o;
129
- if (x === d.pathname)
130
- return (o = m.at(0)) == null ? void 0 : o.label;
131
- }) : void 0, n = t.title, u = t.category ?? i, I = t.toc === !1 || (s == null ? void 0 : s.toc) === !1, L = ((j = a.find((l) => l.depth === 1)) == null ? void 0 : j.value) ?? n, R = t.disablePager ?? (s == null ? void 0 : s.disablePager) ?? !1, f = ((y = a.find((l) => l.depth === 1)) == null ? void 0 : y.children) ?? // if `title` is provided by frontmatter it does not appear in the table of contents
132
- a.filter((l) => l.depth === 2), S = !I && f.length > 0, { prev: p, next: h } = D(() => {
133
- let l = { path: "", label: "" }, x = { path: "", label: "" }, m = !1;
134
- return c ? (M(c, (o, b) => {
135
- var w, k;
136
- const N = { path: b, label: o.label };
137
- if (m && P(o) && !((w = o.children) != null && w.length))
138
- return x = N, !0;
139
- b === d.pathname && (m = !0), !m && P(o) && !((k = o.children) != null && k.length) && (l = N);
140
- }), { prev: l, next: x }) : { prev: l, next: x };
141
- }, [c, d.pathname]);
125
+ var g, j, v;
126
+ const p = (g = T()) == null ? void 0 : g.categoryLabel, i = t.title, a = t.category ?? p, n = t.toc === !1 || (s == null ? void 0 : s.toc) === !1, h = ((j = c.find((o) => o.depth === 1)) == null ? void 0 : j.value) ?? i, w = t.disablePager ?? (s == null ? void 0 : s.disablePager) ?? !1, u = ((v = c.find((o) => o.depth === 1)) == null ? void 0 : v.children) ?? // if `title` is provided by frontmatter it does not appear in the table of contents
127
+ c.filter((o) => o.depth === 2), k = !n && u.length > 0, { prev: l, next: d } = P();
142
128
  return /* @__PURE__ */ e.jsxs("div", { className: "xl:grid grid-cols-[--sidecar-grid-cols] gap-8 justify-between", children: [
143
- /* @__PURE__ */ e.jsx($, { children: /* @__PURE__ */ e.jsx("title", { children: L }) }),
129
+ /* @__PURE__ */ e.jsx(C, { children: /* @__PURE__ */ e.jsx("title", { children: h }) }),
144
130
  /* @__PURE__ */ e.jsxs(
145
131
  "div",
146
132
  {
147
- className: g(
148
- X,
133
+ className: x(
134
+ S,
149
135
  "max-w-full xl:w-full xl:max-w-prose flex-1 flex-shrink pt-[--padding-content-top] pb-[--padding-content-bottom]"
150
136
  ),
151
137
  children: [
152
138
  /* @__PURE__ */ e.jsxs("header", { children: [
153
- u && /* @__PURE__ */ e.jsx(F, { children: u }),
154
- n && /* @__PURE__ */ e.jsx(v, { level: 1, id: J(n, { lower: !0 }), children: n }),
139
+ a && /* @__PURE__ */ e.jsx(H, { children: a }),
140
+ i && /* @__PURE__ */ e.jsx(m, { level: 1, id: E(i, { lower: !0 }), children: i }),
155
141
  t.description && /* @__PURE__ */ e.jsx("p", { className: "prose-lg", children: t.description })
156
142
  ] }),
157
143
  /* @__PURE__ */ e.jsx(
158
144
  r,
159
145
  {
160
- components: { ...q(), ...U }
146
+ components: { ...M(), ...B }
161
147
  }
162
148
  ),
163
- !R && /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
149
+ !w && /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
164
150
  /* @__PURE__ */ e.jsx("hr", {}),
165
151
  /* @__PURE__ */ e.jsxs("div", { className: "not-prose flex items-center justify-between gap-8", children: [
166
- p.path ? /* @__PURE__ */ e.jsxs(
167
- A,
152
+ l ? /* @__PURE__ */ e.jsxs(
153
+ y,
168
154
  {
169
- to: p.path,
155
+ to: l.id,
170
156
  className: "flex flex-col items-stretch gap-2 flex-1 truncate border rounded px-6 py-4 text-start hover:border-primary/85 transition shadow-sm hover:shadow-md",
171
- title: typeof p.label == "string" ? p.label : void 0,
157
+ title: l.label,
172
158
  children: [
173
159
  /* @__PURE__ */ e.jsx("div", { className: "text-sm text-muted-foreground", children: "← Previous page" }),
174
- /* @__PURE__ */ e.jsx("div", { className: "text-lg text-primary truncate", children: p.label })
160
+ /* @__PURE__ */ e.jsx("div", { className: "text-lg text-primary truncate", children: l.label })
175
161
  ]
176
162
  }
177
163
  ) : /* @__PURE__ */ e.jsx("div", { className: "flex-1" }),
178
- h.path ? /* @__PURE__ */ e.jsxs(
179
- A,
164
+ d ? /* @__PURE__ */ e.jsxs(
165
+ y,
180
166
  {
181
- to: h.path,
167
+ to: d.id,
182
168
  className: "flex flex-col items-stretch gap-2 flex-1 truncate border rounded px-6 py-4 text-end hover:border-primary/85 transition shadow-sm hover:shadow-md",
183
- title: typeof h.label == "string" ? h.label : void 0,
169
+ title: d.label,
184
170
  children: [
185
171
  /* @__PURE__ */ e.jsx("div", { className: "text-sm text-muted-foreground", children: "Next page →" }),
186
- /* @__PURE__ */ e.jsx("div", { className: "text-lg text-primary truncate", children: h.label })
172
+ /* @__PURE__ */ e.jsx("div", { className: "text-lg text-primary truncate", children: d.label })
187
173
  ]
188
174
  }
189
175
  ) : /* @__PURE__ */ e.jsx("div", { className: "flex-1" })
@@ -192,10 +178,10 @@ const K = V("ListTree", [
192
178
  ]
193
179
  }
194
180
  ),
195
- /* @__PURE__ */ e.jsx("div", { className: "hidden xl:block", children: S && /* @__PURE__ */ e.jsx(Q, { entries: f }) })
181
+ /* @__PURE__ */ e.jsx("div", { className: "hidden xl:block", children: k && /* @__PURE__ */ e.jsx(q, { entries: u }) })
196
182
  ] });
197
183
  };
198
184
  export {
199
- ie as MdxPage
185
+ J as MdxPage
200
186
  };
201
- //# sourceMappingURL=MdxPage-CA1WmW14.js.map
187
+ //# sourceMappingURL=MdxPage-Crlr0GmN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MdxPage-Crlr0GmN.js","sources":["../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/list-tree.js","../src/lib/plugins/markdown/Toc.tsx","../src/lib/plugins/markdown/MdxPage.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ListTree = createLucideIcon(\"ListTree\", [\n [\"path\", { d: \"M21 12h-8\", key: \"1bmf0i\" }],\n [\"path\", { d: \"M21 6H8\", key: \"1pqkrb\" }],\n [\"path\", { d: \"M21 18h-8\", key: \"1tm79t\" }],\n [\"path\", { d: \"M3 6v4c0 1.1.9 2 2 2h3\", key: \"1ywdgy\" }],\n [\"path\", { d: \"M3 10v6c0 1.1.9 2 2 2h3\", key: \"2wc746\" }]\n]);\n\nexport { ListTree as default };\n//# sourceMappingURL=list-tree.js.map\n","import type { TocEntry } from \"@stefanprobst/rehype-extract-toc\";\nimport { ListTreeIcon } from \"lucide-react\";\nimport {\n useEffect,\n useRef,\n useState,\n type CSSProperties,\n type PropsWithChildren,\n} from \"react\";\nimport { AnchorLink } from \"../../components/AnchorLink.js\";\nimport { useViewportAnchor } from \"../../components/context/ViewportAnchorContext.js\";\nimport { cn } from \"../../util/cn.js\";\n\nconst DATA_ANCHOR_ATTR = \"data-active\";\n\nconst TocItem = ({\n item,\n children,\n className,\n isActive,\n}: PropsWithChildren<{\n item: TocEntry;\n isActive: boolean;\n className?: string;\n}>) => {\n return (\n <li\n className={cn(\n \"truncate\",\n isActive\n ? \"text-primary\"\n : \"text-foreground/65 dark:text-foreground/75\",\n className,\n )}\n title={item.value}\n >\n <AnchorLink\n to={`#${item.id}`}\n {...{ [DATA_ANCHOR_ATTR]: item.id }}\n className={cn(\n isActive\n ? \"text-primary\"\n : \"text-foreground/65 dark:text-foreground/75 hover:text-foreground\",\n )}\n >\n {item.value}\n </AnchorLink>\n {children}\n </li>\n );\n};\n\nexport const Toc = ({ entries }: { entries: TocEntry[] }) => {\n const { activeAnchor } = useViewportAnchor();\n const listWrapperRef = useRef<HTMLUListElement>(null);\n const paintedOnce = useRef(false);\n const [indicatorStyle, setIndicatorStyles] = useState<CSSProperties>({\n top: 0,\n opacity: 0,\n });\n\n // synchronize active anchor indicator with the scroll position\n useEffect(() => {\n if (!listWrapperRef.current) return;\n\n const activeElement = listWrapperRef.current.querySelector(\n `[${DATA_ANCHOR_ATTR}='${activeAnchor}']`,\n );\n\n if (!activeElement) {\n setIndicatorStyles({ top: 0, opacity: 0 });\n return;\n }\n\n const topParent = listWrapperRef.current.getBoundingClientRect().top;\n const topElement = activeElement.getBoundingClientRect().top;\n\n setIndicatorStyles({\n opacity: 1,\n top: `${topElement - topParent}px`,\n });\n\n if (paintedOnce.current) return;\n\n // after all is painted, the indicator should animate\n requestIdleCallback(() => {\n paintedOnce.current = true;\n });\n }, [activeAnchor]);\n\n return (\n <aside className=\"sticky top-[--header-height] h-[calc(100vh-var(--header-height))] pt-[--padding-content-top] pb-[--padding-content-bottom] overflow-y-auto ps-1 text-sm\">\n <div className=\"flex items-center gap-2 font-medium mb-2\">\n <ListTreeIcon size={16} />\n On this page\n </div>\n <div className=\"relative ms-2 ps-4\">\n <div className=\"absolute inset-0 right-auto bg-border w-[2px]\" />\n <div\n className={cn(\n \"absolute -left-px -translate-y-1 h-6 w-[4px] rounded bg-primary\",\n paintedOnce.current &&\n \"ease-out [transition:top_150ms,opacity_325ms]\",\n )}\n style={indicatorStyle}\n />\n <ul\n ref={listWrapperRef}\n className=\"relative font-medium list-none space-y-2\"\n >\n {entries.map((item) => (\n <TocItem\n isActive={item.id === activeAnchor}\n key={item.id}\n item={item}\n className=\"pl-0\"\n >\n {item.children && (\n <ul className=\"list-none pl-4 pt-2 space-y-2\">\n {item.children.map((child) => (\n <TocItem\n item={child}\n isActive={child.id === activeAnchor}\n key={child.id}\n />\n ))}\n </ul>\n )}\n </TocItem>\n ))}\n </ul>\n </div>\n </aside>\n );\n};\n","import { useMDXComponents } from \"@mdx-js/react\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { type PropsWithChildren } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { CategoryHeading } from \"../../components/CategoryHeading.js\";\nimport { Heading } from \"../../components/Heading.js\";\nimport { ProseClasses } from \"../../components/Markdown.js\";\nimport {\n useCurrentItem,\n usePrevNext,\n} from \"../../components/navigation/utils.js\";\nimport type { MdxComponentsType } from \"../../util/MdxComponents.js\";\nimport { cn } from \"../../util/cn.js\";\nimport slugify from \"../../util/slugify.js\";\nimport { Toc } from \"./Toc.js\";\nimport { MarkdownPluginDefaultOptions, MDXImport } from \"./index.js\";\n\nconst MarkdownHeadings = {\n h2: ({ children, id }) => (\n <Heading level={2} id={id} registerSidebarAnchor>\n {children}\n </Heading>\n ),\n h3: ({ children, id }) => (\n <Heading level={3} id={id} registerSidebarAnchor>\n {\" \"}\n {children}\n </Heading>\n ),\n} satisfies MdxComponentsType;\n\nexport const MdxPage = ({\n mdxComponent: MdxComponent,\n frontmatter = {},\n defaultOptions,\n tableOfContents,\n}: PropsWithChildren<\n Omit<MDXImport, \"default\"> & {\n mdxComponent: MDXImport[\"default\"];\n defaultOptions?: MarkdownPluginDefaultOptions;\n }\n>) => {\n const categoryTitle = useCurrentItem()?.categoryLabel;\n const title = frontmatter.title;\n const category = frontmatter.category ?? categoryTitle;\n const hideToc = frontmatter.toc === false || defaultOptions?.toc === false;\n const pageTitle =\n tableOfContents.find((item) => item.depth === 1)?.value ?? title;\n const hidePager =\n frontmatter.disablePager ?? defaultOptions?.disablePager ?? false;\n\n const tocEntries =\n tableOfContents.find((item) => item.depth === 1)?.children ??\n // if `title` is provided by frontmatter it does not appear in the table of contents\n tableOfContents.filter((item) => item.depth === 2);\n\n const showToc = !hideToc && tocEntries.length > 0;\n\n const { prev, next } = usePrevNext();\n\n return (\n <div className=\"xl:grid grid-cols-[--sidecar-grid-cols] gap-8 justify-between\">\n <Helmet>\n <title>{pageTitle}</title>\n </Helmet>\n <div\n className={cn(\n ProseClasses,\n \"max-w-full xl:w-full xl:max-w-prose flex-1 flex-shrink pt-[--padding-content-top] pb-[--padding-content-bottom]\",\n )}\n >\n <header>\n {category && <CategoryHeading>{category}</CategoryHeading>}\n {title && (\n <Heading level={1} id={slugify(title, { lower: true })}>\n {title}\n </Heading>\n )}\n {frontmatter.description && (\n <p className=\"prose-lg\">{frontmatter.description}</p>\n )}\n </header>\n <MdxComponent\n components={{ ...useMDXComponents(), ...MarkdownHeadings }}\n />\n {!hidePager && (\n <>\n <hr />\n <div className=\"not-prose flex items-center justify-between gap-8\">\n {prev ? (\n <Link\n to={prev.id}\n className=\"flex flex-col items-stretch gap-2 flex-1 truncate border rounded px-6 py-4 text-start hover:border-primary/85 transition shadow-sm hover:shadow-md\"\n title={prev.label}\n >\n <div className=\"text-sm text-muted-foreground\">\n ← Previous page\n </div>\n <div className=\"text-lg text-primary truncate\">\n {prev.label}\n </div>\n </Link>\n ) : (\n <div className=\"flex-1\" />\n )}\n {next ? (\n <Link\n to={next.id}\n className=\"flex flex-col items-stretch gap-2 flex-1 truncate border rounded px-6 py-4 text-end hover:border-primary/85 transition shadow-sm hover:shadow-md\"\n title={next.label}\n >\n <div className=\"text-sm text-muted-foreground\">\n Next page →\n </div>\n <div className=\"text-lg text-primary truncate\">\n {next.label}\n </div>\n </Link>\n ) : (\n <div className=\"flex-1\" />\n )}\n </div>\n </>\n )}\n </div>\n <div className=\"hidden xl:block\">\n {showToc && <Toc entries={tocEntries} />}\n </div>\n </div>\n );\n};\n"],"names":["ListTree","createLucideIcon","DATA_ANCHOR_ATTR","TocItem","item","children","className","isActive","jsxs","cn","jsx","AnchorLink","Toc","entries","activeAnchor","useViewportAnchor","listWrapperRef","useRef","paintedOnce","indicatorStyle","setIndicatorStyles","useState","useEffect","activeElement","topParent","topElement","ListTreeIcon","child","MarkdownHeadings","id","Heading","MdxPage","MdxComponent","frontmatter","defaultOptions","tableOfContents","categoryTitle","_a","useCurrentItem","title","category","hideToc","pageTitle","_b","hidePager","tocEntries","_c","showToc","prev","next","usePrevNext","Helmet","ProseClasses","CategoryHeading","slugify","useMDXComponents","Fragment","Link"],"mappings":"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","x_google_ignoreList":[0]}