zudoku 0.45.0 → 0.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (533) hide show
  1. package/cli.js +8 -2
  2. package/dist/app/main.js +4 -23
  3. package/dist/app/main.js.map +1 -1
  4. package/dist/config/config.d.ts +2 -2
  5. package/dist/config/file-exists.d.ts +1 -0
  6. package/dist/config/file-exists.js +5 -0
  7. package/dist/config/file-exists.js.map +1 -0
  8. package/dist/config/loader.d.ts +19 -4
  9. package/dist/config/loader.js +94 -14
  10. package/dist/config/loader.js.map +1 -1
  11. package/dist/config/validators/validate.d.ts +3536 -743
  12. package/dist/config/validators/validate.js +396 -11
  13. package/dist/config/validators/validate.js.map +1 -1
  14. package/dist/index.d.ts +4 -2
  15. package/dist/index.js +2 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/lib/authentication/AuthenticationPlugin.d.ts +7 -2
  18. package/dist/lib/authentication/AuthenticationPlugin.js +13 -1
  19. package/dist/lib/authentication/AuthenticationPlugin.js.map +1 -1
  20. package/dist/lib/authentication/authentication.d.ts +2 -4
  21. package/dist/lib/authentication/providers/auth0.js.map +1 -1
  22. package/dist/lib/authentication/providers/clerk.js +62 -43
  23. package/dist/lib/authentication/providers/clerk.js.map +1 -1
  24. package/dist/lib/authentication/providers/openid.d.ts +7 -12
  25. package/dist/lib/authentication/providers/openid.js +11 -22
  26. package/dist/lib/authentication/providers/openid.js.map +1 -1
  27. package/dist/lib/authentication/providers/supabase.js +3 -5
  28. package/dist/lib/authentication/providers/supabase.js.map +1 -1
  29. package/dist/lib/components/Autocomplete.js +1 -1
  30. package/dist/lib/components/Banner.js +1 -1
  31. package/dist/lib/components/Banner.js.map +1 -1
  32. package/dist/lib/components/ErrorPage.js +1 -1
  33. package/dist/lib/components/Footer.js +5 -5
  34. package/dist/lib/components/Footer.js.map +1 -1
  35. package/dist/lib/components/Header.js +16 -8
  36. package/dist/lib/components/Header.js.map +1 -1
  37. package/dist/lib/components/Heading.js +6 -1
  38. package/dist/lib/components/Heading.js.map +1 -1
  39. package/dist/lib/components/InlineCode.js +1 -1
  40. package/dist/lib/components/InlineCode.js.map +1 -1
  41. package/dist/lib/components/Layout.js +2 -2
  42. package/dist/lib/components/Layout.js.map +1 -1
  43. package/dist/lib/components/Main.js +2 -2
  44. package/dist/lib/components/Main.js.map +1 -1
  45. package/dist/lib/components/Markdown.js +8 -3
  46. package/dist/lib/components/Markdown.js.map +1 -1
  47. package/dist/lib/components/MobileTopNavigation.js +3 -2
  48. package/dist/lib/components/MobileTopNavigation.js.map +1 -1
  49. package/dist/lib/components/NotFoundPage.js +1 -1
  50. package/dist/lib/components/Pagination.js +1 -1
  51. package/dist/lib/components/Pagination.js.map +1 -1
  52. package/dist/lib/components/Search.js +1 -1
  53. package/dist/lib/components/Search.js.map +1 -1
  54. package/dist/lib/components/Slot.d.ts +17 -0
  55. package/dist/lib/components/Slot.js +24 -0
  56. package/dist/lib/components/Slot.js.map +1 -0
  57. package/dist/lib/components/Slot.test.js +168 -0
  58. package/dist/lib/components/Slot.test.js.map +1 -0
  59. package/dist/lib/components/TopNavigation.d.ts +1 -4
  60. package/dist/lib/components/TopNavigation.js +3 -11
  61. package/dist/lib/components/TopNavigation.js.map +1 -1
  62. package/dist/lib/components/Zudoku.js +2 -2
  63. package/dist/lib/components/Zudoku.js.map +1 -1
  64. package/dist/lib/components/context/SlotProvider.d.ts +26 -0
  65. package/dist/lib/components/context/SlotProvider.js +83 -0
  66. package/dist/lib/components/context/SlotProvider.js.map +1 -0
  67. package/dist/lib/components/context/ZudokuContext.d.ts +1 -1
  68. package/dist/lib/components/context/ZudokuProvider.js +2 -1
  69. package/dist/lib/components/context/ZudokuProvider.js.map +1 -1
  70. package/dist/lib/components/index.d.ts +29 -23
  71. package/dist/lib/components/index.js +13 -7
  72. package/dist/lib/components/index.js.map +1 -1
  73. package/dist/lib/components/navigation/PoweredByZudoku.js +1 -1
  74. package/dist/lib/components/navigation/Sidebar.js +3 -3
  75. package/dist/lib/components/navigation/Sidebar.js.map +1 -1
  76. package/dist/lib/components/navigation/SidebarBadge.js +1 -1
  77. package/dist/lib/components/navigation/SidebarBadge.js.map +1 -1
  78. package/dist/lib/components/navigation/SidebarCategory.js +3 -3
  79. package/dist/lib/components/navigation/SidebarCategory.js.map +1 -1
  80. package/dist/lib/components/navigation/SidebarItem.d.ts +0 -5
  81. package/dist/lib/components/navigation/SidebarItem.js +19 -23
  82. package/dist/lib/components/navigation/SidebarItem.js.map +1 -1
  83. package/dist/lib/components/navigation/SidebarWrapper.js +1 -1
  84. package/dist/lib/components/navigation/Toc.js +1 -1
  85. package/dist/lib/components/navigation/Toc.js.map +1 -1
  86. package/dist/lib/components/navigation/utils.d.ts +8 -0
  87. package/dist/lib/components/navigation/utils.js +34 -6
  88. package/dist/lib/components/navigation/utils.js.map +1 -1
  89. package/dist/lib/core/ZudokuContext.d.ts +12 -8
  90. package/dist/lib/core/ZudokuContext.js +6 -5
  91. package/dist/lib/core/ZudokuContext.js.map +1 -1
  92. package/dist/lib/core/plugins.d.ts +5 -2
  93. package/dist/lib/core/plugins.js +1 -0
  94. package/dist/lib/core/plugins.js.map +1 -1
  95. package/dist/lib/errors/ErrorAlert.js +1 -1
  96. package/dist/lib/hooks/index.d.ts +19 -0
  97. package/dist/lib/hooks/index.js +11 -0
  98. package/dist/lib/hooks/index.js.map +1 -1
  99. package/dist/lib/plugins/api-catalog/Catalog.js +1 -1
  100. package/dist/lib/plugins/api-keys/CreateApiKey.d.ts +3 -2
  101. package/dist/lib/plugins/api-keys/CreateApiKey.js +8 -4
  102. package/dist/lib/plugins/api-keys/CreateApiKey.js.map +1 -1
  103. package/dist/lib/plugins/api-keys/SettingsApiKeys.d.ts +1 -1
  104. package/dist/lib/plugins/api-keys/SettingsApiKeys.js +54 -23
  105. package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
  106. package/dist/lib/plugins/api-keys/index.d.ts +18 -9
  107. package/dist/lib/plugins/api-keys/index.js +49 -34
  108. package/dist/lib/plugins/api-keys/index.js.map +1 -1
  109. package/dist/lib/plugins/custom-pages/index.d.ts +1 -1
  110. package/dist/lib/plugins/markdown/MdxPage.js +1 -1
  111. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  112. package/dist/lib/plugins/markdown/index.d.ts +1 -1
  113. package/dist/lib/plugins/markdown/resolver.d.ts +1 -1
  114. package/dist/lib/plugins/markdown/resolver.js.map +1 -1
  115. package/dist/lib/plugins/openapi/CollapsibleCode.js +1 -1
  116. package/dist/lib/plugins/openapi/ColorizedParam.js +1 -1
  117. package/dist/lib/plugins/openapi/ColorizedParam.js.map +1 -1
  118. package/dist/lib/plugins/openapi/OperationList.js +1 -1
  119. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  120. package/dist/lib/plugins/openapi/OperationListItem.js +2 -3
  121. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  122. package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js +5 -1
  123. package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js.map +1 -1
  124. package/dist/lib/plugins/openapi/ResponsesSidecarBox.d.ts +2 -4
  125. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +1 -4
  126. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
  127. package/dist/lib/plugins/openapi/SchemaList.js +6 -5
  128. package/dist/lib/plugins/openapi/SchemaList.js.map +1 -1
  129. package/dist/lib/plugins/openapi/Sidecar.js +1 -1
  130. package/dist/lib/plugins/openapi/SidecarExamples.js +8 -0
  131. package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -1
  132. package/dist/lib/plugins/openapi/components/EnumValues.js +1 -1
  133. package/dist/lib/plugins/openapi/components/EnumValues.js.map +1 -1
  134. package/dist/lib/plugins/openapi/components/ResponseContent.d.ts +12 -0
  135. package/dist/lib/plugins/openapi/components/ResponseContent.js +21 -0
  136. package/dist/lib/plugins/openapi/components/ResponseContent.js.map +1 -0
  137. package/dist/lib/plugins/openapi/playground/Playground.js +2 -0
  138. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  139. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +1 -1
  140. package/dist/lib/plugins/openapi/playground/SubmitButton.js +7 -10
  141. package/dist/lib/plugins/openapi/playground/SubmitButton.js.map +1 -1
  142. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js +2 -2
  143. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js.map +1 -1
  144. package/dist/lib/plugins/openapi/schema/SchemaView.d.ts +2 -1
  145. package/dist/lib/plugins/openapi/schema/SchemaView.js +3 -3
  146. package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
  147. package/dist/lib/plugins/redirect/index.d.ts +1 -1
  148. package/dist/lib/ui/Badge.d.ts +2 -2
  149. package/dist/lib/ui/Badge.js +1 -1
  150. package/dist/lib/ui/Badge.js.map +1 -1
  151. package/dist/lib/ui/Button.d.ts +2 -2
  152. package/dist/lib/ui/Button.js +8 -6
  153. package/dist/lib/ui/Button.js.map +1 -1
  154. package/dist/lib/ui/Callout.js +1 -1
  155. package/dist/lib/ui/Callout.js.map +1 -1
  156. package/dist/lib/ui/Card.js +1 -1
  157. package/dist/lib/ui/Checkbox.js +1 -1
  158. package/dist/lib/ui/Checkbox.js.map +1 -1
  159. package/dist/lib/ui/Command.d.ts +2 -2
  160. package/dist/lib/ui/Command.js +3 -3
  161. package/dist/lib/ui/Command.js.map +1 -1
  162. package/dist/lib/ui/Dialog.js +1 -1
  163. package/dist/lib/ui/Dialog.js.map +1 -1
  164. package/dist/lib/ui/DropdownMenu.js +4 -4
  165. package/dist/lib/ui/DropdownMenu.js.map +1 -1
  166. package/dist/lib/ui/HoverCard.js +1 -1
  167. package/dist/lib/ui/HoverCard.js.map +1 -1
  168. package/dist/lib/ui/Input.js +1 -1
  169. package/dist/lib/ui/Input.js.map +1 -1
  170. package/dist/lib/ui/Popover.js +1 -1
  171. package/dist/lib/ui/Popover.js.map +1 -1
  172. package/dist/lib/ui/RadioGroup.js +1 -1
  173. package/dist/lib/ui/RadioGroup.js.map +1 -1
  174. package/dist/lib/ui/Select.js +2 -2
  175. package/dist/lib/ui/Select.js.map +1 -1
  176. package/dist/lib/ui/Slider.js +1 -1
  177. package/dist/lib/ui/Slider.js.map +1 -1
  178. package/dist/lib/ui/Switch.js +1 -1
  179. package/dist/lib/ui/Switch.js.map +1 -1
  180. package/dist/lib/ui/Tabs.js +2 -2
  181. package/dist/lib/ui/Tabs.js.map +1 -1
  182. package/dist/lib/ui/Textarea.js +1 -1
  183. package/dist/lib/ui/Textarea.js.map +1 -1
  184. package/dist/lib/ui/Toggle.js +1 -1
  185. package/dist/lib/ui/Toggle.js.map +1 -1
  186. package/dist/lib/ui/Tooltip.d.ts +2 -1
  187. package/dist/lib/ui/Tooltip.js +2 -1
  188. package/dist/lib/ui/Tooltip.js.map +1 -1
  189. package/dist/lib/util/useExposedProps.d.ts +8 -1
  190. package/dist/lib/util/useExposedProps.js.map +1 -1
  191. package/dist/vite/api/SchemaManager.js +16 -1
  192. package/dist/vite/api/SchemaManager.js.map +1 -1
  193. package/dist/vite/build.js +44 -6
  194. package/dist/vite/build.js.map +1 -1
  195. package/dist/vite/config.d.ts +2 -9
  196. package/dist/vite/config.js +6 -95
  197. package/dist/vite/config.js.map +1 -1
  198. package/dist/vite/config.test.js +1 -1
  199. package/dist/vite/config.test.js.map +1 -1
  200. package/dist/vite/css/plugin.d.ts +1 -2
  201. package/dist/vite/css/plugin.js +3 -2
  202. package/dist/vite/css/plugin.js.map +1 -1
  203. package/dist/vite/dev-server.d.ts +0 -1
  204. package/dist/vite/dev-server.js +10 -12
  205. package/dist/vite/dev-server.js.map +1 -1
  206. package/dist/vite/html.d.ts +2 -2
  207. package/dist/vite/html.js +5 -2
  208. package/dist/vite/html.js.map +1 -1
  209. package/dist/vite/plugin-api-keys.d.ts +1 -2
  210. package/dist/vite/plugin-api-keys.js +9 -3
  211. package/dist/vite/plugin-api-keys.js.map +1 -1
  212. package/dist/vite/plugin-api.d.ts +1 -2
  213. package/dist/vite/plugin-api.js +5 -4
  214. package/dist/vite/plugin-api.js.map +1 -1
  215. package/dist/vite/plugin-auth.d.ts +1 -2
  216. package/dist/vite/plugin-auth.js +3 -2
  217. package/dist/vite/plugin-auth.js.map +1 -1
  218. package/dist/vite/plugin-component.d.ts +1 -2
  219. package/dist/vite/plugin-component.js +3 -2
  220. package/dist/vite/plugin-component.js.map +1 -1
  221. package/dist/vite/plugin-config-reload.d.ts +1 -2
  222. package/dist/vite/plugin-config-reload.js +21 -22
  223. package/dist/vite/plugin-config-reload.js.map +1 -1
  224. package/dist/vite/plugin-config.d.ts +1 -2
  225. package/dist/vite/plugin-config.js +4 -3
  226. package/dist/vite/plugin-config.js.map +1 -1
  227. package/dist/vite/plugin-configure-tailwind.d.ts +2 -0
  228. package/dist/vite/plugin-configure-tailwind.js +38 -0
  229. package/dist/vite/plugin-configure-tailwind.js.map +1 -0
  230. package/dist/vite/plugin-custom-pages.d.ts +1 -2
  231. package/dist/vite/plugin-custom-pages.js +3 -2
  232. package/dist/vite/plugin-custom-pages.js.map +1 -1
  233. package/dist/vite/plugin-docs.d.ts +1 -2
  234. package/dist/vite/plugin-docs.js +4 -3
  235. package/dist/vite/plugin-docs.js.map +1 -1
  236. package/dist/vite/plugin-frontmatter.d.ts +1 -2
  237. package/dist/vite/plugin-frontmatter.js +3 -2
  238. package/dist/vite/plugin-frontmatter.js.map +1 -1
  239. package/dist/vite/plugin-mdx.d.ts +1 -2
  240. package/dist/vite/plugin-mdx.js +3 -2
  241. package/dist/vite/plugin-mdx.js.map +1 -1
  242. package/dist/vite/plugin-redirect.d.ts +1 -2
  243. package/dist/vite/plugin-redirect.js +3 -2
  244. package/dist/vite/plugin-redirect.js.map +1 -1
  245. package/dist/vite/plugin-search.d.ts +1 -2
  246. package/dist/vite/plugin-search.js +3 -2
  247. package/dist/vite/plugin-search.js.map +1 -1
  248. package/dist/vite/plugin-shiki-register.d.ts +1 -2
  249. package/dist/vite/plugin-shiki-register.js +2 -1
  250. package/dist/vite/plugin-shiki-register.js.map +1 -1
  251. package/dist/vite/plugin-sidebar.d.ts +1 -2
  252. package/dist/vite/plugin-sidebar.js +3 -2
  253. package/dist/vite/plugin-sidebar.js.map +1 -1
  254. package/dist/vite/plugin-theme-css.d.ts +1 -2
  255. package/dist/vite/plugin-theme-css.js +20 -60
  256. package/dist/vite/plugin-theme-css.js.map +1 -1
  257. package/dist/vite/plugin.d.ts +1 -2
  258. package/dist/vite/plugin.js +22 -21
  259. package/dist/vite/plugin.js.map +1 -1
  260. package/dist/vite/sitemap.d.ts +1 -1
  261. package/dist/zuplo/with-zuplo.d.ts +2 -2
  262. package/dist/zuplo/with-zuplo.js.map +1 -1
  263. package/lib/Button-BE9IVkWV.js +51 -0
  264. package/lib/Button-BE9IVkWV.js.map +1 -0
  265. package/lib/{Callout-XadUe37J.js → Callout-BkgOUkoZ.js} +9 -8
  266. package/lib/Callout-BkgOUkoZ.js.map +1 -0
  267. package/lib/{Card-BlCYNw5W.js → Card-DPhGbYUM.js} +3 -3
  268. package/lib/{Card-BlCYNw5W.js.map → Card-DPhGbYUM.js.map} +1 -1
  269. package/lib/{CategoryHeading-DZi-Szor.js → CategoryHeading-Cu2RwgjC.js} +2 -2
  270. package/lib/{CategoryHeading-DZi-Szor.js.map → CategoryHeading-Cu2RwgjC.js.map} +1 -1
  271. package/lib/{Dialog-CNf2oWXG.js → Dialog-Du6WMcIA.js} +8 -7
  272. package/lib/Dialog-Du6WMcIA.js.map +1 -0
  273. package/lib/{Drawer-BPBxzel2.js → Drawer-BzkOKwgC.js} +2 -2
  274. package/lib/{Drawer-BPBxzel2.js.map → Drawer-BzkOKwgC.js.map} +1 -1
  275. package/lib/Markdown-BRAyzyUJ.js +15348 -0
  276. package/lib/Markdown-BRAyzyUJ.js.map +1 -0
  277. package/lib/{MdxPage-Sjv6y3cA.js → MdxPage-B3v1BSKr.js} +11 -11
  278. package/lib/MdxPage-B3v1BSKr.js.map +1 -0
  279. package/lib/{OasProvider-CzRXrs_-.js → OasProvider-5jrFuhVk.js} +3 -3
  280. package/lib/{OasProvider-CzRXrs_-.js.map → OasProvider-5jrFuhVk.js.map} +1 -1
  281. package/lib/{OperationList-DefCF3ZI.js → OperationList-BmoMLQPO.js} +1039 -1005
  282. package/lib/OperationList-BmoMLQPO.js.map +1 -0
  283. package/lib/Pagination-Cr0fWZS3.js +36 -0
  284. package/lib/Pagination-Cr0fWZS3.js.map +1 -0
  285. package/lib/RouteGuard-PrSVLbSr.js +55 -0
  286. package/lib/RouteGuard-PrSVLbSr.js.map +1 -0
  287. package/lib/{SchemaList-zHQ2Ekyw.js → SchemaList-B4riYLoP.js} +61 -47
  288. package/lib/SchemaList-B4riYLoP.js.map +1 -0
  289. package/lib/{SchemaView-CqF4oMU-.js → SchemaView-CPZ6RgsF.js} +100 -95
  290. package/lib/SchemaView-CPZ6RgsF.js.map +1 -0
  291. package/lib/{AuthenticationPlugin-UNaAuxNo.js → SignUp-CWaiH0tY.js} +23 -50
  292. package/lib/SignUp-CWaiH0tY.js.map +1 -0
  293. package/lib/Slot-Bo6K4tnb.js +160 -0
  294. package/lib/Slot-Bo6K4tnb.js.map +1 -0
  295. package/lib/{SyntaxHighlight-UxOF1xNb.js → SyntaxHighlight-DedRjJNr.js} +233 -212
  296. package/lib/{SyntaxHighlight-UxOF1xNb.js.map → SyntaxHighlight-DedRjJNr.js.map} +1 -1
  297. package/lib/{Toc-Ax54Pw8S.js → Toc-lL3fzNkl.js} +5 -5
  298. package/lib/Toc-lL3fzNkl.js.map +1 -0
  299. package/lib/{circular-B_TODp4H.js → circular-oB4auIIg.js} +2 -2
  300. package/lib/{circular-B_TODp4H.js.map → circular-oB4auIIg.js.map} +1 -1
  301. package/lib/clsx-OuTLNxxd.js +17 -0
  302. package/lib/clsx-OuTLNxxd.js.map +1 -0
  303. package/lib/{cn-CwJPJKOE.js → cn-wvCW-ho6.js} +1015 -562
  304. package/lib/cn-wvCW-ho6.js.map +1 -0
  305. package/lib/{createServer-CXd8q7nF.js → createServer-DCB82j2t.js} +81 -81
  306. package/lib/{createServer-CXd8q7nF.js.map → createServer-DCB82j2t.js.map} +1 -1
  307. package/lib/{hook-BwOB_iZo.js → hook-DawSLaZr.js} +323 -300
  308. package/lib/hook-DawSLaZr.js.map +1 -0
  309. package/lib/{index-BY8J3gEh.js → index-BXYvD5-7.js} +868 -758
  310. package/lib/index-BXYvD5-7.js.map +1 -0
  311. package/lib/{index-Z13x6tPX.js → index-DI5SPFK9.js} +2 -2
  312. package/lib/{index-Z13x6tPX.js.map → index-DI5SPFK9.js.map} +1 -1
  313. package/lib/index-QzXzw_ra.js +24 -0
  314. package/lib/index-QzXzw_ra.js.map +1 -0
  315. package/lib/{RouteGuard-lkdEJoDV.js → index.esm-BFcSKCe-.js} +232 -281
  316. package/lib/index.esm-BFcSKCe-.js.map +1 -0
  317. package/lib/{index.esm-D2ZUREQN.js → index.esm-DSfX_eMP.js} +3 -3
  318. package/lib/{index.esm-D2ZUREQN.js.map → index.esm-DSfX_eMP.js.map} +1 -1
  319. package/lib/joinPath-B7kNnUX4.js +8 -0
  320. package/lib/joinPath-B7kNnUX4.js.map +1 -0
  321. package/lib/{mutation-CL2MCRQL.js → mutation-oxMvODNQ.js} +2 -2
  322. package/lib/{mutation-CL2MCRQL.js.map → mutation-oxMvODNQ.js.map} +1 -1
  323. package/lib/ui/Accordion.js +1 -1
  324. package/lib/ui/ActionButton.js +2 -2
  325. package/lib/ui/Alert.js +2 -2
  326. package/lib/ui/AlertDialog.js +1 -1
  327. package/lib/ui/Badge.js +3 -3
  328. package/lib/ui/Badge.js.map +1 -1
  329. package/lib/ui/Breadcrumb.js +1 -1
  330. package/lib/ui/Button.js +20 -18
  331. package/lib/ui/Button.js.map +1 -1
  332. package/lib/ui/Callout.js +6 -5
  333. package/lib/ui/Callout.js.map +1 -1
  334. package/lib/ui/Card.js +8 -8
  335. package/lib/ui/Card.js.map +1 -1
  336. package/lib/ui/Carousel.js +1 -1
  337. package/lib/ui/Checkbox.js +7 -7
  338. package/lib/ui/Checkbox.js.map +1 -1
  339. package/lib/ui/CodeBlock.js +1 -1
  340. package/lib/ui/Command.js +43 -43
  341. package/lib/ui/Command.js.map +1 -1
  342. package/lib/ui/Dialog.js +2 -2
  343. package/lib/ui/Dialog.js.map +1 -1
  344. package/lib/ui/Drawer.js +2 -2
  345. package/lib/ui/DropdownMenu.js +34 -34
  346. package/lib/ui/DropdownMenu.js.map +1 -1
  347. package/lib/ui/Form.js +2 -2
  348. package/lib/ui/HoverCard.js +5 -5
  349. package/lib/ui/HoverCard.js.map +1 -1
  350. package/lib/ui/Input.js +2 -2
  351. package/lib/ui/Input.js.map +1 -1
  352. package/lib/ui/Label.js +2 -2
  353. package/lib/ui/Pagination.js +1 -1
  354. package/lib/ui/Popover.js +2 -2
  355. package/lib/ui/Popover.js.map +1 -1
  356. package/lib/ui/Progress.js +1 -1
  357. package/lib/ui/RadioGroup.js +10 -10
  358. package/lib/ui/RadioGroup.js.map +1 -1
  359. package/lib/ui/ScrollArea.js +1 -1
  360. package/lib/ui/Select.js +31 -31
  361. package/lib/ui/Select.js.map +1 -1
  362. package/lib/ui/Skeleton.js +1 -1
  363. package/lib/ui/Slider.js +5 -5
  364. package/lib/ui/Slider.js.map +1 -1
  365. package/lib/ui/Switch.js +5 -5
  366. package/lib/ui/Switch.js.map +1 -1
  367. package/lib/ui/SyntaxHighlight.js +2 -2
  368. package/lib/ui/Tabs.js +16 -16
  369. package/lib/ui/Tabs.js.map +1 -1
  370. package/lib/ui/Textarea.js +5 -5
  371. package/lib/ui/Textarea.js.map +1 -1
  372. package/lib/ui/Toggle.js +7 -7
  373. package/lib/ui/Toggle.js.map +1 -1
  374. package/lib/ui/ToggleGroup.js +1 -1
  375. package/lib/ui/Tooltip.js +15 -8
  376. package/lib/ui/Tooltip.js.map +1 -1
  377. package/lib/ui/util.js +1 -1
  378. package/lib/useExposedProps-DG8J6ewJ.js.map +1 -1
  379. package/lib/useMutation-C_j3dA_L.js +97 -0
  380. package/lib/useMutation-C_j3dA_L.js.map +1 -0
  381. package/lib/zudoku.auth-auth0.js +1 -1
  382. package/lib/zudoku.auth-auth0.js.map +1 -1
  383. package/lib/zudoku.auth-clerk.js +99 -82
  384. package/lib/zudoku.auth-clerk.js.map +1 -1
  385. package/lib/zudoku.auth-openid.js +246 -216
  386. package/lib/zudoku.auth-openid.js.map +1 -1
  387. package/lib/zudoku.components.js +4957 -33
  388. package/lib/zudoku.components.js.map +1 -1
  389. package/lib/zudoku.hooks.js +21 -12
  390. package/lib/zudoku.hooks.js.map +1 -1
  391. package/lib/zudoku.plugin-api-catalog.js +8 -8
  392. package/lib/zudoku.plugin-api-catalog.js.map +1 -1
  393. package/lib/zudoku.plugin-api-keys.js +5022 -214
  394. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  395. package/lib/zudoku.plugin-custom-pages.js +2 -2
  396. package/lib/zudoku.plugin-custom-pages.js.map +1 -1
  397. package/lib/zudoku.plugin-markdown.js +1 -1
  398. package/lib/zudoku.plugin-markdown.js.map +1 -1
  399. package/lib/zudoku.plugin-openapi.js +3 -3
  400. package/lib/zudoku.plugin-redirect.js.map +1 -1
  401. package/lib/zudoku.plugin-search-pagefind.js +5 -5
  402. package/lib/zudoku.plugins.js +7 -6
  403. package/lib/zudoku.plugins.js.map +1 -1
  404. package/package.json +15 -16
  405. package/src/app/defaultTheme.css +54 -0
  406. package/src/app/font.geist.css +73 -0
  407. package/src/app/main.css +113 -156
  408. package/src/app/main.tsx +4 -28
  409. package/src/lib/authentication/AuthenticationPlugin.tsx +18 -4
  410. package/src/lib/authentication/authentication.ts +2 -5
  411. package/src/lib/authentication/providers/auth0.tsx +8 -2
  412. package/src/lib/authentication/providers/clerk.tsx +72 -48
  413. package/src/lib/authentication/providers/openid.tsx +19 -26
  414. package/src/lib/authentication/providers/supabase.tsx +7 -7
  415. package/src/lib/components/Autocomplete.tsx +1 -1
  416. package/src/lib/components/Banner.tsx +1 -1
  417. package/src/lib/components/ErrorPage.tsx +1 -1
  418. package/src/lib/components/Footer.tsx +7 -10
  419. package/src/lib/components/Header.tsx +29 -29
  420. package/src/lib/components/Heading.tsx +9 -5
  421. package/src/lib/components/InlineCode.tsx +1 -1
  422. package/src/lib/components/Layout.tsx +3 -3
  423. package/src/lib/components/Main.tsx +4 -4
  424. package/src/lib/components/Markdown.tsx +14 -4
  425. package/src/lib/components/MobileTopNavigation.tsx +3 -2
  426. package/src/lib/components/NotFoundPage.tsx +1 -1
  427. package/src/lib/components/Pagination.tsx +3 -9
  428. package/src/lib/components/Search.tsx +1 -1
  429. package/src/lib/components/Slot.test.tsx +465 -0
  430. package/src/lib/components/Slot.tsx +64 -0
  431. package/src/lib/components/TopNavigation.tsx +5 -17
  432. package/src/lib/components/Zudoku.tsx +9 -9
  433. package/src/lib/components/context/SlotProvider.tsx +149 -0
  434. package/src/lib/components/context/ZudokuProvider.tsx +2 -1
  435. package/src/lib/components/index.ts +14 -10
  436. package/src/lib/components/navigation/PoweredByZudoku.tsx +1 -1
  437. package/src/lib/components/navigation/Sidebar.tsx +3 -3
  438. package/src/lib/components/navigation/SidebarBadge.tsx +1 -1
  439. package/src/lib/components/navigation/SidebarCategory.tsx +3 -3
  440. package/src/lib/components/navigation/SidebarItem.tsx +57 -30
  441. package/src/lib/components/navigation/SidebarWrapper.tsx +2 -2
  442. package/src/lib/components/navigation/Toc.tsx +2 -2
  443. package/src/lib/components/navigation/utils.ts +42 -6
  444. package/src/lib/core/ZudokuContext.ts +24 -12
  445. package/src/lib/core/plugins.ts +10 -2
  446. package/src/lib/errors/ErrorAlert.tsx +1 -1
  447. package/src/lib/hooks/index.ts +11 -0
  448. package/src/lib/plugins/api-catalog/Catalog.tsx +1 -1
  449. package/src/lib/plugins/api-keys/CreateApiKey.tsx +54 -42
  450. package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +292 -112
  451. package/src/lib/plugins/api-keys/index.tsx +101 -55
  452. package/src/lib/plugins/custom-pages/index.tsx +1 -1
  453. package/src/lib/plugins/markdown/MdxPage.tsx +2 -2
  454. package/src/lib/plugins/markdown/index.tsx +2 -2
  455. package/src/lib/plugins/markdown/resolver.ts +4 -2
  456. package/src/lib/plugins/openapi/CollapsibleCode.tsx +1 -1
  457. package/src/lib/plugins/openapi/ColorizedParam.tsx +2 -2
  458. package/src/lib/plugins/openapi/OperationList.tsx +2 -2
  459. package/src/lib/plugins/openapi/OperationListItem.tsx +6 -34
  460. package/src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx +7 -1
  461. package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +5 -16
  462. package/src/lib/plugins/openapi/SchemaList.tsx +20 -8
  463. package/src/lib/plugins/openapi/Sidecar.tsx +1 -1
  464. package/src/lib/plugins/openapi/SidecarExamples.tsx +6 -0
  465. package/src/lib/plugins/openapi/components/EnumValues.tsx +1 -1
  466. package/src/lib/plugins/openapi/components/ResponseContent.tsx +104 -0
  467. package/src/lib/plugins/openapi/playground/Playground.tsx +7 -1
  468. package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +1 -1
  469. package/src/lib/plugins/openapi/playground/SubmitButton.tsx +24 -29
  470. package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +2 -2
  471. package/src/lib/plugins/openapi/schema/SchemaView.tsx +7 -3
  472. package/src/lib/plugins/redirect/index.tsx +1 -1
  473. package/src/lib/ui/Badge.tsx +2 -2
  474. package/src/lib/ui/Button.tsx +9 -6
  475. package/src/lib/ui/Callout.tsx +1 -0
  476. package/src/lib/ui/Card.tsx +1 -1
  477. package/src/lib/ui/Checkbox.tsx +1 -1
  478. package/src/lib/ui/Command.tsx +5 -5
  479. package/src/lib/ui/Dialog.tsx +1 -1
  480. package/src/lib/ui/DropdownMenu.tsx +4 -4
  481. package/src/lib/ui/HoverCard.tsx +1 -1
  482. package/src/lib/ui/Input.tsx +1 -1
  483. package/src/lib/ui/Popover.tsx +1 -1
  484. package/src/lib/ui/RadioGroup.tsx +1 -1
  485. package/src/lib/ui/Select.tsx +3 -3
  486. package/src/lib/ui/Slider.tsx +1 -1
  487. package/src/lib/ui/Switch.tsx +1 -1
  488. package/src/lib/ui/Tabs.tsx +2 -2
  489. package/src/lib/ui/Textarea.tsx +1 -1
  490. package/src/lib/ui/Toggle.tsx +1 -1
  491. package/src/lib/ui/Tooltip.tsx +16 -1
  492. package/src/lib/util/useExposedProps.tsx +12 -1
  493. package/dist/app/tailwind.d.ts +0 -4
  494. package/dist/app/tailwind.js +0 -97
  495. package/dist/app/tailwind.js.map +0 -1
  496. package/dist/config/common.d.ts +0 -10
  497. package/dist/config/common.js +0 -2
  498. package/dist/config/common.js.map +0 -1
  499. package/dist/config/validators/common.d.ts +0 -8001
  500. package/dist/config/validators/common.js +0 -414
  501. package/dist/config/validators/common.js.map +0 -1
  502. package/dist/lib/components/SlotletProvider.d.ts +0 -17
  503. package/dist/lib/components/SlotletProvider.js +0 -18
  504. package/dist/lib/components/SlotletProvider.js.map +0 -1
  505. package/dist/vite/plugin-docs.test.js +0 -22
  506. package/dist/vite/plugin-docs.test.js.map +0 -1
  507. package/lib/AuthenticationPlugin-UNaAuxNo.js.map +0 -1
  508. package/lib/Button-Bdk_Ij3U.js +0 -49
  509. package/lib/Button-Bdk_Ij3U.js.map +0 -1
  510. package/lib/Callout-XadUe37J.js.map +0 -1
  511. package/lib/Dialog-CNf2oWXG.js.map +0 -1
  512. package/lib/Markdown-D96AphCL.js +0 -7691
  513. package/lib/Markdown-D96AphCL.js.map +0 -1
  514. package/lib/MdxPage-Sjv6y3cA.js.map +0 -1
  515. package/lib/OperationList-DefCF3ZI.js.map +0 -1
  516. package/lib/Pagination-B89j9KJS.js +0 -48
  517. package/lib/Pagination-B89j9KJS.js.map +0 -1
  518. package/lib/RouteGuard-lkdEJoDV.js.map +0 -1
  519. package/lib/SchemaList-zHQ2Ekyw.js.map +0 -1
  520. package/lib/SchemaView-CqF4oMU-.js.map +0 -1
  521. package/lib/Select-HTio1oSE.js +0 -211
  522. package/lib/Select-HTio1oSE.js.map +0 -1
  523. package/lib/SlotletProvider-CTgIBRWg.js +0 -257
  524. package/lib/SlotletProvider-CTgIBRWg.js.map +0 -1
  525. package/lib/Toc-Ax54Pw8S.js.map +0 -1
  526. package/lib/cn-CwJPJKOE.js.map +0 -1
  527. package/lib/hook-BwOB_iZo.js.map +0 -1
  528. package/lib/index-BY8J3gEh.js.map +0 -1
  529. package/lib/index-CT2PstvH.js +0 -4982
  530. package/lib/index-CT2PstvH.js.map +0 -1
  531. package/src/app/tailwind.ts +0 -103
  532. package/src/lib/components/SlotletProvider.tsx +0 -55
  533. /package/dist/{vite/plugin-docs.test.d.ts → lib/components/Slot.test.d.ts} +0 -0
@@ -1,23 +1,22 @@
1
1
  import { j as e } from "./jsx-runtime-C5mzlN2N.js";
2
- import { LogOutIcon as m } from "lucide-react";
3
2
  import { useEffect as i } from "react";
4
- import { b as x, L as h, a as g } from "./chunk-BAXFHI7N-C9WnHsLV.js";
5
- import { B as r } from "./Button-Bdk_Ij3U.js";
6
- import { C as a, a as c, b as l, c as u, d } from "./Card-BlCYNw5W.js";
7
- import { e as s } from "./hook-BwOB_iZo.js";
8
- import { B as o, L as j } from "./index-CT2PstvH.js";
9
- const p = () => {
10
- const t = s(), [n] = x();
3
+ import { b as m, L as x, a as h } from "./chunk-BAXFHI7N-C9WnHsLV.js";
4
+ import { B as r } from "./Button-BE9IVkWV.js";
5
+ import { C as o, a as c, b as l, c as d, d as u } from "./Card-DPhGbYUM.js";
6
+ import { e as s } from "./hook-DawSLaZr.js";
7
+ import { Button as a, Link as g } from "./zudoku.components.js";
8
+ const S = () => {
9
+ const t = s(), [n] = m();
11
10
  return i(() => {
12
11
  t.authentication?.signIn({
13
12
  redirectTo: n.get("redirect") ?? void 0
14
13
  });
15
- }, [t.authentication, n]), /* @__PURE__ */ e.jsx("div", { className: "flex items-center justify-center mt-8", children: /* @__PURE__ */ e.jsxs(a, { className: "max-w-md w-full", children: [
14
+ }, [t.authentication, n]), /* @__PURE__ */ e.jsx("div", { className: "flex items-center justify-center mt-8", children: /* @__PURE__ */ e.jsxs(o, { className: "max-w-md w-full", children: [
16
15
  /* @__PURE__ */ e.jsxs(c, { children: [
17
16
  /* @__PURE__ */ e.jsx(l, { className: "text-lg", children: "Sign in" }),
18
- /* @__PURE__ */ e.jsx(u, { children: "You're being redirected to our secure login provider to complete your sign-in process." })
17
+ /* @__PURE__ */ e.jsx(d, { children: "You're being redirected to our secure login provider to complete your sign-in process." })
19
18
  ] }),
20
- /* @__PURE__ */ e.jsx(d, { children: /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col gap-2 justify-center", children: [
19
+ /* @__PURE__ */ e.jsx(u, { children: /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col gap-2 justify-center", children: [
21
20
  /* @__PURE__ */ e.jsx(
22
21
  r,
23
22
  {
@@ -26,65 +25,39 @@ const p = () => {
26
25
  children: "Login"
27
26
  }
28
27
  ),
29
- /* @__PURE__ */ e.jsx(r, { variant: "link", className: "text-muted-foreground", asChild: !0, children: /* @__PURE__ */ e.jsx(h, { to: "/", children: "Go home" }) })
28
+ /* @__PURE__ */ e.jsx(r, { variant: "link", className: "text-muted-foreground", asChild: !0, children: /* @__PURE__ */ e.jsx(x, { to: "/", children: "Go home" }) })
30
29
  ] }) })
31
30
  ] }) });
32
- }, f = () => {
33
- const t = s(), n = g();
31
+ }, y = () => {
32
+ const t = s(), n = h();
34
33
  return i(() => {
35
34
  t.authentication?.signOut().then(() => n("/"));
36
35
  }, []), null;
37
- }, v = () => {
36
+ }, b = () => {
38
37
  const t = s();
39
38
  return i(() => {
40
39
  t.authentication?.signUp() ?? t.authentication?.signIn();
41
- }, [t.authentication]), /* @__PURE__ */ e.jsx("div", { className: "flex items-center justify-center mt-8", children: /* @__PURE__ */ e.jsxs(a, { className: "max-w-md w-full", children: [
40
+ }, [t.authentication]), /* @__PURE__ */ e.jsx("div", { className: "flex items-center justify-center mt-8", children: /* @__PURE__ */ e.jsxs(o, { className: "max-w-md w-full", children: [
42
41
  /* @__PURE__ */ e.jsxs(c, { children: [
43
42
  /* @__PURE__ */ e.jsx(l, { className: "text-lg", children: "Sign up" }),
44
- /* @__PURE__ */ e.jsx(u, { children: "You're being redirected to our secure login provider to complete your sign up process." })
43
+ /* @__PURE__ */ e.jsx(d, { children: "You're being redirected to our secure login provider to complete your sign up process." })
45
44
  ] }),
46
- /* @__PURE__ */ e.jsx(d, { children: /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col gap-2 justify-center", children: [
45
+ /* @__PURE__ */ e.jsx(u, { children: /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col gap-2 justify-center", children: [
47
46
  /* @__PURE__ */ e.jsx(
48
- o,
47
+ a,
49
48
  {
50
49
  onClick: () => t.authentication?.signIn(),
51
50
  variant: "default",
52
51
  children: "Register"
53
52
  }
54
53
  ),
55
- /* @__PURE__ */ e.jsx(o, { variant: "link", className: "text-muted-foreground", asChild: !0, children: /* @__PURE__ */ e.jsx(j, { to: "/", children: "Go home" }) })
54
+ /* @__PURE__ */ e.jsx(a, { variant: "link", className: "text-muted-foreground", asChild: !0, children: /* @__PURE__ */ e.jsx(g, { to: "/", children: "Go home" }) })
56
55
  ] }) })
57
56
  ] }) });
58
57
  };
59
- class w {
60
- getRoutes() {
61
- return [
62
- {
63
- path: "/signout",
64
- element: /* @__PURE__ */ e.jsx(f, {})
65
- },
66
- {
67
- path: "/signin",
68
- element: /* @__PURE__ */ e.jsx(p, {})
69
- },
70
- {
71
- path: "/signup",
72
- element: /* @__PURE__ */ e.jsx(v, {})
73
- }
74
- ];
75
- }
76
- getProfileMenuItems() {
77
- return [
78
- {
79
- label: "Logout",
80
- path: "/signout",
81
- category: "bottom",
82
- icon: m
83
- }
84
- ];
85
- }
86
- }
87
58
  export {
88
- w as A
59
+ y as S,
60
+ S as a,
61
+ b
89
62
  };
90
- //# sourceMappingURL=AuthenticationPlugin-UNaAuxNo.js.map
63
+ //# sourceMappingURL=SignUp-CWaiH0tY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SignUp-CWaiH0tY.js","sources":["../src/lib/authentication/components/SignIn.tsx","../src/lib/authentication/components/SignOut.tsx","../src/lib/authentication/components/SignUp.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { Link, useSearchParams } from \"react-router\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"zudoku/ui/Card.js\";\nimport { useZudoku } from \"../../components/context/ZudokuContext.js\";\n\nexport const SignIn = () => {\n const context = useZudoku();\n const [search] = useSearchParams();\n useEffect(() => {\n void context.authentication?.signIn({\n redirectTo: search.get(\"redirect\") ?? undefined,\n });\n }, [context.authentication, search]);\n\n return (\n <div className=\"flex items-center justify-center mt-8\">\n <Card className=\"max-w-md w-full\">\n <CardHeader>\n <CardTitle className=\"text-lg\">Sign in</CardTitle>\n <CardDescription>\n You're being redirected to our secure login provider to complete\n your sign-in process.\n </CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"flex flex-col gap-2 justify-center\">\n <Button\n onClick={() => context.authentication?.signIn()}\n variant=\"default\"\n >\n Login\n </Button>\n <Button variant=\"link\" className=\"text-muted-foreground\" asChild>\n <Link to=\"/\">Go home</Link>\n </Button>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n};\n","import { useEffect } from \"react\";\nimport { useNavigate } from \"react-router\";\nimport { useZudoku } from \"../../components/context/ZudokuContext.js\";\n\nexport const SignOut = () => {\n const context = useZudoku();\n const navigate = useNavigate();\n\n useEffect(() => {\n void context.authentication?.signOut().then(() => navigate(\"/\"));\n }, []);\n\n return null;\n};\n","import { useEffect } from \"react\";\nimport { Button, Link } from \"zudoku/components\";\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"zudoku/ui/Card.js\";\nimport { useZudoku } from \"../../components/context/ZudokuContext.js\";\n\nexport const SignUp = () => {\n const context = useZudoku();\n\n useEffect(() => {\n void (context.authentication?.signUp() ?? context.authentication?.signIn());\n }, [context.authentication]);\n\n return (\n <div className=\"flex items-center justify-center mt-8\">\n <Card className=\"max-w-md w-full\">\n <CardHeader>\n <CardTitle className=\"text-lg\">Sign up</CardTitle>\n <CardDescription>\n You're being redirected to our secure login provider to complete\n your sign up process.\n </CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"flex flex-col gap-2 justify-center\">\n <Button\n onClick={() => context.authentication?.signIn()}\n variant=\"default\"\n >\n Register\n </Button>\n <Button variant=\"link\" className=\"text-muted-foreground\" asChild>\n <Link to=\"/\">Go home</Link>\n </Button>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n};\n"],"names":["SignIn","context","useZudoku","search","useSearchParams","useEffect","jsxs","Card","CardHeader","jsx","CardTitle","CardDescription","CardContent","Button","Link","SignOut","navigate","useNavigate","SignUp"],"mappings":";;;;;;;AAYO,MAAMA,IAAS,MAAM;AAC1B,QAAMC,IAAUC,EAAU,GACpB,CAACC,CAAM,IAAIC,EAAgB;AACjC,SAAAC,EAAU,MAAM;AACT,IAAAJ,EAAQ,gBAAgB,OAAO;AAAA,MAClC,YAAYE,EAAO,IAAI,UAAU,KAAK;AAAA,IAAA,CACvC;AAAA,EACA,GAAA,CAACF,EAAQ,gBAAgBE,CAAM,CAAC,yBAGhC,OAAI,EAAA,WAAU,yCACb,UAACG,gBAAAA,EAAA,KAAAC,GAAA,EAAK,WAAU,mBACd,UAAA;AAAA,IAAAD,gBAAAA,OAACE,GACC,EAAA,UAAA;AAAA,MAACC,gBAAAA,EAAA,IAAAC,GAAA,EAAU,WAAU,WAAU,UAAO,WAAA;AAAA,MACtCD,gBAAAA,EAAAA,IAACE,KAAgB,UAGjB,yFAAA,CAAA;AAAA,IAAA,GACF;AAAA,IACCF,gBAAAA,MAAAG,GAAA,EACC,UAACN,gBAAAA,EAAAA,KAAA,OAAA,EAAI,WAAU,sCACb,UAAA;AAAA,MAAAG,gBAAAA,EAAA;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,SAAS,MAAMZ,EAAQ,gBAAgB,OAAO;AAAA,UAC9C,SAAQ;AAAA,UACT,UAAA;AAAA,QAAA;AAAA,MAED;AAAA,MACCQ,gBAAAA,EAAA,IAAAI,GAAA,EAAO,SAAQ,QAAO,WAAU,yBAAwB,SAAO,IAC9D,UAACJ,gBAAAA,EAAAA,IAAAK,GAAA,EAAK,IAAG,KAAI,qBAAO,EACtB,CAAA;AAAA,IAAA,EAAA,CACF,EACF,CAAA;AAAA,EAAA,EAAA,CACF,EACF,CAAA;AAEJ,GC3CaC,IAAU,MAAM;AAC3B,QAAMd,IAAUC,EAAU,GACpBc,IAAWC,EAAY;AAE7B,SAAAZ,EAAU,MAAM;AACT,IAAAJ,EAAQ,gBAAgB,QAAQ,EAAE,KAAK,MAAMe,EAAS,GAAG,CAAC;AAAA,EACjE,GAAG,EAAE,GAEE;AACT,GCFaE,IAAS,MAAM;AAC1B,QAAMjB,IAAUC,EAAU;AAE1B,SAAAG,EAAU,MAAM;AACd,IAAMJ,EAAQ,gBAAgB,OAAA,KAAYA,EAAQ,gBAAgB;EAAO,GACxE,CAACA,EAAQ,cAAc,CAAC,yBAGxB,OAAI,EAAA,WAAU,yCACb,UAACK,gBAAAA,EAAA,KAAAC,GAAA,EAAK,WAAU,mBACd,UAAA;AAAA,IAAAD,gBAAAA,OAACE,GACC,EAAA,UAAA;AAAA,MAACC,gBAAAA,EAAA,IAAAC,GAAA,EAAU,WAAU,WAAU,UAAO,WAAA;AAAA,MACtCD,gBAAAA,EAAAA,IAACE,KAAgB,UAGjB,yFAAA,CAAA;AAAA,IAAA,GACF;AAAA,IACCF,gBAAAA,MAAAG,GAAA,EACC,UAACN,gBAAAA,EAAAA,KAAA,OAAA,EAAI,WAAU,sCACb,UAAA;AAAA,MAAAG,gBAAAA,EAAA;AAAA,QAACI;AAAAA,QAAA;AAAA,UACC,SAAS,MAAMZ,EAAQ,gBAAgB,OAAO;AAAA,UAC9C,SAAQ;AAAA,UACT,UAAA;AAAA,QAAA;AAAA,MAED;AAAA,MACCQ,gBAAAA,EAAA,IAAAI,GAAA,EAAO,SAAQ,QAAO,WAAU,yBAAwB,SAAO,IAC9D,UAACJ,gBAAAA,EAAAA,IAAAK,GAAA,EAAK,IAAG,KAAI,qBAAO,EACtB,CAAA;AAAA,IAAA,EAAA,CACF,EACF,CAAA;AAAA,EAAA,EAAA,CACF,EACF,CAAA;AAEJ;"}
@@ -0,0 +1,160 @@
1
+ import { j as t } from "./jsx-runtime-C5mzlN2N.js";
2
+ import { c as N, L as M, e as P, i as C } from "./chunk-BAXFHI7N-C9WnHsLV.js";
3
+ import { UnlinkIcon as H } from "lucide-react";
4
+ import { C as O } from "./CategoryHeading-Cu2RwgjC.js";
5
+ import { Callout as I } from "./ui/Callout.js";
6
+ import { M as T, H as v, P as E } from "./Markdown-BRAyzyUJ.js";
7
+ import { memo as b, createContext as D, useMemo as L, Fragment as Z, use as _, useRef as F } from "react";
8
+ import { e as U, p as z, q as A } from "./hook-DawSLaZr.js";
9
+ import { h as B } from "./SyntaxHighlight-DedRjJNr.js";
10
+ import { i as G, Z as j } from "./invariant-DAFpPywt.js";
11
+ import { CodeBlock as J } from "./ui/CodeBlock.js";
12
+ import { c as V } from "./cn-wvCW-ho6.js";
13
+ import { u as Y } from "./useExposedProps-DG8J6ewJ.js";
14
+ const y = ({
15
+ children: e,
16
+ className: n
17
+ }) => {
18
+ if (process.env.NODE_ENV === "development")
19
+ return /* @__PURE__ */ t.jsx(I, { type: "caution", title: "Developer hint", className: n, children: /* @__PURE__ */ t.jsxs("div", { className: "flex flex-col gap-2", children: [
20
+ typeof e == "string" ? /* @__PURE__ */ t.jsx(T, { content: e }) : /* @__PURE__ */ t.jsx("div", { children: e }),
21
+ /* @__PURE__ */ t.jsx("small", { className: "italic", children: "Note: This hint is only shown in development mode." })
22
+ ] }) });
23
+ }, K = () => {
24
+ const e = N();
25
+ return /* @__PURE__ */ t.jsxs("div", { className: E + " h-full pt-(--padding-content-top)", children: [
26
+ /* @__PURE__ */ t.jsx(O, { children: "404" }),
27
+ /* @__PURE__ */ t.jsxs(v, { level: 1, className: "flex gap-3.5 items-center", children: [
28
+ "Page not found",
29
+ /* @__PURE__ */ t.jsx(H, { size: 24 })
30
+ ] }),
31
+ /* @__PURE__ */ t.jsxs(y, { children: [
32
+ "Start by adding a file at",
33
+ " ",
34
+ /* @__PURE__ */ t.jsxs("code", { children: [
35
+ "{PROJECT_ROOT}",
36
+ "/",
37
+ e["*"],
38
+ ".mdx"
39
+ ] }),
40
+ " ",
41
+ "and add some content to make this error go away."
42
+ ] }),
43
+ /* @__PURE__ */ t.jsx("p", { children: "It seems that the page you are looking for does not exist or may have been moved. Please check the URL for any typos or use the navigation menu to find the correct page." }),
44
+ /* @__PURE__ */ t.jsx(M, { to: "/", children: "Go back home" })
45
+ ] });
46
+ }, w = b(
47
+ ({ code: e, children: n, ...o }) => {
48
+ const { syntaxHighlighting: s } = U().options;
49
+ G(s?.highlighter, "Highlighter not found");
50
+ const c = B(
51
+ s.highlighter,
52
+ e ?? n,
53
+ o.language,
54
+ s.themes
55
+ );
56
+ return /* @__PURE__ */ t.jsx(J, { ...o, children: c });
57
+ }
58
+ );
59
+ w.displayName = "SyntaxHighlight";
60
+ function Q({ error: e }) {
61
+ const n = e instanceof Error ? e.message : "Something went wrong", o = e instanceof j ? e.developerHint : void 0, s = e instanceof j ? e.title : "Something went wrong", c = e instanceof Error ? e.stack : void 0, i = e instanceof Error ? e.cause : void 0, r = i instanceof Error ? String(i.stack) : c;
62
+ return /* @__PURE__ */ t.jsxs(
63
+ "div",
64
+ {
65
+ className: V(
66
+ E,
67
+ "grid grid-cols-1 !max-w-none pt-(--padding-content-top)"
68
+ ),
69
+ children: [
70
+ /* @__PURE__ */ t.jsx(v, { level: 1, children: s }),
71
+ "Error: ",
72
+ n,
73
+ o && /* @__PURE__ */ t.jsx(y, { className: "mb-4", children: o }),
74
+ r && /* @__PURE__ */ t.jsx("div", { children: /* @__PURE__ */ t.jsx(
75
+ w,
76
+ {
77
+ className: "max-h-[400px] border mt-2",
78
+ language: "js",
79
+ code: r
80
+ }
81
+ ) })
82
+ ]
83
+ }
84
+ );
85
+ }
86
+ function pe() {
87
+ const e = P();
88
+ return C(e) && e.status === 404 ? /* @__PURE__ */ t.jsx(K, {}) : /* @__PURE__ */ t.jsx(Q, { error: e });
89
+ }
90
+ const R = ({
91
+ slots: e = {}
92
+ } = {}) => {
93
+ const n = new Map(
94
+ Object.entries(e).map(([s, c]) => [
95
+ s,
96
+ [{ id: s, content: c, type: "replace", sequence: 0 }]
97
+ ])
98
+ ), o = [];
99
+ return z()((s, c) => ({
100
+ items: n,
101
+ sequences: /* @__PURE__ */ new Map(),
102
+ getItems: (i) => c().items.get(i) ?? o,
103
+ setSlot: (i, r, d, a) => s((l) => {
104
+ if (d == null) return l;
105
+ const m = new Map(l.items), u = new Map(l.sequences), f = (m.get(r) ?? []).filter((g) => g.id !== i), p = (u.get(r) ?? 0) + 1;
106
+ u.set(r, p);
107
+ const x = {
108
+ id: i,
109
+ content: d,
110
+ type: a,
111
+ // Use negative sequence values for "prepend" to ensure they are sorted before positive values for "append".
112
+ sequence: a === "prepend" ? -p : p
113
+ };
114
+ if (a === "replace") {
115
+ const g = f.filter(
116
+ (q) => q.type !== "replace"
117
+ );
118
+ m.set(r, [...g, x]);
119
+ } else
120
+ m.set(r, [...f, x]);
121
+ return { items: m, sequences: u };
122
+ }),
123
+ clearSlot: (i, r) => s((d) => {
124
+ const a = new Map(d.items), l = new Map(d.sequences), u = (a.get(r) ?? []).filter((h) => h.id !== i);
125
+ return u.length === 0 ? (a.delete(r), l.delete(r)) : a.set(r, u), { items: a, sequences: l };
126
+ })
127
+ }));
128
+ }, k = D(R()), ge = ({
129
+ children: e,
130
+ slots: n
131
+ }) => {
132
+ const o = F(R({ slots: n })).current;
133
+ return /* @__PURE__ */ t.jsx(k, { value: o, children: e });
134
+ };
135
+ function W(e) {
136
+ const n = _(k);
137
+ return A(n, e);
138
+ }
139
+ const S = ["prepend", "replace", "append"], X = (e) => {
140
+ const n = Y(), o = W((s) => s.getItems(e));
141
+ return L(() => o.length === 0 ? [] : o.toSorted((s, c) => {
142
+ const i = S.indexOf(s.type) - S.indexOf(c.type);
143
+ return i !== 0 ? i : s.sequence - c.sequence;
144
+ }).map(
145
+ (s) => typeof s.content == "function" ? /* @__PURE__ */ t.jsx(s.content, { ...n }, s.id) : /* @__PURE__ */ t.jsx(Z, { children: s.content }, s.id)
146
+ ), [o, n]);
147
+ }, he = {
148
+ Target: ({ name: e, fallback: n }) => {
149
+ const o = X(e);
150
+ return o.length === 0 ? n : o;
151
+ }
152
+ };
153
+ export {
154
+ y as D,
155
+ Q as E,
156
+ pe as R,
157
+ he as S,
158
+ ge as a
159
+ };
160
+ //# sourceMappingURL=Slot-Bo6K4tnb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Slot-Bo6K4tnb.js","sources":["../src/lib/components/DeveloperHint.tsx","../src/lib/components/NotFoundPage.tsx","../src/lib/ui/SyntaxHighlight.tsx","../src/lib/errors/ErrorAlert.tsx","../src/lib/errors/RouterError.tsx","../src/lib/components/context/SlotProvider.tsx","../src/lib/components/Slot.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Callout } from \"../ui/Callout.js\";\nimport { Markdown } from \"./Markdown.js\";\n\nexport const DeveloperHint = ({\n children,\n className,\n}: {\n children: ReactNode;\n className?: string;\n}) => {\n if (process.env.NODE_ENV !== \"development\") return;\n\n return (\n <Callout type=\"caution\" title=\"Developer hint\" className={className}>\n <div className=\"flex flex-col gap-2\">\n {typeof children === \"string\" ? (\n <Markdown content={children} />\n ) : (\n <div>{children}</div>\n )}\n <small className=\"italic\">\n Note: This hint is only shown in development mode.\n </small>\n </div>\n </Callout>\n );\n};\n","import { UnlinkIcon } from \"lucide-react\";\nimport { Link, useParams } from \"react-router\";\nimport { CategoryHeading } from \"./CategoryHeading.js\";\nimport { DeveloperHint } from \"./DeveloperHint.js\";\nimport { Heading } from \"./Heading.js\";\nimport { ProseClasses } from \"./Markdown.js\";\n\nexport const NotFoundPage = () => {\n const params = useParams();\n\n return (\n <div className={ProseClasses + \" h-full pt-(--padding-content-top)\"}>\n <CategoryHeading>404</CategoryHeading>\n <Heading level={1} className=\"flex gap-3.5 items-center\">\n Page not found\n <UnlinkIcon size={24} />\n </Heading>\n <DeveloperHint>\n Start by adding a file at{\" \"}\n <code>\n {\"{PROJECT_ROOT}\"}/{params[\"*\"]}.mdx\n </code>{\" \"}\n and add some content to make this error go away.\n </DeveloperHint>\n <p>\n It seems that the page you are looking for does not exist or may have\n been moved. Please check the URL for any typos or use the navigation\n menu to find the correct page.\n </p>\n <Link to=\"/\">Go back home</Link>\n </div>\n );\n};\n","import { memo } from \"react\";\nimport { useZudoku } from \"../components/context/ZudokuContext.js\";\nimport { highlight } from \"../shiki.js\";\nimport invariant from \"../util/invariant.js\";\nimport { CodeBlock, type CodeBlockProps } from \"./CodeBlock.js\";\n\ntype SyntaxHighlightProps = CodeBlockProps &\n ({ code: string; children?: never } | { code?: never; children: string });\n\nexport const SyntaxHighlight = memo(\n ({ code, children, ...props }: SyntaxHighlightProps) => {\n const { syntaxHighlighting } = useZudoku().options;\n\n invariant(syntaxHighlighting?.highlighter, \"Highlighter not found\");\n\n const highlightedCode = highlight(\n syntaxHighlighting.highlighter,\n code ?? children,\n props.language,\n syntaxHighlighting.themes,\n );\n\n return <CodeBlock {...props}>{highlightedCode}</CodeBlock>;\n },\n);\n\nSyntaxHighlight.displayName = \"SyntaxHighlight\";\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nimport { SyntaxHighlight } from \"zudoku/ui/SyntaxHighlight.js\";\nimport { DeveloperHint } from \"../components/DeveloperHint.js\";\nimport { Heading } from \"../components/Heading.js\";\nimport { ProseClasses } from \"../components/Markdown.js\";\nimport { cn } from \"../util/cn.js\";\nimport { ZudokuError } from \"../util/invariant.js\";\n\nexport function ErrorAlert({ error }: { error: unknown }) {\n const message =\n error instanceof Error ? error.message : \"Something went wrong\";\n\n const hint = error instanceof ZudokuError ? error.developerHint : undefined;\n const title =\n error instanceof ZudokuError ? error.title : \"Something went wrong\";\n const stack = error instanceof Error ? error.stack : undefined;\n const cause = error instanceof Error ? error.cause : undefined;\n\n const stringError = cause instanceof Error ? String(cause.stack) : stack;\n\n return (\n <div\n className={cn(\n ProseClasses,\n \"grid grid-cols-1 !max-w-none pt-(--padding-content-top)\",\n )}\n >\n <Heading level={1}>{title}</Heading>\n Error: {message}\n {hint && <DeveloperHint className=\"mb-4\">{hint}</DeveloperHint>}\n {stringError && (\n <div>\n <SyntaxHighlight\n className=\"max-h-[400px] border mt-2\"\n language=\"js\"\n code={stringError}\n />\n </div>\n )}\n </div>\n );\n}\n","import { isRouteErrorResponse, useRouteError } from \"react-router\";\nimport { NotFoundPage } from \"../components/NotFoundPage.js\";\nimport { ErrorAlert } from \"./ErrorAlert.js\";\n\nexport function RouterError() {\n const error = useRouteError();\n\n if (isRouteErrorResponse(error) && error.status === 404) {\n return <NotFoundPage />;\n }\n\n return <ErrorAlert error={error} />;\n}\n","import {\n createContext,\n Fragment,\n use,\n useMemo,\n useRef,\n type ComponentType,\n type PropsWithChildren,\n type ReactNode,\n} from \"react\";\nimport { createStore, useStore } from \"zustand\";\nimport {\n useExposedProps,\n type ExposedComponentProps,\n} from \"../../util/useExposedProps.js\";\n\nexport type SlotType = ReactNode | ComponentType<ExposedComponentProps>;\n\ntype SlotItem = {\n id: string;\n content: SlotType;\n type: \"prepend\" | \"replace\" | \"append\";\n sequence: number;\n};\n\ntype SlotStoreState = {\n items: Map<string, SlotItem[]>;\n // to guarantee the order of the items when appending/prepending\n sequences: Map<string, number>;\n getItems: (name: string) => SlotItem[];\n setSlot: (\n id: string,\n name: string,\n content: SlotType,\n type: \"prepend\" | \"replace\" | \"append\",\n ) => void;\n clearSlot: (id: string, name: string) => void;\n};\n\nexport type SlotStore = ReturnType<typeof createSlotStore>;\n\nconst createSlotStore = ({\n slots = {},\n}: {\n slots?: Record<string, SlotType>;\n} = {}) => {\n const initialItems = new Map(\n Object.entries(slots).map(([id, content]) => [\n id,\n [{ id, content, type: \"replace\", sequence: 0 } satisfies SlotItem],\n ]),\n );\n const EMPTY_ITEMS: SlotItem[] = [];\n\n return createStore<SlotStoreState>()((set, get) => ({\n items: initialItems,\n sequences: new Map(),\n getItems: (name) => get().items.get(name) ?? EMPTY_ITEMS,\n setSlot: (id, name, content, type) =>\n set((state) => {\n if (content == null) return state;\n\n const items = new Map(state.items);\n const sequences = new Map(state.sequences);\n const existing = items.get(name) ?? [];\n const filtered = existing.filter((item) => item.id !== id);\n\n const currentSequence = sequences.get(name) ?? 0;\n const newSequence = currentSequence + 1;\n sequences.set(name, newSequence);\n\n const newItem = {\n id,\n content,\n type,\n // Use negative sequence values for \"prepend\" to ensure they are sorted before positive values for \"append\".\n sequence: type === \"prepend\" ? -newSequence : newSequence,\n } satisfies SlotItem;\n\n if (type === \"replace\") {\n const nonReplaceItems = filtered.filter(\n (item) => item.type !== \"replace\",\n );\n items.set(name, [...nonReplaceItems, newItem]);\n } else {\n items.set(name, [...filtered, newItem]);\n }\n\n return { items, sequences };\n }),\n clearSlot: (id, name) =>\n set((state) => {\n const items = new Map(state.items);\n const sequences = new Map(state.sequences);\n const existing = items.get(name) ?? [];\n const filtered = existing.filter((item) => item.id !== id);\n\n if (filtered.length === 0) {\n items.delete(name);\n sequences.delete(name);\n } else {\n items.set(name, filtered);\n }\n return { items, sequences };\n }),\n }));\n};\n\nconst SlotContext = createContext(createSlotStore());\n\nexport const SlotProvider = ({\n children,\n slots,\n}: PropsWithChildren<{\n slots?: Record<string, SlotType>;\n}>) => {\n const store = useRef<SlotStore>(createSlotStore({ slots })).current;\n return <SlotContext value={store}>{children}</SlotContext>;\n};\n\nexport function useSlotContext<T>(selector: (state: SlotStoreState) => T): T {\n const store = use(SlotContext);\n return useStore(store, selector);\n}\n\nconst ORDER = [\"prepend\", \"replace\", \"append\"] as const;\n\nexport const useRenderSlot = (name: string) => {\n const exposedProps = useExposedProps();\n const items = useSlotContext((s) => s.getItems(name));\n\n return useMemo(() => {\n if (items.length === 0) return [];\n\n return items\n .toSorted((a, b) => {\n const typeOrder = ORDER.indexOf(a.type) - ORDER.indexOf(b.type);\n if (typeOrder !== 0) return typeOrder;\n return a.sequence - b.sequence;\n })\n .map((item) =>\n typeof item.content === \"function\" ? (\n <item.content key={item.id} {...exposedProps} />\n ) : (\n <Fragment key={item.id}>{item.content}</Fragment>\n ),\n );\n }, [items, exposedProps]);\n};\n","import { useId, useLayoutEffect, type ReactNode } from \"react\";\nimport {\n useRenderSlot,\n useSlotContext,\n type SlotType,\n} from \"./context/SlotProvider.js\";\n\n// This is to augment the type of the Slot component with custom slot names\n// This is useful for plugins to add custom slots to the Zudoku context\n// and for the user to use them in their own components\nexport type CustomSlotNames = never;\n\ntype PredefinedSlotNames =\n | \"api-keys-list-page\"\n | \"api-keys-list-page-before-keys\"\n | \"footer-after\"\n | \"footer-before\"\n | \"head-navigation-end\"\n | \"head-navigation-start\"\n | \"layout-after-head\"\n | \"layout-before-head\"\n | \"top-navigation-after\"\n | \"top-navigation-before\"\n | \"top-navigation-side\"\n | \"content-before\"\n | \"content-after\"\n | \"navigation-after\"\n | \"navigation-before\";\n\nexport type SlotName = PredefinedSlotNames | CustomSlotNames;\n\nexport const Slot = {\n Source: ({\n name,\n children,\n type = \"replace\",\n }: {\n name: SlotName;\n type?: \"prepend\" | \"replace\" | \"append\";\n children: SlotType;\n }) => {\n const id = useId();\n const setSlot = useSlotContext((s) => s.setSlot);\n const clearSlot = useSlotContext((s) => s.clearSlot);\n\n if (import.meta.env.SSR) {\n setSlot(id, name, children, type);\n }\n\n useLayoutEffect(() => {\n setSlot(id, name, children, type);\n return () => clearSlot(id, name);\n }, [id, name, children, type, setSlot, clearSlot]);\n\n return null;\n },\n\n Target: ({ name, fallback }: { name: string; fallback?: ReactNode }) => {\n const slot = useRenderSlot(name);\n\n if (slot.length === 0) return fallback;\n return slot;\n },\n};\n"],"names":["DeveloperHint","children","className","jsx","Callout","jsxs","Markdown","NotFoundPage","params","useParams","ProseClasses","CategoryHeading","Heading","UnlinkIcon","Link","SyntaxHighlight","memo","code","props","syntaxHighlighting","useZudoku","invariant","highlightedCode","highlight","CodeBlock","ErrorAlert","error","message","hint","ZudokuError","title","stack","cause","stringError","cn","RouterError","useRouteError","isRouteErrorResponse","createSlotStore","slots","initialItems","id","content","EMPTY_ITEMS","createStore","set","get","name","type","state","items","sequences","filtered","item","newSequence","newItem","nonReplaceItems","SlotContext","createContext","SlotProvider","store","useRef","useSlotContext","selector","use","useStore","ORDER","useRenderSlot","exposedProps","useExposedProps","useMemo","a","b","typeOrder","Fragment","Slot","fallback","slot"],"mappings":"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"}