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 +1 @@
1
- {"version":3,"file":"Tooltip.js","sources":["../../src/lib/ui/Tooltip.tsx"],"sourcesContent":["import * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport * as React from \"react\";\n\nimport { cn } from \"../util/cn.js\";\n\nconst TooltipProvider = TooltipPrimitive.Provider;\n\nconst Tooltip = TooltipPrimitive.Root;\n\nconst TooltipTrigger = TooltipPrimitive.Trigger;\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nexport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };\n"],"names":["TooltipProvider","TooltipPrimitive","Tooltip","TooltipTrigger","TooltipContent","React","className","sideOffset","props","ref","jsx","cn"],"mappings":";;;;AAKA,MAAMA,IAAkBC,EAAiB,UAEnCC,IAAUD,EAAiB,MAE3BE,IAAiBF,EAAiB,SAElCG,IAAiBC,EAAM,WAG3B,CAAC,EAAE,WAAAC,GAAW,YAAAC,IAAa,GAAG,GAAGC,KAASC,MAC1CC,gBAAAA,EAAA;AAAA,EAACT,EAAiB;AAAA,EAAjB;AAAA,IACC,KAAAQ;AAAA,IACA,YAAAF;AAAA,IACA,WAAWI;AAAA,MACT;AAAA,MACAL;AAAA,IACF;AAAA,IACC,GAAGE;AAAA,EAAA;AACN,CACD;AACDJ,EAAe,cAAcH,EAAiB,QAAQ;"}
1
+ {"version":3,"file":"Tooltip.js","sources":["../../src/lib/ui/Tooltip.tsx"],"sourcesContent":["import * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport * as React from \"react\";\n\nimport { cn } from \"../util/cn.js\";\n\nconst TooltipProvider = TooltipPrimitive.Provider;\n\nconst Tooltip = TooltipPrimitive.Root;\n\nconst TooltipTrigger = TooltipPrimitive.Trigger;\n\nconst TooltipArrow = (\n props: React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Arrow>,\n) => (\n <TooltipPrimitive.Arrow\n {...props}\n className={cn(props.className, \"fill-border\")}\n />\n);\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nexport {\n Tooltip,\n TooltipArrow,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n};\n"],"names":["TooltipProvider","TooltipPrimitive","Tooltip","TooltipTrigger","TooltipArrow","props","jsx","cn","TooltipContent","React","className","sideOffset","ref"],"mappings":";;;;AAKA,MAAMA,IAAkBC,EAAiB,UAEnCC,IAAUD,EAAiB,MAE3BE,IAAiBF,EAAiB,SAElCG,IAAe,CACnBC,MAEAC,gBAAAA,EAAA;AAAA,EAACL,EAAiB;AAAA,EAAjB;AAAA,IACE,GAAGI;AAAA,IACJ,WAAWE,EAAGF,EAAM,WAAW,aAAa;AAAA,EAAA;AAC9C,GAGIG,IAAiBC,EAAM,WAG3B,CAAC,EAAE,WAAAC,GAAW,YAAAC,IAAa,GAAG,GAAGN,KAASO,MAC1CN,gBAAAA,EAAA;AAAA,EAACL,EAAiB;AAAA,EAAjB;AAAA,IACC,KAAAW;AAAA,IACA,YAAAD;AAAA,IACA,WAAWJ;AAAA,MACT;AAAA,MACAG;AAAA,IACF;AAAA,IACC,GAAGL;AAAA,EAAA;AACN,CACD;AACDG,EAAe,cAAcP,EAAiB,QAAQ;"}
package/lib/ui/util.js CHANGED
@@ -1,4 +1,4 @@
1
- import { c } from "../cn-CwJPJKOE.js";
1
+ import { c } from "../cn-wvCW-ho6.js";
2
2
  const n = c;
3
3
  export {
4
4
  n as cn
@@ -1 +1 @@
1
- {"version":3,"file":"useExposedProps-DG8J6ewJ.js","sources":["../src/lib/util/useExposedProps.tsx"],"sourcesContent":["import {\n useLocation,\n useNavigate,\n useParams,\n useSearchParams,\n} from \"react-router\";\nimport type { ExposedComponentProps } from \"../components/SlotletProvider.js\";\n\nexport const useExposedProps = (): ExposedComponentProps => {\n const location = useLocation();\n const navigate = useNavigate();\n const [searchParams, setSearchParams] = useSearchParams();\n const params = useParams();\n\n return { location, navigate, params, searchParams, setSearchParams };\n};\n"],"names":["useExposedProps","location","useLocation","navigate","useNavigate","searchParams","setSearchParams","useSearchParams","params","useParams"],"mappings":";AAQO,MAAMA,IAAkB,MAA6B;AAC1D,QAAMC,IAAWC,EAAY,GACvBC,IAAWC,EAAY,GACvB,CAACC,GAAcC,CAAe,IAAIC,EAAgB,GAClDC,IAASC,EAAU;AAEzB,SAAO,EAAE,UAAAR,GAAU,UAAAE,GAAU,QAAAK,GAAQ,cAAAH,GAAc,iBAAAC,EAAgB;AACrE;"}
1
+ {"version":3,"file":"useExposedProps-DG8J6ewJ.js","sources":["../src/lib/util/useExposedProps.tsx"],"sourcesContent":["import {\n type Location,\n type NavigateFunction,\n type Params,\n type SetURLSearchParams,\n useLocation,\n useNavigate,\n useParams,\n useSearchParams,\n} from \"react-router\";\n\nexport type ExposedComponentProps = {\n location: Location;\n navigate: NavigateFunction;\n searchParams: URLSearchParams;\n setSearchParams: SetURLSearchParams;\n params: Params;\n};\n\nexport const useExposedProps = (): ExposedComponentProps => {\n const location = useLocation();\n const navigate = useNavigate();\n const [searchParams, setSearchParams] = useSearchParams();\n const params = useParams();\n\n return { location, navigate, params, searchParams, setSearchParams };\n};\n"],"names":["useExposedProps","location","useLocation","navigate","useNavigate","searchParams","setSearchParams","useSearchParams","params","useParams"],"mappings":";AAmBO,MAAMA,IAAkB,MAA6B;AAC1D,QAAMC,IAAWC,EAAY,GACvBC,IAAWC,EAAY,GACvB,CAACC,GAAcC,CAAe,IAAIC,EAAgB,GAClDC,IAASC,EAAU;AAEzB,SAAO,EAAE,UAAAR,GAAU,UAAAE,GAAU,QAAAK,GAAQ,cAAAH,GAAc,iBAAAC,EAAgB;AACrE;"}
@@ -0,0 +1,97 @@
1
+ import * as o from "react";
2
+ import { g as l } from "./mutation-oxMvODNQ.js";
3
+ import { S as p, s as d, h, n as a, i as b, j as m, k as f } from "./hook-DawSLaZr.js";
4
+ var v = class extends p {
5
+ #e;
6
+ #i = void 0;
7
+ #t;
8
+ #s;
9
+ constructor(t, s) {
10
+ super(), this.#e = t, this.setOptions(s), this.bindMethods(), this.#r();
11
+ }
12
+ bindMethods() {
13
+ this.mutate = this.mutate.bind(this), this.reset = this.reset.bind(this);
14
+ }
15
+ setOptions(t) {
16
+ const s = this.options;
17
+ this.options = this.#e.defaultMutationOptions(t), d(this.options, s) || this.#e.getMutationCache().notify({
18
+ type: "observerOptionsUpdated",
19
+ mutation: this.#t,
20
+ observer: this
21
+ }), s?.mutationKey && this.options.mutationKey && h(s.mutationKey) !== h(this.options.mutationKey) ? this.reset() : this.#t?.state.status === "pending" && this.#t.setOptions(this.options);
22
+ }
23
+ onUnsubscribe() {
24
+ this.hasListeners() || this.#t?.removeObserver(this);
25
+ }
26
+ onMutationUpdate(t) {
27
+ this.#r(), this.#o(t);
28
+ }
29
+ getCurrentResult() {
30
+ return this.#i;
31
+ }
32
+ reset() {
33
+ this.#t?.removeObserver(this), this.#t = void 0, this.#r(), this.#o();
34
+ }
35
+ mutate(t, s) {
36
+ return this.#s = s, this.#t?.removeObserver(this), this.#t = this.#e.getMutationCache().build(this.#e, this.options), this.#t.addObserver(this), this.#t.execute(t);
37
+ }
38
+ #r() {
39
+ const t = this.#t?.state ?? l();
40
+ this.#i = {
41
+ ...t,
42
+ isPending: t.status === "pending",
43
+ isSuccess: t.status === "success",
44
+ isError: t.status === "error",
45
+ isIdle: t.status === "idle",
46
+ mutate: this.mutate,
47
+ reset: this.reset
48
+ };
49
+ }
50
+ #o(t) {
51
+ a.batch(() => {
52
+ if (this.#s && this.hasListeners()) {
53
+ const s = this.#i.variables, i = this.#i.context;
54
+ t?.type === "success" ? (this.#s.onSuccess?.(t.data, s, i), this.#s.onSettled?.(t.data, null, s, i)) : t?.type === "error" && (this.#s.onError?.(t.error, s, i), this.#s.onSettled?.(
55
+ void 0,
56
+ t.error,
57
+ s,
58
+ i
59
+ ));
60
+ }
61
+ this.listeners.forEach((s) => {
62
+ s(this.#i);
63
+ });
64
+ });
65
+ }
66
+ };
67
+ function g(t, s) {
68
+ const i = b(s), [e] = o.useState(
69
+ () => new v(
70
+ i,
71
+ t
72
+ )
73
+ );
74
+ o.useEffect(() => {
75
+ e.setOptions(t);
76
+ }, [e, t]);
77
+ const r = o.useSyncExternalStore(
78
+ o.useCallback(
79
+ (n) => e.subscribe(a.batchCalls(n)),
80
+ [e]
81
+ ),
82
+ () => e.getCurrentResult(),
83
+ () => e.getCurrentResult()
84
+ ), u = o.useCallback(
85
+ (n, c) => {
86
+ e.mutate(n, c).catch(m);
87
+ },
88
+ [e]
89
+ );
90
+ if (r.error && f(e.options.throwOnError, [r.error]))
91
+ throw r.error;
92
+ return { ...r, mutate: u, mutateAsync: r.mutate };
93
+ }
94
+ export {
95
+ g as u
96
+ };
97
+ //# sourceMappingURL=useMutation-C_j3dA_L.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMutation-C_j3dA_L.js","sources":["../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../../../node_modules/.pnpm/@tanstack+react-query@5.74.3_react@19.1.0/node_modules/@tanstack/react-query/build/modern/useMutation.js"],"sourcesContent":["// src/mutationObserver.ts\nimport { getDefaultState } from \"./mutation.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { hashKey, shallowEqualObjects } from \"./utils.js\";\nvar MutationObserver = class extends Subscribable {\n #client;\n #currentResult = void 0;\n #currentMutation;\n #mutateOptions;\n constructor(client, options) {\n super();\n this.#client = client;\n this.setOptions(options);\n this.bindMethods();\n this.#updateResult();\n }\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n this.options = this.#client.defaultMutationOptions(options);\n if (!shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getMutationCache().notify({\n type: \"observerOptionsUpdated\",\n mutation: this.#currentMutation,\n observer: this\n });\n }\n if (prevOptions?.mutationKey && this.options.mutationKey && hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)) {\n this.reset();\n } else if (this.#currentMutation?.state.status === \"pending\") {\n this.#currentMutation.setOptions(this.options);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this);\n }\n }\n onMutationUpdate(action) {\n this.#updateResult();\n this.#notify(action);\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n reset() {\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = void 0;\n this.#updateResult();\n this.#notify();\n }\n mutate(variables, options) {\n this.#mutateOptions = options;\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);\n this.#currentMutation.addObserver(this);\n return this.#currentMutation.execute(variables);\n }\n #updateResult() {\n const state = this.#currentMutation?.state ?? getDefaultState();\n this.#currentResult = {\n ...state,\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n isIdle: state.status === \"idle\",\n mutate: this.mutate,\n reset: this.reset\n };\n }\n #notify(action) {\n notifyManager.batch(() => {\n if (this.#mutateOptions && this.hasListeners()) {\n const variables = this.#currentResult.variables;\n const context = this.#currentResult.context;\n if (action?.type === \"success\") {\n this.#mutateOptions.onSuccess?.(action.data, variables, context);\n this.#mutateOptions.onSettled?.(action.data, null, variables, context);\n } else if (action?.type === \"error\") {\n this.#mutateOptions.onError?.(action.error, variables, context);\n this.#mutateOptions.onSettled?.(\n void 0,\n action.error,\n variables,\n context\n );\n }\n }\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n });\n }\n};\nexport {\n MutationObserver\n};\n//# sourceMappingURL=mutationObserver.js.map","\"use client\";\n\n// src/useMutation.ts\nimport * as React from \"react\";\nimport { MutationObserver, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { noop, shouldThrowError } from \"./utils.js\";\nfunction useMutation(options, queryClient) {\n const client = useQueryClient(queryClient);\n const [observer] = React.useState(\n () => new MutationObserver(\n client,\n options\n )\n );\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n const mutate = React.useCallback(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n },\n [observer]\n );\n if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {\n throw result.error;\n }\n return { ...result, mutate, mutateAsync: result.mutate };\n}\nexport {\n useMutation\n};\n//# sourceMappingURL=useMutation.js.map"],"names":["MutationObserver","Subscribable","#client","#currentResult","#currentMutation","#mutateOptions","client","options","#updateResult","prevOptions","shallowEqualObjects","hashKey","action","#notify","variables","state","getDefaultState","notifyManager","context","listener","useMutation","queryClient","useQueryClient","observer","React","result","onStoreChange","mutate","mutateOptions","noop","shouldThrowError"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1,4 +1,4 @@
1
- import { u as o } from "./hook-BwOB_iZo.js";
1
+ import { u as o } from "./hook-DawSLaZr.js";
2
2
  import { OpenIDAuthenticationProvider as r } from "./zudoku.auth-openid.js";
3
3
  class a extends r {
4
4
  constructor(e) {
@@ -1 +1 @@
1
- {"version":3,"file":"zudoku.auth-auth0.js","sources":["../src/lib/authentication/providers/auth0.tsx"],"sourcesContent":["import { type Auth0AuthenticationConfig } from \"../../../config/config.js\";\nimport { type AuthenticationProviderInitializer } from \"../authentication.js\";\nimport { useAuthState } from \"../state.js\";\nimport { OpenIDAuthenticationProvider } from \"./openid.js\";\n\nclass Auth0AuthenticationProvider extends OpenIDAuthenticationProvider {\n constructor(config: Auth0AuthenticationConfig) {\n super({\n ...config,\n type: \"openid\",\n issuer: `https://${config.domain}`,\n clientId: config.clientId,\n audience: config.audience,\n scopes: config.scopes,\n });\n }\n\n onAuthorizationUrl = async (\n url: URL,\n { isSignUp }: { isSignUp: boolean },\n ) => {\n url.searchParams.set(\"prompt\", \"login\");\n if (isSignUp) {\n url.searchParams.set(\"screen_hint\", \"signup\");\n }\n };\n\n signOut = async (): Promise<void> => {\n const as = await this.getAuthServer();\n const idToken = await this.getAccessToken();\n\n useAuthState.setState({\n isAuthenticated: false,\n isPending: false,\n profile: null,\n providerData: null,\n });\n\n const redirectUrl = new URL(window.location.origin);\n redirectUrl.pathname = this.redirectToAfterSignOut;\n\n // SEE: https://auth0.com/docs/authenticate/login/logout/log-users-out-of-auth0\n // For Auth0 tenants created on or after 14 November 2023, RP-Initiated\n // Logout End Session Endpoint Discovery is enabled by default.\n // Otherwise we fallback to the old non-compliant logout\n\n // The endSessionEndpoint is set, the IdP supports some form of logout,\n // so we use the IdP logout. Otherwise, just redirect the user to home\n if (as.end_session_endpoint) {\n const logoutUrl = new URL(as.end_session_endpoint);\n if (idToken) {\n logoutUrl.searchParams.set(\"id_token_hint\", idToken);\n }\n logoutUrl.searchParams.set(\n \"post_logout_redirect_uri\",\n redirectUrl.toString(),\n );\n\n // window.location.href = logoutUrl.toString();\n } else {\n const logoutUrl = new URL(\n `${this.issuer.replace(/\\/$/, \"\")}/oidc/logout`,\n );\n // window.location.href = logoutUrl.toString();\n }\n };\n}\n\nconst auth0Auth: AuthenticationProviderInitializer<\n Auth0AuthenticationConfig\n> = (options) => new Auth0AuthenticationProvider(options);\n\nexport default auth0Auth;\n"],"names":["Auth0AuthenticationProvider","OpenIDAuthenticationProvider","config","url","isSignUp","as","idToken","useAuthState","redirectUrl","logoutUrl","auth0Auth","options"],"mappings":";;AAKA,MAAMA,UAAoCC,EAA6B;AAAA,EACrE,YAAYC,GAAmC;AACvC,UAAA;AAAA,MACJ,GAAGA;AAAA,MACH,MAAM;AAAA,MACN,QAAQ,WAAWA,EAAO,MAAM;AAAA,MAChC,UAAUA,EAAO;AAAA,MACjB,UAAUA,EAAO;AAAA,MACjB,QAAQA,EAAO;AAAA,IAAA,CAChB;AAAA,EAAA;AAAA,EAGH,qBAAqB,OACnBC,GACA,EAAE,UAAAC,QACC;AACC,IAAAD,EAAA,aAAa,IAAI,UAAU,OAAO,GAClCC,KACED,EAAA,aAAa,IAAI,eAAe,QAAQ;AAAA,EAEhD;AAAA,EAEA,UAAU,YAA2B;AAC7B,UAAAE,IAAK,MAAM,KAAK,cAAc,GAC9BC,IAAU,MAAM,KAAK,eAAe;AAE1C,IAAAC,EAAa,SAAS;AAAA,MACpB,iBAAiB;AAAA,MACjB,WAAW;AAAA,MACX,SAAS;AAAA,MACT,cAAc;AAAA,IAAA,CACf;AAED,UAAMC,IAAc,IAAI,IAAI,OAAO,SAAS,MAAM;AAUlD,QATAA,EAAY,WAAW,KAAK,wBASxBH,EAAG,sBAAsB;AAC3B,YAAMI,IAAY,IAAI,IAAIJ,EAAG,oBAAoB;AACjD,MAAIC,KACQG,EAAA,aAAa,IAAI,iBAAiBH,CAAO,GAErDG,EAAU,aAAa;AAAA,QACrB;AAAA,QACAD,EAAY,SAAS;AAAA,MACvB;AAAA,IAAA;AAIkB,UAAI;AAAA,QACpB,GAAG,KAAK,OAAO,QAAQ,OAAO,EAAE,CAAC;AAAA,MAAA;AAAA,EAIvC;AACF;AAEA,MAAME,IAEF,CAACC,MAAY,IAAIX,EAA4BW,CAAO;"}
1
+ {"version":3,"file":"zudoku.auth-auth0.js","sources":["../src/lib/authentication/providers/auth0.tsx"],"sourcesContent":["import { type Auth0AuthenticationConfig } from \"../../../config/config.js\";\nimport {\n type AuthenticationPlugin,\n type AuthenticationProviderInitializer,\n} from \"../authentication.js\";\nimport { useAuthState } from \"../state.js\";\nimport { OpenIDAuthenticationProvider } from \"./openid.js\";\n\nclass Auth0AuthenticationProvider\n extends OpenIDAuthenticationProvider\n implements AuthenticationPlugin\n{\n constructor(config: Auth0AuthenticationConfig) {\n super({\n ...config,\n type: \"openid\",\n issuer: `https://${config.domain}`,\n clientId: config.clientId,\n audience: config.audience,\n scopes: config.scopes,\n });\n }\n\n onAuthorizationUrl = async (\n url: URL,\n { isSignUp }: { isSignUp: boolean },\n ) => {\n url.searchParams.set(\"prompt\", \"login\");\n if (isSignUp) {\n url.searchParams.set(\"screen_hint\", \"signup\");\n }\n };\n\n signOut = async (): Promise<void> => {\n const as = await this.getAuthServer();\n const idToken = await this.getAccessToken();\n\n useAuthState.setState({\n isAuthenticated: false,\n isPending: false,\n profile: null,\n providerData: null,\n });\n\n const redirectUrl = new URL(window.location.origin);\n redirectUrl.pathname = this.redirectToAfterSignOut;\n\n // SEE: https://auth0.com/docs/authenticate/login/logout/log-users-out-of-auth0\n // For Auth0 tenants created on or after 14 November 2023, RP-Initiated\n // Logout End Session Endpoint Discovery is enabled by default.\n // Otherwise we fallback to the old non-compliant logout\n\n // The endSessionEndpoint is set, the IdP supports some form of logout,\n // so we use the IdP logout. Otherwise, just redirect the user to home\n if (as.end_session_endpoint) {\n const logoutUrl = new URL(as.end_session_endpoint);\n if (idToken) {\n logoutUrl.searchParams.set(\"id_token_hint\", idToken);\n }\n logoutUrl.searchParams.set(\n \"post_logout_redirect_uri\",\n redirectUrl.toString(),\n );\n\n // window.location.href = logoutUrl.toString();\n } else {\n const logoutUrl = new URL(\n `${this.issuer.replace(/\\/$/, \"\")}/oidc/logout`,\n );\n // window.location.href = logoutUrl.toString();\n }\n };\n}\n\nconst auth0Auth: AuthenticationProviderInitializer<\n Auth0AuthenticationConfig\n> = (options) => new Auth0AuthenticationProvider(options);\n\nexport default auth0Auth;\n"],"names":["Auth0AuthenticationProvider","OpenIDAuthenticationProvider","config","url","isSignUp","as","idToken","useAuthState","redirectUrl","logoutUrl","auth0Auth","options"],"mappings":";;AAQA,MAAMA,UACIC,EAEV;AAAA,EACE,YAAYC,GAAmC;AACvC,UAAA;AAAA,MACJ,GAAGA;AAAA,MACH,MAAM;AAAA,MACN,QAAQ,WAAWA,EAAO,MAAM;AAAA,MAChC,UAAUA,EAAO;AAAA,MACjB,UAAUA,EAAO;AAAA,MACjB,QAAQA,EAAO;AAAA,IAAA,CAChB;AAAA,EAAA;AAAA,EAGH,qBAAqB,OACnBC,GACA,EAAE,UAAAC,QACC;AACC,IAAAD,EAAA,aAAa,IAAI,UAAU,OAAO,GAClCC,KACED,EAAA,aAAa,IAAI,eAAe,QAAQ;AAAA,EAEhD;AAAA,EAEA,UAAU,YAA2B;AAC7B,UAAAE,IAAK,MAAM,KAAK,cAAc,GAC9BC,IAAU,MAAM,KAAK,eAAe;AAE1C,IAAAC,EAAa,SAAS;AAAA,MACpB,iBAAiB;AAAA,MACjB,WAAW;AAAA,MACX,SAAS;AAAA,MACT,cAAc;AAAA,IAAA,CACf;AAED,UAAMC,IAAc,IAAI,IAAI,OAAO,SAAS,MAAM;AAUlD,QATAA,EAAY,WAAW,KAAK,wBASxBH,EAAG,sBAAsB;AAC3B,YAAMI,IAAY,IAAI,IAAIJ,EAAG,oBAAoB;AACjD,MAAIC,KACQG,EAAA,aAAa,IAAI,iBAAiBH,CAAO,GAErDG,EAAU,aAAa;AAAA,QACrB;AAAA,QACAD,EAAY,SAAS;AAAA,MACvB;AAAA,IAAA;AAIkB,UAAI;AAAA,QACpB,GAAG,KAAK,OAAO,QAAQ,OAAO,EAAE,CAAC;AAAA,MAAA;AAAA,EAIvC;AACF;AAEA,MAAME,IAEF,CAACC,MAAY,IAAIX,EAA4BW,CAAO;"}
@@ -1,119 +1,136 @@
1
- import { A as f } from "./AuthenticationPlugin-UNaAuxNo.js";
2
- import { u as o } from "./hook-BwOB_iZo.js";
3
- class m extends f {
4
- constructor(s) {
5
- super(), this.clerk = s;
6
- }
7
- initialize = async () => {
8
- const s = await this.clerk;
9
- if (s)
10
- if (s.session) {
11
- const a = s.session.user.emailAddresses.find(
12
- (r) => r.verification.status === "verified"
13
- );
14
- o.setState({
15
- isAuthenticated: !0,
16
- isPending: !1,
17
- profile: {
18
- sub: s.session.user.id,
19
- name: s.session.user.fullName ?? void 0,
20
- email: a?.emailAddress ?? s.session.user.emailAddresses[0]?.emailAddress,
21
- emailVerified: a !== void 0,
22
- pictureUrl: s.session.user.imageUrl
23
- },
24
- providerData: {
25
- user: s.session.user
26
- }
27
- });
28
- } else
29
- o.setState({
30
- isAuthenticated: !1,
31
- isPending: !1,
32
- profile: void 0
33
- });
34
- };
35
- }
36
- const p = ({
37
- clerkPubKey: l,
38
- redirectToAfterSignOut: s = "/",
39
- redirectToAfterSignUp: a,
40
- redirectToAfterSignIn: r
1
+ import { j as l } from "./jsx-runtime-C5mzlN2N.js";
2
+ import { LogOutIcon as f } from "lucide-react";
3
+ import { S as g, a as p, b as w } from "./SignUp-CWaiH0tY.js";
4
+ import { u as r } from "./hook-DawSLaZr.js";
5
+ const y = ({
6
+ clerkPubKey: d,
7
+ redirectToAfterSignOut: c = "/",
8
+ redirectToAfterSignUp: t,
9
+ redirectToAfterSignIn: n
41
10
  }) => {
42
- let e;
43
- const t = (async () => {
11
+ let i;
12
+ const a = (async () => {
44
13
  if (typeof window > "u") return;
45
- const { Clerk: i } = await import("@clerk/clerk-js");
46
- if (e = new i(l), await e.load(), e.user) {
47
- const n = e.user.emailAddresses.find(
48
- (c) => c.verification.status === "verified"
14
+ const { Clerk: e } = await import("@clerk/clerk-js");
15
+ if (i = new e(d), await i.load(), i.user) {
16
+ const s = i.user.emailAddresses.find(
17
+ (o) => o.verification.status === "verified"
49
18
  );
50
- o.setState({
19
+ r.setState({
51
20
  isAuthenticated: !0,
52
21
  isPending: !1,
53
22
  profile: {
54
- sub: e.user.id,
55
- name: e.user.fullName ?? void 0,
56
- email: n?.emailAddress ?? e.user.emailAddresses[0]?.emailAddress,
57
- emailVerified: n !== void 0,
58
- pictureUrl: e.user.imageUrl
23
+ sub: i.user.id,
24
+ name: i.user.fullName ?? void 0,
25
+ email: s?.emailAddress ?? i.user.emailAddresses[0]?.emailAddress,
26
+ emailVerified: s !== void 0,
27
+ pictureUrl: i.user.imageUrl
59
28
  },
60
29
  providerData: {
61
30
  user: {
62
- publicMetadata: e.user.publicMetadata,
63
- id: e.user.id,
64
- emailAddresses: e.user.emailAddresses,
65
- imageUrl: e.user.imageUrl,
66
- fullName: e.user.fullName
31
+ publicMetadata: i.user.publicMetadata,
32
+ id: i.user.id,
33
+ emailAddresses: i.user.emailAddresses,
34
+ imageUrl: i.user.imageUrl,
35
+ fullName: i.user.fullName
67
36
  }
68
37
  }
69
38
  });
70
39
  }
71
- return e;
40
+ return i;
72
41
  })();
73
42
  async function u() {
74
- if (await t, !e?.session)
43
+ if (await a, !i?.session)
75
44
  throw new Error("No session available");
76
- const i = await e.session.getToken();
77
- if (!i)
45
+ const e = await i.session.getToken();
46
+ if (!e)
78
47
  throw new Error("Could not get access token from Clerk");
79
- return i;
48
+ return e;
80
49
  }
81
- async function d(i) {
82
- const n = await u();
83
- return i.headers.set("Authorization", `Bearer ${n}`), i;
50
+ async function m(e) {
51
+ const s = await u();
52
+ return e.headers.set("Authorization", `Bearer ${s}`), e;
84
53
  }
85
54
  return {
86
- clerk: e,
55
+ getRoutes: () => [
56
+ {
57
+ path: "/signout",
58
+ element: /* @__PURE__ */ l.jsx(g, {})
59
+ },
60
+ {
61
+ path: "/signin",
62
+ element: /* @__PURE__ */ l.jsx(p, {})
63
+ },
64
+ {
65
+ path: "/signup",
66
+ element: /* @__PURE__ */ l.jsx(w, {})
67
+ }
68
+ ],
69
+ getProfileMenuItems() {
70
+ return [
71
+ {
72
+ label: "Logout",
73
+ path: "/signout",
74
+ category: "bottom",
75
+ icon: f
76
+ }
77
+ ];
78
+ },
79
+ initialize: async () => {
80
+ const e = await a;
81
+ if (e)
82
+ if (e.session) {
83
+ const s = e.session.user.emailAddresses.find(
84
+ (o) => o.verification.status === "verified"
85
+ );
86
+ r.setState({
87
+ isAuthenticated: !0,
88
+ isPending: !1,
89
+ profile: {
90
+ sub: e.session.user.id,
91
+ name: e.session.user.fullName ?? void 0,
92
+ email: s?.emailAddress ?? e.session.user.emailAddresses[0]?.emailAddress,
93
+ emailVerified: s !== void 0,
94
+ pictureUrl: e.session.user.imageUrl
95
+ },
96
+ providerData: {
97
+ user: e.session.user
98
+ }
99
+ });
100
+ } else
101
+ r.setState({
102
+ isAuthenticated: !1,
103
+ isPending: !1,
104
+ profile: void 0
105
+ });
106
+ },
87
107
  getAccessToken: u,
88
- signRequest: d,
108
+ signRequest: m,
89
109
  signOut: async () => {
90
- await t, await e?.signOut({
91
- redirectUrl: window.location.origin + s
92
- }), o.setState({
110
+ await a, await i?.signOut({
111
+ redirectUrl: window.location.origin + c
112
+ }), r.setState({
93
113
  isAuthenticated: !1,
94
114
  isPending: !1,
95
115
  profile: null,
96
116
  providerData: null
97
117
  });
98
118
  },
99
- signIn: async ({ redirectTo: i } = {}) => {
100
- await t, await e?.redirectToSignIn({
101
- signInForceRedirectUrl: r ? window.location.origin + r : i,
102
- signUpForceRedirectUrl: a ? window.location.origin + a : i
119
+ signIn: async ({ redirectTo: e } = {}) => {
120
+ await a, await i?.redirectToSignIn({
121
+ signInForceRedirectUrl: n ? window.location.origin + n : e,
122
+ signUpForceRedirectUrl: t ? window.location.origin + t : e
103
123
  });
104
124
  },
105
- signUp: async ({ redirectTo: i } = {}) => {
106
- await t, await e?.redirectToSignUp({
107
- signInForceRedirectUrl: r ? window.location.origin + r : i,
108
- signUpForceRedirectUrl: a ? window.location.origin + a : i
125
+ signUp: async ({ redirectTo: e } = {}) => {
126
+ await a, await i?.redirectToSignUp({
127
+ signInForceRedirectUrl: n ? window.location.origin + n : e,
128
+ signUpForceRedirectUrl: t ? window.location.origin + t : e
109
129
  });
110
- },
111
- getAuthenticationPlugin() {
112
- return new m(t);
113
130
  }
114
131
  };
115
132
  };
116
133
  export {
117
- p as default
134
+ y as default
118
135
  };
119
136
  //# sourceMappingURL=zudoku.auth-clerk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zudoku.auth-clerk.js","sources":["../src/lib/authentication/providers/clerk.tsx"],"sourcesContent":["import type { Clerk } from \"@clerk/clerk-js\";\nimport { type ClerkAuthenticationConfig } from \"../../../config/config.js\";\nimport { type AuthenticationProviderInitializer } from \"../authentication.js\";\nimport { AuthenticationPlugin } from \"../AuthenticationPlugin.js\";\nimport { useAuthState } from \"../state.js\";\n\nclass ClerkAuthPlugin extends AuthenticationPlugin {\n constructor(private clerk: Promise<Clerk | undefined>) {\n super();\n }\n initialize = async () => {\n const clerk = await this.clerk;\n\n if (!clerk) {\n return;\n }\n\n if (clerk.session) {\n const verifiedEmail = clerk.session.user.emailAddresses.find(\n (email) => email.verification.status === \"verified\",\n );\n useAuthState.setState({\n isAuthenticated: true,\n isPending: false,\n profile: {\n sub: clerk.session.user.id,\n name: clerk.session.user.fullName ?? undefined,\n email:\n verifiedEmail?.emailAddress ??\n clerk.session.user.emailAddresses[0]?.emailAddress,\n emailVerified: verifiedEmail !== undefined,\n pictureUrl: clerk.session.user.imageUrl,\n },\n providerData: {\n user: clerk.session.user,\n },\n });\n } else {\n useAuthState.setState({\n isAuthenticated: false,\n isPending: false,\n profile: undefined,\n });\n }\n };\n}\n\nconst clerkAuth: AuthenticationProviderInitializer<\n ClerkAuthenticationConfig\n> = ({\n clerkPubKey,\n redirectToAfterSignOut = \"/\",\n redirectToAfterSignUp,\n redirectToAfterSignIn,\n}) => {\n let clerkApi: Clerk | undefined;\n const ensureLoaded = (async () => {\n if (typeof window === \"undefined\") return;\n const { Clerk } = await import(\"@clerk/clerk-js\");\n clerkApi = new Clerk(clerkPubKey);\n\n await clerkApi.load();\n\n if (clerkApi.user) {\n const verifiedEmail = clerkApi.user.emailAddresses.find(\n (email) => email.verification.status === \"verified\",\n );\n useAuthState.setState({\n isAuthenticated: true,\n isPending: false,\n profile: {\n sub: clerkApi.user.id,\n name: clerkApi.user.fullName ?? undefined,\n email:\n verifiedEmail?.emailAddress ??\n clerkApi.user.emailAddresses[0]?.emailAddress,\n emailVerified: verifiedEmail !== undefined,\n pictureUrl: clerkApi.user.imageUrl,\n },\n providerData: {\n user: {\n publicMetadata: clerkApi.user.publicMetadata,\n id: clerkApi.user.id,\n emailAddresses: clerkApi.user.emailAddresses,\n imageUrl: clerkApi.user.imageUrl,\n fullName: clerkApi.user.fullName,\n },\n },\n });\n }\n\n return clerkApi;\n })();\n\n async function getAccessToken() {\n await ensureLoaded;\n if (!clerkApi?.session) {\n throw new Error(\"No session available\");\n }\n const response = await clerkApi.session.getToken();\n if (!response) {\n throw new Error(\"Could not get access token from Clerk\");\n }\n return response;\n }\n\n async function signRequest(request: Request): Promise<Request> {\n const response = await getAccessToken();\n request.headers.set(\"Authorization\", `Bearer ${response}`);\n return request;\n }\n\n return {\n clerk: clerkApi,\n getAccessToken,\n signRequest,\n signOut: async () => {\n await ensureLoaded;\n await clerkApi?.signOut({\n redirectUrl: window.location.origin + redirectToAfterSignOut,\n });\n useAuthState.setState({\n isAuthenticated: false,\n isPending: false,\n profile: null,\n providerData: null,\n });\n },\n signIn: async ({ redirectTo }: { redirectTo?: string } = {}) => {\n await ensureLoaded;\n await clerkApi?.redirectToSignIn({\n signInForceRedirectUrl: redirectToAfterSignIn\n ? window.location.origin + redirectToAfterSignIn\n : redirectTo,\n signUpForceRedirectUrl: redirectToAfterSignUp\n ? window.location.origin + redirectToAfterSignUp\n : redirectTo,\n });\n },\n signUp: async ({ redirectTo }: { redirectTo?: string } = {}) => {\n await ensureLoaded;\n await clerkApi?.redirectToSignUp({\n signInForceRedirectUrl: redirectToAfterSignIn\n ? window.location.origin + redirectToAfterSignIn\n : redirectTo,\n signUpForceRedirectUrl: redirectToAfterSignUp\n ? window.location.origin + redirectToAfterSignUp\n : redirectTo,\n });\n },\n getAuthenticationPlugin() {\n return new ClerkAuthPlugin(ensureLoaded);\n },\n };\n};\n\nexport default clerkAuth;\n"],"names":["ClerkAuthPlugin","AuthenticationPlugin","clerk","verifiedEmail","email","useAuthState","clerkAuth","clerkPubKey","redirectToAfterSignOut","redirectToAfterSignUp","redirectToAfterSignIn","clerkApi","ensureLoaded","Clerk","getAccessToken","response","signRequest","request","redirectTo"],"mappings":"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"}
1
+ {"version":3,"file":"zudoku.auth-clerk.js","sources":["../src/lib/authentication/providers/clerk.tsx"],"sourcesContent":["import type { Clerk } from \"@clerk/clerk-js\";\nimport { LogOutIcon } from \"lucide-react\";\nimport { type ZudokuPlugin } from \"zudoku/plugins\";\nimport { type ClerkAuthenticationConfig } from \"../../../config/config.js\";\nimport {\n type AuthenticationPlugin,\n type AuthenticationProviderInitializer,\n} from \"../authentication.js\";\nimport { SignIn } from \"../components/SignIn.js\";\nimport { SignOut } from \"../components/SignOut.js\";\nimport { SignUp } from \"../components/SignUp.js\";\nimport { useAuthState } from \"../state.js\";\n\nconst clerkAuth: AuthenticationProviderInitializer<\n ClerkAuthenticationConfig\n> = ({\n clerkPubKey,\n redirectToAfterSignOut = \"/\",\n redirectToAfterSignUp,\n redirectToAfterSignIn,\n}): AuthenticationPlugin & ZudokuPlugin => {\n let clerkApi: Clerk | undefined;\n const ensureLoaded = (async () => {\n if (typeof window === \"undefined\") return;\n const { Clerk } = await import(\"@clerk/clerk-js\");\n clerkApi = new Clerk(clerkPubKey);\n\n await clerkApi.load();\n\n if (clerkApi.user) {\n const verifiedEmail = clerkApi.user.emailAddresses.find(\n (email) => email.verification.status === \"verified\",\n );\n useAuthState.setState({\n isAuthenticated: true,\n isPending: false,\n profile: {\n sub: clerkApi.user.id,\n name: clerkApi.user.fullName ?? undefined,\n email:\n verifiedEmail?.emailAddress ??\n clerkApi.user.emailAddresses[0]?.emailAddress,\n emailVerified: verifiedEmail !== undefined,\n pictureUrl: clerkApi.user.imageUrl,\n },\n providerData: {\n user: {\n publicMetadata: clerkApi.user.publicMetadata,\n id: clerkApi.user.id,\n emailAddresses: clerkApi.user.emailAddresses,\n imageUrl: clerkApi.user.imageUrl,\n fullName: clerkApi.user.fullName,\n },\n },\n });\n }\n\n return clerkApi;\n })();\n\n async function getAccessToken() {\n await ensureLoaded;\n if (!clerkApi?.session) {\n throw new Error(\"No session available\");\n }\n const response = await clerkApi.session.getToken();\n if (!response) {\n throw new Error(\"Could not get access token from Clerk\");\n }\n return response;\n }\n\n async function signRequest(request: Request): Promise<Request> {\n const response = await getAccessToken();\n request.headers.set(\"Authorization\", `Bearer ${response}`);\n return request;\n }\n\n return {\n getRoutes: () => {\n return [\n {\n path: \"/signout\",\n element: <SignOut />,\n },\n {\n path: \"/signin\",\n element: <SignIn />,\n },\n {\n path: \"/signup\",\n element: <SignUp />,\n },\n ];\n },\n\n getProfileMenuItems() {\n return [\n {\n label: \"Logout\",\n path: \"/signout\",\n category: \"bottom\",\n icon: LogOutIcon,\n } as const,\n ];\n },\n initialize: async () => {\n const clerk = await ensureLoaded;\n\n if (!clerk) {\n return;\n }\n\n if (clerk.session) {\n const verifiedEmail = clerk.session.user.emailAddresses.find(\n (email) => email.verification.status === \"verified\",\n );\n useAuthState.setState({\n isAuthenticated: true,\n isPending: false,\n profile: {\n sub: clerk.session.user.id,\n name: clerk.session.user.fullName ?? undefined,\n email:\n verifiedEmail?.emailAddress ??\n clerk.session.user.emailAddresses[0]?.emailAddress,\n emailVerified: verifiedEmail !== undefined,\n pictureUrl: clerk.session.user.imageUrl,\n },\n providerData: {\n user: clerk.session.user,\n },\n });\n } else {\n useAuthState.setState({\n isAuthenticated: false,\n isPending: false,\n profile: undefined,\n });\n }\n },\n getAccessToken,\n signRequest,\n signOut: async () => {\n await ensureLoaded;\n await clerkApi?.signOut({\n redirectUrl: window.location.origin + redirectToAfterSignOut,\n });\n useAuthState.setState({\n isAuthenticated: false,\n isPending: false,\n profile: null,\n providerData: null,\n });\n },\n signIn: async ({ redirectTo }: { redirectTo?: string } = {}) => {\n await ensureLoaded;\n await clerkApi?.redirectToSignIn({\n signInForceRedirectUrl: redirectToAfterSignIn\n ? window.location.origin + redirectToAfterSignIn\n : redirectTo,\n signUpForceRedirectUrl: redirectToAfterSignUp\n ? window.location.origin + redirectToAfterSignUp\n : redirectTo,\n });\n },\n signUp: async ({ redirectTo }: { redirectTo?: string } = {}) => {\n await ensureLoaded;\n await clerkApi?.redirectToSignUp({\n signInForceRedirectUrl: redirectToAfterSignIn\n ? window.location.origin + redirectToAfterSignIn\n : redirectTo,\n signUpForceRedirectUrl: redirectToAfterSignUp\n ? window.location.origin + redirectToAfterSignUp\n : redirectTo,\n });\n },\n };\n};\n\nexport default clerkAuth;\n"],"names":["clerkAuth","clerkPubKey","redirectToAfterSignOut","redirectToAfterSignUp","redirectToAfterSignIn","clerkApi","ensureLoaded","Clerk","verifiedEmail","email","useAuthState","getAccessToken","response","signRequest","request","SignOut","SignIn","SignUp","LogOutIcon","clerk","redirectTo"],"mappings":"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"}