zudoku 0.42.0 → 0.42.1

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 (525) hide show
  1. package/dist/app/main.js +0 -6
  2. package/dist/app/main.js.map +1 -1
  3. package/dist/config/validators/common.d.ts +288 -420
  4. package/dist/config/validators/common.js +0 -10
  5. package/dist/config/validators/common.js.map +1 -1
  6. package/dist/config/validators/validate.d.ts +108 -161
  7. package/dist/index.d.ts +0 -1
  8. package/dist/index.js +0 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/lib/components/Markdown.d.ts +1 -3
  11. package/dist/lib/components/Markdown.js +14 -8
  12. package/dist/lib/components/Markdown.js.map +1 -1
  13. package/dist/lib/components/context/ZudokuContext.d.ts +1 -1
  14. package/dist/lib/components/index.d.ts +1 -2
  15. package/dist/lib/core/ZudokuContext.d.ts +0 -7
  16. package/dist/lib/core/ZudokuContext.js.map +1 -1
  17. package/dist/lib/errors/ErrorAlert.js +1 -1
  18. package/dist/lib/errors/ErrorAlert.js.map +1 -1
  19. package/dist/lib/plugins/openapi/CollapsibleCode.js +1 -1
  20. package/dist/lib/plugins/openapi/CollapsibleCode.js.map +1 -1
  21. package/dist/lib/plugins/openapi/Sidecar.js +1 -1
  22. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  23. package/dist/lib/plugins/openapi/SidecarExamples.js +1 -1
  24. package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -1
  25. package/dist/lib/ui/Callout.js +1 -1
  26. package/dist/lib/ui/Callout.js.map +1 -1
  27. package/dist/lib/ui/SyntaxHighlight.d.ts +15 -10
  28. package/dist/lib/ui/SyntaxHighlight.js +60 -10
  29. package/dist/lib/ui/SyntaxHighlight.js.map +1 -1
  30. package/dist/lib/util/MdxComponents.d.ts +3 -9
  31. package/dist/lib/util/MdxComponents.js +10 -9
  32. package/dist/lib/util/MdxComponents.js.map +1 -1
  33. package/dist/vite/config.js +0 -34
  34. package/dist/vite/config.js.map +1 -1
  35. package/dist/vite/plugin-mdx.js +11 -4
  36. package/dist/vite/plugin-mdx.js.map +1 -1
  37. package/dist/vite/plugin.js +0 -2
  38. package/dist/vite/plugin.js.map +1 -1
  39. package/lib/AuthenticationPlugin-DPCuR3xm.js +58 -0
  40. package/lib/{AuthenticationPlugin-EeQpQI3D.js.map → AuthenticationPlugin-DPCuR3xm.js.map} +1 -1
  41. package/lib/{Button-Bdk_Ij3U.js → Button-BBNrKpQd.js} +3 -3
  42. package/lib/{Button-Bdk_Ij3U.js.map → Button-BBNrKpQd.js.map} +1 -1
  43. package/lib/{Callout-XadUe37J.js → Callout-D3Ja4OPX.js} +12 -12
  44. package/lib/{Callout-XadUe37J.js.map → Callout-D3Ja4OPX.js.map} +1 -1
  45. package/lib/{CategoryHeading-DZi-Szor.js → CategoryHeading-D06WK_Wo.js} +2 -2
  46. package/lib/{CategoryHeading-DZi-Szor.js.map → CategoryHeading-D06WK_Wo.js.map} +1 -1
  47. package/lib/{Dialog-CNf2oWXG.js → Dialog-ByYz4ABw.js} +2 -2
  48. package/lib/{Dialog-CNf2oWXG.js.map → Dialog-ByYz4ABw.js.map} +1 -1
  49. package/lib/{Drawer-BPBxzel2.js → Drawer-CEwbkLDb.js} +25 -25
  50. package/lib/{Drawer-BPBxzel2.js.map → Drawer-CEwbkLDb.js.map} +1 -1
  51. package/lib/Markdown-mFpg_n9p.js +17125 -0
  52. package/lib/Markdown-mFpg_n9p.js.map +1 -0
  53. package/lib/MdxPage-Cm7atiW3.js +85 -0
  54. package/lib/{MdxPage-Dxbq6lFr.js.map → MdxPage-Cm7atiW3.js.map} +1 -1
  55. package/lib/{OasProvider-DKpTJMH2.js → OasProvider-CZiF_RMW.js} +4 -4
  56. package/lib/{OasProvider-DKpTJMH2.js.map → OasProvider-CZiF_RMW.js.map} +1 -1
  57. package/lib/{OperationList-DVOyNeno.js → OperationList-CMMzLfIZ.js} +1417 -1385
  58. package/lib/{OperationList-DVOyNeno.js.map → OperationList-CMMzLfIZ.js.map} +1 -1
  59. package/lib/{Pagination-COMmV-g9.js → Pagination-DLPL5z77.js} +4 -4
  60. package/lib/{Pagination-COMmV-g9.js.map → Pagination-DLPL5z77.js.map} +1 -1
  61. package/lib/RouteGuard-DRtEu9nh.js +744 -0
  62. package/lib/{RouteGuard-CGqivwrh.js.map → RouteGuard-DRtEu9nh.js.map} +1 -1
  63. package/lib/{SchemaList-BTWzXyYQ.js → SchemaList-_d3Mf4IX.js} +44 -43
  64. package/lib/{SchemaList-BTWzXyYQ.js.map → SchemaList-_d3Mf4IX.js.map} +1 -1
  65. package/lib/{SchemaView-DNKKW3nB.js → SchemaView-J7Srn-Iy.js} +11 -7
  66. package/lib/{SchemaView-DNKKW3nB.js.map → SchemaView-J7Srn-Iy.js.map} +1 -1
  67. package/lib/Select-CT64Ou40.js +223 -0
  68. package/lib/{Select-m-ITdvFa.js.map → Select-CT64Ou40.js.map} +1 -1
  69. package/lib/SlotletProvider-CS_nO-XT.js +340 -0
  70. package/lib/SlotletProvider-CS_nO-XT.js.map +1 -0
  71. package/lib/SyntaxHighlight-CxhyyMkF.js +2890 -0
  72. package/lib/SyntaxHighlight-CxhyyMkF.js.map +1 -0
  73. package/lib/{Toc-CzMOgcPS.js → Toc-D_tV8_Ri.js} +3 -3
  74. package/lib/{Toc-CzMOgcPS.js.map → Toc-D_tV8_Ri.js.map} +1 -1
  75. package/lib/{chunk-BAXFHI7N-CFrZQ7Oh.js → chunk-BAXFHI7N-BVBOl9s0.js} +264 -257
  76. package/lib/{chunk-BAXFHI7N-CFrZQ7Oh.js.map → chunk-BAXFHI7N-BVBOl9s0.js.map} +1 -1
  77. package/lib/{circular-D__GEK2G.js → circular-ByJI6Mci.js} +47 -47
  78. package/lib/{circular-D__GEK2G.js.map → circular-ByJI6Mci.js.map} +1 -1
  79. package/lib/{cn-CwJPJKOE.js → cn-qaFjX9_3.js} +29 -28
  80. package/lib/{cn-CwJPJKOE.js.map → cn-qaFjX9_3.js.map} +1 -1
  81. package/lib/{createServer-B4l2NSkt.js → createServer-IW7v5hWm.js} +3868 -3724
  82. package/lib/{createServer-B4l2NSkt.js.map → createServer-IW7v5hWm.js.map} +1 -1
  83. package/lib/hook-CldJlP5c.js +1478 -0
  84. package/lib/{hook-CyNmcNr8.js.map → hook-CldJlP5c.js.map} +1 -1
  85. package/lib/{index-CCS3ifKs.js → index-BPqJMdth.js} +733 -690
  86. package/lib/{index-CCS3ifKs.js.map → index-BPqJMdth.js.map} +1 -1
  87. package/lib/{index-Z13x6tPX.js → index-CPNSgwSb.js} +5 -5
  88. package/lib/{index-Z13x6tPX.js.map → index-CPNSgwSb.js.map} +1 -1
  89. package/lib/{index-CrcNWbel.js → index-CuBIgTKC.js} +9 -9
  90. package/lib/{index-CrcNWbel.js.map → index-CuBIgTKC.js.map} +1 -1
  91. package/lib/{index-zddirpDj.js → index-DcHeSvkE.js} +609 -581
  92. package/lib/{index-zddirpDj.js.map → index-DcHeSvkE.js.map} +1 -1
  93. package/lib/index-DnQftvP4.js +5031 -0
  94. package/lib/{index-BcMPFdRU.js.map → index-DnQftvP4.js.map} +1 -1
  95. package/lib/{index--oeBayMa.js → index-DwT-v3zK.js} +2 -2
  96. package/lib/{index--oeBayMa.js.map → index-DwT-v3zK.js.map} +1 -1
  97. package/lib/{index-BvvmIczU.js → index-LNp6rxyU.js} +2 -2
  98. package/lib/{index-BvvmIczU.js.map → index-LNp6rxyU.js.map} +1 -1
  99. package/lib/invariant-Caa8-XvF.js +26 -0
  100. package/lib/{invariant-D3QcI9fa.js.map → invariant-Caa8-XvF.js.map} +1 -1
  101. package/lib/mutation-DBQh7AOZ.js +211 -0
  102. package/lib/{mutation-narTVsCe.js.map → mutation-DBQh7AOZ.js.map} +1 -1
  103. package/lib/prism-bash.min-HHIMdNJ_.js +7 -0
  104. package/lib/prism-bash.min-HHIMdNJ_.js.map +1 -0
  105. package/lib/prism-csharp.min-C43x1RY2.js +63 -0
  106. package/lib/prism-csharp.min-C43x1RY2.js.map +1 -0
  107. package/lib/prism-java.min-CQzr40NQ.js +35 -0
  108. package/lib/prism-java.min-CQzr40NQ.js.map +1 -0
  109. package/lib/prism-javascript.min-CEqHqgbm.js +9 -0
  110. package/lib/prism-javascript.min-CEqHqgbm.js.map +1 -0
  111. package/lib/prism-json.min-B1GJqK1k.js +2 -0
  112. package/lib/prism-json.min-B1GJqK1k.js.map +1 -0
  113. package/lib/prism-jsstacktrace.min-BfobCF2F.js +2 -0
  114. package/lib/prism-jsstacktrace.min-BfobCF2F.js.map +1 -0
  115. package/lib/prism-markdown.min-C0Qn0m-5.js +61 -0
  116. package/lib/prism-markdown.min-C0Qn0m-5.js.map +1 -0
  117. package/lib/prism-markup-BNGj0Tvm.js +174 -0
  118. package/lib/prism-markup-BNGj0Tvm.js.map +1 -0
  119. package/lib/prism-objectivec.min-BXSWqpJJ.js +2 -0
  120. package/lib/prism-objectivec.min-BXSWqpJJ.js.map +1 -0
  121. package/lib/prism-ruby.min-L9OdQ6tU.js +38 -0
  122. package/lib/prism-ruby.min-L9OdQ6tU.js.map +1 -0
  123. package/lib/prism-typescript.min-qTySPvCh.js +34 -0
  124. package/lib/prism-typescript.min-qTySPvCh.js.map +1 -0
  125. package/lib/processors/removeParameters.js +28 -27
  126. package/lib/processors/removeParameters.js.map +1 -1
  127. package/lib/processors/removePaths.js +17 -17
  128. package/lib/processors/removePaths.js.map +1 -1
  129. package/lib/ui/Accordion.js +1 -1
  130. package/lib/ui/ActionButton.js +2 -2
  131. package/lib/ui/Alert.js +2 -2
  132. package/lib/ui/AlertDialog.js +1 -1
  133. package/lib/ui/Badge.js +2 -2
  134. package/lib/ui/Breadcrumb.js +1 -1
  135. package/lib/ui/Button.js +2 -2
  136. package/lib/ui/Callout.js +7 -7
  137. package/lib/ui/Callout.js.map +1 -1
  138. package/lib/ui/Card.js +1 -1
  139. package/lib/ui/Carousel.js +175 -175
  140. package/lib/ui/Carousel.js.map +1 -1
  141. package/lib/ui/Checkbox.js +1 -1
  142. package/lib/ui/Command.js +58 -58
  143. package/lib/ui/Command.js.map +1 -1
  144. package/lib/ui/Dialog.js +1 -1
  145. package/lib/ui/Drawer.js +2 -2
  146. package/lib/ui/DropdownMenu.js +1 -1
  147. package/lib/ui/Form.js +1 -1
  148. package/lib/ui/HoverCard.js +1 -1
  149. package/lib/ui/Input.js +1 -1
  150. package/lib/ui/Label.js +2 -2
  151. package/lib/ui/Pagination.js +1 -1
  152. package/lib/ui/Popover.js +1 -1
  153. package/lib/ui/Progress.js +1 -1
  154. package/lib/ui/RadioGroup.js +1 -1
  155. package/lib/ui/ScrollArea.js +1 -1
  156. package/lib/ui/Select.js +1 -1
  157. package/lib/ui/Skeleton.js +1 -1
  158. package/lib/ui/Slider.js +1 -1
  159. package/lib/ui/Switch.js +1 -1
  160. package/lib/ui/SyntaxHighlight.js +6 -4
  161. package/lib/ui/SyntaxHighlight.js.map +1 -1
  162. package/lib/ui/Tabs.js +1 -1
  163. package/lib/ui/Textarea.js +1 -1
  164. package/lib/ui/Toggle.js +2 -2
  165. package/lib/ui/ToggleGroup.js +1 -1
  166. package/lib/ui/Tooltip.js +1 -1
  167. package/lib/ui/util.js +1 -1
  168. package/lib/{useExposedProps-n1u49409.js → useExposedProps-DbIZXspi.js} +2 -2
  169. package/lib/{useExposedProps-n1u49409.js.map → useExposedProps-DbIZXspi.js.map} +1 -1
  170. package/lib/zudoku.auth-auth0.js +31 -28
  171. package/lib/zudoku.auth-auth0.js.map +1 -1
  172. package/lib/zudoku.auth-clerk.js +68 -62
  173. package/lib/zudoku.auth-clerk.js.map +1 -1
  174. package/lib/zudoku.auth-openid.js +483 -475
  175. package/lib/zudoku.auth-openid.js.map +1 -1
  176. package/lib/zudoku.components.js +7 -7
  177. package/lib/zudoku.hooks.js +2 -2
  178. package/lib/zudoku.plugin-api-catalog.js +45 -45
  179. package/lib/zudoku.plugin-api-catalog.js.map +1 -1
  180. package/lib/zudoku.plugin-api-keys.js +6 -6
  181. package/lib/zudoku.plugin-custom-pages.js +3 -3
  182. package/lib/zudoku.plugin-markdown.js +28 -25
  183. package/lib/zudoku.plugin-markdown.js.map +1 -1
  184. package/lib/zudoku.plugin-openapi.js +3 -3
  185. package/lib/zudoku.plugin-redirect.js +1 -1
  186. package/lib/zudoku.plugin-search-inkeep.js +27 -26
  187. package/lib/zudoku.plugin-search-inkeep.js.map +1 -1
  188. package/lib/zudoku.plugin-search-pagefind.js +110 -107
  189. package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
  190. package/package.json +6 -16
  191. package/src/app/main.css +3 -53
  192. package/src/app/main.tsx +0 -7
  193. package/src/lib/components/Markdown.tsx +24 -29
  194. package/src/lib/core/ZudokuContext.ts +0 -4
  195. package/src/lib/errors/ErrorAlert.tsx +1 -1
  196. package/src/lib/plugins/openapi/CollapsibleCode.tsx +2 -5
  197. package/src/lib/plugins/openapi/Sidecar.tsx +1 -1
  198. package/src/lib/plugins/openapi/SidecarExamples.tsx +2 -2
  199. package/src/lib/ui/Callout.tsx +1 -1
  200. package/src/lib/ui/SyntaxHighlight.tsx +182 -18
  201. package/src/lib/util/MdxComponents.tsx +14 -27
  202. package/dist/lib/shiki.d.ts +0 -35
  203. package/dist/lib/shiki.js +0 -103
  204. package/dist/lib/shiki.js.map +0 -1
  205. package/dist/lib/ui/CodeBlock.d.ts +0 -16
  206. package/dist/lib/ui/CodeBlock.js +0 -18
  207. package/dist/lib/ui/CodeBlock.js.map +0 -1
  208. package/dist/vite/plugin-shiki-register.d.ts +0 -3
  209. package/dist/vite/plugin-shiki-register.js +0 -38
  210. package/dist/vite/plugin-shiki-register.js.map +0 -1
  211. package/lib/AuthenticationPlugin-EeQpQI3D.js +0 -55
  212. package/lib/Markdown-1l-DtDbF.js +0 -7688
  213. package/lib/Markdown-1l-DtDbF.js.map +0 -1
  214. package/lib/MdxPage-Dxbq6lFr.js +0 -84
  215. package/lib/RouteGuard-CGqivwrh.js +0 -733
  216. package/lib/Select-m-ITdvFa.js +0 -211
  217. package/lib/SlotletProvider-DhK1Fmm9.js +0 -254
  218. package/lib/SlotletProvider-DhK1Fmm9.js.map +0 -1
  219. package/lib/SyntaxHighlight-CJ6FoYvt.js +0 -9104
  220. package/lib/SyntaxHighlight-CJ6FoYvt.js.map +0 -1
  221. package/lib/hook-CyNmcNr8.js +0 -1443
  222. package/lib/index-BcMPFdRU.js +0 -4975
  223. package/lib/invariant-D3QcI9fa.js +0 -22
  224. package/lib/mutation-narTVsCe.js +0 -196
  225. package/lib/ui/CodeBlock.js +0 -83
  226. package/lib/ui/CodeBlock.js.map +0 -1
  227. package/src/lib/shiki.ts +0 -129
  228. package/src/lib/ui/CodeBlock.tsx +0 -102
  229. package/src/shiki/langs/abap.js +0 -1
  230. package/src/shiki/langs/actionscript-3.js +0 -1
  231. package/src/shiki/langs/ada.js +0 -1
  232. package/src/shiki/langs/angular-expression.js +0 -1
  233. package/src/shiki/langs/angular-html.js +0 -1
  234. package/src/shiki/langs/angular-inline-style.js +0 -1
  235. package/src/shiki/langs/angular-inline-template.js +0 -1
  236. package/src/shiki/langs/angular-let-declaration.js +0 -1
  237. package/src/shiki/langs/angular-template-blocks.js +0 -1
  238. package/src/shiki/langs/angular-template.js +0 -1
  239. package/src/shiki/langs/angular-ts.js +0 -1
  240. package/src/shiki/langs/apache.js +0 -1
  241. package/src/shiki/langs/apex.js +0 -1
  242. package/src/shiki/langs/apl.js +0 -1
  243. package/src/shiki/langs/applescript.js +0 -1
  244. package/src/shiki/langs/ara.js +0 -1
  245. package/src/shiki/langs/asciidoc.js +0 -1
  246. package/src/shiki/langs/asm.js +0 -1
  247. package/src/shiki/langs/astro.js +0 -1
  248. package/src/shiki/langs/awk.js +0 -1
  249. package/src/shiki/langs/ballerina.js +0 -1
  250. package/src/shiki/langs/bat.js +0 -1
  251. package/src/shiki/langs/beancount.js +0 -1
  252. package/src/shiki/langs/berry.js +0 -1
  253. package/src/shiki/langs/bibtex.js +0 -1
  254. package/src/shiki/langs/bicep.js +0 -1
  255. package/src/shiki/langs/blade.js +0 -1
  256. package/src/shiki/langs/bsl.js +0 -1
  257. package/src/shiki/langs/c.js +0 -1
  258. package/src/shiki/langs/cadence.js +0 -1
  259. package/src/shiki/langs/cairo.js +0 -1
  260. package/src/shiki/langs/clarity.js +0 -1
  261. package/src/shiki/langs/clojure.js +0 -1
  262. package/src/shiki/langs/cmake.js +0 -1
  263. package/src/shiki/langs/cobol.js +0 -1
  264. package/src/shiki/langs/codeowners.js +0 -1
  265. package/src/shiki/langs/codeql.js +0 -1
  266. package/src/shiki/langs/coffee.js +0 -1
  267. package/src/shiki/langs/common-lisp.js +0 -1
  268. package/src/shiki/langs/coq.js +0 -1
  269. package/src/shiki/langs/cpp-macro.js +0 -1
  270. package/src/shiki/langs/cpp.js +0 -1
  271. package/src/shiki/langs/crystal.js +0 -1
  272. package/src/shiki/langs/csharp.js +0 -1
  273. package/src/shiki/langs/css.js +0 -1
  274. package/src/shiki/langs/csv.js +0 -1
  275. package/src/shiki/langs/cue.js +0 -1
  276. package/src/shiki/langs/cypher.js +0 -1
  277. package/src/shiki/langs/d.js +0 -1
  278. package/src/shiki/langs/dart.js +0 -1
  279. package/src/shiki/langs/dax.js +0 -1
  280. package/src/shiki/langs/desktop.js +0 -1
  281. package/src/shiki/langs/diff.js +0 -1
  282. package/src/shiki/langs/docker.js +0 -1
  283. package/src/shiki/langs/dotenv.js +0 -1
  284. package/src/shiki/langs/dream-maker.js +0 -1
  285. package/src/shiki/langs/edge.js +0 -1
  286. package/src/shiki/langs/elixir.js +0 -1
  287. package/src/shiki/langs/elm.js +0 -1
  288. package/src/shiki/langs/emacs-lisp.js +0 -1
  289. package/src/shiki/langs/erb.js +0 -1
  290. package/src/shiki/langs/erlang.js +0 -1
  291. package/src/shiki/langs/es-tag-css.js +0 -1
  292. package/src/shiki/langs/es-tag-glsl.js +0 -1
  293. package/src/shiki/langs/es-tag-html.js +0 -1
  294. package/src/shiki/langs/es-tag-sql.js +0 -1
  295. package/src/shiki/langs/es-tag-xml.js +0 -1
  296. package/src/shiki/langs/fennel.js +0 -1
  297. package/src/shiki/langs/fish.js +0 -1
  298. package/src/shiki/langs/fluent.js +0 -1
  299. package/src/shiki/langs/fortran-fixed-form.js +0 -1
  300. package/src/shiki/langs/fortran-free-form.js +0 -1
  301. package/src/shiki/langs/fsharp.js +0 -1
  302. package/src/shiki/langs/gdresource.js +0 -1
  303. package/src/shiki/langs/gdscript.js +0 -1
  304. package/src/shiki/langs/gdshader.js +0 -1
  305. package/src/shiki/langs/genie.js +0 -1
  306. package/src/shiki/langs/gherkin.js +0 -1
  307. package/src/shiki/langs/git-commit.js +0 -1
  308. package/src/shiki/langs/git-rebase.js +0 -1
  309. package/src/shiki/langs/gleam.js +0 -1
  310. package/src/shiki/langs/glimmer-js.js +0 -1
  311. package/src/shiki/langs/glimmer-ts.js +0 -1
  312. package/src/shiki/langs/glsl.js +0 -1
  313. package/src/shiki/langs/gnuplot.js +0 -1
  314. package/src/shiki/langs/go.js +0 -1
  315. package/src/shiki/langs/graphql.js +0 -1
  316. package/src/shiki/langs/groovy.js +0 -1
  317. package/src/shiki/langs/hack.js +0 -1
  318. package/src/shiki/langs/haml.js +0 -1
  319. package/src/shiki/langs/handlebars.js +0 -1
  320. package/src/shiki/langs/haskell.js +0 -1
  321. package/src/shiki/langs/haxe.js +0 -1
  322. package/src/shiki/langs/hcl.js +0 -1
  323. package/src/shiki/langs/hjson.js +0 -1
  324. package/src/shiki/langs/hlsl.js +0 -1
  325. package/src/shiki/langs/html-derivative.js +0 -1
  326. package/src/shiki/langs/html.js +0 -1
  327. package/src/shiki/langs/http.js +0 -1
  328. package/src/shiki/langs/hxml.js +0 -1
  329. package/src/shiki/langs/hy.js +0 -1
  330. package/src/shiki/langs/imba.js +0 -1
  331. package/src/shiki/langs/ini.js +0 -1
  332. package/src/shiki/langs/java.js +0 -1
  333. package/src/shiki/langs/javascript.js +0 -1
  334. package/src/shiki/langs/jinja-html.js +0 -1
  335. package/src/shiki/langs/jinja.js +0 -1
  336. package/src/shiki/langs/jison.js +0 -1
  337. package/src/shiki/langs/json.js +0 -1
  338. package/src/shiki/langs/json5.js +0 -1
  339. package/src/shiki/langs/jsonc.js +0 -1
  340. package/src/shiki/langs/jsonl.js +0 -1
  341. package/src/shiki/langs/jsonnet.js +0 -1
  342. package/src/shiki/langs/jssm.js +0 -1
  343. package/src/shiki/langs/jsx.js +0 -1
  344. package/src/shiki/langs/julia.js +0 -1
  345. package/src/shiki/langs/kotlin.js +0 -1
  346. package/src/shiki/langs/kusto.js +0 -1
  347. package/src/shiki/langs/latex.js +0 -1
  348. package/src/shiki/langs/lean.js +0 -1
  349. package/src/shiki/langs/less.js +0 -1
  350. package/src/shiki/langs/liquid.js +0 -1
  351. package/src/shiki/langs/llvm.js +0 -1
  352. package/src/shiki/langs/log.js +0 -1
  353. package/src/shiki/langs/logo.js +0 -1
  354. package/src/shiki/langs/lua.js +0 -1
  355. package/src/shiki/langs/luau.js +0 -1
  356. package/src/shiki/langs/make.js +0 -1
  357. package/src/shiki/langs/markdown-vue.js +0 -1
  358. package/src/shiki/langs/markdown.js +0 -1
  359. package/src/shiki/langs/marko.js +0 -1
  360. package/src/shiki/langs/matlab.js +0 -1
  361. package/src/shiki/langs/mdc.js +0 -1
  362. package/src/shiki/langs/mdx.js +0 -1
  363. package/src/shiki/langs/mermaid.js +0 -1
  364. package/src/shiki/langs/mipsasm.js +0 -1
  365. package/src/shiki/langs/mojo.js +0 -1
  366. package/src/shiki/langs/move.js +0 -1
  367. package/src/shiki/langs/narrat.js +0 -1
  368. package/src/shiki/langs/nextflow.js +0 -1
  369. package/src/shiki/langs/nginx.js +0 -1
  370. package/src/shiki/langs/nim.js +0 -1
  371. package/src/shiki/langs/nix.js +0 -1
  372. package/src/shiki/langs/nushell.js +0 -1
  373. package/src/shiki/langs/objective-c.js +0 -1
  374. package/src/shiki/langs/objective-cpp.js +0 -1
  375. package/src/shiki/langs/ocaml.js +0 -1
  376. package/src/shiki/langs/pascal.js +0 -1
  377. package/src/shiki/langs/perl.js +0 -1
  378. package/src/shiki/langs/php.js +0 -1
  379. package/src/shiki/langs/plsql.js +0 -1
  380. package/src/shiki/langs/po.js +0 -1
  381. package/src/shiki/langs/polar.js +0 -1
  382. package/src/shiki/langs/postcss.js +0 -1
  383. package/src/shiki/langs/powerquery.js +0 -1
  384. package/src/shiki/langs/powershell.js +0 -1
  385. package/src/shiki/langs/prisma.js +0 -1
  386. package/src/shiki/langs/prolog.js +0 -1
  387. package/src/shiki/langs/proto.js +0 -1
  388. package/src/shiki/langs/pug.js +0 -1
  389. package/src/shiki/langs/puppet.js +0 -1
  390. package/src/shiki/langs/purescript.js +0 -1
  391. package/src/shiki/langs/python.js +0 -1
  392. package/src/shiki/langs/qml.js +0 -1
  393. package/src/shiki/langs/qmldir.js +0 -1
  394. package/src/shiki/langs/qss.js +0 -1
  395. package/src/shiki/langs/r.js +0 -1
  396. package/src/shiki/langs/racket.js +0 -1
  397. package/src/shiki/langs/raku.js +0 -1
  398. package/src/shiki/langs/razor.js +0 -1
  399. package/src/shiki/langs/reg.js +0 -1
  400. package/src/shiki/langs/regexp.js +0 -1
  401. package/src/shiki/langs/rel.js +0 -1
  402. package/src/shiki/langs/riscv.js +0 -1
  403. package/src/shiki/langs/rst.js +0 -1
  404. package/src/shiki/langs/ruby.js +0 -1
  405. package/src/shiki/langs/rust.js +0 -1
  406. package/src/shiki/langs/sas.js +0 -1
  407. package/src/shiki/langs/sass.js +0 -1
  408. package/src/shiki/langs/scala.js +0 -1
  409. package/src/shiki/langs/scheme.js +0 -1
  410. package/src/shiki/langs/scss.js +0 -1
  411. package/src/shiki/langs/sdbl.js +0 -1
  412. package/src/shiki/langs/shaderlab.js +0 -1
  413. package/src/shiki/langs/shellscript.js +0 -1
  414. package/src/shiki/langs/shellsession.js +0 -1
  415. package/src/shiki/langs/smalltalk.js +0 -1
  416. package/src/shiki/langs/solidity.js +0 -1
  417. package/src/shiki/langs/soy.js +0 -1
  418. package/src/shiki/langs/sparql.js +0 -1
  419. package/src/shiki/langs/splunk.js +0 -1
  420. package/src/shiki/langs/sql.js +0 -1
  421. package/src/shiki/langs/ssh-config.js +0 -1
  422. package/src/shiki/langs/stata.js +0 -1
  423. package/src/shiki/langs/stylus.js +0 -1
  424. package/src/shiki/langs/svelte.js +0 -1
  425. package/src/shiki/langs/swift.js +0 -1
  426. package/src/shiki/langs/system-verilog.js +0 -1
  427. package/src/shiki/langs/systemd.js +0 -1
  428. package/src/shiki/langs/talonscript.js +0 -1
  429. package/src/shiki/langs/tasl.js +0 -1
  430. package/src/shiki/langs/tcl.js +0 -1
  431. package/src/shiki/langs/templ.js +0 -1
  432. package/src/shiki/langs/terraform.js +0 -1
  433. package/src/shiki/langs/tex.js +0 -1
  434. package/src/shiki/langs/toml.js +0 -1
  435. package/src/shiki/langs/ts-tags.js +0 -1
  436. package/src/shiki/langs/tsv.js +0 -1
  437. package/src/shiki/langs/tsx.js +0 -1
  438. package/src/shiki/langs/turtle.js +0 -1
  439. package/src/shiki/langs/twig.js +0 -1
  440. package/src/shiki/langs/typescript.js +0 -1
  441. package/src/shiki/langs/typespec.js +0 -1
  442. package/src/shiki/langs/typst.js +0 -1
  443. package/src/shiki/langs/v.js +0 -1
  444. package/src/shiki/langs/vala.js +0 -1
  445. package/src/shiki/langs/vb.js +0 -1
  446. package/src/shiki/langs/verilog.js +0 -1
  447. package/src/shiki/langs/vhdl.js +0 -1
  448. package/src/shiki/langs/viml.js +0 -1
  449. package/src/shiki/langs/vue-directives.js +0 -1
  450. package/src/shiki/langs/vue-html.js +0 -1
  451. package/src/shiki/langs/vue-interpolations.js +0 -1
  452. package/src/shiki/langs/vue-sfc-style-variable-injection.js +0 -1
  453. package/src/shiki/langs/vue.js +0 -1
  454. package/src/shiki/langs/vyper.js +0 -1
  455. package/src/shiki/langs/wasm.js +0 -1
  456. package/src/shiki/langs/wenyan.js +0 -1
  457. package/src/shiki/langs/wgsl.js +0 -1
  458. package/src/shiki/langs/wikitext.js +0 -1
  459. package/src/shiki/langs/wit.js +0 -1
  460. package/src/shiki/langs/wolfram.js +0 -1
  461. package/src/shiki/langs/xml.js +0 -1
  462. package/src/shiki/langs/xsl.js +0 -1
  463. package/src/shiki/langs/yaml.js +0 -1
  464. package/src/shiki/langs/zenscript.js +0 -1
  465. package/src/shiki/langs/zig.js +0 -1
  466. package/src/shiki/themes/andromeeda.js +0 -1
  467. package/src/shiki/themes/aurora-x.js +0 -1
  468. package/src/shiki/themes/ayu-dark.js +0 -1
  469. package/src/shiki/themes/catppuccin-frappe.js +0 -1
  470. package/src/shiki/themes/catppuccin-latte.js +0 -1
  471. package/src/shiki/themes/catppuccin-macchiato.js +0 -1
  472. package/src/shiki/themes/catppuccin-mocha.js +0 -1
  473. package/src/shiki/themes/dark-plus.js +0 -1
  474. package/src/shiki/themes/dracula-soft.js +0 -1
  475. package/src/shiki/themes/dracula.js +0 -1
  476. package/src/shiki/themes/everforest-dark.js +0 -1
  477. package/src/shiki/themes/everforest-light.js +0 -1
  478. package/src/shiki/themes/github-dark-default.js +0 -1
  479. package/src/shiki/themes/github-dark-dimmed.js +0 -1
  480. package/src/shiki/themes/github-dark-high-contrast.js +0 -1
  481. package/src/shiki/themes/github-dark.js +0 -1
  482. package/src/shiki/themes/github-light-default.js +0 -1
  483. package/src/shiki/themes/github-light-high-contrast.js +0 -1
  484. package/src/shiki/themes/github-light.js +0 -1
  485. package/src/shiki/themes/gruvbox-dark-hard.js +0 -1
  486. package/src/shiki/themes/gruvbox-dark-medium.js +0 -1
  487. package/src/shiki/themes/gruvbox-dark-soft.js +0 -1
  488. package/src/shiki/themes/gruvbox-light-hard.js +0 -1
  489. package/src/shiki/themes/gruvbox-light-medium.js +0 -1
  490. package/src/shiki/themes/gruvbox-light-soft.js +0 -1
  491. package/src/shiki/themes/houston.js +0 -1
  492. package/src/shiki/themes/kanagawa-dragon.js +0 -1
  493. package/src/shiki/themes/kanagawa-lotus.js +0 -1
  494. package/src/shiki/themes/kanagawa-wave.js +0 -1
  495. package/src/shiki/themes/laserwave.js +0 -1
  496. package/src/shiki/themes/light-plus.js +0 -1
  497. package/src/shiki/themes/material-theme-darker.js +0 -1
  498. package/src/shiki/themes/material-theme-lighter.js +0 -1
  499. package/src/shiki/themes/material-theme-ocean.js +0 -1
  500. package/src/shiki/themes/material-theme-palenight.js +0 -1
  501. package/src/shiki/themes/material-theme.js +0 -1
  502. package/src/shiki/themes/min-dark.js +0 -1
  503. package/src/shiki/themes/min-light.js +0 -1
  504. package/src/shiki/themes/monokai.js +0 -1
  505. package/src/shiki/themes/night-owl.js +0 -1
  506. package/src/shiki/themes/nord.js +0 -1
  507. package/src/shiki/themes/one-dark-pro.js +0 -1
  508. package/src/shiki/themes/one-light.js +0 -1
  509. package/src/shiki/themes/plastic.js +0 -1
  510. package/src/shiki/themes/poimandres.js +0 -1
  511. package/src/shiki/themes/red.js +0 -1
  512. package/src/shiki/themes/rose-pine-dawn.js +0 -1
  513. package/src/shiki/themes/rose-pine-moon.js +0 -1
  514. package/src/shiki/themes/rose-pine.js +0 -1
  515. package/src/shiki/themes/slack-dark.js +0 -1
  516. package/src/shiki/themes/slack-ochin.js +0 -1
  517. package/src/shiki/themes/snazzy-light.js +0 -1
  518. package/src/shiki/themes/solarized-dark.js +0 -1
  519. package/src/shiki/themes/solarized-light.js +0 -1
  520. package/src/shiki/themes/synthwave-84.js +0 -1
  521. package/src/shiki/themes/tokyo-night.js +0 -1
  522. package/src/shiki/themes/vesper.js +0 -1
  523. package/src/shiki/themes/vitesse-black.js +0 -1
  524. package/src/shiki/themes/vitesse-dark.js +0 -1
  525. package/src/shiki/themes/vitesse-light.js +0 -1
@@ -1,13 +1,13 @@
1
- import "./RouteGuard-CGqivwrh.js";
2
- import "./index--oeBayMa.js";
3
- import "./chunk-BAXFHI7N-CFrZQ7Oh.js";
4
- import "./hook-CyNmcNr8.js";
5
- import "./SlotletProvider-DhK1Fmm9.js";
6
- import { e as d, f as k, n as l, B as S, C as h, j as B, l as c, H as E, d as H, L, M, g as R, R as Z, S as f, k as g, i as y, Z as A, a as b, h as j, c as v, m as w, b as x } from "./index-BcMPFdRU.js";
1
+ import "./RouteGuard-DRtEu9nh.js";
2
+ import "./index-DwT-v3zK.js";
3
+ import "./chunk-BAXFHI7N-BVBOl9s0.js";
4
+ import "./hook-CldJlP5c.js";
5
+ import "./SlotletProvider-CS_nO-XT.js";
6
+ import { e as d, f as k, n as l, B as S, C as h, j as B, l as c, H as E, d as H, L, M, g as R, R as Z, S as f, k as g, i as y, Z as A, a as b, h as j, c as v, m as w, b as x } from "./index-DnQftvP4.js";
7
7
  import "./ui/Button.js";
8
8
  import "./ui/Callout.js";
9
9
  import "./ClientOnly-E7hGysn1.js";
10
- import "./Markdown-1l-DtDbF.js";
10
+ import "./Markdown-mFpg_n9p.js";
11
11
  import "./Spinner-mNLZ6awP.js";
12
12
  export {
13
13
  d as Bootstrap,
@@ -1,6 +1,6 @@
1
- import { z as f } from "./index--oeBayMa.js";
1
+ import { z as f } from "./index-DwT-v3zK.js";
2
2
  import { useState as m, useEffect as i } from "react";
3
- import { e as a } from "./hook-CyNmcNr8.js";
3
+ import { e as a } from "./hook-CldJlP5c.js";
4
4
  function d(e, t) {
5
5
  const s = a(), [n, o] = m();
6
6
  return i(() => s.addEventListener(e, (...u) => {
@@ -1,42 +1,42 @@
1
- import { j as t } from "./jsx-runtime-C5mzlN2N.js";
2
- import { s as g } from "./index-BvvmIczU.js";
3
- import { d as b, m as x } from "./chunk-BAXFHI7N-CFrZQ7Oh.js";
4
- import { u as j, d as y, f as m } from "./hook-CyNmcNr8.js";
5
- import { H as v } from "./RouteGuard-CGqivwrh.js";
6
- import { L as N } from "./index-BcMPFdRU.js";
7
- import { H as S, M as w } from "./Markdown-1l-DtDbF.js";
1
+ import { j as s } from "./jsx-runtime-C5mzlN2N.js";
2
+ import { s as h } from "./index-LNp6rxyU.js";
3
+ import { d as b, m as x } from "./chunk-BAXFHI7N-BVBOl9s0.js";
4
+ import { u as j, d as y, f as p } from "./hook-CldJlP5c.js";
5
+ import { H as v } from "./RouteGuard-DRtEu9nh.js";
6
+ import { L as N } from "./index-DnQftvP4.js";
7
+ import { H as S, M as w } from "./Markdown-mFpg_n9p.js";
8
8
  const H = ({
9
9
  items: r,
10
10
  filterCatalogItems: o = (n) => n,
11
- label: c = "API Library",
11
+ label: d = "API Library",
12
12
  categoryLabel: a
13
13
  }) => {
14
- const n = j(), s = b({ path: "/catalog/:category" })?.params.category, l = y({
14
+ const n = j(), i = b({ path: "/catalog/:category" }), t = i == null ? void 0 : i.params.category, l = y({
15
15
  queryFn: () => o(r, { auth: n }),
16
16
  queryKey: ["catalogItems", n]
17
- }), d = s ? { "data-pagefind-ignore": "all" } : {};
18
- return /* @__PURE__ */ t.jsxs("section", { className: "pt-[--padding-content-top]", ...d, children: [
19
- /* @__PURE__ */ t.jsx(v, { children: /* @__PURE__ */ t.jsxs("title", { children: [
17
+ }), m = t ? { "data-pagefind-ignore": "all" } : {};
18
+ return /* @__PURE__ */ s.jsxs("section", { className: "pt-[--padding-content-top]", ...m, children: [
19
+ /* @__PURE__ */ s.jsx(v, { children: /* @__PURE__ */ s.jsxs("title", { children: [
20
20
  a ? `${a} - ` : "",
21
- c
21
+ d
22
22
  ] }) }),
23
- /* @__PURE__ */ t.jsxs("div", { className: "grid gap-4", children: [
24
- /* @__PURE__ */ t.jsxs(S, { level: 2, children: [
25
- c,
23
+ /* @__PURE__ */ s.jsxs("div", { className: "grid gap-4", children: [
24
+ /* @__PURE__ */ s.jsxs(S, { level: 2, children: [
25
+ d,
26
26
  a && ` - ${a}`
27
27
  ] }),
28
- /* @__PURE__ */ t.jsx("div", { className: "grid grid-cols-2 gap-4", children: l.data.filter(
29
- (e) => !s || e.categories.find(
30
- (i) => i.tags.find((h) => u(i.label, h) === s)
28
+ /* @__PURE__ */ s.jsx("div", { className: "grid grid-cols-2 gap-4", children: l.data.filter(
29
+ (e) => !t || e.categories.find(
30
+ (c) => c.tags.find((u) => f(c.label, u) === t)
31
31
  )
32
- ).map((e) => /* @__PURE__ */ t.jsx(
32
+ ).map((e) => /* @__PURE__ */ s.jsx(
33
33
  N,
34
34
  {
35
- to: m(e.path),
35
+ to: p(e.path),
36
36
  className: "no-underline hover:!text-foreground",
37
- 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: [
38
- /* @__PURE__ */ t.jsx("span", { className: "font-semibold", children: e.label }),
39
- /* @__PURE__ */ t.jsx(
37
+ children: /* @__PURE__ */ s.jsxs("div", { className: "border h-full rounded-lg p-4 flex flex-col gap-2 cursor-pointer hover:bg-border/20 font-normal", children: [
38
+ /* @__PURE__ */ s.jsx("span", { className: "font-semibold", children: e.label }),
39
+ /* @__PURE__ */ s.jsx(
40
40
  w,
41
41
  {
42
42
  className: "text-sm whitespace-pre-wrap mb-6 line-clamp-2",
@@ -49,58 +49,58 @@ const H = ({
49
49
  )) })
50
50
  ] })
51
51
  ] });
52
- }, u = (r, o) => g(`${r}-${o}`), A = ({
52
+ }, f = (r, o) => h(`${r}-${o}`), A = ({
53
53
  navigationId: r,
54
54
  items: o,
55
- label: c,
55
+ label: d,
56
56
  categories: a = [],
57
57
  filterCatalogItems: n
58
58
  }) => {
59
- const p = Object.fromEntries(
59
+ const i = Object.fromEntries(
60
60
  a.flatMap(
61
- (s) => [void 0, ...s.tags].map((l) => [
62
- m(r, l ? u(s.label, l) : void 0),
61
+ (t) => [void 0, ...t.tags].map((l) => [
62
+ p(r, l ? f(t.label, l) : void 0),
63
63
  l
64
64
  ])
65
65
  )
66
66
  );
67
67
  return {
68
- getSidebar: async (s) => {
69
- if (!Object.keys(p).some(
70
- (e) => x(e, s)
68
+ getSidebar: async (t) => {
69
+ if (!Object.keys(i).some(
70
+ (e) => x(e, t)
71
71
  ))
72
72
  return [];
73
- const d = a.map((e) => ({
73
+ const m = a.map((e) => ({
74
74
  type: "category",
75
75
  label: e.label,
76
76
  collapsible: !1,
77
- items: e.tags.map((i) => ({
77
+ items: e.tags.map((c) => ({
78
78
  type: "doc",
79
- id: m(r, u(e.label, i)),
80
- label: i,
79
+ id: p(r, f(e.label, c)),
80
+ label: c,
81
81
  badge: {
82
82
  label: String(
83
83
  o.filter(
84
- (h) => h.categories.find((f) => f.tags.includes(i))
84
+ (u) => u.categories.find((g) => g.tags.includes(c))
85
85
  ).length
86
86
  ),
87
87
  color: "outline"
88
88
  }
89
89
  }))
90
90
  }));
91
- return d.unshift({
91
+ return m.unshift({
92
92
  type: "doc",
93
- id: m(r),
93
+ id: p(r),
94
94
  label: "Overview",
95
95
  badge: { label: String(o.length), color: "outline" }
96
- }), d;
96
+ }), m;
97
97
  },
98
- getRoutes: () => Object.entries(p).map(([s, l]) => ({
99
- path: s,
100
- element: /* @__PURE__ */ t.jsx(
98
+ getRoutes: () => Object.entries(i).map(([t, l]) => ({
99
+ path: t,
100
+ element: /* @__PURE__ */ s.jsx(
101
101
  H,
102
102
  {
103
- label: c,
103
+ label: d,
104
104
  categoryLabel: l,
105
105
  items: o,
106
106
  filterCatalogItems: n,
@@ -112,6 +112,6 @@ const H = ({
112
112
  };
113
113
  export {
114
114
  A as apiCatalogPlugin,
115
- u as getKey
115
+ f as getKey
116
116
  };
117
117
  //# 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, \"navigationId\"> & {\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 />\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 { SidebarItem } from \"../../../config/validators/SidebarSchema.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 navigationId: string;\n label: string;\n categories?: CatalogCategory[];\n items: ApiCatalogItem[];\n filterCatalogItems?: filterCatalogItems;\n};\n\nexport type CatalogContext<ProviderData = unknown> = {\n auth: AuthState<ProviderData>;\n};\n\nexport type filterCatalogItems<ProviderData = unknown> = (\n items: ApiCatalogItem[],\n { auth }: CatalogContext<ProviderData>,\n) => ApiCatalogItem[];\n\nexport const apiCatalogPlugin = ({\n navigationId,\n items,\n label,\n categories = [],\n filterCatalogItems,\n}: {\n navigationId: string;\n label: string;\n categories?: CatalogCategory[];\n items: ApiCatalogItem[];\n filterCatalogItems?: filterCatalogItems;\n}): ZudokuPlugin => {\n const paths = Object.fromEntries(\n categories.flatMap((category) =>\n [undefined, ...category.tags].map((tag) => [\n joinUrl(navigationId, tag ? getKey(category.label, tag) : undefined),\n tag,\n ]),\n ),\n );\n\n return {\n getSidebar: 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 sidebar: SidebarItem[] = categories.map((category) => ({\n type: \"category\" as const,\n label: category.label,\n collapsible: false,\n items: category.tags.map((tag) => ({\n type: \"doc\" as const,\n id: joinUrl(navigationId, 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\" as const,\n },\n })),\n }));\n\n sidebar.unshift({\n type: \"doc\" as const,\n id: joinUrl(navigationId),\n label: \"Overview\",\n badge: { label: String(items.length), color: \"outline\" as const },\n });\n\n return sidebar;\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","category","tag","slugify","apiCatalogPlugin","navigationId","categories","paths","currentPath","path","matchPath","sidebar"],"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, \"navigationId\"> & {\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 />\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 { SidebarItem } from \"../../../config/validators/SidebarSchema.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 navigationId: string;\n label: string;\n categories?: CatalogCategory[];\n items: ApiCatalogItem[];\n filterCatalogItems?: filterCatalogItems;\n};\n\nexport type CatalogContext<ProviderData = unknown> = {\n auth: AuthState<ProviderData>;\n};\n\nexport type filterCatalogItems<ProviderData = unknown> = (\n items: ApiCatalogItem[],\n { auth }: CatalogContext<ProviderData>,\n) => ApiCatalogItem[];\n\nexport const apiCatalogPlugin = ({\n navigationId,\n items,\n label,\n categories = [],\n filterCatalogItems,\n}: {\n navigationId: string;\n label: string;\n categories?: CatalogCategory[];\n items: ApiCatalogItem[];\n filterCatalogItems?: filterCatalogItems;\n}): ZudokuPlugin => {\n const paths = Object.fromEntries(\n categories.flatMap((category) =>\n [undefined, ...category.tags].map((tag) => [\n joinUrl(navigationId, tag ? getKey(category.label, tag) : undefined),\n tag,\n ]),\n ),\n );\n\n return {\n getSidebar: 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 sidebar: SidebarItem[] = categories.map((category) => ({\n type: \"category\" as const,\n label: category.label,\n collapsible: false,\n items: category.tags.map((tag) => ({\n type: \"doc\" as const,\n id: joinUrl(navigationId, 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\" as const,\n },\n })),\n }));\n\n sidebar.unshift({\n type: \"doc\" as const,\n id: joinUrl(navigationId),\n label: \"Overview\",\n badge: { label: String(items.length), color: \"outline\" as const },\n });\n\n return sidebar;\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","match","useMatch","activeCategory","catalogItems","useSuspenseQuery","dataSet","jsxs","jsx","Helmet","Heading","api","t","getKey","Link","joinUrl","Markdown","category","tag","slugify","apiCatalogPlugin","navigationId","categories","paths","currentPath","path","matchPath","sidebar","c"],"mappings":"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"}
@@ -1,15 +1,15 @@
1
1
  import { j as e } from "./jsx-runtime-C5mzlN2N.js";
2
2
  import { RotateCwIcon as j, TrashIcon as v, EyeOffIcon as w, EyeIcon as K, CheckIcon as b, CopyIcon as k, FileKey2Icon as N } from "lucide-react";
3
- import { D as I, S as x, R as S } from "./SlotletProvider-DhK1Fmm9.js";
4
- import { i as c } from "./invariant-D3QcI9fa.js";
5
- import { e as h, g, l as A, d as C } from "./hook-CyNmcNr8.js";
6
- import { u as d, S as E, a as P, b as D, c as q, d as R, e as p } from "./Select-m-ITdvFa.js";
3
+ import { D as I, S as x, R as S } from "./SlotletProvider-CS_nO-XT.js";
4
+ import { i as c } from "./invariant-Caa8-XvF.js";
5
+ import { e as h, g, l as A, d as C } from "./hook-CldJlP5c.js";
6
+ import { u as d, S as E, a as P, b as D, c as q, d as R, e as p } from "./Select-CT64Ou40.js";
7
7
  import { a as O } from "./index.esm-D2ZUREQN.js";
8
- import { a as z, L as u, O as F } from "./chunk-BAXFHI7N-CFrZQ7Oh.js";
8
+ import { a as z, L as u, O as F } from "./chunk-BAXFHI7N-BVBOl9s0.js";
9
9
  import { Button as l } from "./ui/Button.js";
10
10
  import { Input as T } from "./ui/Input.js";
11
11
  import { useState as y } from "react";
12
- import { c as L } from "./cn-CwJPJKOE.js";
12
+ import { c as L } from "./cn-qaFjX9_3.js";
13
13
  const V = ({ service: t }) => {
14
14
  const n = h(), i = g(), r = z(), a = O({
15
15
  defaultValues: {
@@ -1,8 +1,8 @@
1
1
  import { j as o } from "./jsx-runtime-C5mzlN2N.js";
2
2
  import a from "react";
3
- import { P as n } from "./Markdown-1l-DtDbF.js";
4
- import { c } from "./cn-CwJPJKOE.js";
5
- import { u as p } from "./useExposedProps-n1u49409.js";
3
+ import { P as n } from "./Markdown-mFpg_n9p.js";
4
+ import { c } from "./cn-qaFjX9_3.js";
5
+ import { u as p } from "./useExposedProps-DbIZXspi.js";
6
6
  const u = ({
7
7
  element: t,
8
8
  render: s,
@@ -1,15 +1,18 @@
1
- import { j as f } from "./jsx-runtime-C5mzlN2N.js";
2
- const l = "/pages/**/*.{md,mdx}";
3
- class g {
1
+ var h = Object.defineProperty;
2
+ var g = (e, t, o) => t in e ? h(e, t, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[t] = o;
3
+ var c = (e, t, o) => g(e, typeof t != "symbol" ? t + "" : t, o);
4
+ import { j as d } from "./jsx-runtime-C5mzlN2N.js";
5
+ const m = "/pages/**/*.{md,mdx}";
6
+ class w {
4
7
  constructor(t) {
8
+ c(this, "fileMap", /* @__PURE__ */ new Map());
5
9
  this.config = t;
6
10
  }
7
- fileMap = /* @__PURE__ */ new Map();
8
11
  /**
9
12
  * Gets the default docs config from the zudoku config
10
13
  */
11
14
  getDocsConfigs() {
12
- return this.config.docs ? Array.isArray(this.config.docs) ? this.config.docs : [this.config.docs] : [{ files: l }];
15
+ return this.config.docs ? Array.isArray(this.config.docs) ? this.config.docs : [this.config.docs] : [{ files: m }];
13
16
  }
14
17
  /**
15
18
  * Gets the root directory from a files glob
@@ -29,47 +32,47 @@ class g {
29
32
  filesGlob: t,
30
33
  fsPath: o
31
34
  }) {
32
- const r = this.getRootDir(t), n = new RegExp(`^${r}(.*).mdx?`);
33
- return o.match(n)?.at(1);
35
+ const n = this.getRootDir(t), a = new RegExp(`^${n}(.*).mdx?`), s = o.match(a);
36
+ return s == null ? void 0 : s.at(1);
34
37
  }
35
38
  }
36
- const m = (a) => ({
39
+ const P = (e) => ({
37
40
  getRoutes: () => {
38
41
  const t = /* @__PURE__ */ new Map();
39
- return a.forEach(
40
- ({ fileImports: o, files: r, defaultOptions: n }) => Object.entries(o).flatMap(([s, i]) => {
41
- const e = g.resolveRoutePath({
42
- filesGlob: r,
42
+ return e.forEach(
43
+ ({ fileImports: o, files: n, defaultOptions: a }) => Object.entries(o).flatMap(([s, i]) => {
44
+ const r = w.resolveRoutePath({
45
+ filesGlob: n,
43
46
  fsPath: s
44
47
  });
45
- if (!e) return [];
46
- if (t.has(e))
48
+ if (!r) return [];
49
+ if (t.has(r))
47
50
  return console.warn(
48
- `Duplicate route path found for ${e}. Skipping file at '${s}'.`
51
+ `Duplicate route path found for ${r}. Skipping file at '${s}'.`
49
52
  ), [];
50
- const c = {
51
- path: e,
53
+ const u = {
54
+ path: r,
52
55
  lazy: async () => {
53
- const { MdxPage: u } = await import("./MdxPage-Dxbq6lFr.js"), { default: h, ...p } = await i();
56
+ const { MdxPage: p } = await import("./MdxPage-Cm7atiW3.js"), { default: f, ...l } = await i();
54
57
  return {
55
- element: /* @__PURE__ */ f.jsx(
56
- u,
58
+ element: /* @__PURE__ */ d.jsx(
59
+ p,
57
60
  {
58
61
  file: s,
59
- mdxComponent: h,
60
- ...p,
61
- defaultOptions: n
62
+ mdxComponent: f,
63
+ ...l,
64
+ defaultOptions: a
62
65
  }
63
66
  )
64
67
  };
65
68
  }
66
69
  };
67
- t.set(e, c);
70
+ t.set(r, u);
68
71
  })
69
72
  ), [...t.values()];
70
73
  }
71
74
  });
72
75
  export {
73
- m as markdownPlugin
76
+ P as markdownPlugin
74
77
  };
75
78
  //# sourceMappingURL=zudoku.plugin-markdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zudoku.plugin-markdown.js","sources":["../src/lib/plugins/markdown/resolver.ts","../src/lib/plugins/markdown/index.tsx"],"sourcesContent":["import { ZudokuDocsConfig } from \"../../../config/validators/common.js\";\nimport { ZudokuConfig } from \"../../../config/validators/validate.js\";\n\nconst DEFAULT_DOCS_FILES = \"/pages/**/*.{md,mdx}\";\n\n/**\n * Utilities for resolving markdown file paths and routes\n */\nexport class DocResolver {\n constructor(private config: ZudokuConfig) {}\n\n fileMap = new Map<string, string>();\n\n /**\n * Gets the default docs config from the zudoku config\n */\n getDocsConfigs() {\n const docsConfigs: ZudokuDocsConfig[] = this.config.docs\n ? Array.isArray(this.config.docs)\n ? this.config.docs\n : [this.config.docs]\n : [{ files: DEFAULT_DOCS_FILES }];\n\n return docsConfigs;\n }\n\n /**\n * Gets the root directory from a files glob\n */\n private static getRootDir(filesGlob: string) {\n let rootDir = filesGlob.split(\"**\")[0];\n if (!rootDir) {\n throw new Error(\"Invalid files glob. Must have '**' in the path.\");\n }\n rootDir = rootDir.replace(\"/**\", \"/\");\n return rootDir;\n }\n\n /**\n * Resolves the route path for a given file system path\n * @param options - The options to resolve the route path\n * @returns The string route path\n */\n static resolveRoutePath({\n filesGlob,\n fsPath,\n }: {\n filesGlob: string;\n fsPath: string;\n }) {\n const rootDir = this.getRootDir(filesGlob);\n const re = new RegExp(`^${rootDir}(.*).mdx?`);\n const match = fsPath.match(re);\n const routePath = match?.at(1);\n return routePath;\n }\n}\n","import type { Toc } from \"@stefanprobst/rehype-extract-toc\";\nimport type { MDXProps } from \"mdx/types.js\";\nimport { type JSX } from \"react\";\nimport { RouteObject } from \"react-router\";\nimport { ZudokuDocsConfig } from \"../../../config/validators/common.js\";\nimport type { ZudokuPlugin } from \"../../core/plugins.js\";\nimport { DocResolver } from \"./resolver.js\";\n\nexport interface MarkdownPluginOptions extends ZudokuDocsConfig {\n fileImports: Record<string, () => Promise<MDXImport>>;\n}\nexport type MarkdownPluginDefaultOptions = Pick<\n Frontmatter,\n \"toc\" | \"disablePager\"\n>;\n\nexport type Frontmatter = {\n title?: string;\n description?: string;\n category?: string;\n toc?: boolean;\n disablePager?: boolean;\n};\n\nexport type MDXImport = {\n tableOfContents: Toc;\n frontmatter: Frontmatter;\n excerpt?: string;\n default: (props: MDXProps) => JSX.Element;\n};\n\nexport const markdownPlugin = (\n options: MarkdownPluginOptions[],\n): ZudokuPlugin => ({\n getRoutes: () => {\n const routeMap = new Map<string, RouteObject>();\n options.forEach(({ fileImports, files, defaultOptions }) =>\n Object.entries(fileImports).flatMap(([file, importPromise]) => {\n const routePath = DocResolver.resolveRoutePath({\n filesGlob: files,\n fsPath: file,\n });\n\n if (!routePath) return [];\n\n if (routeMap.has(routePath)) {\n // eslint-disable-next-line no-console\n console.warn(\n `Duplicate route path found for ${routePath}. Skipping file at '${file}'.`,\n );\n return [];\n }\n\n const route: RouteObject = {\n path: routePath,\n lazy: async () => {\n const { MdxPage } = await import(\"./MdxPage.js\");\n const { default: Component, ...props } = await importPromise();\n return {\n element: (\n <MdxPage\n file={file}\n mdxComponent={Component}\n {...props}\n defaultOptions={defaultOptions}\n />\n ),\n };\n },\n };\n routeMap.set(routePath, route);\n }),\n );\n return [...routeMap.values()];\n },\n});\n"],"names":["DEFAULT_DOCS_FILES","DocResolver","config","filesGlob","rootDir","fsPath","re","markdownPlugin","options","routeMap","fileImports","files","defaultOptions","file","importPromise","routePath","route","MdxPage","Component","props","jsx"],"mappings":";AAGA,MAAMA,IAAqB;AAKpB,MAAMC,EAAY;AAAA,EACvB,YAAoBC,GAAsB;AAAtB,SAAA,SAAAA;AAAA,EAAA;AAAA,EAEpB,8BAAc,IAAoB;AAAA;AAAA;AAAA;AAAA,EAKlC,iBAAiB;AAOR,WANiC,KAAK,OAAO,OAChD,MAAM,QAAQ,KAAK,OAAO,IAAI,IAC5B,KAAK,OAAO,OACZ,CAAC,KAAK,OAAO,IAAI,IACnB,CAAC,EAAE,OAAOF,GAAoB;AAAA,EAE3B;AAAA;AAAA;AAAA;AAAA,EAMT,OAAe,WAAWG,GAAmB;AAC3C,QAAIC,IAAUD,EAAU,MAAM,IAAI,EAAE,CAAC;AACrC,QAAI,CAACC;AACG,YAAA,IAAI,MAAM,iDAAiD;AAEzD,WAAAA,IAAAA,EAAQ,QAAQ,OAAO,GAAG,GAC7BA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQT,OAAO,iBAAiB;AAAA,IACtB,WAAAD;AAAA,IACA,QAAAE;AAAA,EAAA,GAIC;AACK,UAAAD,IAAU,KAAK,WAAWD,CAAS,GACnCG,IAAK,IAAI,OAAO,IAAIF,CAAO,WAAW;AAGrC,WAFOC,EAAO,MAAMC,CAAE,GACJ,GAAG,CAAC;AAAA,EACtB;AAEX;ACzBa,MAAAC,IAAiB,CAC5BC,OACkB;AAAA,EAClB,WAAW,MAAM;AACT,UAAAC,wBAAe,IAAyB;AACtC,WAAAD,EAAA;AAAA,MAAQ,CAAC,EAAE,aAAAE,GAAa,OAAAC,GAAO,gBAAAC,QACrC,OAAO,QAAQF,CAAW,EAAE,QAAQ,CAAC,CAACG,GAAMC,CAAa,MAAM;AACvD,cAAAC,IAAYd,EAAY,iBAAiB;AAAA,UAC7C,WAAWU;AAAA,UACX,QAAQE;AAAA,QAAA,CACT;AAEG,YAAA,CAACE,EAAW,QAAO,CAAC;AAEpB,YAAAN,EAAS,IAAIM,CAAS;AAEhB,yBAAA;AAAA,YACN,kCAAkCA,CAAS,uBAAuBF,CAAI;AAAA,UACxE,GACO,CAAC;AAGV,cAAMG,IAAqB;AAAA,UACzB,MAAMD;AAAA,UACN,MAAM,YAAY;AAChB,kBAAM,EAAE,SAAAE,EAAA,IAAY,MAAM,OAAO,uBAAc,GACzC,EAAE,SAASC,GAAW,GAAGC,EAAM,IAAI,MAAML,EAAc;AACtD,mBAAA;AAAA,cACL,SACEM,gBAAAA,EAAA;AAAA,gBAACH;AAAA,gBAAA;AAAA,kBACC,MAAAJ;AAAA,kBACA,cAAcK;AAAA,kBACb,GAAGC;AAAA,kBACJ,gBAAAP;AAAA,gBAAA;AAAA,cAAA;AAAA,YAGN;AAAA,UAAA;AAAA,QAEJ;AACS,QAAAH,EAAA,IAAIM,GAAWC,CAAK;AAAA,MAC9B,CAAA;AAAA,IACH,GACO,CAAC,GAAGP,EAAS,QAAQ;AAAA,EAAA;AAEhC;"}
1
+ {"version":3,"file":"zudoku.plugin-markdown.js","sources":["../src/lib/plugins/markdown/resolver.ts","../src/lib/plugins/markdown/index.tsx"],"sourcesContent":["import { ZudokuDocsConfig } from \"../../../config/validators/common.js\";\nimport { ZudokuConfig } from \"../../../config/validators/validate.js\";\n\nconst DEFAULT_DOCS_FILES = \"/pages/**/*.{md,mdx}\";\n\n/**\n * Utilities for resolving markdown file paths and routes\n */\nexport class DocResolver {\n constructor(private config: ZudokuConfig) {}\n\n fileMap = new Map<string, string>();\n\n /**\n * Gets the default docs config from the zudoku config\n */\n getDocsConfigs() {\n const docsConfigs: ZudokuDocsConfig[] = this.config.docs\n ? Array.isArray(this.config.docs)\n ? this.config.docs\n : [this.config.docs]\n : [{ files: DEFAULT_DOCS_FILES }];\n\n return docsConfigs;\n }\n\n /**\n * Gets the root directory from a files glob\n */\n private static getRootDir(filesGlob: string) {\n let rootDir = filesGlob.split(\"**\")[0];\n if (!rootDir) {\n throw new Error(\"Invalid files glob. Must have '**' in the path.\");\n }\n rootDir = rootDir.replace(\"/**\", \"/\");\n return rootDir;\n }\n\n /**\n * Resolves the route path for a given file system path\n * @param options - The options to resolve the route path\n * @returns The string route path\n */\n static resolveRoutePath({\n filesGlob,\n fsPath,\n }: {\n filesGlob: string;\n fsPath: string;\n }) {\n const rootDir = this.getRootDir(filesGlob);\n const re = new RegExp(`^${rootDir}(.*).mdx?`);\n const match = fsPath.match(re);\n const routePath = match?.at(1);\n return routePath;\n }\n}\n","import type { Toc } from \"@stefanprobst/rehype-extract-toc\";\nimport type { MDXProps } from \"mdx/types.js\";\nimport { type JSX } from \"react\";\nimport { RouteObject } from \"react-router\";\nimport { ZudokuDocsConfig } from \"../../../config/validators/common.js\";\nimport type { ZudokuPlugin } from \"../../core/plugins.js\";\nimport { DocResolver } from \"./resolver.js\";\n\nexport interface MarkdownPluginOptions extends ZudokuDocsConfig {\n fileImports: Record<string, () => Promise<MDXImport>>;\n}\nexport type MarkdownPluginDefaultOptions = Pick<\n Frontmatter,\n \"toc\" | \"disablePager\"\n>;\n\nexport type Frontmatter = {\n title?: string;\n description?: string;\n category?: string;\n toc?: boolean;\n disablePager?: boolean;\n};\n\nexport type MDXImport = {\n tableOfContents: Toc;\n frontmatter: Frontmatter;\n excerpt?: string;\n default: (props: MDXProps) => JSX.Element;\n};\n\nexport const markdownPlugin = (\n options: MarkdownPluginOptions[],\n): ZudokuPlugin => ({\n getRoutes: () => {\n const routeMap = new Map<string, RouteObject>();\n options.forEach(({ fileImports, files, defaultOptions }) =>\n Object.entries(fileImports).flatMap(([file, importPromise]) => {\n const routePath = DocResolver.resolveRoutePath({\n filesGlob: files,\n fsPath: file,\n });\n\n if (!routePath) return [];\n\n if (routeMap.has(routePath)) {\n // eslint-disable-next-line no-console\n console.warn(\n `Duplicate route path found for ${routePath}. Skipping file at '${file}'.`,\n );\n return [];\n }\n\n const route: RouteObject = {\n path: routePath,\n lazy: async () => {\n const { MdxPage } = await import(\"./MdxPage.js\");\n const { default: Component, ...props } = await importPromise();\n return {\n element: (\n <MdxPage\n file={file}\n mdxComponent={Component}\n {...props}\n defaultOptions={defaultOptions}\n />\n ),\n };\n },\n };\n routeMap.set(routePath, route);\n }),\n );\n return [...routeMap.values()];\n },\n});\n"],"names":["DEFAULT_DOCS_FILES","DocResolver","config","__publicField","filesGlob","rootDir","fsPath","re","match","markdownPlugin","options","routeMap","fileImports","files","defaultOptions","file","importPromise","routePath","route","MdxPage","Component","props","jsx"],"mappings":";;;;AAGA,MAAMA,IAAqB;AAKpB,MAAMC,EAAY;AAAA,EACvB,YAAoBC,GAAsB;AAE1C,IAAAC,EAAA,qCAAc,IAAoB;AAFd,SAAA,SAAAD;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EAOpB,iBAAiB;AAOR,WANiC,KAAK,OAAO,OAChD,MAAM,QAAQ,KAAK,OAAO,IAAI,IAC5B,KAAK,OAAO,OACZ,CAAC,KAAK,OAAO,IAAI,IACnB,CAAC,EAAE,OAAOF,GAAoB;AAAA,EAE3B;AAAA;AAAA;AAAA;AAAA,EAMT,OAAe,WAAWI,GAAmB;AAC3C,QAAIC,IAAUD,EAAU,MAAM,IAAI,EAAE,CAAC;AACrC,QAAI,CAACC;AACG,YAAA,IAAI,MAAM,iDAAiD;AAEzD,WAAAA,IAAAA,EAAQ,QAAQ,OAAO,GAAG,GAC7BA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQT,OAAO,iBAAiB;AAAA,IACtB,WAAAD;AAAA,IACA,QAAAE;AAAA,EAAA,GAIC;AACK,UAAAD,IAAU,KAAK,WAAWD,CAAS,GACnCG,IAAK,IAAI,OAAO,IAAIF,CAAO,WAAW,GACtCG,IAAQF,EAAO,MAAMC,CAAE;AAEtB,WADWC,KAAA,gBAAAA,EAAO,GAAG;AAAA,EACrB;AAEX;ACzBa,MAAAC,IAAiB,CAC5BC,OACkB;AAAA,EAClB,WAAW,MAAM;AACT,UAAAC,wBAAe,IAAyB;AACtC,WAAAD,EAAA;AAAA,MAAQ,CAAC,EAAE,aAAAE,GAAa,OAAAC,GAAO,gBAAAC,QACrC,OAAO,QAAQF,CAAW,EAAE,QAAQ,CAAC,CAACG,GAAMC,CAAa,MAAM;AACvD,cAAAC,IAAYhB,EAAY,iBAAiB;AAAA,UAC7C,WAAWY;AAAA,UACX,QAAQE;AAAA,QAAA,CACT;AAEG,YAAA,CAACE,EAAW,QAAO,CAAC;AAEpB,YAAAN,EAAS,IAAIM,CAAS;AAEhB,yBAAA;AAAA,YACN,kCAAkCA,CAAS,uBAAuBF,CAAI;AAAA,UACxE,GACO,CAAC;AAGV,cAAMG,IAAqB;AAAA,UACzB,MAAMD;AAAA,UACN,MAAM,YAAY;AAChB,kBAAM,EAAE,SAAAE,EAAA,IAAY,MAAM,OAAO,uBAAc,GACzC,EAAE,SAASC,GAAW,GAAGC,EAAM,IAAI,MAAML,EAAc;AACtD,mBAAA;AAAA,cACL,SACEM,gBAAAA,EAAA;AAAA,gBAACH;AAAA,gBAAA;AAAA,kBACC,MAAAJ;AAAA,kBACA,cAAcK;AAAA,kBACb,GAAGC;AAAA,kBACJ,gBAAAP;AAAA,gBAAA;AAAA,cAAA;AAAA,YAGN;AAAA,UAAA;AAAA,QAEJ;AACS,QAAAH,EAAA,IAAIM,GAAWC,CAAK;AAAA,MAC9B,CAAA;AAAA,IACH,GACO,CAAC,GAAGP,EAAS,QAAQ;AAAA,EAAA;AAEhC;"}
@@ -1,9 +1,9 @@
1
1
  import "./jsx-runtime-C5mzlN2N.js";
2
2
  import "lucide-react";
3
- import "./chunk-BAXFHI7N-CFrZQ7Oh.js";
4
- import "./hook-CyNmcNr8.js";
3
+ import "./chunk-BAXFHI7N-BVBOl9s0.js";
4
+ import "./hook-CldJlP5c.js";
5
5
  import "./ui/Button.js";
6
- import { U as a, o as e } from "./index-CCS3ifKs.js";
6
+ import { U as a, o as e } from "./index-BPqJMdth.js";
7
7
  export {
8
8
  a as UNTAGGED_PATH,
9
9
  e as openApiPlugin
@@ -1,4 +1,4 @@
1
- import { r as o } from "./chunk-BAXFHI7N-CFrZQ7Oh.js";
1
+ import { r as o } from "./chunk-BAXFHI7N-BVBOl9s0.js";
2
2
  const a = (r) => ({
3
3
  getRoutes: () => r.redirects.map(({ from: e, to: t }) => ({
4
4
  path: e,
@@ -1,5 +1,5 @@
1
- import { j as a } from "./jsx-runtime-C5mzlN2N.js";
2
- import { useRef as l, useState as f, useMemo as m, useEffect as c } from "react";
1
+ import { j as i } from "./jsx-runtime-C5mzlN2N.js";
2
+ import { useRef as l, useState as f, useMemo as m, useEffect as u } from "react";
3
3
  import { C as g } from "./ClientOnly-E7hGysn1.js";
4
4
  const h = {
5
5
  theme: {
@@ -20,43 +20,44 @@ const h = {
20
20
  }
21
21
  }
22
22
  }, k = {}, I = ({
23
- prefilledQuery: t,
23
+ prefilledQuery: r,
24
24
  isOpen: e,
25
- onClose: r,
26
- settings: u
25
+ onClose: n,
26
+ settings: p
27
27
  }) => {
28
- const i = l(null), o = l(null), [n, d] = f(
28
+ const o = l(null), c = l(null), [s, d] = f(
29
29
  typeof Inkeep < "u"
30
- ), s = m(
30
+ ), a = m(
31
31
  () => ({
32
32
  componentType: "CustomTrigger",
33
- targetElement: i.current,
33
+ targetElement: o.current,
34
34
  properties: {
35
35
  isOpen: e,
36
- onClose: r,
36
+ onClose: n,
37
37
  onOpen: void 0,
38
- baseSettings: { ...h, ...u },
38
+ baseSettings: { ...h, ...p },
39
39
  searchSettings: {
40
- prefilledQuery: t || void 0
40
+ prefilledQuery: r || void 0
41
41
  },
42
42
  aiChatSettings: k
43
43
  }
44
44
  }),
45
- [e, r, t, u, i]
45
+ [e, n, r, p, o]
46
46
  );
47
- return c(() => {
48
- if (n) return;
49
- const p = setInterval(() => {
50
- typeof Inkeep < "u" && (d(!0), clearInterval(p));
47
+ return u(() => {
48
+ if (s) return;
49
+ const t = setInterval(() => {
50
+ typeof Inkeep < "u" && (d(!0), clearInterval(t));
51
51
  }, 100);
52
- return () => clearInterval(p);
53
- }, [n]), c(() => {
54
- !n || o.current || (o.current = Inkeep().embed(s));
55
- }, [s, n]), c(() => {
56
- o.current?.render({ ...s, isOpen: e });
57
- }, [s, e]), /* @__PURE__ */ a.jsx("div", { ref: i });
58
- }, x = (t) => ({
59
- getHead: () => /* @__PURE__ */ a.jsx(
52
+ return () => clearInterval(t);
53
+ }, [s]), u(() => {
54
+ !s || c.current || (c.current = Inkeep().embed(a));
55
+ }, [a, s]), u(() => {
56
+ var t;
57
+ (t = c.current) == null || t.render({ ...a, isOpen: e });
58
+ }, [a, e]), /* @__PURE__ */ i.jsx("div", { ref: o });
59
+ }, x = (r) => ({
60
+ getHead: () => /* @__PURE__ */ i.jsx(
60
61
  "script",
61
62
  {
62
63
  type: "module",
@@ -66,8 +67,8 @@ const h = {
66
67
  ),
67
68
  renderSearch: ({
68
69
  isOpen: e,
69
- onClose: r
70
- }) => /* @__PURE__ */ a.jsx(g, { children: /* @__PURE__ */ a.jsx(I, { isOpen: e, onClose: r, settings: t }) })
70
+ onClose: n
71
+ }) => /* @__PURE__ */ i.jsx(g, { children: /* @__PURE__ */ i.jsx(I, { isOpen: e, onClose: n, settings: r }) })
71
72
  });
72
73
  export {
73
74
  x as inkeepSearchPlugin
@@ -1 +1 @@
1
- {"version":3,"file":"zudoku.plugin-search-inkeep.js","sources":["../src/lib/plugins/search-inkeep/inkeep.ts","../src/lib/plugins/search-inkeep/index.tsx"],"sourcesContent":["const baseSettings = {\n theme: {\n components: {\n AIChatPageWrapper: {\n defaultProps: {\n size: \"shrink-vertically\",\n variant: \"no-shadow\",\n },\n },\n SearchBarTrigger: {\n defaultProps: {\n size: \"expand\",\n variant: \"subtle\", // Choose from 'emphasized' or 'subtle'\n },\n },\n },\n },\n} as const;\n\nconst modalSettings = {};\n\nconst searchSettings = {};\n\nconst aiChatSettings = {};\n\nexport { aiChatSettings, baseSettings, modalSettings, searchSettings };\n","import { useEffect, useMemo, useRef, useState } from \"react\";\nimport { ClientOnly } from \"../../components/ClientOnly.js\";\nimport type { ZudokuPlugin } from \"../../core/plugins.js\";\nimport { aiChatSettings, baseSettings } from \"./inkeep.js\";\n\ninterface PluginInkeepBaseSettings {\n apiKey?: string;\n integrationId: string;\n organizationId: string;\n organizationDisplayName?: string;\n primaryBrandColor: string;\n}\n\ninterface InkeepEmbedConfig {\n componentType: string;\n targetElement: HTMLElement;\n properties: unknown;\n}\n\ninterface InkeepWidget {\n render: (config: InkeepEmbedConfig & { isOpen: boolean }) => void;\n}\n\ndeclare global {\n let Inkeep: () => {\n embed: (config: InkeepEmbedConfig) => InkeepWidget;\n };\n}\n\nconst InkeepSearch = ({\n prefilledQuery,\n isOpen,\n onClose,\n settings,\n}: {\n isOpen: boolean;\n onClose: () => void;\n prefilledQuery?: string | null;\n settings: PluginInkeepBaseSettings;\n}) => {\n const ref = useRef<HTMLDivElement>(null);\n const widgetRef = useRef<InkeepWidget | null>(null);\n const [isInkeepAvailable, setIsInkeepAvailable] = useState(\n typeof Inkeep !== \"undefined\",\n );\n\n const config: InkeepEmbedConfig = useMemo(\n () => ({\n componentType: \"CustomTrigger\",\n targetElement: ref.current!,\n properties: {\n isOpen,\n onClose,\n onOpen: undefined,\n baseSettings: { ...baseSettings, ...settings },\n searchSettings: {\n prefilledQuery: prefilledQuery || undefined,\n },\n aiChatSettings,\n },\n }),\n [isOpen, onClose, prefilledQuery, settings, ref],\n );\n\n useEffect(() => {\n if (isInkeepAvailable) return;\n\n const checkInkeep = setInterval(() => {\n if (typeof Inkeep !== \"undefined\") {\n setIsInkeepAvailable(true);\n clearInterval(checkInkeep);\n }\n }, 100);\n\n return () => clearInterval(checkInkeep);\n }, [isInkeepAvailable]);\n\n useEffect(() => {\n if (!isInkeepAvailable || widgetRef.current) return;\n\n widgetRef.current = Inkeep().embed(config);\n }, [config, isInkeepAvailable]);\n\n useEffect(() => {\n widgetRef.current?.render({ ...config, isOpen });\n }, [config, isOpen]);\n\n return <div ref={ref} />;\n};\n\nexport const inkeepSearchPlugin = (\n settings: PluginInkeepBaseSettings,\n): ZudokuPlugin => {\n return {\n getHead: () => {\n return (\n <script\n type=\"module\"\n src=\"https://unpkg.com/@inkeep/uikit-js@0.3.19/dist/embed.js\"\n defer\n />\n );\n },\n renderSearch: ({\n isOpen,\n onClose,\n }: {\n isOpen: boolean;\n onClose: () => void;\n }) => {\n return (\n <ClientOnly>\n <InkeepSearch isOpen={isOpen} onClose={onClose} settings={settings} />\n </ClientOnly>\n );\n },\n };\n};\n"],"names":["baseSettings","aiChatSettings","InkeepSearch","prefilledQuery","isOpen","onClose","settings","ref","useRef","widgetRef","isInkeepAvailable","setIsInkeepAvailable","useState","config","useMemo","useEffect","checkInkeep","jsx","inkeepSearchPlugin","ClientOnly"],"mappings":";;;AAAA,MAAMA,IAAe;AAAA,EACnB,OAAO;AAAA,IACL,YAAY;AAAA,MACV,mBAAmB;AAAA,QACjB,cAAc;AAAA,UACZ,MAAM;AAAA,UACN,SAAS;AAAA,QAAA;AAAA,MAEb;AAAA,MACA,kBAAkB;AAAA,QAChB,cAAc;AAAA,UACZ,MAAM;AAAA,UACN,SAAS;AAAA;AAAA,QAAA;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAEJ,GAMMC,IAAiB,CAAC,GCMlBC,IAAe,CAAC;AAAA,EACpB,gBAAAC;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AACF,MAKM;AACE,QAAAC,IAAMC,EAAuB,IAAI,GACjCC,IAAYD,EAA4B,IAAI,GAC5C,CAACE,GAAmBC,CAAoB,IAAIC;AAAA,IAChD,OAAO,SAAW;AAAA,EACpB,GAEMC,IAA4BC;AAAA,IAChC,OAAO;AAAA,MACL,eAAe;AAAA,MACf,eAAeP,EAAI;AAAA,MACnB,YAAY;AAAA,QACV,QAAAH;AAAA,QACA,SAAAC;AAAA,QACA,QAAQ;AAAA,QACR,cAAc,EAAE,GAAGL,GAAc,GAAGM,EAAS;AAAA,QAC7C,gBAAgB;AAAA,UACd,gBAAgBH,KAAkB;AAAA,QACpC;AAAA,QACA,gBAAAF;AAAA,MAAA;AAAA,IACF;AAAA,IAEF,CAACG,GAAQC,GAASF,GAAgBG,GAAUC,CAAG;AAAA,EACjD;AAEA,SAAAQ,EAAU,MAAM;AACd,QAAIL,EAAmB;AAEjB,UAAAM,IAAc,YAAY,MAAM;AAChC,MAAA,OAAO,SAAW,QACpBL,EAAqB,EAAI,GACzB,cAAcK,CAAW;AAAA,OAE1B,GAAG;AAEC,WAAA,MAAM,cAAcA,CAAW;AAAA,EAAA,GACrC,CAACN,CAAiB,CAAC,GAEtBK,EAAU,MAAM;AACV,IAAA,CAACL,KAAqBD,EAAU,YAEpCA,EAAU,UAAU,SAAS,MAAMI,CAAM;AAAA,EAAA,GACxC,CAACA,GAAQH,CAAiB,CAAC,GAE9BK,EAAU,MAAM;AACd,IAAAN,EAAU,SAAS,OAAO,EAAE,GAAGI,GAAQ,QAAAT,GAAQ;AAAA,EAAA,GAC9C,CAACS,GAAQT,CAAM,CAAC,GAEZa,gBAAAA,MAAC,SAAI,KAAAV,GAAU;AACxB,GAEaW,IAAqB,CAChCZ,OAEO;AAAA,EACL,SAAS,MAELW,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,KAAI;AAAA,MACJ,OAAK;AAAA,IAAA;AAAA,EACP;AAAA,EAGJ,cAAc,CAAC;AAAA,IACb,QAAAb;AAAA,IACA,SAAAC;AAAA,EAAA,4BAMGc,GACC,EAAA,UAAAF,gBAAAA,EAAA,IAACf,KAAa,QAAAE,GAAgB,SAAAC,GAAkB,UAAAC,GAAoB,EACtE,CAAA;AAGN;"}
1
+ {"version":3,"file":"zudoku.plugin-search-inkeep.js","sources":["../src/lib/plugins/search-inkeep/inkeep.ts","../src/lib/plugins/search-inkeep/index.tsx"],"sourcesContent":["const baseSettings = {\n theme: {\n components: {\n AIChatPageWrapper: {\n defaultProps: {\n size: \"shrink-vertically\",\n variant: \"no-shadow\",\n },\n },\n SearchBarTrigger: {\n defaultProps: {\n size: \"expand\",\n variant: \"subtle\", // Choose from 'emphasized' or 'subtle'\n },\n },\n },\n },\n} as const;\n\nconst modalSettings = {};\n\nconst searchSettings = {};\n\nconst aiChatSettings = {};\n\nexport { aiChatSettings, baseSettings, modalSettings, searchSettings };\n","import { useEffect, useMemo, useRef, useState } from \"react\";\nimport { ClientOnly } from \"../../components/ClientOnly.js\";\nimport type { ZudokuPlugin } from \"../../core/plugins.js\";\nimport { aiChatSettings, baseSettings } from \"./inkeep.js\";\n\ninterface PluginInkeepBaseSettings {\n apiKey?: string;\n integrationId: string;\n organizationId: string;\n organizationDisplayName?: string;\n primaryBrandColor: string;\n}\n\ninterface InkeepEmbedConfig {\n componentType: string;\n targetElement: HTMLElement;\n properties: unknown;\n}\n\ninterface InkeepWidget {\n render: (config: InkeepEmbedConfig & { isOpen: boolean }) => void;\n}\n\ndeclare global {\n let Inkeep: () => {\n embed: (config: InkeepEmbedConfig) => InkeepWidget;\n };\n}\n\nconst InkeepSearch = ({\n prefilledQuery,\n isOpen,\n onClose,\n settings,\n}: {\n isOpen: boolean;\n onClose: () => void;\n prefilledQuery?: string | null;\n settings: PluginInkeepBaseSettings;\n}) => {\n const ref = useRef<HTMLDivElement>(null);\n const widgetRef = useRef<InkeepWidget | null>(null);\n const [isInkeepAvailable, setIsInkeepAvailable] = useState(\n typeof Inkeep !== \"undefined\",\n );\n\n const config: InkeepEmbedConfig = useMemo(\n () => ({\n componentType: \"CustomTrigger\",\n targetElement: ref.current!,\n properties: {\n isOpen,\n onClose,\n onOpen: undefined,\n baseSettings: { ...baseSettings, ...settings },\n searchSettings: {\n prefilledQuery: prefilledQuery || undefined,\n },\n aiChatSettings,\n },\n }),\n [isOpen, onClose, prefilledQuery, settings, ref],\n );\n\n useEffect(() => {\n if (isInkeepAvailable) return;\n\n const checkInkeep = setInterval(() => {\n if (typeof Inkeep !== \"undefined\") {\n setIsInkeepAvailable(true);\n clearInterval(checkInkeep);\n }\n }, 100);\n\n return () => clearInterval(checkInkeep);\n }, [isInkeepAvailable]);\n\n useEffect(() => {\n if (!isInkeepAvailable || widgetRef.current) return;\n\n widgetRef.current = Inkeep().embed(config);\n }, [config, isInkeepAvailable]);\n\n useEffect(() => {\n widgetRef.current?.render({ ...config, isOpen });\n }, [config, isOpen]);\n\n return <div ref={ref} />;\n};\n\nexport const inkeepSearchPlugin = (\n settings: PluginInkeepBaseSettings,\n): ZudokuPlugin => {\n return {\n getHead: () => {\n return (\n <script\n type=\"module\"\n src=\"https://unpkg.com/@inkeep/uikit-js@0.3.19/dist/embed.js\"\n defer\n />\n );\n },\n renderSearch: ({\n isOpen,\n onClose,\n }: {\n isOpen: boolean;\n onClose: () => void;\n }) => {\n return (\n <ClientOnly>\n <InkeepSearch isOpen={isOpen} onClose={onClose} settings={settings} />\n </ClientOnly>\n );\n },\n };\n};\n"],"names":["baseSettings","aiChatSettings","InkeepSearch","prefilledQuery","isOpen","onClose","settings","ref","useRef","widgetRef","isInkeepAvailable","setIsInkeepAvailable","useState","config","useMemo","useEffect","checkInkeep","_a","jsx","inkeepSearchPlugin","ClientOnly"],"mappings":";;;AAAA,MAAMA,IAAe;AAAA,EACnB,OAAO;AAAA,IACL,YAAY;AAAA,MACV,mBAAmB;AAAA,QACjB,cAAc;AAAA,UACZ,MAAM;AAAA,UACN,SAAS;AAAA,QAAA;AAAA,MAEb;AAAA,MACA,kBAAkB;AAAA,QAChB,cAAc;AAAA,UACZ,MAAM;AAAA,UACN,SAAS;AAAA;AAAA,QAAA;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAEJ,GAMMC,IAAiB,CAAC,GCMlBC,IAAe,CAAC;AAAA,EACpB,gBAAAC;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AACF,MAKM;AACE,QAAAC,IAAMC,EAAuB,IAAI,GACjCC,IAAYD,EAA4B,IAAI,GAC5C,CAACE,GAAmBC,CAAoB,IAAIC;AAAA,IAChD,OAAO,SAAW;AAAA,EACpB,GAEMC,IAA4BC;AAAA,IAChC,OAAO;AAAA,MACL,eAAe;AAAA,MACf,eAAeP,EAAI;AAAA,MACnB,YAAY;AAAA,QACV,QAAAH;AAAA,QACA,SAAAC;AAAA,QACA,QAAQ;AAAA,QACR,cAAc,EAAE,GAAGL,GAAc,GAAGM,EAAS;AAAA,QAC7C,gBAAgB;AAAA,UACd,gBAAgBH,KAAkB;AAAA,QACpC;AAAA,QACA,gBAAAF;AAAA,MAAA;AAAA,IACF;AAAA,IAEF,CAACG,GAAQC,GAASF,GAAgBG,GAAUC,CAAG;AAAA,EACjD;AAEA,SAAAQ,EAAU,MAAM;AACd,QAAIL,EAAmB;AAEjB,UAAAM,IAAc,YAAY,MAAM;AAChC,MAAA,OAAO,SAAW,QACpBL,EAAqB,EAAI,GACzB,cAAcK,CAAW;AAAA,OAE1B,GAAG;AAEC,WAAA,MAAM,cAAcA,CAAW;AAAA,EAAA,GACrC,CAACN,CAAiB,CAAC,GAEtBK,EAAU,MAAM;AACV,IAAA,CAACL,KAAqBD,EAAU,YAEpCA,EAAU,UAAU,SAAS,MAAMI,CAAM;AAAA,EAAA,GACxC,CAACA,GAAQH,CAAiB,CAAC,GAE9BK,EAAU,MAAM;;AACd,KAAAE,IAAAR,EAAU,YAAV,QAAAQ,EAAmB,OAAO,EAAE,GAAGJ,GAAQ,QAAAT;EAAQ,GAC9C,CAACS,GAAQT,CAAM,CAAC,GAEZc,gBAAAA,MAAC,SAAI,KAAAX,GAAU;AACxB,GAEaY,IAAqB,CAChCb,OAEO;AAAA,EACL,SAAS,MAELY,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,KAAI;AAAA,MACJ,OAAK;AAAA,IAAA;AAAA,EACP;AAAA,EAGJ,cAAc,CAAC;AAAA,IACb,QAAAd;AAAA,IACA,SAAAC;AAAA,EAAA,4BAMGe,GACC,EAAA,UAAAF,gBAAAA,EAAA,IAAChB,KAAa,QAAAE,GAAgB,SAAAC,GAAkB,UAAAC,GAAoB,EACtE,CAAA;AAGN;"}