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
@@ -0,0 +1,47 @@
1
+ import { ChevronUpIcon } from "lucide-react";
2
+ import { CollapsibleTrigger } from "zudoku/ui/Collapsible.js";
3
+ import { cn } from "../../../util/cn.js";
4
+
5
+ export const CollapsibleHeaderTrigger = ({
6
+ children,
7
+ className,
8
+ }: {
9
+ children: React.ReactNode;
10
+ className?: string;
11
+ }) => {
12
+ return (
13
+ <div
14
+ className={cn(
15
+ "grid grid-cols-[max-content_1fr_min-content_max-content] items-center gap-4 group bg-muted w-full h-10 ps-4 pe-2 border-b",
16
+ className,
17
+ )}
18
+ >
19
+ {children}
20
+ <CollapsibleTrigger
21
+ className={cn(
22
+ "flex items-center gap-4 group bg-muted w-full p-2 hover:bg-accent hover:brightness-95 rounded-md",
23
+ className,
24
+ )}
25
+ >
26
+ <ChevronUpIcon
27
+ className="group-data-[state=open]:rotate-180 transition-transform flex-shrink-0"
28
+ size={16}
29
+ />
30
+ </CollapsibleTrigger>
31
+ </div>
32
+ );
33
+ };
34
+
35
+ export const CollapsibleHeader = ({
36
+ children,
37
+ className,
38
+ }: {
39
+ children: React.ReactNode;
40
+ className?: string;
41
+ }) => {
42
+ return (
43
+ <span className={cn("font-semibold w-full text-start", className)}>
44
+ {children}
45
+ </span>
46
+ );
47
+ };
@@ -1,4 +1,4 @@
1
- import { ChevronDownIcon } from "lucide-react";
1
+ import { PlusCircleIcon } from "lucide-react";
2
2
  import { Button } from "zudoku/ui/Button.js";
3
3
  import {
4
4
  DropdownMenu,
@@ -21,8 +21,12 @@ const ExamplesDropdown = ({
21
21
  return (
22
22
  <DropdownMenu>
23
23
  <DropdownMenuTrigger asChild>
24
- <Button variant="ghost" size="sm">
25
- Use Example <ChevronDownIcon className="w-4 h-4" />
24
+ <Button
25
+ variant="ghost"
26
+ size="sm"
27
+ className="hover:bg-accent hover:brightness-95"
28
+ >
29
+ Use Example <PlusCircleIcon size={16} className="ml-2" />
26
30
  </Button>
27
31
  </DropdownMenuTrigger>
28
32
  <DropdownMenuContent className="max-w-72">
@@ -1,4 +1,10 @@
1
- import { XIcon } from "lucide-react";
1
+ import {
2
+ CircleAlertIcon,
3
+ LockIcon,
4
+ PlusCircleIcon,
5
+ TableOfContentsIcon,
6
+ XIcon,
7
+ } from "lucide-react";
2
8
  import { useCallback, useEffect, useRef } from "react";
3
9
  import {
4
10
  type Control,
@@ -6,11 +12,17 @@ import {
6
12
  useFieldArray,
7
13
  useFormContext,
8
14
  } from "react-hook-form";
9
- import { Card } from "zudoku/ui/Card.js";
10
15
  import { Checkbox } from "zudoku/ui/Checkbox.js";
16
+ import { Collapsible, CollapsibleContent } from "zudoku/ui/Collapsible.js";
17
+ import { Tooltip, TooltipContent, TooltipTrigger } from "zudoku/ui/Tooltip.js";
11
18
  import { Autocomplete } from "../../../components/Autocomplete.js";
12
19
  import { Button } from "../../../ui/Button.js";
13
20
  import { Input } from "../../../ui/Input.js";
21
+ import { cn } from "../../../util/cn.js";
22
+ import {
23
+ CollapsibleHeader,
24
+ CollapsibleHeaderTrigger,
25
+ } from "./CollapsibleHeader.js";
14
26
  import ParamsGrid, { ParamsGridItem } from "./ParamsGrid.js";
15
27
  import { type Header, type PlaygroundForm } from "./Playground.js";
16
28
 
@@ -45,23 +57,29 @@ const headerOptions = Object.freeze([
45
57
 
46
58
  export const Headers = ({
47
59
  control,
48
- headers: schemaHeaders,
60
+ schemaHeaders,
61
+ lockedHeaders,
49
62
  }: {
50
63
  control: Control<PlaygroundForm>;
51
- headers: Header[];
64
+ schemaHeaders: Header[];
65
+ lockedHeaders?: string[];
52
66
  }) => {
53
67
  const { fields, append, remove } = useFieldArray<PlaygroundForm, "headers">({
54
68
  control,
55
69
  name: "headers",
56
70
  });
57
- const { setValue, watch } = useFormContext<PlaygroundForm>();
71
+ const { setValue, watch, formState } = useFormContext<PlaygroundForm>();
58
72
  const valueRefs = useRef<Array<HTMLInputElement | null>>([]);
59
73
  const nameRefs = useRef<Array<HTMLInputElement | null>>([]);
60
74
  const watchedHeaders = watch("headers");
61
75
 
62
- const addNewHeader = useCallback(() => {
63
- append({ name: "", value: "", active: false });
64
- }, [append]);
76
+ const addNewHeader = useCallback(
77
+ (e?: React.MouseEvent<HTMLButtonElement>) => {
78
+ e?.stopPropagation();
79
+ append({ name: "", value: "", active: false }, { shouldFocus: true });
80
+ },
81
+ [append],
82
+ );
65
83
 
66
84
  useEffect(() => {
67
85
  if (watchedHeaders.length === 0) {
@@ -82,41 +100,120 @@ export const Headers = ({
82
100
  .filter((h) => !watchedHeaders.some((f) => f.name === h.name))
83
101
  .map(({ name }) => name);
84
102
 
103
+ const hiddenHeadersIndex = fields.flatMap((f, index) => {
104
+ const keep = !lockedHeaders
105
+ ?.map((h) => h.toLowerCase())
106
+ .includes(f.name.toLowerCase());
107
+
108
+ return keep ? [] : [index];
109
+ });
110
+
111
+ const lockedHeaderFields =
112
+ lockedHeaders?.map((h) => ({
113
+ name: h,
114
+ id: `locked-${h}`,
115
+ value: "••••••••••",
116
+ active: true,
117
+ locked: true,
118
+ })) ?? [];
119
+
85
120
  return (
86
- <div className="flex flex-col gap-2 ">
87
- <div className="flex items-center justify-between">
88
- <span className="font-semibold">Headers</span>
121
+ <Collapsible defaultOpen>
122
+ <CollapsibleHeaderTrigger>
123
+ <TableOfContentsIcon size={16} />
124
+ <CollapsibleHeader>Headers</CollapsibleHeader>
89
125
  <Button
90
- className=""
91
126
  onClick={addNewHeader}
92
127
  type="button"
93
128
  size="sm"
94
129
  variant="ghost"
130
+ className="hover:bg-accent hover:brightness-95 flex gap-2"
95
131
  >
96
- + Add header
132
+ Add header <PlusCircleIcon size={16} />
97
133
  </Button>
98
- </div>
99
- <div className="flex flex-col gap-2">
100
- <Card className="overflow-hidden rounded-lg">
101
- <ParamsGrid>
102
- {fields.map((field, i) => {
103
- const currentHeader = schemaHeaders.find(
104
- (h) => h.name === watch(`headers.${i}.name`),
105
- );
106
- return (
107
- <ParamsGridItem key={field.id}>
108
- <div className="flex items-center gap-2 ">
134
+ </CollapsibleHeaderTrigger>
135
+ <CollapsibleContent className="CollapsibleContent">
136
+ <div className="flex flex-col gap-2">
137
+ <div className="overflow-hidden">
138
+ <ParamsGrid>
139
+ {lockedHeaderFields.map((field) => {
140
+ return (
141
+ <Tooltip key={field.id}>
142
+ <TooltipTrigger asChild>
143
+ <ParamsGridItem
144
+ key={field.id}
145
+ className="opacity-50 cursor-not-allowed font-mono text-xs"
146
+ >
147
+ <LockIcon size={16} />
148
+ <Input
149
+ value={field.name}
150
+ disabled
151
+ className="w-full border-0 p-0 m-0 shadow-none text-xs focus-visible:ring-0 font-mono"
152
+ />
153
+ <div>{field.value}</div>
154
+ </ParamsGridItem>
155
+ </TooltipTrigger>
156
+ <TooltipContent
157
+ alignOffset={10}
158
+ side="bottom"
159
+ align="start"
160
+ >
161
+ <p>This header is set by the selected authentication.</p>
162
+ </TooltipContent>
163
+ </Tooltip>
164
+ );
165
+ })}
166
+ {fields.map((field, i) => {
167
+ const currentSchemaHeader = schemaHeaders.find(
168
+ (h) => h.name === watchedHeaders.at(i)?.name,
169
+ );
170
+ return (
171
+ <ParamsGridItem
172
+ key={field.id}
173
+ className={cn(
174
+ hiddenHeadersIndex.includes(i) && "text-amber-600",
175
+ hiddenHeadersIndex.includes(i) &&
176
+ !formState.dirtyFields.headers?.[i]?.value &&
177
+ "hidden",
178
+ )}
179
+ >
109
180
  <Controller
110
181
  control={control}
111
182
  name={`headers.${i}.active`}
112
183
  render={({ field }) => (
113
- <Checkbox
114
- id={`headers.${i}.active`}
115
- checked={field.value}
116
- onCheckedChange={(checked) => {
117
- field.onChange(checked);
118
- }}
119
- />
184
+ <>
185
+ <Checkbox
186
+ id={`headers.${i}.active`}
187
+ className={cn(
188
+ hiddenHeadersIndex.includes(i) && "hidden",
189
+ )}
190
+ checked={field.value}
191
+ onCheckedChange={(checked) => {
192
+ field.onChange(checked);
193
+ }}
194
+ />
195
+ <Tooltip>
196
+ <TooltipTrigger asChild>
197
+ <CircleAlertIcon
198
+ className={cn(
199
+ "text-amber-600",
200
+ !hiddenHeadersIndex.includes(i) && "hidden",
201
+ )}
202
+ size={16}
203
+ />
204
+ </TooltipTrigger>
205
+ <TooltipContent
206
+ alignOffset={10}
207
+ side="bottom"
208
+ align="start"
209
+ >
210
+ <p>
211
+ This header will be overwritten by the selected
212
+ authentication.
213
+ </p>
214
+ </TooltipContent>
215
+ </Tooltip>
216
+ </>
120
217
  )}
121
218
  />
122
219
  <Controller
@@ -126,7 +223,7 @@ export const Headers = ({
126
223
  <Autocomplete
127
224
  {...field}
128
225
  placeholder="Name"
129
- className="border-0 shadow-none focus-visible:ring-0 bg-transparent hover:bg-transparent text-xs font-mono"
226
+ className="border-0 p-0 m-0 shadow-none focus-visible:ring-0 bg-transparent hover:bg-transparent text-xs font-mono"
130
227
  options={[...missingHeaders, ...headerOptions]}
131
228
  onEnterPress={() => handleHeaderEnter(i)}
132
229
  onChange={(e) => {
@@ -139,67 +236,68 @@ export const Headers = ({
139
236
  />
140
237
  )}
141
238
  />
142
- </div>
143
- <div className="flex items-center gap-2">
144
- <Controller
145
- control={control}
146
- name={`headers.${i}.value`}
147
- render={({ field }) => {
148
- const hasEnum =
149
- currentHeader?.enum && currentHeader.enum.length > 0;
239
+ <div className="flex items-center gap-2">
240
+ <Controller
241
+ control={control}
242
+ name={`headers.${i}.value`}
243
+ render={({ field }) => {
244
+ const hasEnum =
245
+ currentSchemaHeader?.enum &&
246
+ currentSchemaHeader.enum.length > 0;
247
+
248
+ if (!hasEnum) {
249
+ return (
250
+ <Input
251
+ placeholder="Value"
252
+ className="w-full truncate border-0 p-0 m-0 shadow-none text-xs focus-visible:ring-0 font-mono"
253
+ autoComplete="off"
254
+ {...field}
255
+ ref={(el) => {
256
+ valueRefs.current[i] = el;
257
+ }}
258
+ onKeyDown={(e) => {
259
+ if (
260
+ e.key === "Enter" &&
261
+ e.currentTarget.value.trim()
262
+ ) {
263
+ handleValueEnter(i);
264
+ }
265
+ }}
266
+ />
267
+ );
268
+ }
150
269
 
151
- if (!hasEnum) {
152
270
  return (
153
- <Input
154
- placeholder="Value"
155
- className="w-full border-0 shadow-none text-xs font-mono focus-visible:ring-0"
156
- {...field}
157
- ref={(el) => {
158
- valueRefs.current[i] = el;
159
- }}
160
- onKeyDown={(e) => {
161
- if (
162
- e.key === "Enter" &&
163
- e.currentTarget.value.trim()
164
- ) {
165
- handleValueEnter(i);
166
- }
271
+ <Autocomplete
272
+ shouldFilter={false}
273
+ value={field.value}
274
+ options={currentSchemaHeader.enum ?? []}
275
+ onChange={(e) => {
276
+ field.onChange(e);
277
+ setValue(`headers.${i}.active`, true);
167
278
  }}
168
- autoComplete="off"
279
+ className="border-0 p-0 m-0 shadow-none focus-visible:ring-0 bg-transparent hover:bg-transparent text-xs font-mono"
169
280
  />
170
281
  );
171
- }
172
-
173
- return (
174
- <Autocomplete
175
- shouldFilter={false}
176
- value={field.value}
177
- options={currentHeader.enum ?? []}
178
- onChange={(e) => {
179
- field.onChange(e);
180
- setValue(`headers.${i}.active`, true);
181
- }}
182
- className="border-0 shadow-none focus-visible:ring-0 bg-transparent hover:bg-transparent text-xs font-mono"
183
- />
184
- );
185
- }}
186
- />
187
- <Button
188
- size="icon"
189
- variant="ghost"
190
- className="text-muted-foreground opacity-0 group-hover:opacity-100 rounded-full w-8 h-7"
191
- onClick={() => remove(i)}
192
- type="button"
193
- >
194
- <XIcon size={16} />
195
- </Button>
196
- </div>
197
- </ParamsGridItem>
198
- );
199
- })}
200
- </ParamsGrid>
201
- </Card>
202
- </div>
203
- </div>
282
+ }}
283
+ />
284
+ <Button
285
+ size="icon-xs"
286
+ variant="ghost"
287
+ className="text-muted-foreground opacity-0 group-hover:brightness-95 group-hover:opacity-100"
288
+ onClick={() => remove(i)}
289
+ type="button"
290
+ >
291
+ <XIcon size={16} />
292
+ </Button>
293
+ </div>
294
+ </ParamsGridItem>
295
+ );
296
+ })}
297
+ </ParamsGrid>
298
+ </div>
299
+ </div>
300
+ </CollapsibleContent>
301
+ </Collapsible>
204
302
  );
205
303
  };
@@ -1,5 +1,6 @@
1
1
  import { useState } from "react";
2
2
  import { Button } from "zudoku/ui/Button.js";
3
+ import { Card } from "zudoku/ui/Card.js";
3
4
  import { Checkbox } from "zudoku/ui/Checkbox.js";
4
5
  import {
5
6
  Dialog,
@@ -39,13 +40,13 @@ const IdentityDialog = ({
39
40
  <DialogDescription>
40
41
  Please select an identity for this request.
41
42
  </DialogDescription>
42
- <div className="max-h-80 overflow-auto">
43
+ <Card className="max-h-80 overflow-auto">
43
44
  <IdentitySelector
44
45
  identities={identities}
45
46
  setValue={setIdentity}
46
47
  value={identity}
47
48
  />
48
- </div>
49
+ </Card>
49
50
  <DialogFooter className="flex flex-col gap-2">
50
51
  <div className="flex items-center gap-2">
51
52
  <Checkbox
@@ -1,4 +1,3 @@
1
- import { Card } from "zudoku/ui/Card.js";
2
1
  import { Label } from "zudoku/ui/Label.js";
3
2
  import { RadioGroup, RadioGroupItem } from "zudoku/ui/RadioGroup.js";
4
3
  import { type ApiIdentity } from "../../../core/ZudokuContext.js";
@@ -13,7 +12,7 @@ const IdentitySelector = ({
13
12
  setValue: (value: string) => void;
14
13
  value?: string;
15
14
  }) => (
16
- <Card className="w-full overflow-hidden rounded-lg">
15
+ <div className="w-full overflow-hidden">
17
16
  <RadioGroup
18
17
  onValueChange={(value) => setValue(value)}
19
18
  value={value}
@@ -21,23 +20,19 @@ const IdentitySelector = ({
21
20
  className="gap-0"
22
21
  disabled={identities?.length === 0}
23
22
  >
24
- <Label className="h-10 border-b items-center flex gap-2 p-4 cursor-pointer hover:bg-accent">
25
- <RadioGroupItem value={NO_IDENTITY} id="none" />
26
- <span>None</span>
27
- </Label>
28
- <div className="divide-y">
29
- {identities?.map((identity) => (
23
+ {[{ id: NO_IDENTITY, label: "None" }, ...(identities ?? [])].map(
24
+ (identity) => (
30
25
  <Label
31
26
  key={identity.id}
32
- className="h-10 items-center flex gap-2 p-4 cursor-pointer hover:bg-accent"
27
+ className="h-10 items-center border-b font-normal flex gap-4 p-4 cursor-pointer hover:bg-accent/75"
33
28
  >
34
29
  <RadioGroupItem value={identity.id} id={identity.id} />
35
30
  <span>{identity.label}</span>
36
31
  </Label>
37
- ))}
38
- </div>
32
+ ),
33
+ )}
39
34
  </RadioGroup>
40
- </Card>
35
+ </div>
41
36
  );
42
37
 
43
38
  export default IdentitySelector;
@@ -2,5 +2,5 @@ import createVariantComponent from "../../../util/createVariantComponent.js";
2
2
 
3
3
  export const InlineInput = createVariantComponent(
4
4
  "input",
5
- "px-2 bg-transparent h-6 font-mono text-xs m-2",
5
+ "bg-transparent h-9 font-mono text-xs",
6
6
  );
@@ -2,12 +2,12 @@ import createVariantComponent from "../../../util/createVariantComponent.js";
2
2
 
3
3
  const ParamsGrid = createVariantComponent(
4
4
  "div",
5
- "grid grid-cols-[2fr_3fr] items-center",
5
+ "grid grid-cols-[min-content_2fr_3fr] items-center gap-x-5",
6
6
  );
7
7
 
8
8
  export const ParamsGridItem = createVariantComponent(
9
9
  "div",
10
- "group hover:bg-accent px-4 py-1 grid col-span-full grid-cols-subgrid",
10
+ "group h-9 hover:bg-accent/75 ps-4 pe-2 grid col-span-full grid-cols-subgrid items-center border-b",
11
11
  );
12
12
 
13
13
  export default ParamsGrid;
@@ -1,5 +1,4 @@
1
1
  import { type Control, Controller, useFieldArray } from "react-hook-form";
2
- import { Card } from "zudoku/ui/Card.js";
3
2
  import { Input } from "../../../ui/Input.js";
4
3
  import { ColorizedParam } from "../ColorizedParam.js";
5
4
  import ParamsGrid, { ParamsGridItem } from "./ParamsGrid.js";
@@ -22,7 +21,7 @@ export const PathParams = ({
22
21
  );
23
22
 
24
23
  return (
25
- <Card className="rounded-lg overflow-hidden">
24
+ <div className="overflow-hidden">
26
25
  <ParamsGrid>
27
26
  {sortedFields.map((field, i) => (
28
27
  <ParamsGridItem key={field.id}>
@@ -49,7 +48,7 @@ export const PathParams = ({
49
48
  {...field}
50
49
  required
51
50
  placeholder="Enter value"
52
- className="w-full border-0 shadow-none text-xs font-mono focus-visible:ring-0"
51
+ className="w-full truncate border-0 p-0 m-0 shadow-none text-xs font-mono focus-visible:ring-0"
53
52
  />
54
53
  )}
55
54
  />
@@ -57,6 +56,6 @@ export const PathParams = ({
57
56
  </ParamsGridItem>
58
57
  ))}
59
58
  </ParamsGrid>
60
- </Card>
59
+ </div>
61
60
  );
62
61
  };