zudoku 0.0.0-reset-hash-value.ac516c6d → 0.0.0-z179c4f85

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 (818) hide show
  1. package/client.d.ts +8 -0
  2. package/dist/app/entry.server.js +14 -1
  3. package/dist/app/entry.server.js.map +1 -1
  4. package/dist/app/main.d.ts +91 -1
  5. package/dist/app/main.js +5 -1
  6. package/dist/app/main.js.map +1 -1
  7. package/dist/app/sentry.js +1 -1
  8. package/dist/cli/common/version-check.js +12 -3
  9. package/dist/cli/common/version-check.js.map +1 -1
  10. package/dist/config/config.d.ts +15 -44
  11. package/dist/config/validators/BuildSchema.d.ts +5 -4
  12. package/dist/config/validators/BuildSchema.js +23 -5
  13. package/dist/config/validators/BuildSchema.js.map +1 -1
  14. package/dist/config/validators/InputNavigationSchema.d.ts +83 -81
  15. package/dist/config/validators/InputNavigationSchema.js +1 -0
  16. package/dist/config/validators/InputNavigationSchema.js.map +1 -1
  17. package/dist/config/validators/NavigationSchema.js +8 -5
  18. package/dist/config/validators/NavigationSchema.js.map +1 -1
  19. package/dist/config/validators/ProtectedRoutesSchema.d.ts +1 -1
  20. package/dist/config/validators/validate.d.ts +243 -20
  21. package/dist/config/validators/validate.js +52 -10
  22. package/dist/config/validators/validate.js.map +1 -1
  23. package/dist/config/validators/validate.test.js +43 -0
  24. package/dist/config/validators/validate.test.js.map +1 -1
  25. package/dist/flat-config.d.ts +39 -4
  26. package/dist/index.d.ts +2 -1
  27. package/dist/index.js +2 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/lib/auth/issuer.js +3 -0
  30. package/dist/lib/auth/issuer.js.map +1 -1
  31. package/dist/lib/authentication/authentication.d.ts +19 -10
  32. package/dist/lib/authentication/components/CallbackHandler.js +1 -1
  33. package/dist/lib/authentication/components/CallbackHandler.js.map +1 -1
  34. package/dist/lib/authentication/components/OAuthErrorPage.js +1 -1
  35. package/dist/lib/authentication/components/OAuthErrorPage.js.map +1 -1
  36. package/dist/lib/authentication/components/SignIn.js +8 -5
  37. package/dist/lib/authentication/components/SignIn.js.map +1 -1
  38. package/dist/lib/authentication/components/SignOut.js +6 -6
  39. package/dist/lib/authentication/components/SignOut.js.map +1 -1
  40. package/dist/lib/authentication/components/SignUp.js +7 -5
  41. package/dist/lib/authentication/components/SignUp.js.map +1 -1
  42. package/dist/lib/authentication/hook.d.ts +5 -2
  43. package/dist/lib/authentication/hook.js +22 -8
  44. package/dist/lib/authentication/hook.js.map +1 -1
  45. package/dist/lib/authentication/providers/auth0.js +18 -9
  46. package/dist/lib/authentication/providers/auth0.js.map +1 -1
  47. package/dist/lib/authentication/providers/azureb2c.d.ts +4 -4
  48. package/dist/lib/authentication/providers/azureb2c.js +3 -3
  49. package/dist/lib/authentication/providers/azureb2c.js.map +1 -1
  50. package/dist/lib/authentication/providers/clerk.js +2 -24
  51. package/dist/lib/authentication/providers/clerk.js.map +1 -1
  52. package/dist/lib/authentication/providers/firebase.d.ts +4 -0
  53. package/dist/lib/authentication/providers/firebase.js +273 -0
  54. package/dist/lib/authentication/providers/firebase.js.map +1 -0
  55. package/dist/lib/authentication/providers/openid.d.ts +7 -7
  56. package/dist/lib/authentication/providers/openid.js +3 -3
  57. package/dist/lib/authentication/providers/openid.js.map +1 -1
  58. package/dist/lib/authentication/providers/supabase/SupabaseAuthUI.d.ts +8 -0
  59. package/dist/lib/authentication/providers/supabase/SupabaseAuthUI.js +39 -0
  60. package/dist/lib/authentication/providers/supabase/SupabaseAuthUI.js.map +1 -0
  61. package/dist/lib/authentication/providers/supabase.js +36 -46
  62. package/dist/lib/authentication/providers/supabase.js.map +1 -1
  63. package/dist/lib/authentication/state.d.ts +1 -5
  64. package/dist/lib/authentication/state.js +2 -14
  65. package/dist/lib/authentication/state.js.map +1 -1
  66. package/dist/lib/authentication/ui/EmailVerificationUi.d.ts +4 -0
  67. package/dist/lib/authentication/ui/EmailVerificationUi.js +34 -0
  68. package/dist/lib/authentication/ui/EmailVerificationUi.js.map +1 -0
  69. package/dist/lib/authentication/ui/ZudokuAuthUi.d.ts +29 -0
  70. package/dist/lib/authentication/ui/ZudokuAuthUi.js +160 -0
  71. package/dist/lib/authentication/ui/ZudokuAuthUi.js.map +1 -0
  72. package/dist/lib/authentication/ui/icons/Apple.d.ts +3 -0
  73. package/dist/lib/authentication/ui/icons/Apple.js +4 -0
  74. package/dist/lib/authentication/ui/icons/Apple.js.map +1 -0
  75. package/dist/lib/authentication/ui/icons/Facebook.d.ts +3 -0
  76. package/dist/lib/authentication/ui/icons/Facebook.js +4 -0
  77. package/dist/lib/authentication/ui/icons/Facebook.js.map +1 -0
  78. package/dist/lib/authentication/ui/icons/Github.d.ts +3 -0
  79. package/dist/lib/authentication/ui/icons/Github.js +4 -0
  80. package/dist/lib/authentication/ui/icons/Github.js.map +1 -0
  81. package/dist/lib/authentication/ui/icons/Google.d.ts +3 -0
  82. package/dist/lib/authentication/ui/icons/Google.js +4 -0
  83. package/dist/lib/authentication/ui/icons/Google.js.map +1 -0
  84. package/dist/lib/authentication/ui/icons/Microsoft.d.ts +3 -0
  85. package/dist/lib/authentication/ui/icons/Microsoft.js +4 -0
  86. package/dist/lib/authentication/ui/icons/Microsoft.js.map +1 -0
  87. package/dist/lib/authentication/ui/icons/X.d.ts +3 -0
  88. package/dist/lib/authentication/ui/icons/X.js +4 -0
  89. package/dist/lib/authentication/ui/icons/X.js.map +1 -0
  90. package/dist/lib/authentication/utils/relativeRedirectUrl.d.ts +1 -0
  91. package/dist/lib/authentication/utils/relativeRedirectUrl.js +8 -0
  92. package/dist/lib/authentication/utils/relativeRedirectUrl.js.map +1 -0
  93. package/dist/lib/components/Autocomplete.d.ts +3 -1
  94. package/dist/lib/components/Autocomplete.js +6 -2
  95. package/dist/lib/components/Autocomplete.js.map +1 -1
  96. package/dist/lib/components/Heading.d.ts +1 -1
  97. package/dist/lib/components/Layout.js +3 -2
  98. package/dist/lib/components/Layout.js.map +1 -1
  99. package/dist/lib/components/Mermaid.d.ts +7 -0
  100. package/dist/lib/components/Mermaid.js +42 -0
  101. package/dist/lib/components/Mermaid.js.map +1 -0
  102. package/dist/lib/components/PagefindSearchMeta.d.ts +8 -0
  103. package/dist/lib/components/PagefindSearchMeta.js +7 -0
  104. package/dist/lib/components/PagefindSearchMeta.js.map +1 -0
  105. package/dist/lib/components/Pagination.js +2 -2
  106. package/dist/lib/components/Pagination.js.map +1 -1
  107. package/dist/lib/components/Zudoku.js +5 -8
  108. package/dist/lib/components/Zudoku.js.map +1 -1
  109. package/dist/lib/components/index.d.ts +7 -2
  110. package/dist/lib/components/index.js +4 -0
  111. package/dist/lib/components/index.js.map +1 -1
  112. package/dist/lib/components/navigation/NavigationItem.js +4 -4
  113. package/dist/lib/components/navigation/NavigationItem.js.map +1 -1
  114. package/dist/lib/components/navigation/Toc.js +1 -1
  115. package/dist/lib/components/navigation/Toc.js.map +1 -1
  116. package/dist/lib/core/RouteGuard.d.ts +1 -1
  117. package/dist/lib/core/RouteGuard.js +22 -25
  118. package/dist/lib/core/RouteGuard.js.map +1 -1
  119. package/dist/lib/core/ZudokuContext.d.ts +1 -0
  120. package/dist/lib/core/ZudokuContext.js +2 -0
  121. package/dist/lib/core/ZudokuContext.js.map +1 -1
  122. package/dist/lib/core/__internal.d.ts +1 -1
  123. package/dist/lib/core/plugins.d.ts +3 -3
  124. package/dist/lib/core/react-query.d.ts +1 -0
  125. package/dist/lib/core/react-query.js +2 -0
  126. package/dist/lib/core/react-query.js.map +1 -0
  127. package/dist/lib/errors/ErrorAlert.js +1 -1
  128. package/dist/lib/errors/ErrorMessage.d.ts +3 -0
  129. package/dist/lib/errors/ErrorMessage.js +16 -0
  130. package/dist/lib/errors/ErrorMessage.js.map +1 -0
  131. package/dist/lib/errors/RouterError.d.ts +3 -1
  132. package/dist/lib/errors/RouterError.js +3 -2
  133. package/dist/lib/errors/RouterError.js.map +1 -1
  134. package/dist/lib/hooks/index.d.ts +4 -2
  135. package/dist/lib/oas/graphql/circular.d.ts +2 -0
  136. package/dist/lib/oas/graphql/circular.js +32 -10
  137. package/dist/lib/oas/graphql/circular.js.map +1 -1
  138. package/dist/lib/oas/graphql/circular.test.d.ts +1 -0
  139. package/dist/lib/oas/graphql/circular.test.js +152 -0
  140. package/dist/lib/oas/graphql/circular.test.js.map +1 -0
  141. package/dist/lib/oas/graphql/index.js +7 -3
  142. package/dist/lib/oas/graphql/index.js.map +1 -1
  143. package/dist/lib/oas/parser/index.d.ts +1 -0
  144. package/dist/lib/oas/parser/index.js +7 -3
  145. package/dist/lib/oas/parser/index.js.map +1 -1
  146. package/dist/lib/plugins/api-keys/ProtectedRoute.js +4 -1
  147. package/dist/lib/plugins/api-keys/ProtectedRoute.js.map +1 -1
  148. package/dist/lib/plugins/api-keys/SettingsApiKeys.js +9 -172
  149. package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
  150. package/dist/lib/plugins/api-keys/index.d.ts +11 -4
  151. package/dist/lib/plugins/api-keys/index.js +36 -22
  152. package/dist/lib/plugins/api-keys/index.js.map +1 -1
  153. package/dist/lib/plugins/api-keys/settings/ApiKeyItem.d.ts +12 -0
  154. package/dist/lib/plugins/api-keys/settings/ApiKeyItem.js +133 -0
  155. package/dist/lib/plugins/api-keys/settings/ApiKeyItem.js.map +1 -0
  156. package/dist/lib/plugins/api-keys/settings/ApiKeyList.d.ts +4 -0
  157. package/dist/lib/plugins/api-keys/settings/ApiKeyList.js +33 -0
  158. package/dist/lib/plugins/api-keys/settings/ApiKeyList.js.map +1 -0
  159. package/dist/lib/plugins/api-keys/settings/RevealApiKey.d.ts +6 -0
  160. package/dist/lib/plugins/api-keys/settings/RevealApiKey.js +39 -0
  161. package/dist/lib/plugins/api-keys/settings/RevealApiKey.js.map +1 -0
  162. package/dist/lib/plugins/markdown/MdxPage.d.ts +2 -1
  163. package/dist/lib/plugins/markdown/MdxPage.js +3 -2
  164. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  165. package/dist/lib/plugins/markdown/index.d.ts +1 -0
  166. package/dist/lib/plugins/markdown/index.js +1 -1
  167. package/dist/lib/plugins/markdown/index.js.map +1 -1
  168. package/dist/lib/plugins/openapi/CollapsibleCode.d.ts +1 -0
  169. package/dist/lib/plugins/openapi/CollapsibleCode.js +2 -1
  170. package/dist/lib/plugins/openapi/CollapsibleCode.js.map +1 -1
  171. package/dist/lib/plugins/openapi/DownloadSchemaButton.d.ts +3 -0
  172. package/dist/lib/plugins/openapi/DownloadSchemaButton.js +47 -0
  173. package/dist/lib/plugins/openapi/DownloadSchemaButton.js.map +1 -0
  174. package/dist/lib/plugins/openapi/Endpoint.js +3 -6
  175. package/dist/lib/plugins/openapi/Endpoint.js.map +1 -1
  176. package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.d.ts +5 -0
  177. package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.js +10 -0
  178. package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.js.map +1 -0
  179. package/dist/lib/plugins/openapi/OasProvider.js +22 -13
  180. package/dist/lib/plugins/openapi/OasProvider.js.map +1 -1
  181. package/dist/lib/plugins/openapi/OperationList.js +20 -6
  182. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  183. package/dist/lib/plugins/openapi/OperationListItem.d.ts +2 -1
  184. package/dist/lib/plugins/openapi/OperationListItem.js +4 -3
  185. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  186. package/dist/lib/plugins/openapi/ParamInfos.js +1 -0
  187. package/dist/lib/plugins/openapi/ParamInfos.js.map +1 -1
  188. package/dist/lib/plugins/openapi/ParameterList.js +7 -4
  189. package/dist/lib/plugins/openapi/ParameterList.js.map +1 -1
  190. package/dist/lib/plugins/openapi/ParameterListItem.js +17 -6
  191. package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
  192. package/dist/lib/plugins/openapi/RequestBodySidecarBox.d.ts +9 -2
  193. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js +5 -2
  194. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js.map +1 -1
  195. package/dist/lib/plugins/openapi/ResponsesSidecarBox.d.ts +4 -2
  196. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +26 -4
  197. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
  198. package/dist/lib/plugins/openapi/SchemaList.js +2 -1
  199. package/dist/lib/plugins/openapi/SchemaList.js.map +1 -1
  200. package/dist/lib/plugins/openapi/Sidecar.d.ts +2 -2
  201. package/dist/lib/plugins/openapi/Sidecar.js +64 -28
  202. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  203. package/dist/lib/plugins/openapi/SidecarBox.js +4 -4
  204. package/dist/lib/plugins/openapi/SidecarBox.js.map +1 -1
  205. package/dist/lib/plugins/openapi/SidecarExamples.d.ts +9 -2
  206. package/dist/lib/plugins/openapi/SidecarExamples.js +24 -43
  207. package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -1
  208. package/dist/lib/plugins/openapi/components/ConstValue.js +1 -1
  209. package/dist/lib/plugins/openapi/components/ConstValue.js.map +1 -1
  210. package/dist/lib/plugins/openapi/components/EnumValues.js +1 -1
  211. package/dist/lib/plugins/openapi/components/EnumValues.js.map +1 -1
  212. package/dist/lib/plugins/openapi/components/NonHighlightedCode.d.ts +4 -0
  213. package/dist/lib/plugins/openapi/components/NonHighlightedCode.js +5 -0
  214. package/dist/lib/plugins/openapi/components/NonHighlightedCode.js.map +1 -0
  215. package/dist/lib/plugins/openapi/components/ResponseContent.js +5 -6
  216. package/dist/lib/plugins/openapi/components/ResponseContent.js.map +1 -1
  217. package/dist/lib/plugins/openapi/index.js +15 -14
  218. package/dist/lib/plugins/openapi/index.js.map +1 -1
  219. package/dist/lib/plugins/openapi/interfaces.d.ts +29 -13
  220. package/dist/lib/plugins/openapi/playground/BodyPanel.js +67 -15
  221. package/dist/lib/plugins/openapi/playground/BodyPanel.js.map +1 -1
  222. package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js +2 -2
  223. package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js.map +1 -1
  224. package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js +1 -1
  225. package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js.map +1 -1
  226. package/dist/lib/plugins/openapi/playground/Headers.js +23 -83
  227. package/dist/lib/plugins/openapi/playground/Headers.js.map +1 -1
  228. package/dist/lib/plugins/openapi/playground/ParamsGrid.d.ts +10 -2
  229. package/dist/lib/plugins/openapi/playground/ParamsGrid.js +8 -1
  230. package/dist/lib/plugins/openapi/playground/ParamsGrid.js.map +1 -1
  231. package/dist/lib/plugins/openapi/playground/PathParams.js +2 -3
  232. package/dist/lib/plugins/openapi/playground/PathParams.js.map +1 -1
  233. package/dist/lib/plugins/openapi/playground/Playground.d.ts +7 -0
  234. package/dist/lib/plugins/openapi/playground/Playground.js +70 -28
  235. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  236. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +3 -2
  237. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js.map +1 -1
  238. package/dist/lib/plugins/openapi/playground/QueryParams.js +16 -40
  239. package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
  240. package/dist/lib/plugins/openapi/playground/RequestLoginDialog.d.ts +2 -1
  241. package/dist/lib/plugins/openapi/playground/RequestLoginDialog.js +10 -2
  242. package/dist/lib/plugins/openapi/playground/RequestLoginDialog.js.map +1 -1
  243. package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.d.ts +8 -0
  244. package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.js +19 -0
  245. package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.js.map +1 -0
  246. package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.js +1 -1
  247. package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.js.map +1 -1
  248. package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.d.ts +1 -0
  249. package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.js +540 -0
  250. package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.js.map +1 -0
  251. package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.d.ts +40 -0
  252. package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.js +205 -0
  253. package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.js.map +1 -0
  254. package/dist/lib/plugins/openapi/playground/result-panel/Highlight.d.ts +1 -1
  255. package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.js +1 -1
  256. package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.js.map +1 -1
  257. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +23 -21
  258. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js.map +1 -1
  259. package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js +1 -1
  260. package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js.map +1 -1
  261. package/dist/lib/plugins/openapi/playground/useRememberSkipLoginDialog.js +2 -0
  262. package/dist/lib/plugins/openapi/playground/useRememberSkipLoginDialog.js.map +1 -1
  263. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js +1 -1
  264. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js.map +1 -1
  265. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js +17 -8
  266. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js.map +1 -1
  267. package/dist/lib/plugins/openapi/schema/SchemaView.d.ts +1 -1
  268. package/dist/lib/plugins/openapi/schema/SchemaView.js +31 -16
  269. package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
  270. package/dist/lib/plugins/openapi/schema/UnionView.js +2 -5
  271. package/dist/lib/plugins/openapi/schema/UnionView.js.map +1 -1
  272. package/dist/lib/plugins/openapi/schema/union-helpers.js +0 -1
  273. package/dist/lib/plugins/openapi/schema/union-helpers.js.map +1 -1
  274. package/dist/lib/plugins/openapi/schema/utils.d.ts +2 -2
  275. package/dist/lib/plugins/openapi/schema/utils.js +11 -3
  276. package/dist/lib/plugins/openapi/schema/utils.js.map +1 -1
  277. package/dist/lib/plugins/openapi/util/createHttpSnippet.js +24 -1
  278. package/dist/lib/plugins/openapi/util/createHttpSnippet.js.map +1 -1
  279. package/dist/lib/plugins/openapi/util/generateSchemaExample.js +9 -11
  280. package/dist/lib/plugins/openapi/util/generateSchemaExample.js.map +1 -1
  281. package/dist/lib/plugins/openapi/util/getRoutes.d.ts +6 -1
  282. package/dist/lib/plugins/openapi/util/getRoutes.js +29 -2
  283. package/dist/lib/plugins/openapi/util/getRoutes.js.map +1 -1
  284. package/dist/lib/plugins/search-pagefind/IndexingDialog.d.ts +3 -0
  285. package/dist/lib/plugins/search-pagefind/IndexingDialog.js +64 -0
  286. package/dist/lib/plugins/search-pagefind/IndexingDialog.js.map +1 -0
  287. package/dist/lib/plugins/search-pagefind/PagefindSearch.js +22 -5
  288. package/dist/lib/plugins/search-pagefind/PagefindSearch.js.map +1 -1
  289. package/dist/lib/plugins/search-pagefind/ResultList.js +5 -4
  290. package/dist/lib/plugins/search-pagefind/ResultList.js.map +1 -1
  291. package/dist/lib/shiki.d.ts +2 -2
  292. package/dist/lib/shiki.js +31 -14
  293. package/dist/lib/shiki.js.map +1 -1
  294. package/dist/lib/ui/Badge.d.ts +3 -3
  295. package/dist/lib/ui/Badge.js +9 -7
  296. package/dist/lib/ui/Badge.js.map +1 -1
  297. package/dist/lib/ui/Button.d.ts +2 -2
  298. package/dist/lib/ui/Button.js +10 -8
  299. package/dist/lib/ui/Button.js.map +1 -1
  300. package/dist/lib/ui/ButtonGroup.d.ts +11 -0
  301. package/dist/lib/ui/ButtonGroup.js +28 -0
  302. package/dist/lib/ui/ButtonGroup.js.map +1 -0
  303. package/dist/lib/ui/Callout.d.ts +5 -5
  304. package/dist/lib/ui/Callout.js +5 -5
  305. package/dist/lib/ui/Callout.js.map +1 -1
  306. package/dist/lib/ui/Checkbox.d.ts +2 -2
  307. package/dist/lib/ui/Checkbox.js +4 -4
  308. package/dist/lib/ui/Checkbox.js.map +1 -1
  309. package/dist/lib/ui/CodeBlock.d.ts +0 -1
  310. package/dist/lib/ui/CodeBlock.js +1 -1
  311. package/dist/lib/ui/CodeBlock.js.map +1 -1
  312. package/dist/lib/ui/Collapsible.d.ts +4 -4
  313. package/dist/lib/ui/Collapsible.js +11 -4
  314. package/dist/lib/ui/Collapsible.js.map +1 -1
  315. package/dist/lib/ui/Command.d.ts +3 -3
  316. package/dist/lib/ui/Command.js +2 -2
  317. package/dist/lib/ui/Command.js.map +1 -1
  318. package/dist/lib/ui/Dialog.d.ts +12 -18
  319. package/dist/lib/ui/Dialog.js +30 -17
  320. package/dist/lib/ui/Dialog.js.map +1 -1
  321. package/dist/lib/ui/DropdownMenu.d.ts +21 -23
  322. package/dist/lib/ui/DropdownMenu.js +47 -32
  323. package/dist/lib/ui/DropdownMenu.js.map +1 -1
  324. package/dist/lib/ui/EmbeddedCodeBlock.d.ts +3 -2
  325. package/dist/lib/ui/EmbeddedCodeBlock.js +4 -3
  326. package/dist/lib/ui/EmbeddedCodeBlock.js.map +1 -1
  327. package/dist/lib/ui/Frame.d.ts +8 -0
  328. package/dist/lib/ui/Frame.js +22 -0
  329. package/dist/lib/ui/Frame.js.map +1 -0
  330. package/dist/lib/ui/Item.d.ts +23 -0
  331. package/dist/lib/ui/Item.js +67 -0
  332. package/dist/lib/ui/Item.js.map +1 -0
  333. package/dist/lib/ui/Kbd.d.ts +3 -0
  334. package/dist/lib/ui/Kbd.js +10 -0
  335. package/dist/lib/ui/Kbd.js.map +1 -0
  336. package/dist/lib/ui/NativeSelect.d.ts +5 -0
  337. package/dist/lib/ui/NativeSelect.js +14 -0
  338. package/dist/lib/ui/NativeSelect.js.map +1 -0
  339. package/dist/lib/ui/ReactComponentDoc.d.ts +1 -1
  340. package/dist/lib/ui/ReactComponentDoc.js +2 -2
  341. package/dist/lib/ui/ReactComponentDoc.js.map +1 -1
  342. package/dist/lib/ui/Select.d.ts +13 -11
  343. package/dist/lib/ui/Select.js +34 -23
  344. package/dist/lib/ui/Select.js.map +1 -1
  345. package/dist/lib/ui/Separator.d.ts +4 -0
  346. package/dist/lib/ui/Separator.js +8 -0
  347. package/dist/lib/ui/Separator.js.map +1 -0
  348. package/dist/lib/ui/SyntaxHighlight.d.ts +1 -0
  349. package/dist/lib/ui/SyntaxHighlight.js.map +1 -1
  350. package/dist/lib/ui/Tooltip.d.ts +7 -7
  351. package/dist/lib/ui/Tooltip.js +16 -10
  352. package/dist/lib/ui/Tooltip.js.map +1 -1
  353. package/dist/lib/util/MdxComponents.d.ts +3 -1
  354. package/dist/lib/util/MdxComponents.js +5 -2
  355. package/dist/lib/util/MdxComponents.js.map +1 -1
  356. package/dist/lib/util/createVariantComponent.d.ts +5 -2
  357. package/dist/lib/util/createVariantComponent.js +5 -2
  358. package/dist/lib/util/createVariantComponent.js.map +1 -1
  359. package/dist/lib/util/flattenAllOf.d.ts +4 -0
  360. package/dist/lib/util/flattenAllOf.js +88 -0
  361. package/dist/lib/util/flattenAllOf.js.map +1 -0
  362. package/dist/lib/util/flattenAllOf.test.d.ts +1 -0
  363. package/dist/lib/util/flattenAllOf.test.js +587 -0
  364. package/dist/lib/util/flattenAllOf.test.js.map +1 -0
  365. package/dist/lib/util/invariant.d.ts +1 -1
  366. package/dist/lib/util/invariant.js +2 -2
  367. package/dist/lib/util/invariant.js.map +1 -1
  368. package/dist/lib/util/readFrontmatter.d.ts +6 -0
  369. package/dist/lib/util/readFrontmatter.js +12 -0
  370. package/dist/lib/util/readFrontmatter.js.map +1 -0
  371. package/dist/lib/util/syncZustandState.d.ts +5 -0
  372. package/dist/lib/util/syncZustandState.js +14 -0
  373. package/dist/lib/util/syncZustandState.js.map +1 -0
  374. package/dist/vite/api/SchemaManager.d.ts +9 -1
  375. package/dist/vite/api/SchemaManager.js +58 -21
  376. package/dist/vite/api/SchemaManager.js.map +1 -1
  377. package/dist/vite/api/SchemaManager.test.js +69 -2
  378. package/dist/vite/api/SchemaManager.test.js.map +1 -1
  379. package/dist/vite/config.js +13 -1
  380. package/dist/vite/config.js.map +1 -1
  381. package/dist/vite/dev-server.js +25 -0
  382. package/dist/vite/dev-server.js.map +1 -1
  383. package/dist/vite/error-handler.js +1 -5
  384. package/dist/vite/error-handler.js.map +1 -1
  385. package/dist/vite/mdx/remark-last-modified.js +57 -3
  386. package/dist/vite/mdx/remark-last-modified.js.map +1 -1
  387. package/dist/vite/mdx/remark-link-rewrite.js +1 -1
  388. package/dist/vite/pagefind-dev-index.d.ts +16 -0
  389. package/dist/vite/pagefind-dev-index.js +68 -0
  390. package/dist/vite/pagefind-dev-index.js.map +1 -0
  391. package/dist/vite/plugin-api-keys.js +5 -1
  392. package/dist/vite/plugin-api-keys.js.map +1 -1
  393. package/dist/vite/plugin-api.js +55 -8
  394. package/dist/vite/plugin-api.js.map +1 -1
  395. package/dist/vite/plugin-docs.js +1 -1
  396. package/dist/vite/plugin-docs.js.map +1 -1
  397. package/dist/vite/plugin-frontmatter.js +3 -5
  398. package/dist/vite/plugin-frontmatter.js.map +1 -1
  399. package/dist/vite/plugin-markdown-export.js +8 -7
  400. package/dist/vite/plugin-markdown-export.js.map +1 -1
  401. package/dist/vite/plugin-mdx.js +36 -30
  402. package/dist/vite/plugin-mdx.js.map +1 -1
  403. package/dist/vite/plugin-theme.js +10 -1
  404. package/dist/vite/plugin-theme.js.map +1 -1
  405. package/dist/vite/prerender/prerender.js +1 -19
  406. package/dist/vite/prerender/prerender.js.map +1 -1
  407. package/dist/vite/prerender/utils.d.ts +2 -0
  408. package/dist/vite/prerender/utils.js +30 -0
  409. package/dist/vite/prerender/utils.js.map +1 -0
  410. package/dist/vite/prerender/worker.js +3 -0
  411. package/dist/vite/prerender/worker.js.map +1 -1
  412. package/dist/vite/zuplo.d.ts +13 -0
  413. package/dist/vite/zuplo.js +15 -0
  414. package/dist/vite/zuplo.js.map +1 -0
  415. package/lib/ActionButton-B0CXL1Lq.js +25 -0
  416. package/lib/ActionButton-B0CXL1Lq.js.map +1 -0
  417. package/lib/Button-GUVe7pmt.js +54 -0
  418. package/lib/Button-GUVe7pmt.js.map +1 -0
  419. package/lib/{Card-KFniaZn5.js → Card-DCdq37aA.js} +2 -2
  420. package/lib/{Card-KFniaZn5.js.map → Card-DCdq37aA.js.map} +1 -1
  421. package/lib/ClaudeLogo-DHxJUhN_.js +69 -0
  422. package/lib/ClaudeLogo-DHxJUhN_.js.map +1 -0
  423. package/lib/{Command-CJY6q3PF.js → Command-N6VujV30.js} +26 -26
  424. package/lib/Command-N6VujV30.js.map +1 -0
  425. package/lib/Dialog-hlvmmQ_c.js +144 -0
  426. package/lib/Dialog-hlvmmQ_c.js.map +1 -0
  427. package/lib/{Drawer-Ci7XwhqT.js → Drawer-Ch7927PF.js} +7 -7
  428. package/lib/{Drawer-Ci7XwhqT.js.map → Drawer-Ch7927PF.js.map} +1 -1
  429. package/lib/DropdownMenu-DN0jNrjj.js +104 -0
  430. package/lib/DropdownMenu-DN0jNrjj.js.map +1 -0
  431. package/lib/Frame-DKlOmSkU.js +205 -0
  432. package/lib/Frame-DKlOmSkU.js.map +1 -0
  433. package/lib/HydrationBoundary-CNF2ZV3E.js +601 -0
  434. package/lib/HydrationBoundary-CNF2ZV3E.js.map +1 -0
  435. package/lib/IndexingDialog-D0YdGfbn.js +100 -0
  436. package/lib/IndexingDialog-D0YdGfbn.js.map +1 -0
  437. package/lib/Input-Cx-GeKoF.js +22 -0
  438. package/lib/Input-Cx-GeKoF.js.map +1 -0
  439. package/lib/MdxPage-CD36PJ17.js +210 -0
  440. package/lib/MdxPage-CD36PJ17.js.map +1 -0
  441. package/lib/Mermaid-Koc3z8mU.js +102 -0
  442. package/lib/Mermaid-Koc3z8mU.js.map +1 -0
  443. package/lib/{OAuthErrorPage-DJUOdr6Q.js → OAuthErrorPage-4mN5DA86.js} +16 -16
  444. package/lib/OAuthErrorPage-4mN5DA86.js.map +1 -0
  445. package/lib/OasProvider-DSe-hk5Y.js +40 -0
  446. package/lib/OasProvider-DSe-hk5Y.js.map +1 -0
  447. package/lib/OperationList-CaknPbvq.js +5823 -0
  448. package/lib/OperationList-CaknPbvq.js.map +1 -0
  449. package/lib/RouteGuard--A04ESy8.js +77 -0
  450. package/lib/RouteGuard--A04ESy8.js.map +1 -0
  451. package/lib/{SchemaList-1eLKXqn8.js → SchemaList-Dw3-CJPb.js} +28 -27
  452. package/lib/SchemaList-Dw3-CJPb.js.map +1 -0
  453. package/lib/SchemaView-DyJkiQkD.js +438 -0
  454. package/lib/SchemaView-DyJkiQkD.js.map +1 -0
  455. package/lib/Secret-BDBqq4p3.js +243 -0
  456. package/lib/Secret-BDBqq4p3.js.map +1 -0
  457. package/lib/Separator-BXt1LYnm.js +27 -0
  458. package/lib/Separator-BXt1LYnm.js.map +1 -0
  459. package/lib/SignUp-DRvN-8cq.js +50 -0
  460. package/lib/SignUp-DRvN-8cq.js.map +1 -0
  461. package/lib/{SyntaxHighlight-B0laqAqK.js → SyntaxHighlight-klTH8c6-.js} +1781 -1697
  462. package/lib/SyntaxHighlight-klTH8c6-.js.map +1 -0
  463. package/lib/{Toc-KzXCRqrX.js → Toc-PbuF-u9x.js} +6 -6
  464. package/lib/Toc-PbuF-u9x.js.map +1 -0
  465. package/lib/ZudokuContext-BZB1TWdT.js +387 -0
  466. package/lib/ZudokuContext-BZB1TWdT.js.map +1 -0
  467. package/lib/___vite-browser-external_commonjs-proxy-BttVsNON.js +9 -0
  468. package/lib/___vite-browser-external_commonjs-proxy-BttVsNON.js.map +1 -0
  469. package/lib/chunk-EPOLDU6W-C6C8jAwd.js +8558 -0
  470. package/lib/chunk-EPOLDU6W-C6C8jAwd.js.map +1 -0
  471. package/lib/{circular-D6wbrxuf.js → circular-DFquXeY2.js} +6459 -6030
  472. package/lib/circular-DFquXeY2.js.map +1 -0
  473. package/lib/{cn-dYga0KKN.js → cn-5-Gd1Dss.js} +531 -498
  474. package/lib/cn-5-Gd1Dss.js.map +1 -0
  475. package/lib/createServer-BXZ0CAUn.js +16693 -0
  476. package/lib/createServer-BXZ0CAUn.js.map +1 -0
  477. package/lib/createVariantComponent-Dc0vtOvr.js +18 -0
  478. package/lib/createVariantComponent-Dc0vtOvr.js.map +1 -0
  479. package/lib/{errors-XqO6MsfU.js → errors-rWHkzVTd.js} +3 -3
  480. package/lib/{errors-XqO6MsfU.js.map → errors-rWHkzVTd.js.map} +1 -1
  481. package/lib/firebase-BmGU1FuD.js +7614 -0
  482. package/lib/firebase-BmGU1FuD.js.map +1 -0
  483. package/lib/hook-BGlHBdET.js +52 -0
  484. package/lib/hook-BGlHBdET.js.map +1 -0
  485. package/lib/{ErrorAlert-VBJ8aHH7.js → index-BDsEwofZ.js} +5503 -4505
  486. package/lib/index-BDsEwofZ.js.map +1 -0
  487. package/lib/index-BQB9hb6n.js +3677 -0
  488. package/lib/index-BQB9hb6n.js.map +1 -0
  489. package/lib/index-CrcNWbel.js.map +1 -1
  490. package/lib/index-DBjOT2H1.js +133 -0
  491. package/lib/index-DBjOT2H1.js.map +1 -0
  492. package/lib/{index-C5L4favO.js → index-DRBOFufT.js} +2 -2
  493. package/lib/{index-C5L4favO.js.map → index-DRBOFufT.js.map} +1 -1
  494. package/lib/index.esm-BYObtETB.js.map +1 -1
  495. package/lib/{index.esm-BnYHxCYC.js → index.esm-B_0dvNjB.js} +20 -20
  496. package/lib/{index.esm-BnYHxCYC.js.map → index.esm-B_0dvNjB.js.map} +1 -1
  497. package/lib/index.esm-Cx8B1YJQ.js +34 -0
  498. package/lib/index.esm-Cx8B1YJQ.js.map +1 -0
  499. package/lib/{invariant-Bm-FVUQE.js → invariant-BJAl77rw.js} +6 -6
  500. package/lib/invariant-BJAl77rw.js.map +1 -0
  501. package/lib/jsx-runtime-BzflLqGi.js.map +1 -1
  502. package/lib/{mutation-CdGPxHNX.js → mutation-BISOc7OM.js} +70 -44
  503. package/lib/mutation-BISOc7OM.js.map +1 -0
  504. package/lib/ui/Accordion.js +1 -1
  505. package/lib/ui/ActionButton.js +2 -2
  506. package/lib/ui/Alert.js +1 -1
  507. package/lib/ui/AlertDialog.js +1 -1
  508. package/lib/ui/Badge.js +27 -13
  509. package/lib/ui/Badge.js.map +1 -1
  510. package/lib/ui/Breadcrumb.js +1 -1
  511. package/lib/ui/Button.js +28 -25
  512. package/lib/ui/Button.js.map +1 -1
  513. package/lib/ui/ButtonGroup.js +77 -0
  514. package/lib/ui/ButtonGroup.js.map +1 -0
  515. package/lib/ui/Callout.js +19 -19
  516. package/lib/ui/Callout.js.map +1 -1
  517. package/lib/ui/Card.js +1 -1
  518. package/lib/ui/Carousel.js +1 -1
  519. package/lib/ui/Carousel.js.map +1 -1
  520. package/lib/ui/Checkbox.js +29 -26
  521. package/lib/ui/Checkbox.js.map +1 -1
  522. package/lib/ui/CodeBlock.js +217 -7
  523. package/lib/ui/CodeBlock.js.map +1 -1
  524. package/lib/ui/Collapsible.js +32 -5
  525. package/lib/ui/Collapsible.js.map +1 -1
  526. package/lib/ui/Command.js +5 -5
  527. package/lib/ui/Command.js.map +1 -1
  528. package/lib/ui/Dialog.js +136 -106
  529. package/lib/ui/Dialog.js.map +1 -1
  530. package/lib/ui/Drawer.js +3 -3
  531. package/lib/ui/DropdownMenu.js +227 -140
  532. package/lib/ui/DropdownMenu.js.map +1 -1
  533. package/lib/ui/EmbeddedCodeBlock.js +36 -32
  534. package/lib/ui/EmbeddedCodeBlock.js.map +1 -1
  535. package/lib/ui/Form.js +1 -1
  536. package/lib/ui/Frame.js +81 -0
  537. package/lib/ui/Frame.js.map +1 -0
  538. package/lib/ui/HoverCard.js +1 -1
  539. package/lib/ui/Input.js +1 -1
  540. package/lib/ui/Item.js +188 -0
  541. package/lib/ui/Item.js.map +1 -0
  542. package/lib/ui/Kbd.js +32 -0
  543. package/lib/ui/Kbd.js.map +1 -0
  544. package/lib/ui/Label.js +1 -1
  545. package/lib/ui/NativeSelect.js +57 -0
  546. package/lib/ui/NativeSelect.js.map +1 -0
  547. package/lib/ui/Pagination.js +1 -1
  548. package/lib/ui/Popover.js +1 -1
  549. package/lib/ui/Progress.js +1 -1
  550. package/lib/ui/RadioGroup.js +1 -1
  551. package/lib/ui/ReactComponentDoc.js +13 -13
  552. package/lib/ui/ReactComponentDoc.js.map +1 -1
  553. package/lib/ui/ScrollArea.js +1 -1
  554. package/lib/ui/Secret.js +1 -1
  555. package/lib/ui/Select.js +166 -116
  556. package/lib/ui/Select.js.map +1 -1
  557. package/lib/ui/Separator.js +27 -0
  558. package/lib/ui/Separator.js.map +1 -0
  559. package/lib/ui/Skeleton.js +1 -1
  560. package/lib/ui/Slider.js +1 -1
  561. package/lib/ui/Switch.js +1 -1
  562. package/lib/ui/SyntaxHighlight.js +4 -4
  563. package/lib/ui/Tabs.js +11 -11
  564. package/lib/ui/Textarea.js +1 -1
  565. package/lib/ui/Toggle.js +1 -1
  566. package/lib/ui/ToggleGroup.js +1 -1
  567. package/lib/ui/Tooltip.js +55 -28
  568. package/lib/ui/Tooltip.js.map +1 -1
  569. package/lib/ui/Value.js +1 -1
  570. package/lib/ui/util.js +1 -1
  571. package/lib/useMutation-CFMGlAMW.js +119 -0
  572. package/lib/useMutation-CFMGlAMW.js.map +1 -0
  573. package/lib/useSuspenseQuery-CSB_rVek.js +1226 -0
  574. package/lib/useSuspenseQuery-CSB_rVek.js.map +1 -0
  575. package/lib/zudoku.__internal.js +826 -1325
  576. package/lib/zudoku.__internal.js.map +1 -1
  577. package/lib/zudoku.auth-auth0.js +19 -19
  578. package/lib/zudoku.auth-auth0.js.map +1 -1
  579. package/lib/zudoku.auth-azureb2c.js +28 -28
  580. package/lib/zudoku.auth-azureb2c.js.map +1 -1
  581. package/lib/zudoku.auth-clerk.js +41 -64
  582. package/lib/zudoku.auth-clerk.js.map +1 -1
  583. package/lib/zudoku.auth-firebase.js +10 -0
  584. package/lib/zudoku.auth-firebase.js.map +1 -0
  585. package/lib/zudoku.auth-openid.js +52 -55
  586. package/lib/zudoku.auth-openid.js.map +1 -1
  587. package/lib/zudoku.auth-supabase.js +107 -60
  588. package/lib/zudoku.auth-supabase.js.map +1 -1
  589. package/lib/zudoku.components.js +23 -21
  590. package/lib/zudoku.hooks.js +11 -24
  591. package/lib/zudoku.hooks.js.map +1 -1
  592. package/lib/zudoku.mermaid.js +10 -0
  593. package/lib/zudoku.mermaid.js.map +1 -0
  594. package/lib/zudoku.plugin-api-catalog.js +8 -8
  595. package/lib/zudoku.plugin-api-keys.js +607 -543
  596. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  597. package/lib/zudoku.plugin-custom-pages.js +1 -1
  598. package/lib/zudoku.plugin-markdown.js +10 -9
  599. package/lib/zudoku.plugin-markdown.js.map +1 -1
  600. package/lib/zudoku.plugin-openapi.js +6 -7
  601. package/lib/zudoku.plugin-openapi.js.map +1 -1
  602. package/lib/zudoku.plugin-redirect.js +1 -1
  603. package/lib/zudoku.plugin-search-pagefind.js +185 -226
  604. package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
  605. package/lib/zudoku.plugins.js.map +1 -1
  606. package/lib/zudoku.react-query.js +440 -0
  607. package/lib/zudoku.react-query.js.map +1 -0
  608. package/lib/zudoku.router.js +1130 -1404
  609. package/lib/zudoku.router.js.map +1 -1
  610. package/package.json +76 -45
  611. package/src/app/entry.server.tsx +16 -6
  612. package/src/app/main.css +61 -9
  613. package/src/app/main.tsx +5 -1
  614. package/src/app/sentry.ts +1 -1
  615. package/src/lib/auth/issuer.ts +3 -0
  616. package/src/lib/authentication/authentication.ts +29 -5
  617. package/src/lib/authentication/components/CallbackHandler.tsx +1 -1
  618. package/src/lib/authentication/components/OAuthErrorPage.tsx +1 -1
  619. package/src/lib/authentication/components/SignIn.tsx +10 -5
  620. package/src/lib/authentication/components/SignOut.tsx +7 -6
  621. package/src/lib/authentication/components/SignUp.tsx +8 -8
  622. package/src/lib/authentication/hook.ts +37 -10
  623. package/src/lib/authentication/providers/auth0.tsx +23 -11
  624. package/src/lib/authentication/providers/azureb2c.tsx +10 -3
  625. package/src/lib/authentication/providers/clerk.tsx +9 -28
  626. package/src/lib/authentication/providers/firebase.tsx +376 -0
  627. package/src/lib/authentication/providers/openid.tsx +18 -15
  628. package/src/lib/authentication/providers/supabase/SupabaseAuthUI.tsx +75 -0
  629. package/src/lib/authentication/providers/supabase.tsx +61 -59
  630. package/src/lib/authentication/state.ts +3 -23
  631. package/src/lib/authentication/ui/EmailVerificationUi.tsx +129 -0
  632. package/src/lib/authentication/ui/ZudokuAuthUi.tsx +477 -0
  633. package/src/lib/authentication/ui/icons/Apple.tsx +10 -0
  634. package/src/lib/authentication/ui/icons/Facebook.tsx +15 -0
  635. package/src/lib/authentication/ui/icons/Github.tsx +16 -0
  636. package/src/lib/authentication/ui/icons/Google.tsx +16 -0
  637. package/src/lib/authentication/ui/icons/Microsoft.tsx +12 -0
  638. package/src/lib/authentication/ui/icons/X.tsx +10 -0
  639. package/src/lib/authentication/utils/relativeRedirectUrl.ts +12 -0
  640. package/src/lib/components/Autocomplete.tsx +11 -2
  641. package/src/lib/components/Layout.tsx +3 -2
  642. package/src/lib/components/Mermaid.tsx +68 -0
  643. package/src/lib/components/PagefindSearchMeta.tsx +14 -0
  644. package/src/lib/components/Pagination.tsx +4 -5
  645. package/src/lib/components/Zudoku.tsx +7 -10
  646. package/src/lib/components/index.ts +4 -0
  647. package/src/lib/components/navigation/NavigationItem.tsx +16 -23
  648. package/src/lib/components/navigation/Toc.tsx +3 -3
  649. package/src/lib/core/RouteGuard.tsx +69 -43
  650. package/src/lib/core/ZudokuContext.ts +3 -0
  651. package/src/lib/core/plugins.ts +2 -2
  652. package/src/lib/core/react-query.ts +1 -0
  653. package/src/lib/errors/ErrorAlert.tsx +1 -1
  654. package/src/lib/errors/ErrorMessage.tsx +38 -0
  655. package/src/lib/errors/RouterError.tsx +7 -2
  656. package/src/lib/oas/graphql/circular.test.ts +186 -0
  657. package/src/lib/oas/graphql/circular.ts +49 -10
  658. package/src/lib/oas/graphql/index.ts +7 -3
  659. package/src/lib/oas/parser/index.ts +10 -3
  660. package/src/lib/plugins/api-keys/ProtectedRoute.tsx +11 -7
  661. package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +36 -476
  662. package/src/lib/plugins/api-keys/index.tsx +76 -32
  663. package/src/lib/plugins/api-keys/settings/ApiKeyItem.tsx +342 -0
  664. package/src/lib/plugins/api-keys/settings/ApiKeyList.tsx +67 -0
  665. package/src/lib/plugins/api-keys/settings/RevealApiKey.tsx +124 -0
  666. package/src/lib/plugins/markdown/MdxPage.tsx +4 -1
  667. package/src/lib/plugins/markdown/index.tsx +2 -0
  668. package/src/lib/plugins/openapi/CollapsibleCode.tsx +5 -3
  669. package/src/lib/plugins/openapi/DownloadSchemaButton.tsx +115 -0
  670. package/src/lib/plugins/openapi/Endpoint.tsx +20 -27
  671. package/src/lib/plugins/openapi/GeneratedExampleSidecarBox.tsx +52 -0
  672. package/src/lib/plugins/openapi/OasProvider.tsx +30 -17
  673. package/src/lib/plugins/openapi/OperationList.tsx +51 -21
  674. package/src/lib/plugins/openapi/OperationListItem.tsx +15 -12
  675. package/src/lib/plugins/openapi/ParamInfos.tsx +1 -0
  676. package/src/lib/plugins/openapi/ParameterList.tsx +37 -23
  677. package/src/lib/plugins/openapi/ParameterListItem.tsx +105 -54
  678. package/src/lib/plugins/openapi/RequestBodySidecarBox.tsx +48 -7
  679. package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +101 -33
  680. package/src/lib/plugins/openapi/SchemaList.tsx +4 -0
  681. package/src/lib/plugins/openapi/Sidecar.tsx +148 -67
  682. package/src/lib/plugins/openapi/SidecarBox.tsx +26 -4
  683. package/src/lib/plugins/openapi/SidecarExamples.tsx +91 -79
  684. package/src/lib/plugins/openapi/components/ConstValue.tsx +1 -1
  685. package/src/lib/plugins/openapi/components/EnumValues.tsx +2 -2
  686. package/src/lib/plugins/openapi/components/NonHighlightedCode.tsx +22 -0
  687. package/src/lib/plugins/openapi/components/ResponseContent.tsx +63 -53
  688. package/src/lib/plugins/openapi/index.tsx +25 -36
  689. package/src/lib/plugins/openapi/interfaces.ts +28 -7
  690. package/src/lib/plugins/openapi/playground/BodyPanel.tsx +246 -30
  691. package/src/lib/plugins/openapi/playground/CollapsibleHeader.tsx +10 -6
  692. package/src/lib/plugins/openapi/playground/ExamplesDropdown.tsx +3 -2
  693. package/src/lib/plugins/openapi/playground/Headers.tsx +103 -219
  694. package/src/lib/plugins/openapi/playground/ParamsGrid.tsx +33 -1
  695. package/src/lib/plugins/openapi/playground/PathParams.tsx +26 -34
  696. package/src/lib/plugins/openapi/playground/Playground.tsx +88 -35
  697. package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +10 -31
  698. package/src/lib/plugins/openapi/playground/QueryParams.tsx +82 -136
  699. package/src/lib/plugins/openapi/playground/RequestLoginDialog.tsx +20 -1
  700. package/src/lib/plugins/openapi/playground/request-panel/MultipartField.tsx +91 -0
  701. package/src/lib/plugins/openapi/playground/request-panel/UrlQueryParams.tsx +1 -1
  702. package/src/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.tsx +872 -0
  703. package/src/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.ts +349 -0
  704. package/src/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.tsx +2 -2
  705. package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +102 -62
  706. package/src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx +1 -1
  707. package/src/lib/plugins/openapi/playground/useRememberSkipLoginDialog.tsx +3 -0
  708. package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +1 -1
  709. package/src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx +89 -55
  710. package/src/lib/plugins/openapi/schema/SchemaView.tsx +100 -60
  711. package/src/lib/plugins/openapi/schema/UnionView.tsx +6 -17
  712. package/src/lib/plugins/openapi/schema/union-helpers.ts +0 -1
  713. package/src/lib/plugins/openapi/schema/utils.ts +20 -6
  714. package/src/lib/plugins/openapi/util/createHttpSnippet.ts +29 -1
  715. package/src/lib/plugins/openapi/util/generateSchemaExample.ts +11 -11
  716. package/src/lib/plugins/openapi/util/getRoutes.tsx +35 -3
  717. package/src/lib/plugins/search-pagefind/IndexingDialog.tsx +163 -0
  718. package/src/lib/plugins/search-pagefind/PagefindSearch.tsx +61 -22
  719. package/src/lib/plugins/search-pagefind/ResultList.tsx +8 -3
  720. package/src/lib/shiki.ts +37 -14
  721. package/src/lib/ui/Badge.tsx +21 -12
  722. package/src/lib/ui/Button.tsx +11 -9
  723. package/src/lib/ui/ButtonGroup.tsx +82 -0
  724. package/src/lib/ui/Callout.tsx +10 -5
  725. package/src/lib/ui/Checkbox.tsx +23 -24
  726. package/src/lib/ui/CodeBlock.tsx +3 -4
  727. package/src/lib/ui/Collapsible.tsx +26 -4
  728. package/src/lib/ui/Command.tsx +3 -3
  729. package/src/lib/ui/Dialog.tsx +112 -106
  730. package/src/lib/ui/DropdownMenu.tsx +226 -170
  731. package/src/lib/ui/EmbeddedCodeBlock.tsx +24 -19
  732. package/src/lib/ui/Frame.tsx +81 -0
  733. package/src/lib/ui/Item.tsx +192 -0
  734. package/src/lib/ui/Kbd.tsx +28 -0
  735. package/src/lib/ui/NativeSelect.tsx +47 -0
  736. package/src/lib/ui/ReactComponentDoc.tsx +17 -17
  737. package/src/lib/ui/Select.tsx +153 -126
  738. package/src/lib/ui/Separator.tsx +25 -0
  739. package/src/lib/ui/SyntaxHighlight.tsx +6 -1
  740. package/src/lib/ui/Tooltip.tsx +54 -32
  741. package/src/lib/util/MdxComponents.tsx +5 -5
  742. package/src/lib/util/createVariantComponent.tsx +31 -5
  743. package/src/lib/util/flattenAllOf.test.ts +689 -0
  744. package/src/lib/util/flattenAllOf.ts +122 -0
  745. package/src/lib/util/invariant.ts +2 -1
  746. package/src/lib/util/readFrontmatter.ts +13 -0
  747. package/src/lib/util/syncZustandState.ts +22 -0
  748. package/src/shiki/langs/markdown-nix.js +1 -0
  749. package/src/shiki/langs/openscad.js +1 -0
  750. package/dist/lib/plugins/openapi/playground/InlineInput.d.ts +0 -4
  751. package/dist/lib/plugins/openapi/playground/InlineInput.js +0 -3
  752. package/dist/lib/plugins/openapi/playground/InlineInput.js.map +0 -1
  753. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupConnector.d.ts +0 -5
  754. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupConnector.js +0 -7
  755. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupConnector.js.map +0 -1
  756. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupItem.d.ts +0 -4
  757. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupItem.js +0 -10
  758. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupItem.js.map +0 -1
  759. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupView.d.ts +0 -5
  760. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupView.js +0 -16
  761. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupView.js.map +0 -1
  762. package/dist/vite/create-pagefind-index.d.ts +0 -4
  763. package/dist/vite/create-pagefind-index.js +0 -12
  764. package/dist/vite/create-pagefind-index.js.map +0 -1
  765. package/lib/Button-DmS4u8Lj.js +0 -51
  766. package/lib/Button-DmS4u8Lj.js.map +0 -1
  767. package/lib/CodeBlock-CanTUJLl.js +0 -221
  768. package/lib/CodeBlock-CanTUJLl.js.map +0 -1
  769. package/lib/Command-CJY6q3PF.js.map +0 -1
  770. package/lib/Dialog-BOl0QB3n.js +0 -114
  771. package/lib/Dialog-BOl0QB3n.js.map +0 -1
  772. package/lib/DropdownMenu-BZ2NKQ3K.js +0 -126
  773. package/lib/DropdownMenu-BZ2NKQ3K.js.map +0 -1
  774. package/lib/ErrorAlert-VBJ8aHH7.js.map +0 -1
  775. package/lib/MdxPage-DFRNwSsc.js +0 -239
  776. package/lib/MdxPage-DFRNwSsc.js.map +0 -1
  777. package/lib/OAuthErrorPage-DJUOdr6Q.js.map +0 -1
  778. package/lib/OasProvider-BMUgPYQU.js +0 -36
  779. package/lib/OasProvider-BMUgPYQU.js.map +0 -1
  780. package/lib/OperationList-DVig5I94.js +0 -5446
  781. package/lib/OperationList-DVig5I94.js.map +0 -1
  782. package/lib/Pagination-CT4VUR6u.js +0 -37
  783. package/lib/Pagination-CT4VUR6u.js.map +0 -1
  784. package/lib/RouteGuard-BPWQlxy5.js +0 -56
  785. package/lib/RouteGuard-BPWQlxy5.js.map +0 -1
  786. package/lib/RouterError-fm21cqlj.js +0 -41
  787. package/lib/RouterError-fm21cqlj.js.map +0 -1
  788. package/lib/SchemaList-1eLKXqn8.js.map +0 -1
  789. package/lib/SchemaView-fq3uKfOA.js +0 -458
  790. package/lib/SchemaView-fq3uKfOA.js.map +0 -1
  791. package/lib/Select-CPoGZU_V.js +0 -372
  792. package/lib/Select-CPoGZU_V.js.map +0 -1
  793. package/lib/SignUp-BraHuRN_.js +0 -56
  794. package/lib/SignUp-BraHuRN_.js.map +0 -1
  795. package/lib/SyntaxHighlight-B0laqAqK.js.map +0 -1
  796. package/lib/Toc-KzXCRqrX.js.map +0 -1
  797. package/lib/ZudokuContext-BXTZApgy.js +0 -1506
  798. package/lib/ZudokuContext-BXTZApgy.js.map +0 -1
  799. package/lib/chunk-PVWAREVJ-BO6B-RAk.js +0 -7965
  800. package/lib/chunk-PVWAREVJ-BO6B-RAk.js.map +0 -1
  801. package/lib/circular-D6wbrxuf.js.map +0 -1
  802. package/lib/cn-dYga0KKN.js.map +0 -1
  803. package/lib/createServer-C5aY10Bc.js +0 -12559
  804. package/lib/createServer-C5aY10Bc.js.map +0 -1
  805. package/lib/hook-CAebs2rv.js +0 -31
  806. package/lib/hook-CAebs2rv.js.map +0 -1
  807. package/lib/index-BPSpOxTK.js +0 -1058
  808. package/lib/index-BPSpOxTK.js.map +0 -1
  809. package/lib/index-Bb9AsFlk.js +0 -3318
  810. package/lib/index-Bb9AsFlk.js.map +0 -1
  811. package/lib/invariant-Bm-FVUQE.js.map +0 -1
  812. package/lib/mutation-CdGPxHNX.js.map +0 -1
  813. package/lib/useExposedProps-Cd7Yg_uG.js +0 -113
  814. package/lib/useExposedProps-Cd7Yg_uG.js.map +0 -1
  815. package/src/lib/plugins/openapi/playground/InlineInput.tsx +0 -6
  816. package/src/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupConnector.tsx +0 -36
  817. package/src/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupItem.tsx +0 -25
  818. package/src/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupView.tsx +0 -42
@@ -0,0 +1,68 @@
1
+ import { useQuery } from "@tanstack/react-query";
2
+ import type { MermaidConfig } from "mermaid";
3
+ import type { ComponentProps } from "react";
4
+ import { useId } from "react";
5
+ import { Alert, AlertDescription, AlertTitle } from "zudoku/ui/Alert.js";
6
+ import { useTheme } from "../hooks/index.js";
7
+ import { Spinner } from "./Spinner.js";
8
+
9
+ export type MermaidProps = {
10
+ chart: string;
11
+ config?: MermaidConfig;
12
+ } & ComponentProps<"div">;
13
+
14
+ let mermaidPromise: Promise<typeof import("mermaid").default> | null = null;
15
+
16
+ const loadMermaid = () => {
17
+ if (!mermaidPromise) {
18
+ mermaidPromise = import("mermaid")
19
+ .then((mod) => mod.default)
20
+ .catch((error) => {
21
+ throw new Error(
22
+ "Mermaid is not installed. Please install it with: npm install mermaid",
23
+ { cause: error },
24
+ );
25
+ });
26
+ }
27
+ return mermaidPromise;
28
+ };
29
+
30
+ export const Mermaid = ({ chart, config, ...props }: MermaidProps) => {
31
+ const id = useId();
32
+ const theme = useTheme();
33
+
34
+ const {
35
+ data: svg,
36
+ error,
37
+ isPending,
38
+ } = useQuery({
39
+ queryKey: ["mermaid", chart, config, theme.resolvedTheme],
40
+ queryFn: async () => {
41
+ const mermaid = await loadMermaid();
42
+ mermaid.initialize({
43
+ theme: theme.resolvedTheme === "dark" ? "dark" : "base",
44
+ ...config,
45
+ });
46
+
47
+ const { svg } = await mermaid.render(id, chart);
48
+ return svg;
49
+ },
50
+ enabled: typeof window !== "undefined",
51
+ retry: false,
52
+ });
53
+
54
+ if (error)
55
+ return (
56
+ <Alert className="flex flex-col gap-2" variant="destructive">
57
+ <AlertTitle>Mermaid Error</AlertTitle>
58
+ <AlertDescription className="overflow-auto wrap-break-word whitespace-pre-wrap font-mono text-xs">
59
+ {error.message}
60
+ </AlertDescription>
61
+ </Alert>
62
+ );
63
+
64
+ if (isPending) return <Spinner />;
65
+
66
+ // biome-ignore lint/security/noDangerouslySetInnerHtml: Mermaid generates valid SVG
67
+ return <div {...props} dangerouslySetInnerHTML={{ __html: svg }} />;
68
+ };
@@ -0,0 +1,14 @@
1
+ import type { PropsWithChildren } from "react";
2
+
3
+ /**
4
+ * Adds metadata to be captured by Pagefind for search results.
5
+ * Content is visually hidden but indexed by the search engine.
6
+ */
7
+ export const PagefindSearchMeta = ({
8
+ name,
9
+ children,
10
+ }: PropsWithChildren<{ name?: string }>) => (
11
+ <span data-pagefind-meta={name} className="sr-only">
12
+ {children}
13
+ </span>
14
+ );
@@ -13,19 +13,18 @@ export const Pagination = ({
13
13
  className?: string;
14
14
  }) => {
15
15
  const linkClass =
16
- "group transition-all p-5 space-x-1 rtl:space-x-reverse transition-all hover:text-foreground";
17
-
16
+ "group min-w-0 transition-all p-5 space-x-1 rtl:space-x-reverse hover:text-foreground";
18
17
  return (
19
18
  <div
20
19
  className={cn(
21
- "flex -mx-4 text-muted-foreground font-semibold",
20
+ "flex flex-wrap gap-2 -mx-4 text-muted-foreground font-semibold",
22
21
  prev ? "justify-between" : "justify-end",
23
22
  className,
24
23
  )}
25
24
  data-pagefind-ignore="all"
26
25
  >
27
26
  {prev && (
28
- <Button variant="ghost" asChild>
27
+ <Button variant="ghost" className="min-w-0 max-w-full" asChild>
29
28
  <Link to={prev.to} relative="path" className={linkClass}>
30
29
  <ArrowLeftIcon size={14} strokeWidth={2.5} />
31
30
  <span className="text-lg truncate">{prev.label}</span>
@@ -33,7 +32,7 @@ export const Pagination = ({
33
32
  </Button>
34
33
  )}
35
34
  {next && (
36
- <Button variant="ghost" asChild>
35
+ <Button variant="ghost" className="ms-auto min-w-0 max-w-full" asChild>
37
36
  <Link to={next.to} relative="path" className={linkClass}>
38
37
  <span className="text-lg truncate">{next.label}</span>
39
38
  <ArrowRightIcon size={14} strokeWidth={2.5} />
@@ -32,7 +32,7 @@ import { ZudokuProvider } from "./context/ZudokuProvider.js";
32
32
 
33
33
  let zudokuContext: ZudokuContext | undefined;
34
34
 
35
- const ZudokoInner = memo(
35
+ const ZudokuInner = memo(
36
36
  ({ children, ...props }: PropsWithChildren<ZudokuContextOptions>) => {
37
37
  const components = useMemo(
38
38
  () => ({ ...DEFAULT_COMPONENTS, ...props.overrides }),
@@ -74,16 +74,13 @@ const ZudokoInner = memo(
74
74
 
75
75
  zudokuContext ??= new ZudokuContext(props, queryClient);
76
76
 
77
- const heads = props.plugins
78
- ?.flatMap((plugin) =>
79
- hasHead(plugin) ? (plugin.getHead?.({ location }) ?? []) : [],
80
- )
81
- // biome-ignore lint/suspicious/noArrayIndexKey: No other key is available
82
- .map((entry, i) => <Helmet key={i}>{entry}</Helmet>);
77
+ const heads = props.plugins?.flatMap((plugin) =>
78
+ hasHead(plugin) ? (plugin.getHead?.({ location }) ?? []) : [],
79
+ );
83
80
 
84
81
  return (
85
82
  <>
86
- {heads}
83
+ <Helmet>{heads}</Helmet>
87
84
  <StaggeredRenderContext.Provider value={staggeredValue}>
88
85
  <ZudokuProvider context={zudokuContext}>
89
86
  <RouterEventsEmitter />
@@ -105,12 +102,12 @@ const ZudokoInner = memo(
105
102
  },
106
103
  );
107
104
 
108
- ZudokoInner.displayName = "ZudokoInner";
105
+ ZudokuInner.displayName = "ZudokuInner";
109
106
 
110
107
  const Zudoku = (props: ZudokuContextOptions) => {
111
108
  return (
112
109
  <ErrorBoundary FallbackComponent={TopLevelError}>
113
- <ZudokoInner {...props} />
110
+ <ZudokuInner {...props} />
114
111
  </ErrorBoundary>
115
112
  );
116
113
  };
@@ -5,12 +5,14 @@ import { Link as LinkImport } from "react-router";
5
5
  import { useAuth as useAuthImport } from "../authentication/hook.js";
6
6
  import { Button as ButtonImport } from "../ui/Button.js";
7
7
  import { Callout as CalloutImport } from "../ui/Callout.js";
8
+ import { ZudokuError as ZudokuErrorImport } from "../util/invariant.js";
8
9
  import { ClientOnly as ClientOnlyImport } from "./ClientOnly.js";
9
10
  import {
10
11
  CACHE_KEYS as CACHE_KEYS_IMPORT,
11
12
  useCache as useCacheImport,
12
13
  } from "./cache.js";
13
14
  import { useZudoku as useZudokuImport } from "./context/ZudokuContext.js";
15
+ import { Heading as HeadingImport } from "./Heading.js";
14
16
  import { Markdown as MarkdownImport } from "./Markdown.js";
15
17
  import { Slot as SlotImport } from "./Slot.js";
16
18
  import { Spinner as SpinnerImport } from "./Spinner.js";
@@ -18,6 +20,7 @@ import { Typography as TypographyImport } from "./Typography.js";
18
20
  import { Zudoku as ZudokuImport } from "./Zudoku.js";
19
21
 
20
22
  export const Head = /*@__PURE__*/ Helmet;
23
+ export const Heading = /*@__PURE__*/ HeadingImport;
21
24
  export const Callout = /*@__PURE__*/ CalloutImport;
22
25
  export const Markdown = /*@__PURE__*/ MarkdownImport;
23
26
  export const Spinner = /*@__PURE__*/ SpinnerImport;
@@ -27,6 +30,7 @@ export const Link = /*@__PURE__*/ LinkImport;
27
30
  export const Zudoku = /*@__PURE__*/ ZudokuImport;
28
31
  export const Typography = /*@__PURE__*/ TypographyImport;
29
32
  export const Slot = /*@__PURE__*/ SlotImport;
33
+ export const ZudokuError = /*@__PURE__*/ ZudokuErrorImport;
30
34
 
31
35
  /** @deprecated Import from `zudoku/hooks` instead */
32
36
  export const useMDXComponents = /*@__PURE__*/ useMDXComponentsImport;
@@ -1,13 +1,7 @@
1
1
  import { ExternalLinkIcon } from "lucide-react";
2
2
  import { useEffect, useRef, useState } from "react";
3
3
  import { NavLink, useLocation } from "react-router";
4
- import {
5
- Tooltip,
6
- TooltipArrow,
7
- TooltipContent,
8
- TooltipProvider,
9
- TooltipTrigger,
10
- } from "zudoku/ui/Tooltip.js";
4
+ import { Tooltip, TooltipContent, TooltipTrigger } from "zudoku/ui/Tooltip.js";
11
5
  import type { NavigationItem as NavigationItemType } from "../../../config/validators/NavigationSchema.js";
12
6
  import { useAuth } from "../../authentication/hook.js";
13
7
  import { cn } from "../../util/cn.js";
@@ -47,19 +41,12 @@ const TruncatedLabel = ({
47
41
  {label}
48
42
  </span>
49
43
  {isTruncated && (
50
- <TooltipProvider delayDuration={500}>
51
- <Tooltip disableHoverableContent>
52
- <TooltipTrigger className="absolute inset-0 z-10" />
53
- <TooltipContent
54
- className="max-w-64 rounded-lg"
55
- side="bottom"
56
- align="center"
57
- >
58
- <TooltipArrow />
59
- {label}
60
- </TooltipContent>
61
- </Tooltip>
62
- </TooltipProvider>
44
+ <Tooltip disableHoverableContent>
45
+ <TooltipTrigger className="absolute inset-0 z-10" />
46
+ <TooltipContent className="max-w-64" side="bottom" align="center">
47
+ {label}
48
+ </TooltipContent>
49
+ </Tooltip>
63
50
  )}
64
51
  </>
65
52
  );
@@ -99,7 +86,9 @@ export const NavigationItem = ({
99
86
  onClick={onRequestClose}
100
87
  end
101
88
  >
102
- {item.icon && <item.icon size={16} className="align-[-0.125em]" />}
89
+ {item.icon && (
90
+ <item.icon size={16} className="align-[-0.125em] shrink-0" />
91
+ )}
103
92
  {item.badge ? (
104
93
  <>
105
94
  {item.label && (
@@ -130,7 +119,9 @@ export const NavigationItem = ({
130
119
  })}
131
120
  onClick={onRequestClose}
132
121
  >
133
- {item.icon && <item.icon size={16} className="align-[-0.125em]" />}
122
+ {item.icon && (
123
+ <item.icon size={16} className="align-[-0.125em] shrink-0" />
124
+ )}
134
125
  {item.badge ? (
135
126
  <>
136
127
  {item.label && <TruncatedLabel label={item.label} />}
@@ -148,7 +139,9 @@ export const NavigationItem = ({
148
139
  rel="noopener noreferrer"
149
140
  onClick={onRequestClose}
150
141
  >
151
- {item.icon && <item.icon size={16} className="align-[-0.125em]" />}
142
+ {item.icon && (
143
+ <item.icon size={16} className="align-[-0.125em] shrink-0" />
144
+ )}
152
145
  <span className="whitespace-normal">{item.label}</span>
153
146
  {/* This prevents that the icon would be positioned in its own line if the text fills a line entirely */}
154
147
  <span className="whitespace-nowrap">
@@ -85,11 +85,11 @@ export const Toc = ({ entries }: { entries: TocEntry[] }) => {
85
85
  <ListTreeIcon size={16} />
86
86
  On this page
87
87
  </div>
88
- <div className="relative ms-2 ps-4">
89
- <div className="absolute inset-0 end-auto bg-border w-[2px]" />
88
+ <div className="relative ms-px ps-4">
89
+ <div className="absolute inset-0 end-auto bg-border w-[1.5px]" />
90
90
  <div
91
91
  className={cn(
92
- "absolute -start-px -translate-y-1 h-6 w-[4px] rounded-sm bg-primary",
92
+ "absolute start-0 -translate-y-1 h-6 w-[2.5px] bg-primary",
93
93
  paintedOnce.current &&
94
94
  "ease-out [transition:top_150ms,opacity_325ms]",
95
95
  )}
@@ -1,11 +1,12 @@
1
- import { useQuery } from "@tanstack/react-query";
2
1
  import { Helmet } from "@zudoku/react-helmet-async";
3
2
  import { use } from "react";
4
3
  import { matchPath, Outlet, useLocation, useNavigate } from "react-router";
4
+ import { Button } from "zudoku/ui/Button.js";
5
5
  import {
6
6
  Dialog,
7
7
  DialogContent,
8
8
  DialogDescription,
9
+ DialogFooter,
9
10
  DialogHeader,
10
11
  DialogTitle,
11
12
  } from "zudoku/ui/Dialog.js";
@@ -26,28 +27,47 @@ export const RouteGuard = () => {
26
27
  const shouldBypass = use(BypassProtectedRoutesContext);
27
28
  const { protectedRoutes } = zudoku.options;
28
29
 
29
- const authCheckFn =
30
- !shouldBypass && protectedRoutes
31
- ? Object.entries(protectedRoutes).find(([path]) =>
32
- matchPath({ path, end: true }, location.pathname),
33
- )?.[1]
34
- : undefined;
30
+ const protectedRouteEntry = protectedRoutes
31
+ ? Object.entries(protectedRoutes).find(([path]) =>
32
+ matchPath({ path, end: true }, location.pathname),
33
+ )
34
+ : undefined;
35
35
 
36
- const isProtectedRoute = authCheckFn !== undefined;
36
+ const isProtectedRoute = protectedRouteEntry !== undefined;
37
+
38
+ // SSR/prerendering mode: render content with search meta tag, skip all auth
39
+ if (shouldBypass) {
40
+ return (
41
+ <>
42
+ {isProtectedRoute && (
43
+ <Helmet>
44
+ <meta
45
+ name="pagefind"
46
+ data-pagefind-filter={`section:${SEARCH_PROTECTED_SECTION}`}
47
+ content="true"
48
+ />
49
+ </Helmet>
50
+ )}
51
+ <Outlet />
52
+ </>
53
+ );
54
+ }
55
+
56
+ if (isProtectedRoute && !auth.isAuthEnabled) {
57
+ throw new ZudokuError("Authentication is not enabled", {
58
+ title: "Authentication is not enabled",
59
+ developerHint:
60
+ "To use protectedRoutes you need authentication to be enabled",
61
+ });
62
+ }
63
+
64
+ const authCheckFn = protectedRouteEntry?.[1];
37
65
  const needsToSignIn =
38
- isProtectedRoute && !authCheckFn({ auth, context: zudoku });
66
+ isProtectedRoute && !authCheckFn?.({ auth, context: zudoku });
39
67
 
40
- useQuery({
41
- queryKey: ["login-redirect"],
42
- queryFn: async () => {
43
- await new Promise((resolve) => setTimeout(resolve, 1200));
44
- await zudoku.authentication?.signIn({
45
- redirectTo: latestPath.current,
46
- });
47
- return true;
48
- },
49
- enabled: typeof window !== "undefined" && needsToSignIn && !auth.isPending,
50
- });
68
+ if (needsToSignIn && auth.isPending && typeof window !== "undefined") {
69
+ return null;
70
+ }
51
71
 
52
72
  if (needsToSignIn) {
53
73
  return (
@@ -61,36 +81,42 @@ export const RouteGuard = () => {
61
81
  >
62
82
  <DialogContent>
63
83
  <DialogHeader>
64
- <DialogTitle>Logging you in...</DialogTitle>
84
+ <DialogTitle>Login to continue</DialogTitle>
65
85
  </DialogHeader>
66
86
  <DialogDescription>
67
87
  Please wait while we log you in.
68
88
  </DialogDescription>
89
+ <DialogFooter>
90
+ <Button variant="outline" onClick={() => void navigate(-1)}>
91
+ Cancel
92
+ </Button>
93
+ <div className="w-full"></div>
94
+ <Button
95
+ variant="secondary"
96
+ onClick={() =>
97
+ void zudoku.authentication?.signUp(
98
+ { navigate },
99
+ { redirectTo: latestPath.current },
100
+ )
101
+ }
102
+ >
103
+ Register
104
+ </Button>
105
+ <Button
106
+ onClick={() =>
107
+ void zudoku.authentication?.signIn(
108
+ { navigate },
109
+ { redirectTo: latestPath.current },
110
+ )
111
+ }
112
+ >
113
+ Login
114
+ </Button>
115
+ </DialogFooter>
69
116
  </DialogContent>
70
117
  </Dialog>
71
118
  );
72
119
  }
73
120
 
74
- if (isProtectedRoute && !auth.isAuthEnabled) {
75
- throw new ZudokuError("Authentication is not enabled", {
76
- title: "Authentication is not enabled",
77
- developerHint:
78
- "To use protectedRoutes you need authentication to be enabled",
79
- });
80
- }
81
-
82
- return (
83
- <>
84
- {shouldBypass && (
85
- <Helmet>
86
- <meta
87
- name="pagefind"
88
- data-pagefind-filter={`section:${SEARCH_PROTECTED_SECTION}`}
89
- content="true"
90
- />
91
- </Helmet>
92
- )}
93
- <Outlet />
94
- </>
95
- );
121
+ return <Outlet />;
96
122
  };
@@ -129,6 +129,7 @@ export class ZudokuContext {
129
129
  public meta: ZudokuContextOptions["metadata"];
130
130
  public site: ZudokuContextOptions["site"];
131
131
  public readonly authentication?: ZudokuContextOptions["authentication"];
132
+ public readonly getAuthState: () => AuthState;
132
133
  public readonly queryClient: QueryClient;
133
134
  public readonly options: ZudokuContextOptions;
134
135
  private readonly navigationPlugins: NavigationPlugin[];
@@ -156,6 +157,8 @@ export class ZudokuContext {
156
157
  this.navigation = options.navigation ?? [];
157
158
  this.navigationPlugins = this.plugins.filter(isNavigationPlugin);
158
159
  this.authentication = this.plugins.find(isAuthenticationPlugin);
160
+ this.getAuthState = useAuthState.getState;
161
+
159
162
  this.meta = options.metadata;
160
163
  this.site = options.site;
161
164
  this.plugins.forEach((plugin) => {
@@ -1,5 +1,5 @@
1
1
  import type { LucideIcon } from "lucide-react";
2
- import type { ReactElement } from "react";
2
+ import type { ReactNode } from "react";
3
3
  import type { Location, RouteObject } from "react-router";
4
4
  import type { Navigation } from "../../config/validators/NavigationSchema.js";
5
5
  import type { ProtectedRoutesInput } from "../../config/validators/ProtectedRoutesSchema.js";
@@ -64,7 +64,7 @@ export interface CommonPlugin {
64
64
  initialize?: (
65
65
  context: ZudokuContext,
66
66
  ) => Promise<void | boolean> | void | boolean;
67
- getHead?: ({ location }: { location: Location }) => ReactElement | undefined;
67
+ getHead?: (args: { location: Location }) => ReactNode | undefined;
68
68
  getMdxComponents?: () => MdxComponentsType;
69
69
  }
70
70
 
@@ -0,0 +1 @@
1
+ export * from "@tanstack/react-query";
@@ -17,7 +17,7 @@ export function ErrorAlert({ error }: { error: unknown }) {
17
17
  const stringError = cause instanceof Error ? String(cause.stack) : stack;
18
18
 
19
19
  return (
20
- <Typography className="grid grid-cols-1 !max-w-none pt-(--padding-content-top)">
20
+ <Typography className="grid grid-cols-1 max-w-none! pt-(--padding-content-top)">
21
21
  <Heading level={1}>{title}</Heading>
22
22
  Error: {message}
23
23
  {hint && <DeveloperHint className="mb-4">{hint}</DeveloperHint>}
@@ -0,0 +1,38 @@
1
+ import { Alert, AlertDescription, AlertTitle } from "zudoku/ui/Alert.js";
2
+ import { SyntaxHighlight } from "zudoku/ui/SyntaxHighlight.js";
3
+ import { DeveloperHint } from "../components/DeveloperHint.js";
4
+ import { ZudokuError } from "../util/invariant.js";
5
+
6
+ export function ErrorMessage({ error }: { error: unknown }) {
7
+ const message =
8
+ error instanceof Error ? error.message : "Something went wrong";
9
+
10
+ const showDeveloperHints = process.env.NODE_ENV === "development";
11
+
12
+ const hint = error instanceof ZudokuError ? error.developerHint : undefined;
13
+ const title =
14
+ error instanceof ZudokuError ? error.title : "Something went wrong";
15
+ const stack = error instanceof Error ? error.stack : undefined;
16
+ const cause = error instanceof Error ? error.cause : undefined;
17
+
18
+ const stringError = cause instanceof Error ? String(cause.stack) : stack;
19
+
20
+ return (
21
+ <>
22
+ <Alert variant="destructive">
23
+ <AlertTitle>{title}</AlertTitle>
24
+ <AlertDescription>{message}</AlertDescription>
25
+ </Alert>
26
+ {showDeveloperHints && hint && (
27
+ <DeveloperHint className="mb-4">{hint}</DeveloperHint>
28
+ )}
29
+ {showDeveloperHints && stringError && (
30
+ <SyntaxHighlight
31
+ className="max-h-[400px] [&>pre]:p-4"
32
+ language="js"
33
+ code={stringError}
34
+ />
35
+ )}
36
+ </>
37
+ );
38
+ }
@@ -1,13 +1,18 @@
1
1
  import { isRouteErrorResponse, useRouteError } from "react-router";
2
2
  import { NotFoundPage } from "../components/NotFoundPage.js";
3
+ import { cn } from "../util/cn.js";
3
4
  import { ErrorAlert } from "./ErrorAlert.js";
4
5
 
5
- export function RouterError() {
6
+ export function RouterError({ className }: { className?: string }) {
6
7
  const error = useRouteError();
7
8
 
8
9
  if (isRouteErrorResponse(error) && error.status === 404) {
9
10
  return <NotFoundPage />;
10
11
  }
11
12
 
12
- return <ErrorAlert error={error} />;
13
+ return (
14
+ <div className={cn("mx-4 max-w-2xl", className)}>
15
+ <ErrorAlert error={error} />
16
+ </div>
17
+ );
13
18
  }