zudoku 0.0.0-z6e949a6d → 0.0.0-z8ac421f0

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 (209) hide show
  1. package/dist/app/main.js +1 -1
  2. package/dist/app/main.js.map +1 -1
  3. package/dist/config/create-plugin.d.ts +2 -0
  4. package/dist/config/create-plugin.js +55 -0
  5. package/dist/config/create-plugin.js.map +1 -0
  6. package/dist/config/loader.js +2 -2
  7. package/dist/config/loader.js.map +1 -1
  8. package/dist/config/validators/InputNavigationSchema.d.ts +67 -67
  9. package/dist/config/validators/NavigationSchema.js +1 -0
  10. package/dist/config/validators/NavigationSchema.js.map +1 -1
  11. package/dist/config/validators/validate.d.ts +5 -4
  12. package/dist/config/validators/validate.js +2 -0
  13. package/dist/config/validators/validate.js.map +1 -1
  14. package/dist/flat-config.d.ts +1 -0
  15. package/dist/index.d.ts +2 -1
  16. package/dist/index.js +1 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/lib/components/Bootstrap.js +1 -2
  19. package/dist/lib/components/Bootstrap.js.map +1 -1
  20. package/dist/lib/components/Slot.test.js +1 -1
  21. package/dist/lib/components/Slot.test.js.map +1 -1
  22. package/dist/lib/components/Zudoku.d.ts +4 -1
  23. package/dist/lib/components/Zudoku.js +4 -7
  24. package/dist/lib/components/Zudoku.js.map +1 -1
  25. package/dist/lib/components/context/ZudokuContext.d.ts +2 -4
  26. package/dist/lib/components/context/ZudokuContext.js +2 -2
  27. package/dist/lib/components/context/ZudokuContext.js.map +1 -1
  28. package/dist/lib/components/context/ZudokuProvider.js +1 -1
  29. package/dist/lib/components/context/ZudokuProvider.js.map +1 -1
  30. package/dist/lib/components/context/ZudokuReactContext.d.ts +11 -0
  31. package/dist/lib/components/context/ZudokuReactContext.js +4 -0
  32. package/dist/lib/components/context/ZudokuReactContext.js.map +1 -0
  33. package/dist/lib/core/ZudokuContext.d.ts +2 -1
  34. package/dist/lib/core/ZudokuContext.js +3 -1
  35. package/dist/lib/core/ZudokuContext.js.map +1 -1
  36. package/dist/lib/core/__internal.d.ts +1 -0
  37. package/dist/lib/core/__internal.js +2 -0
  38. package/dist/lib/core/__internal.js.map +1 -1
  39. package/dist/lib/core/plugins.d.ts +5 -1
  40. package/dist/lib/core/plugins.js.map +1 -1
  41. package/dist/lib/core/transform-config.d.ts +4 -2
  42. package/dist/lib/core/transform-config.js +33 -13
  43. package/dist/lib/core/transform-config.js.map +1 -1
  44. package/dist/lib/core/transform-config.test.d.ts +1 -0
  45. package/dist/lib/core/transform-config.test.js +83 -0
  46. package/dist/lib/core/transform-config.test.js.map +1 -0
  47. package/dist/lib/errors/ErrorAlert.js +1 -2
  48. package/dist/lib/errors/ErrorAlert.js.map +1 -1
  49. package/dist/lib/hooks/useEvent.test.js +1 -1
  50. package/dist/lib/hooks/useEvent.test.js.map +1 -1
  51. package/dist/lib/plugins/openapi/ParamInfos.js +8 -5
  52. package/dist/lib/plugins/openapi/ParamInfos.js.map +1 -1
  53. package/dist/lib/plugins/openapi/ParameterListItem.js +1 -1
  54. package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
  55. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js +2 -2
  56. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js.map +1 -1
  57. package/dist/lib/ui/Alert.d.ts +3 -2
  58. package/dist/lib/ui/Alert.js +9 -5
  59. package/dist/lib/ui/Alert.js.map +1 -1
  60. package/dist/lib/ui/Secret.js +2 -2
  61. package/dist/lib/ui/Secret.js.map +1 -1
  62. package/dist/lib/util/flattenAllOf.js +6 -0
  63. package/dist/lib/util/flattenAllOf.js.map +1 -1
  64. package/dist/lib/util/flattenAllOf.test.js +26 -0
  65. package/dist/lib/util/flattenAllOf.test.js.map +1 -1
  66. package/dist/vite/config.js +5 -2
  67. package/dist/vite/config.js.map +1 -1
  68. package/dist/vite/plugin-config.js +16 -4
  69. package/dist/vite/plugin-config.js.map +1 -1
  70. package/dist/vite/plugin-theme.js +2 -1
  71. package/dist/vite/plugin-theme.js.map +1 -1
  72. package/dist/vite/prerender/prerender.js +3 -1
  73. package/dist/vite/prerender/prerender.js.map +1 -1
  74. package/dist/vite/prerender/worker.js +3 -1
  75. package/dist/vite/prerender/worker.js.map +1 -1
  76. package/lib/{ClaudeLogo-OpUSMQJe.js → ClaudeLogo-Br8C_vTq.js} +3 -3
  77. package/lib/{ClaudeLogo-OpUSMQJe.js.map → ClaudeLogo-Br8C_vTq.js.map} +1 -1
  78. package/lib/Drawer-Ch7927PF.js.map +1 -1
  79. package/lib/{HydrationBoundary-CNF2ZV3E.js → HydrationBoundary-CJu4vUlG.js} +6 -6
  80. package/lib/{HydrationBoundary-CNF2ZV3E.js.map → HydrationBoundary-CJu4vUlG.js.map} +1 -1
  81. package/lib/{MdxPage-dzCPGdvD.js → MdxPage-C0QFAsgv.js} +6 -6
  82. package/lib/{MdxPage-dzCPGdvD.js.map → MdxPage-C0QFAsgv.js.map} +1 -1
  83. package/lib/Mermaid-Chx5BPHn.js +104 -0
  84. package/lib/Mermaid-Chx5BPHn.js.map +1 -0
  85. package/lib/{OAuthErrorPage-D7n-_cqN.js → OAuthErrorPage-CFz_gBFx.js} +11 -10
  86. package/lib/{OAuthErrorPage-D7n-_cqN.js.map → OAuthErrorPage-CFz_gBFx.js.map} +1 -1
  87. package/lib/{OasProvider-DPPdikt_.js → OasProvider-BwIOIlky.js} +3 -3
  88. package/lib/{OasProvider-DPPdikt_.js.map → OasProvider-BwIOIlky.js.map} +1 -1
  89. package/lib/OperationList-DYRzbPJu.js +5908 -0
  90. package/lib/OperationList-DYRzbPJu.js.map +1 -0
  91. package/lib/{RouteGuard-BMbu_Yb7.js → RouteGuard-CVs3yvEs.js} +3 -3
  92. package/lib/{RouteGuard-BMbu_Yb7.js.map → RouteGuard-CVs3yvEs.js.map} +1 -1
  93. package/lib/{SchemaList-CRC8n5co.js → SchemaList-D4FEyoDV.js} +7 -7
  94. package/lib/{SchemaList-CRC8n5co.js.map → SchemaList-D4FEyoDV.js.map} +1 -1
  95. package/lib/{SchemaView-BR6dtnPg.js → SchemaView-ScvkhsYE.js} +116 -110
  96. package/lib/SchemaView-ScvkhsYE.js.map +1 -0
  97. package/lib/{Secret-BDBqq4p3.js → Secret-DUpgv4V3.js} +92 -72
  98. package/lib/Secret-DUpgv4V3.js.map +1 -0
  99. package/lib/{SignUp-ChqXj9vd.js → SignUp-Dug1jAGC.js} +4 -4
  100. package/lib/{SignUp-ChqXj9vd.js.map → SignUp-Dug1jAGC.js.map} +1 -1
  101. package/lib/{SyntaxHighlight-O-IZOPLg.js → SyntaxHighlight-BMu0b_hF.js} +8 -8
  102. package/lib/{SyntaxHighlight-O-IZOPLg.js.map → SyntaxHighlight-BMu0b_hF.js.map} +1 -1
  103. package/lib/{Toc-DQF7trHT.js → Toc-BiJ2YL0O.js} +2 -2
  104. package/lib/{Toc-DQF7trHT.js.map → Toc-BiJ2YL0O.js.map} +1 -1
  105. package/lib/{Zudoku-DA1yA-te.js → Zudoku-iyiXgWFY.js} +2101 -2121
  106. package/lib/Zudoku-iyiXgWFY.js.map +1 -0
  107. package/lib/ZudokuContext-CYyb_PB_.js +175 -0
  108. package/lib/ZudokuContext-CYyb_PB_.js.map +1 -0
  109. package/lib/ZudokuReactContext-DGJAP1sN.js +222 -0
  110. package/lib/ZudokuReactContext-DGJAP1sN.js.map +1 -0
  111. package/lib/chunk-EPOLDU6W-C6C8jAwd.js.map +1 -1
  112. package/lib/{circular-C4l1Kj1N.js → circular-BOpxmAie.js} +2 -2
  113. package/lib/{circular-C4l1Kj1N.js.map → circular-BOpxmAie.js.map} +1 -1
  114. package/lib/{createServer-DoRZ6tMa.js → createServer-BunbJzB5.js} +6 -4
  115. package/lib/{createServer-DoRZ6tMa.js.map → createServer-BunbJzB5.js.map} +1 -1
  116. package/lib/{errors-CYLN8SNc.js → errors-B77S9iOc.js} +2 -2
  117. package/lib/{errors-CYLN8SNc.js.map → errors-B77S9iOc.js.map} +1 -1
  118. package/lib/{firebase-DF-VVKB7.js → firebase-C7XKRGLf.js} +25 -24
  119. package/lib/{firebase-DF-VVKB7.js.map → firebase-C7XKRGLf.js.map} +1 -1
  120. package/lib/{hook-C35h0YhF.js → hook-Dz_n9SoE.js} +16 -15
  121. package/lib/{hook-C35h0YhF.js.map → hook-Dz_n9SoE.js.map} +1 -1
  122. package/lib/{index-DrAVvbXa.js → index-BDp2MTiq.js} +2 -2
  123. package/lib/{index-DrAVvbXa.js.map → index-BDp2MTiq.js.map} +1 -1
  124. package/lib/{index-Ck4TmzTO.js → index-Bx29qHVi.js} +52 -50
  125. package/lib/{index-Ck4TmzTO.js.map → index-Bx29qHVi.js.map} +1 -1
  126. package/lib/index-CrcNWbel.js.map +1 -1
  127. package/lib/index-DAWHN3cH.js.map +1 -1
  128. package/lib/index.esm-BYObtETB.js.map +1 -1
  129. package/lib/index.esm-Ca5zvoff.js.map +1 -1
  130. package/lib/{index.esm-B2cLXwjS.js → index.esm-Cth49JBv.js} +2 -2
  131. package/lib/index.esm-Cth49JBv.js.map +1 -0
  132. package/lib/jsx-runtime-BzflLqGi.js.map +1 -1
  133. package/lib/{mutation-BISOc7OM.js → mutation-B7eFBLZY.js} +2 -2
  134. package/lib/{mutation-BISOc7OM.js.map → mutation-B7eFBLZY.js.map} +1 -1
  135. package/lib/ui/Alert.js +32 -20
  136. package/lib/ui/Alert.js.map +1 -1
  137. package/lib/ui/Carousel.js.map +1 -1
  138. package/lib/ui/Secret.js +2 -2
  139. package/lib/ui/Secret.js.map +1 -1
  140. package/lib/ui/SyntaxHighlight.js +2 -2
  141. package/lib/useExposedProps-CzTDfXfq.js.map +1 -1
  142. package/lib/{useMutation-CFMGlAMW.js → useMutation-CErliDZ9.js} +5 -5
  143. package/lib/{useMutation-CFMGlAMW.js.map → useMutation-CErliDZ9.js.map} +1 -1
  144. package/lib/{useSuspenseQuery-CSB_rVek.js → useQuery-ht7aWJ3S.js} +432 -446
  145. package/lib/useQuery-ht7aWJ3S.js.map +1 -0
  146. package/lib/useSuspenseQuery-DQH4Bmc2.js +18 -0
  147. package/lib/useSuspenseQuery-DQH4Bmc2.js.map +1 -0
  148. package/lib/zudoku.__internal.js +520 -496
  149. package/lib/zudoku.__internal.js.map +1 -1
  150. package/lib/zudoku.auth-auth0.js +6 -5
  151. package/lib/zudoku.auth-auth0.js.map +1 -1
  152. package/lib/zudoku.auth-azureb2c.js +14 -13
  153. package/lib/zudoku.auth-azureb2c.js.map +1 -1
  154. package/lib/zudoku.auth-clerk.js +2 -2
  155. package/lib/zudoku.auth-firebase.js +4 -4
  156. package/lib/zudoku.auth-openid.js +7 -6
  157. package/lib/zudoku.auth-openid.js.map +1 -1
  158. package/lib/zudoku.auth-supabase.js +4 -4
  159. package/lib/zudoku.components.js +3 -3
  160. package/lib/zudoku.hooks.js +3 -3
  161. package/lib/zudoku.mermaid.js +3 -3
  162. package/lib/zudoku.plugin-api-catalog.js +28 -27
  163. package/lib/zudoku.plugin-api-catalog.js.map +1 -1
  164. package/lib/zudoku.plugin-api-keys.js +98 -96
  165. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  166. package/lib/zudoku.plugin-custom-pages.js +1 -1
  167. package/lib/zudoku.plugin-markdown.js +1 -1
  168. package/lib/zudoku.plugin-openapi.js +2 -2
  169. package/lib/zudoku.plugin-search-pagefind.js +19 -18
  170. package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
  171. package/lib/zudoku.plugins.js.map +1 -1
  172. package/lib/zudoku.react-query.js +26 -25
  173. package/lib/zudoku.react-query.js.map +1 -1
  174. package/lib/zudoku.router.js.map +1 -1
  175. package/package.json +13 -7
  176. package/src/app/defaultTheme.css +4 -0
  177. package/src/app/main.css +2 -0
  178. package/src/app/main.tsx +1 -1
  179. package/src/lib/components/Bootstrap.tsx +1 -4
  180. package/src/lib/components/Slot.test.tsx +1 -1
  181. package/src/lib/components/Zudoku.tsx +18 -14
  182. package/src/lib/components/context/ZudokuContext.ts +2 -6
  183. package/src/lib/components/context/ZudokuProvider.tsx +1 -1
  184. package/src/lib/components/context/ZudokuReactContext.tsx +17 -0
  185. package/src/lib/core/ZudokuContext.ts +7 -1
  186. package/src/lib/core/__internal.tsx +2 -0
  187. package/src/lib/core/plugins.ts +7 -3
  188. package/src/lib/core/transform-config.test.tsx +99 -0
  189. package/src/lib/core/transform-config.ts +57 -19
  190. package/src/lib/errors/ErrorAlert.tsx +1 -6
  191. package/src/lib/hooks/useEvent.test.tsx +1 -1
  192. package/src/lib/plugins/openapi/ParamInfos.tsx +10 -5
  193. package/src/lib/plugins/openapi/ParameterListItem.tsx +1 -0
  194. package/src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx +2 -0
  195. package/src/lib/ui/Alert.tsx +17 -5
  196. package/src/lib/ui/Secret.tsx +2 -2
  197. package/src/lib/util/flattenAllOf.test.ts +32 -0
  198. package/src/lib/util/flattenAllOf.ts +7 -0
  199. package/lib/Mermaid-JEnWyK0s.js +0 -103
  200. package/lib/Mermaid-JEnWyK0s.js.map +0 -1
  201. package/lib/OperationList-cEveQ_l5.js +0 -5822
  202. package/lib/OperationList-cEveQ_l5.js.map +0 -1
  203. package/lib/SchemaView-BR6dtnPg.js.map +0 -1
  204. package/lib/Secret-BDBqq4p3.js.map +0 -1
  205. package/lib/Zudoku-DA1yA-te.js.map +0 -1
  206. package/lib/ZudokuContext-C6wlLMUH.js +0 -389
  207. package/lib/ZudokuContext-C6wlLMUH.js.map +0 -1
  208. package/lib/index.esm-B2cLXwjS.js.map +0 -1
  209. package/lib/useSuspenseQuery-CSB_rVek.js.map +0 -1
@@ -1,12 +1,12 @@
1
1
  import { j as a } from "./jsx-runtime-BzflLqGi.js";
2
2
  import { createClient as g } from "@supabase/supabase-js";
3
- import { C as m, A as h } from "./errors-CYLN8SNc.js";
4
- import { S as f } from "./SignUp-ChqXj9vd.js";
5
- import { b as u } from "./ZudokuContext-C6wlLMUH.js";
3
+ import { C as m, A as h } from "./errors-B77S9iOc.js";
4
+ import { S as f } from "./SignUp-Dug1jAGC.js";
5
+ import { u } from "./ZudokuReactContext-DGJAP1sN.js";
6
6
  import { Auth as v } from "@supabase/auth-ui-react";
7
7
  import { ThemeSupa as S } from "@supabase/auth-ui-shared";
8
8
  import { b as T } from "./chunk-EPOLDU6W-C6C8jAwd.js";
9
- import { H as A } from "./Zudoku-DA1yA-te.js";
9
+ import { H as A } from "./Zudoku-iyiXgWFY.js";
10
10
  const c = ({
11
11
  client: i,
12
12
  config: e,
@@ -3,11 +3,11 @@ import { Button as s } from "./ui/Button.js";
3
3
  import { Callout as u } from "./ui/Callout.js";
4
4
  import { Z as m } from "./invariant-B_t_F2s_.js";
5
5
  import { C as x } from "./ClientOnly-E7hGysn1.js";
6
- import { H as C, M as d, S, a as h, T as k, Z as l } from "./Zudoku-DA1yA-te.js";
6
+ import { H as C, M as d, S, a as h, T as k, Z as l } from "./Zudoku-iyiXgWFY.js";
7
7
  import { S as Z } from "./Spinner-CI6bRyZw.js";
8
8
  import { z as y } from "./index-DAWHN3cH.js";
9
- import { u as M } from "./hook-C35h0YhF.js";
10
- import { C as c, u as g, a as A } from "./ZudokuContext-C6wlLMUH.js";
9
+ import { u as M } from "./hook-Dz_n9SoE.js";
10
+ import { C as c, u as g, a as A } from "./ZudokuContext-CYyb_PB_.js";
11
11
  import { L as w } from "./chunk-EPOLDU6W-C6C8jAwd.js";
12
12
  import { u as B } from "./useExposedProps-CzTDfXfq.js";
13
13
  export {
@@ -1,7 +1,7 @@
1
1
  import { z as C } from "./index-DAWHN3cH.js";
2
- import { u as D } from "./hook-C35h0YhF.js";
3
- import { a as n } from "./ZudokuContext-C6wlLMUH.js";
4
- import { C as z, u as A } from "./ZudokuContext-C6wlLMUH.js";
2
+ import { u as D } from "./hook-Dz_n9SoE.js";
3
+ import { a as n } from "./ZudokuContext-CYyb_PB_.js";
4
+ import { C as z, u as A } from "./ZudokuContext-CYyb_PB_.js";
5
5
  import { a as S, u as v } from "./useExposedProps-CzTDfXfq.js";
6
6
  import { useState as f, useEffect as m } from "react";
7
7
  function E(t, e) {
@@ -1,9 +1,9 @@
1
1
  import "./jsx-runtime-BzflLqGi.js";
2
- import "./useSuspenseQuery-CSB_rVek.js";
2
+ import "./useQuery-ht7aWJ3S.js";
3
3
  import "react";
4
- import { M } from "./Mermaid-JEnWyK0s.js";
4
+ import { M } from "./Mermaid-Chx5BPHn.js";
5
5
  import "./index-DAWHN3cH.js";
6
- import "./ZudokuContext-C6wlLMUH.js";
6
+ import "./ZudokuReactContext-DGJAP1sN.js";
7
7
  import "./Spinner-CI6bRyZw.js";
8
8
  export {
9
9
  M as Mermaid
@@ -1,37 +1,38 @@
1
1
  import { j as t } from "./jsx-runtime-BzflLqGi.js";
2
- import { s as f } from "./index-DrAVvbXa.js";
2
+ import { s as f } from "./index-BDp2MTiq.js";
3
3
  import { c as b, L as j, m as x } from "./chunk-EPOLDU6W-C6C8jAwd.js";
4
- import { b as v, j as p } from "./ZudokuContext-C6wlLMUH.js";
5
- import { u as y } from "./useSuspenseQuery-CSB_rVek.js";
6
- import { H as N } from "./index.esm-Ca5zvoff.js";
4
+ import { j as p } from "./ZudokuContext-CYyb_PB_.js";
5
+ import { u as v } from "./useSuspenseQuery-DQH4Bmc2.js";
6
+ import { H as y } from "./index.esm-Ca5zvoff.js";
7
7
  import "./ui/Button.js";
8
8
  import "lucide-react";
9
9
  import "react";
10
- import { H as k, M as S } from "./Zudoku-DA1yA-te.js";
10
+ import { H as N, M as k } from "./Zudoku-iyiXgWFY.js";
11
+ import { u as S } from "./ZudokuReactContext-DGJAP1sN.js";
11
12
  import "./index-DAWHN3cH.js";
12
13
  const w = ({
13
- items: n,
14
- filterCatalogItems: r = (i) => i,
14
+ items: l,
15
+ filterCatalogItems: n = (i) => i,
15
16
  label: c = "API Library",
16
17
  categoryLabel: s
17
18
  }) => {
18
- const i = v(), a = b({ path: "/catalog/:category" })?.params.category, o = y({
19
- queryFn: () => r(n, { auth: i }),
19
+ const i = S(), a = b({ path: "/catalog/:category" })?.params.category, o = v({
20
+ queryFn: () => n(l, { auth: i }),
20
21
  queryKey: ["catalogItems", i]
21
22
  }), m = a ? { "data-pagefind-ignore": "all" } : {};
22
23
  return /* @__PURE__ */ t.jsxs("section", { className: "pt-(--padding-content-top)", ...m, children: [
23
- /* @__PURE__ */ t.jsx(N, { children: /* @__PURE__ */ t.jsxs("title", { children: [
24
+ /* @__PURE__ */ t.jsx(y, { children: /* @__PURE__ */ t.jsxs("title", { children: [
24
25
  s ? `${s} - ` : "",
25
26
  c
26
27
  ] }) }),
27
28
  /* @__PURE__ */ t.jsxs("div", { className: "grid gap-4", children: [
28
- /* @__PURE__ */ t.jsxs(k, { level: 2, children: [
29
+ /* @__PURE__ */ t.jsxs(N, { level: 2, children: [
29
30
  c,
30
31
  s && ` - ${s}`
31
32
  ] }),
32
33
  /* @__PURE__ */ t.jsx("div", { className: "grid grid-cols-2 gap-4", children: o.data.filter(
33
34
  (e) => !a || e.categories.find(
34
- (l) => l.tags.find((g) => h(l.label, g) === a)
35
+ (r) => r.tags.find((g) => h(r.label, g) === a)
35
36
  )
36
37
  ).map((e) => /* @__PURE__ */ t.jsx(
37
38
  j,
@@ -41,7 +42,7 @@ const w = ({
41
42
  children: /* @__PURE__ */ t.jsxs("div", { className: "border h-full rounded-lg p-4 flex flex-col gap-2 cursor-pointer hover:bg-border/20 font-normal", children: [
42
43
  /* @__PURE__ */ t.jsx("span", { className: "font-semibold", children: e.label }),
43
44
  /* @__PURE__ */ t.jsx(
44
- S,
45
+ k,
45
46
  {
46
47
  className: "text-sm whitespace-pre-wrap mb-6 line-clamp-2",
47
48
  content: e.description,
@@ -50,7 +51,7 @@ const w = ({
50
51
  // we need to strip out other links to not get a hydration error, like:
51
52
  // > In HTML, <a> cannot be a descendant of <a>.
52
53
  // > This will cause a hydration error.
53
- a: (l) => /* @__PURE__ */ t.jsx("span", { ...l })
54
+ a: (r) => /* @__PURE__ */ t.jsx("span", { ...r })
54
55
  }
55
56
  }
56
57
  )
@@ -60,9 +61,9 @@ const w = ({
60
61
  )) })
61
62
  ] })
62
63
  ] });
63
- }, h = (n, r) => f(`${n}-${r}`), R = ({
64
- path: n,
65
- items: r,
64
+ }, h = (l, n) => f(`${l}-${n}`), F = ({
65
+ path: l,
66
+ items: n,
66
67
  label: c,
67
68
  categories: s = [],
68
69
  filterCatalogItems: i
@@ -70,7 +71,7 @@ const w = ({
70
71
  const d = Object.fromEntries(
71
72
  s.flatMap(
72
73
  (a) => [void 0, ...a.tags].map((o) => [
73
- p(n, o ? h(a.label, o) : void 0),
74
+ p(l, o ? h(a.label, o) : void 0),
74
75
  o
75
76
  ])
76
77
  )
@@ -85,14 +86,14 @@ const w = ({
85
86
  type: "category",
86
87
  label: e.label,
87
88
  collapsible: !1,
88
- items: e.tags.map((l) => ({
89
+ items: e.tags.map((r) => ({
89
90
  type: "link",
90
- to: p(n, h(e.label, l)),
91
- label: l,
91
+ to: p(l, h(e.label, r)),
92
+ label: r,
92
93
  badge: {
93
94
  label: String(
94
- r.filter(
95
- (g) => g.categories.find((u) => u.tags.includes(l))
95
+ n.filter(
96
+ (g) => g.categories.find((u) => u.tags.includes(r))
96
97
  ).length
97
98
  ),
98
99
  color: "outline"
@@ -101,9 +102,9 @@ const w = ({
101
102
  }));
102
103
  return m.unshift({
103
104
  type: "link",
104
- to: p(n),
105
+ to: p(l),
105
106
  label: "Overview",
106
- badge: { label: String(r.length), color: "outline" }
107
+ badge: { label: String(n.length), color: "outline" }
107
108
  }), m;
108
109
  },
109
110
  getRoutes: () => Object.entries(d).map(([a, o]) => ({
@@ -113,7 +114,7 @@ const w = ({
113
114
  {
114
115
  label: c,
115
116
  categoryLabel: o,
116
- items: r,
117
+ items: n,
117
118
  filterCatalogItems: i,
118
119
  categories: s
119
120
  }
@@ -122,7 +123,7 @@ const w = ({
122
123
  };
123
124
  };
124
125
  export {
125
- R as apiCatalogPlugin,
126
+ F as apiCatalogPlugin,
126
127
  h as getKey
127
128
  };
128
129
  //# sourceMappingURL=zudoku.plugin-api-catalog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zudoku.plugin-api-catalog.js","sources":["../src/lib/plugins/api-catalog/Catalog.tsx","../src/lib/plugins/api-catalog/index.tsx"],"sourcesContent":["import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { useMatch } from \"react-router\";\nimport { Link } from \"zudoku/components\";\nimport { useAuthState } from \"../../authentication/state.js\";\nimport { Heading } from \"../../components/Heading.js\";\nimport { Markdown } from \"../../components/Markdown.js\";\nimport { joinUrl } from \"../../util/joinUrl.js\";\nimport { type ApiCatalogPluginOptions, getKey } from \"./index.js\";\n\nexport const Catalog = ({\n items,\n filterCatalogItems = (items) => items,\n label = \"API Library\",\n categoryLabel,\n}: Omit<ApiCatalogPluginOptions, \"path\"> & {\n categoryLabel?: string;\n}) => {\n const auth = useAuthState();\n const match = useMatch({ path: \"/catalog/:category\" });\n const activeCategory = match?.params.category;\n\n const catalogItems = useSuspenseQuery({\n queryFn: () => filterCatalogItems(items, { auth }),\n queryKey: [\"catalogItems\", auth],\n });\n\n // Only index the overview page, ignore the rest\n const dataSet = activeCategory ? { \"data-pagefind-ignore\": \"all\" } : {};\n\n return (\n <section className=\"pt-(--padding-content-top)\" {...dataSet}>\n <Helmet>\n <title>\n {categoryLabel ? `${categoryLabel} - ` : \"\"}\n {label}\n </title>\n </Helmet>\n <div className=\"grid gap-4\">\n <Heading level={2}>\n {label}\n {categoryLabel && ` - ${categoryLabel}`}\n </Heading>\n\n <div className=\"grid grid-cols-2 gap-4\">\n {catalogItems.data\n .filter(\n (api) =>\n !activeCategory ||\n api.categories.find((c) =>\n c.tags.find((t) => getKey(c.label, t) === activeCategory),\n ),\n )\n .map((api) => (\n <Link\n to={joinUrl(api.path)}\n className=\"no-underline hover:!text-foreground\"\n key={api.path}\n >\n <div className=\"border h-full rounded-lg p-4 flex flex-col gap-2 cursor-pointer hover:bg-border/20 font-normal\">\n <span className=\"font-semibold\">{api.label}</span>\n <Markdown\n className=\"text-sm whitespace-pre-wrap mb-6 line-clamp-2\"\n content={api.description}\n components={{\n // Because we're wrapping the description in a Link already,\n // we need to strip out other links to not get a hydration error, like:\n // > In HTML, <a> cannot be a descendant of <a>.\n // > This will cause a hydration error.\n a: (props) => <span {...props} />,\n }}\n />\n </div>\n </Link>\n ))}\n </div>\n </div>\n </section>\n );\n};\n","import slugify from \"@sindresorhus/slugify\";\nimport { matchPath } from \"react-router\";\nimport type { NavigationItem } from \"../../../config/validators/NavigationSchema.js\";\nimport type { AuthState } from \"../../authentication/state.js\";\nimport type { ZudokuPlugin } from \"../../core/plugins.js\";\nimport { joinUrl } from \"../../util/joinUrl.js\";\nimport { Catalog } from \"./Catalog.js\";\n\nexport const getKey = (category: string, tag: string) =>\n slugify(`${category}-${tag}`);\n\nexport type ApiCatalogItem = {\n path: string;\n label: string;\n description: string;\n categories: CatalogCategory[];\n};\n\nexport type CatalogCategory = {\n label: string;\n tags: string[];\n};\n\nexport type ApiCatalogPluginOptions = {\n path: string;\n label: string;\n categories?: CatalogCategory[];\n items: ApiCatalogItem[];\n filterCatalogItems?: FilterCatalogItemsFn;\n};\n\nexport type CatalogContext<ProviderData = unknown> = {\n auth: AuthState<ProviderData>;\n};\n\nexport type FilterCatalogItemsFn<ProviderData = unknown> = (\n items: ApiCatalogItem[],\n { auth }: CatalogContext<ProviderData>,\n) => ApiCatalogItem[];\n\nexport const apiCatalogPlugin = ({\n path,\n items,\n label,\n categories = [],\n filterCatalogItems,\n}: {\n path: string;\n label: string;\n categories?: CatalogCategory[];\n items: ApiCatalogItem[];\n filterCatalogItems?: FilterCatalogItemsFn;\n}): ZudokuPlugin => {\n const paths = Object.fromEntries(\n categories.flatMap((category) =>\n [undefined, ...category.tags].map((tag) => [\n joinUrl(path, tag ? getKey(category.label, tag) : undefined),\n tag,\n ]),\n ),\n );\n\n return {\n getNavigation: async (currentPath) => {\n const matches = Object.keys(paths).some((path) =>\n matchPath(path, currentPath),\n );\n\n if (!matches) {\n return [];\n }\n\n const navigation: NavigationItem[] = categories.map((category) => ({\n type: \"category\",\n label: category.label,\n collapsible: false,\n items: category.tags.map((tag) => ({\n type: \"link\",\n to: joinUrl(path, getKey(category.label, tag)),\n label: tag,\n badge: {\n label: String(\n items.filter((api) =>\n api.categories.find((c) => c.tags.includes(tag)),\n ).length,\n ),\n color: \"outline\",\n },\n })),\n }));\n\n navigation.unshift({\n type: \"link\",\n to: joinUrl(path),\n label: \"Overview\",\n badge: { label: String(items.length), color: \"outline\" },\n });\n\n return navigation;\n },\n getRoutes: () =>\n Object.entries(paths).map(([path, tag]) => ({\n path,\n element: (\n <Catalog\n label={label}\n categoryLabel={tag}\n items={items}\n filterCatalogItems={filterCatalogItems}\n categories={categories}\n />\n ),\n })),\n };\n};\n"],"names":["Catalog","items","filterCatalogItems","label","categoryLabel","auth","useAuthState","activeCategory","useMatch","catalogItems","useSuspenseQuery","dataSet","jsxs","jsx","Helmet","Heading","api","c","t","getKey","Link","joinUrl","Markdown","props","category","tag","slugify","apiCatalogPlugin","path","categories","paths","currentPath","matchPath","navigation"],"mappings":"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"}
1
+ {"version":3,"file":"zudoku.plugin-api-catalog.js","sources":["../src/lib/plugins/api-catalog/Catalog.tsx","../src/lib/plugins/api-catalog/index.tsx"],"sourcesContent":["import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { useMatch } from \"react-router\";\nimport { Link } from \"zudoku/components\";\nimport { useAuthState } from \"../../authentication/state.js\";\nimport { Heading } from \"../../components/Heading.js\";\nimport { Markdown } from \"../../components/Markdown.js\";\nimport { joinUrl } from \"../../util/joinUrl.js\";\nimport { type ApiCatalogPluginOptions, getKey } from \"./index.js\";\n\nexport const Catalog = ({\n items,\n filterCatalogItems = (items) => items,\n label = \"API Library\",\n categoryLabel,\n}: Omit<ApiCatalogPluginOptions, \"path\"> & {\n categoryLabel?: string;\n}) => {\n const auth = useAuthState();\n const match = useMatch({ path: \"/catalog/:category\" });\n const activeCategory = match?.params.category;\n\n const catalogItems = useSuspenseQuery({\n queryFn: () => filterCatalogItems(items, { auth }),\n queryKey: [\"catalogItems\", auth],\n });\n\n // Only index the overview page, ignore the rest\n const dataSet = activeCategory ? { \"data-pagefind-ignore\": \"all\" } : {};\n\n return (\n <section className=\"pt-(--padding-content-top)\" {...dataSet}>\n <Helmet>\n <title>\n {categoryLabel ? `${categoryLabel} - ` : \"\"}\n {label}\n </title>\n </Helmet>\n <div className=\"grid gap-4\">\n <Heading level={2}>\n {label}\n {categoryLabel && ` - ${categoryLabel}`}\n </Heading>\n\n <div className=\"grid grid-cols-2 gap-4\">\n {catalogItems.data\n .filter(\n (api) =>\n !activeCategory ||\n api.categories.find((c) =>\n c.tags.find((t) => getKey(c.label, t) === activeCategory),\n ),\n )\n .map((api) => (\n <Link\n to={joinUrl(api.path)}\n className=\"no-underline hover:!text-foreground\"\n key={api.path}\n >\n <div className=\"border h-full rounded-lg p-4 flex flex-col gap-2 cursor-pointer hover:bg-border/20 font-normal\">\n <span className=\"font-semibold\">{api.label}</span>\n <Markdown\n className=\"text-sm whitespace-pre-wrap mb-6 line-clamp-2\"\n content={api.description}\n components={{\n // Because we're wrapping the description in a Link already,\n // we need to strip out other links to not get a hydration error, like:\n // > In HTML, <a> cannot be a descendant of <a>.\n // > This will cause a hydration error.\n a: (props) => <span {...props} />,\n }}\n />\n </div>\n </Link>\n ))}\n </div>\n </div>\n </section>\n );\n};\n","import slugify from \"@sindresorhus/slugify\";\nimport { matchPath } from \"react-router\";\nimport type { NavigationItem } from \"../../../config/validators/NavigationSchema.js\";\nimport type { AuthState } from \"../../authentication/state.js\";\nimport type { ZudokuPlugin } from \"../../core/plugins.js\";\nimport { joinUrl } from \"../../util/joinUrl.js\";\nimport { Catalog } from \"./Catalog.js\";\n\nexport const getKey = (category: string, tag: string) =>\n slugify(`${category}-${tag}`);\n\nexport type ApiCatalogItem = {\n path: string;\n label: string;\n description: string;\n categories: CatalogCategory[];\n};\n\nexport type CatalogCategory = {\n label: string;\n tags: string[];\n};\n\nexport type ApiCatalogPluginOptions = {\n path: string;\n label: string;\n categories?: CatalogCategory[];\n items: ApiCatalogItem[];\n filterCatalogItems?: FilterCatalogItemsFn;\n};\n\nexport type CatalogContext<ProviderData = unknown> = {\n auth: AuthState<ProviderData>;\n};\n\nexport type FilterCatalogItemsFn<ProviderData = unknown> = (\n items: ApiCatalogItem[],\n { auth }: CatalogContext<ProviderData>,\n) => ApiCatalogItem[];\n\nexport const apiCatalogPlugin = ({\n path,\n items,\n label,\n categories = [],\n filterCatalogItems,\n}: {\n path: string;\n label: string;\n categories?: CatalogCategory[];\n items: ApiCatalogItem[];\n filterCatalogItems?: FilterCatalogItemsFn;\n}): ZudokuPlugin => {\n const paths = Object.fromEntries(\n categories.flatMap((category) =>\n [undefined, ...category.tags].map((tag) => [\n joinUrl(path, tag ? getKey(category.label, tag) : undefined),\n tag,\n ]),\n ),\n );\n\n return {\n getNavigation: async (currentPath) => {\n const matches = Object.keys(paths).some((path) =>\n matchPath(path, currentPath),\n );\n\n if (!matches) {\n return [];\n }\n\n const navigation: NavigationItem[] = categories.map((category) => ({\n type: \"category\",\n label: category.label,\n collapsible: false,\n items: category.tags.map((tag) => ({\n type: \"link\",\n to: joinUrl(path, getKey(category.label, tag)),\n label: tag,\n badge: {\n label: String(\n items.filter((api) =>\n api.categories.find((c) => c.tags.includes(tag)),\n ).length,\n ),\n color: \"outline\",\n },\n })),\n }));\n\n navigation.unshift({\n type: \"link\",\n to: joinUrl(path),\n label: \"Overview\",\n badge: { label: String(items.length), color: \"outline\" },\n });\n\n return navigation;\n },\n getRoutes: () =>\n Object.entries(paths).map(([path, tag]) => ({\n path,\n element: (\n <Catalog\n label={label}\n categoryLabel={tag}\n items={items}\n filterCatalogItems={filterCatalogItems}\n categories={categories}\n />\n ),\n })),\n };\n};\n"],"names":["Catalog","items","filterCatalogItems","label","categoryLabel","auth","useAuthState","activeCategory","useMatch","catalogItems","useSuspenseQuery","dataSet","jsxs","jsx","Helmet","Heading","api","c","t","getKey","Link","joinUrl","Markdown","props","category","tag","slugify","apiCatalogPlugin","path","categories","paths","currentPath","matchPath","navigation"],"mappings":"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"}