zudoku 0.45.1 → 0.46.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 (532) hide show
  1. package/dist/app/main.js +4 -23
  2. package/dist/app/main.js.map +1 -1
  3. package/dist/config/config.d.ts +2 -2
  4. package/dist/config/file-exists.d.ts +1 -0
  5. package/dist/config/file-exists.js +5 -0
  6. package/dist/config/file-exists.js.map +1 -0
  7. package/dist/config/loader.d.ts +19 -4
  8. package/dist/config/loader.js +94 -14
  9. package/dist/config/loader.js.map +1 -1
  10. package/dist/config/validators/validate.d.ts +3536 -743
  11. package/dist/config/validators/validate.js +396 -11
  12. package/dist/config/validators/validate.js.map +1 -1
  13. package/dist/index.d.ts +4 -2
  14. package/dist/index.js +2 -0
  15. package/dist/index.js.map +1 -1
  16. package/dist/lib/authentication/AuthenticationPlugin.d.ts +7 -2
  17. package/dist/lib/authentication/AuthenticationPlugin.js +13 -1
  18. package/dist/lib/authentication/AuthenticationPlugin.js.map +1 -1
  19. package/dist/lib/authentication/authentication.d.ts +2 -4
  20. package/dist/lib/authentication/providers/auth0.js.map +1 -1
  21. package/dist/lib/authentication/providers/clerk.js +62 -43
  22. package/dist/lib/authentication/providers/clerk.js.map +1 -1
  23. package/dist/lib/authentication/providers/openid.d.ts +7 -12
  24. package/dist/lib/authentication/providers/openid.js +11 -22
  25. package/dist/lib/authentication/providers/openid.js.map +1 -1
  26. package/dist/lib/authentication/providers/supabase.js +3 -5
  27. package/dist/lib/authentication/providers/supabase.js.map +1 -1
  28. package/dist/lib/components/Autocomplete.js +1 -1
  29. package/dist/lib/components/Banner.js +1 -1
  30. package/dist/lib/components/Banner.js.map +1 -1
  31. package/dist/lib/components/ErrorPage.js +1 -1
  32. package/dist/lib/components/Footer.js +3 -3
  33. package/dist/lib/components/Footer.js.map +1 -1
  34. package/dist/lib/components/Header.js +16 -8
  35. package/dist/lib/components/Header.js.map +1 -1
  36. package/dist/lib/components/Heading.js +6 -1
  37. package/dist/lib/components/Heading.js.map +1 -1
  38. package/dist/lib/components/InlineCode.js +1 -1
  39. package/dist/lib/components/InlineCode.js.map +1 -1
  40. package/dist/lib/components/Layout.js +2 -2
  41. package/dist/lib/components/Layout.js.map +1 -1
  42. package/dist/lib/components/Main.js +2 -2
  43. package/dist/lib/components/Main.js.map +1 -1
  44. package/dist/lib/components/Markdown.js +8 -3
  45. package/dist/lib/components/Markdown.js.map +1 -1
  46. package/dist/lib/components/MobileTopNavigation.js +3 -2
  47. package/dist/lib/components/MobileTopNavigation.js.map +1 -1
  48. package/dist/lib/components/NotFoundPage.js +1 -1
  49. package/dist/lib/components/Pagination.js +1 -1
  50. package/dist/lib/components/Pagination.js.map +1 -1
  51. package/dist/lib/components/Search.js +1 -1
  52. package/dist/lib/components/Search.js.map +1 -1
  53. package/dist/lib/components/Slot.d.ts +17 -0
  54. package/dist/lib/components/Slot.js +24 -0
  55. package/dist/lib/components/Slot.js.map +1 -0
  56. package/dist/lib/components/Slot.test.js +168 -0
  57. package/dist/lib/components/Slot.test.js.map +1 -0
  58. package/dist/lib/components/TopNavigation.d.ts +1 -4
  59. package/dist/lib/components/TopNavigation.js +3 -11
  60. package/dist/lib/components/TopNavigation.js.map +1 -1
  61. package/dist/lib/components/Zudoku.js +2 -2
  62. package/dist/lib/components/Zudoku.js.map +1 -1
  63. package/dist/lib/components/context/SlotProvider.d.ts +26 -0
  64. package/dist/lib/components/context/SlotProvider.js +83 -0
  65. package/dist/lib/components/context/SlotProvider.js.map +1 -0
  66. package/dist/lib/components/context/ZudokuContext.d.ts +1 -1
  67. package/dist/lib/components/context/ZudokuProvider.js +2 -1
  68. package/dist/lib/components/context/ZudokuProvider.js.map +1 -1
  69. package/dist/lib/components/index.d.ts +29 -23
  70. package/dist/lib/components/index.js +13 -7
  71. package/dist/lib/components/index.js.map +1 -1
  72. package/dist/lib/components/navigation/PoweredByZudoku.js +1 -1
  73. package/dist/lib/components/navigation/Sidebar.js +3 -3
  74. package/dist/lib/components/navigation/Sidebar.js.map +1 -1
  75. package/dist/lib/components/navigation/SidebarBadge.js +1 -1
  76. package/dist/lib/components/navigation/SidebarBadge.js.map +1 -1
  77. package/dist/lib/components/navigation/SidebarCategory.js +3 -3
  78. package/dist/lib/components/navigation/SidebarCategory.js.map +1 -1
  79. package/dist/lib/components/navigation/SidebarItem.d.ts +0 -5
  80. package/dist/lib/components/navigation/SidebarItem.js +19 -23
  81. package/dist/lib/components/navigation/SidebarItem.js.map +1 -1
  82. package/dist/lib/components/navigation/SidebarWrapper.js +1 -1
  83. package/dist/lib/components/navigation/Toc.js +1 -1
  84. package/dist/lib/components/navigation/Toc.js.map +1 -1
  85. package/dist/lib/components/navigation/utils.d.ts +8 -0
  86. package/dist/lib/components/navigation/utils.js +34 -6
  87. package/dist/lib/components/navigation/utils.js.map +1 -1
  88. package/dist/lib/core/ZudokuContext.d.ts +12 -8
  89. package/dist/lib/core/ZudokuContext.js +6 -5
  90. package/dist/lib/core/ZudokuContext.js.map +1 -1
  91. package/dist/lib/core/plugins.d.ts +5 -2
  92. package/dist/lib/core/plugins.js +1 -0
  93. package/dist/lib/core/plugins.js.map +1 -1
  94. package/dist/lib/errors/ErrorAlert.js +1 -1
  95. package/dist/lib/hooks/index.d.ts +19 -0
  96. package/dist/lib/hooks/index.js +11 -0
  97. package/dist/lib/hooks/index.js.map +1 -1
  98. package/dist/lib/plugins/api-catalog/Catalog.js +1 -1
  99. package/dist/lib/plugins/api-keys/CreateApiKey.d.ts +3 -2
  100. package/dist/lib/plugins/api-keys/CreateApiKey.js +8 -4
  101. package/dist/lib/plugins/api-keys/CreateApiKey.js.map +1 -1
  102. package/dist/lib/plugins/api-keys/SettingsApiKeys.d.ts +1 -1
  103. package/dist/lib/plugins/api-keys/SettingsApiKeys.js +54 -23
  104. package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
  105. package/dist/lib/plugins/api-keys/index.d.ts +18 -9
  106. package/dist/lib/plugins/api-keys/index.js +49 -34
  107. package/dist/lib/plugins/api-keys/index.js.map +1 -1
  108. package/dist/lib/plugins/custom-pages/index.d.ts +1 -1
  109. package/dist/lib/plugins/markdown/MdxPage.js +1 -1
  110. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  111. package/dist/lib/plugins/markdown/index.d.ts +1 -1
  112. package/dist/lib/plugins/markdown/resolver.d.ts +1 -1
  113. package/dist/lib/plugins/markdown/resolver.js.map +1 -1
  114. package/dist/lib/plugins/openapi/CollapsibleCode.js +1 -1
  115. package/dist/lib/plugins/openapi/ColorizedParam.js +1 -1
  116. package/dist/lib/plugins/openapi/ColorizedParam.js.map +1 -1
  117. package/dist/lib/plugins/openapi/OperationList.js +1 -1
  118. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  119. package/dist/lib/plugins/openapi/OperationListItem.js +2 -3
  120. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  121. package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js +5 -1
  122. package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js.map +1 -1
  123. package/dist/lib/plugins/openapi/ResponsesSidecarBox.d.ts +2 -4
  124. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +1 -4
  125. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
  126. package/dist/lib/plugins/openapi/SchemaList.js +6 -5
  127. package/dist/lib/plugins/openapi/SchemaList.js.map +1 -1
  128. package/dist/lib/plugins/openapi/Sidecar.js +1 -1
  129. package/dist/lib/plugins/openapi/SidecarExamples.js +8 -0
  130. package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -1
  131. package/dist/lib/plugins/openapi/components/EnumValues.js +1 -1
  132. package/dist/lib/plugins/openapi/components/EnumValues.js.map +1 -1
  133. package/dist/lib/plugins/openapi/components/ResponseContent.d.ts +12 -0
  134. package/dist/lib/plugins/openapi/components/ResponseContent.js +21 -0
  135. package/dist/lib/plugins/openapi/components/ResponseContent.js.map +1 -0
  136. package/dist/lib/plugins/openapi/playground/Playground.js +2 -0
  137. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  138. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +1 -1
  139. package/dist/lib/plugins/openapi/playground/SubmitButton.js +7 -10
  140. package/dist/lib/plugins/openapi/playground/SubmitButton.js.map +1 -1
  141. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js +2 -2
  142. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js.map +1 -1
  143. package/dist/lib/plugins/openapi/schema/SchemaView.d.ts +2 -1
  144. package/dist/lib/plugins/openapi/schema/SchemaView.js +3 -3
  145. package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
  146. package/dist/lib/plugins/redirect/index.d.ts +1 -1
  147. package/dist/lib/ui/Badge.d.ts +2 -2
  148. package/dist/lib/ui/Badge.js +1 -1
  149. package/dist/lib/ui/Badge.js.map +1 -1
  150. package/dist/lib/ui/Button.d.ts +2 -2
  151. package/dist/lib/ui/Button.js +8 -6
  152. package/dist/lib/ui/Button.js.map +1 -1
  153. package/dist/lib/ui/Callout.js +1 -1
  154. package/dist/lib/ui/Callout.js.map +1 -1
  155. package/dist/lib/ui/Card.js +1 -1
  156. package/dist/lib/ui/Checkbox.js +1 -1
  157. package/dist/lib/ui/Checkbox.js.map +1 -1
  158. package/dist/lib/ui/Command.d.ts +2 -2
  159. package/dist/lib/ui/Command.js +3 -3
  160. package/dist/lib/ui/Command.js.map +1 -1
  161. package/dist/lib/ui/Dialog.js +1 -1
  162. package/dist/lib/ui/Dialog.js.map +1 -1
  163. package/dist/lib/ui/DropdownMenu.js +4 -4
  164. package/dist/lib/ui/DropdownMenu.js.map +1 -1
  165. package/dist/lib/ui/HoverCard.js +1 -1
  166. package/dist/lib/ui/HoverCard.js.map +1 -1
  167. package/dist/lib/ui/Input.js +1 -1
  168. package/dist/lib/ui/Input.js.map +1 -1
  169. package/dist/lib/ui/Popover.js +1 -1
  170. package/dist/lib/ui/Popover.js.map +1 -1
  171. package/dist/lib/ui/RadioGroup.js +1 -1
  172. package/dist/lib/ui/RadioGroup.js.map +1 -1
  173. package/dist/lib/ui/Select.js +2 -2
  174. package/dist/lib/ui/Select.js.map +1 -1
  175. package/dist/lib/ui/Slider.js +1 -1
  176. package/dist/lib/ui/Slider.js.map +1 -1
  177. package/dist/lib/ui/Switch.js +1 -1
  178. package/dist/lib/ui/Switch.js.map +1 -1
  179. package/dist/lib/ui/Tabs.js +2 -2
  180. package/dist/lib/ui/Tabs.js.map +1 -1
  181. package/dist/lib/ui/Textarea.js +1 -1
  182. package/dist/lib/ui/Textarea.js.map +1 -1
  183. package/dist/lib/ui/Toggle.js +1 -1
  184. package/dist/lib/ui/Toggle.js.map +1 -1
  185. package/dist/lib/ui/Tooltip.d.ts +2 -1
  186. package/dist/lib/ui/Tooltip.js +2 -1
  187. package/dist/lib/ui/Tooltip.js.map +1 -1
  188. package/dist/lib/util/useExposedProps.d.ts +8 -1
  189. package/dist/lib/util/useExposedProps.js.map +1 -1
  190. package/dist/vite/api/SchemaManager.js +16 -1
  191. package/dist/vite/api/SchemaManager.js.map +1 -1
  192. package/dist/vite/build.js +44 -6
  193. package/dist/vite/build.js.map +1 -1
  194. package/dist/vite/config.d.ts +2 -9
  195. package/dist/vite/config.js +6 -95
  196. package/dist/vite/config.js.map +1 -1
  197. package/dist/vite/config.test.js +1 -1
  198. package/dist/vite/config.test.js.map +1 -1
  199. package/dist/vite/css/plugin.d.ts +1 -2
  200. package/dist/vite/css/plugin.js +3 -2
  201. package/dist/vite/css/plugin.js.map +1 -1
  202. package/dist/vite/dev-server.d.ts +0 -1
  203. package/dist/vite/dev-server.js +10 -12
  204. package/dist/vite/dev-server.js.map +1 -1
  205. package/dist/vite/html.d.ts +2 -2
  206. package/dist/vite/html.js +5 -2
  207. package/dist/vite/html.js.map +1 -1
  208. package/dist/vite/plugin-api-keys.d.ts +1 -2
  209. package/dist/vite/plugin-api-keys.js +9 -3
  210. package/dist/vite/plugin-api-keys.js.map +1 -1
  211. package/dist/vite/plugin-api.d.ts +1 -2
  212. package/dist/vite/plugin-api.js +5 -4
  213. package/dist/vite/plugin-api.js.map +1 -1
  214. package/dist/vite/plugin-auth.d.ts +1 -2
  215. package/dist/vite/plugin-auth.js +3 -2
  216. package/dist/vite/plugin-auth.js.map +1 -1
  217. package/dist/vite/plugin-component.d.ts +1 -2
  218. package/dist/vite/plugin-component.js +3 -2
  219. package/dist/vite/plugin-component.js.map +1 -1
  220. package/dist/vite/plugin-config-reload.d.ts +1 -2
  221. package/dist/vite/plugin-config-reload.js +21 -22
  222. package/dist/vite/plugin-config-reload.js.map +1 -1
  223. package/dist/vite/plugin-config.d.ts +1 -2
  224. package/dist/vite/plugin-config.js +4 -3
  225. package/dist/vite/plugin-config.js.map +1 -1
  226. package/dist/vite/plugin-configure-tailwind.d.ts +2 -0
  227. package/dist/vite/plugin-configure-tailwind.js +38 -0
  228. package/dist/vite/plugin-configure-tailwind.js.map +1 -0
  229. package/dist/vite/plugin-custom-pages.d.ts +1 -2
  230. package/dist/vite/plugin-custom-pages.js +3 -2
  231. package/dist/vite/plugin-custom-pages.js.map +1 -1
  232. package/dist/vite/plugin-docs.d.ts +1 -2
  233. package/dist/vite/plugin-docs.js +4 -3
  234. package/dist/vite/plugin-docs.js.map +1 -1
  235. package/dist/vite/plugin-frontmatter.d.ts +1 -2
  236. package/dist/vite/plugin-frontmatter.js +3 -2
  237. package/dist/vite/plugin-frontmatter.js.map +1 -1
  238. package/dist/vite/plugin-mdx.d.ts +1 -2
  239. package/dist/vite/plugin-mdx.js +3 -2
  240. package/dist/vite/plugin-mdx.js.map +1 -1
  241. package/dist/vite/plugin-redirect.d.ts +1 -2
  242. package/dist/vite/plugin-redirect.js +3 -2
  243. package/dist/vite/plugin-redirect.js.map +1 -1
  244. package/dist/vite/plugin-search.d.ts +1 -2
  245. package/dist/vite/plugin-search.js +3 -2
  246. package/dist/vite/plugin-search.js.map +1 -1
  247. package/dist/vite/plugin-shiki-register.d.ts +1 -2
  248. package/dist/vite/plugin-shiki-register.js +2 -1
  249. package/dist/vite/plugin-shiki-register.js.map +1 -1
  250. package/dist/vite/plugin-sidebar.d.ts +1 -2
  251. package/dist/vite/plugin-sidebar.js +3 -2
  252. package/dist/vite/plugin-sidebar.js.map +1 -1
  253. package/dist/vite/plugin-theme-css.d.ts +1 -2
  254. package/dist/vite/plugin-theme-css.js +20 -60
  255. package/dist/vite/plugin-theme-css.js.map +1 -1
  256. package/dist/vite/plugin.d.ts +1 -2
  257. package/dist/vite/plugin.js +22 -21
  258. package/dist/vite/plugin.js.map +1 -1
  259. package/dist/vite/sitemap.d.ts +1 -1
  260. package/dist/zuplo/with-zuplo.d.ts +2 -2
  261. package/dist/zuplo/with-zuplo.js.map +1 -1
  262. package/lib/Button-BE9IVkWV.js +51 -0
  263. package/lib/Button-BE9IVkWV.js.map +1 -0
  264. package/lib/{Callout-XadUe37J.js → Callout-BkgOUkoZ.js} +9 -8
  265. package/lib/Callout-BkgOUkoZ.js.map +1 -0
  266. package/lib/{Card-BlCYNw5W.js → Card-DPhGbYUM.js} +3 -3
  267. package/lib/{Card-BlCYNw5W.js.map → Card-DPhGbYUM.js.map} +1 -1
  268. package/lib/{CategoryHeading-DZi-Szor.js → CategoryHeading-Cu2RwgjC.js} +2 -2
  269. package/lib/{CategoryHeading-DZi-Szor.js.map → CategoryHeading-Cu2RwgjC.js.map} +1 -1
  270. package/lib/{Dialog-CNf2oWXG.js → Dialog-Du6WMcIA.js} +8 -7
  271. package/lib/Dialog-Du6WMcIA.js.map +1 -0
  272. package/lib/{Drawer-BPBxzel2.js → Drawer-BzkOKwgC.js} +2 -2
  273. package/lib/{Drawer-BPBxzel2.js.map → Drawer-BzkOKwgC.js.map} +1 -1
  274. package/lib/Markdown-BRAyzyUJ.js +15348 -0
  275. package/lib/Markdown-BRAyzyUJ.js.map +1 -0
  276. package/lib/{MdxPage-tTTaDsLc.js → MdxPage-B3v1BSKr.js} +11 -11
  277. package/lib/MdxPage-B3v1BSKr.js.map +1 -0
  278. package/lib/{OasProvider-DalHQixM.js → OasProvider-5jrFuhVk.js} +3 -3
  279. package/lib/{OasProvider-DalHQixM.js.map → OasProvider-5jrFuhVk.js.map} +1 -1
  280. package/lib/{OperationList-BB09ENaq.js → OperationList-BmoMLQPO.js} +1039 -1005
  281. package/lib/OperationList-BmoMLQPO.js.map +1 -0
  282. package/lib/Pagination-Cr0fWZS3.js +36 -0
  283. package/lib/Pagination-Cr0fWZS3.js.map +1 -0
  284. package/lib/RouteGuard-PrSVLbSr.js +55 -0
  285. package/lib/RouteGuard-PrSVLbSr.js.map +1 -0
  286. package/lib/{SchemaList-BH9bgMRw.js → SchemaList-B4riYLoP.js} +61 -47
  287. package/lib/SchemaList-B4riYLoP.js.map +1 -0
  288. package/lib/{SchemaView-BsB7EFRl.js → SchemaView-CPZ6RgsF.js} +100 -95
  289. package/lib/SchemaView-CPZ6RgsF.js.map +1 -0
  290. package/lib/{AuthenticationPlugin-BTJ37DKg.js → SignUp-CWaiH0tY.js} +23 -50
  291. package/lib/SignUp-CWaiH0tY.js.map +1 -0
  292. package/lib/Slot-Bo6K4tnb.js +160 -0
  293. package/lib/Slot-Bo6K4tnb.js.map +1 -0
  294. package/lib/{SyntaxHighlight-UxOF1xNb.js → SyntaxHighlight-DedRjJNr.js} +233 -212
  295. package/lib/{SyntaxHighlight-UxOF1xNb.js.map → SyntaxHighlight-DedRjJNr.js.map} +1 -1
  296. package/lib/{Toc-Ax54Pw8S.js → Toc-lL3fzNkl.js} +5 -5
  297. package/lib/Toc-lL3fzNkl.js.map +1 -0
  298. package/lib/{circular-CZaZtOBs.js → circular-oB4auIIg.js} +2 -2
  299. package/lib/{circular-CZaZtOBs.js.map → circular-oB4auIIg.js.map} +1 -1
  300. package/lib/clsx-OuTLNxxd.js +17 -0
  301. package/lib/clsx-OuTLNxxd.js.map +1 -0
  302. package/lib/{cn-CwJPJKOE.js → cn-wvCW-ho6.js} +1015 -562
  303. package/lib/cn-wvCW-ho6.js.map +1 -0
  304. package/lib/{createServer-DmqFeMgf.js → createServer-DCB82j2t.js} +81 -81
  305. package/lib/{createServer-DmqFeMgf.js.map → createServer-DCB82j2t.js.map} +1 -1
  306. package/lib/{hook-BwOB_iZo.js → hook-DawSLaZr.js} +323 -300
  307. package/lib/hook-DawSLaZr.js.map +1 -0
  308. package/lib/{index-sS7O9W-R.js → index-BXYvD5-7.js} +868 -758
  309. package/lib/index-BXYvD5-7.js.map +1 -0
  310. package/lib/{index-Z13x6tPX.js → index-DI5SPFK9.js} +2 -2
  311. package/lib/{index-Z13x6tPX.js.map → index-DI5SPFK9.js.map} +1 -1
  312. package/lib/index-QzXzw_ra.js +24 -0
  313. package/lib/index-QzXzw_ra.js.map +1 -0
  314. package/lib/{RouteGuard-lkdEJoDV.js → index.esm-BFcSKCe-.js} +232 -281
  315. package/lib/index.esm-BFcSKCe-.js.map +1 -0
  316. package/lib/{index.esm-D2ZUREQN.js → index.esm-DSfX_eMP.js} +3 -3
  317. package/lib/{index.esm-D2ZUREQN.js.map → index.esm-DSfX_eMP.js.map} +1 -1
  318. package/lib/joinPath-B7kNnUX4.js +8 -0
  319. package/lib/joinPath-B7kNnUX4.js.map +1 -0
  320. package/lib/{mutation-CL2MCRQL.js → mutation-oxMvODNQ.js} +2 -2
  321. package/lib/{mutation-CL2MCRQL.js.map → mutation-oxMvODNQ.js.map} +1 -1
  322. package/lib/ui/Accordion.js +1 -1
  323. package/lib/ui/ActionButton.js +2 -2
  324. package/lib/ui/Alert.js +2 -2
  325. package/lib/ui/AlertDialog.js +1 -1
  326. package/lib/ui/Badge.js +3 -3
  327. package/lib/ui/Badge.js.map +1 -1
  328. package/lib/ui/Breadcrumb.js +1 -1
  329. package/lib/ui/Button.js +20 -18
  330. package/lib/ui/Button.js.map +1 -1
  331. package/lib/ui/Callout.js +6 -5
  332. package/lib/ui/Callout.js.map +1 -1
  333. package/lib/ui/Card.js +8 -8
  334. package/lib/ui/Card.js.map +1 -1
  335. package/lib/ui/Carousel.js +1 -1
  336. package/lib/ui/Checkbox.js +7 -7
  337. package/lib/ui/Checkbox.js.map +1 -1
  338. package/lib/ui/CodeBlock.js +1 -1
  339. package/lib/ui/Command.js +43 -43
  340. package/lib/ui/Command.js.map +1 -1
  341. package/lib/ui/Dialog.js +2 -2
  342. package/lib/ui/Dialog.js.map +1 -1
  343. package/lib/ui/Drawer.js +2 -2
  344. package/lib/ui/DropdownMenu.js +34 -34
  345. package/lib/ui/DropdownMenu.js.map +1 -1
  346. package/lib/ui/Form.js +2 -2
  347. package/lib/ui/HoverCard.js +5 -5
  348. package/lib/ui/HoverCard.js.map +1 -1
  349. package/lib/ui/Input.js +2 -2
  350. package/lib/ui/Input.js.map +1 -1
  351. package/lib/ui/Label.js +2 -2
  352. package/lib/ui/Pagination.js +1 -1
  353. package/lib/ui/Popover.js +2 -2
  354. package/lib/ui/Popover.js.map +1 -1
  355. package/lib/ui/Progress.js +1 -1
  356. package/lib/ui/RadioGroup.js +10 -10
  357. package/lib/ui/RadioGroup.js.map +1 -1
  358. package/lib/ui/ScrollArea.js +1 -1
  359. package/lib/ui/Select.js +31 -31
  360. package/lib/ui/Select.js.map +1 -1
  361. package/lib/ui/Skeleton.js +1 -1
  362. package/lib/ui/Slider.js +5 -5
  363. package/lib/ui/Slider.js.map +1 -1
  364. package/lib/ui/Switch.js +5 -5
  365. package/lib/ui/Switch.js.map +1 -1
  366. package/lib/ui/SyntaxHighlight.js +2 -2
  367. package/lib/ui/Tabs.js +16 -16
  368. package/lib/ui/Tabs.js.map +1 -1
  369. package/lib/ui/Textarea.js +5 -5
  370. package/lib/ui/Textarea.js.map +1 -1
  371. package/lib/ui/Toggle.js +7 -7
  372. package/lib/ui/Toggle.js.map +1 -1
  373. package/lib/ui/ToggleGroup.js +1 -1
  374. package/lib/ui/Tooltip.js +15 -8
  375. package/lib/ui/Tooltip.js.map +1 -1
  376. package/lib/ui/util.js +1 -1
  377. package/lib/useExposedProps-DG8J6ewJ.js.map +1 -1
  378. package/lib/useMutation-C_j3dA_L.js +97 -0
  379. package/lib/useMutation-C_j3dA_L.js.map +1 -0
  380. package/lib/zudoku.auth-auth0.js +1 -1
  381. package/lib/zudoku.auth-auth0.js.map +1 -1
  382. package/lib/zudoku.auth-clerk.js +99 -82
  383. package/lib/zudoku.auth-clerk.js.map +1 -1
  384. package/lib/zudoku.auth-openid.js +246 -216
  385. package/lib/zudoku.auth-openid.js.map +1 -1
  386. package/lib/zudoku.components.js +4957 -33
  387. package/lib/zudoku.components.js.map +1 -1
  388. package/lib/zudoku.hooks.js +21 -12
  389. package/lib/zudoku.hooks.js.map +1 -1
  390. package/lib/zudoku.plugin-api-catalog.js +8 -8
  391. package/lib/zudoku.plugin-api-catalog.js.map +1 -1
  392. package/lib/zudoku.plugin-api-keys.js +5022 -214
  393. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  394. package/lib/zudoku.plugin-custom-pages.js +2 -2
  395. package/lib/zudoku.plugin-custom-pages.js.map +1 -1
  396. package/lib/zudoku.plugin-markdown.js +1 -1
  397. package/lib/zudoku.plugin-markdown.js.map +1 -1
  398. package/lib/zudoku.plugin-openapi.js +3 -3
  399. package/lib/zudoku.plugin-redirect.js.map +1 -1
  400. package/lib/zudoku.plugin-search-pagefind.js +5 -5
  401. package/lib/zudoku.plugins.js +7 -6
  402. package/lib/zudoku.plugins.js.map +1 -1
  403. package/package.json +15 -15
  404. package/src/app/defaultTheme.css +54 -0
  405. package/src/app/font.geist.css +73 -0
  406. package/src/app/main.css +114 -157
  407. package/src/app/main.tsx +4 -28
  408. package/src/lib/authentication/AuthenticationPlugin.tsx +18 -4
  409. package/src/lib/authentication/authentication.ts +2 -5
  410. package/src/lib/authentication/providers/auth0.tsx +8 -2
  411. package/src/lib/authentication/providers/clerk.tsx +72 -48
  412. package/src/lib/authentication/providers/openid.tsx +19 -26
  413. package/src/lib/authentication/providers/supabase.tsx +7 -7
  414. package/src/lib/components/Autocomplete.tsx +1 -1
  415. package/src/lib/components/Banner.tsx +1 -1
  416. package/src/lib/components/ErrorPage.tsx +1 -1
  417. package/src/lib/components/Footer.tsx +4 -4
  418. package/src/lib/components/Header.tsx +29 -29
  419. package/src/lib/components/Heading.tsx +9 -5
  420. package/src/lib/components/InlineCode.tsx +1 -1
  421. package/src/lib/components/Layout.tsx +3 -3
  422. package/src/lib/components/Main.tsx +4 -4
  423. package/src/lib/components/Markdown.tsx +14 -4
  424. package/src/lib/components/MobileTopNavigation.tsx +3 -2
  425. package/src/lib/components/NotFoundPage.tsx +1 -1
  426. package/src/lib/components/Pagination.tsx +3 -9
  427. package/src/lib/components/Search.tsx +1 -1
  428. package/src/lib/components/Slot.test.tsx +465 -0
  429. package/src/lib/components/Slot.tsx +64 -0
  430. package/src/lib/components/TopNavigation.tsx +5 -17
  431. package/src/lib/components/Zudoku.tsx +9 -9
  432. package/src/lib/components/context/SlotProvider.tsx +149 -0
  433. package/src/lib/components/context/ZudokuProvider.tsx +2 -1
  434. package/src/lib/components/index.ts +14 -10
  435. package/src/lib/components/navigation/PoweredByZudoku.tsx +1 -1
  436. package/src/lib/components/navigation/Sidebar.tsx +3 -3
  437. package/src/lib/components/navigation/SidebarBadge.tsx +1 -1
  438. package/src/lib/components/navigation/SidebarCategory.tsx +3 -3
  439. package/src/lib/components/navigation/SidebarItem.tsx +57 -30
  440. package/src/lib/components/navigation/SidebarWrapper.tsx +2 -2
  441. package/src/lib/components/navigation/Toc.tsx +2 -2
  442. package/src/lib/components/navigation/utils.ts +42 -6
  443. package/src/lib/core/ZudokuContext.ts +24 -12
  444. package/src/lib/core/plugins.ts +10 -2
  445. package/src/lib/errors/ErrorAlert.tsx +1 -1
  446. package/src/lib/hooks/index.ts +11 -0
  447. package/src/lib/plugins/api-catalog/Catalog.tsx +1 -1
  448. package/src/lib/plugins/api-keys/CreateApiKey.tsx +54 -42
  449. package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +292 -112
  450. package/src/lib/plugins/api-keys/index.tsx +101 -55
  451. package/src/lib/plugins/custom-pages/index.tsx +1 -1
  452. package/src/lib/plugins/markdown/MdxPage.tsx +2 -2
  453. package/src/lib/plugins/markdown/index.tsx +2 -2
  454. package/src/lib/plugins/markdown/resolver.ts +4 -2
  455. package/src/lib/plugins/openapi/CollapsibleCode.tsx +1 -1
  456. package/src/lib/plugins/openapi/ColorizedParam.tsx +2 -2
  457. package/src/lib/plugins/openapi/OperationList.tsx +2 -2
  458. package/src/lib/plugins/openapi/OperationListItem.tsx +6 -34
  459. package/src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx +7 -1
  460. package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +5 -16
  461. package/src/lib/plugins/openapi/SchemaList.tsx +20 -8
  462. package/src/lib/plugins/openapi/Sidecar.tsx +1 -1
  463. package/src/lib/plugins/openapi/SidecarExamples.tsx +6 -0
  464. package/src/lib/plugins/openapi/components/EnumValues.tsx +1 -1
  465. package/src/lib/plugins/openapi/components/ResponseContent.tsx +104 -0
  466. package/src/lib/plugins/openapi/playground/Playground.tsx +7 -1
  467. package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +1 -1
  468. package/src/lib/plugins/openapi/playground/SubmitButton.tsx +24 -29
  469. package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +2 -2
  470. package/src/lib/plugins/openapi/schema/SchemaView.tsx +7 -3
  471. package/src/lib/plugins/redirect/index.tsx +1 -1
  472. package/src/lib/ui/Badge.tsx +2 -2
  473. package/src/lib/ui/Button.tsx +9 -6
  474. package/src/lib/ui/Callout.tsx +1 -0
  475. package/src/lib/ui/Card.tsx +1 -1
  476. package/src/lib/ui/Checkbox.tsx +1 -1
  477. package/src/lib/ui/Command.tsx +5 -5
  478. package/src/lib/ui/Dialog.tsx +1 -1
  479. package/src/lib/ui/DropdownMenu.tsx +4 -4
  480. package/src/lib/ui/HoverCard.tsx +1 -1
  481. package/src/lib/ui/Input.tsx +1 -1
  482. package/src/lib/ui/Popover.tsx +1 -1
  483. package/src/lib/ui/RadioGroup.tsx +1 -1
  484. package/src/lib/ui/Select.tsx +3 -3
  485. package/src/lib/ui/Slider.tsx +1 -1
  486. package/src/lib/ui/Switch.tsx +1 -1
  487. package/src/lib/ui/Tabs.tsx +2 -2
  488. package/src/lib/ui/Textarea.tsx +1 -1
  489. package/src/lib/ui/Toggle.tsx +1 -1
  490. package/src/lib/ui/Tooltip.tsx +16 -1
  491. package/src/lib/util/useExposedProps.tsx +12 -1
  492. package/dist/app/tailwind.d.ts +0 -4
  493. package/dist/app/tailwind.js +0 -97
  494. package/dist/app/tailwind.js.map +0 -1
  495. package/dist/config/common.d.ts +0 -10
  496. package/dist/config/common.js +0 -2
  497. package/dist/config/common.js.map +0 -1
  498. package/dist/config/validators/common.d.ts +0 -8001
  499. package/dist/config/validators/common.js +0 -414
  500. package/dist/config/validators/common.js.map +0 -1
  501. package/dist/lib/components/SlotletProvider.d.ts +0 -17
  502. package/dist/lib/components/SlotletProvider.js +0 -18
  503. package/dist/lib/components/SlotletProvider.js.map +0 -1
  504. package/dist/vite/plugin-docs.test.js +0 -22
  505. package/dist/vite/plugin-docs.test.js.map +0 -1
  506. package/lib/AuthenticationPlugin-BTJ37DKg.js.map +0 -1
  507. package/lib/Button-Bdk_Ij3U.js +0 -49
  508. package/lib/Button-Bdk_Ij3U.js.map +0 -1
  509. package/lib/Callout-XadUe37J.js.map +0 -1
  510. package/lib/Dialog-CNf2oWXG.js.map +0 -1
  511. package/lib/Markdown-D96AphCL.js +0 -7691
  512. package/lib/Markdown-D96AphCL.js.map +0 -1
  513. package/lib/MdxPage-tTTaDsLc.js.map +0 -1
  514. package/lib/OperationList-BB09ENaq.js.map +0 -1
  515. package/lib/Pagination-CtmnJOJi.js +0 -48
  516. package/lib/Pagination-CtmnJOJi.js.map +0 -1
  517. package/lib/RouteGuard-lkdEJoDV.js.map +0 -1
  518. package/lib/SchemaList-BH9bgMRw.js.map +0 -1
  519. package/lib/SchemaView-BsB7EFRl.js.map +0 -1
  520. package/lib/Select-HTio1oSE.js +0 -211
  521. package/lib/Select-HTio1oSE.js.map +0 -1
  522. package/lib/SlotletProvider-CTgIBRWg.js +0 -257
  523. package/lib/SlotletProvider-CTgIBRWg.js.map +0 -1
  524. package/lib/Toc-Ax54Pw8S.js.map +0 -1
  525. package/lib/cn-CwJPJKOE.js.map +0 -1
  526. package/lib/hook-BwOB_iZo.js.map +0 -1
  527. package/lib/index-BnT4-Efz.js +0 -4975
  528. package/lib/index-BnT4-Efz.js.map +0 -1
  529. package/lib/index-sS7O9W-R.js.map +0 -1
  530. package/src/app/tailwind.ts +0 -103
  531. package/src/lib/components/SlotletProvider.tsx +0 -55
  532. /package/dist/{vite/plugin-docs.test.d.ts → lib/components/Slot.test.d.ts} +0 -0
package/src/app/main.css CHANGED
@@ -1,102 +1,107 @@
1
- @tailwind base;
2
- @tailwind components;
3
- @tailwind utilities;
4
-
5
- @font-face {
6
- font-family: Geist;
7
- font-style: normal;
8
- font-weight: 100;
9
- font-display: swap;
10
- src: url("https://cdn.zudoku.dev/geist/Geist-Thin.woff2") format("woff2");
1
+ /* @vite-plugin-inject font */
2
+ @import "./defaultTheme.css" layer(theme);
3
+ @import "tailwindcss" source("..");
4
+
5
+ /* @vite-plugin-inject main */
6
+
7
+ @plugin "@tailwindcss/typography";
8
+ @custom-variant dark (&:is(.dark *));
9
+
10
+ @theme inline {
11
+ --color-background: var(--background);
12
+ --color-foreground: var(--foreground);
13
+ --color-card: var(--card);
14
+ --color-card-foreground: var(--card-foreground);
15
+ --color-popover: var(--popover);
16
+ --color-popover-foreground: var(--popover-foreground);
17
+ --color-primary: var(--primary);
18
+ --color-primary-foreground: var(--primary-foreground);
19
+ --color-secondary: var(--secondary);
20
+ --color-secondary-foreground: var(--secondary-foreground);
21
+ --color-muted: var(--muted);
22
+ --color-muted-foreground: var(--muted-foreground);
23
+ --color-accent: var(--accent);
24
+ --color-accent-foreground: var(--accent-foreground);
25
+ --color-destructive: var(--destructive);
26
+ --color-destructive-foreground: var(--destructive-foreground);
27
+ --color-border: var(--border);
28
+ --color-input: var(--input);
29
+ --color-ring: var(--ring);
30
+ --color-chart-1: var(--chart-1);
31
+ --color-chart-2: var(--chart-2);
32
+ --color-chart-3: var(--chart-3);
33
+ --color-chart-4: var(--chart-4);
34
+ --color-chart-5: var(--chart-5);
35
+
36
+ --radius-sm: calc(var(--radius) - 4px);
37
+ --radius-md: calc(var(--radius) - 2px);
38
+ --radius-lg: var(--radius);
39
+ --radius-xl: calc(var(--radius) + 4px);
40
+
41
+ --shadow-2xs: var(--shadow-2xs);
42
+ --shadow-xs: var(--shadow-xs);
43
+ --shadow-sm: var(--shadow-sm);
44
+ --shadow: var(--shadow);
45
+ --shadow-md: var(--shadow-md);
46
+ --shadow-lg: var(--shadow-lg);
47
+ --shadow-xl: var(--shadow-xl);
48
+ --shadow-2xl: var(--shadow-2xl);
49
+
50
+ --color-sidebar: var(--sidebar);
51
+ --color-sidebar-foreground: var(--sidebar-foreground);
52
+ --color-sidebar-primary: var(--sidebar-primary);
53
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
54
+ --color-sidebar-accent: var(--sidebar-accent);
55
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
56
+ --color-sidebar-border: var(--sidebar-border);
57
+ --color-sidebar-ring: var(--sidebar-ring);
11
58
  }
12
59
 
13
- @font-face {
14
- font-family: Geist;
15
- font-style: normal;
16
- font-weight: 200;
17
- font-display: swap;
18
- src: url("https://cdn.zudoku.dev/geist/Geist-UltraLight.woff2")
19
- format("woff2");
20
- }
21
-
22
- @font-face {
23
- font-family: Geist;
24
- font-style: normal;
25
- font-weight: 300;
26
- font-display: swap;
27
- src: url("https://cdn.zudoku.dev/geist/Geist-Light.woff2") format("woff2");
28
- }
29
-
30
- @font-face {
31
- font-family: Geist;
32
- font-style: normal;
33
- font-weight: 400;
34
- font-display: swap;
35
- src: url("https://cdn.zudoku.dev/geist/Geist-Regular.woff2") format("woff2");
36
- }
37
-
38
- @font-face {
39
- font-family: Geist;
40
- font-style: normal;
41
- font-weight: 500;
42
- font-display: swap;
43
- src: url("https://cdn.zudoku.dev/geist/Geist-Medium.woff2") format("woff2");
44
- }
45
-
46
- @font-face {
47
- font-family: Geist;
48
- font-style: normal;
49
- font-weight: 600;
50
- font-display: swap;
51
- src: url("https://cdn.zudoku.dev/geist/Geist-SemiBold.woff2") format("woff2");
52
- }
53
-
54
- @font-face {
55
- font-family: Geist;
56
- font-style: normal;
57
- font-weight: 700;
58
- font-display: swap;
59
- src: url("https://cdn.zudoku.dev/geist/Geist-Bold.woff2") format("woff2");
60
- }
61
-
62
- @font-face {
63
- font-family: Geist;
64
- font-style: normal;
65
- font-weight: 800;
66
- font-display: swap;
67
- src: url("https://cdn.zudoku.dev/geist/Geist-Black.woff2") format("woff2");
68
- }
69
-
70
- @font-face {
71
- font-family: Geist;
72
- font-style: normal;
73
- font-weight: 900;
74
- font-display: swap;
75
- src: url("https://cdn.zudoku.dev/geist/Geist-UltraBlack.woff2")
76
- format("woff2");
60
+ @utility prose {
61
+ a {
62
+ @apply font-normal underline-offset-4 hover:text-primary;
63
+ }
64
+ blockquote {
65
+ @apply not-italic text-neutral-500/75 dark:text-neutral-400;
66
+ /* Disable adding quote marks to block-quotes: https://github.com/tailwindlabs/tailwindcss-typography/issues/66 */
67
+ p {
68
+ &:first-of-type::before,
69
+ &:last-of-type::after {
70
+ content: none;
71
+ }
72
+ }
73
+ }
74
+ hr {
75
+ @apply border-border;
76
+ }
77
+ code::before {
78
+ content: none;
79
+ }
80
+ code::after {
81
+ content: none;
82
+ }
77
83
  }
78
84
 
79
85
  @layer base {
80
86
  :root {
81
87
  --top-header-height: 65px;
82
88
  --top-nav-height: 50px;
83
- --banner-height: 40px;
89
+ --banner-height: 35px;
84
90
  --header-height: calc(
85
- var(--top-header-height) + var(--top-nav-height) + var(--banner-height) -
86
- /* borders */ 2px
91
+ var(--top-header-height) + var(--top-nav-height) + var(--banner-height)
87
92
  );
88
93
  --scroll-padding: calc(var(--header-height) + 10px);
89
- --side-nav-width: theme("spacing.72");
90
- --padding-content-top: theme("spacing.6");
91
- --padding-content-bottom: theme("spacing.12");
92
- --padding-nav-item: theme("spacing[2.5]");
94
+ --side-nav-width: --spacing(72);
95
+ --padding-content-top: --spacing(6);
96
+ --padding-content-bottom: --spacing(12);
97
+ --padding-nav-item: --spacing(2.5);
93
98
  --sidecar-grid-cols: 1fr minmax(200px, 260px);
94
99
  --scrollbar-width: calc(100vw - 100%);
95
100
  }
96
101
 
97
102
  html {
98
103
  /* This is to prevent layout jumping when the scrollbar appears/disappears */
99
- @apply -me-[--scrollbar-width] scroll-pt-[--scroll-padding];
104
+ @apply -me-(--scrollbar-width) scroll-pt-(--scroll-padding);
100
105
  --dark: -1;
101
106
  }
102
107
 
@@ -129,26 +134,25 @@
129
134
  }
130
135
 
131
136
  ::selection {
132
- @apply bg-primary/100 text-primary-foreground;
137
+ @apply bg-primary text-primary-foreground;
133
138
  }
134
139
 
135
140
  .bg-primary::selection,
136
141
  .bg-primary ::selection {
137
- background: theme(colors.background);
138
- color: theme(colors.foreground);
142
+ background: var(--color-background);
143
+ color: var(--color-foreground);
139
144
  }
140
145
 
141
146
  .dark {
142
147
  color-scheme: dark;
143
148
  }
144
149
 
145
- .prose.prose {
146
- @apply prose-a:underline-offset-4 prose-a:font-normal hover:prose-a:text-primary;
147
- @apply prose-blockquote:not-italic prose-blockquote:text-neutral-500/75 prose-blockquote:dark:text-neutral-400;
148
- @apply prose-code:before:content-none prose-code:after:content-none prose-code:font-normal;
149
- @apply prose-headings:prose-code:mx-2 prose-li:my-0.5;
150
- @apply prose-hr:border-border;
150
+ button:not(:disabled),
151
+ [role="button"]:not(:disabled) {
152
+ cursor: pointer;
153
+ }
151
154
 
155
+ .prose.prose {
152
156
  ul.contains-task-list {
153
157
  @apply list-none px-0;
154
158
  li {
@@ -162,7 +166,8 @@
162
166
  @apply leading-normal;
163
167
  }
164
168
  .code-block .shiki {
165
- @apply grid;
169
+ @apply grid grid-rows-1;
170
+ grid-auto-rows: 1lh;
166
171
  }
167
172
 
168
173
  .shiki,
@@ -173,8 +178,8 @@
173
178
  text-decoration: var(--shiki-light-text-decoration) !important;
174
179
  }
175
180
 
176
- html.dark .shiki,
177
- html.dark .shiki span {
181
+ .dark .shiki,
182
+ .dark .shiki span {
178
183
  color: var(--shiki-dark);
179
184
  font-style: var(--shiki-dark-font-style) !important;
180
185
  font-weight: var(--shiki-dark-font-weight) !important;
@@ -188,22 +193,22 @@
188
193
  }
189
194
 
190
195
  .shiki.not-inline .line {
191
- @apply inline-flex items-baseline -mx-4 px-4 w-[calc(100%+2rem)];
196
+ @apply block -mx-4 px-4 w-[calc(100%+2rem)];
192
197
  --highlighted-bg: hsl(
193
198
  from hsl(var(--muted)) h s calc(l + 4 * var(--dark)) / 50%
194
199
  );
195
200
  }
196
201
  .shiki .line.highlighted {
197
- @apply bg-[--highlighted-bg];
202
+ @apply bg-(--highlighted-bg);
198
203
  }
199
204
 
200
205
  .shiki .highlighted-word {
201
- @apply bg-[--highlighted-bg] px-0.5 rounded;
206
+ @apply bg-(--highlighted-bg) px-0.5 rounded;
202
207
  box-shadow: 0 0 0 4px var(--highlighted-bg);
203
208
  }
204
209
 
205
210
  select {
206
- @apply focus-visible:ring-primary focus-visible:ring-[1.5px] focus:outline-none;
211
+ @apply focus-visible:ring-primary focus-visible:ring-[1.5px] focus:outline-hidden;
207
212
  }
208
213
 
209
214
  .CollapsibleContent {
@@ -300,65 +305,9 @@
300
305
  50% calc(50% + var(--s) / 2 + var(--b) / 2) / calc(4 * var(--s))
301
306
  calc(var(--s) + var(--b)) repeat-x;
302
307
  }
303
-
304
- /* Theme */
305
- :root {
306
- --background: 0 0% 100%;
307
- --foreground: 240 10% 3.9%;
308
- --card: 0 0% 100%;
309
- --card-foreground: 240 10% 3.9%;
310
- --popover: 0 0% 100%;
311
- --popover-foreground: 240 10% 3.9%;
312
- --primary: 240 5.9% 10%;
313
- --primary-foreground: 0 0% 98%;
314
- --secondary: 240 4.8% 95.9%;
315
- --secondary-foreground: 240 5.9% 10%;
316
- --muted: 240 4.8% 95.9%;
317
- --muted-foreground: 240 3.8% 46.1%;
318
- --accent: 240 4.8% 95.9%;
319
- --accent-foreground: 240 5.9% 10%;
320
- --destructive: 0 84.2% 60.2%;
321
- --destructive-foreground: 0 0% 98%;
322
- --border: 240 5.9% 95%;
323
- --input: 240 5.9% 90%;
324
- --ring: 240 5.9% 10%;
325
- --radius: 0.75rem;
326
- --chart-1: 12 76% 61%;
327
- --chart-2: 173 58% 39%;
328
- --chart-3: 197 37% 24%;
329
- --chart-4: 43 74% 66%;
330
- --chart-5: 27 87% 67%;
331
- }
332
-
333
- .dark {
334
- --background: 240 10% 3.9%;
335
- --foreground: 0 0% 98%;
336
- --card: 240 10% 3.9%;
337
- --card-foreground: 0 0% 98%;
338
- --popover: 240 10% 3.9%;
339
- --popover-foreground: 0 0% 98%;
340
- --primary: 0 0% 98%;
341
- --primary-foreground: 240 5.9% 10%;
342
- --secondary: 240 3.7% 15.9%;
343
- --secondary-foreground: 0 0% 98%;
344
- --muted: 240 3.7% 15.9%;
345
- --muted-foreground: 240 5% 64.9%;
346
- --accent: 240 3.7% 15.9%;
347
- --accent-foreground: 0 0% 98%;
348
- --destructive: 0 62.8% 30.6%;
349
- --destructive-foreground: 0 0% 98%;
350
- --border: 240 3.7% 15.9%;
351
- --input: 240 3.7% 15.9%;
352
- --ring: 240 4.9% 83.9%;
353
- --chart-1: 220 70% 50%;
354
- --chart-2: 160 60% 45%;
355
- --chart-3: 30 80% 55%;
356
- --chart-4: 280 65% 60%;
357
- --chart-5: 340 75% 55%;
358
- }
359
308
  }
360
309
 
361
- @layer components {
310
+ @layer utilities {
362
311
  .stepper > ol {
363
312
  --bullet-size: 1.75rem;
364
313
  --line-spacing: 0.25rem;
@@ -377,19 +326,27 @@
377
326
 
378
327
  /* Bullet with number */
379
328
  .stepper > ol > li::before {
380
- @apply absolute start-0 flex items-center justify-center size-[--bullet-size];
329
+ @apply absolute start-0 flex items-center justify-center size-(--bullet-size);
381
330
  @apply bg-muted/80 border border-border text-muted-foreground text-[calc(var(--bullet-size)/2)] font-semibold rounded-full;
382
331
  content: counter(step-counter);
383
332
  }
384
333
 
385
334
  /* Vertical line */
386
335
  .stepper > ol > li::after {
387
- @apply absolute content-[''] w-[2px] bg-border -translate-x-1/2 rtl:translate-x-1/2;
336
+ @apply absolute content-[''] w-[2px] bg-border -translate-x-1/2;
388
337
  inset-inline-start: calc(var(--bullet-size) / 2);
389
338
  top: calc(var(--bullet-size) + var(--line-spacing));
390
339
  height: calc(100% - var(--bullet-size) - (2 * var(--line-spacing)));
391
340
  }
392
341
 
342
+ /*
343
+ This can't be as `rtl:*` variant above, because it breaks the CSS minification. See:
344
+ https://github.com/tailwindlabs/tailwindcss/issues/16582
345
+ */
346
+ [dir="rtl"] .stepper > ol > li::after {
347
+ @apply translate-x-1/2;
348
+ }
349
+
393
350
  .stepper > ol > li > :first-child {
394
351
  @apply mt-0 pt-0;
395
352
  transform: translateY(calc((var(--bullet-size) - 1lh) / 2));
package/src/app/main.tsx CHANGED
@@ -31,18 +31,6 @@ await registerShiki(highlighter);
31
31
  export const convertZudokuConfigToOptions = (
32
32
  config: ZudokuConfig,
33
33
  ): ZudokuContextOptions => {
34
- const fallbackLogoLight =
35
- config.page?.logoUrl ??
36
- "https://cdn.zudoku.dev/logos/zudoku-logo-full-light.svg";
37
- const fallbackLogoDark =
38
- config.page?.logoUrl ??
39
- "https://cdn.zudoku.dev/logos/zudoku-logo-full-dark.svg";
40
-
41
- const isUsingFallback =
42
- !config.page?.logoUrl &&
43
- !config.page?.logo?.src?.light &&
44
- !config.page?.logo?.src?.dark;
45
-
46
34
  return {
47
35
  basePath: config.basePath,
48
36
  canonicalUrlOrigin: config.canonicalUrlOrigin,
@@ -52,16 +40,9 @@ export const convertZudokuConfigToOptions = (
52
40
  showPoweredBy:
53
41
  ZuploEnv.buildConfig?.entitlements.devPortalZuploBranding ??
54
42
  config.page?.showPoweredBy,
55
- logo: {
56
- ...(isUsingFallback ? { width: "130px" } : {}),
57
- ...config.page?.logo,
58
- src: {
59
- light: config.page?.logo?.src?.light ?? fallbackLogoLight,
60
- dark: config.page?.logo?.src?.dark ?? fallbackLogoDark,
61
- },
62
- },
43
+ logo: config.page?.logo,
63
44
  },
64
- slotlets: config.UNSAFE_slotlets,
45
+ slots: config.slots,
65
46
  metadata: {
66
47
  favicon: "https://cdn.zudoku.dev/logos/favicon.svg",
67
48
  title: "%s - Zudoku",
@@ -70,8 +51,8 @@ export const convertZudokuConfigToOptions = (
70
51
  sidebars: configuredSidebar,
71
52
  topNavigation: config.topNavigation,
72
53
  mdx: config.mdx,
73
- authentication: configuredAuthProvider,
74
54
  plugins: [
55
+ ...(configuredAuthProvider ? [configuredAuthProvider] : []),
75
56
  ...configuredDocsPlugins,
76
57
  ...configuredApiPlugins,
77
58
  ...(configuredSearchPlugin ? [configuredSearchPlugin] : []),
@@ -79,9 +60,6 @@ export const convertZudokuConfigToOptions = (
79
60
  ...(configuredApiKeysPlugin ? [configuredApiKeysPlugin] : []),
80
61
  ...(configuredCustomPagesPlugin ? [configuredCustomPagesPlugin] : []),
81
62
  ...configuredApiCatalogPlugins,
82
- ...(configuredAuthProvider?.getAuthenticationPlugin
83
- ? [configuredAuthProvider.getAuthenticationPlugin()]
84
- : []),
85
63
  ...(config.plugins ?? []),
86
64
  ],
87
65
  syntaxHighlighting: {
@@ -97,9 +75,7 @@ export const getRoutesByOptions = (
97
75
  ) => {
98
76
  const allPlugins = [
99
77
  ...(options.plugins ?? []),
100
- ...(options.authentication?.getAuthenticationPlugin
101
- ? [options.authentication.getAuthenticationPlugin()]
102
- : []),
78
+ ...(options.authentication ? [options.authentication] : []),
103
79
  ];
104
80
 
105
81
  const routes = allPlugins
@@ -1,8 +1,8 @@
1
1
  import { LogOutIcon } from "lucide-react";
2
2
  import {
3
- CommonPlugin,
4
- NavigationPlugin,
5
- ProfileMenuPlugin,
3
+ type CommonPlugin,
4
+ type NavigationPlugin,
5
+ type ProfileMenuPlugin,
6
6
  } from "../core/plugins.js";
7
7
  import { SignIn } from "./components/SignIn.js";
8
8
  import { SignOut } from "./components/SignOut.js";
@@ -10,7 +10,7 @@ import { SignUp } from "./components/SignUp.js";
10
10
 
11
11
  type PluginInterface = NavigationPlugin & CommonPlugin & ProfileMenuPlugin;
12
12
 
13
- export class AuthenticationPlugin implements PluginInterface {
13
+ export class CoreAuthenticationPlugin implements PluginInterface {
14
14
  getRoutes() {
15
15
  return [
16
16
  {
@@ -28,6 +28,20 @@ export class AuthenticationPlugin implements PluginInterface {
28
28
  ];
29
29
  }
30
30
 
31
+ async getSidebar(path: string) {
32
+ if (path.startsWith("/settings")) {
33
+ return [
34
+ {
35
+ type: "link" as const,
36
+ label: "Logout",
37
+ href: "/signout",
38
+ },
39
+ ];
40
+ }
41
+
42
+ return [];
43
+ }
44
+
31
45
  getProfileMenuItems() {
32
46
  return [
33
47
  {
@@ -1,16 +1,13 @@
1
- import { ZudokuPlugin } from "../core/plugins.js";
2
-
3
- export interface AuthenticationProvider {
1
+ export interface AuthenticationPlugin {
4
2
  signUp(options?: { redirectTo?: string }): Promise<void>;
5
3
  signIn(options?: { redirectTo?: string }): Promise<void>;
6
4
  signOut(): Promise<void>;
7
5
  // @deprecated use signRequest instead
8
6
  getAccessToken(): Promise<string>;
9
- getAuthenticationPlugin?(): ZudokuPlugin;
10
7
  onPageLoad?(): void;
11
8
  signRequest(request: Request): Promise<Request>;
12
9
  }
13
10
 
14
11
  export interface AuthenticationProviderInitializer<TConfig> {
15
- (config: TConfig): AuthenticationProvider;
12
+ (config: TConfig): AuthenticationPlugin;
16
13
  }
@@ -1,9 +1,15 @@
1
1
  import { type Auth0AuthenticationConfig } from "../../../config/config.js";
2
- import { type AuthenticationProviderInitializer } from "../authentication.js";
2
+ import {
3
+ type AuthenticationPlugin,
4
+ type AuthenticationProviderInitializer,
5
+ } from "../authentication.js";
3
6
  import { useAuthState } from "../state.js";
4
7
  import { OpenIDAuthenticationProvider } from "./openid.js";
5
8
 
6
- class Auth0AuthenticationProvider extends OpenIDAuthenticationProvider {
9
+ class Auth0AuthenticationProvider
10
+ extends OpenIDAuthenticationProvider
11
+ implements AuthenticationPlugin
12
+ {
7
13
  constructor(config: Auth0AuthenticationConfig) {
8
14
  super({
9
15
  ...config,
@@ -1,50 +1,16 @@
1
1
  import type { Clerk } from "@clerk/clerk-js";
2
+ import { LogOutIcon } from "lucide-react";
3
+ import { type ZudokuPlugin } from "zudoku/plugins";
2
4
  import { type ClerkAuthenticationConfig } from "../../../config/config.js";
3
- import { type AuthenticationProviderInitializer } from "../authentication.js";
4
- import { AuthenticationPlugin } from "../AuthenticationPlugin.js";
5
+ import {
6
+ type AuthenticationPlugin,
7
+ type AuthenticationProviderInitializer,
8
+ } from "../authentication.js";
9
+ import { SignIn } from "../components/SignIn.js";
10
+ import { SignOut } from "../components/SignOut.js";
11
+ import { SignUp } from "../components/SignUp.js";
5
12
  import { useAuthState } from "../state.js";
6
13
 
7
- class ClerkAuthPlugin extends AuthenticationPlugin {
8
- constructor(private clerk: Promise<Clerk | undefined>) {
9
- super();
10
- }
11
- initialize = async () => {
12
- const clerk = await this.clerk;
13
-
14
- if (!clerk) {
15
- return;
16
- }
17
-
18
- if (clerk.session) {
19
- const verifiedEmail = clerk.session.user.emailAddresses.find(
20
- (email) => email.verification.status === "verified",
21
- );
22
- useAuthState.setState({
23
- isAuthenticated: true,
24
- isPending: false,
25
- profile: {
26
- sub: clerk.session.user.id,
27
- name: clerk.session.user.fullName ?? undefined,
28
- email:
29
- verifiedEmail?.emailAddress ??
30
- clerk.session.user.emailAddresses[0]?.emailAddress,
31
- emailVerified: verifiedEmail !== undefined,
32
- pictureUrl: clerk.session.user.imageUrl,
33
- },
34
- providerData: {
35
- user: clerk.session.user,
36
- },
37
- });
38
- } else {
39
- useAuthState.setState({
40
- isAuthenticated: false,
41
- isPending: false,
42
- profile: undefined,
43
- });
44
- }
45
- };
46
- }
47
-
48
14
  const clerkAuth: AuthenticationProviderInitializer<
49
15
  ClerkAuthenticationConfig
50
16
  > = ({
@@ -52,7 +18,7 @@ const clerkAuth: AuthenticationProviderInitializer<
52
18
  redirectToAfterSignOut = "/",
53
19
  redirectToAfterSignUp,
54
20
  redirectToAfterSignIn,
55
- }) => {
21
+ }): AuthenticationPlugin & ZudokuPlugin => {
56
22
  let clerkApi: Clerk | undefined;
57
23
  const ensureLoaded = (async () => {
58
24
  if (typeof window === "undefined") return;
@@ -111,7 +77,68 @@ const clerkAuth: AuthenticationProviderInitializer<
111
77
  }
112
78
 
113
79
  return {
114
- clerk: clerkApi,
80
+ getRoutes: () => {
81
+ return [
82
+ {
83
+ path: "/signout",
84
+ element: <SignOut />,
85
+ },
86
+ {
87
+ path: "/signin",
88
+ element: <SignIn />,
89
+ },
90
+ {
91
+ path: "/signup",
92
+ element: <SignUp />,
93
+ },
94
+ ];
95
+ },
96
+
97
+ getProfileMenuItems() {
98
+ return [
99
+ {
100
+ label: "Logout",
101
+ path: "/signout",
102
+ category: "bottom",
103
+ icon: LogOutIcon,
104
+ } as const,
105
+ ];
106
+ },
107
+ initialize: async () => {
108
+ const clerk = await ensureLoaded;
109
+
110
+ if (!clerk) {
111
+ return;
112
+ }
113
+
114
+ if (clerk.session) {
115
+ const verifiedEmail = clerk.session.user.emailAddresses.find(
116
+ (email) => email.verification.status === "verified",
117
+ );
118
+ useAuthState.setState({
119
+ isAuthenticated: true,
120
+ isPending: false,
121
+ profile: {
122
+ sub: clerk.session.user.id,
123
+ name: clerk.session.user.fullName ?? undefined,
124
+ email:
125
+ verifiedEmail?.emailAddress ??
126
+ clerk.session.user.emailAddresses[0]?.emailAddress,
127
+ emailVerified: verifiedEmail !== undefined,
128
+ pictureUrl: clerk.session.user.imageUrl,
129
+ },
130
+ providerData: {
131
+ user: clerk.session.user,
132
+ },
133
+ });
134
+ } else {
135
+ useAuthState.setState({
136
+ isAuthenticated: false,
137
+ isPending: false,
138
+ profile: undefined,
139
+ });
140
+ }
141
+ },
115
142
  getAccessToken,
116
143
  signRequest,
117
144
  signOut: async () => {
@@ -148,9 +175,6 @@ const clerkAuth: AuthenticationProviderInitializer<
148
175
  : redirectTo,
149
176
  });
150
177
  },
151
- getAuthenticationPlugin() {
152
- return new ClerkAuthPlugin(ensureLoaded);
153
- },
154
178
  };
155
179
  };
156
180