zudoku 0.37.1 → 0.39.0

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 (260) hide show
  1. package/dist/app/main.js +2 -0
  2. package/dist/app/main.js.map +1 -1
  3. package/dist/app/tailwind.js +14 -0
  4. package/dist/app/tailwind.js.map +1 -1
  5. package/dist/config/validators/common.d.ts +287 -18
  6. package/dist/config/validators/common.js +2 -0
  7. package/dist/config/validators/common.js.map +1 -1
  8. package/dist/config/validators/validate.d.ts +107 -7
  9. package/dist/lib/authentication/authentication.d.ts +1 -0
  10. package/dist/lib/authentication/providers/clerk.js +19 -0
  11. package/dist/lib/authentication/providers/clerk.js.map +1 -1
  12. package/dist/lib/authentication/providers/openid.d.ts +1 -0
  13. package/dist/lib/authentication/providers/openid.js +5 -0
  14. package/dist/lib/authentication/providers/openid.js.map +1 -1
  15. package/dist/lib/authentication/providers/supabase.js +5 -0
  16. package/dist/lib/authentication/providers/supabase.js.map +1 -1
  17. package/dist/lib/authentication/state.d.ts +0 -26
  18. package/dist/lib/authentication/state.js +1 -16
  19. package/dist/lib/authentication/state.js.map +1 -1
  20. package/dist/lib/components/Heading.d.ts +1 -1
  21. package/dist/lib/components/Layout.js +5 -10
  22. package/dist/lib/components/Layout.js.map +1 -1
  23. package/dist/lib/components/Main.js +3 -1
  24. package/dist/lib/components/Main.js.map +1 -1
  25. package/dist/lib/components/Pagination.d.ts +10 -0
  26. package/dist/lib/components/Pagination.js +10 -0
  27. package/dist/lib/components/Pagination.js.map +1 -0
  28. package/dist/lib/components/TopNavigation.js +18 -2
  29. package/dist/lib/components/TopNavigation.js.map +1 -1
  30. package/dist/lib/components/navigation/SidebarItem.d.ts +1 -0
  31. package/dist/lib/components/navigation/SidebarItem.js +7 -3
  32. package/dist/lib/components/navigation/SidebarItem.js.map +1 -1
  33. package/dist/lib/{plugins/markdown → components/navigation}/Toc.js +5 -7
  34. package/dist/lib/components/navigation/Toc.js.map +1 -0
  35. package/dist/lib/core/ZudokuContext.d.ts +7 -0
  36. package/dist/lib/core/ZudokuContext.js +8 -3
  37. package/dist/lib/core/ZudokuContext.js.map +1 -1
  38. package/dist/lib/core/plugins.d.ts +1 -1
  39. package/dist/lib/oas/graphql/index.d.ts +2 -1
  40. package/dist/lib/oas/graphql/index.js +74 -14
  41. package/dist/lib/oas/graphql/index.js.map +1 -1
  42. package/dist/lib/oas/parser/dereference/index.js +2 -0
  43. package/dist/lib/oas/parser/dereference/index.js.map +1 -1
  44. package/dist/lib/oas/parser/index.d.ts +5 -3
  45. package/dist/lib/oas/parser/index.js +0 -22
  46. package/dist/lib/oas/parser/index.js.map +1 -1
  47. package/dist/lib/plugins/api-catalog/index.js +19 -17
  48. package/dist/lib/plugins/api-catalog/index.js.map +1 -1
  49. package/dist/lib/plugins/markdown/MdxPage.js +3 -9
  50. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  51. package/dist/lib/plugins/openapi/ColorizedParam.js +1 -1
  52. package/dist/lib/plugins/openapi/ColorizedParam.js.map +1 -1
  53. package/dist/lib/plugins/openapi/Endpoint.js +1 -1
  54. package/dist/lib/plugins/openapi/Endpoint.js.map +1 -1
  55. package/dist/lib/plugins/openapi/OperationList.d.ts +1 -1
  56. package/dist/lib/plugins/openapi/OperationList.js +29 -9
  57. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  58. package/dist/lib/plugins/openapi/OperationListItem.js +1 -1
  59. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  60. package/dist/lib/plugins/openapi/ParameterListItem.js +2 -1
  61. package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
  62. package/dist/lib/plugins/openapi/SchemaList.d.ts +1 -0
  63. package/dist/lib/plugins/openapi/SchemaList.js +52 -0
  64. package/dist/lib/plugins/openapi/SchemaList.js.map +1 -0
  65. package/dist/lib/plugins/openapi/Sidecar.js +29 -5
  66. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  67. package/dist/lib/plugins/openapi/client/GraphQLClient.d.ts +1 -1
  68. package/dist/lib/plugins/openapi/client/GraphQLClient.js +1 -1
  69. package/dist/lib/plugins/openapi/client/GraphQLClient.js.map +1 -1
  70. package/dist/lib/plugins/openapi/client/useCreateQuery.d.ts +6 -2
  71. package/dist/lib/plugins/openapi/client/useCreateQuery.js +5 -5
  72. package/dist/lib/plugins/openapi/client/useCreateQuery.js.map +1 -1
  73. package/dist/lib/plugins/openapi/components/EnumValues.js +1 -1
  74. package/dist/lib/plugins/openapi/components/EnumValues.js.map +1 -1
  75. package/dist/lib/plugins/openapi/graphql/gql.d.ts +6 -2
  76. package/dist/lib/plugins/openapi/graphql/gql.js +3 -2
  77. package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
  78. package/dist/lib/plugins/openapi/graphql/graphql.d.ts +67 -11
  79. package/dist/lib/plugins/openapi/graphql/graphql.js +34 -5
  80. package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
  81. package/dist/lib/plugins/openapi/index.js +12 -0
  82. package/dist/lib/plugins/openapi/index.js.map +1 -1
  83. package/dist/lib/plugins/openapi/interfaces.d.ts +26 -0
  84. package/dist/lib/plugins/openapi/playground/Playground.js +1 -1
  85. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  86. package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js +2 -2
  87. package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js.map +1 -1
  88. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.d.ts +1 -2
  89. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.js +2 -2
  90. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.js.map +1 -1
  91. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.d.ts +0 -1
  92. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.js +1 -1
  93. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.js.map +1 -1
  94. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.d.ts +4 -0
  95. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js +12 -0
  96. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js.map +1 -0
  97. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.d.ts +2 -4
  98. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js +12 -9
  99. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js.map +1 -1
  100. package/dist/lib/plugins/openapi/schema/SchemaView.d.ts +1 -2
  101. package/dist/lib/plugins/openapi/schema/SchemaView.js +30 -52
  102. package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
  103. package/dist/lib/plugins/openapi/schema/utils.d.ts +1 -0
  104. package/dist/lib/plugins/openapi/schema/utils.js +3 -1
  105. package/dist/lib/plugins/openapi/schema/utils.js.map +1 -1
  106. package/dist/lib/plugins/openapi/state.d.ts +25 -0
  107. package/dist/lib/plugins/openapi/state.js +18 -0
  108. package/dist/lib/plugins/openapi/state.js.map +1 -0
  109. package/dist/lib/plugins/openapi/util/getRoutes.js +9 -3
  110. package/dist/lib/plugins/openapi/util/getRoutes.js.map +1 -1
  111. package/dist/lib/plugins/search-pagefind/PagefindSearch.js +13 -4
  112. package/dist/lib/plugins/search-pagefind/PagefindSearch.js.map +1 -1
  113. package/dist/lib/plugins/search-pagefind/ResultList.js +19 -12
  114. package/dist/lib/plugins/search-pagefind/ResultList.js.map +1 -1
  115. package/dist/lib/plugins/search-pagefind/get-results.d.ts +8 -1
  116. package/dist/lib/plugins/search-pagefind/get-results.js +9 -4
  117. package/dist/lib/plugins/search-pagefind/get-results.js.map +1 -1
  118. package/dist/lib/util/traverse.d.ts +2 -8
  119. package/dist/lib/util/traverse.js.map +1 -1
  120. package/dist/lib/util/types.d.ts +7 -0
  121. package/dist/lib/util/types.js +2 -0
  122. package/dist/lib/util/types.js.map +1 -0
  123. package/dist/lib/util/useOnScreen.d.ts +3 -2
  124. package/dist/lib/util/useOnScreen.js +3 -3
  125. package/dist/lib/util/useOnScreen.js.map +1 -1
  126. package/dist/lib/util/useScrollToAnchor.js +18 -12
  127. package/dist/lib/util/useScrollToAnchor.js.map +1 -1
  128. package/dist/vite/api/schema-codegen.js +2 -2
  129. package/dist/vite/api/schema-codegen.js.map +1 -1
  130. package/dist/vite/api/schema-codegen.test.js +5 -0
  131. package/dist/vite/api/schema-codegen.test.js.map +1 -1
  132. package/dist/vite/plugin-api.js +12 -8
  133. package/dist/vite/plugin-api.js.map +1 -1
  134. package/lib/{AuthenticationPlugin-Cij2tPWa.js → AuthenticationPlugin-foqdvvkf.js} +3 -3
  135. package/lib/{AuthenticationPlugin-Cij2tPWa.js.map → AuthenticationPlugin-foqdvvkf.js.map} +1 -1
  136. package/lib/{Callout-B2vsR09t.js → Callout-D5frCCJ0.js} +2 -2
  137. package/lib/{Callout-B2vsR09t.js.map → Callout-D5frCCJ0.js.map} +1 -1
  138. package/lib/{Dialog-sbgekbjb.js → Dialog-Dv6WG8RN.js} +5 -5
  139. package/lib/{Dialog-sbgekbjb.js.map → Dialog-Dv6WG8RN.js.map} +1 -1
  140. package/lib/{Markdown-DT5Rrq8_.js → Markdown-aF5FdsNi.js} +1945 -1937
  141. package/lib/{Markdown-DT5Rrq8_.js.map → Markdown-aF5FdsNi.js.map} +1 -1
  142. package/lib/MdxPage-ZW1StNhp.js +83 -0
  143. package/lib/MdxPage-ZW1StNhp.js.map +1 -0
  144. package/lib/{OasProvider-DdEBf2qS.js → OasProvider-Cld9RAMQ.js} +4 -4
  145. package/lib/{OasProvider-DdEBf2qS.js.map → OasProvider-Cld9RAMQ.js.map} +1 -1
  146. package/lib/OperationList-D-OfzJm6.js +5065 -0
  147. package/lib/OperationList-D-OfzJm6.js.map +1 -0
  148. package/lib/Pagination-CYB3nVYx.js +46 -0
  149. package/lib/Pagination-CYB3nVYx.js.map +1 -0
  150. package/lib/SchemaList-Ci1WxRh0.js +148 -0
  151. package/lib/SchemaList-Ci1WxRh0.js.map +1 -0
  152. package/lib/SchemaView-Brn-YxHY.js +345 -0
  153. package/lib/SchemaView-Brn-YxHY.js.map +1 -0
  154. package/lib/{Select-z1Lwl0-J.js → Select-DVFRKf1R.js} +8 -8
  155. package/lib/{Select-z1Lwl0-J.js.map → Select-DVFRKf1R.js.map} +1 -1
  156. package/lib/{SlotletProvider-D8OBnr77.js → SlotletProvider-DXvc0aY6.js} +4 -4
  157. package/lib/{SlotletProvider-D8OBnr77.js.map → SlotletProvider-DXvc0aY6.js.map} +1 -1
  158. package/lib/Toc-YBsgI72s.js +92 -0
  159. package/lib/Toc-YBsgI72s.js.map +1 -0
  160. package/lib/{chunk-HA7DTUK3-ZGg2W6yV.js → chunk-HA7DTUK3-C4gP41vD.js} +5 -5
  161. package/lib/{chunk-HA7DTUK3-ZGg2W6yV.js.map → chunk-HA7DTUK3-C4gP41vD.js.map} +1 -1
  162. package/lib/{createServer-DjgKDpGV.js → createServer-mMau3eV_.js} +1732 -1664
  163. package/lib/{createServer-DjgKDpGV.js.map → createServer-mMau3eV_.js.map} +1 -1
  164. package/lib/hook-CqpVYDqN.js +1483 -0
  165. package/lib/hook-CqpVYDqN.js.map +1 -0
  166. package/lib/index-Bt7MKhZq.js +2514 -0
  167. package/lib/index-Bt7MKhZq.js.map +1 -0
  168. package/lib/{index-DdQSV2RF.js → index-CjPMxpOV.js} +809 -750
  169. package/lib/index-CjPMxpOV.js.map +1 -0
  170. package/lib/{mutation-_Z5C2wFZ.js → mutation-8LjrN7uz.js} +2 -2
  171. package/lib/{mutation-_Z5C2wFZ.js.map → mutation-8LjrN7uz.js.map} +1 -1
  172. package/lib/post-processors/traverse.js.map +1 -1
  173. package/lib/ui/Command.js +1 -1
  174. package/lib/{useExposedProps-BslIn-FE.js → useExposedProps-B9qXJedG.js} +2 -2
  175. package/lib/{useExposedProps-BslIn-FE.js.map → useExposedProps-B9qXJedG.js.map} +1 -1
  176. package/lib/zudoku.auth-auth0.js +1 -1
  177. package/lib/zudoku.auth-clerk.js +59 -41
  178. package/lib/zudoku.auth-clerk.js.map +1 -1
  179. package/lib/zudoku.auth-openid.js +76 -73
  180. package/lib/zudoku.auth-openid.js.map +1 -1
  181. package/lib/zudoku.components.js +31 -1440
  182. package/lib/zudoku.components.js.map +1 -1
  183. package/lib/zudoku.hooks.js +1 -1
  184. package/lib/zudoku.plugin-api-catalog.js +81 -79
  185. package/lib/zudoku.plugin-api-catalog.js.map +1 -1
  186. package/lib/zudoku.plugin-api-keys.js +15 -16
  187. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  188. package/lib/zudoku.plugin-custom-pages.js +2 -2
  189. package/lib/zudoku.plugin-markdown.js +1 -1
  190. package/lib/zudoku.plugin-openapi.js +5 -6
  191. package/lib/zudoku.plugin-openapi.js.map +1 -1
  192. package/lib/zudoku.plugin-redirect.js +1 -1
  193. package/lib/zudoku.plugin-search-pagefind.js +133 -98
  194. package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
  195. package/lib/zudoku.plugins.js.map +1 -1
  196. package/package.json +4 -3
  197. package/src/app/main.tsx +2 -0
  198. package/src/app/tailwind.ts +14 -0
  199. package/src/lib/authentication/authentication.ts +2 -0
  200. package/src/lib/authentication/providers/clerk.tsx +20 -0
  201. package/src/lib/authentication/providers/openid.tsx +6 -0
  202. package/src/lib/authentication/providers/supabase.tsx +6 -0
  203. package/src/lib/authentication/state.ts +1 -35
  204. package/src/lib/components/Layout.tsx +17 -17
  205. package/src/lib/components/Main.tsx +3 -1
  206. package/src/lib/components/Pagination.tsx +47 -0
  207. package/src/lib/components/TopNavigation.tsx +29 -2
  208. package/src/lib/components/navigation/SidebarItem.tsx +10 -4
  209. package/src/lib/{plugins/markdown → components/navigation}/Toc.tsx +5 -14
  210. package/src/lib/core/ZudokuContext.ts +13 -6
  211. package/src/lib/core/plugins.ts +1 -1
  212. package/src/lib/oas/graphql/index.ts +118 -45
  213. package/src/lib/oas/parser/dereference/index.ts +2 -0
  214. package/src/lib/oas/parser/index.ts +7 -29
  215. package/src/lib/plugins/api-catalog/index.tsx +40 -35
  216. package/src/lib/plugins/markdown/MdxPage.tsx +6 -43
  217. package/src/lib/plugins/openapi/ColorizedParam.tsx +1 -1
  218. package/src/lib/plugins/openapi/Endpoint.tsx +1 -1
  219. package/src/lib/plugins/openapi/OperationList.tsx +37 -16
  220. package/src/lib/plugins/openapi/OperationListItem.tsx +7 -2
  221. package/src/lib/plugins/openapi/ParameterListItem.tsx +2 -0
  222. package/src/lib/plugins/openapi/SchemaList.tsx +151 -0
  223. package/src/lib/plugins/openapi/Sidecar.tsx +36 -7
  224. package/src/lib/plugins/openapi/client/GraphQLClient.tsx +1 -1
  225. package/src/lib/plugins/openapi/client/useCreateQuery.ts +12 -5
  226. package/src/lib/plugins/openapi/components/EnumValues.tsx +1 -1
  227. package/src/lib/plugins/openapi/graphql/gql.ts +15 -6
  228. package/src/lib/plugins/openapi/graphql/graphql.ts +104 -15
  229. package/src/lib/plugins/openapi/index.tsx +13 -0
  230. package/src/lib/plugins/openapi/interfaces.ts +29 -0
  231. package/src/lib/plugins/openapi/playground/Playground.tsx +1 -1
  232. package/src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx +2 -1
  233. package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.tsx +1 -8
  234. package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.tsx +1 -2
  235. package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +36 -0
  236. package/src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx +20 -21
  237. package/src/lib/plugins/openapi/schema/SchemaView.tsx +69 -141
  238. package/src/lib/plugins/openapi/schema/utils.ts +7 -1
  239. package/src/lib/plugins/openapi/state.ts +36 -0
  240. package/src/lib/plugins/openapi/util/getRoutes.tsx +9 -6
  241. package/src/lib/plugins/search-pagefind/PagefindSearch.tsx +26 -4
  242. package/src/lib/plugins/search-pagefind/ResultList.tsx +59 -47
  243. package/src/lib/plugins/search-pagefind/get-results.tsx +31 -10
  244. package/src/lib/util/traverse.ts +2 -6
  245. package/src/lib/util/types.ts +7 -0
  246. package/src/lib/util/useOnScreen.ts +6 -4
  247. package/src/lib/util/useScrollToAnchor.ts +20 -12
  248. package/dist/lib/plugins/markdown/Toc.js.map +0 -1
  249. package/lib/MdxPage-D2rD1vC4.js +0 -200
  250. package/lib/MdxPage-D2rD1vC4.js.map +0 -1
  251. package/lib/OperationList-DT4-gm_S.js +0 -5363
  252. package/lib/OperationList-DT4-gm_S.js.map +0 -1
  253. package/lib/hook-DzQC8PzJ.js +0 -355
  254. package/lib/hook-DzQC8PzJ.js.map +0 -1
  255. package/lib/index-DdQSV2RF.js.map +0 -1
  256. package/lib/index.esm-CltAN0Tf.js +0 -711
  257. package/lib/index.esm-CltAN0Tf.js.map +0 -1
  258. package/lib/joinUrl-BjDooT-T.js +0 -1154
  259. package/lib/joinUrl-BjDooT-T.js.map +0 -1
  260. /package/dist/lib/{plugins/markdown → components/navigation}/Toc.d.ts +0 -0
@@ -1,64 +1,42 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Markdown, ProseClasses } from "../../../components/Markdown.js";
3
3
  import { Card, CardContent, CardHeader, CardTitle } from "../../../ui/Card.js";
4
4
  import { cn } from "../../../util/cn.js";
5
5
  import { groupBy } from "../../../util/groupBy.js";
6
6
  import { EnumValues } from "../components/EnumValues.js";
7
7
  import { ParamInfos } from "../ParamInfos.js";
8
+ import { SchemaExampleAndDefault } from "./SchemaExampleAndDefault.js";
8
9
  import { SchemaLogicalGroup, SchemaPropertyItem, } from "./SchemaPropertyItem.js";
9
- import { hasLogicalGroupings } from "./utils.js";
10
+ import { hasLogicalGroupings, isBasicType } from "./utils.js";
10
11
  const renderMarkdown = (content) => content && (_jsx(Markdown, { className: cn(ProseClasses, "text-sm leading-normal line-clamp-4"), content: content }));
11
- export const SchemaView = ({ schema, level = 0, defaultOpen = false, }) => {
12
+ const renderBasicSchema = (schema) => (_jsxs(Card, { className: "p-4 space-y-2", children: [_jsx("span", { className: "text-sm text-muted-foreground", children: _jsx(ParamInfos, { schema: schema }) }), schema.enum && _jsx(EnumValues, { values: schema.enum }), renderMarkdown(schema.description), _jsx(SchemaExampleAndDefault, { schema: schema })] }));
13
+ export const SchemaView = ({ schema, defaultOpen = false, }) => {
12
14
  if (!schema || Object.keys(schema).length === 0) {
13
- return (_jsx(Card, { className: "p-4", children: _jsx("span", { className: "text-sm text-muted-foreground italic", children: "No response specified" }) }));
15
+ return (_jsx(Card, { className: "p-4", children: _jsx("span", { className: "text-sm text-muted-foreground italic", children: "No schema specified" }) }));
14
16
  }
15
- const renderSchema = (schema, level) => {
16
- if (hasLogicalGroupings(schema)) {
17
- return _jsx(SchemaLogicalGroup, { schema: schema, level: level });
18
- }
19
- if (Array.isArray(schema.type)) {
20
- return (_jsxs(Card, { className: "p-4 space-y-2", children: [_jsx("span", { className: "text-sm text-muted-foreground", children: _jsx(ParamInfos, { schema: schema }) }), schema.enum && _jsx(EnumValues, { values: schema.enum }), renderMarkdown(schema.description)] }));
21
- }
22
- if (schema.type === "array" && typeof schema.items === "object") {
23
- const itemsSchema = schema.items;
24
- if (itemsSchema.enum) {
25
- return (_jsxs(Card, { className: "p-4", children: [_jsx("span", { className: "text-sm text-muted-foreground", children: _jsx(ParamInfos, { schema: schema }) }), _jsx(EnumValues, { values: itemsSchema.enum }), renderMarkdown(schema.description)] }));
26
- }
27
- if (typeof itemsSchema.type === "string" &&
28
- ["string", "number", "boolean", "integer"].includes(itemsSchema.type)) {
29
- return (_jsxs(Card, { className: "p-4", children: [_jsx("span", { className: "text-sm text-muted-foreground", children: _jsx(ParamInfos, { schema: schema }) }), renderMarkdown(schema.description)] }));
30
- }
31
- else if (itemsSchema.type === "object") {
32
- return (_jsxs(Card, { className: "flex flex-col gap-2 bg-border/30 p-4", children: [_jsx("span", { className: "text-sm text-muted-foreground", children: "object[]" }), renderSchema(itemsSchema, level + 1)] }));
33
- }
34
- else {
35
- return renderSchema(itemsSchema, level + 1);
36
- }
37
- }
38
- if (schema.type === "object" &&
39
- (!schema.properties || Object.keys(schema.properties).length === 0)) {
40
- return (_jsxs(Card, { className: "p-4 flex gap-2 items-baseline", children: ["name" in schema && _jsx(_Fragment, { children: schema.name }), _jsx("span", { className: "text-sm text-muted-foreground", children: _jsx(ParamInfos, { schema: schema }) }), renderMarkdown(schema.description)] }));
41
- }
42
- if (schema.properties) {
43
- const groupedProperties = groupBy(Object.entries(schema.properties), ([propertyName, property]) => {
44
- return property.deprecated
45
- ? "deprecated"
46
- : schema.required?.includes(propertyName)
47
- ? "required"
48
- : "optional";
49
- });
50
- const groupNames = ["required", "optional", "deprecated"];
51
- return (_jsx(Card, { className: "divide-y overflow-hidden", children: groupNames.map((group) => groupedProperties[group] && (_jsx("ul", { className: "divide-y", children: groupedProperties[group].map(([name, schema]) => (_jsx(SchemaPropertyItem, { name: name, schema: schema, group: group, level: level, defaultOpen: defaultOpen }, name))) }, group))) }));
52
- }
53
- if (typeof schema.type === "string" &&
54
- ["string", "number", "boolean", "integer", "null"].includes(schema.type)) {
55
- return (_jsxs(Card, { className: "p-4 space-y-2", children: [_jsx("span", { className: "text-sm text-muted-foreground", children: _jsx(ParamInfos, { schema: schema }) }), schema.enum && _jsx(EnumValues, { values: schema.enum }), renderMarkdown(schema.description)] }));
56
- }
57
- if (schema.additionalProperties) {
58
- return (_jsxs(Card, { className: "my-2", children: [_jsx(CardHeader, { children: _jsx(CardTitle, { children: "Additional Properties:" }) }), _jsx(CardContent, { children: renderSchema(schema.additionalProperties, level + 1) })] }));
59
- }
60
- return null;
61
- };
62
- return renderSchema(schema, level);
17
+ if (hasLogicalGroupings(schema)) {
18
+ return _jsx(SchemaLogicalGroup, { schema: schema });
19
+ }
20
+ if (isBasicType(schema.type)) {
21
+ return renderBasicSchema(schema);
22
+ }
23
+ if (schema.type === "array" && typeof schema.items === "object") {
24
+ return renderBasicSchema(schema.items);
25
+ }
26
+ if (schema.type === "object") {
27
+ const groupedProperties = groupBy(Object.entries(schema.properties ?? {}), ([propertyName, property]) => {
28
+ return property.deprecated
29
+ ? "deprecated"
30
+ : schema.required?.includes(propertyName)
31
+ ? "required"
32
+ : "optional";
33
+ });
34
+ const groupNames = ["required", "optional", "deprecated"];
35
+ return (_jsx(Card, { className: "divide-y overflow-hidden", children: groupNames.map((group) => groupedProperties[group] && (_jsx("ul", { className: "divide-y", children: groupedProperties[group].map(([name, schema]) => (_jsx(SchemaPropertyItem, { name: name, schema: schema, group: group, defaultOpen: defaultOpen }, name))) }, group))) }));
36
+ }
37
+ if (schema.additionalProperties) {
38
+ return (_jsxs(Card, { className: "my-2", children: [_jsx(CardHeader, { children: _jsx(CardTitle, { children: "Additional Properties:" }) }), _jsx(CardContent, { children: _jsx(SchemaView, { schema: schema.additionalProperties }) })] }));
39
+ }
40
+ return null;
63
41
  };
64
42
  //# sourceMappingURL=SchemaView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaView.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/schema/SchemaView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SchemaView.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/schema/SchemaView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEzE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,cAAc,GAAG,CAAC,OAAgB,EAAE,EAAE,CAC1C,OAAO,IAAI,CACT,KAAC,QAAQ,IACP,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,qCAAqC,CAAC,EAClE,OAAO,EAAE,OAAO,GAChB,CACH,CAAC;AAEJ,MAAM,iBAAiB,GAAG,CAAC,MAAoB,EAAE,EAAE,CAAC,CAClD,MAAC,IAAI,IAAC,SAAS,EAAC,eAAe,aAC7B,eAAM,SAAS,EAAC,+BAA+B,YAC7C,KAAC,UAAU,IAAC,MAAM,EAAE,MAAM,GAAI,GACzB,EACN,MAAM,CAAC,IAAI,IAAI,KAAC,UAAU,IAAC,MAAM,EAAE,MAAM,CAAC,IAAI,GAAI,EAClD,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,EACnC,KAAC,uBAAuB,IAAC,MAAM,EAAE,MAAM,GAAI,IACtC,CACR,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,MAAM,EACN,WAAW,GAAG,KAAK,GAIpB,EAAE,EAAE;IACH,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAC,KAAK,YACnB,eAAM,SAAS,EAAC,sCAAsC,oCAE/C,GACF,CACR,CAAC;IACJ,CAAC;IAED,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,OAAO,KAAC,kBAAkB,IAAC,MAAM,EAAE,MAAM,GAAI,CAAC;IAChD,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChE,OAAO,iBAAiB,CAAC,MAAM,CAAC,KAAqB,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,iBAAiB,GAAG,OAAO,CAC/B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,EACvC,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,EAAE;YAC3B,OAAO,QAAQ,CAAC,UAAU;gBACxB,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC;oBACvC,CAAC,CAAC,UAAU;oBACZ,CAAC,CAAC,UAAU,CAAC;QACnB,CAAC,CACF,CAAC;QACF,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,CAAU,CAAC;QAEnE,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAC,0BAA0B,YACvC,UAAU,CAAC,GAAG,CACb,CAAC,KAAK,EAAE,EAAE,CACR,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAC1B,aAAgB,SAAS,EAAC,UAAU,YACjC,iBAAiB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAChD,KAAC,kBAAkB,IAEjB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,IAJnB,IAAI,CAKT,CACH,CAAC,IATK,KAAK,CAUT,CACN,CACJ,GACI,CACR,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;QAChC,OAAO,CACL,MAAC,IAAI,IAAC,SAAS,EAAC,MAAM,aACpB,KAAC,UAAU,cACT,KAAC,SAAS,yCAAmC,GAClC,EACb,KAAC,WAAW,cACV,KAAC,UAAU,IAAC,MAAM,EAAE,MAAM,CAAC,oBAAoC,GAAI,GACvD,IACT,CACR,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { SchemaObject } from "../../../oas/parser/index.js";
2
+ export declare const isBasicType: (type: unknown) => type is "string" | "number" | "boolean" | "integer" | "null";
2
3
  export declare const isComplexType: (value: SchemaObject) => boolean;
3
4
  export declare const hasLogicalGroupings: (value: SchemaObject) => boolean;
4
5
  export declare const LogicalSchemaTypeMap: {
@@ -1,5 +1,7 @@
1
1
  import { CIRCULAR_REF } from "../../../oas/graphql/circular.js";
2
- export const isComplexType = (value) => value.type === "object" ||
2
+ export const isBasicType = (type) => typeof type === "string" &&
3
+ ["string", "number", "boolean", "integer", "null"].includes(type);
4
+ export const isComplexType = (value) => (value.type === "object" && Object.keys(value.properties ?? {}).length > 0) ||
3
5
  (value.type === "array" &&
4
6
  typeof value.items === "object" &&
5
7
  (!value.items.type || value.items.type === "object"));
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/schema/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAGhE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAmB,EAAE,EAAE,CACnD,KAAK,CAAC,IAAI,KAAK,QAAQ;IACvB,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO;QACrB,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;QAC/B,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAmB,EAAE,EAAE,CACzD,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;AAErD,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;CACJ,CAAC;AAIX,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAe,EAAoB,EAAE,CACjE,MAAM,KAAK,YAAY,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/schema/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAGhE,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,IAAa,EACiD,EAAE,CAChE,OAAO,IAAI,KAAK,QAAQ;IACxB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAmB,EAAE,EAAE,CACnD,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3E,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO;QACrB,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;QAC/B,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAmB,EAAE,EAAE,CACzD,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;AAErD,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;CACJ,CAAC;AAIX,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAe,EAAoB,EAAE,CACjE,MAAM,KAAK,YAAY,CAAC"}
@@ -0,0 +1,25 @@
1
+ interface SelectedServerState {
2
+ selectedServer?: string;
3
+ setSelectedServer: (newServer: string) => void;
4
+ }
5
+ export declare const useSelectedServerStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<SelectedServerState>, "persist"> & {
6
+ persist: {
7
+ setOptions: (options: Partial<import("zustand/middleware").PersistOptions<SelectedServerState, SelectedServerState>>) => void;
8
+ clearStorage: () => void;
9
+ rehydrate: () => Promise<void> | void;
10
+ hasHydrated: () => boolean;
11
+ onHydrate: (fn: (state: SelectedServerState) => void) => () => void;
12
+ onFinishHydration: (fn: (state: SelectedServerState) => void) => () => void;
13
+ getOptions: () => Partial<import("zustand/middleware").PersistOptions<SelectedServerState, SelectedServerState>>;
14
+ };
15
+ }>;
16
+ /**
17
+ * Simple wrapper for `useSelectedServerStore` to fall back to first of the provided servers
18
+ */
19
+ export declare const useSelectedServer: (servers: Array<{
20
+ url: string;
21
+ }>) => {
22
+ selectedServer: string;
23
+ setSelectedServer: (newServer: string) => void;
24
+ };
25
+ export {};
@@ -0,0 +1,18 @@
1
+ import { useMemo } from "react";
2
+ import { create } from "zustand";
3
+ import { persist } from "zustand/middleware";
4
+ export const useSelectedServerStore = create()(persist((set) => ({
5
+ selectedServer: undefined,
6
+ setSelectedServer: (newServer) => set({ selectedServer: newServer }),
7
+ }), { name: "zudoku-selected-server" }));
8
+ /**
9
+ * Simple wrapper for `useSelectedServerStore` to fall back to first of the provided servers
10
+ */
11
+ export const useSelectedServer = (servers) => {
12
+ const { selectedServer, setSelectedServer } = useSelectedServerStore();
13
+ const finalSelectedServer = useMemo(() => selectedServer && servers.some((s) => s.url === selectedServer)
14
+ ? selectedServer
15
+ : (servers.at(0)?.url ?? ""), [selectedServer, servers]);
16
+ return { selectedServer: finalSelectedServer, setSelectedServer };
17
+ };
18
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../src/lib/plugins/openapi/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAO7C,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,EAAuB,CACjE,OAAO,CACL,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACR,cAAc,EAAE,SAAS;IACzB,iBAAiB,EAAE,CAAC,SAAiB,EAAE,EAAE,CACvC,GAAG,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;CACrC,CAAC,EACF,EAAE,IAAI,EAAE,wBAAwB,EAAE,CACnC,CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAA+B,EAAE,EAAE;IACnE,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,GAAG,sBAAsB,EAAE,CAAC;IAEvE,MAAM,mBAAmB,GAAG,OAAO,CACjC,GAAG,EAAE,CACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,cAAc,CAAC;QAC7D,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,EAChC,CAAC,cAAc,EAAE,OAAO,CAAC,CAC1B,CAAC;IAEF,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAC;AACpE,CAAC,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import slugify from "@sindresorhus/slugify";
3
2
  import { redirect } from "react-router";
4
3
  import { joinUrl } from "../../../util/joinUrl.js";
5
4
  import { UNTAGGED_PATH } from "../index.js";
@@ -24,13 +23,13 @@ const createRoute = ({ path, tag, untagged, }) => ({
24
23
  });
25
24
  // Creates routes for a specific version, including tag-based routes and the untagged operations route.
26
25
  const createVersionRoutes = (versionPath, tagPages) => {
27
- const firstTagRoute = joinUrl(versionPath, tagPages[0] ? slugify(tagPages[0]) : UNTAGGED_PATH);
26
+ const firstTagRoute = joinUrl(versionPath, tagPages.at(0) ?? UNTAGGED_PATH);
28
27
  return [
29
28
  // Redirect to first tag on the index route
30
29
  { index: true, loader: () => redirect(firstTagRoute) },
31
30
  // Create routes for each tag
32
31
  ...tagPages.map((tag) => createRoute({
33
- path: joinUrl(versionPath, slugify(tag)),
32
+ path: joinUrl(versionPath, tag),
34
33
  tag,
35
34
  })),
36
35
  // Category without tagged operations
@@ -38,6 +37,13 @@ const createVersionRoutes = (versionPath, tagPages) => {
38
37
  path: joinUrl(versionPath, UNTAGGED_PATH),
39
38
  untagged: true,
40
39
  }),
40
+ {
41
+ path: joinUrl(versionPath, "~schemas"),
42
+ lazy: async () => {
43
+ const { SchemaList } = await import("../SchemaList.js");
44
+ return { element: _jsx(SchemaList, {}) };
45
+ },
46
+ },
41
47
  ];
42
48
  };
43
49
  export const getVersions = (config) => config.type === "file" ? Object.keys(config.input) : [];
@@ -1 +1 @@
1
- {"version":3,"file":"getRoutes.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/util/getRoutes.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getRoutes.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/util/getRoutes.tsx"],"names":[],"mappings":"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"}
@@ -1,10 +1,13 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { VisuallyHidden } from "@radix-ui/react-visually-hidden";
3
3
  import { keepPreviousData, useQuery } from "@tanstack/react-query";
4
- import { useState } from "react";
4
+ import { useRef, useState } from "react";
5
+ import { Button } from "zudoku/ui/Button.js";
5
6
  import { Callout } from "zudoku/ui/Callout.js";
6
7
  import { CommandDialog, CommandEmpty, CommandInput, } from "zudoku/ui/Command.js";
7
8
  import { DialogTitle } from "zudoku/ui/Dialog.js";
9
+ import { useAuthState } from "../../authentication/state.js";
10
+ import { useZudoku } from "../../components/context/ZudokuContext.js";
8
11
  import { joinUrl } from "../../util/joinUrl.js";
9
12
  import { getResults } from "./get-results.js";
10
13
  import { ResultList } from "./ResultList.js";
@@ -41,7 +44,7 @@ const usePagefind = (options) => {
41
44
  },
42
45
  enabled: typeof window !== "undefined",
43
46
  });
44
- if (result.isError) {
47
+ if (result.isError && result.error.message !== "NOT_BUILT_YET") {
45
48
  // eslint-disable-next-line no-console
46
49
  console.error(result.error);
47
50
  }
@@ -50,17 +53,23 @@ const usePagefind = (options) => {
50
53
  export const PagefindSearch = ({ isOpen, onClose, options, }) => {
51
54
  const { pagefind, error, isError } = usePagefind(options);
52
55
  const [searchTerm, setSearchTerm] = useState("");
56
+ const auth = useAuthState();
57
+ const context = useZudoku();
58
+ const inputRef = useRef(null);
53
59
  const { data: searchResults } = useQuery({
54
60
  queryKey: ["pagefind-search", searchTerm],
55
61
  queryFn: async () => {
56
62
  const search = await pagefind?.search(searchTerm);
57
63
  if (!search)
58
64
  return [];
59
- return getResults(search, options);
65
+ return getResults({ search, options, auth, context });
60
66
  },
61
67
  placeholderData: keepPreviousData,
62
68
  enabled: !!pagefind && !!searchTerm,
63
69
  });
64
- return (_jsxs(CommandDialog, { command: { shouldFilter: false }, content: { className: "max-w-[750px]" }, open: isOpen, onOpenChange: onClose, children: [_jsx(VisuallyHidden, { children: _jsx(DialogTitle, { children: "Search" }) }), _jsx(CommandInput, { placeholder: "Search...", value: searchTerm, onValueChange: setSearchTerm, disabled: isError }), _jsx(CommandEmpty, { children: searchTerm ? "No results found." : "Start typing to search" }), isError ? (_jsx("div", { className: "p-4 text-sm", children: error.message === "NOT_BUILT_YET" ? (_jsxs(Callout, { type: "info", children: ["Search is currently not available in development mode by default.", _jsx("br", {}), "To still use search in development, run ", _jsx("code", { children: "zudoku build" }), " ", "and copy the ", _jsx("code", { children: "dist/pagefind" }), " directory to your", " ", _jsx("code", { children: "public" }), " directory."] })) : ("An error occurred while loading search.") })) : (_jsx(ResultList, { basePath: options.basePath, searchResults: searchResults ?? [], searchTerm: searchTerm, onClose: onClose, maxSubResults: options.maxSubResults }))] }));
70
+ return (_jsxs(CommandDialog, { command: { shouldFilter: false }, content: { className: "max-w-[750px]" }, open: isOpen, onOpenChange: onClose, children: [_jsx(VisuallyHidden, { children: _jsx(DialogTitle, { children: "Search" }) }), _jsx(CommandInput, { ref: inputRef, placeholder: "Search...", value: searchTerm, onValueChange: setSearchTerm, disabled: isError }), _jsx(CommandEmpty, { children: searchTerm ? (_jsxs("div", { className: "flex flex-col items-center", children: ["No results found.", _jsx(Button, { variant: "link", onClick: () => {
71
+ setSearchTerm("");
72
+ inputRef.current?.focus();
73
+ }, children: "Clear search" })] })) : ("Start typing to search") }), isError ? (_jsx("div", { className: "p-4 text-sm", children: error.message === "NOT_BUILT_YET" ? (_jsxs(Callout, { type: "info", children: ["Search is currently not available in development mode by default.", _jsx("br", {}), "To still use search in development, run ", _jsx("code", { children: "zudoku build" }), " ", "and copy the ", _jsx("code", { children: "dist/pagefind" }), " directory to your", " ", _jsx("code", { children: "public" }), " directory."] })) : ("An error occurred while loading search.") })) : (_jsx(ResultList, { basePath: options.basePath, searchResults: searchResults ?? [], searchTerm: searchTerm, onClose: onClose, maxSubResults: options.maxSubResults }))] }));
65
74
  };
66
75
  //# sourceMappingURL=PagefindSearch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PagefindSearch.js","sourceRoot":"","sources":["../../../../src/lib/plugins/search-pagefind/PagefindSearch.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PagefindSearch.js","sourceRoot":"","sources":["../../../../src/lib/plugins/search-pagefind/PagefindSearch.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { FileTextIcon } from "lucide-react";
3
- import { useCallback } from "react";
2
+ import { BracketsIcon, FileTextIcon } from "lucide-react";
3
+ import { useCallback, useLayoutEffect, useRef } from "react";
4
4
  import { Link, useNavigate } from "react-router";
5
5
  import { CommandGroup, CommandItem, CommandList } from "zudoku/ui/Command.js";
6
6
  const sortSubResults = (a, b) => {
@@ -11,21 +11,28 @@ const sortSubResults = (a, b) => {
11
11
  const hoverClassname = `cursor-pointer border border-transparent data-[selected=true]:border-border`;
12
12
  export const ResultList = ({ basePath, searchResults, searchTerm, onClose, maxSubResults = 4, }) => {
13
13
  const navigate = useNavigate();
14
+ const commandListRef = useRef(null);
14
15
  const cleanResultUrl = useCallback((url) => {
15
16
  const clean = url.replace(".html", "");
16
17
  return basePath && clean.startsWith(basePath)
17
18
  ? clean.slice(basePath.length)
18
19
  : clean;
19
20
  }, [basePath]);
20
- return (_jsxs(CommandList, { className: "max-h-[450px]", children: [searchTerm && searchResults.length > 0 && (_jsx(CommandGroup, { className: "text-sm text-muted-foreground", heading: `${searchResults.length} results for "${searchTerm}"` })), searchResults.map((result) => (_jsxs(CommandGroup, { children: [_jsx(CommandItem, { asChild: true, value: `${result.meta.title}-${result.url}`, className: hoverClassname, onSelect: () => {
21
- void navigate(cleanResultUrl(result.url));
22
- onClose();
23
- }, children: _jsxs(Link, { to: cleanResultUrl(result.url), children: [_jsx(FileTextIcon, { size: 20, className: "text-muted-foreground" }), result.meta.title] }) }), result.sub_results
24
- .sort(sortSubResults)
25
- .slice(0, maxSubResults)
26
- .map((subResult) => (_jsx(CommandItem, { asChild: true, value: `${result.meta.title}-${subResult.url}`, className: hoverClassname, onSelect: () => {
27
- void navigate(cleanResultUrl(subResult.url));
28
- onClose();
29
- }, children: _jsx(Link, { to: cleanResultUrl(subResult.url), onClick: onClose, children: _jsxs("div", { className: "flex flex-col items-start gap-2 ms-2.5 ps-5 border-l border-muted-foreground/50", children: [_jsx("span", { className: "font-bold", children: subResult.title }), _jsx("span", { className: "text-[13px] [&_mark]:bg-primary [&_mark]:text-primary-foreground", dangerouslySetInnerHTML: { __html: subResult.excerpt } })] }) }) }, `${result.meta.title}-${subResult.url}`)))] }, [result.meta.title ?? result.excerpt, result.url].join("-"))))] }));
21
+ useLayoutEffect(() => {
22
+ requestIdleCallback(() => {
23
+ commandListRef.current?.scrollTo({ top: 0 });
24
+ });
25
+ }, [searchTerm]);
26
+ return (_jsxs(CommandList, { className: "max-h-[450px]", ref: commandListRef, children: [searchTerm && searchResults.length > 0 && (_jsx(CommandGroup, { className: "text-sm text-muted-foreground", heading: `${searchResults.length} results for "${searchTerm}"` })), searchTerm &&
27
+ searchResults.map((result) => (_jsxs(CommandGroup, { children: [_jsx(CommandItem, { asChild: true, value: `${result.meta.title}-${result.url}`, className: hoverClassname, onSelect: () => {
28
+ void navigate(cleanResultUrl(result.url));
29
+ onClose();
30
+ }, children: _jsxs(Link, { to: cleanResultUrl(result.url), children: [result.meta.section === "openapi" ? (_jsx(BracketsIcon, {})) : (_jsx(FileTextIcon, {})), result.meta.title] }) }), result.sub_results
31
+ .sort(sortSubResults)
32
+ .slice(0, maxSubResults)
33
+ .map((subResult) => (_jsx(CommandItem, { asChild: true, value: `sub-${result.meta.title}-${subResult.url}`, className: hoverClassname, onSelect: () => {
34
+ void navigate(cleanResultUrl(subResult.url));
35
+ onClose();
36
+ }, children: _jsx(Link, { to: cleanResultUrl(subResult.url), onClick: onClose, children: _jsxs("div", { className: "flex flex-col items-start gap-2 ms-2.5 ps-5 border-l border-muted-foreground/50", children: [_jsx("span", { className: "font-bold", children: subResult.title }), _jsx("span", { className: "text-[13px] [&_mark]:bg-primary [&_mark]:text-primary-foreground", dangerouslySetInnerHTML: { __html: subResult.excerpt } })] }) }) }, `sub-${result.meta.title}-${subResult.url}`)))] }, [result.meta.title ?? result.excerpt, result.url].join("-"))))] }));
30
37
  };
31
38
  //# sourceMappingURL=ResultList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResultList.js","sourceRoot":"","sources":["../../../../src/lib/plugins/search-pagefind/ResultList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ResultList.js","sourceRoot":"","sources":["../../../../src/lib/plugins/search-pagefind/ResultList.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,10 @@
1
+ import type { AuthState } from "../../authentication/state.js";
2
+ import type { ZudokuContext } from "../../core/ZudokuContext.js";
1
3
  import type { PagefindOptions } from "./index.js";
2
4
  import type { PagefindSearchFragment, PagefindSearchResults } from "./types.js";
3
- export declare const getResults: (search: PagefindSearchResults, options: PagefindOptions) => Promise<PagefindSearchFragment[]>;
5
+ export declare const getResults: ({ search, options, auth, context, }: {
6
+ search: PagefindSearchResults;
7
+ options: PagefindOptions;
8
+ auth: AuthState;
9
+ context: ZudokuContext;
10
+ }) => Promise<PagefindSearchFragment[]>;
@@ -1,8 +1,13 @@
1
- export const getResults = async (search, options) => {
1
+ export const getResults = async ({ search, options, auth, context, }) => {
2
2
  const maxResults = options.maxResults ?? 10;
3
3
  const transformFn = options.transformResults ?? (() => true);
4
4
  const transformedResults = [];
5
- const generator = searchResultGenerator(search, transformFn);
5
+ const generator = searchResultGenerator({
6
+ search,
7
+ transformFn,
8
+ auth,
9
+ context,
10
+ });
6
11
  for await (const result of generator) {
7
12
  transformedResults.push(result);
8
13
  if (transformedResults.length >= maxResults)
@@ -10,7 +15,7 @@ export const getResults = async (search, options) => {
10
15
  }
11
16
  return transformedResults;
12
17
  };
13
- async function* searchResultGenerator(search, transformFn) {
18
+ async function* searchResultGenerator({ search, transformFn, auth, context, }) {
14
19
  const batchSize = 5;
15
20
  let processedCount = 0;
16
21
  while (processedCount < search.results.length) {
@@ -18,7 +23,7 @@ async function* searchResultGenerator(search, transformFn) {
18
23
  processedCount += batch.length;
19
24
  const batchData = await Promise.all(batch.map((result) => result.data()));
20
25
  for (const result of batchData) {
21
- const transformed = transformFn(result);
26
+ const transformed = transformFn({ result, auth, context });
22
27
  if (transformed === false) {
23
28
  // Skip this result
24
29
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"get-results.js","sourceRoot":"","sources":["../../../../src/lib/plugins/search-pagefind/get-results.tsx"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,MAA6B,EAC7B,OAAwB,EACxB,EAAE;IACF,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;IAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAE7D,MAAM,kBAAkB,GAA6B,EAAE,CAAC;IAExD,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAE7D,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;QACrC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,kBAAkB,CAAC,MAAM,IAAI,UAAU;YAAE,MAAM;IACrD,CAAC;IAED,OAAO,kBAAkB,CAAC;AAC5B,CAAC,CAAC;AAEF,KAAK,SAAS,CAAC,CAAC,qBAAqB,CACnC,MAA6B,EAC7B,WAA6D;IAE7D,MAAM,SAAS,GAAG,CAAC,CAAC;IACpB,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,OAAO,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAChC,cAAc,EACd,cAAc,GAAG,SAAS,CAC3B,CAAC;QACF,cAAc,IAAI,KAAK,CAAC,MAAM,CAAC;QAE/B,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAE1E,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;YAC/B,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;YAExC,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;gBAC1B,mBAAmB;gBACnB,SAAS;YACX,CAAC;iBAAM,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;gBACvD,2BAA2B;gBAC3B,MAAM,MAAM,CAAC;YACf,CAAC;iBAAM,CAAC;gBACN,gCAAgC;gBAChC,MAAM,WAAW,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"get-results.js","sourceRoot":"","sources":["../../../../src/lib/plugins/search-pagefind/get-results.tsx"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,EAC/B,MAAM,EACN,OAAO,EACP,IAAI,EACJ,OAAO,GAMR,EAAE,EAAE;IACH,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;IAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAE7D,MAAM,kBAAkB,GAA6B,EAAE,CAAC;IAExD,MAAM,SAAS,GAAG,qBAAqB,CAAC;QACtC,MAAM;QACN,WAAW;QACX,IAAI;QACJ,OAAO;KACR,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;QACrC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,kBAAkB,CAAC,MAAM,IAAI,UAAU;YAAE,MAAM;IACrD,CAAC;IAED,OAAO,kBAAkB,CAAC;AAC5B,CAAC,CAAC;AAEF,KAAK,SAAS,CAAC,CAAC,qBAAqB,CAAC,EACpC,MAAM,EACN,WAAW,EACX,IAAI,EACJ,OAAO,GAMR;IACC,MAAM,SAAS,GAAG,CAAC,CAAC;IACpB,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,OAAO,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAChC,cAAc,EACd,cAAc,GAAG,SAAS,CAC3B,CAAC;QACF,cAAc,IAAI,KAAK,CAAC,MAAM,CAAC;QAE/B,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAE1E,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;YAC/B,MAAM,WAAW,GAAG,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAE3D,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;gBAC1B,mBAAmB;gBACnB,SAAS;YACX,CAAC;iBAAM,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;gBACvD,2BAA2B;gBAC3B,MAAM,MAAM,CAAC;YACf,CAAC;iBAAM,CAAC;gBACN,gCAAgC;gBAChC,MAAM,WAAW,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,9 +1,3 @@
1
- export type RecordAny = Record<string, any>;
2
- type JsonPrimitive = string | number | boolean | null;
3
- type JsonArray = JsonValue[];
4
- type JsonObject = {
5
- [key: string]: JsonValue;
6
- };
7
- type JsonValue = JsonPrimitive | JsonArray | JsonObject;
1
+ import type { JsonValue, RecordAny } from "./types.js";
2
+ export type { RecordAny };
8
3
  export declare const traverse: <T extends JsonValue = RecordAny>(specification: RecordAny, transform: (specification: RecordAny) => T) => RecordAny | T;
9
- export {};
@@ -1 +1 @@
1
- {"version":3,"file":"traverse.js","sourceRoot":"","sources":["../../../src/lib/util/traverse.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,aAAwB,EACxB,SAA0C,EAC1C,EAAE;IACF,MAAM,WAAW,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;IAC7C,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QAC5D,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,MAAM,GAAc,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACvD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC/B,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,IAAI;gBACtC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC3B,CAAC,CAAC,IAAI,CACT,CAAC;QACJ,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YACtD,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
1
+ {"version":3,"file":"traverse.js","sourceRoot":"","sources":["../../../src/lib/util/traverse.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,aAAwB,EACxB,SAA0C,EAC1C,EAAE;IACF,MAAM,WAAW,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;IAC7C,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QAC5D,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,MAAM,GAAc,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACvD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC/B,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,IAAI;gBACtC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC3B,CAAC,CAAC,IAAI,CACT,CAAC;QACJ,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YACtD,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export type RecordAny = Record<string, any>;
2
+ export type JsonPrimitive = string | number | boolean | null;
3
+ export type JsonArray = JsonValue[];
4
+ export type JsonObject = {
5
+ [key: string]: JsonValue;
6
+ };
7
+ export type JsonValue = JsonPrimitive | JsonArray | JsonObject;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/util/types.ts"],"names":[],"mappings":""}
@@ -1,4 +1,5 @@
1
- export declare const useOnScreen: ({ rootMargin, threshold, }?: {
1
+ export declare const useOnScreen: <E extends Element = HTMLElement>({ rootMargin, threshold, root, }?: {
2
2
  rootMargin?: string;
3
3
  threshold?: number;
4
- }) => readonly [import("react").RefObject<HTMLElement | null>, boolean];
4
+ root?: Element | null;
5
+ }) => readonly [import("react").RefObject<E | null>, boolean];
@@ -1,5 +1,5 @@
1
1
  import { useEffect, useRef, useState } from "react";
2
- export const useOnScreen = ({ rootMargin = "0px", threshold, } = {}) => {
2
+ export const useOnScreen = ({ rootMargin = "0px", threshold, root, } = {}) => {
3
3
  const [isVisible, setIsVisible] = useState(false);
4
4
  const ref = useRef(null);
5
5
  useEffect(() => {
@@ -7,13 +7,13 @@ export const useOnScreen = ({ rootMargin = "0px", threshold, } = {}) => {
7
7
  if (!entry)
8
8
  return;
9
9
  setIsVisible(entry.isIntersecting);
10
- }, { rootMargin, threshold });
10
+ }, { rootMargin, threshold, root });
11
11
  const currentElement = ref.current;
12
12
  if (!currentElement)
13
13
  return;
14
14
  observer.observe(currentElement);
15
15
  return () => observer.unobserve(currentElement);
16
- }, [rootMargin, threshold]);
16
+ }, [root, rootMargin, threshold]);
17
17
  return [ref, isVisible];
18
18
  };
19
19
  //# sourceMappingURL=useOnScreen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOnScreen.js","sourceRoot":"","sources":["../../../src/lib/util/useOnScreen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEpD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,UAAU,GAAG,KAAK,EAClB,SAAS,MAIP,EAAE,EAAE,EAAE;IACR,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IAE7C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CACvC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;YACV,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACrC,CAAC,EACD,EAAE,UAAU,EAAE,SAAS,EAAE,CAC1B,CAAC;QAEF,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC;QAEnC,IAAI,CAAC,cAAc;YAAE,OAAO;QAE5B,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAEjC,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAClD,CAAC,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IAE5B,OAAO,CAAC,GAAG,EAAE,SAAS,CAAU,CAAC;AACnC,CAAC,CAAC"}
1
+ {"version":3,"file":"useOnScreen.js","sourceRoot":"","sources":["../../../src/lib/util/useOnScreen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEpD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAkC,EAC3D,UAAU,GAAG,KAAK,EAClB,SAAS,EACT,IAAI,MAKF,EAAE,EAAE,EAAE;IACR,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,MAAM,CAAW,IAAI,CAAC,CAAC;IAEnC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CACvC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;YACV,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACrC,CAAC,EACD,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,CAChC,CAAC;QAEF,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC;QAEnC,IAAI,CAAC,cAAc;YAAE,OAAO;QAE5B,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAEjC,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAClD,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IAElC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAU,CAAC;AACnC,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { useCallback, useEffect } from "react";
1
+ import { useCallback, useEffect, useRef } from "react";
2
2
  import { useLocation } from "react-router";
3
3
  import { useViewportAnchor } from "../components/context/ViewportAnchorContext.js";
4
4
  import { DATA_ANCHOR_ATTR } from "../components/navigation/SidebarItem.js";
@@ -27,20 +27,26 @@ export const useScrollToHash = () => {
27
27
  };
28
28
  export const useScrollToAnchor = () => {
29
29
  const location = useLocation();
30
- const { setActiveAnchor } = useViewportAnchor();
31
30
  const scrollToHash = useScrollToHash();
31
+ const initialScrolled = useRef(false);
32
+ useEffect(() => {
33
+ if (!location.hash || !initialScrolled.current)
34
+ return;
35
+ scrollToHash(location.hash);
36
+ }, [location.hash, scrollToHash]);
32
37
  useEffect(() => {
33
- if (!location.hash)
38
+ if (!location.hash) {
39
+ initialScrolled.current = true;
34
40
  return;
35
- if (!scrollToHash(location.hash)) {
36
- const observer = new MutationObserver((_, obs) => {
37
- if (!scrollToHash(location.hash))
38
- return;
39
- obs.disconnect();
40
- });
41
- observer.observe(document.body, { childList: true, subtree: true });
42
- return () => observer.disconnect();
43
41
  }
44
- }, [location.hash, scrollToHash, setActiveAnchor]);
42
+ const observer = new MutationObserver((_, obs) => {
43
+ if (!scrollToHash(location.hash))
44
+ return;
45
+ initialScrolled.current = true;
46
+ obs.disconnect();
47
+ });
48
+ observer.observe(document.body, { childList: true, subtree: true });
49
+ return () => observer.disconnect();
50
+ }, [location.hash, scrollToHash]);
45
51
  };
46
52
  //# sourceMappingURL=useScrollToAnchor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useScrollToAnchor.js","sourceRoot":"","sources":["../../../src/lib/util/useScrollToAnchor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,MAAM,EAAE,eAAe,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAEhD,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,IAAY,EAAE,EAAE;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAEzC,8EAA8E;QAC9E,8HAA8H;QAC9H,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;QAEvE,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CACjC,IAAI,gBAAgB,KAAK,QAAQ,IAAI,CACtC,CAAC;QAEF,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,cAAc,EAAE,CAAC;YACzB,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC7B,sDAAsD;YACtD,2DAA2D;YAC3D,mBAAmB,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,uBAAuB;QACvB,OAAO,KAAK,CAAC;IACf,CAAC,EACD,CAAC,eAAe,CAAC,CAClB,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,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;IAChD,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IAEvC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ,CAAC,IAAI;YAAE,OAAO;QAE3B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;gBAC/C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAAE,OAAO;gBACzC,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,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;AACrD,CAAC,CAAC"}
1
+ {"version":3,"file":"useScrollToAnchor.js","sourceRoot":"","sources":["../../../src/lib/util/useScrollToAnchor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,MAAM,EAAE,eAAe,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAEhD,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,IAAY,EAAE,EAAE;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAEzC,8EAA8E;QAC9E,8HAA8H;QAC9H,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;QAEvE,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CACjC,IAAI,gBAAgB,KAAK,QAAQ,IAAI,CACtC,CAAC;QAEF,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,cAAc,EAAE,CAAC;YACzB,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC7B,sDAAsD;YACtD,2DAA2D;YAC3D,mBAAmB,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,uBAAuB;QACvB,OAAO,KAAK,CAAC;IACf,CAAC,EACD,CAAC,eAAe,CAAC,CAClB,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEtC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO;YAAE,OAAO;QAEvD,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IAElC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YAC/C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO;YACzC,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;YAC/B,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,YAAY,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC"}