zudoku 0.0.0-fd0986c → 0.0.0-fdf886de

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 (407) hide show
  1. package/dist/app/demo.js +1 -1
  2. package/dist/app/entry.client.js +1 -1
  3. package/dist/app/entry.server.js +1 -1
  4. package/dist/app/main.d.ts +1 -1
  5. package/dist/app/main.js +12 -6
  6. package/dist/app/main.js.map +1 -1
  7. package/dist/app/standalone.js +1 -1
  8. package/dist/config/config.d.ts +1 -0
  9. package/dist/config/validators/InputNavigationSchema.d.ts +251 -156
  10. package/dist/config/validators/InputNavigationSchema.js +5 -4
  11. package/dist/config/validators/InputNavigationSchema.js.map +1 -1
  12. package/dist/config/validators/InputNavigationSchema.test-d.js +0 -1
  13. package/dist/config/validators/InputNavigationSchema.test-d.js.map +1 -1
  14. package/dist/config/validators/NavigationSchema.js +6 -3
  15. package/dist/config/validators/NavigationSchema.js.map +1 -1
  16. package/dist/config/validators/ProtectedRoutesSchema.d.ts +13 -0
  17. package/dist/config/validators/ProtectedRoutesSchema.js +10 -0
  18. package/dist/config/validators/ProtectedRoutesSchema.js.map +1 -0
  19. package/dist/config/validators/icon-types.d.ts +1 -1
  20. package/dist/config/validators/icon-types.js +16 -0
  21. package/dist/config/validators/icon-types.js.map +1 -1
  22. package/dist/config/validators/validate.d.ts +44 -30
  23. package/dist/config/validators/validate.js +8 -2
  24. package/dist/config/validators/validate.js.map +1 -1
  25. package/dist/flat-config.d.ts +11 -7
  26. package/dist/index.d.ts +1 -0
  27. package/dist/index.js +1 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/lib/authentication/components/CallbackHandler.js +11 -9
  30. package/dist/lib/authentication/components/CallbackHandler.js.map +1 -1
  31. package/dist/lib/authentication/components/OAuthErrorPage.d.ts +3 -0
  32. package/dist/lib/authentication/components/OAuthErrorPage.js +99 -0
  33. package/dist/lib/authentication/components/OAuthErrorPage.js.map +1 -0
  34. package/dist/lib/authentication/errors.d.ts +6 -12
  35. package/dist/lib/authentication/errors.js +2 -1
  36. package/dist/lib/authentication/errors.js.map +1 -1
  37. package/dist/lib/authentication/hook.d.ts +1 -0
  38. package/dist/lib/authentication/hook.js.map +1 -1
  39. package/dist/lib/authentication/providers/azureb2c.js +4 -2
  40. package/dist/lib/authentication/providers/azureb2c.js.map +1 -1
  41. package/dist/lib/authentication/providers/clerk.js +4 -2
  42. package/dist/lib/authentication/providers/clerk.js.map +1 -1
  43. package/dist/lib/authentication/providers/openid.js +3 -1
  44. package/dist/lib/authentication/providers/openid.js.map +1 -1
  45. package/dist/lib/components/BuildCheck.d.ts +2 -1
  46. package/dist/lib/components/BuildCheck.js +9 -3
  47. package/dist/lib/components/BuildCheck.js.map +1 -1
  48. package/dist/lib/components/Header.js +1 -1
  49. package/dist/lib/components/Header.js.map +1 -1
  50. package/dist/lib/components/Heading.js +1 -1
  51. package/dist/lib/components/Heading.js.map +1 -1
  52. package/dist/lib/components/Layout.js +4 -7
  53. package/dist/lib/components/Layout.js.map +1 -1
  54. package/dist/lib/components/Markdown.js +2 -2
  55. package/dist/lib/components/Markdown.js.map +1 -1
  56. package/dist/lib/components/Meta.d.ts +2 -0
  57. package/dist/lib/components/Meta.js +11 -0
  58. package/dist/lib/components/Meta.js.map +1 -0
  59. package/dist/lib/components/MobileTopNavigation.js +5 -3
  60. package/dist/lib/components/MobileTopNavigation.js.map +1 -1
  61. package/dist/lib/components/NotFoundPage.js +1 -1
  62. package/dist/lib/components/NotFoundPage.js.map +1 -1
  63. package/dist/lib/components/TopNavigation.js +4 -3
  64. package/dist/lib/components/TopNavigation.js.map +1 -1
  65. package/dist/lib/components/Typography.d.ts +1 -1
  66. package/dist/lib/components/Typography.js +1 -1
  67. package/dist/lib/components/Typography.js.map +1 -1
  68. package/dist/lib/components/context/ZudokuContext.js +22 -14
  69. package/dist/lib/components/context/ZudokuContext.js.map +1 -1
  70. package/dist/lib/components/index.d.ts +0 -27
  71. package/dist/lib/components/index.js +0 -15
  72. package/dist/lib/components/index.js.map +1 -1
  73. package/dist/lib/components/navigation/NavigationCategory.js +1 -1
  74. package/dist/lib/components/navigation/NavigationCategory.js.map +1 -1
  75. package/dist/lib/components/navigation/NavigationItem.d.ts +1 -1
  76. package/dist/lib/components/navigation/NavigationItem.js +11 -3
  77. package/dist/lib/components/navigation/NavigationItem.js.map +1 -1
  78. package/dist/lib/components/navigation/utils.d.ts +3 -1
  79. package/dist/lib/components/navigation/utils.js +18 -14
  80. package/dist/lib/components/navigation/utils.js.map +1 -1
  81. package/dist/lib/core/RouteGuard.js +9 -9
  82. package/dist/lib/core/RouteGuard.js.map +1 -1
  83. package/dist/lib/core/ZudokuContext.d.ts +5 -1
  84. package/dist/lib/core/ZudokuContext.js +23 -1
  85. package/dist/lib/core/ZudokuContext.js.map +1 -1
  86. package/dist/lib/core/__internal.d.ts +37 -0
  87. package/dist/lib/core/__internal.js +26 -0
  88. package/dist/lib/core/__internal.js.map +1 -0
  89. package/dist/lib/core/plugins.d.ts +2 -1
  90. package/dist/lib/core/plugins.js.map +1 -1
  91. package/dist/lib/core/router.d.ts +1 -0
  92. package/dist/lib/core/router.js +2 -0
  93. package/dist/lib/core/router.js.map +1 -0
  94. package/dist/lib/errors/ErrorAlert.js +1 -1
  95. package/dist/lib/errors/ErrorAlert.js.map +1 -1
  96. package/dist/lib/plugins/api-keys/CreateApiKey.js +13 -3
  97. package/dist/lib/plugins/api-keys/CreateApiKey.js.map +1 -1
  98. package/dist/lib/plugins/api-keys/SettingsApiKeys.js +3 -1
  99. package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
  100. package/dist/lib/plugins/api-keys/index.d.ts +9 -4
  101. package/dist/lib/plugins/api-keys/index.js +3 -7
  102. package/dist/lib/plugins/api-keys/index.js.map +1 -1
  103. package/dist/lib/plugins/custom-pages/index.js +3 -0
  104. package/dist/lib/plugins/custom-pages/index.js.map +1 -1
  105. package/dist/lib/plugins/openapi/Sidecar.js +1 -1
  106. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  107. package/dist/lib/plugins/openapi/SidecarExamples.js +1 -1
  108. package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -1
  109. package/dist/lib/plugins/openapi/graphql/gql.d.ts +1 -1
  110. package/dist/lib/plugins/openapi/graphql/gql.js +1 -1
  111. package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
  112. package/dist/lib/plugins/openapi/graphql/graphql.d.ts +1 -0
  113. package/dist/lib/plugins/openapi/graphql/graphql.js +1 -0
  114. package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
  115. package/dist/lib/plugins/openapi/index.js +42 -10
  116. package/dist/lib/plugins/openapi/index.js.map +1 -1
  117. package/dist/lib/plugins/openapi/playground/PathParams.js +1 -1
  118. package/dist/lib/plugins/openapi/playground/PathParams.js.map +1 -1
  119. package/dist/lib/plugins/openapi/playground/Playground.js +4 -2
  120. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  121. package/dist/lib/shiki.d.ts +4 -0
  122. package/dist/lib/shiki.js +2 -0
  123. package/dist/lib/shiki.js.map +1 -1
  124. package/dist/lib/ui/ActionButton.js +1 -1
  125. package/dist/lib/ui/ActionButton.js.map +1 -1
  126. package/dist/lib/ui/Badge.d.ts +1 -1
  127. package/dist/lib/ui/Button.d.ts +2 -2
  128. package/dist/lib/ui/CodeBlock.js +30 -4
  129. package/dist/lib/ui/CodeBlock.js.map +1 -1
  130. package/dist/lib/ui/Command.d.ts +1 -1
  131. package/dist/lib/ui/Dialog.js +2 -2
  132. package/dist/lib/ui/Dialog.js.map +1 -1
  133. package/dist/lib/ui/EmbeddedCodeBlock.js +1 -1
  134. package/dist/lib/ui/EmbeddedCodeBlock.js.map +1 -1
  135. package/dist/lib/util/invariant.d.ts +6 -5
  136. package/dist/lib/util/invariant.js +1 -1
  137. package/dist/lib/util/invariant.js.map +1 -1
  138. package/dist/vite/config.js +6 -1
  139. package/dist/vite/config.js.map +1 -1
  140. package/dist/vite/dev-server.js +9 -1
  141. package/dist/vite/dev-server.js.map +1 -1
  142. package/dist/vite/mdx/remark-inject-filepath.d.ts +3 -0
  143. package/dist/vite/mdx/remark-inject-filepath.js +6 -0
  144. package/dist/vite/mdx/remark-inject-filepath.js.map +1 -0
  145. package/dist/vite/mdx/remark-link-rewrite.d.ts +2 -0
  146. package/dist/vite/mdx/remark-link-rewrite.js +20 -0
  147. package/dist/vite/mdx/remark-link-rewrite.js.map +1 -0
  148. package/dist/vite/mdx/remark-normalize-image-url.d.ts +2 -0
  149. package/dist/vite/mdx/remark-normalize-image-url.js +12 -0
  150. package/dist/vite/mdx/remark-normalize-image-url.js.map +1 -0
  151. package/dist/vite/{remarkStaticGeneration.d.ts → mdx/remark-static-generation.d.ts} +2 -2
  152. package/dist/vite/{remarkStaticGeneration.js → mdx/remark-static-generation.js} +1 -1
  153. package/dist/vite/mdx/remark-static-generation.js.map +1 -0
  154. package/dist/vite/plugin-config.d.ts +1 -1
  155. package/dist/vite/plugin-config.js +2 -1
  156. package/dist/vite/plugin-config.js.map +1 -1
  157. package/dist/vite/plugin-docs.js +18 -13
  158. package/dist/vite/plugin-docs.js.map +1 -1
  159. package/dist/vite/plugin-mdx.js +6 -23
  160. package/dist/vite/plugin-mdx.js.map +1 -1
  161. package/dist/vite/plugin-theme.js +80 -40
  162. package/dist/vite/plugin-theme.js.map +1 -1
  163. package/dist/vite/prerender/worker.js +5 -1
  164. package/dist/vite/prerender/worker.js.map +1 -1
  165. package/dist/vite/shadcn-registry.d.ts +4 -4
  166. package/dist/vite/sitemap.js +10 -9
  167. package/dist/vite/sitemap.js.map +1 -1
  168. package/lib/Button-B3o-2Xdf.js.map +1 -1
  169. package/lib/Card-CMDQUPM4.js.map +1 -1
  170. package/lib/CategoryHeading-DCpZu3yG.js +17 -0
  171. package/lib/CategoryHeading-DCpZu3yG.js.map +1 -0
  172. package/lib/ClientOnly-E7hGysn1.js.map +1 -1
  173. package/lib/CodeBlock-yJjjRwj-.js +98 -0
  174. package/lib/CodeBlock-yJjjRwj-.js.map +1 -0
  175. package/lib/{Command-C9AC5cf-.js → Command-CDn17s8X.js} +2 -2
  176. package/lib/{Command-C9AC5cf-.js.map → Command-CDn17s8X.js.map} +1 -1
  177. package/lib/Dialog-BrIjMmUK.js +114 -0
  178. package/lib/Dialog-BrIjMmUK.js.map +1 -0
  179. package/lib/{Drawer-DXGPOKPx.js → Drawer-DJ05s2pH.js} +86 -86
  180. package/lib/{Drawer-DXGPOKPx.js.map → Drawer-DJ05s2pH.js.map} +1 -1
  181. package/lib/{MdxPage-BI0vLjSn.js → MdxPage-BmOQ5m5g.js} +19 -18
  182. package/lib/{MdxPage-BI0vLjSn.js.map → MdxPage-BmOQ5m5g.js.map} +1 -1
  183. package/lib/OAuthErrorPage-Jv3r8wnL.js +150 -0
  184. package/lib/OAuthErrorPage-Jv3r8wnL.js.map +1 -0
  185. package/lib/{OasProvider-CK4C2QI3.js → OasProvider-CA_lpILt.js} +3 -3
  186. package/lib/{OasProvider-CK4C2QI3.js.map → OasProvider-CA_lpILt.js.map} +1 -1
  187. package/lib/{OperationList-DhA6x6qm.js → OperationList-C-TObVw6.js} +47 -44
  188. package/lib/OperationList-C-TObVw6.js.map +1 -0
  189. package/lib/{Pagination-YjKVdgm9.js → Pagination-CBiRGddW.js} +3 -3
  190. package/lib/{Pagination-YjKVdgm9.js.map → Pagination-CBiRGddW.js.map} +1 -1
  191. package/lib/RouteGuard-JLH6tCY8.js +56 -0
  192. package/lib/RouteGuard-JLH6tCY8.js.map +1 -0
  193. package/lib/RouterError-DcVonMP1.js +41 -0
  194. package/lib/RouterError-DcVonMP1.js.map +1 -0
  195. package/lib/{SchemaList-Cx9MS7Wf.js → SchemaList-BeYWvBC7.js} +15 -14
  196. package/lib/{SchemaList-Cx9MS7Wf.js.map → SchemaList-BeYWvBC7.js.map} +1 -1
  197. package/lib/{SchemaView-C6sTKWyS.js → SchemaView-CRcShewo.js} +4 -4
  198. package/lib/{SchemaView-C6sTKWyS.js.map → SchemaView-CRcShewo.js.map} +1 -1
  199. package/lib/Select-C3efYI1n.js +273 -0
  200. package/lib/Select-C3efYI1n.js.map +1 -0
  201. package/lib/{SignUp-DiDmVb3x.js → SignUp-CxBGHgba.js} +6 -6
  202. package/lib/{SignUp-DiDmVb3x.js.map → SignUp-CxBGHgba.js.map} +1 -1
  203. package/lib/{Slot-CrCBhP3G.js → Slot-DOtTvoyj.js} +2050 -2288
  204. package/lib/{Slot-CrCBhP3G.js.map → Slot-DOtTvoyj.js.map} +1 -1
  205. package/lib/Spinner-mNLZ6awP.js.map +1 -1
  206. package/lib/{SyntaxHighlight-CVe58ZSY.js → SyntaxHighlight-GR0eix_L.js} +411 -409
  207. package/lib/SyntaxHighlight-GR0eix_L.js.map +1 -0
  208. package/lib/{Toc-CpsFSXeD.js → Toc-BlcGIkXc.js} +2 -2
  209. package/lib/{Toc-CpsFSXeD.js.map → Toc-BlcGIkXc.js.map} +1 -1
  210. package/lib/ZudokuContext-BuJD7yIX.js +1286 -0
  211. package/lib/ZudokuContext-BuJD7yIX.js.map +1 -0
  212. package/lib/chunk-QMGIS6GS-DqecZ6nq.js +9204 -0
  213. package/lib/chunk-QMGIS6GS-DqecZ6nq.js.map +1 -0
  214. package/lib/{circular-OvXQH6UK.js → circular-CGTcsqA3.js} +2 -2
  215. package/lib/{circular-OvXQH6UK.js.map → circular-CGTcsqA3.js.map} +1 -1
  216. package/lib/cn-dYga0KKN.js.map +1 -1
  217. package/lib/{createServer-B5U_8E3S.js → createServer-DjgpuLne.js} +5 -5
  218. package/lib/{createServer-B5U_8E3S.js.map → createServer-DjgpuLne.js.map} +1 -1
  219. package/lib/errors-CrI3s7mR.js +45 -0
  220. package/lib/errors-CrI3s7mR.js.map +1 -0
  221. package/lib/hook-bv3iuX7X.js +247 -0
  222. package/lib/hook-bv3iuX7X.js.map +1 -0
  223. package/lib/index-CrcNWbel.js.map +1 -1
  224. package/lib/{index-BzcS9JBW.js → index-CvTWnHZF.js} +860 -938
  225. package/lib/index-CvTWnHZF.js.map +1 -0
  226. package/lib/index-DI5SPFK9.js.map +1 -1
  227. package/lib/index-DmNq2fbN.js.map +1 -1
  228. package/lib/index-DzO-Qh6S.js +1061 -0
  229. package/lib/index-DzO-Qh6S.js.map +1 -0
  230. package/lib/{index-4XtG1tlD.js → index-HarEI51d.js} +2 -2
  231. package/lib/{index-4XtG1tlD.js.map → index-HarEI51d.js.map} +1 -1
  232. package/lib/index.esm-BnYHxCYC.js +683 -0
  233. package/lib/index.esm-BnYHxCYC.js.map +1 -0
  234. package/lib/index.esm-CdzlRw50.js +1254 -0
  235. package/lib/index.esm-CdzlRw50.js.map +1 -0
  236. package/lib/{invariant-DAFpPywt.js → invariant-Bm-FVUQE.js} +2 -6
  237. package/lib/invariant-Bm-FVUQE.js.map +1 -0
  238. package/lib/jsx-runtime-C5mzlN2N.js.map +1 -1
  239. package/lib/mutation-Dy_5up8v.js +196 -0
  240. package/lib/mutation-Dy_5up8v.js.map +1 -0
  241. package/lib/processors/removeExtensions.js.map +1 -1
  242. package/lib/processors/removeParameters.js.map +1 -1
  243. package/lib/processors/removePaths.js.map +1 -1
  244. package/lib/processors/traverse.js.map +1 -1
  245. package/lib/ui/Accordion.js.map +1 -1
  246. package/lib/ui/ActionButton.js +9 -9
  247. package/lib/ui/ActionButton.js.map +1 -1
  248. package/lib/ui/Alert.js.map +1 -1
  249. package/lib/ui/AlertDialog.js.map +1 -1
  250. package/lib/ui/Badge.js.map +1 -1
  251. package/lib/ui/Breadcrumb.js.map +1 -1
  252. package/lib/ui/Button.js.map +1 -1
  253. package/lib/ui/Callout.js.map +1 -1
  254. package/lib/ui/Card.js.map +1 -1
  255. package/lib/ui/Carousel.js.map +1 -1
  256. package/lib/ui/Checkbox.js.map +1 -1
  257. package/lib/ui/CodeBlock.js +1 -1
  258. package/lib/ui/Command.js +1 -1
  259. package/lib/ui/Command.js.map +1 -1
  260. package/lib/ui/Dialog.js +56 -41
  261. package/lib/ui/Dialog.js.map +1 -1
  262. package/lib/ui/Drawer.js +1 -1
  263. package/lib/ui/DropdownMenu.js.map +1 -1
  264. package/lib/ui/EmbeddedCodeBlock.js +1 -1
  265. package/lib/ui/EmbeddedCodeBlock.js.map +1 -1
  266. package/lib/ui/Form.js +1 -1
  267. package/lib/ui/Form.js.map +1 -1
  268. package/lib/ui/HoverCard.js.map +1 -1
  269. package/lib/ui/Input.js.map +1 -1
  270. package/lib/ui/Label.js.map +1 -1
  271. package/lib/ui/Pagination.js.map +1 -1
  272. package/lib/ui/Popover.js.map +1 -1
  273. package/lib/ui/Progress.js.map +1 -1
  274. package/lib/ui/RadioGroup.js.map +1 -1
  275. package/lib/ui/ScrollArea.js.map +1 -1
  276. package/lib/ui/Select.js.map +1 -1
  277. package/lib/ui/Skeleton.js.map +1 -1
  278. package/lib/ui/Slider.js.map +1 -1
  279. package/lib/ui/Stepper.js.map +1 -1
  280. package/lib/ui/Switch.js.map +1 -1
  281. package/lib/ui/SyntaxHighlight.js +4 -4
  282. package/lib/ui/Tabs.js.map +1 -1
  283. package/lib/ui/Textarea.js.map +1 -1
  284. package/lib/ui/Toggle.js.map +1 -1
  285. package/lib/ui/ToggleGroup.js.map +1 -1
  286. package/lib/ui/Tooltip.js.map +1 -1
  287. package/lib/useExposedProps-BH9aq4MD.js +113 -0
  288. package/lib/useExposedProps-BH9aq4MD.js.map +1 -0
  289. package/lib/useLatest-hmRS46UF.js +11 -0
  290. package/lib/useLatest-hmRS46UF.js.map +1 -0
  291. package/lib/zudoku.__internal.js +2965 -0
  292. package/lib/zudoku.__internal.js.map +1 -0
  293. package/lib/zudoku.auth-auth0.js +1 -1
  294. package/lib/zudoku.auth-auth0.js.map +1 -1
  295. package/lib/zudoku.auth-azureb2c.js +46 -9880
  296. package/lib/zudoku.auth-azureb2c.js.map +1 -1
  297. package/lib/zudoku.auth-clerk.js +25 -22
  298. package/lib/zudoku.auth-clerk.js.map +1 -1
  299. package/lib/zudoku.auth-openid.js +204 -195
  300. package/lib/zudoku.auth-openid.js.map +1 -1
  301. package/lib/zudoku.auth-supabase.js +97 -0
  302. package/lib/zudoku.auth-supabase.js.map +1 -0
  303. package/lib/zudoku.components.js +21 -28
  304. package/lib/zudoku.components.js.map +1 -1
  305. package/lib/zudoku.hooks.js +7 -7
  306. package/lib/zudoku.hooks.js.map +1 -1
  307. package/lib/zudoku.icons.js.map +1 -1
  308. package/lib/zudoku.plugin-api-catalog.js +23 -22
  309. package/lib/zudoku.plugin-api-catalog.js.map +1 -1
  310. package/lib/zudoku.plugin-api-keys.js +410 -295
  311. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  312. package/lib/zudoku.plugin-custom-pages.js +8 -5
  313. package/lib/zudoku.plugin-custom-pages.js.map +1 -1
  314. package/lib/zudoku.plugin-markdown.js +1 -1
  315. package/lib/zudoku.plugin-markdown.js.map +1 -1
  316. package/lib/zudoku.plugin-openapi.js +7 -6
  317. package/lib/zudoku.plugin-openapi.js.map +1 -1
  318. package/lib/zudoku.plugin-redirect.js +3 -3
  319. package/lib/zudoku.plugin-redirect.js.map +1 -1
  320. package/lib/zudoku.plugin-search-inkeep.js.map +1 -1
  321. package/lib/zudoku.plugin-search-pagefind.js +28 -27
  322. package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
  323. package/lib/zudoku.plugins.js.map +1 -1
  324. package/lib/zudoku.router.js +123 -0
  325. package/lib/zudoku.router.js.map +1 -0
  326. package/package.json +31 -23
  327. package/src/app/demo.tsx +1 -1
  328. package/src/app/entry.client.tsx +1 -1
  329. package/src/app/entry.server.tsx +1 -1
  330. package/src/app/main.css +22 -5
  331. package/src/app/main.tsx +23 -11
  332. package/src/app/standalone.tsx +1 -1
  333. package/src/lib/authentication/components/CallbackHandler.tsx +22 -15
  334. package/src/lib/authentication/components/OAuthErrorPage.tsx +171 -0
  335. package/src/lib/authentication/errors.ts +27 -13
  336. package/src/lib/authentication/hook.ts +2 -0
  337. package/src/lib/authentication/providers/azureb2c.tsx +8 -3
  338. package/src/lib/authentication/providers/clerk.tsx +4 -1
  339. package/src/lib/authentication/providers/openid.tsx +7 -1
  340. package/src/lib/components/BuildCheck.tsx +13 -3
  341. package/src/lib/components/Header.tsx +4 -3
  342. package/src/lib/components/Heading.tsx +1 -1
  343. package/src/lib/components/Layout.tsx +2 -21
  344. package/src/lib/components/Markdown.tsx +3 -3
  345. package/src/lib/components/Meta.tsx +32 -0
  346. package/src/lib/components/MobileTopNavigation.tsx +6 -3
  347. package/src/lib/components/NotFoundPage.tsx +3 -2
  348. package/src/lib/components/TopNavigation.tsx +4 -4
  349. package/src/lib/components/Typography.tsx +1 -1
  350. package/src/lib/components/context/ZudokuContext.ts +26 -19
  351. package/src/lib/components/index.ts +0 -18
  352. package/src/lib/components/navigation/NavigationCategory.tsx +1 -1
  353. package/src/lib/components/navigation/NavigationItem.tsx +13 -3
  354. package/src/lib/components/navigation/utils.ts +21 -15
  355. package/src/lib/core/RouteGuard.tsx +13 -13
  356. package/src/lib/core/ZudokuContext.ts +37 -5
  357. package/src/lib/core/__internal.tsx +30 -0
  358. package/src/lib/core/plugins.ts +2 -1
  359. package/src/lib/core/router.ts +1 -0
  360. package/src/lib/errors/ErrorAlert.tsx +5 -7
  361. package/src/lib/plugins/api-keys/CreateApiKey.tsx +17 -3
  362. package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +21 -3
  363. package/src/lib/plugins/api-keys/index.tsx +16 -11
  364. package/src/lib/plugins/custom-pages/index.tsx +3 -0
  365. package/src/lib/plugins/openapi/Sidecar.tsx +1 -1
  366. package/src/lib/plugins/openapi/SidecarExamples.tsx +1 -1
  367. package/src/lib/plugins/openapi/graphql/gql.ts +3 -3
  368. package/src/lib/plugins/openapi/graphql/graphql.ts +2 -0
  369. package/src/lib/plugins/openapi/index.tsx +66 -16
  370. package/src/lib/plugins/openapi/playground/PathParams.tsx +1 -1
  371. package/src/lib/plugins/openapi/playground/Playground.tsx +8 -2
  372. package/src/lib/shiki.ts +2 -0
  373. package/src/lib/ui/ActionButton.tsx +3 -1
  374. package/src/lib/ui/CodeBlock.tsx +38 -13
  375. package/src/lib/ui/Dialog.tsx +12 -3
  376. package/src/lib/ui/EmbeddedCodeBlock.tsx +1 -1
  377. package/src/lib/util/invariant.ts +7 -5
  378. package/src/shiki/langs/vue-vine.js +1 -0
  379. package/dist/vite/remarkStaticGeneration.js.map +0 -1
  380. package/lib/Alert-Cig_8hW6.js +0 -161
  381. package/lib/Alert-Cig_8hW6.js.map +0 -1
  382. package/lib/CodeBlock-BaBgX9Wy.js +0 -85
  383. package/lib/CodeBlock-BaBgX9Wy.js.map +0 -1
  384. package/lib/Dialog-DMWw1doX.js +0 -99
  385. package/lib/Dialog-DMWw1doX.js.map +0 -1
  386. package/lib/OperationList-DhA6x6qm.js.map +0 -1
  387. package/lib/RouteGuard-Vnlz_t51.js +0 -737
  388. package/lib/RouteGuard-Vnlz_t51.js.map +0 -1
  389. package/lib/SyntaxHighlight-CVe58ZSY.js.map +0 -1
  390. package/lib/chunk-DQRVZFIR-DHK7_Ilc.js +0 -1839
  391. package/lib/chunk-DQRVZFIR-DHK7_Ilc.js.map +0 -1
  392. package/lib/clerk-BDZ31hjU.js +0 -25190
  393. package/lib/clerk-BDZ31hjU.js.map +0 -1
  394. package/lib/errors-DOCWNkkS.js +0 -78
  395. package/lib/errors-DOCWNkkS.js.map +0 -1
  396. package/lib/hook-CZjW2buS.js +0 -1510
  397. package/lib/hook-CZjW2buS.js.map +0 -1
  398. package/lib/index-Bm35Tkgf.js +0 -107
  399. package/lib/index-Bm35Tkgf.js.map +0 -1
  400. package/lib/index-BzcS9JBW.js.map +0 -1
  401. package/lib/index-Sb7nQNHJ.js +0 -3980
  402. package/lib/index-Sb7nQNHJ.js.map +0 -1
  403. package/lib/index.esm-Cp4wkyud.js +0 -1236
  404. package/lib/index.esm-Cp4wkyud.js.map +0 -1
  405. package/lib/invariant-DAFpPywt.js.map +0 -1
  406. package/lib/useExposedProps-BIYjecPD.js +0 -9
  407. package/lib/useExposedProps-BIYjecPD.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  import { j as t } from "./jsx-runtime-C5mzlN2N.js";
2
2
  import { ArrowLeftIcon as n, ArrowRightIcon as l } from "lucide-react";
3
- import { L as r } from "./chunk-DQRVZFIR-DHK7_Ilc.js";
3
+ import { L as r } from "./chunk-QMGIS6GS-DqecZ6nq.js";
4
4
  import { c } from "./cn-dYga0KKN.js";
5
- import { B as o } from "./index-Sb7nQNHJ.js";
5
+ import { B as o } from "./index-DzO-Qh6S.js";
6
6
  const j = ({
7
7
  prev: s,
8
8
  next: e,
@@ -34,4 +34,4 @@ const j = ({
34
34
  export {
35
35
  j as P
36
36
  };
37
- //# sourceMappingURL=Pagination-YjKVdgm9.js.map
37
+ //# sourceMappingURL=Pagination-CBiRGddW.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination-YjKVdgm9.js","sources":["../src/lib/components/Pagination.tsx"],"sourcesContent":["import { ArrowLeftIcon, ArrowRightIcon } from \"lucide-react\";\nimport { Link } from \"react-router\";\nimport { cn } from \"../util/cn.js\";\nimport { Button } from \"./index.js\";\n\nexport const Pagination = ({\n prev,\n next,\n className,\n}: {\n prev: { to: string; label: string } | undefined;\n next: { to: string; label: string } | undefined;\n className?: string;\n}) => {\n const linkClass =\n \"group transition-all p-5 space-x-1 rtl:space-x-reverse transition-all hover:text-foreground\";\n\n return (\n <div\n className={cn(\n \"flex -mx-4 text-muted-foreground font-semibold\",\n prev ? \"justify-between\" : \"justify-end\",\n className,\n )}\n data-pagefind-ignore=\"all\"\n >\n {prev && (\n <Button variant=\"ghost\" asChild>\n <Link to={prev.to} relative=\"path\" className={linkClass}>\n <ArrowLeftIcon size={14} strokeWidth={2.5} />\n <span className=\"text-lg truncate\">{prev.label}</span>\n </Link>\n </Button>\n )}\n {next && (\n <Button variant=\"ghost\" asChild>\n <Link to={next.to} relative=\"path\" className={linkClass}>\n <span className=\"text-lg truncate\">{next.label}</span>\n <ArrowRightIcon size={14} strokeWidth={2.5} />\n </Link>\n </Button>\n )}\n </div>\n );\n};\n"],"names":["Pagination","prev","next","className","linkClass","jsxs","cn","jsx","Button","Link","ArrowLeftIcon","ArrowRightIcon"],"mappings":";;;;;AAKO,MAAMA,IAAa,CAAC;AAAA,EACzB,MAAAC;AAAA,EACA,MAAAC;AAAA,EACA,WAAAC;AACF,MAIM;AACJ,QAAMC,IACJ;AAGA,SAAAC,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAL,IAAO,oBAAoB;AAAA,QAC3BE;AAAA,MACF;AAAA,MACA,wBAAqB;AAAA,MAEpB,UAAA;AAAA,QAAAF,KACEM,gBAAAA,EAAAA,IAAAC,GAAA,EAAO,SAAQ,SAAQ,SAAO,IAC7B,UAAAH,gBAAAA,EAAAA,KAACI,GAAK,EAAA,IAAIR,EAAK,IAAI,UAAS,QAAO,WAAWG,GAC5C,UAAA;AAAA,UAAAG,gBAAAA,EAAA,IAACG,GAAc,EAAA,MAAM,IAAI,aAAa,KAAK;AAAA,UAC1CH,gBAAAA,EAAA,IAAA,QAAA,EAAK,WAAU,oBAAoB,YAAK,MAAM,CAAA;AAAA,QAAA,EAAA,CACjD,EACF,CAAA;AAAA,QAEDL,KACCK,gBAAAA,EAAAA,IAACC,GAAO,EAAA,SAAQ,SAAQ,SAAO,IAC7B,UAACH,gBAAAA,EAAAA,KAAAI,GAAA,EAAK,IAAIP,EAAK,IAAI,UAAS,QAAO,WAAWE,GAC5C,UAAA;AAAA,UAAAG,gBAAAA,EAAA,IAAC,QAAK,EAAA,WAAU,oBAAoB,UAAAL,EAAK,OAAM;AAAA,UAC9CK,gBAAAA,EAAA,IAAAI,GAAA,EAAe,MAAM,IAAI,aAAa,IAAK,CAAA;AAAA,QAAA,EAAA,CAC9C,EACF,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAEJ;AAEJ;"}
1
+ {"version":3,"file":"Pagination-CBiRGddW.js","sources":["../src/lib/components/Pagination.tsx"],"sourcesContent":["import { ArrowLeftIcon, ArrowRightIcon } from \"lucide-react\";\nimport { Link } from \"react-router\";\nimport { cn } from \"../util/cn.js\";\nimport { Button } from \"./index.js\";\n\nexport const Pagination = ({\n prev,\n next,\n className,\n}: {\n prev: { to: string; label: string } | undefined;\n next: { to: string; label: string } | undefined;\n className?: string;\n}) => {\n const linkClass =\n \"group transition-all p-5 space-x-1 rtl:space-x-reverse transition-all hover:text-foreground\";\n\n return (\n <div\n className={cn(\n \"flex -mx-4 text-muted-foreground font-semibold\",\n prev ? \"justify-between\" : \"justify-end\",\n className,\n )}\n data-pagefind-ignore=\"all\"\n >\n {prev && (\n <Button variant=\"ghost\" asChild>\n <Link to={prev.to} relative=\"path\" className={linkClass}>\n <ArrowLeftIcon size={14} strokeWidth={2.5} />\n <span className=\"text-lg truncate\">{prev.label}</span>\n </Link>\n </Button>\n )}\n {next && (\n <Button variant=\"ghost\" asChild>\n <Link to={next.to} relative=\"path\" className={linkClass}>\n <span className=\"text-lg truncate\">{next.label}</span>\n <ArrowRightIcon size={14} strokeWidth={2.5} />\n </Link>\n </Button>\n )}\n </div>\n );\n};\n"],"names":["Pagination","prev","next","className","linkClass","jsxs","cn","jsx","Button","Link","ArrowLeftIcon","ArrowRightIcon"],"mappings":";;;;;AAKO,MAAMA,IAAa,CAAC;AAAA,EACzB,MAAAC;AAAA,EACA,MAAAC;AAAA,EACA,WAAAC;AACF,MAIM;AACJ,QAAMC,IACJ;AAEF,SACEC,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAL,IAAO,oBAAoB;AAAA,QAC3BE;AAAA,MAAA;AAAA,MAEF,wBAAqB;AAAA,MAEpB,UAAA;AAAA,QAAAF,KACCM,gBAAAA,EAAAA,IAACC,GAAA,EAAO,SAAQ,SAAQ,SAAO,IAC7B,UAAAH,gBAAAA,EAAAA,KAACI,GAAA,EAAK,IAAIR,EAAK,IAAI,UAAS,QAAO,WAAWG,GAC5C,UAAA;AAAA,UAAAG,gBAAAA,EAAAA,IAACG,GAAA,EAAc,MAAM,IAAI,aAAa,KAAK;AAAA,UAC3CH,gBAAAA,EAAAA,IAAC,QAAA,EAAK,WAAU,oBAAoB,YAAK,MAAA,CAAM;AAAA,QAAA,EAAA,CACjD,EAAA,CACF;AAAA,QAEDL,KACCK,gBAAAA,EAAAA,IAACC,GAAA,EAAO,SAAQ,SAAQ,SAAO,IAC7B,UAAAH,gBAAAA,EAAAA,KAACI,GAAA,EAAK,IAAIP,EAAK,IAAI,UAAS,QAAO,WAAWE,GAC5C,UAAA;AAAA,UAAAG,gBAAAA,EAAAA,IAAC,QAAA,EAAK,WAAU,oBAAoB,UAAAL,EAAK,OAAM;AAAA,UAC/CK,gBAAAA,EAAAA,IAACI,GAAA,EAAe,MAAM,IAAI,aAAa,IAAA,CAAK;AAAA,QAAA,EAAA,CAC9C,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;"}
@@ -0,0 +1,56 @@
1
+ import { j as e } from "./jsx-runtime-C5mzlN2N.js";
2
+ import { d as m, e as p } from "./ZudokuContext-BuJD7yIX.js";
3
+ import { H as h } from "./index.esm-BnYHxCYC.js";
4
+ import { createContext as f, use as g } from "react";
5
+ import { aP as x, aM as j, an as y, O as w } from "./chunk-QMGIS6GS-DqecZ6nq.js";
6
+ import { D as P, a as R, b, c as C, d as D } from "./Dialog-BrIjMmUK.js";
7
+ import { a as T } from "./hook-bv3iuX7X.js";
8
+ import { Z as E } from "./invariant-Bm-FVUQE.js";
9
+ import { u as v } from "./useLatest-hmRS46UF.js";
10
+ const O = f(!1), A = "protected", N = () => {
11
+ const o = T(), n = m(), d = x(), s = j(), l = v(s.pathname), a = g(O), { protectedRoutes: i } = n.options, r = !a && i ? Object.entries(i).find(
12
+ ([t]) => y({ path: t, end: !0 }, s.pathname)
13
+ )?.[1] : void 0, u = r !== void 0, c = u && !r({ auth: o, context: n });
14
+ if (p({
15
+ queryKey: ["login-redirect"],
16
+ queryFn: async () => (await new Promise((t) => setTimeout(t, 1200)), await n.authentication?.signIn({
17
+ redirectTo: l.current
18
+ }), !0),
19
+ enabled: typeof window < "u" && c && !o.isPending
20
+ }), c)
21
+ return /* @__PURE__ */ e.jsx(
22
+ P,
23
+ {
24
+ open: !0,
25
+ onOpenChange: (t) => {
26
+ t || d(-1);
27
+ },
28
+ children: /* @__PURE__ */ e.jsxs(R, { children: [
29
+ /* @__PURE__ */ e.jsx(b, { children: /* @__PURE__ */ e.jsx(C, { children: "Logging you in..." }) }),
30
+ /* @__PURE__ */ e.jsx(D, { children: "Please wait while we log you in." })
31
+ ] })
32
+ }
33
+ );
34
+ if (u && !o.isAuthEnabled)
35
+ throw new E("Authentication is not enabled", {
36
+ title: "Authentication is not enabled",
37
+ developerHint: "To use protectedRoutes you need authentication to be enabled"
38
+ });
39
+ return /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
40
+ a && /* @__PURE__ */ e.jsx(h, { children: /* @__PURE__ */ e.jsx(
41
+ "meta",
42
+ {
43
+ name: "pagefind",
44
+ "data-pagefind-filter": `section:${A}`,
45
+ content: "true"
46
+ }
47
+ ) }),
48
+ /* @__PURE__ */ e.jsx(w, {})
49
+ ] });
50
+ };
51
+ export {
52
+ O as B,
53
+ N as R,
54
+ A as S
55
+ };
56
+ //# sourceMappingURL=RouteGuard-JLH6tCY8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RouteGuard-JLH6tCY8.js","sources":["../src/lib/components/context/BypassProtectedRoutesContext.ts","../src/lib/core/RouteGuard.tsx"],"sourcesContent":["import { createContext } from \"react\";\n\nexport const BypassProtectedRoutesContext = createContext(false);\n","import { useQuery } from \"@tanstack/react-query\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { use } from \"react\";\nimport { matchPath, Outlet, useLocation, useNavigate } from \"react-router\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from \"zudoku/ui/Dialog.js\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport { BypassProtectedRoutesContext } from \"../components/context/BypassProtectedRoutesContext.js\";\nimport { useZudoku } from \"../components/context/ZudokuContext.js\";\nimport { ZudokuError } from \"../util/invariant.js\";\nimport { useLatest } from \"../util/useLatest.js\";\n\nexport const SEARCH_PROTECTED_SECTION = \"protected\";\n\nexport const RouteGuard = () => {\n const auth = useAuth();\n const zudoku = useZudoku();\n const navigate = useNavigate();\n const location = useLocation();\n const latestPath = useLatest(location.pathname);\n const shouldBypass = use(BypassProtectedRoutesContext);\n const { protectedRoutes } = zudoku.options;\n\n const authCheckFn =\n !shouldBypass && protectedRoutes\n ? Object.entries(protectedRoutes).find(([path]) =>\n matchPath({ path, end: true }, location.pathname),\n )?.[1]\n : undefined;\n\n const isProtectedRoute = authCheckFn !== undefined;\n const needsToSignIn =\n isProtectedRoute && !authCheckFn({ auth, context: zudoku });\n\n useQuery({\n queryKey: [\"login-redirect\"],\n queryFn: async () => {\n await new Promise((resolve) => setTimeout(resolve, 1200));\n await zudoku.authentication?.signIn({\n redirectTo: latestPath.current,\n });\n return true;\n },\n enabled: typeof window !== \"undefined\" && needsToSignIn && !auth.isPending,\n });\n\n if (needsToSignIn) {\n return (\n <Dialog\n open={true}\n onOpenChange={(open) => {\n if (!open) {\n void navigate(-1);\n }\n }}\n >\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Logging you in...</DialogTitle>\n </DialogHeader>\n <DialogDescription>\n Please wait while we log you in.\n </DialogDescription>\n </DialogContent>\n </Dialog>\n );\n }\n\n if (isProtectedRoute && !auth.isAuthEnabled) {\n throw new ZudokuError(\"Authentication is not enabled\", {\n title: \"Authentication is not enabled\",\n developerHint:\n \"To use protectedRoutes you need authentication to be enabled\",\n });\n }\n\n return (\n <>\n {shouldBypass && (\n <Helmet>\n <meta\n name=\"pagefind\"\n data-pagefind-filter={`section:${SEARCH_PROTECTED_SECTION}`}\n content=\"true\"\n />\n </Helmet>\n )}\n <Outlet />\n </>\n );\n};\n"],"names":["BypassProtectedRoutesContext","createContext","SEARCH_PROTECTED_SECTION","RouteGuard","auth","useAuth","zudoku","useZudoku","navigate","useNavigate","location","useLocation","latestPath","useLatest","shouldBypass","use","protectedRoutes","authCheckFn","path","matchPath","isProtectedRoute","needsToSignIn","useQuery","resolve","jsx","Dialog","open","DialogContent","DialogHeader","DialogTitle","DialogDescription","ZudokuError","jsxs","Fragment","Helmet","Outlet"],"mappings":";;;;;;;;;AAEO,MAAMA,IAA+BC,EAAc,EAAK,GCelDC,IAA2B,aAE3BC,IAAa,MAAM;AAC9B,QAAMC,IAAOC,EAAA,GACPC,IAASC,EAAA,GACTC,IAAWC,EAAA,GACXC,IAAWC,EAAA,GACXC,IAAaC,EAAUH,EAAS,QAAQ,GACxCI,IAAeC,EAAIf,CAA4B,GAC/C,EAAE,iBAAAgB,MAAoBV,EAAO,SAE7BW,IACJ,CAACH,KAAgBE,IACb,OAAO,QAAQA,CAAe,EAAE;AAAA,IAAK,CAAC,CAACE,CAAI,MACzCC,EAAU,EAAE,MAAAD,GAAM,KAAK,MAAQR,EAAS,QAAQ;AAAA,EAAA,IAC9C,CAAC,IACL,QAEAU,IAAmBH,MAAgB,QACnCI,IACJD,KAAoB,CAACH,EAAY,EAAE,MAAAb,GAAM,SAASE,GAAQ;AAc5D,MAZAgB,EAAS;AAAA,IACP,UAAU,CAAC,gBAAgB;AAAA,IAC3B,SAAS,aACP,MAAM,IAAI,QAAQ,CAACC,MAAY,WAAWA,GAAS,IAAI,CAAC,GACxD,MAAMjB,EAAO,gBAAgB,OAAO;AAAA,MAClC,YAAYM,EAAW;AAAA,IAAA,CACxB,GACM;AAAA,IAET,SAAS,OAAO,SAAW,OAAeS,KAAiB,CAACjB,EAAK;AAAA,EAAA,CAClE,GAEGiB;AACF,WACEG,gBAAAA,EAAAA;AAAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,cAAc,CAACC,MAAS;AACtB,UAAKA,KACElB,EAAS,EAAE;AAAA,QAEpB;AAAA,QAEA,iCAACmB,GAAA,EACC,UAAA;AAAA,UAAAH,gBAAAA,MAACI,GAAA,EACC,UAAAJ,gBAAAA,EAAAA,IAACK,GAAA,EAAY,UAAA,oBAAA,CAAiB,GAChC;AAAA,UACAL,gBAAAA,EAAAA,IAACM,KAAkB,UAAA,mCAAA,CAEnB;AAAA,QAAA,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAKN,MAAIV,KAAoB,CAAChB,EAAK;AAC5B,UAAM,IAAI2B,EAAY,iCAAiC;AAAA,MACrD,OAAO;AAAA,MACP,eACE;AAAA,IAAA,CACH;AAGH,SACEC,gBAAAA,EAAAA,KAAAC,YAAA,EACG,UAAA;AAAA,IAAAnB,2BACEoB,GAAA,EACC,UAAAV,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,wBAAsB,WAAWtB,CAAwB;AAAA,QACzD,SAAQ;AAAA,MAAA;AAAA,IAAA,GAEZ;AAAA,0BAEDiC,GAAA,CAAA,CAAO;AAAA,EAAA,GACV;AAEJ;"}
@@ -0,0 +1,41 @@
1
+ import { j as e } from "./jsx-runtime-C5mzlN2N.js";
2
+ import { aU as o, L as s, aX as t, al as a } from "./chunk-QMGIS6GS-DqecZ6nq.js";
3
+ import { UnlinkIcon as n } from "lucide-react";
4
+ import { C as i } from "./CategoryHeading-DCpZu3yG.js";
5
+ import { T as d, H as c, D as m, E as l } from "./Slot-DOtTvoyj.js";
6
+ const p = () => {
7
+ const r = o();
8
+ return /* @__PURE__ */ e.jsxs(d, { className: "h-full pt-(--padding-content-top)", children: [
9
+ /* @__PURE__ */ e.jsx(i, { children: "404" }),
10
+ /* @__PURE__ */ e.jsxs(c, { level: 1, className: "flex gap-3.5 items-center", children: [
11
+ "Page not found",
12
+ /* @__PURE__ */ e.jsx(n, { size: 24 })
13
+ ] }),
14
+ /* @__PURE__ */ e.jsxs(m, { children: [
15
+ "Start by adding a file at",
16
+ " ",
17
+ /* @__PURE__ */ e.jsxs("code", { children: [
18
+ "{DOCUMENT_ROOT}",
19
+ "/",
20
+ r["*"],
21
+ ".mdx"
22
+ ] }),
23
+ " ",
24
+ "and add some content to make this error go away. By default",
25
+ " ",
26
+ /* @__PURE__ */ e.jsx("code", { children: "DOCUMENT_ROOT" }),
27
+ " is the `pages` directory."
28
+ ] }),
29
+ /* @__PURE__ */ e.jsx("p", { children: "It seems that the page you are looking for does not exist or may have been moved. Please check the URL for any typos or use the navigation menu to find the correct page." }),
30
+ /* @__PURE__ */ e.jsx(s, { to: "/", children: "Go back home" })
31
+ ] });
32
+ };
33
+ function j() {
34
+ const r = t();
35
+ return a(r) && r.status === 404 ? /* @__PURE__ */ e.jsx(p, {}) : /* @__PURE__ */ e.jsx(l, { error: r });
36
+ }
37
+ export {
38
+ p as N,
39
+ j as R
40
+ };
41
+ //# sourceMappingURL=RouterError-DcVonMP1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RouterError-DcVonMP1.js","sources":["../src/lib/components/NotFoundPage.tsx","../src/lib/errors/RouterError.tsx"],"sourcesContent":["import { UnlinkIcon } from \"lucide-react\";\nimport { Link, useParams } from \"react-router\";\nimport { CategoryHeading } from \"./CategoryHeading.js\";\nimport { DeveloperHint } from \"./DeveloperHint.js\";\nimport { Heading } from \"./Heading.js\";\nimport { Typography } from \"./Typography.js\";\n\nexport const NotFoundPage = () => {\n const params = useParams();\n\n return (\n <Typography className=\"h-full pt-(--padding-content-top)\">\n <CategoryHeading>404</CategoryHeading>\n <Heading level={1} className=\"flex gap-3.5 items-center\">\n Page not found\n <UnlinkIcon size={24} />\n </Heading>\n <DeveloperHint>\n Start by adding a file at{\" \"}\n <code>\n {\"{DOCUMENT_ROOT}\"}/{params[\"*\"]}.mdx\n </code>{\" \"}\n and add some content to make this error go away. By default{\" \"}\n <code>DOCUMENT_ROOT</code> is the `pages` directory.\n </DeveloperHint>\n <p>\n It seems that the page you are looking for does not exist or may have\n been moved. Please check the URL for any typos or use the navigation\n menu to find the correct page.\n </p>\n <Link to=\"/\">Go back home</Link>\n </Typography>\n );\n};\n","import { isRouteErrorResponse, useRouteError } from \"react-router\";\nimport { NotFoundPage } from \"../components/NotFoundPage.js\";\nimport { ErrorAlert } from \"./ErrorAlert.js\";\n\nexport function RouterError() {\n const error = useRouteError();\n\n if (isRouteErrorResponse(error) && error.status === 404) {\n return <NotFoundPage />;\n }\n\n return <ErrorAlert error={error} />;\n}\n"],"names":["NotFoundPage","params","useParams","jsxs","Typography","jsx","CategoryHeading","Heading","UnlinkIcon","DeveloperHint","Link","RouterError","error","useRouteError","isRouteErrorResponse","ErrorAlert"],"mappings":";;;;;AAOO,MAAMA,IAAe,MAAM;AAChC,QAAMC,IAASC,EAAA;AAEf,SACEC,gBAAAA,EAAAA,KAACC,GAAA,EAAW,WAAU,qCACpB,UAAA;AAAA,IAAAC,gBAAAA,EAAAA,IAACC,KAAgB,UAAA,MAAA,CAAG;AAAA,IACpBH,gBAAAA,EAAAA,KAACI,GAAA,EAAQ,OAAO,GAAG,WAAU,6BAA4B,UAAA;AAAA,MAAA;AAAA,MAEvDF,gBAAAA,EAAAA,IAACG,GAAA,EAAW,MAAM,GAAA,CAAI;AAAA,IAAA,GACxB;AAAA,2BACCC,GAAA,EAAc,UAAA;AAAA,MAAA;AAAA,MACa;AAAA,6BACzB,QAAA,EACE,UAAA;AAAA,QAAA;AAAA,QAAkB;AAAA,QAAER,EAAO,GAAG;AAAA,QAAE;AAAA,MAAA,GACnC;AAAA,MAAQ;AAAA,MAAI;AAAA,MACgD;AAAA,MAC5DI,gBAAAA,EAAAA,IAAC,UAAK,UAAA,gBAAA,CAAa;AAAA,MAAO;AAAA,IAAA,GAC5B;AAAA,IACAA,gBAAAA,EAAAA,IAAC,OAAE,UAAA,4KAAA,CAIH;AAAA,IACAA,gBAAAA,EAAAA,IAACK,GAAA,EAAK,IAAG,KAAI,UAAA,eAAA,CAAY;AAAA,EAAA,GAC3B;AAEJ;AC7BO,SAASC,IAAc;AAC5B,QAAMC,IAAQC,EAAA;AAEd,SAAIC,EAAqBF,CAAK,KAAKA,EAAM,WAAW,4BAC1CZ,GAAA,EAAa,IAGhBK,gBAAAA,MAACU,KAAW,OAAAH,GAAc;AACnC;"}
@@ -1,13 +1,14 @@
1
1
  import { j as e } from "./jsx-runtime-C5mzlN2N.js";
2
- import { s as r } from "./index-4XtG1tlD.js";
3
- import { c as j } from "./hook-CZjW2buS.js";
4
- import { H as c } from "./RouteGuard-Vnlz_t51.js";
2
+ import { s as r } from "./index-HarEI51d.js";
3
+ import { b as j } from "./ZudokuContext-BuJD7yIX.js";
4
+ import { H as c } from "./index.esm-BnYHxCYC.js";
5
5
  import { ChevronsUpDownIcon as N, ChevronsDownUpIcon as y, ChevronRightIcon as b } from "lucide-react";
6
6
  import { B as v } from "./Button-B3o-2Xdf.js";
7
- import { u as C, a as w, C as l, b as m, c as d, g as S } from "./index-BzcS9JBW.js";
8
- import { C as A, H as p, M as H } from "./Slot-CrCBhP3G.js";
9
- import { T as I } from "./Toc-CpsFSXeD.js";
10
- import { S as z } from "./SchemaView-C6sTKWyS.js";
7
+ import { u as C, a as w, C as m, b as l, c as d, g as S } from "./index-CvTWnHZF.js";
8
+ import { C as A } from "./CategoryHeading-DCpZu3yG.js";
9
+ import { H as p, M as H } from "./Slot-DOtTvoyj.js";
10
+ import { T as I } from "./Toc-BlcGIkXc.js";
11
+ import { S as z } from "./SchemaView-CRcShewo.js";
11
12
  const T = S(
12
13
  /* GraphQL */
13
14
  `
@@ -27,7 +28,7 @@ const T = S(
27
28
  }
28
29
  `
29
30
  );
30
- function D() {
31
+ function G() {
31
32
  const { input: h, type: x, versions: u, version: a, options: o } = C(), f = w(T, {
32
33
  input: h,
33
34
  type: x
@@ -47,7 +48,7 @@ function D() {
47
48
  /* @__PURE__ */ e.jsx("meta", { name: "description", content: "List of schemas used by the API." })
48
49
  ] }),
49
50
  /* @__PURE__ */ e.jsxs("div", { className: "pt-(--padding-content-top) pb-(--padding-content-bottom)", children: [
50
- /* @__PURE__ */ e.jsxs(l, { className: "w-full", children: [
51
+ /* @__PURE__ */ e.jsxs(m, { className: "w-full", children: [
51
52
  /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col gap-y-4 sm:flex-row justify-around items-start sm:items-end", children: [
52
53
  /* @__PURE__ */ e.jsxs("div", { className: "flex-1", children: [
53
54
  /* @__PURE__ */ e.jsx(A, { children: t.schema.title }),
@@ -69,7 +70,7 @@ function D() {
69
70
  }
70
71
  )
71
72
  ] }),
72
- t.schema.description && /* @__PURE__ */ e.jsxs(m, { className: "flex items-center gap-1 text-sm font-medium text-muted-foreground group", children: [
73
+ t.schema.description && /* @__PURE__ */ e.jsxs(l, { className: "flex items-center gap-1 text-sm font-medium text-muted-foreground group", children: [
73
74
  /* @__PURE__ */ e.jsx("span", { children: "API information" }),
74
75
  /* @__PURE__ */ e.jsx(
75
76
  N,
@@ -96,7 +97,7 @@ function D() {
96
97
  ) }) })
97
98
  ] }),
98
99
  /* @__PURE__ */ e.jsx("hr", { className: "my-8" }),
99
- /* @__PURE__ */ e.jsx("div", { className: "flex flex-col gap-y-5", children: n.map((s) => /* @__PURE__ */ e.jsxs(l, { className: "group", defaultOpen: !0, children: [
100
+ /* @__PURE__ */ e.jsx("div", { className: "flex flex-col gap-y-5", children: n.map((s) => /* @__PURE__ */ e.jsxs(m, { className: "group", defaultOpen: !0, children: [
100
101
  /* @__PURE__ */ e.jsxs(
101
102
  p,
102
103
  {
@@ -107,7 +108,7 @@ function D() {
107
108
  children: [
108
109
  s.name,
109
110
  " ",
110
- /* @__PURE__ */ e.jsx(m, { asChild: !0, children: /* @__PURE__ */ e.jsx(v, { variant: "ghost", size: "icon", className: "size-6", children: /* @__PURE__ */ e.jsx(
111
+ /* @__PURE__ */ e.jsx(l, { asChild: !0, children: /* @__PURE__ */ e.jsx(v, { variant: "ghost", size: "icon", className: "size-6", children: /* @__PURE__ */ e.jsx(
111
112
  b,
112
113
  {
113
114
  size: 16,
@@ -144,6 +145,6 @@ function D() {
144
145
  ] });
145
146
  }
146
147
  export {
147
- D as SchemaList
148
+ G as SchemaList
148
149
  };
149
- //# sourceMappingURL=SchemaList-Cx9MS7Wf.js.map
150
+ //# sourceMappingURL=SchemaList-BeYWvBC7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaList-Cx9MS7Wf.js","sources":["../src/lib/plugins/openapi/SchemaList.tsx"],"sourcesContent":["import slugify from \"@sindresorhus/slugify\";\nimport { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport {\n ChevronRightIcon,\n ChevronsDownUpIcon,\n ChevronsUpDownIcon,\n} from \"lucide-react\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"zudoku/ui/Collapsible.js\";\nimport { CategoryHeading } from \"../../components/CategoryHeading.js\";\nimport { Heading } from \"../../components/Heading.js\";\nimport { Markdown } from \"../../components/Markdown.js\";\nimport { Toc } from \"../../components/navigation/Toc.js\";\nimport { useCreateQuery } from \"./client/useCreateQuery.js\";\nimport { useOasConfig } from \"./context.js\";\nimport { graphql } from \"./graphql/gql.js\";\nimport { SchemaView } from \"./schema/SchemaView.js\";\n\nconst GET_SCHEMAS = graphql(/* GraphQL */ `\n query GetSchemas($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n title\n description\n summary\n components {\n schemas {\n name\n schema\n extensions\n }\n }\n }\n }\n`);\n\nexport function SchemaList() {\n const { input, type, versions, version, options } = useOasConfig();\n const schemasQuery = useCreateQuery(GET_SCHEMAS, {\n input,\n type,\n });\n const { data } = useSuspenseQuery(schemasQuery);\n\n const schemas = data.schema.components?.schemas ?? [];\n const hasMultipleVersions = Object.entries(versions).length > 1;\n const showVersions =\n options?.showVersionSelect === \"always\" ||\n (hasMultipleVersions && options?.showVersionSelect !== \"hide\");\n\n if (!schemas.length) {\n return (\n <div>\n <Helmet>\n <title>Schemas {showVersions ? version : \"\"}</title>\n <meta name=\"description\" content=\"List of schemas used by the API.\" />\n </Helmet>\n No schemas found\n </div>\n );\n }\n\n return (\n <div\n className=\"grid grid-cols-(--sidecar-grid-cols) gap-8 justify-between\"\n data-pagefind-filter=\"section:openapi\"\n data-pagefind-meta=\"section:openapi\"\n >\n <Helmet>\n <title>Schemas {showVersions ? version : \"\"}</title>\n <meta name=\"description\" content=\"List of schemas used by the API.\" />\n </Helmet>\n <div className=\"pt-(--padding-content-top) pb-(--padding-content-bottom)\">\n <Collapsible className=\"w-full\">\n <div className=\"flex flex-col gap-y-4 sm:flex-row justify-around items-start sm:items-end\">\n <div className=\"flex-1\">\n <CategoryHeading>{data.schema.title}</CategoryHeading>\n <Heading\n level={1}\n id=\"schemas\"\n registerNavigationAnchor\n className=\"mb-0\"\n >\n Schemas\n {showVersions && (\n <span className=\"text-xl text-muted-foreground ms-1.5\">\n ({version})\n </span>\n )}\n </Heading>\n </div>\n {data.schema.description && (\n <CollapsibleTrigger className=\"flex items-center gap-1 text-sm font-medium text-muted-foreground group\">\n <span>API information</span>\n <ChevronsUpDownIcon\n className=\"group-data-[state=open]:hidden translate-y-px\"\n size={14}\n />\n <ChevronsDownUpIcon\n className=\"group-data-[state=closed]:hidden translate-y-px\"\n size={13}\n />\n </CollapsibleTrigger>\n )}\n </div>\n {data.schema.description && (\n <CollapsibleContent className=\"CollapsibleContent\">\n <div className=\"mt-4 max-w-full border rounded-sm bg-muted/25\">\n <Markdown\n className=\"max-w-full prose-img:max-w-prose border-border p-3 lg:p-5\"\n content={data.schema.description}\n />\n </div>\n </CollapsibleContent>\n )}\n </Collapsible>\n <hr className=\"my-8\" />\n <div className=\"flex flex-col gap-y-5\">\n {schemas.map((schema) => (\n <Collapsible key={schema.name} className=\"group\" defaultOpen>\n <Heading\n registerNavigationAnchor\n level={2}\n className=\"flex items-center gap-1 justify-between w-fit\"\n id={slugify(schema.name)}\n >\n {schema.name}{\" \"}\n <CollapsibleTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className=\"size-6\">\n <ChevronRightIcon\n size={16}\n className=\"group-data-[state=open]:rotate-90 transition cursor-pointer\"\n />\n </Button>\n </CollapsibleTrigger>\n </Heading>\n <CollapsibleContent className=\"mt-4 CollapsibleContent\">\n <SchemaView schema={schema.schema} />\n </CollapsibleContent>\n </Collapsible>\n ))}\n </div>\n </div>\n <Toc\n entries={schemas.map((schema) => ({\n id: slugify(schema.name),\n value: schema.name,\n depth: 1,\n }))}\n />\n </div>\n );\n}\n"],"names":["GET_SCHEMAS","graphql","SchemaList","input","type","versions","version","options","useOasConfig","schemasQuery","useCreateQuery","data","useSuspenseQuery","schemas","hasMultipleVersions","showVersions","jsxs","Helmet","jsx","Collapsible","CategoryHeading","Heading","CollapsibleTrigger","ChevronsUpDownIcon","ChevronsDownUpIcon","CollapsibleContent","Markdown","schema","slugify","Button","ChevronRightIcon","SchemaView","Toc"],"mappings":"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"}
1
+ {"version":3,"file":"SchemaList-BeYWvBC7.js","sources":["../src/lib/plugins/openapi/SchemaList.tsx"],"sourcesContent":["import slugify from \"@sindresorhus/slugify\";\nimport { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport {\n ChevronRightIcon,\n ChevronsDownUpIcon,\n ChevronsUpDownIcon,\n} from \"lucide-react\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"zudoku/ui/Collapsible.js\";\nimport { CategoryHeading } from \"../../components/CategoryHeading.js\";\nimport { Heading } from \"../../components/Heading.js\";\nimport { Markdown } from \"../../components/Markdown.js\";\nimport { Toc } from \"../../components/navigation/Toc.js\";\nimport { useCreateQuery } from \"./client/useCreateQuery.js\";\nimport { useOasConfig } from \"./context.js\";\nimport { graphql } from \"./graphql/gql.js\";\nimport { SchemaView } from \"./schema/SchemaView.js\";\n\nconst GET_SCHEMAS = graphql(/* GraphQL */ `\n query GetSchemas($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n title\n description\n summary\n components {\n schemas {\n name\n schema\n extensions\n }\n }\n }\n }\n`);\n\nexport function SchemaList() {\n const { input, type, versions, version, options } = useOasConfig();\n const schemasQuery = useCreateQuery(GET_SCHEMAS, {\n input,\n type,\n });\n const { data } = useSuspenseQuery(schemasQuery);\n\n const schemas = data.schema.components?.schemas ?? [];\n const hasMultipleVersions = Object.entries(versions).length > 1;\n const showVersions =\n options?.showVersionSelect === \"always\" ||\n (hasMultipleVersions && options?.showVersionSelect !== \"hide\");\n\n if (!schemas.length) {\n return (\n <div>\n <Helmet>\n <title>Schemas {showVersions ? version : \"\"}</title>\n <meta name=\"description\" content=\"List of schemas used by the API.\" />\n </Helmet>\n No schemas found\n </div>\n );\n }\n\n return (\n <div\n className=\"grid grid-cols-(--sidecar-grid-cols) gap-8 justify-between\"\n data-pagefind-filter=\"section:openapi\"\n data-pagefind-meta=\"section:openapi\"\n >\n <Helmet>\n <title>Schemas {showVersions ? version : \"\"}</title>\n <meta name=\"description\" content=\"List of schemas used by the API.\" />\n </Helmet>\n <div className=\"pt-(--padding-content-top) pb-(--padding-content-bottom)\">\n <Collapsible className=\"w-full\">\n <div className=\"flex flex-col gap-y-4 sm:flex-row justify-around items-start sm:items-end\">\n <div className=\"flex-1\">\n <CategoryHeading>{data.schema.title}</CategoryHeading>\n <Heading\n level={1}\n id=\"schemas\"\n registerNavigationAnchor\n className=\"mb-0\"\n >\n Schemas\n {showVersions && (\n <span className=\"text-xl text-muted-foreground ms-1.5\">\n ({version})\n </span>\n )}\n </Heading>\n </div>\n {data.schema.description && (\n <CollapsibleTrigger className=\"flex items-center gap-1 text-sm font-medium text-muted-foreground group\">\n <span>API information</span>\n <ChevronsUpDownIcon\n className=\"group-data-[state=open]:hidden translate-y-px\"\n size={14}\n />\n <ChevronsDownUpIcon\n className=\"group-data-[state=closed]:hidden translate-y-px\"\n size={13}\n />\n </CollapsibleTrigger>\n )}\n </div>\n {data.schema.description && (\n <CollapsibleContent className=\"CollapsibleContent\">\n <div className=\"mt-4 max-w-full border rounded-sm bg-muted/25\">\n <Markdown\n className=\"max-w-full prose-img:max-w-prose border-border p-3 lg:p-5\"\n content={data.schema.description}\n />\n </div>\n </CollapsibleContent>\n )}\n </Collapsible>\n <hr className=\"my-8\" />\n <div className=\"flex flex-col gap-y-5\">\n {schemas.map((schema) => (\n <Collapsible key={schema.name} className=\"group\" defaultOpen>\n <Heading\n registerNavigationAnchor\n level={2}\n className=\"flex items-center gap-1 justify-between w-fit\"\n id={slugify(schema.name)}\n >\n {schema.name}{\" \"}\n <CollapsibleTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className=\"size-6\">\n <ChevronRightIcon\n size={16}\n className=\"group-data-[state=open]:rotate-90 transition cursor-pointer\"\n />\n </Button>\n </CollapsibleTrigger>\n </Heading>\n <CollapsibleContent className=\"mt-4 CollapsibleContent\">\n <SchemaView schema={schema.schema} />\n </CollapsibleContent>\n </Collapsible>\n ))}\n </div>\n </div>\n <Toc\n entries={schemas.map((schema) => ({\n id: slugify(schema.name),\n value: schema.name,\n depth: 1,\n }))}\n />\n </div>\n );\n}\n"],"names":["GET_SCHEMAS","graphql","SchemaList","input","type","versions","version","options","useOasConfig","schemasQuery","useCreateQuery","data","useSuspenseQuery","schemas","hasMultipleVersions","showVersions","jsxs","Helmet","jsx","Collapsible","CategoryHeading","Heading","CollapsibleTrigger","ChevronsUpDownIcon","ChevronsDownUpIcon","CollapsibleContent","Markdown","schema","slugify","Button","ChevronRightIcon","SchemaView","Toc"],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  import { j as s } from "./jsx-runtime-C5mzlN2N.js";
2
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-CrCBhP3G.js";
3
+ import { I as O, S as x, M as v, T as F } from "./Slot-DOtTvoyj.js";
4
4
  import { Card as m } from "./ui/Card.js";
5
5
  import { isValidElement as _, useState as p, useCallback as J } from "react";
6
6
  import { B as U } from "./Button-B3o-2Xdf.js";
7
7
  import { c as u } from "./cn-dYga0KKN.js";
8
8
  import * as d from "@radix-ui/react-collapsible";
9
9
  import { Button as V } from "./ui/Button.js";
10
- import { o as K } from "./index-Sb7nQNHJ.js";
11
- import { C as W } from "./circular-OvXQH6UK.js";
10
+ import { o as K } from "./index-DzO-Qh6S.js";
11
+ import { C as W } from "./circular-CGTcsqA3.js";
12
12
  const H = (e, t) => e.reduce(
13
13
  (r, n) => {
14
14
  const i = t(n);
@@ -363,4 +363,4 @@ export {
363
363
  H as g,
364
364
  y as i
365
365
  };
366
- //# sourceMappingURL=SchemaView-C6sTKWyS.js.map
366
+ //# sourceMappingURL=SchemaView-CRcShewo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaView-C6sTKWyS.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
+ {"version":3,"file":"SchemaView-CRcShewo.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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"}