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,26 +1,26 @@
1
1
  import { j as s } from "./jsx-runtime-C5mzlN2N.js";
2
- import { ChevronsLeftRightIcon as S, ChevronUpIcon as k, ChevronDownIcon as h, CircleIcon as z, CircleDotIcon as L, CircleFadingPlusIcon as $, SquareMinusIcon as D, SquarePlusIcon as B, MinusIcon as q, PlusIcon as M, RefreshCcwDotIcon as T, InfoIcon as G } from "lucide-react";
3
- import { I as v, S as c, M as P, P as b } from "./Markdown-BQ8YqLsz.js";
4
- import { Card as u } from "./ui/Card.js";
5
- import { c as x } from "./cn-wvCW-ho6.js";
6
- import { isValidElement as F, useState as m, useCallback as _ } from "react";
7
- import { B as J } from "./Button-BE9IVkWV.js";
2
+ import { ChevronsLeftRightIcon as S, ChevronUpIcon as k, ChevronDownIcon as I, CircleIcon as z, CircleDotIcon as L, CircleFadingPlusIcon as $, SquareMinusIcon as D, SquarePlusIcon as B, MinusIcon as T, PlusIcon as q, RefreshCcwDotIcon as M, InfoIcon as G } from "lucide-react";
3
+ import { I as O, S as x, M as v, T as F } from "./Slot-DwZlQ-vX.js";
4
+ import { Card as m } from "./ui/Card.js";
5
+ import { isValidElement as _, useState as p, useCallback as J } from "react";
6
+ import { B as U } from "./Button-BE9IVkWV.js";
7
+ import { c as u } from "./cn-wvCW-ho6.js";
8
8
  import * as d from "@radix-ui/react-collapsible";
9
- import { Button as U } from "./ui/Button.js";
10
- import { o as V } from "./objectEntries-yMIkr2mI.js";
11
- import { C as K } from "./circular-DfOaDE_x.js";
12
- const W = (e, t) => e.reduce(
9
+ import { Button as V } from "./ui/Button.js";
10
+ import { o as K } from "./index-BIbCx5Fh.js";
11
+ import { C as W } from "./circular-CqHpo7-e.js";
12
+ const H = (e, t) => e.reduce(
13
13
  (r, n) => {
14
14
  const i = t(n);
15
15
  return r[i] || (r[i] = []), r[i].push(n), r;
16
16
  },
17
17
  {}
18
- ), H = ({ pattern: e }) => {
19
- const [t, r] = m(!1), n = e.length > 20, i = n ? `${e.slice(0, 20)}…` : e;
18
+ ), Q = ({ pattern: e }) => {
19
+ const [t, r] = p(!1), n = e.length > 20, i = n ? `${e.slice(0, 20)}…` : e;
20
20
  return /* @__PURE__ */ s.jsxs(
21
- v,
21
+ O,
22
22
  {
23
- className: x("text-xs", n && "cursor-pointer"),
23
+ className: u("text-xs", n && "cursor-pointer"),
24
24
  onClick: () => r(!t),
25
25
  selectOnClick: !1,
26
26
  children: [
@@ -29,7 +29,7 @@ const W = (e, t) => e.reduce(
29
29
  ]
30
30
  }
31
31
  );
32
- }, Q = (e) => e ? [
32
+ }, X = (e) => e ? [
33
33
  e.type === "array" && e.items.type ? Array.isArray(e.items.type) ? `(${e.items.type.join(" | ")})[]` : `${e.items.type}[]` : Array.isArray(e.type) ? e.type.join(" | ") : e.type,
34
34
  e.enum && "enum",
35
35
  e.const && "const",
@@ -48,15 +48,15 @@ const W = (e, t) => e.reduce(
48
48
  e.deprecated && "deprecated",
49
49
  e.pattern && /* @__PURE__ */ s.jsxs(s.Fragment, { children: [
50
50
  "pattern: ",
51
- /* @__PURE__ */ s.jsx(H, { pattern: e.pattern })
51
+ /* @__PURE__ */ s.jsx(Q, { pattern: e.pattern })
52
52
  ] })
53
53
  ] : [], j = ({
54
54
  schema: e,
55
55
  extraItems: t = [],
56
56
  className: r
57
57
  }) => {
58
- const n = [...Q(e), ...t].flatMap(
59
- (i) => typeof i == "string" || F(i) ? i : []
58
+ const n = [...X(e), ...t].flatMap(
59
+ (i) => typeof i == "string" || _(i) ? i : []
60
60
  );
61
61
  return /* @__PURE__ */ s.jsx("span", { className: r, children: n.map((i, o) => /* @__PURE__ */ s.jsxs("span", { className: "text-muted-foreground", children: [
62
62
  i,
@@ -67,14 +67,14 @@ const W = (e, t) => e.reduce(
67
67
  className: t,
68
68
  maxVisibleValues: r = 8
69
69
  }) => {
70
- const [n, i] = m(!1);
70
+ const [n, i] = p(!1);
71
71
  if (!e.length) return null;
72
72
  const o = e.length > r, l = o && !n ? e.slice(0, r) : e;
73
- return /* @__PURE__ */ s.jsxs("div", { className: x("flex flex-wrap gap-1.5 text-xs", t), children: [
73
+ return /* @__PURE__ */ s.jsxs("div", { className: u("flex flex-wrap gap-1.5 text-xs", t), children: [
74
74
  /* @__PURE__ */ s.jsx("span", { className: "text-muted-foreground", children: "Enum values: " }),
75
- l.map((a) => /* @__PURE__ */ s.jsx("div", { children: /* @__PURE__ */ s.jsx(c, { className: "border rounded-sm px-1 font-mono", children: a }) }, a)),
75
+ l.map((a) => /* @__PURE__ */ s.jsx("div", { children: /* @__PURE__ */ s.jsx(x, { className: "border rounded-sm px-1 font-mono", children: a }) }, a)),
76
76
  o && /* @__PURE__ */ s.jsx(
77
- J,
77
+ U,
78
78
  {
79
79
  variant: "ghost",
80
80
  size: "sm",
@@ -84,7 +84,7 @@ const W = (e, t) => e.reduce(
84
84
  /* @__PURE__ */ s.jsx(k, { size: 12 }),
85
85
  /* @__PURE__ */ s.jsx("span", { className: "text-muted-foreground", children: "show less" })
86
86
  ] }) : /* @__PURE__ */ s.jsxs("div", { className: "flex items-center gap-1", children: [
87
- /* @__PURE__ */ s.jsx(h, { size: 12 }),
87
+ /* @__PURE__ */ s.jsx(I, { size: 12 }),
88
88
  /* @__PURE__ */ s.jsxs("span", { className: "text-muted-foreground", children: [
89
89
  "show ",
90
90
  e.length - r,
@@ -98,32 +98,32 @@ const W = (e, t) => e.reduce(
98
98
  schema: e
99
99
  }) => {
100
100
  const t = e.examples?.at(0), r = e.default;
101
- return !t && !r ? null : /* @__PURE__ */ s.jsxs("div", { className: "flex flex-col gap-1 text-xs", children: [
102
- t && /* @__PURE__ */ s.jsxs("div", { children: [
101
+ return t === void 0 && r === void 0 ? null : /* @__PURE__ */ s.jsxs("div", { className: "flex flex-col gap-1 text-xs", children: [
102
+ t !== void 0 && /* @__PURE__ */ s.jsxs("div", { children: [
103
103
  /* @__PURE__ */ s.jsx("span", { className: "text-muted-foreground", children: "Example: " }),
104
- /* @__PURE__ */ s.jsx(c, { className: "border rounded-sm px-1 font-mono", children: typeof t == "object" || typeof t == "boolean" ? JSON.stringify(t) : t })
104
+ /* @__PURE__ */ s.jsx(x, { className: "border rounded-sm px-1 font-mono", children: typeof t == "object" || typeof t == "boolean" ? JSON.stringify(t) : t })
105
105
  ] }),
106
- r && /* @__PURE__ */ s.jsxs("div", { children: [
106
+ r !== void 0 && /* @__PURE__ */ s.jsxs("div", { children: [
107
107
  /* @__PURE__ */ s.jsx("span", { className: "text-muted-foreground", children: "Default: " }),
108
- /* @__PURE__ */ s.jsx(c, { className: "border rounded-sm px-1 font-mono", children: typeof r == "object" || typeof r == "boolean" ? JSON.stringify(r) : r })
108
+ /* @__PURE__ */ s.jsx(x, { className: "border rounded-sm px-1 font-mono", children: typeof r == "object" || typeof r == "boolean" ? JSON.stringify(r) : r })
109
109
  ] })
110
110
  ] });
111
- }, w = ({
111
+ }, P = ({
112
112
  schema: e,
113
113
  hideDescription: t = !1
114
114
  }) => /* @__PURE__ */ s.jsx("div", { className: "flex flex-col gap-1 text-xs", children: /* @__PURE__ */ s.jsxs("div", { children: [
115
115
  /* @__PURE__ */ s.jsx("span", { className: "text-muted-foreground", children: "Const value: " }),
116
- /* @__PURE__ */ s.jsx(c, { className: "border rounded px-1 font-mono", children: e.const }),
116
+ /* @__PURE__ */ s.jsx(x, { className: "border rounded px-1 font-mono", children: e.const }),
117
117
  !t && e.description && /* @__PURE__ */ s.jsx("div", { className: "text-muted-foreground", children: e.description })
118
- ] }) }), X = {
118
+ ] }) }), Y = {
119
119
  AND: /* @__PURE__ */ s.jsx($, { size: 16, className: "fill-card" }),
120
120
  OR: /* @__PURE__ */ s.jsx(L, { size: 16, className: "fill-card" }),
121
121
  ONE: /* @__PURE__ */ s.jsx(z, { size: 14, className: "fill-card" })
122
- }, Y = {
122
+ }, Z = {
123
123
  AND: "text-green-500 dark:text-green-300/60",
124
124
  OR: "text-blue-400 dark:text-blue-500",
125
125
  ONE: "text-purple-500 dark:text-purple-300/60"
126
- }, Z = ({
126
+ }, ee = ({
127
127
  type: e,
128
128
  isOpen: t,
129
129
  className: r,
@@ -131,29 +131,29 @@ const W = (e, t) => e.reduce(
131
131
  }) => /* @__PURE__ */ s.jsx(
132
132
  "div",
133
133
  {
134
- className: x(
135
- Y[e],
134
+ className: u(
135
+ Z[e],
136
136
  "relative text-sm flex py-2",
137
137
  "before:border-l before:absolute before:-top-2 before:-bottom-2 before:border-border before:border-dashed before:content-['']",
138
138
  r
139
139
  ),
140
140
  children: /* @__PURE__ */ s.jsxs("div", { className: "-translate-x-[7px] flex gap-1 items-center", children: [
141
- X[e],
141
+ Y[e],
142
142
  /* @__PURE__ */ s.jsx(
143
143
  "div",
144
144
  {
145
- className: x(
145
+ className: u(
146
146
  "translate-y-px mx-px opacity-0 group-hover:opacity-100 transition",
147
147
  !t && "-rotate-90"
148
148
  ),
149
- children: /* @__PURE__ */ s.jsx(h, { size: 16 })
149
+ children: /* @__PURE__ */ s.jsx(I, { size: 16 })
150
150
  }
151
151
  ),
152
152
  /* @__PURE__ */ s.jsx("span", { className: "text-sm text-foreground", children: n })
153
153
  ] })
154
154
  }
155
- ), ee = (e) => {
156
- const [t, r] = m(!0);
155
+ ), se = (e) => {
156
+ const [t, r] = p(!0);
157
157
  return /* @__PURE__ */ s.jsxs(
158
158
  d.Root,
159
159
  {
@@ -162,7 +162,7 @@ const W = (e, t) => e.reduce(
162
162
  className: "group",
163
163
  children: [
164
164
  /* @__PURE__ */ s.jsx(d.Trigger, { children: /* @__PURE__ */ s.jsx(
165
- Z,
165
+ ee,
166
166
  {
167
167
  type: e.type,
168
168
  isOpen: t,
@@ -170,39 +170,39 @@ const W = (e, t) => e.reduce(
170
170
  }
171
171
  ) }),
172
172
  !t && /* @__PURE__ */ s.jsx("div", { className: "wavy-line bg-border translate-y-1" }),
173
- /* @__PURE__ */ s.jsx(d.Content, { children: /* @__PURE__ */ s.jsx(p, { schema: e.schema }) })
173
+ /* @__PURE__ */ s.jsx(d.Content, { children: /* @__PURE__ */ s.jsx(c, { schema: e.schema }) })
174
174
  ]
175
175
  }
176
176
  );
177
- }, se = {
177
+ }, te = {
178
178
  AND: "All of",
179
179
  OR: "Any of",
180
180
  ONE: "One of"
181
- }, te = ({
181
+ }, re = ({
182
182
  schemas: e,
183
183
  type: t,
184
184
  isOpen: r,
185
185
  toggleOpen: n
186
- }) => /* @__PURE__ */ s.jsx(d.Root, { open: r, onOpenChange: n, asChild: !0, children: /* @__PURE__ */ s.jsxs(u, { className: "px-6", children: [
186
+ }) => /* @__PURE__ */ s.jsx(d.Root, { open: r, onOpenChange: n, asChild: !0, children: /* @__PURE__ */ s.jsxs(m, { className: "px-6", children: [
187
187
  /* @__PURE__ */ s.jsxs(d.Trigger, { className: "flex gap-2 items-center py-2 w-full text-sm text-muted-foreground -translate-x-1.5", children: [
188
188
  r ? /* @__PURE__ */ s.jsx(D, { size: 14 }) : /* @__PURE__ */ s.jsx(B, { size: 14 }),
189
- /* @__PURE__ */ s.jsx("span", { children: se[t] })
189
+ /* @__PURE__ */ s.jsx("span", { children: te[t] })
190
190
  ] }),
191
191
  /* @__PURE__ */ s.jsx(d.Content, { className: "pb-4", children: e.map((i, o) => (
192
192
  // eslint-disable-next-line react/no-array-index-key
193
- /* @__PURE__ */ s.jsx(ee, { type: t, schema: i }, o)
193
+ /* @__PURE__ */ s.jsx(se, { type: t, schema: i }, o)
194
194
  )) })
195
- ] }) }), re = (e) => typeof e == "string" && ["string", "number", "boolean", "integer", "null"].includes(e), y = (e) => e.type === "array" || // schema.type might be an array of types, so we need to check if "array" is one of them
196
- Array.isArray(e.type) && e.type.includes("array"), C = (e) => e && (e.type === "object" && Object.keys(e.properties ?? {}).length > 0 || e.type === "array" && typeof e.items == "object" && (!e.items.type || e.items.type === "object")), N = (e) => !!(e.oneOf ?? e.allOf ?? e.anyOf), ne = {
195
+ ] }) }), w = (e) => typeof e == "string" && ["string", "number", "boolean", "integer", "null"].includes(e) || Array.isArray(e) && e.every(w), y = (e) => e.type === "array" || // schema.type might be an array of types, so we need to check if "array" is one of them
196
+ Array.isArray(e.type) && e.type.includes("array"), b = (e) => e && (e.type === "object" && Object.keys(e.properties ?? {}).length > 0 || e.type === "array" && typeof e.items == "object" && (!e.items.type || e.items.type === "object")), N = (e) => !!(e.oneOf ?? e.allOf ?? e.anyOf), ne = {
197
197
  allOf: "AND",
198
198
  anyOf: "OR",
199
199
  oneOf: "ONE"
200
- }, A = (e) => typeof e == "string" && e.startsWith(K), I = (e) => y(e) && "items" in e && A(e.items), ie = (e) => typeof e == "string" ? e.split(":")[1] : void 0, R = ({ schema: e }) => {
201
- const [t, r] = m(!0), n = _(() => r((i) => !i), []);
202
- for (const [i, o] of V(ne))
200
+ }, A = (e) => typeof e == "string" && e.startsWith(W), C = (e) => y(e) && "items" in e && A(e.items), ie = (e) => typeof e == "string" ? e.split(":")[1] : void 0, R = ({ schema: e }) => {
201
+ const [t, r] = p(!0), n = J(() => r((i) => !i), []);
202
+ for (const [i, o] of K(ne))
203
203
  if (e[i])
204
204
  return /* @__PURE__ */ s.jsx(
205
- te,
205
+ re,
206
206
  {
207
207
  schemas: e[i],
208
208
  type: o,
@@ -210,13 +210,13 @@ Array.isArray(e.type) && e.type.includes("array"), C = (e) => e && (e.type === "
210
210
  toggleOpen: n
211
211
  }
212
212
  );
213
- }, O = ({ circularProp: e }) => /* @__PURE__ */ s.jsxs(
214
- v,
213
+ }, h = ({ circularProp: e }) => /* @__PURE__ */ s.jsxs(
214
+ O,
215
215
  {
216
216
  className: "inline-flex items-center gap-1.5 italic text-xs translate-y-0.5",
217
217
  selectOnClick: !1,
218
218
  children: [
219
- /* @__PURE__ */ s.jsx(T, { size: 13 }),
219
+ /* @__PURE__ */ s.jsx(M, { size: 13 }),
220
220
  /* @__PURE__ */ s.jsx("span", { children: e ? `${e} (circular)` : "circular" })
221
221
  ]
222
222
  }
@@ -227,7 +227,7 @@ Array.isArray(e.type) && e.type.includes("array"), C = (e) => e && (e.type === "
227
227
  defaultOpen: n = !1,
228
228
  showCollapseButton: i = !0
229
229
  }) => {
230
- const [o, l] = m(n);
230
+ const [o, l] = p(n);
231
231
  if (A(t))
232
232
  return /* @__PURE__ */ s.jsx("li", { className: "p-4 bg-border/20 hover:bg-border/30", children: /* @__PURE__ */ s.jsxs("div", { className: "flex flex-col gap-2.5 justify-between text-sm", children: [
233
233
  /* @__PURE__ */ s.jsxs("div", { className: "space-x-2 rtl:space-x-reverse", children: [
@@ -236,24 +236,24 @@ Array.isArray(e.type) && e.type.includes("array"), C = (e) => e && (e.type === "
236
236
  j,
237
237
  {
238
238
  schema: t,
239
- extraItems: [/* @__PURE__ */ s.jsx(O, {}, "circular-ref")]
239
+ extraItems: [/* @__PURE__ */ s.jsx(h, {}, "circular-ref")]
240
240
  }
241
241
  )
242
242
  ] }),
243
243
  /* @__PURE__ */ s.jsx(g, { schema: t })
244
244
  ] }) });
245
- const a = !!((N(t) || C(t) || y(t) && "items" in t && C(t.items) || t.additionalProperties) && !I(t));
245
+ const a = !!((N(t) || b(t) || y(t) && "items" in t && b(t.items) || t.additionalProperties) && !C(t));
246
246
  return /* @__PURE__ */ s.jsx("li", { className: "p-4 bg-border/20 hover:bg-border/30", children: /* @__PURE__ */ s.jsxs("div", { className: "flex flex-col gap-2.5 justify-between text-sm", children: [
247
247
  /* @__PURE__ */ s.jsxs("div", { className: "space-x-2 rtl:space-x-reverse", children: [
248
- /* @__PURE__ */ s.jsx(c, { asChild: !0, children: /* @__PURE__ */ s.jsx("code", { children: e }) }),
248
+ /* @__PURE__ */ s.jsx(x, { asChild: !0, children: /* @__PURE__ */ s.jsx("code", { children: e }) }),
249
249
  /* @__PURE__ */ s.jsx(
250
250
  j,
251
251
  {
252
252
  schema: t,
253
253
  extraItems: [
254
254
  r !== "optional" && /* @__PURE__ */ s.jsx("span", { className: "text-primary", children: "required" }),
255
- I(t) && /* @__PURE__ */ s.jsx(
256
- O,
255
+ C(t) && /* @__PURE__ */ s.jsx(
256
+ h,
257
257
  {
258
258
  circularProp: ie(t.items)
259
259
  }
@@ -263,14 +263,14 @@ Array.isArray(e.type) && e.type.includes("array"), C = (e) => e && (e.type === "
263
263
  )
264
264
  ] }),
265
265
  t.description && /* @__PURE__ */ s.jsx(
266
- P,
266
+ v,
267
267
  {
268
- className: x(b, "text-sm leading-normal line-clamp-4"),
268
+ className: "text-sm leading-normal",
269
269
  content: t.description
270
270
  }
271
271
  ),
272
272
  t.type === "array" && "items" in t && t.items.enum && /* @__PURE__ */ s.jsx(f, { values: t.items.enum }),
273
- t.const && /* @__PURE__ */ s.jsx(w, { schema: t, hideDescription: !0 }),
273
+ t.const && /* @__PURE__ */ s.jsx(P, { schema: t, hideDescription: !0 }),
274
274
  t.enum && /* @__PURE__ */ s.jsx(f, { values: t.enum }),
275
275
  /* @__PURE__ */ s.jsx(g, { schema: t }),
276
276
  a && /* @__PURE__ */ s.jsxs(
@@ -280,71 +280,62 @@ Array.isArray(e.type) && e.type.includes("array"), C = (e) => e && (e.type === "
280
280
  open: o,
281
281
  onOpenChange: () => l(!o),
282
282
  children: [
283
- i && /* @__PURE__ */ s.jsx(d.Trigger, { asChild: !0, children: /* @__PURE__ */ s.jsxs(U, { variant: "expand", size: "sm", children: [
284
- o ? /* @__PURE__ */ s.jsx(q, { size: 12 }) : /* @__PURE__ */ s.jsx(M, { size: 12 }),
283
+ i && /* @__PURE__ */ s.jsx(d.Trigger, { asChild: !0, children: /* @__PURE__ */ s.jsxs(V, { variant: "expand", size: "sm", children: [
284
+ o ? /* @__PURE__ */ s.jsx(T, { size: 12 }) : /* @__PURE__ */ s.jsx(q, { size: 12 }),
285
285
  o ? "Hide properties" : "Show properties"
286
286
  ] }) }),
287
- /* @__PURE__ */ s.jsx(d.Content, { children: /* @__PURE__ */ s.jsx("div", { className: "mt-2", children: N(t) ? /* @__PURE__ */ s.jsx(R, { schema: t }) : t.type === "object" ? /* @__PURE__ */ s.jsx(p, { schema: t }) : y(t) && "items" in t ? /* @__PURE__ */ s.jsx(p, { schema: t.items }) : null }) })
287
+ /* @__PURE__ */ s.jsx(d.Content, { children: /* @__PURE__ */ s.jsx("div", { className: "mt-2", children: N(t) ? /* @__PURE__ */ s.jsx(R, { schema: t }) : t.type === "object" ? /* @__PURE__ */ s.jsx(c, { schema: t }) : y(t) && "items" in t ? /* @__PURE__ */ s.jsx(c, { schema: t.items }) : null }) })
288
288
  ]
289
289
  }
290
290
  )
291
291
  ] }) });
292
292
  }, le = (e) => e && /* @__PURE__ */ s.jsx(
293
- P,
293
+ v,
294
294
  {
295
- className: x(b, "text-sm leading-normal line-clamp-4"),
295
+ className: "text-sm leading-normal line-clamp-4",
296
296
  content: e
297
297
  }
298
- ), ae = (e) => /* @__PURE__ */ s.jsxs(u, { className: "p-4 space-y-2", children: [
298
+ ), ae = (e) => /* @__PURE__ */ s.jsxs(m, { className: "p-4 space-y-2", children: [
299
299
  /* @__PURE__ */ s.jsx("span", { className: "text-sm text-muted-foreground", children: /* @__PURE__ */ s.jsx(j, { schema: e }) }),
300
300
  e.enum && /* @__PURE__ */ s.jsx(f, { values: e.enum }),
301
301
  le(e.description),
302
302
  /* @__PURE__ */ s.jsx(g, { schema: e })
303
- ] }), p = ({
303
+ ] }), c = ({
304
304
  schema: e,
305
305
  defaultOpen: t = !1,
306
306
  cardHeader: r
307
307
  }) => {
308
308
  if (!e || Object.keys(e).length === 0)
309
- return /* @__PURE__ */ s.jsxs(u, { className: "overflow-hidden", children: [
309
+ return /* @__PURE__ */ s.jsxs(m, { className: "overflow-hidden", children: [
310
310
  r,
311
311
  /* @__PURE__ */ s.jsx("div", { className: "text-sm text-muted-foreground italic p-4", children: "No data returned" })
312
312
  ] });
313
313
  if (e.const)
314
- return /* @__PURE__ */ s.jsx(w, { schema: e });
314
+ return /* @__PURE__ */ s.jsx(P, { schema: e });
315
315
  if (N(e))
316
316
  return /* @__PURE__ */ s.jsx(R, { schema: e });
317
- if (re(e.type))
317
+ if (w(e.type))
318
318
  return ae(e);
319
319
  if (e.type === "array" && typeof e.items == "object")
320
- return /* @__PURE__ */ s.jsx(p, { schema: e.items });
320
+ return /* @__PURE__ */ s.jsx(c, { schema: e.items });
321
321
  if (e.type === "object") {
322
- const n = W(
322
+ const n = H(
323
323
  Object.entries(e.properties ?? {}),
324
324
  ([l, a]) => a.deprecated ? "deprecated" : e.required?.includes(l) ? "required" : "optional"
325
- ), i = ["required", "optional", "deprecated"], o = typeof e.additionalProperties == "object" ? /* @__PURE__ */ s.jsx(p, { schema: e.additionalProperties }) : e.additionalProperties === !0 ? /* @__PURE__ */ s.jsxs(
326
- "div",
327
- {
328
- className: x(
329
- b,
330
- "text-sm p-4 bg-border/20 hover:bg-border/30 flex items-center gap-1"
331
- ),
332
- children: [
333
- /* @__PURE__ */ s.jsx("span", { children: "Additional properties are allowed" }),
334
- /* @__PURE__ */ s.jsx(
335
- "a",
336
- {
337
- className: "p-0.5 -m-0.5",
338
- href: "https://swagger.io/docs/specification/v3_0/data-models/dictionaries/",
339
- rel: "noopener noreferrer",
340
- target: "_blank",
341
- children: /* @__PURE__ */ s.jsx(G, { size: 14 })
342
- }
343
- )
344
- ]
345
- }
346
- ) : null;
347
- return /* @__PURE__ */ s.jsxs(u, { className: "divide-y overflow-hidden", children: [
325
+ ), i = ["required", "optional", "deprecated"], o = typeof e.additionalProperties == "object" ? /* @__PURE__ */ s.jsx(c, { schema: e.additionalProperties }) : e.additionalProperties === !0 ? /* @__PURE__ */ s.jsxs(F, { className: "text-sm p-4 bg-border/20 hover:bg-border/30 flex items-center gap-1", children: [
326
+ /* @__PURE__ */ s.jsx("span", { children: "Additional properties are allowed" }),
327
+ /* @__PURE__ */ s.jsx(
328
+ "a",
329
+ {
330
+ className: "p-0.5 -m-0.5",
331
+ href: "https://swagger.io/docs/specification/v3_0/data-models/dictionaries/",
332
+ rel: "noopener noreferrer",
333
+ target: "_blank",
334
+ children: /* @__PURE__ */ s.jsx(G, { size: 14 })
335
+ }
336
+ )
337
+ ] }) : null;
338
+ return /* @__PURE__ */ s.jsxs(m, { className: "divide-y overflow-hidden", children: [
348
339
  r,
349
340
  i.map(
350
341
  (l) => n[l] && /* @__PURE__ */ s.jsx("ul", { className: "divide-y", children: n[l].map(([a, E]) => /* @__PURE__ */ s.jsx(
@@ -366,10 +357,10 @@ Array.isArray(e.type) && e.type.includes("array"), C = (e) => e && (e.type === "
366
357
  export {
367
358
  f as E,
368
359
  j as P,
369
- p as S,
360
+ c as S,
370
361
  g as a,
371
362
  A as b,
372
- W as g,
363
+ H as g,
373
364
  y as i
374
365
  };
375
- //# sourceMappingURL=SchemaView-CLxthVcA.js.map
366
+ //# sourceMappingURL=SchemaView-matL2maR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaView-matL2maR.js","sources":["../src/lib/util/groupBy.ts","../src/lib/plugins/openapi/ParamInfos.tsx","../src/lib/plugins/openapi/components/EnumValues.tsx","../src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx","../src/lib/plugins/openapi/components/ConstValue.tsx","../src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.tsx","../src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.tsx","../src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.tsx","../src/lib/plugins/openapi/schema/utils.ts","../src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx","../src/lib/plugins/openapi/schema/SchemaView.tsx"],"sourcesContent":["export const groupBy = <\n T extends Record<PropertyKey, any>,\n KeySelector extends (item: T) => PropertyKey,\n>(\n arr: T[],\n keySelector: KeySelector,\n): Partial<Record<ReturnType<KeySelector>, T[]>> => {\n return arr.reduce(\n (accumulator, val) => {\n const groupedKey = keySelector(val) as ReturnType<KeySelector>;\n if (!accumulator[groupedKey]) {\n accumulator[groupedKey] = [];\n }\n accumulator[groupedKey].push(val);\n return accumulator;\n },\n {} as Record<ReturnType<KeySelector>, T[]>,\n );\n};\n","import { ChevronsLeftRightIcon } from \"lucide-react\";\nimport { isValidElement, useState } from \"react\";\nimport { InlineCode } from \"../../components/InlineCode.js\";\nimport { type SchemaObject } from \"../../oas/parser/index.js\";\nimport { cn } from \"../../util/cn.js\";\n\nconst Pattern = ({ pattern }: { pattern: string }) => {\n const [isExpanded, setIsExpanded] = useState(false);\n const isExpandable = pattern.length > 20;\n const shortPattern = isExpandable ? `${pattern.slice(0, 20)}…` : pattern;\n\n return (\n <InlineCode\n className={cn(\"text-xs\", isExpandable && \"cursor-pointer\")}\n onClick={() => setIsExpanded(!isExpanded)}\n selectOnClick={false}\n >\n {isExpanded ? pattern : shortPattern}\n {isExpandable && (\n <button type=\"button\" className=\"p-1 translate-y-[2px]\">\n {!isExpanded && <ChevronsLeftRightIcon size={12} />}\n </button>\n )}\n </InlineCode>\n );\n};\n\nconst getSchemaInfos = (schema?: SchemaObject) => {\n if (!schema) return [];\n\n return [\n schema.type === \"array\" && schema.items.type\n ? Array.isArray(schema.items.type)\n ? `(${schema.items.type.join(\" | \")})[]`\n : `${schema.items.type}[]`\n : Array.isArray(schema.type)\n ? schema.type.join(\" | \")\n : schema.type,\n\n schema.enum && \"enum\",\n schema.const && \"const\",\n schema.format,\n schema.minimum && `min: ${schema.minimum}`,\n schema.maximum && `max: ${schema.maximum}`,\n schema.minLength && `minLength: ${schema.minLength}`,\n schema.maxLength && `maxLength: ${schema.maxLength}`,\n schema.minItems && `minItems: ${schema.minItems}`,\n schema.maxItems && `maxItems: ${schema.maxItems}`,\n schema.uniqueItems && \"unique\",\n schema.minProperties && `minProps: ${schema.minProperties}`,\n schema.maxProperties && `maxProps: ${schema.maxProperties}`,\n schema.readOnly && \"readOnly\",\n schema.writeOnly && \"writeOnly\",\n schema.deprecated && \"deprecated\",\n schema.pattern && (\n <>\n pattern: <Pattern pattern={schema.pattern} />\n </>\n ),\n ];\n};\n\nexport const ParamInfos = ({\n schema,\n extraItems = [],\n className,\n}: {\n schema?: SchemaObject;\n extraItems?: unknown[];\n className?: string;\n}) => {\n const filteredItems = [...getSchemaInfos(schema), ...extraItems].flatMap(\n (item) => (typeof item === \"string\" || isValidElement(item) ? item : []),\n );\n\n return (\n <span className={className}>\n {filteredItems.map((item, index) => (\n <span className=\"text-muted-foreground\" key={index}>\n {item}\n {index < filteredItems.length - 1 && (\n <span className=\"text-muted-foreground/50\">\n &nbsp;&middot;&nbsp;\n </span>\n )}\n </span>\n ))}\n </span>\n );\n};\n","import { ChevronDownIcon, ChevronUpIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { SelectOnClick } from \"./SelectOnClick.js\";\n\nexport const EnumValues = ({\n values,\n className,\n maxVisibleValues = 8,\n}: {\n values: Array<string | number>;\n className?: string;\n maxVisibleValues?: number;\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n\n if (!values.length) return null;\n\n const shouldCollapse = values.length > maxVisibleValues;\n const visibleValues =\n shouldCollapse && !isOpen ? values.slice(0, maxVisibleValues) : values;\n\n return (\n <div className={cn(\"flex flex-wrap gap-1.5 text-xs\", className)}>\n <span className=\"text-muted-foreground\">Enum values: </span>\n {visibleValues.map((value) => (\n <div key={value}>\n <SelectOnClick className=\"border rounded-sm px-1 font-mono\">\n {value}\n </SelectOnClick>\n </div>\n ))}\n {shouldCollapse && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-fit px-0\"\n onClick={() => setIsOpen(!isOpen)}\n >\n {isOpen ? (\n <div className=\"flex items-center gap-1\">\n <ChevronUpIcon size={12} />\n <span className=\"text-muted-foreground\">show less</span>\n </div>\n ) : (\n <div className=\"flex items-center gap-1\">\n <ChevronDownIcon size={12} />\n <span className=\"text-muted-foreground\">\n show {values.length - maxVisibleValues} more\n </span>\n </div>\n )}\n </Button>\n )}\n </div>\n );\n};\n","import type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { SelectOnClick } from \"../components/SelectOnClick.js\";\n\nexport const SchemaExampleAndDefault = ({\n schema,\n}: {\n schema: SchemaObject;\n}) => {\n const example = schema.examples?.at(0);\n const defaultValue = schema.default;\n\n if (example === undefined && defaultValue === undefined) return null;\n\n return (\n <div className=\"flex flex-col gap-1 text-xs\">\n {example !== undefined && (\n <div>\n <span className=\"text-muted-foreground\">Example: </span>\n <SelectOnClick className=\"border rounded-sm px-1 font-mono\">\n {typeof example === \"object\" || typeof example === \"boolean\"\n ? JSON.stringify(example)\n : example}\n </SelectOnClick>\n </div>\n )}\n {defaultValue !== undefined && (\n <div>\n <span className=\"text-muted-foreground\">Default: </span>\n <SelectOnClick className=\"border rounded-sm px-1 font-mono\">\n {typeof defaultValue === \"object\" ||\n typeof defaultValue === \"boolean\"\n ? JSON.stringify(defaultValue)\n : defaultValue}\n </SelectOnClick>\n </div>\n )}\n </div>\n );\n};\n","import type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { SelectOnClick } from \"./SelectOnClick.js\";\n\nexport const ConstValue = ({\n schema,\n hideDescription = false,\n}: {\n schema: SchemaObject;\n hideDescription?: boolean;\n}) => {\n return (\n <div className=\"flex flex-col gap-1 text-xs\">\n <div>\n <span className=\"text-muted-foreground\">Const value: </span>\n <SelectOnClick className=\"border rounded px-1 font-mono\">\n {schema.const}\n </SelectOnClick>\n {!hideDescription && schema.description && (\n <div className=\"text-muted-foreground\">{schema.description}</div>\n )}\n </div>\n </div>\n );\n};\n","import {\n ChevronDownIcon,\n CircleDotIcon,\n CircleFadingPlusIcon,\n CircleIcon,\n} from \"lucide-react\";\nimport { cn } from \"../../../../util/cn.js\";\n\nimport type { LogicalGroupType } from \"../utils.js\";\n\nconst iconMap = {\n AND: <CircleFadingPlusIcon size={16} className=\"fill-card\" />,\n OR: <CircleDotIcon size={16} className=\"fill-card\" />,\n ONE: <CircleIcon size={14} className=\"fill-card\" />,\n} as const;\n\nconst colorClass = {\n AND: \"text-green-500 dark:text-green-300/60\",\n OR: \"text-blue-400 dark:text-blue-500\",\n ONE: \"text-purple-500 dark:text-purple-300/60\",\n} as const;\n\nexport const LogicalGroupConnector = ({\n type,\n isOpen,\n className,\n schemeName,\n}: {\n type: LogicalGroupType;\n isOpen: boolean;\n className?: string;\n schemeName?: string;\n}) => {\n return (\n <div\n className={cn(\n colorClass[type],\n \"relative text-sm flex py-2\",\n \"before:border-l before:absolute before:-top-2 before:-bottom-2 before:border-border before:border-dashed before:content-['']\",\n className,\n )}\n >\n <div className=\"-translate-x-[7px] flex gap-1 items-center\">\n {iconMap[type]}\n <div\n className={cn(\n \"translate-y-px mx-px opacity-0 group-hover:opacity-100 transition\",\n !isOpen && \"-rotate-90\",\n )}\n >\n <ChevronDownIcon size={16} />\n </div>\n <span className=\"text-sm text-foreground\">{schemeName}</span>\n </div>\n </div>\n );\n};\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { useState } from \"react\";\nimport type { SchemaObject } from \"../../../../oas/parser/index.js\";\nimport { SchemaView } from \"../SchemaView.js\";\nimport type { LogicalGroupType } from \"../utils.js\";\nimport { LogicalGroupConnector } from \"./LogicalGroupConnector.js\";\n\nexport const LogicalGroupItem = (props: {\n type: LogicalGroupType;\n schema: SchemaObject;\n}) => {\n const [isOpen, setIsOpen] = useState(true);\n\n return (\n <Collapsible.Root\n open={isOpen}\n onOpenChange={() => setIsOpen((prev) => !prev)}\n className=\"group\"\n >\n <Collapsible.Trigger>\n <LogicalGroupConnector\n type={props.type}\n isOpen={isOpen}\n schemeName={props.schema.title}\n />\n </Collapsible.Trigger>\n {!isOpen && <div className=\"wavy-line bg-border translate-y-1\" />}\n <Collapsible.Content>\n <SchemaView schema={props.schema} />\n </Collapsible.Content>\n </Collapsible.Root>\n );\n};\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { SquareMinusIcon, SquarePlusIcon } from \"lucide-react\";\nimport type { SchemaObject } from \"../../../../oas/parser/index.js\";\nimport { Card } from \"../../../../ui/Card.js\";\nimport type { LogicalGroupType } from \"../utils.js\";\nimport { LogicalGroupItem } from \"./LogicalGroupItem.js\";\n\nconst typeLabel = {\n AND: \"All of\",\n OR: \"Any of\",\n ONE: \"One of\",\n};\n\nexport const LogicalGroup = ({\n schemas,\n type,\n isOpen,\n toggleOpen,\n}: {\n schemas: SchemaObject[];\n type: LogicalGroupType;\n isOpen: boolean;\n toggleOpen: () => void;\n}) => (\n <Collapsible.Root open={isOpen} onOpenChange={toggleOpen} asChild>\n <Card className=\"px-6\">\n <Collapsible.Trigger className=\"flex gap-2 items-center py-2 w-full text-sm text-muted-foreground -translate-x-1.5\">\n {isOpen ? <SquareMinusIcon size={14} /> : <SquarePlusIcon size={14} />}\n <span>{typeLabel[type]}</span>\n </Collapsible.Trigger>\n\n <Collapsible.Content className=\"pb-4\">\n {schemas.map((subSchema, index) => (\n // eslint-disable-next-line react/no-array-index-key\n <LogicalGroupItem key={index} type={type} schema={subSchema} />\n ))}\n </Collapsible.Content>\n </Card>\n </Collapsible.Root>\n);\n","import { CIRCULAR_REF } from \"../../../oas/graphql/circular.js\";\nimport type { SchemaObject } from \"../../../oas/parser/index.js\";\n\nexport const isBasicType = (\n type: unknown,\n): type is \"string\" | \"number\" | \"boolean\" | \"integer\" | \"null\" =>\n (typeof type === \"string\" &&\n [\"string\", \"number\", \"boolean\", \"integer\", \"null\"].includes(type)) ||\n (Array.isArray(type) && type.every(isBasicType));\n\nexport const isArrayType = (value: SchemaObject) =>\n value.type === \"array\" ||\n // schema.type might be an array of types, so we need to check if \"array\" is one of them\n (Array.isArray(value.type) && value.type.includes(\"array\"));\n\nexport const isComplexType = (value?: SchemaObject) =>\n value &&\n ((value.type === \"object\" &&\n Object.keys(value.properties ?? {}).length > 0) ||\n (value.type === \"array\" &&\n typeof value.items === \"object\" &&\n (!value.items.type || value.items.type === \"object\")));\n\nexport const hasLogicalGroupings = (value: SchemaObject) =>\n Boolean(value.oneOf ?? value.allOf ?? value.anyOf);\n\nexport const LogicalSchemaTypeMap = {\n allOf: \"AND\",\n anyOf: \"OR\",\n oneOf: \"ONE\",\n} as const;\n\nexport type LogicalGroupType = \"AND\" | \"OR\" | \"ONE\";\n\nexport const isCircularRef = (schema: unknown): schema is string =>\n typeof schema === \"string\" && schema.startsWith(CIRCULAR_REF);\n\nexport const isArrayCircularRef = (\n schema: SchemaObject,\n): schema is SchemaObject & { items: SchemaObject } =>\n isArrayType(schema) && \"items\" in schema && isCircularRef(schema.items);\n\nexport const extractCircularRefInfo = (\n ref?: string | SchemaObject,\n): string | undefined =>\n typeof ref === \"string\" ? ref.split(\":\")[1] : undefined;\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { MinusIcon, PlusIcon, RefreshCcwDotIcon } from \"lucide-react\";\nimport { useCallback, useState } from \"react\";\nimport { InlineCode } from \"../../../components/InlineCode.js\";\nimport { Markdown } from \"../../../components/Markdown.js\";\nimport type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { Button } from \"../../../ui/Button.js\";\nimport { objectEntries } from \"../../../util/objectEntries.js\";\nimport { ConstValue } from \"../components/ConstValue.js\";\nimport { EnumValues } from \"../components/EnumValues.js\";\nimport { SelectOnClick } from \"../components/SelectOnClick.js\";\nimport { ParamInfos } from \"../ParamInfos.js\";\nimport { LogicalGroup } from \"./LogicalGroup/LogicalGroup.js\";\nimport { SchemaExampleAndDefault } from \"./SchemaExampleAndDefault.js\";\nimport { SchemaView } from \"./SchemaView.js\";\nimport {\n extractCircularRefInfo,\n hasLogicalGroupings,\n isArrayCircularRef,\n isArrayType,\n isCircularRef,\n isComplexType,\n LogicalSchemaTypeMap,\n} from \"./utils.js\";\n\nexport const SchemaLogicalGroup = ({ schema }: { schema: SchemaObject }) => {\n const [isOpen, setIsOpen] = useState(true);\n const toggleOpen = useCallback(() => setIsOpen((prev) => !prev), []);\n\n for (const [key, type] of objectEntries(LogicalSchemaTypeMap)) {\n if (!schema[key]) continue;\n\n return (\n <LogicalGroup\n schemas={schema[key]}\n type={type}\n isOpen={isOpen}\n toggleOpen={toggleOpen}\n />\n );\n }\n};\n\nconst RecursiveIndicator = ({ circularProp }: { circularProp?: string }) => (\n <InlineCode\n className=\"inline-flex items-center gap-1.5 italic text-xs translate-y-0.5\"\n selectOnClick={false}\n >\n <RefreshCcwDotIcon size={13} />\n <span>{circularProp ? `${circularProp} (circular)` : \"circular\"}</span>\n </InlineCode>\n);\n\nexport const SchemaPropertyItem = ({\n name,\n schema,\n group,\n defaultOpen = false,\n showCollapseButton = true,\n}: {\n name: string;\n schema: SchemaObject;\n group: \"required\" | \"optional\" | \"deprecated\";\n defaultOpen?: boolean;\n showCollapseButton?: boolean;\n}) => {\n const [isOpen, setIsOpen] = useState(defaultOpen);\n\n if (isCircularRef(schema)) {\n return (\n <li className=\"p-4 bg-border/20 hover:bg-border/30\">\n <div className=\"flex flex-col gap-2.5 justify-between text-sm\">\n <div className=\"space-x-2 rtl:space-x-reverse\">\n <code>{name}</code>\n <ParamInfos\n schema={schema}\n extraItems={[<RecursiveIndicator key=\"circular-ref\" />]}\n />\n </div>\n <SchemaExampleAndDefault schema={schema} />\n </div>\n </li>\n );\n }\n\n const isCollapsible = Boolean(\n (hasLogicalGroupings(schema) ||\n isComplexType(schema) ||\n (isArrayType(schema) &&\n \"items\" in schema &&\n isComplexType(schema.items)) ||\n schema.additionalProperties) &&\n !isArrayCircularRef(schema),\n );\n\n return (\n <li className=\"p-4 bg-border/20 hover:bg-border/30\">\n <div className=\"flex flex-col gap-2.5 justify-between text-sm\">\n <div className=\"space-x-2 rtl:space-x-reverse\">\n <SelectOnClick asChild>\n <code>{name}</code>\n </SelectOnClick>\n <ParamInfos\n schema={schema}\n extraItems={[\n group !== \"optional\" && (\n <span className=\"text-primary\">required</span>\n ),\n isArrayCircularRef(schema) && (\n <RecursiveIndicator\n circularProp={extractCircularRefInfo(schema.items)}\n />\n ),\n ]}\n />\n </div>\n {schema.description && (\n <Markdown\n className=\"text-sm leading-normal\"\n content={schema.description}\n />\n )}\n {schema.type === \"array\" && \"items\" in schema && schema.items.enum && (\n <EnumValues values={schema.items.enum} />\n )}\n {schema.const && <ConstValue schema={schema} hideDescription />}\n {schema.enum && <EnumValues values={schema.enum} />}\n <SchemaExampleAndDefault schema={schema} />\n {isCollapsible && (\n <Collapsible.Root\n defaultOpen={defaultOpen}\n open={isOpen}\n onOpenChange={() => setIsOpen(!isOpen)}\n >\n {showCollapseButton && (\n <Collapsible.Trigger asChild>\n <Button variant=\"expand\" size=\"sm\">\n {isOpen ? <MinusIcon size={12} /> : <PlusIcon size={12} />}\n {!isOpen ? \"Show properties\" : \"Hide properties\"}\n </Button>\n </Collapsible.Trigger>\n )}\n <Collapsible.Content>\n <div className=\"mt-2\">\n {hasLogicalGroupings(schema) ? (\n <SchemaLogicalGroup schema={schema} />\n ) : schema.type === \"object\" ? (\n <SchemaView schema={schema} />\n ) : isArrayType(schema) && \"items\" in schema ? (\n <SchemaView schema={schema.items} />\n ) : null}\n </div>\n </Collapsible.Content>\n </Collapsible.Root>\n )}\n </div>\n </li>\n );\n};\n","import { InfoIcon } from \"lucide-react\";\nimport { Markdown } from \"../../../components/Markdown.js\";\nimport { Typography } from \"../../../components/Typography.js\";\nimport type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { Card } from \"../../../ui/Card.js\";\nimport { groupBy } from \"../../../util/groupBy.js\";\nimport { ConstValue } from \"../components/ConstValue.js\";\nimport { EnumValues } from \"../components/EnumValues.js\";\nimport { ParamInfos } from \"../ParamInfos.js\";\nimport { SchemaExampleAndDefault } from \"./SchemaExampleAndDefault.js\";\nimport {\n SchemaLogicalGroup,\n SchemaPropertyItem,\n} from \"./SchemaPropertyItem.js\";\nimport { hasLogicalGroupings, isBasicType } from \"./utils.js\";\n\nconst renderMarkdown = (content?: string) =>\n content && (\n <Markdown\n className=\"text-sm leading-normal line-clamp-4\"\n content={content}\n />\n );\n\nconst renderBasicSchema = (schema: SchemaObject) => (\n <Card className=\"p-4 space-y-2\">\n <span className=\"text-sm text-muted-foreground\">\n <ParamInfos schema={schema} />\n </span>\n {schema.enum && <EnumValues values={schema.enum} />}\n {renderMarkdown(schema.description)}\n <SchemaExampleAndDefault schema={schema} />\n </Card>\n);\n\nexport const SchemaView = ({\n schema,\n defaultOpen = false,\n cardHeader,\n}: {\n schema?: SchemaObject | null;\n defaultOpen?: boolean;\n cardHeader?: React.ReactNode;\n}) => {\n if (!schema || Object.keys(schema).length === 0) {\n return (\n <Card className=\"overflow-hidden\">\n {cardHeader}\n <div className=\"text-sm text-muted-foreground italic p-4\">\n No data returned\n </div>\n </Card>\n );\n }\n\n if (schema.const) {\n return <ConstValue schema={schema} />;\n }\n\n if (hasLogicalGroupings(schema)) {\n return <SchemaLogicalGroup schema={schema} />;\n }\n\n if (isBasicType(schema.type)) {\n return renderBasicSchema(schema);\n }\n\n if (schema.type === \"array\" && typeof schema.items === \"object\") {\n return <SchemaView schema={schema.items} />;\n }\n\n if (schema.type === \"object\") {\n const groupedProperties = groupBy(\n Object.entries(schema.properties ?? {}),\n ([propertyName, property]) => {\n return property.deprecated\n ? \"deprecated\"\n : schema.required?.includes(propertyName)\n ? \"required\"\n : \"optional\";\n },\n );\n const groupNames = [\"required\", \"optional\", \"deprecated\"] as const;\n\n const additionalProperties =\n typeof schema.additionalProperties === \"object\" ? (\n <SchemaView schema={schema.additionalProperties} />\n ) : schema.additionalProperties === true ? (\n <Typography className=\"text-sm p-4 bg-border/20 hover:bg-border/30 flex items-center gap-1\">\n <span>Additional properties are allowed</span>\n <a\n className=\"p-0.5 -m-0.5\"\n href=\"https://swagger.io/docs/specification/v3_0/data-models/dictionaries/\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n <InfoIcon size={14} />\n </a>\n </Typography>\n ) : null;\n\n return (\n <Card className=\"divide-y overflow-hidden\">\n {cardHeader}\n {groupNames.map(\n (group) =>\n groupedProperties[group] && (\n <ul key={group} className=\"divide-y\">\n {groupedProperties[group].map(([name, schema]) => (\n <SchemaPropertyItem\n key={name}\n name={name}\n schema={schema}\n group={group}\n defaultOpen={defaultOpen}\n />\n ))}\n </ul>\n ),\n )}\n {additionalProperties}\n </Card>\n );\n }\n\n return null;\n};\n"],"names":["groupBy","arr","keySelector","accumulator","val","groupedKey","Pattern","pattern","isExpanded","setIsExpanded","useState","isExpandable","shortPattern","jsxs","InlineCode","cn","jsx","ChevronsLeftRightIcon","getSchemaInfos","schema","Fragment","ParamInfos","extraItems","className","filteredItems","item","isValidElement","index","EnumValues","values","maxVisibleValues","isOpen","setIsOpen","shouldCollapse","visibleValues","value","SelectOnClick","Button","ChevronUpIcon","ChevronDownIcon","SchemaExampleAndDefault","example","defaultValue","ConstValue","hideDescription","iconMap","CircleFadingPlusIcon","CircleDotIcon","CircleIcon","colorClass","LogicalGroupConnector","type","schemeName","LogicalGroupItem","props","Collapsible","prev","SchemaView","typeLabel","LogicalGroup","schemas","toggleOpen","Card","SquareMinusIcon","SquarePlusIcon","subSchema","isBasicType","isArrayType","isComplexType","hasLogicalGroupings","LogicalSchemaTypeMap","isCircularRef","CIRCULAR_REF","isArrayCircularRef","extractCircularRefInfo","ref","SchemaLogicalGroup","useCallback","key","objectEntries","RecursiveIndicator","circularProp","RefreshCcwDotIcon","SchemaPropertyItem","name","group","defaultOpen","showCollapseButton","isCollapsible","Markdown","MinusIcon","PlusIcon","renderMarkdown","content","renderBasicSchema","cardHeader","groupedProperties","propertyName","property","groupNames","additionalProperties","Typography","InfoIcon"],"mappings":"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"}
@@ -1,17 +1,17 @@
1
1
  import { j as e } from "./jsx-runtime-C5mzlN2N.js";
2
- import { useEffect as i } from "react";
3
- import { b as m, L as x, a as h } from "./chunk-DQRVZFIR-BblmKnHy.js";
2
+ import { useEffect as n } from "react";
3
+ import { b as m, L as x, a as h } from "./chunk-DQRVZFIR-DHK7_Ilc.js";
4
4
  import { B as r } from "./Button-BE9IVkWV.js";
5
5
  import { C as o, a as c, b as l, c as d, d as u } from "./Card-DPhGbYUM.js";
6
- import { k as s } from "./hook-CHXroBFt.js";
7
- import { Button as a, Link as g } from "./zudoku.components.js";
6
+ import { d as s } from "./hook-Bd0yS8M0.js";
7
+ import { B as a, L as g } from "./index-BIbCx5Fh.js";
8
8
  const S = () => {
9
- const t = s(), [n] = m();
10
- return i(() => {
9
+ const t = s(), [i] = m();
10
+ return n(() => {
11
11
  t.authentication?.signIn({
12
- redirectTo: n.get("redirect") ?? void 0
12
+ redirectTo: i.get("redirect") ?? void 0
13
13
  });
14
- }, [t.authentication, n]), /* @__PURE__ */ e.jsx("div", { className: "flex items-center justify-center mt-8", children: /* @__PURE__ */ e.jsxs(o, { className: "max-w-md w-full", children: [
14
+ }, [t.authentication, i]), /* @__PURE__ */ e.jsx("div", { className: "flex items-center justify-center mt-8", children: /* @__PURE__ */ e.jsxs(o, { className: "max-w-md w-full", children: [
15
15
  /* @__PURE__ */ e.jsxs(c, { children: [
16
16
  /* @__PURE__ */ e.jsx(l, { className: "text-lg", children: "Sign in" }),
17
17
  /* @__PURE__ */ e.jsx(d, { children: "You're being redirected to our secure login provider to complete your sign-in process." })
@@ -29,13 +29,13 @@ const S = () => {
29
29
  ] }) })
30
30
  ] }) });
31
31
  }, y = () => {
32
- const t = s(), n = h();
33
- return i(() => {
34
- t.authentication?.signOut().then(() => n("/"));
32
+ const t = s(), i = h();
33
+ return n(() => {
34
+ t.authentication?.signOut().then(() => i("/"));
35
35
  }, []), null;
36
36
  }, b = () => {
37
37
  const t = s();
38
- return i(() => {
38
+ return n(() => {
39
39
  t.authentication?.signUp() ?? t.authentication?.signIn();
40
40
  }, [t.authentication]), /* @__PURE__ */ e.jsx("div", { className: "flex items-center justify-center mt-8", children: /* @__PURE__ */ e.jsxs(o, { className: "max-w-md w-full", children: [
41
41
  /* @__PURE__ */ e.jsxs(c, { children: [
@@ -60,4 +60,4 @@ export {
60
60
  S as a,
61
61
  b
62
62
  };
63
- //# sourceMappingURL=SignUp-B6w5AwHM.js.map
63
+ //# sourceMappingURL=SignUp-CfojO4Pb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SignUp-B6w5AwHM.js","sources":["../src/lib/authentication/components/SignIn.tsx","../src/lib/authentication/components/SignOut.tsx","../src/lib/authentication/components/SignUp.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { Link, useSearchParams } from \"react-router\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"zudoku/ui/Card.js\";\nimport { useZudoku } from \"../../components/context/ZudokuContext.js\";\n\nexport const SignIn = () => {\n const context = useZudoku();\n const [search] = useSearchParams();\n useEffect(() => {\n void context.authentication?.signIn({\n redirectTo: search.get(\"redirect\") ?? undefined,\n });\n }, [context.authentication, search]);\n\n return (\n <div className=\"flex items-center justify-center mt-8\">\n <Card className=\"max-w-md w-full\">\n <CardHeader>\n <CardTitle className=\"text-lg\">Sign in</CardTitle>\n <CardDescription>\n You're being redirected to our secure login provider to complete\n your sign-in process.\n </CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"flex flex-col gap-2 justify-center\">\n <Button\n onClick={() => context.authentication?.signIn()}\n variant=\"default\"\n >\n Login\n </Button>\n <Button variant=\"link\" className=\"text-muted-foreground\" asChild>\n <Link to=\"/\">Go home</Link>\n </Button>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n};\n","import { useEffect } from \"react\";\nimport { useNavigate } from \"react-router\";\nimport { useZudoku } from \"../../components/context/ZudokuContext.js\";\n\nexport const SignOut = () => {\n const context = useZudoku();\n const navigate = useNavigate();\n\n useEffect(() => {\n void context.authentication?.signOut().then(() => navigate(\"/\"));\n }, []);\n\n return null;\n};\n","import { useEffect } from \"react\";\nimport { Button, Link } from \"zudoku/components\";\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"zudoku/ui/Card.js\";\nimport { useZudoku } from \"../../components/context/ZudokuContext.js\";\n\nexport const SignUp = () => {\n const context = useZudoku();\n\n useEffect(() => {\n void (context.authentication?.signUp() ?? context.authentication?.signIn());\n }, [context.authentication]);\n\n return (\n <div className=\"flex items-center justify-center mt-8\">\n <Card className=\"max-w-md w-full\">\n <CardHeader>\n <CardTitle className=\"text-lg\">Sign up</CardTitle>\n <CardDescription>\n You're being redirected to our secure login provider to complete\n your sign up process.\n </CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"flex flex-col gap-2 justify-center\">\n <Button\n onClick={() => context.authentication?.signIn()}\n variant=\"default\"\n >\n Register\n </Button>\n <Button variant=\"link\" className=\"text-muted-foreground\" asChild>\n <Link to=\"/\">Go home</Link>\n </Button>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n};\n"],"names":["SignIn","context","useZudoku","search","useSearchParams","useEffect","jsxs","Card","CardHeader","jsx","CardTitle","CardDescription","CardContent","Button","Link","SignOut","navigate","useNavigate","SignUp"],"mappings":";;;;;;;AAYO,MAAMA,IAAS,MAAM;AAC1B,QAAMC,IAAUC,EAAU,GACpB,CAACC,CAAM,IAAIC,EAAgB;AACjC,SAAAC,EAAU,MAAM;AACT,IAAAJ,EAAQ,gBAAgB,OAAO;AAAA,MAClC,YAAYE,EAAO,IAAI,UAAU,KAAK;AAAA,IAAA,CACvC;AAAA,EACA,GAAA,CAACF,EAAQ,gBAAgBE,CAAM,CAAC,yBAGhC,OAAI,EAAA,WAAU,yCACb,UAACG,gBAAAA,EAAA,KAAAC,GAAA,EAAK,WAAU,mBACd,UAAA;AAAA,IAAAD,gBAAAA,OAACE,GACC,EAAA,UAAA;AAAA,MAACC,gBAAAA,EAAA,IAAAC,GAAA,EAAU,WAAU,WAAU,UAAO,WAAA;AAAA,MACtCD,gBAAAA,EAAAA,IAACE,KAAgB,UAGjB,yFAAA,CAAA;AAAA,IAAA,GACF;AAAA,IACCF,gBAAAA,MAAAG,GAAA,EACC,UAACN,gBAAAA,EAAAA,KAAA,OAAA,EAAI,WAAU,sCACb,UAAA;AAAA,MAAAG,gBAAAA,EAAA;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,SAAS,MAAMZ,EAAQ,gBAAgB,OAAO;AAAA,UAC9C,SAAQ;AAAA,UACT,UAAA;AAAA,QAAA;AAAA,MAED;AAAA,MACCQ,gBAAAA,EAAA,IAAAI,GAAA,EAAO,SAAQ,QAAO,WAAU,yBAAwB,SAAO,IAC9D,UAACJ,gBAAAA,EAAAA,IAAAK,GAAA,EAAK,IAAG,KAAI,qBAAO,EACtB,CAAA;AAAA,IAAA,EAAA,CACF,EACF,CAAA;AAAA,EAAA,EAAA,CACF,EACF,CAAA;AAEJ,GC3CaC,IAAU,MAAM;AAC3B,QAAMd,IAAUC,EAAU,GACpBc,IAAWC,EAAY;AAE7B,SAAAZ,EAAU,MAAM;AACT,IAAAJ,EAAQ,gBAAgB,QAAQ,EAAE,KAAK,MAAMe,EAAS,GAAG,CAAC;AAAA,EACjE,GAAG,EAAE,GAEE;AACT,GCFaE,IAAS,MAAM;AAC1B,QAAMjB,IAAUC,EAAU;AAE1B,SAAAG,EAAU,MAAM;AACd,IAAMJ,EAAQ,gBAAgB,OAAA,KAAYA,EAAQ,gBAAgB;EAAO,GACxE,CAACA,EAAQ,cAAc,CAAC,yBAGxB,OAAI,EAAA,WAAU,yCACb,UAACK,gBAAAA,EAAA,KAAAC,GAAA,EAAK,WAAU,mBACd,UAAA;AAAA,IAAAD,gBAAAA,OAACE,GACC,EAAA,UAAA;AAAA,MAACC,gBAAAA,EAAA,IAAAC,GAAA,EAAU,WAAU,WAAU,UAAO,WAAA;AAAA,MACtCD,gBAAAA,EAAAA,IAACE,KAAgB,UAGjB,yFAAA,CAAA;AAAA,IAAA,GACF;AAAA,IACCF,gBAAAA,MAAAG,GAAA,EACC,UAACN,gBAAAA,EAAAA,KAAA,OAAA,EAAI,WAAU,sCACb,UAAA;AAAA,MAAAG,gBAAAA,EAAA;AAAA,QAACI;AAAAA,QAAA;AAAA,UACC,SAAS,MAAMZ,EAAQ,gBAAgB,OAAO;AAAA,UAC9C,SAAQ;AAAA,UACT,UAAA;AAAA,QAAA;AAAA,MAED;AAAA,MACCQ,gBAAAA,EAAA,IAAAI,GAAA,EAAO,SAAQ,QAAO,WAAU,yBAAwB,SAAO,IAC9D,UAACJ,gBAAAA,EAAAA,IAAAK,GAAA,EAAK,IAAG,KAAI,qBAAO,EACtB,CAAA;AAAA,IAAA,EAAA,CACF,EACF,CAAA;AAAA,EAAA,EAAA,CACF,EACF,CAAA;AAEJ;"}
1
+ {"version":3,"file":"SignUp-CfojO4Pb.js","sources":["../src/lib/authentication/components/SignIn.tsx","../src/lib/authentication/components/SignOut.tsx","../src/lib/authentication/components/SignUp.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { Link, useSearchParams } from \"react-router\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"zudoku/ui/Card.js\";\nimport { useZudoku } from \"../../components/context/ZudokuContext.js\";\n\nexport const SignIn = () => {\n const context = useZudoku();\n const [search] = useSearchParams();\n useEffect(() => {\n void context.authentication?.signIn({\n redirectTo: search.get(\"redirect\") ?? undefined,\n });\n }, [context.authentication, search]);\n\n return (\n <div className=\"flex items-center justify-center mt-8\">\n <Card className=\"max-w-md w-full\">\n <CardHeader>\n <CardTitle className=\"text-lg\">Sign in</CardTitle>\n <CardDescription>\n You're being redirected to our secure login provider to complete\n your sign-in process.\n </CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"flex flex-col gap-2 justify-center\">\n <Button\n onClick={() => context.authentication?.signIn()}\n variant=\"default\"\n >\n Login\n </Button>\n <Button variant=\"link\" className=\"text-muted-foreground\" asChild>\n <Link to=\"/\">Go home</Link>\n </Button>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n};\n","import { useEffect } from \"react\";\nimport { useNavigate } from \"react-router\";\nimport { useZudoku } from \"../../components/context/ZudokuContext.js\";\n\nexport const SignOut = () => {\n const context = useZudoku();\n const navigate = useNavigate();\n\n useEffect(() => {\n void context.authentication?.signOut().then(() => navigate(\"/\"));\n }, []);\n\n return null;\n};\n","import { useEffect } from \"react\";\nimport { Button, Link } from \"zudoku/components\";\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"zudoku/ui/Card.js\";\nimport { useZudoku } from \"../../components/context/ZudokuContext.js\";\n\nexport const SignUp = () => {\n const context = useZudoku();\n\n useEffect(() => {\n void (context.authentication?.signUp() ?? context.authentication?.signIn());\n }, [context.authentication]);\n\n return (\n <div className=\"flex items-center justify-center mt-8\">\n <Card className=\"max-w-md w-full\">\n <CardHeader>\n <CardTitle className=\"text-lg\">Sign up</CardTitle>\n <CardDescription>\n You're being redirected to our secure login provider to complete\n your sign up process.\n </CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"flex flex-col gap-2 justify-center\">\n <Button\n onClick={() => context.authentication?.signIn()}\n variant=\"default\"\n >\n Register\n </Button>\n <Button variant=\"link\" className=\"text-muted-foreground\" asChild>\n <Link to=\"/\">Go home</Link>\n </Button>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n};\n"],"names":["SignIn","context","useZudoku","search","useSearchParams","useEffect","jsxs","Card","CardHeader","jsx","CardTitle","CardDescription","CardContent","Button","Link","SignOut","navigate","useNavigate","SignUp"],"mappings":";;;;;;;AAYO,MAAMA,IAAS,MAAM;AAC1B,QAAMC,IAAUC,EAAU,GACpB,CAACC,CAAM,IAAIC,EAAgB;AACjC,SAAAC,EAAU,MAAM;AACT,IAAAJ,EAAQ,gBAAgB,OAAO;AAAA,MAClC,YAAYE,EAAO,IAAI,UAAU,KAAK;AAAA,IAAA,CACvC;AAAA,EACA,GAAA,CAACF,EAAQ,gBAAgBE,CAAM,CAAC,yBAGhC,OAAI,EAAA,WAAU,yCACb,UAACG,gBAAAA,EAAA,KAAAC,GAAA,EAAK,WAAU,mBACd,UAAA;AAAA,IAAAD,gBAAAA,OAACE,GACC,EAAA,UAAA;AAAA,MAACC,gBAAAA,EAAA,IAAAC,GAAA,EAAU,WAAU,WAAU,UAAO,WAAA;AAAA,MACtCD,gBAAAA,EAAAA,IAACE,KAAgB,UAGjB,yFAAA,CAAA;AAAA,IAAA,GACF;AAAA,IACCF,gBAAAA,MAAAG,GAAA,EACC,UAACN,gBAAAA,EAAAA,KAAA,OAAA,EAAI,WAAU,sCACb,UAAA;AAAA,MAAAG,gBAAAA,EAAA;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,SAAS,MAAMZ,EAAQ,gBAAgB,OAAO;AAAA,UAC9C,SAAQ;AAAA,UACT,UAAA;AAAA,QAAA;AAAA,MAED;AAAA,MACCQ,gBAAAA,EAAA,IAAAI,GAAA,EAAO,SAAQ,QAAO,WAAU,yBAAwB,SAAO,IAC9D,UAACJ,gBAAAA,EAAAA,IAAAK,GAAA,EAAK,IAAG,KAAI,qBAAO,EACtB,CAAA;AAAA,IAAA,EAAA,CACF,EACF,CAAA;AAAA,EAAA,EAAA,CACF,EACF,CAAA;AAEJ,GC3CaC,IAAU,MAAM;AAC3B,QAAMd,IAAUC,EAAU,GACpBc,IAAWC,EAAY;AAE7B,SAAAZ,EAAU,MAAM;AACT,IAAAJ,EAAQ,gBAAgB,QAAQ,EAAE,KAAK,MAAMe,EAAS,GAAG,CAAC;AAAA,EACjE,GAAG,EAAE,GAEE;AACT,GCFaE,IAAS,MAAM;AAC1B,QAAMjB,IAAUC,EAAU;AAE1B,SAAAG,EAAU,MAAM;AACd,IAAMJ,EAAQ,gBAAgB,OAAA,KAAYA,EAAQ,gBAAgB;EAAO,GACxE,CAACA,EAAQ,cAAc,CAAC,yBAGxB,OAAI,EAAA,WAAU,yCACb,UAACK,gBAAAA,EAAA,KAAAC,GAAA,EAAK,WAAU,mBACd,UAAA;AAAA,IAAAD,gBAAAA,OAACE,GACC,EAAA,UAAA;AAAA,MAACC,gBAAAA,EAAA,IAAAC,GAAA,EAAU,WAAU,WAAU,UAAO,WAAA;AAAA,MACtCD,gBAAAA,EAAAA,IAACE,KAAgB,UAGjB,yFAAA,CAAA;AAAA,IAAA,GACF;AAAA,IACCF,gBAAAA,MAAAG,GAAA,EACC,UAACN,gBAAAA,EAAAA,KAAA,OAAA,EAAI,WAAU,sCACb,UAAA;AAAA,MAAAG,gBAAAA,EAAA;AAAA,QAACI;AAAAA,QAAA;AAAA,UACC,SAAS,MAAMZ,EAAQ,gBAAgB,OAAO;AAAA,UAC9C,SAAQ;AAAA,UACT,UAAA;AAAA,QAAA;AAAA,MAED;AAAA,MACCQ,gBAAAA,EAAA,IAAAI,GAAA,EAAO,SAAQ,QAAO,WAAU,yBAAwB,SAAO,IAC9D,UAACJ,gBAAAA,EAAAA,IAAAK,GAAA,EAAK,IAAG,KAAI,qBAAO,EACtB,CAAA;AAAA,IAAA,EAAA,CACF,EACF,CAAA;AAAA,EAAA,EAAA,CACF,EACF,CAAA;AAEJ;"}