zudoku 0.51.0 → 0.52.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (322) hide show
  1. package/dist/config/validators/InputNavigationSchema.d.ts +152 -0
  2. package/dist/config/validators/NavigationSchema.js +1 -1
  3. package/dist/config/validators/NavigationSchema.js.map +1 -1
  4. package/dist/config/validators/icon-types.d.ts +1 -1
  5. package/dist/config/validators/icon-types.js +38 -0
  6. package/dist/config/validators/icon-types.js.map +1 -1
  7. package/dist/config/validators/validate.d.ts +10 -0
  8. package/dist/config/validators/validate.js +7 -0
  9. package/dist/config/validators/validate.js.map +1 -1
  10. package/dist/lib/components/Autocomplete.js +1 -1
  11. package/dist/lib/components/Autocomplete.js.map +1 -1
  12. package/dist/lib/components/ErrorPage.js +2 -2
  13. package/dist/lib/components/ErrorPage.js.map +1 -1
  14. package/dist/lib/components/Markdown.d.ts +0 -1
  15. package/dist/lib/components/Markdown.js +2 -3
  16. package/dist/lib/components/Markdown.js.map +1 -1
  17. package/dist/lib/components/NotFoundPage.js +2 -2
  18. package/dist/lib/components/NotFoundPage.js.map +1 -1
  19. package/dist/lib/components/Pagination.js +1 -1
  20. package/dist/lib/components/Pagination.js.map +1 -1
  21. package/dist/lib/components/Typography.d.ts +5 -0
  22. package/dist/lib/components/Typography.js +8 -0
  23. package/dist/lib/components/Typography.js.map +1 -0
  24. package/dist/lib/components/index.d.ts +4 -0
  25. package/dist/lib/components/index.js +2 -0
  26. package/dist/lib/components/index.js.map +1 -1
  27. package/dist/lib/errors/ErrorAlert.js +2 -3
  28. package/dist/lib/errors/ErrorAlert.js.map +1 -1
  29. package/dist/lib/hooks/useHotkey.d.ts +4 -0
  30. package/dist/lib/hooks/useHotkey.js +58 -0
  31. package/dist/lib/hooks/useHotkey.js.map +1 -0
  32. package/dist/lib/plugins/api-keys/SettingsApiKeys.js +4 -8
  33. package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
  34. package/dist/lib/plugins/custom-pages/index.d.ts +1 -4
  35. package/dist/lib/plugins/custom-pages/index.js +1 -3
  36. package/dist/lib/plugins/custom-pages/index.js.map +1 -1
  37. package/dist/lib/plugins/markdown/MdxPage.d.ts +1 -2
  38. package/dist/lib/plugins/markdown/MdxPage.js +22 -6
  39. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  40. package/dist/lib/plugins/markdown/index.d.ts +8 -1
  41. package/dist/lib/plugins/markdown/index.js +1 -1
  42. package/dist/lib/plugins/markdown/index.js.map +1 -1
  43. package/dist/lib/plugins/openapi/OperationList.js +2 -3
  44. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  45. package/dist/lib/plugins/openapi/OperationListItem.js +2 -2
  46. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  47. package/dist/lib/plugins/openapi/ParameterListItem.js +1 -1
  48. package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
  49. package/dist/lib/plugins/openapi/SchemaList.js +2 -3
  50. package/dist/lib/plugins/openapi/SchemaList.js.map +1 -1
  51. package/dist/lib/plugins/openapi/SidecarExamples.js +1 -1
  52. package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -1
  53. package/dist/lib/plugins/openapi/playground/BodyPanel.js +14 -11
  54. package/dist/lib/plugins/openapi/playground/BodyPanel.js.map +1 -1
  55. package/dist/lib/plugins/openapi/playground/CollapsibleHeader.d.ts +8 -0
  56. package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js +11 -0
  57. package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js.map +1 -0
  58. package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js +2 -2
  59. package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js.map +1 -1
  60. package/dist/lib/plugins/openapi/playground/Headers.d.ts +3 -2
  61. package/dist/lib/plugins/openapi/playground/Headers.js +52 -30
  62. package/dist/lib/plugins/openapi/playground/Headers.js.map +1 -1
  63. package/dist/lib/plugins/openapi/playground/IdentityDialog.js +2 -1
  64. package/dist/lib/plugins/openapi/playground/IdentityDialog.js.map +1 -1
  65. package/dist/lib/plugins/openapi/playground/IdentitySelector.js +1 -2
  66. package/dist/lib/plugins/openapi/playground/IdentitySelector.js.map +1 -1
  67. package/dist/lib/plugins/openapi/playground/InlineInput.js +1 -1
  68. package/dist/lib/plugins/openapi/playground/InlineInput.js.map +1 -1
  69. package/dist/lib/plugins/openapi/playground/ParamsGrid.js +2 -2
  70. package/dist/lib/plugins/openapi/playground/ParamsGrid.js.map +1 -1
  71. package/dist/lib/plugins/openapi/playground/PathParams.js +1 -2
  72. package/dist/lib/plugins/openapi/playground/PathParams.js.map +1 -1
  73. package/dist/lib/plugins/openapi/playground/Playground.js +52 -34
  74. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  75. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +1 -1
  76. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js.map +1 -1
  77. package/dist/lib/plugins/openapi/playground/QueryParams.d.ts +2 -2
  78. package/dist/lib/plugins/openapi/playground/QueryParams.js +38 -23
  79. package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
  80. package/dist/lib/plugins/openapi/playground/Spinner.d.ts +2 -0
  81. package/dist/lib/plugins/openapi/playground/Spinner.js +63 -0
  82. package/dist/lib/plugins/openapi/playground/Spinner.js.map +1 -0
  83. package/dist/lib/plugins/openapi/playground/request-panel/UrlPath.d.ts +3 -0
  84. package/dist/lib/plugins/openapi/playground/request-panel/UrlPath.js +13 -0
  85. package/dist/lib/plugins/openapi/playground/request-panel/UrlPath.js.map +1 -0
  86. package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.d.ts +1 -0
  87. package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.js +12 -0
  88. package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.js.map +1 -0
  89. package/dist/lib/plugins/openapi/playground/result-panel/Highlight.d.ts +12 -0
  90. package/dist/lib/plugins/openapi/playground/result-panel/Highlight.js +11 -0
  91. package/dist/lib/plugins/openapi/playground/result-panel/Highlight.js.map +1 -0
  92. package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.d.ts +6 -0
  93. package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.js +66 -0
  94. package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.js.map +1 -0
  95. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.d.ts +7 -4
  96. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +23 -32
  97. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js.map +1 -1
  98. package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.d.ts +2 -2
  99. package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js +8 -10
  100. package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js.map +1 -1
  101. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js +3 -3
  102. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js.map +1 -1
  103. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js +2 -3
  104. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js.map +1 -1
  105. package/dist/lib/plugins/openapi/schema/SchemaView.js +4 -4
  106. package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
  107. package/dist/lib/plugins/openapi/schema/utils.js +3 -2
  108. package/dist/lib/plugins/openapi/schema/utils.js.map +1 -1
  109. package/dist/lib/ui/CodeBlock.js +5 -6
  110. package/dist/lib/ui/CodeBlock.js.map +1 -1
  111. package/dist/lib/ui/Dialog.js +1 -1
  112. package/dist/lib/ui/Dialog.js.map +1 -1
  113. package/dist/lib/ui/EmbeddedCodeBlock.js +1 -1
  114. package/dist/lib/ui/EmbeddedCodeBlock.js.map +1 -1
  115. package/dist/lib/ui/Select.js +1 -1
  116. package/dist/lib/util/os.d.ts +2 -0
  117. package/dist/lib/util/os.js +21 -0
  118. package/dist/lib/util/os.js.map +1 -0
  119. package/dist/lib/util/useCopyToClipboard.d.ts +1 -0
  120. package/dist/lib/util/useCopyToClipboard.js +11 -0
  121. package/dist/lib/util/useCopyToClipboard.js.map +1 -0
  122. package/dist/vite/api/SchemaManager.js +6 -2
  123. package/dist/vite/api/SchemaManager.js.map +1 -1
  124. package/dist/vite/api/schema-codegen.js +42 -11
  125. package/dist/vite/api/schema-codegen.js.map +1 -1
  126. package/dist/vite/api/schema-codegen.test.js +82 -0
  127. package/dist/vite/api/schema-codegen.test.js.map +1 -1
  128. package/dist/vite/mdx/remark-last-modified.d.ts +3 -0
  129. package/dist/vite/mdx/remark-last-modified.js +56 -0
  130. package/dist/vite/mdx/remark-last-modified.js.map +1 -0
  131. package/dist/vite/mdx/utils.d.ts +2 -0
  132. package/dist/vite/mdx/utils.js +31 -0
  133. package/dist/vite/mdx/utils.js.map +1 -0
  134. package/dist/vite/plugin-frontmatter.js +4 -2
  135. package/dist/vite/plugin-frontmatter.js.map +1 -1
  136. package/dist/vite/plugin-mdx.js +11 -33
  137. package/dist/vite/plugin-mdx.js.map +1 -1
  138. package/dist/vite/plugin-theme.js +21 -9
  139. package/dist/vite/plugin-theme.js.map +1 -1
  140. package/dist/vite/plugin-theme.test.js +22 -1
  141. package/dist/vite/plugin-theme.test.js.map +1 -1
  142. package/lib/Alert-CT_ViLrJ.js +161 -0
  143. package/lib/Alert-CT_ViLrJ.js.map +1 -0
  144. package/lib/CodeBlock-DAKxs_Tu.js +85 -0
  145. package/lib/CodeBlock-DAKxs_Tu.js.map +1 -0
  146. package/lib/Command-CPtGTZAL.js +140 -0
  147. package/lib/Command-CPtGTZAL.js.map +1 -0
  148. package/lib/{Dialog-BxpuVLh9.js → Dialog-DGlrUTCS.js} +4 -4
  149. package/lib/Dialog-DGlrUTCS.js.map +1 -0
  150. package/lib/MdxPage-D-QSUlMf.js +110 -0
  151. package/lib/MdxPage-D-QSUlMf.js.map +1 -0
  152. package/lib/{OasProvider-BC0q5m3u.js → OasProvider-DKB2uJU-.js} +3 -3
  153. package/lib/{OasProvider-BC0q5m3u.js.map → OasProvider-DKB2uJU-.js.map} +1 -1
  154. package/lib/{OperationList-Dpip6ozi.js → OperationList-CccIt45w.js} +579 -567
  155. package/lib/OperationList-CccIt45w.js.map +1 -0
  156. package/lib/Pagination-ClHXydm9.js +36 -0
  157. package/lib/Pagination-ClHXydm9.js.map +1 -0
  158. package/lib/RouteGuard-Bd-ppFbi.js +737 -0
  159. package/lib/RouteGuard-Bd-ppFbi.js.map +1 -0
  160. package/lib/{SchemaList-t4BIfh6Z.js → SchemaList-DY3FBF2U.js} +26 -37
  161. package/lib/SchemaList-DY3FBF2U.js.map +1 -0
  162. package/lib/{SchemaView-CLxthVcA.js → SchemaView-matL2maR.js} +94 -103
  163. package/lib/SchemaView-matL2maR.js.map +1 -0
  164. package/lib/{SignUp-B6w5AwHM.js → SignUp-CfojO4Pb.js} +13 -13
  165. package/lib/{SignUp-B6w5AwHM.js.map → SignUp-CfojO4Pb.js.map} +1 -1
  166. package/lib/{Markdown-BQ8YqLsz.js → Slot-DwZlQ-vX.js} +3347 -3001
  167. package/lib/Slot-DwZlQ-vX.js.map +1 -0
  168. package/lib/{SyntaxHighlight-C5ja40ix.js → SyntaxHighlight-CrjhGEwT.js} +3 -3
  169. package/lib/{SyntaxHighlight-C5ja40ix.js.map → SyntaxHighlight-CrjhGEwT.js.map} +1 -1
  170. package/lib/{Toc-BS0f4GTe.js → Toc-WCmwFkX-.js} +2 -2
  171. package/lib/{Toc-BS0f4GTe.js.map → Toc-WCmwFkX-.js.map} +1 -1
  172. package/lib/{chunk-DQRVZFIR-BblmKnHy.js → chunk-DQRVZFIR-DHK7_Ilc.js} +7 -7
  173. package/lib/{chunk-DQRVZFIR-BblmKnHy.js.map → chunk-DQRVZFIR-DHK7_Ilc.js.map} +1 -1
  174. package/lib/{circular-DfOaDE_x.js → circular-CqHpo7-e.js} +2 -2
  175. package/lib/{circular-DfOaDE_x.js.map → circular-CqHpo7-e.js.map} +1 -1
  176. package/lib/clerk-BDZ31hjU.js +25190 -0
  177. package/lib/clerk-BDZ31hjU.js.map +1 -0
  178. package/lib/{createServer-DjOMygls.js → createServer-ByKo3XCG.js} +4 -4
  179. package/lib/{createServer-DjOMygls.js.map → createServer-ByKo3XCG.js.map} +1 -1
  180. package/lib/{errors-D_5vKvUq.js → errors-BsabiSKg.js} +5 -5
  181. package/lib/{errors-D_5vKvUq.js.map → errors-BsabiSKg.js.map} +1 -1
  182. package/lib/{hook-CHXroBFt.js → hook-Bd0yS8M0.js} +36 -36
  183. package/lib/{hook-CHXroBFt.js.map → hook-Bd0yS8M0.js.map} +1 -1
  184. package/lib/index-BIbCx5Fh.js +3919 -0
  185. package/lib/index-BIbCx5Fh.js.map +1 -0
  186. package/lib/index-CEfpz8vY.js +3458 -0
  187. package/lib/index-CEfpz8vY.js.map +1 -0
  188. package/lib/{index-BvvmIczU.js → index-CcV90rin.js} +2 -2
  189. package/lib/{index-BvvmIczU.js.map → index-CcV90rin.js.map} +1 -1
  190. package/lib/index-ClhS5TxS.js +107 -0
  191. package/lib/index-ClhS5TxS.js.map +1 -0
  192. package/lib/ui/CodeBlock.js +6 -73
  193. package/lib/ui/CodeBlock.js.map +1 -1
  194. package/lib/ui/Command.js +1 -1
  195. package/lib/ui/Dialog.js +1 -1
  196. package/lib/ui/Dialog.js.map +1 -1
  197. package/lib/ui/EmbeddedCodeBlock.js +1 -1
  198. package/lib/ui/EmbeddedCodeBlock.js.map +1 -1
  199. package/lib/ui/Select.js +1 -1
  200. package/lib/ui/Select.js.map +1 -1
  201. package/lib/ui/SyntaxHighlight.js +3 -3
  202. package/lib/{useExposedProps-BZQkZneR.js → useExposedProps-BIYjecPD.js} +2 -2
  203. package/lib/{useExposedProps-BZQkZneR.js.map → useExposedProps-BIYjecPD.js.map} +1 -1
  204. package/lib/zudoku.auth-auth0.js +1 -1
  205. package/lib/zudoku.auth-azureb2c.js +2 -2
  206. package/lib/zudoku.auth-clerk.js +3 -3
  207. package/lib/zudoku.auth-openid.js +2 -2
  208. package/lib/zudoku.components.js +33 -3534
  209. package/lib/zudoku.components.js.map +1 -1
  210. package/lib/zudoku.hooks.js +10 -11
  211. package/lib/zudoku.hooks.js.map +1 -1
  212. package/lib/zudoku.plugin-api-catalog.js +6 -6
  213. package/lib/zudoku.plugin-api-keys.js +268 -321
  214. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  215. package/lib/zudoku.plugin-custom-pages.js +8 -20
  216. package/lib/zudoku.plugin-custom-pages.js.map +1 -1
  217. package/lib/zudoku.plugin-markdown.js +4 -5
  218. package/lib/zudoku.plugin-markdown.js.map +1 -1
  219. package/lib/zudoku.plugin-openapi.js +3 -3
  220. package/lib/zudoku.plugin-redirect.js +1 -1
  221. package/lib/zudoku.plugin-search-pagefind.js +201 -111
  222. package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
  223. package/package.json +5 -4
  224. package/src/lib/components/Autocomplete.tsx +1 -0
  225. package/src/lib/components/ErrorPage.tsx +3 -3
  226. package/src/lib/components/Markdown.tsx +3 -5
  227. package/src/lib/components/NotFoundPage.tsx +3 -3
  228. package/src/lib/components/Pagination.tsx +4 -4
  229. package/src/lib/components/Typography.tsx +14 -0
  230. package/src/lib/components/index.ts +2 -0
  231. package/src/lib/errors/ErrorAlert.tsx +3 -9
  232. package/src/lib/hooks/useHotkey.ts +70 -0
  233. package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +5 -9
  234. package/src/lib/plugins/custom-pages/index.tsx +2 -6
  235. package/src/lib/plugins/markdown/MdxPage.tsx +66 -15
  236. package/src/lib/plugins/markdown/index.tsx +10 -2
  237. package/src/lib/plugins/openapi/OperationList.tsx +7 -17
  238. package/src/lib/plugins/openapi/OperationListItem.tsx +2 -2
  239. package/src/lib/plugins/openapi/ParameterListItem.tsx +6 -0
  240. package/src/lib/plugins/openapi/SchemaList.tsx +3 -9
  241. package/src/lib/plugins/openapi/SidecarExamples.tsx +1 -0
  242. package/src/lib/plugins/openapi/playground/BodyPanel.tsx +36 -28
  243. package/src/lib/plugins/openapi/playground/CollapsibleHeader.tsx +47 -0
  244. package/src/lib/plugins/openapi/playground/ExamplesDropdown.tsx +7 -3
  245. package/src/lib/plugins/openapi/playground/Headers.tsx +187 -89
  246. package/src/lib/plugins/openapi/playground/IdentityDialog.tsx +3 -2
  247. package/src/lib/plugins/openapi/playground/IdentitySelector.tsx +7 -12
  248. package/src/lib/plugins/openapi/playground/InlineInput.tsx +1 -1
  249. package/src/lib/plugins/openapi/playground/ParamsGrid.tsx +2 -2
  250. package/src/lib/plugins/openapi/playground/PathParams.tsx +3 -4
  251. package/src/lib/plugins/openapi/playground/Playground.tsx +196 -136
  252. package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +1 -1
  253. package/src/lib/plugins/openapi/playground/QueryParams.tsx +102 -58
  254. package/src/lib/plugins/openapi/playground/Spinner.tsx +87 -0
  255. package/src/lib/plugins/openapi/playground/request-panel/UrlPath.tsx +31 -0
  256. package/src/lib/plugins/openapi/playground/request-panel/UrlQueryParams.tsx +25 -0
  257. package/src/lib/plugins/openapi/playground/result-panel/Highlight.tsx +26 -0
  258. package/src/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.tsx +104 -0
  259. package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +98 -97
  260. package/src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx +62 -92
  261. package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +3 -3
  262. package/src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx +2 -3
  263. package/src/lib/plugins/openapi/schema/SchemaView.tsx +5 -10
  264. package/src/lib/plugins/openapi/schema/utils.ts +3 -2
  265. package/src/lib/ui/CodeBlock.tsx +5 -6
  266. package/src/lib/ui/Dialog.tsx +1 -1
  267. package/src/lib/ui/EmbeddedCodeBlock.tsx +1 -1
  268. package/src/lib/ui/Select.tsx +1 -1
  269. package/src/lib/util/os.ts +18 -0
  270. package/src/lib/util/useCopyToClipboard.ts +17 -0
  271. package/dist/flat-config.d.ts +0 -320
  272. package/dist/lib/plugins/custom-pages/CustomPage.d.ts +0 -2
  273. package/dist/lib/plugins/custom-pages/CustomPage.js +0 -11
  274. package/dist/lib/plugins/custom-pages/CustomPage.js.map +0 -1
  275. package/dist/lib/plugins/openapi/playground/UrlDisplay.d.ts +0 -4
  276. package/dist/lib/plugins/openapi/playground/UrlDisplay.js +0 -22
  277. package/dist/lib/plugins/openapi/playground/UrlDisplay.js.map +0 -1
  278. package/dist/lib/plugins/openapi/playground/result-panel/RequestTab.d.ts +0 -7
  279. package/dist/lib/plugins/openapi/playground/result-panel/RequestTab.js +0 -11
  280. package/dist/lib/plugins/openapi/playground/result-panel/RequestTab.js.map +0 -1
  281. package/lib/Callout-CoVxYafP.js +0 -231
  282. package/lib/Callout-CoVxYafP.js.map +0 -1
  283. package/lib/CategoryHeading-Cu2RwgjC.js +0 -10
  284. package/lib/CategoryHeading-Cu2RwgjC.js.map +0 -1
  285. package/lib/Dialog-BxpuVLh9.js.map +0 -1
  286. package/lib/Markdown-BQ8YqLsz.js.map +0 -1
  287. package/lib/MdxPage-DJvKmI-r.js +0 -84
  288. package/lib/MdxPage-DJvKmI-r.js.map +0 -1
  289. package/lib/OperationList-Dpip6ozi.js.map +0 -1
  290. package/lib/Pagination-CCxhL836.js +0 -36
  291. package/lib/Pagination-CCxhL836.js.map +0 -1
  292. package/lib/RouteGuard-gV7nvzi7.js +0 -55
  293. package/lib/RouteGuard-gV7nvzi7.js.map +0 -1
  294. package/lib/SchemaList-t4BIfh6Z.js.map +0 -1
  295. package/lib/SchemaView-CLxthVcA.js.map +0 -1
  296. package/lib/Slot-CSEIvwwO.js +0 -161
  297. package/lib/Slot-CSEIvwwO.js.map +0 -1
  298. package/lib/clerk-yAKDC3Qz.js +0 -24812
  299. package/lib/clerk-yAKDC3Qz.js.map +0 -1
  300. package/lib/index--oeBayMa.js +0 -86
  301. package/lib/index--oeBayMa.js.map +0 -1
  302. package/lib/index-Bn6Lc9tq.js +0 -9
  303. package/lib/index-Bn6Lc9tq.js.map +0 -1
  304. package/lib/index-DW2qmCJa.js +0 -3227
  305. package/lib/index-DW2qmCJa.js.map +0 -1
  306. package/lib/index-QzXzw_ra.js +0 -24
  307. package/lib/index-QzXzw_ra.js.map +0 -1
  308. package/lib/index.esm-BFcSKCe-.js +0 -683
  309. package/lib/index.esm-BFcSKCe-.js.map +0 -1
  310. package/lib/mutation-BpcyTgWI.js +0 -196
  311. package/lib/mutation-BpcyTgWI.js.map +0 -1
  312. package/lib/objectEntries-yMIkr2mI.js +0 -5
  313. package/lib/objectEntries-yMIkr2mI.js.map +0 -1
  314. package/lib/react-nprogress.esm-C2MPXjiJ.js +0 -389
  315. package/lib/react-nprogress.esm-C2MPXjiJ.js.map +0 -1
  316. package/lib/useLatest-hmRS46UF.js +0 -11
  317. package/lib/useLatest-hmRS46UF.js.map +0 -1
  318. package/lib/useMutation-N4ockVKi.js +0 -97
  319. package/lib/useMutation-N4ockVKi.js.map +0 -1
  320. package/src/lib/plugins/custom-pages/CustomPage.tsx +0 -18
  321. package/src/lib/plugins/openapi/playground/UrlDisplay.tsx +0 -32
  322. package/src/lib/plugins/openapi/playground/result-panel/RequestTab.tsx +0 -73
@@ -1,122 +1,92 @@
1
1
  import { type UseMutationResult } from "@tanstack/react-query";
2
- import { Spinner } from "../../../../components/Spinner.js";
2
+ import { SendIcon, UnplugIcon } from "lucide-react";
3
+ import { Spinner } from "zudoku/components";
4
+ import { Alert, AlertDescription, AlertTitle } from "zudoku/ui/Alert.js";
3
5
  import { Button } from "../../../../ui/Button.js";
4
- import { Callout } from "../../../../ui/Callout.js";
5
- import {
6
- Card,
7
- CardContent,
8
- CardHeader,
9
- CardTitle,
10
- } from "../../../../ui/Card.js";
11
- import {
12
- Tabs,
13
- TabsContent,
14
- TabsList,
15
- TabsTrigger,
16
- } from "../../../../ui/Tabs.js";
17
6
  import { cn } from "../../../../util/cn.js";
18
7
  import { type PlaygroundResult } from "../Playground.js";
19
- import { RequestTab } from "./RequestTab.js";
8
+ import ResponseStatusBar from "./ResponseStatusBar.js";
20
9
  import { ResponseTab } from "./ResponseTab.js";
21
10
 
22
11
  export const ResultPanel = ({
23
12
  queryMutation,
24
- showPathParamsWarning,
25
13
  showLongRunningWarning,
26
14
  onCancel,
15
+ tip,
27
16
  }: {
17
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
18
  queryMutation: UseMutationResult<PlaygroundResult, Error, any>;
29
- showPathParamsWarning: boolean;
30
19
  showLongRunningWarning?: boolean;
31
20
  onCancel?: () => void;
21
+ tip?: React.ReactNode;
32
22
  }) => {
33
- const status = ((queryMutation.data?.status ?? 0) / 100).toFixed(0);
34
23
  return (
35
- <div className="min-w-0 p-4 py-4 bg-muted/50">
24
+ <div className="overflow-y-auto h-[80vh] bg-muted/50">
25
+ {(queryMutation.isPending || queryMutation.data) && (
26
+ <ResponseStatusBar
27
+ status={queryMutation.data?.status}
28
+ time={queryMutation.data?.time}
29
+ size={queryMutation.data?.size}
30
+ />
31
+ )}
36
32
  {queryMutation.error ? (
37
- <div className="flex flex-col gap-2">
38
- {showPathParamsWarning && (
39
- <Callout type="caution">
40
- Some path parameters are missing values. Please fill them in to
41
- ensure the request is sent correctly.
42
- </Callout>
43
- )}
44
- <Card>
45
- <CardHeader>
46
- <CardTitle>Request failed</CardTitle>
47
- </CardHeader>
48
- <CardContent>
49
- Error:{" "}
33
+ <div className="max-w-2/3 mx-auto mt-20">
34
+ <Alert>
35
+ <UnplugIcon size={24} strokeWidth={1.5} className="me-5" />
36
+ <AlertTitle>Request failed</AlertTitle>
37
+ <AlertDescription>
50
38
  {queryMutation.error.message ||
51
39
  String(queryMutation.error) ||
52
40
  "Unexpected error"}
53
- </CardContent>
54
- </Card>
41
+ </AlertDescription>
42
+ </Alert>
55
43
  </div>
56
44
  ) : queryMutation.data ? (
57
- <Tabs defaultValue="response">
58
- <TabsList>
59
- <TabsTrigger value="request">Request</TabsTrigger>
60
- <TabsTrigger value="response">
61
- Response
62
- <span
63
- className={cn(
64
- "text-xs font-mono ms-1",
65
- status === "2" && "text-green-500",
66
- status === "3" && "text-blue-500",
67
- status === "4" && "text-yellow-500",
68
- status === "5" && "text-red-500",
69
- )}
70
- >
71
- ({queryMutation.data.status})
72
- </span>
73
- </TabsTrigger>
74
- </TabsList>
75
- <TabsContent value="request">
76
- <RequestTab {...queryMutation.data.request} />
77
- </TabsContent>
78
- <TabsContent value="response">
79
- <ResponseTab
80
- status={queryMutation.data.status}
81
- time={queryMutation.data.time}
82
- size={queryMutation.data.size}
83
- headers={queryMutation.data.headers}
84
- body={queryMutation.data.body}
85
- url={queryMutation.data.request.url}
86
- isBinary={queryMutation.data.isBinary}
87
- fileName={queryMutation.data.fileName}
88
- blob={queryMutation.data.blob}
89
- />
90
- </TabsContent>
91
- </Tabs>
92
- ) : (
45
+ <ResponseTab
46
+ request={queryMutation.data.request}
47
+ size={queryMutation.data.size}
48
+ headers={queryMutation.data.headers}
49
+ body={queryMutation.data.body}
50
+ isBinary={queryMutation.data.isBinary}
51
+ fileName={queryMutation.data.fileName}
52
+ blob={queryMutation.data.blob}
53
+ />
54
+ ) : queryMutation.isPending ? (
93
55
  <div className="grid place-items-center h-full">
94
- {queryMutation.isPending ? (
95
- <div className="flex flex-col gap-2 items-center mt-20">
96
- <Spinner size={20} />
97
- <div
98
- className={cn(
99
- "opacity-0 pointer-events-none transition-opacity h-20 text-sm text-muted-foreground duration-300 flex flex-col gap-2 items-center",
100
- showLongRunningWarning && "opacity-100 pointer-events-auto",
101
- )}
56
+ <div className="flex flex-col gap-2 items-center mt-20">
57
+ <Spinner />
58
+ <div
59
+ className={cn(
60
+ "opacity-0 pointer-events-none transition-opacity h-20 text-sm text-muted-foreground duration-300 flex flex-col gap-2 items-center",
61
+ showLongRunningWarning && "opacity-100 pointer-events-auto",
62
+ )}
63
+ >
64
+ Looks like the request is taking longer than expected.
65
+ <Button
66
+ type="button"
67
+ onClick={onCancel}
68
+ size="sm"
69
+ className="w-fit"
70
+ variant="outline"
102
71
  >
103
- Looks like the request is taking longer than expected.
104
- <Button
105
- type="button"
106
- onClick={onCancel}
107
- size="sm"
108
- className="w-fit"
109
- variant="outline"
110
- >
111
- Cancel
112
- </Button>
113
- </div>
72
+ Cancel
73
+ </Button>
114
74
  </div>
115
- ) : (
75
+ </div>
76
+ </div>
77
+ ) : (
78
+ <div className="h-full grid place-items-center">
79
+ <div className="flex flex-col gap-4 items-center">
80
+ <SendIcon
81
+ size={64}
82
+ className="text-muted-foreground"
83
+ strokeWidth={1.2}
84
+ />
116
85
  <span className="text-[16px] font-semibold text-muted-foreground">
117
- Send a request first to see the response here
86
+ Send your first request
118
87
  </span>
119
- )}
88
+ {tip}
89
+ </div>
120
90
  </div>
121
91
  )}
122
92
  </div>
@@ -9,11 +9,11 @@ export const SchemaExampleAndDefault = ({
9
9
  const example = schema.examples?.at(0);
10
10
  const defaultValue = schema.default;
11
11
 
12
- if (!example && !defaultValue) return null;
12
+ if (example === undefined && defaultValue === undefined) return null;
13
13
 
14
14
  return (
15
15
  <div className="flex flex-col gap-1 text-xs">
16
- {example && (
16
+ {example !== undefined && (
17
17
  <div>
18
18
  <span className="text-muted-foreground">Example: </span>
19
19
  <SelectOnClick className="border rounded-sm px-1 font-mono">
@@ -23,7 +23,7 @@ export const SchemaExampleAndDefault = ({
23
23
  </SelectOnClick>
24
24
  </div>
25
25
  )}
26
- {defaultValue && (
26
+ {defaultValue !== undefined && (
27
27
  <div>
28
28
  <span className="text-muted-foreground">Default: </span>
29
29
  <SelectOnClick className="border rounded-sm px-1 font-mono">
@@ -2,10 +2,9 @@ import * as Collapsible from "@radix-ui/react-collapsible";
2
2
  import { MinusIcon, PlusIcon, RefreshCcwDotIcon } from "lucide-react";
3
3
  import { useCallback, useState } from "react";
4
4
  import { InlineCode } from "../../../components/InlineCode.js";
5
- import { Markdown, ProseClasses } from "../../../components/Markdown.js";
5
+ import { Markdown } from "../../../components/Markdown.js";
6
6
  import type { SchemaObject } from "../../../oas/parser/index.js";
7
7
  import { Button } from "../../../ui/Button.js";
8
- import { cn } from "../../../util/cn.js";
9
8
  import { objectEntries } from "../../../util/objectEntries.js";
10
9
  import { ConstValue } from "../components/ConstValue.js";
11
10
  import { EnumValues } from "../components/EnumValues.js";
@@ -117,7 +116,7 @@ export const SchemaPropertyItem = ({
117
116
  </div>
118
117
  {schema.description && (
119
118
  <Markdown
120
- className={cn(ProseClasses, "text-sm leading-normal line-clamp-4")}
119
+ className="text-sm leading-normal"
121
120
  content={schema.description}
122
121
  />
123
122
  )}
@@ -1,8 +1,8 @@
1
1
  import { InfoIcon } from "lucide-react";
2
- import { Markdown, ProseClasses } from "../../../components/Markdown.js";
2
+ import { Markdown } from "../../../components/Markdown.js";
3
+ import { Typography } from "../../../components/Typography.js";
3
4
  import type { SchemaObject } from "../../../oas/parser/index.js";
4
5
  import { Card } from "../../../ui/Card.js";
5
- import { cn } from "../../../util/cn.js";
6
6
  import { groupBy } from "../../../util/groupBy.js";
7
7
  import { ConstValue } from "../components/ConstValue.js";
8
8
  import { EnumValues } from "../components/EnumValues.js";
@@ -17,7 +17,7 @@ import { hasLogicalGroupings, isBasicType } from "./utils.js";
17
17
  const renderMarkdown = (content?: string) =>
18
18
  content && (
19
19
  <Markdown
20
- className={cn(ProseClasses, "text-sm leading-normal line-clamp-4")}
20
+ className="text-sm leading-normal line-clamp-4"
21
21
  content={content}
22
22
  />
23
23
  );
@@ -86,12 +86,7 @@ export const SchemaView = ({
86
86
  typeof schema.additionalProperties === "object" ? (
87
87
  <SchemaView schema={schema.additionalProperties} />
88
88
  ) : schema.additionalProperties === true ? (
89
- <div
90
- className={cn(
91
- ProseClasses,
92
- "text-sm p-4 bg-border/20 hover:bg-border/30 flex items-center gap-1",
93
- )}
94
- >
89
+ <Typography className="text-sm p-4 bg-border/20 hover:bg-border/30 flex items-center gap-1">
95
90
  <span>Additional properties are allowed</span>
96
91
  <a
97
92
  className="p-0.5 -m-0.5"
@@ -101,7 +96,7 @@ export const SchemaView = ({
101
96
  >
102
97
  <InfoIcon size={14} />
103
98
  </a>
104
- </div>
99
+ </Typography>
105
100
  ) : null;
106
101
 
107
102
  return (
@@ -4,8 +4,9 @@ import type { SchemaObject } from "../../../oas/parser/index.js";
4
4
  export const isBasicType = (
5
5
  type: unknown,
6
6
  ): type is "string" | "number" | "boolean" | "integer" | "null" =>
7
- typeof type === "string" &&
8
- ["string", "number", "boolean", "integer", "null"].includes(type);
7
+ (typeof type === "string" &&
8
+ ["string", "number", "boolean", "integer", "null"].includes(type)) ||
9
+ (Array.isArray(type) && type.every(isBasicType));
9
10
 
10
11
  export const isArrayType = (value: SchemaObject) =>
11
12
  value.type === "array" ||
@@ -1,7 +1,8 @@
1
1
  import { CheckIcon, CopyIcon } from "lucide-react";
2
2
  import type { ReactNode } from "react";
3
- import { useRef, useState } from "react";
3
+ import { useRef } from "react";
4
4
  import { cn } from "../util/cn.js";
5
+ import { useCopyToClipboard } from "../util/useCopyToClipboard.js";
5
6
 
6
7
  export type CodeBlockProps = {
7
8
  className?: string;
@@ -26,7 +27,7 @@ export const CodeBlock = ({
26
27
  showLineNumbers,
27
28
  ...props
28
29
  }: CodeBlockProps) => {
29
- const [isCopied, setIsCopied] = useState(false);
30
+ const [isCopied, copyToClipboard] = useCopyToClipboard();
30
31
  const ref = useRef<HTMLDivElement>(null);
31
32
 
32
33
  if (!children) return null;
@@ -41,7 +42,7 @@ export const CodeBlock = ({
41
42
  <div className="border-b flex items-center h-10 font-sans bg-black/2">
42
43
  <div className="flex-1 text-sm w-full px-4">
43
44
  {title}
44
- {showLanguageIndicator && (
45
+ {showLanguageIndicator && language && (
45
46
  <span className="text-muted-foreground ml-2">({language})</span>
46
47
  )}
47
48
  </div>{" "}
@@ -57,9 +58,7 @@ export const CodeBlock = ({
57
58
  onClick={() => {
58
59
  if (!ref.current?.textContent) return;
59
60
 
60
- setIsCopied(true);
61
- void navigator.clipboard.writeText(ref.current.textContent);
62
- setTimeout(() => setIsCopied(false), 2000);
61
+ copyToClipboard(ref.current.textContent);
63
62
  }}
64
63
  >
65
64
  {isCopied ? (
@@ -45,7 +45,7 @@ const DialogContent = React.forwardRef<
45
45
  >
46
46
  {children}
47
47
  {showCloseButton && (
48
- <DialogPrimitive.Close className="absolute right-4 top-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground">
48
+ <DialogPrimitive.Close className="absolute -right-2 -top-2 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground">
49
49
  <XIcon className="h-4 w-4" />
50
50
  <span className="sr-only">Close</span>
51
51
  </DialogPrimitive.Close>
@@ -34,7 +34,7 @@ export const EmbeddedCodeBlock = ({
34
34
  return (
35
35
  <div
36
36
  className={cn(
37
- "code-block-wrapper relative group bg-muted/50 rounded-md",
37
+ "code-block-wrapper relative group bg-muted/50",
38
38
  showLineNumbers && "line-numbers",
39
39
  )}
40
40
  >
@@ -16,7 +16,7 @@ const SelectTrigger = React.forwardRef<
16
16
  <SelectPrimitive.Trigger
17
17
  ref={ref}
18
18
  className={cn(
19
- "flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
19
+ "flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-hidden focus:ring-1 focus:ring-ring focus:ring-offset-1 disabled:cursor-not-allowed disabled:opacity-50",
20
20
  className,
21
21
  )}
22
22
  {...props}
@@ -0,0 +1,18 @@
1
+ export function getOS(): "apple" | "linux" | "unix" | "windows" | undefined {
2
+ const notFound = -1;
3
+ const userAgent = navigator.userAgent.toLowerCase();
4
+ if (userAgent.indexOf("win") !== notFound) {
5
+ return "windows";
6
+ } else if (userAgent.indexOf("mac") !== notFound) {
7
+ return "apple";
8
+ } else if (userAgent.indexOf("linux") !== notFound) {
9
+ return "linux";
10
+ } else if (userAgent.indexOf("x11") !== notFound) {
11
+ return "unix";
12
+ }
13
+ return;
14
+ }
15
+
16
+ export function isAppleDevice(): boolean {
17
+ return getOS() === "apple";
18
+ }
@@ -0,0 +1,17 @@
1
+ import { useCallback, useState } from "react";
2
+
3
+ export const useCopyToClipboard = (timeout = 2000) => {
4
+ const [isCopied, setIsCopied] = useState(false);
5
+
6
+ const copyToClipboard = useCallback(
7
+ (text: string) => {
8
+ void navigator.clipboard.writeText(text);
9
+ setIsCopied(true);
10
+
11
+ setTimeout(() => setIsCopied(false), timeout);
12
+ },
13
+ [timeout],
14
+ );
15
+
16
+ return [isCopied, copyToClipboard] as const;
17
+ };