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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (818) hide show
  1. package/client.d.ts +8 -0
  2. package/dist/app/entry.server.js +14 -1
  3. package/dist/app/entry.server.js.map +1 -1
  4. package/dist/app/main.d.ts +91 -1
  5. package/dist/app/main.js +5 -1
  6. package/dist/app/main.js.map +1 -1
  7. package/dist/app/sentry.js +1 -1
  8. package/dist/cli/common/version-check.js +12 -3
  9. package/dist/cli/common/version-check.js.map +1 -1
  10. package/dist/config/config.d.ts +15 -44
  11. package/dist/config/validators/BuildSchema.d.ts +5 -4
  12. package/dist/config/validators/BuildSchema.js +23 -5
  13. package/dist/config/validators/BuildSchema.js.map +1 -1
  14. package/dist/config/validators/InputNavigationSchema.d.ts +83 -81
  15. package/dist/config/validators/InputNavigationSchema.js +1 -0
  16. package/dist/config/validators/InputNavigationSchema.js.map +1 -1
  17. package/dist/config/validators/NavigationSchema.js +8 -5
  18. package/dist/config/validators/NavigationSchema.js.map +1 -1
  19. package/dist/config/validators/ProtectedRoutesSchema.d.ts +1 -1
  20. package/dist/config/validators/validate.d.ts +243 -20
  21. package/dist/config/validators/validate.js +52 -10
  22. package/dist/config/validators/validate.js.map +1 -1
  23. package/dist/config/validators/validate.test.js +43 -0
  24. package/dist/config/validators/validate.test.js.map +1 -1
  25. package/dist/flat-config.d.ts +39 -4
  26. package/dist/index.d.ts +2 -1
  27. package/dist/index.js +2 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/lib/auth/issuer.js +3 -0
  30. package/dist/lib/auth/issuer.js.map +1 -1
  31. package/dist/lib/authentication/authentication.d.ts +19 -10
  32. package/dist/lib/authentication/components/CallbackHandler.js +1 -1
  33. package/dist/lib/authentication/components/CallbackHandler.js.map +1 -1
  34. package/dist/lib/authentication/components/OAuthErrorPage.js +1 -1
  35. package/dist/lib/authentication/components/OAuthErrorPage.js.map +1 -1
  36. package/dist/lib/authentication/components/SignIn.js +8 -5
  37. package/dist/lib/authentication/components/SignIn.js.map +1 -1
  38. package/dist/lib/authentication/components/SignOut.js +6 -6
  39. package/dist/lib/authentication/components/SignOut.js.map +1 -1
  40. package/dist/lib/authentication/components/SignUp.js +7 -5
  41. package/dist/lib/authentication/components/SignUp.js.map +1 -1
  42. package/dist/lib/authentication/hook.d.ts +5 -2
  43. package/dist/lib/authentication/hook.js +22 -8
  44. package/dist/lib/authentication/hook.js.map +1 -1
  45. package/dist/lib/authentication/providers/auth0.js +18 -9
  46. package/dist/lib/authentication/providers/auth0.js.map +1 -1
  47. package/dist/lib/authentication/providers/azureb2c.d.ts +4 -4
  48. package/dist/lib/authentication/providers/azureb2c.js +3 -3
  49. package/dist/lib/authentication/providers/azureb2c.js.map +1 -1
  50. package/dist/lib/authentication/providers/clerk.js +2 -24
  51. package/dist/lib/authentication/providers/clerk.js.map +1 -1
  52. package/dist/lib/authentication/providers/firebase.d.ts +4 -0
  53. package/dist/lib/authentication/providers/firebase.js +273 -0
  54. package/dist/lib/authentication/providers/firebase.js.map +1 -0
  55. package/dist/lib/authentication/providers/openid.d.ts +7 -7
  56. package/dist/lib/authentication/providers/openid.js +3 -3
  57. package/dist/lib/authentication/providers/openid.js.map +1 -1
  58. package/dist/lib/authentication/providers/supabase/SupabaseAuthUI.d.ts +8 -0
  59. package/dist/lib/authentication/providers/supabase/SupabaseAuthUI.js +39 -0
  60. package/dist/lib/authentication/providers/supabase/SupabaseAuthUI.js.map +1 -0
  61. package/dist/lib/authentication/providers/supabase.js +36 -46
  62. package/dist/lib/authentication/providers/supabase.js.map +1 -1
  63. package/dist/lib/authentication/state.d.ts +1 -5
  64. package/dist/lib/authentication/state.js +2 -14
  65. package/dist/lib/authentication/state.js.map +1 -1
  66. package/dist/lib/authentication/ui/EmailVerificationUi.d.ts +4 -0
  67. package/dist/lib/authentication/ui/EmailVerificationUi.js +34 -0
  68. package/dist/lib/authentication/ui/EmailVerificationUi.js.map +1 -0
  69. package/dist/lib/authentication/ui/ZudokuAuthUi.d.ts +29 -0
  70. package/dist/lib/authentication/ui/ZudokuAuthUi.js +160 -0
  71. package/dist/lib/authentication/ui/ZudokuAuthUi.js.map +1 -0
  72. package/dist/lib/authentication/ui/icons/Apple.d.ts +3 -0
  73. package/dist/lib/authentication/ui/icons/Apple.js +4 -0
  74. package/dist/lib/authentication/ui/icons/Apple.js.map +1 -0
  75. package/dist/lib/authentication/ui/icons/Facebook.d.ts +3 -0
  76. package/dist/lib/authentication/ui/icons/Facebook.js +4 -0
  77. package/dist/lib/authentication/ui/icons/Facebook.js.map +1 -0
  78. package/dist/lib/authentication/ui/icons/Github.d.ts +3 -0
  79. package/dist/lib/authentication/ui/icons/Github.js +4 -0
  80. package/dist/lib/authentication/ui/icons/Github.js.map +1 -0
  81. package/dist/lib/authentication/ui/icons/Google.d.ts +3 -0
  82. package/dist/lib/authentication/ui/icons/Google.js +4 -0
  83. package/dist/lib/authentication/ui/icons/Google.js.map +1 -0
  84. package/dist/lib/authentication/ui/icons/Microsoft.d.ts +3 -0
  85. package/dist/lib/authentication/ui/icons/Microsoft.js +4 -0
  86. package/dist/lib/authentication/ui/icons/Microsoft.js.map +1 -0
  87. package/dist/lib/authentication/ui/icons/X.d.ts +3 -0
  88. package/dist/lib/authentication/ui/icons/X.js +4 -0
  89. package/dist/lib/authentication/ui/icons/X.js.map +1 -0
  90. package/dist/lib/authentication/utils/relativeRedirectUrl.d.ts +1 -0
  91. package/dist/lib/authentication/utils/relativeRedirectUrl.js +8 -0
  92. package/dist/lib/authentication/utils/relativeRedirectUrl.js.map +1 -0
  93. package/dist/lib/components/Autocomplete.d.ts +3 -1
  94. package/dist/lib/components/Autocomplete.js +6 -2
  95. package/dist/lib/components/Autocomplete.js.map +1 -1
  96. package/dist/lib/components/Heading.d.ts +1 -1
  97. package/dist/lib/components/Layout.js +3 -2
  98. package/dist/lib/components/Layout.js.map +1 -1
  99. package/dist/lib/components/Mermaid.d.ts +7 -0
  100. package/dist/lib/components/Mermaid.js +42 -0
  101. package/dist/lib/components/Mermaid.js.map +1 -0
  102. package/dist/lib/components/PagefindSearchMeta.d.ts +8 -0
  103. package/dist/lib/components/PagefindSearchMeta.js +7 -0
  104. package/dist/lib/components/PagefindSearchMeta.js.map +1 -0
  105. package/dist/lib/components/Pagination.js +2 -2
  106. package/dist/lib/components/Pagination.js.map +1 -1
  107. package/dist/lib/components/Zudoku.js +5 -8
  108. package/dist/lib/components/Zudoku.js.map +1 -1
  109. package/dist/lib/components/index.d.ts +7 -2
  110. package/dist/lib/components/index.js +4 -0
  111. package/dist/lib/components/index.js.map +1 -1
  112. package/dist/lib/components/navigation/NavigationItem.js +4 -4
  113. package/dist/lib/components/navigation/NavigationItem.js.map +1 -1
  114. package/dist/lib/components/navigation/Toc.js +1 -1
  115. package/dist/lib/components/navigation/Toc.js.map +1 -1
  116. package/dist/lib/core/RouteGuard.d.ts +1 -1
  117. package/dist/lib/core/RouteGuard.js +22 -25
  118. package/dist/lib/core/RouteGuard.js.map +1 -1
  119. package/dist/lib/core/ZudokuContext.d.ts +1 -0
  120. package/dist/lib/core/ZudokuContext.js +2 -0
  121. package/dist/lib/core/ZudokuContext.js.map +1 -1
  122. package/dist/lib/core/__internal.d.ts +1 -1
  123. package/dist/lib/core/plugins.d.ts +3 -3
  124. package/dist/lib/core/react-query.d.ts +1 -0
  125. package/dist/lib/core/react-query.js +2 -0
  126. package/dist/lib/core/react-query.js.map +1 -0
  127. package/dist/lib/errors/ErrorAlert.js +1 -1
  128. package/dist/lib/errors/ErrorMessage.d.ts +3 -0
  129. package/dist/lib/errors/ErrorMessage.js +16 -0
  130. package/dist/lib/errors/ErrorMessage.js.map +1 -0
  131. package/dist/lib/errors/RouterError.d.ts +3 -1
  132. package/dist/lib/errors/RouterError.js +3 -2
  133. package/dist/lib/errors/RouterError.js.map +1 -1
  134. package/dist/lib/hooks/index.d.ts +4 -2
  135. package/dist/lib/oas/graphql/circular.d.ts +2 -0
  136. package/dist/lib/oas/graphql/circular.js +32 -10
  137. package/dist/lib/oas/graphql/circular.js.map +1 -1
  138. package/dist/lib/oas/graphql/circular.test.d.ts +1 -0
  139. package/dist/lib/oas/graphql/circular.test.js +152 -0
  140. package/dist/lib/oas/graphql/circular.test.js.map +1 -0
  141. package/dist/lib/oas/graphql/index.js +7 -3
  142. package/dist/lib/oas/graphql/index.js.map +1 -1
  143. package/dist/lib/oas/parser/index.d.ts +1 -0
  144. package/dist/lib/oas/parser/index.js +7 -3
  145. package/dist/lib/oas/parser/index.js.map +1 -1
  146. package/dist/lib/plugins/api-keys/ProtectedRoute.js +4 -1
  147. package/dist/lib/plugins/api-keys/ProtectedRoute.js.map +1 -1
  148. package/dist/lib/plugins/api-keys/SettingsApiKeys.js +9 -172
  149. package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
  150. package/dist/lib/plugins/api-keys/index.d.ts +11 -4
  151. package/dist/lib/plugins/api-keys/index.js +36 -22
  152. package/dist/lib/plugins/api-keys/index.js.map +1 -1
  153. package/dist/lib/plugins/api-keys/settings/ApiKeyItem.d.ts +12 -0
  154. package/dist/lib/plugins/api-keys/settings/ApiKeyItem.js +133 -0
  155. package/dist/lib/plugins/api-keys/settings/ApiKeyItem.js.map +1 -0
  156. package/dist/lib/plugins/api-keys/settings/ApiKeyList.d.ts +4 -0
  157. package/dist/lib/plugins/api-keys/settings/ApiKeyList.js +33 -0
  158. package/dist/lib/plugins/api-keys/settings/ApiKeyList.js.map +1 -0
  159. package/dist/lib/plugins/api-keys/settings/RevealApiKey.d.ts +6 -0
  160. package/dist/lib/plugins/api-keys/settings/RevealApiKey.js +39 -0
  161. package/dist/lib/plugins/api-keys/settings/RevealApiKey.js.map +1 -0
  162. package/dist/lib/plugins/markdown/MdxPage.d.ts +2 -1
  163. package/dist/lib/plugins/markdown/MdxPage.js +3 -2
  164. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  165. package/dist/lib/plugins/markdown/index.d.ts +1 -0
  166. package/dist/lib/plugins/markdown/index.js +1 -1
  167. package/dist/lib/plugins/markdown/index.js.map +1 -1
  168. package/dist/lib/plugins/openapi/CollapsibleCode.d.ts +1 -0
  169. package/dist/lib/plugins/openapi/CollapsibleCode.js +2 -1
  170. package/dist/lib/plugins/openapi/CollapsibleCode.js.map +1 -1
  171. package/dist/lib/plugins/openapi/DownloadSchemaButton.d.ts +3 -0
  172. package/dist/lib/plugins/openapi/DownloadSchemaButton.js +47 -0
  173. package/dist/lib/plugins/openapi/DownloadSchemaButton.js.map +1 -0
  174. package/dist/lib/plugins/openapi/Endpoint.js +3 -6
  175. package/dist/lib/plugins/openapi/Endpoint.js.map +1 -1
  176. package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.d.ts +5 -0
  177. package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.js +10 -0
  178. package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.js.map +1 -0
  179. package/dist/lib/plugins/openapi/OasProvider.js +22 -13
  180. package/dist/lib/plugins/openapi/OasProvider.js.map +1 -1
  181. package/dist/lib/plugins/openapi/OperationList.js +20 -6
  182. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  183. package/dist/lib/plugins/openapi/OperationListItem.d.ts +2 -1
  184. package/dist/lib/plugins/openapi/OperationListItem.js +4 -3
  185. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  186. package/dist/lib/plugins/openapi/ParamInfos.js +1 -0
  187. package/dist/lib/plugins/openapi/ParamInfos.js.map +1 -1
  188. package/dist/lib/plugins/openapi/ParameterList.js +7 -4
  189. package/dist/lib/plugins/openapi/ParameterList.js.map +1 -1
  190. package/dist/lib/plugins/openapi/ParameterListItem.js +17 -6
  191. package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
  192. package/dist/lib/plugins/openapi/RequestBodySidecarBox.d.ts +9 -2
  193. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js +5 -2
  194. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js.map +1 -1
  195. package/dist/lib/plugins/openapi/ResponsesSidecarBox.d.ts +4 -2
  196. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +26 -4
  197. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
  198. package/dist/lib/plugins/openapi/SchemaList.js +2 -1
  199. package/dist/lib/plugins/openapi/SchemaList.js.map +1 -1
  200. package/dist/lib/plugins/openapi/Sidecar.d.ts +2 -2
  201. package/dist/lib/plugins/openapi/Sidecar.js +64 -28
  202. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  203. package/dist/lib/plugins/openapi/SidecarBox.js +4 -4
  204. package/dist/lib/plugins/openapi/SidecarBox.js.map +1 -1
  205. package/dist/lib/plugins/openapi/SidecarExamples.d.ts +9 -2
  206. package/dist/lib/plugins/openapi/SidecarExamples.js +24 -43
  207. package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -1
  208. package/dist/lib/plugins/openapi/components/ConstValue.js +1 -1
  209. package/dist/lib/plugins/openapi/components/ConstValue.js.map +1 -1
  210. package/dist/lib/plugins/openapi/components/EnumValues.js +1 -1
  211. package/dist/lib/plugins/openapi/components/EnumValues.js.map +1 -1
  212. package/dist/lib/plugins/openapi/components/NonHighlightedCode.d.ts +4 -0
  213. package/dist/lib/plugins/openapi/components/NonHighlightedCode.js +5 -0
  214. package/dist/lib/plugins/openapi/components/NonHighlightedCode.js.map +1 -0
  215. package/dist/lib/plugins/openapi/components/ResponseContent.js +5 -6
  216. package/dist/lib/plugins/openapi/components/ResponseContent.js.map +1 -1
  217. package/dist/lib/plugins/openapi/index.js +15 -14
  218. package/dist/lib/plugins/openapi/index.js.map +1 -1
  219. package/dist/lib/plugins/openapi/interfaces.d.ts +29 -13
  220. package/dist/lib/plugins/openapi/playground/BodyPanel.js +67 -15
  221. package/dist/lib/plugins/openapi/playground/BodyPanel.js.map +1 -1
  222. package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js +2 -2
  223. package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js.map +1 -1
  224. package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js +1 -1
  225. package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js.map +1 -1
  226. package/dist/lib/plugins/openapi/playground/Headers.js +23 -83
  227. package/dist/lib/plugins/openapi/playground/Headers.js.map +1 -1
  228. package/dist/lib/plugins/openapi/playground/ParamsGrid.d.ts +10 -2
  229. package/dist/lib/plugins/openapi/playground/ParamsGrid.js +8 -1
  230. package/dist/lib/plugins/openapi/playground/ParamsGrid.js.map +1 -1
  231. package/dist/lib/plugins/openapi/playground/PathParams.js +2 -3
  232. package/dist/lib/plugins/openapi/playground/PathParams.js.map +1 -1
  233. package/dist/lib/plugins/openapi/playground/Playground.d.ts +7 -0
  234. package/dist/lib/plugins/openapi/playground/Playground.js +70 -28
  235. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  236. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +3 -2
  237. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js.map +1 -1
  238. package/dist/lib/plugins/openapi/playground/QueryParams.js +16 -40
  239. package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
  240. package/dist/lib/plugins/openapi/playground/RequestLoginDialog.d.ts +2 -1
  241. package/dist/lib/plugins/openapi/playground/RequestLoginDialog.js +10 -2
  242. package/dist/lib/plugins/openapi/playground/RequestLoginDialog.js.map +1 -1
  243. package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.d.ts +8 -0
  244. package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.js +19 -0
  245. package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.js.map +1 -0
  246. package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.js +1 -1
  247. package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.js.map +1 -1
  248. package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.d.ts +1 -0
  249. package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.js +540 -0
  250. package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.js.map +1 -0
  251. package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.d.ts +40 -0
  252. package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.js +205 -0
  253. package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.js.map +1 -0
  254. package/dist/lib/plugins/openapi/playground/result-panel/Highlight.d.ts +1 -1
  255. package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.js +1 -1
  256. package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.js.map +1 -1
  257. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +23 -21
  258. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js.map +1 -1
  259. package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js +1 -1
  260. package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js.map +1 -1
  261. package/dist/lib/plugins/openapi/playground/useRememberSkipLoginDialog.js +2 -0
  262. package/dist/lib/plugins/openapi/playground/useRememberSkipLoginDialog.js.map +1 -1
  263. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js +1 -1
  264. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js.map +1 -1
  265. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js +17 -8
  266. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js.map +1 -1
  267. package/dist/lib/plugins/openapi/schema/SchemaView.d.ts +1 -1
  268. package/dist/lib/plugins/openapi/schema/SchemaView.js +31 -16
  269. package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
  270. package/dist/lib/plugins/openapi/schema/UnionView.js +2 -5
  271. package/dist/lib/plugins/openapi/schema/UnionView.js.map +1 -1
  272. package/dist/lib/plugins/openapi/schema/union-helpers.js +0 -1
  273. package/dist/lib/plugins/openapi/schema/union-helpers.js.map +1 -1
  274. package/dist/lib/plugins/openapi/schema/utils.d.ts +2 -2
  275. package/dist/lib/plugins/openapi/schema/utils.js +11 -3
  276. package/dist/lib/plugins/openapi/schema/utils.js.map +1 -1
  277. package/dist/lib/plugins/openapi/util/createHttpSnippet.js +24 -1
  278. package/dist/lib/plugins/openapi/util/createHttpSnippet.js.map +1 -1
  279. package/dist/lib/plugins/openapi/util/generateSchemaExample.js +9 -11
  280. package/dist/lib/plugins/openapi/util/generateSchemaExample.js.map +1 -1
  281. package/dist/lib/plugins/openapi/util/getRoutes.d.ts +6 -1
  282. package/dist/lib/plugins/openapi/util/getRoutes.js +29 -2
  283. package/dist/lib/plugins/openapi/util/getRoutes.js.map +1 -1
  284. package/dist/lib/plugins/search-pagefind/IndexingDialog.d.ts +3 -0
  285. package/dist/lib/plugins/search-pagefind/IndexingDialog.js +64 -0
  286. package/dist/lib/plugins/search-pagefind/IndexingDialog.js.map +1 -0
  287. package/dist/lib/plugins/search-pagefind/PagefindSearch.js +22 -5
  288. package/dist/lib/plugins/search-pagefind/PagefindSearch.js.map +1 -1
  289. package/dist/lib/plugins/search-pagefind/ResultList.js +5 -4
  290. package/dist/lib/plugins/search-pagefind/ResultList.js.map +1 -1
  291. package/dist/lib/shiki.d.ts +2 -2
  292. package/dist/lib/shiki.js +31 -14
  293. package/dist/lib/shiki.js.map +1 -1
  294. package/dist/lib/ui/Badge.d.ts +3 -3
  295. package/dist/lib/ui/Badge.js +9 -7
  296. package/dist/lib/ui/Badge.js.map +1 -1
  297. package/dist/lib/ui/Button.d.ts +2 -2
  298. package/dist/lib/ui/Button.js +10 -8
  299. package/dist/lib/ui/Button.js.map +1 -1
  300. package/dist/lib/ui/ButtonGroup.d.ts +11 -0
  301. package/dist/lib/ui/ButtonGroup.js +28 -0
  302. package/dist/lib/ui/ButtonGroup.js.map +1 -0
  303. package/dist/lib/ui/Callout.d.ts +5 -5
  304. package/dist/lib/ui/Callout.js +5 -5
  305. package/dist/lib/ui/Callout.js.map +1 -1
  306. package/dist/lib/ui/Checkbox.d.ts +2 -2
  307. package/dist/lib/ui/Checkbox.js +4 -4
  308. package/dist/lib/ui/Checkbox.js.map +1 -1
  309. package/dist/lib/ui/CodeBlock.d.ts +0 -1
  310. package/dist/lib/ui/CodeBlock.js +1 -1
  311. package/dist/lib/ui/CodeBlock.js.map +1 -1
  312. package/dist/lib/ui/Collapsible.d.ts +4 -4
  313. package/dist/lib/ui/Collapsible.js +11 -4
  314. package/dist/lib/ui/Collapsible.js.map +1 -1
  315. package/dist/lib/ui/Command.d.ts +3 -3
  316. package/dist/lib/ui/Command.js +2 -2
  317. package/dist/lib/ui/Command.js.map +1 -1
  318. package/dist/lib/ui/Dialog.d.ts +12 -18
  319. package/dist/lib/ui/Dialog.js +30 -17
  320. package/dist/lib/ui/Dialog.js.map +1 -1
  321. package/dist/lib/ui/DropdownMenu.d.ts +21 -23
  322. package/dist/lib/ui/DropdownMenu.js +47 -32
  323. package/dist/lib/ui/DropdownMenu.js.map +1 -1
  324. package/dist/lib/ui/EmbeddedCodeBlock.d.ts +3 -2
  325. package/dist/lib/ui/EmbeddedCodeBlock.js +4 -3
  326. package/dist/lib/ui/EmbeddedCodeBlock.js.map +1 -1
  327. package/dist/lib/ui/Frame.d.ts +8 -0
  328. package/dist/lib/ui/Frame.js +22 -0
  329. package/dist/lib/ui/Frame.js.map +1 -0
  330. package/dist/lib/ui/Item.d.ts +23 -0
  331. package/dist/lib/ui/Item.js +67 -0
  332. package/dist/lib/ui/Item.js.map +1 -0
  333. package/dist/lib/ui/Kbd.d.ts +3 -0
  334. package/dist/lib/ui/Kbd.js +10 -0
  335. package/dist/lib/ui/Kbd.js.map +1 -0
  336. package/dist/lib/ui/NativeSelect.d.ts +5 -0
  337. package/dist/lib/ui/NativeSelect.js +14 -0
  338. package/dist/lib/ui/NativeSelect.js.map +1 -0
  339. package/dist/lib/ui/ReactComponentDoc.d.ts +1 -1
  340. package/dist/lib/ui/ReactComponentDoc.js +2 -2
  341. package/dist/lib/ui/ReactComponentDoc.js.map +1 -1
  342. package/dist/lib/ui/Select.d.ts +13 -11
  343. package/dist/lib/ui/Select.js +34 -23
  344. package/dist/lib/ui/Select.js.map +1 -1
  345. package/dist/lib/ui/Separator.d.ts +4 -0
  346. package/dist/lib/ui/Separator.js +8 -0
  347. package/dist/lib/ui/Separator.js.map +1 -0
  348. package/dist/lib/ui/SyntaxHighlight.d.ts +1 -0
  349. package/dist/lib/ui/SyntaxHighlight.js.map +1 -1
  350. package/dist/lib/ui/Tooltip.d.ts +7 -7
  351. package/dist/lib/ui/Tooltip.js +16 -10
  352. package/dist/lib/ui/Tooltip.js.map +1 -1
  353. package/dist/lib/util/MdxComponents.d.ts +3 -1
  354. package/dist/lib/util/MdxComponents.js +5 -2
  355. package/dist/lib/util/MdxComponents.js.map +1 -1
  356. package/dist/lib/util/createVariantComponent.d.ts +5 -2
  357. package/dist/lib/util/createVariantComponent.js +5 -2
  358. package/dist/lib/util/createVariantComponent.js.map +1 -1
  359. package/dist/lib/util/flattenAllOf.d.ts +4 -0
  360. package/dist/lib/util/flattenAllOf.js +88 -0
  361. package/dist/lib/util/flattenAllOf.js.map +1 -0
  362. package/dist/lib/util/flattenAllOf.test.d.ts +1 -0
  363. package/dist/lib/util/flattenAllOf.test.js +587 -0
  364. package/dist/lib/util/flattenAllOf.test.js.map +1 -0
  365. package/dist/lib/util/invariant.d.ts +1 -1
  366. package/dist/lib/util/invariant.js +2 -2
  367. package/dist/lib/util/invariant.js.map +1 -1
  368. package/dist/lib/util/readFrontmatter.d.ts +6 -0
  369. package/dist/lib/util/readFrontmatter.js +12 -0
  370. package/dist/lib/util/readFrontmatter.js.map +1 -0
  371. package/dist/lib/util/syncZustandState.d.ts +5 -0
  372. package/dist/lib/util/syncZustandState.js +14 -0
  373. package/dist/lib/util/syncZustandState.js.map +1 -0
  374. package/dist/vite/api/SchemaManager.d.ts +9 -1
  375. package/dist/vite/api/SchemaManager.js +58 -21
  376. package/dist/vite/api/SchemaManager.js.map +1 -1
  377. package/dist/vite/api/SchemaManager.test.js +69 -2
  378. package/dist/vite/api/SchemaManager.test.js.map +1 -1
  379. package/dist/vite/config.js +13 -1
  380. package/dist/vite/config.js.map +1 -1
  381. package/dist/vite/dev-server.js +25 -0
  382. package/dist/vite/dev-server.js.map +1 -1
  383. package/dist/vite/error-handler.js +1 -5
  384. package/dist/vite/error-handler.js.map +1 -1
  385. package/dist/vite/mdx/remark-last-modified.js +57 -3
  386. package/dist/vite/mdx/remark-last-modified.js.map +1 -1
  387. package/dist/vite/mdx/remark-link-rewrite.js +1 -1
  388. package/dist/vite/pagefind-dev-index.d.ts +16 -0
  389. package/dist/vite/pagefind-dev-index.js +68 -0
  390. package/dist/vite/pagefind-dev-index.js.map +1 -0
  391. package/dist/vite/plugin-api-keys.js +5 -1
  392. package/dist/vite/plugin-api-keys.js.map +1 -1
  393. package/dist/vite/plugin-api.js +55 -8
  394. package/dist/vite/plugin-api.js.map +1 -1
  395. package/dist/vite/plugin-docs.js +1 -1
  396. package/dist/vite/plugin-docs.js.map +1 -1
  397. package/dist/vite/plugin-frontmatter.js +3 -5
  398. package/dist/vite/plugin-frontmatter.js.map +1 -1
  399. package/dist/vite/plugin-markdown-export.js +8 -7
  400. package/dist/vite/plugin-markdown-export.js.map +1 -1
  401. package/dist/vite/plugin-mdx.js +36 -30
  402. package/dist/vite/plugin-mdx.js.map +1 -1
  403. package/dist/vite/plugin-theme.js +10 -1
  404. package/dist/vite/plugin-theme.js.map +1 -1
  405. package/dist/vite/prerender/prerender.js +1 -19
  406. package/dist/vite/prerender/prerender.js.map +1 -1
  407. package/dist/vite/prerender/utils.d.ts +2 -0
  408. package/dist/vite/prerender/utils.js +30 -0
  409. package/dist/vite/prerender/utils.js.map +1 -0
  410. package/dist/vite/prerender/worker.js +3 -0
  411. package/dist/vite/prerender/worker.js.map +1 -1
  412. package/dist/vite/zuplo.d.ts +13 -0
  413. package/dist/vite/zuplo.js +15 -0
  414. package/dist/vite/zuplo.js.map +1 -0
  415. package/lib/ActionButton-B0CXL1Lq.js +25 -0
  416. package/lib/ActionButton-B0CXL1Lq.js.map +1 -0
  417. package/lib/Button-GUVe7pmt.js +54 -0
  418. package/lib/Button-GUVe7pmt.js.map +1 -0
  419. package/lib/{Card-KFniaZn5.js → Card-DCdq37aA.js} +2 -2
  420. package/lib/{Card-KFniaZn5.js.map → Card-DCdq37aA.js.map} +1 -1
  421. package/lib/ClaudeLogo-DHxJUhN_.js +69 -0
  422. package/lib/ClaudeLogo-DHxJUhN_.js.map +1 -0
  423. package/lib/{Command-CJY6q3PF.js → Command-N6VujV30.js} +26 -26
  424. package/lib/Command-N6VujV30.js.map +1 -0
  425. package/lib/Dialog-hlvmmQ_c.js +144 -0
  426. package/lib/Dialog-hlvmmQ_c.js.map +1 -0
  427. package/lib/{Drawer-Ci7XwhqT.js → Drawer-Ch7927PF.js} +7 -7
  428. package/lib/{Drawer-Ci7XwhqT.js.map → Drawer-Ch7927PF.js.map} +1 -1
  429. package/lib/DropdownMenu-DN0jNrjj.js +104 -0
  430. package/lib/DropdownMenu-DN0jNrjj.js.map +1 -0
  431. package/lib/Frame-DKlOmSkU.js +205 -0
  432. package/lib/Frame-DKlOmSkU.js.map +1 -0
  433. package/lib/HydrationBoundary-CNF2ZV3E.js +601 -0
  434. package/lib/HydrationBoundary-CNF2ZV3E.js.map +1 -0
  435. package/lib/IndexingDialog-D0YdGfbn.js +100 -0
  436. package/lib/IndexingDialog-D0YdGfbn.js.map +1 -0
  437. package/lib/Input-Cx-GeKoF.js +22 -0
  438. package/lib/Input-Cx-GeKoF.js.map +1 -0
  439. package/lib/MdxPage-CD36PJ17.js +210 -0
  440. package/lib/MdxPage-CD36PJ17.js.map +1 -0
  441. package/lib/Mermaid-Koc3z8mU.js +102 -0
  442. package/lib/Mermaid-Koc3z8mU.js.map +1 -0
  443. package/lib/{OAuthErrorPage-DJUOdr6Q.js → OAuthErrorPage-4mN5DA86.js} +16 -16
  444. package/lib/OAuthErrorPage-4mN5DA86.js.map +1 -0
  445. package/lib/OasProvider-DSe-hk5Y.js +40 -0
  446. package/lib/OasProvider-DSe-hk5Y.js.map +1 -0
  447. package/lib/OperationList-CaknPbvq.js +5823 -0
  448. package/lib/OperationList-CaknPbvq.js.map +1 -0
  449. package/lib/RouteGuard--A04ESy8.js +77 -0
  450. package/lib/RouteGuard--A04ESy8.js.map +1 -0
  451. package/lib/{SchemaList-1eLKXqn8.js → SchemaList-Dw3-CJPb.js} +28 -27
  452. package/lib/SchemaList-Dw3-CJPb.js.map +1 -0
  453. package/lib/SchemaView-DyJkiQkD.js +438 -0
  454. package/lib/SchemaView-DyJkiQkD.js.map +1 -0
  455. package/lib/Secret-BDBqq4p3.js +243 -0
  456. package/lib/Secret-BDBqq4p3.js.map +1 -0
  457. package/lib/Separator-BXt1LYnm.js +27 -0
  458. package/lib/Separator-BXt1LYnm.js.map +1 -0
  459. package/lib/SignUp-DRvN-8cq.js +50 -0
  460. package/lib/SignUp-DRvN-8cq.js.map +1 -0
  461. package/lib/{SyntaxHighlight-B0laqAqK.js → SyntaxHighlight-klTH8c6-.js} +1781 -1697
  462. package/lib/SyntaxHighlight-klTH8c6-.js.map +1 -0
  463. package/lib/{Toc-KzXCRqrX.js → Toc-PbuF-u9x.js} +6 -6
  464. package/lib/Toc-PbuF-u9x.js.map +1 -0
  465. package/lib/ZudokuContext-BZB1TWdT.js +387 -0
  466. package/lib/ZudokuContext-BZB1TWdT.js.map +1 -0
  467. package/lib/___vite-browser-external_commonjs-proxy-BttVsNON.js +9 -0
  468. package/lib/___vite-browser-external_commonjs-proxy-BttVsNON.js.map +1 -0
  469. package/lib/chunk-EPOLDU6W-C6C8jAwd.js +8558 -0
  470. package/lib/chunk-EPOLDU6W-C6C8jAwd.js.map +1 -0
  471. package/lib/{circular-D6wbrxuf.js → circular-DFquXeY2.js} +6459 -6030
  472. package/lib/circular-DFquXeY2.js.map +1 -0
  473. package/lib/{cn-dYga0KKN.js → cn-5-Gd1Dss.js} +531 -498
  474. package/lib/cn-5-Gd1Dss.js.map +1 -0
  475. package/lib/createServer-BXZ0CAUn.js +16693 -0
  476. package/lib/createServer-BXZ0CAUn.js.map +1 -0
  477. package/lib/createVariantComponent-Dc0vtOvr.js +18 -0
  478. package/lib/createVariantComponent-Dc0vtOvr.js.map +1 -0
  479. package/lib/{errors-XqO6MsfU.js → errors-rWHkzVTd.js} +3 -3
  480. package/lib/{errors-XqO6MsfU.js.map → errors-rWHkzVTd.js.map} +1 -1
  481. package/lib/firebase-BmGU1FuD.js +7614 -0
  482. package/lib/firebase-BmGU1FuD.js.map +1 -0
  483. package/lib/hook-BGlHBdET.js +52 -0
  484. package/lib/hook-BGlHBdET.js.map +1 -0
  485. package/lib/{ErrorAlert-VBJ8aHH7.js → index-BDsEwofZ.js} +5503 -4505
  486. package/lib/index-BDsEwofZ.js.map +1 -0
  487. package/lib/index-BQB9hb6n.js +3677 -0
  488. package/lib/index-BQB9hb6n.js.map +1 -0
  489. package/lib/index-CrcNWbel.js.map +1 -1
  490. package/lib/index-DBjOT2H1.js +133 -0
  491. package/lib/index-DBjOT2H1.js.map +1 -0
  492. package/lib/{index-C5L4favO.js → index-DRBOFufT.js} +2 -2
  493. package/lib/{index-C5L4favO.js.map → index-DRBOFufT.js.map} +1 -1
  494. package/lib/index.esm-BYObtETB.js.map +1 -1
  495. package/lib/{index.esm-BnYHxCYC.js → index.esm-B_0dvNjB.js} +20 -20
  496. package/lib/{index.esm-BnYHxCYC.js.map → index.esm-B_0dvNjB.js.map} +1 -1
  497. package/lib/index.esm-Cx8B1YJQ.js +34 -0
  498. package/lib/index.esm-Cx8B1YJQ.js.map +1 -0
  499. package/lib/{invariant-Bm-FVUQE.js → invariant-BJAl77rw.js} +6 -6
  500. package/lib/invariant-BJAl77rw.js.map +1 -0
  501. package/lib/jsx-runtime-BzflLqGi.js.map +1 -1
  502. package/lib/{mutation-CdGPxHNX.js → mutation-BISOc7OM.js} +70 -44
  503. package/lib/mutation-BISOc7OM.js.map +1 -0
  504. package/lib/ui/Accordion.js +1 -1
  505. package/lib/ui/ActionButton.js +2 -2
  506. package/lib/ui/Alert.js +1 -1
  507. package/lib/ui/AlertDialog.js +1 -1
  508. package/lib/ui/Badge.js +27 -13
  509. package/lib/ui/Badge.js.map +1 -1
  510. package/lib/ui/Breadcrumb.js +1 -1
  511. package/lib/ui/Button.js +28 -25
  512. package/lib/ui/Button.js.map +1 -1
  513. package/lib/ui/ButtonGroup.js +77 -0
  514. package/lib/ui/ButtonGroup.js.map +1 -0
  515. package/lib/ui/Callout.js +19 -19
  516. package/lib/ui/Callout.js.map +1 -1
  517. package/lib/ui/Card.js +1 -1
  518. package/lib/ui/Carousel.js +1 -1
  519. package/lib/ui/Carousel.js.map +1 -1
  520. package/lib/ui/Checkbox.js +29 -26
  521. package/lib/ui/Checkbox.js.map +1 -1
  522. package/lib/ui/CodeBlock.js +217 -7
  523. package/lib/ui/CodeBlock.js.map +1 -1
  524. package/lib/ui/Collapsible.js +32 -5
  525. package/lib/ui/Collapsible.js.map +1 -1
  526. package/lib/ui/Command.js +5 -5
  527. package/lib/ui/Command.js.map +1 -1
  528. package/lib/ui/Dialog.js +136 -106
  529. package/lib/ui/Dialog.js.map +1 -1
  530. package/lib/ui/Drawer.js +3 -3
  531. package/lib/ui/DropdownMenu.js +227 -140
  532. package/lib/ui/DropdownMenu.js.map +1 -1
  533. package/lib/ui/EmbeddedCodeBlock.js +36 -32
  534. package/lib/ui/EmbeddedCodeBlock.js.map +1 -1
  535. package/lib/ui/Form.js +1 -1
  536. package/lib/ui/Frame.js +81 -0
  537. package/lib/ui/Frame.js.map +1 -0
  538. package/lib/ui/HoverCard.js +1 -1
  539. package/lib/ui/Input.js +1 -1
  540. package/lib/ui/Item.js +188 -0
  541. package/lib/ui/Item.js.map +1 -0
  542. package/lib/ui/Kbd.js +32 -0
  543. package/lib/ui/Kbd.js.map +1 -0
  544. package/lib/ui/Label.js +1 -1
  545. package/lib/ui/NativeSelect.js +57 -0
  546. package/lib/ui/NativeSelect.js.map +1 -0
  547. package/lib/ui/Pagination.js +1 -1
  548. package/lib/ui/Popover.js +1 -1
  549. package/lib/ui/Progress.js +1 -1
  550. package/lib/ui/RadioGroup.js +1 -1
  551. package/lib/ui/ReactComponentDoc.js +13 -13
  552. package/lib/ui/ReactComponentDoc.js.map +1 -1
  553. package/lib/ui/ScrollArea.js +1 -1
  554. package/lib/ui/Secret.js +1 -1
  555. package/lib/ui/Select.js +166 -116
  556. package/lib/ui/Select.js.map +1 -1
  557. package/lib/ui/Separator.js +27 -0
  558. package/lib/ui/Separator.js.map +1 -0
  559. package/lib/ui/Skeleton.js +1 -1
  560. package/lib/ui/Slider.js +1 -1
  561. package/lib/ui/Switch.js +1 -1
  562. package/lib/ui/SyntaxHighlight.js +4 -4
  563. package/lib/ui/Tabs.js +11 -11
  564. package/lib/ui/Textarea.js +1 -1
  565. package/lib/ui/Toggle.js +1 -1
  566. package/lib/ui/ToggleGroup.js +1 -1
  567. package/lib/ui/Tooltip.js +55 -28
  568. package/lib/ui/Tooltip.js.map +1 -1
  569. package/lib/ui/Value.js +1 -1
  570. package/lib/ui/util.js +1 -1
  571. package/lib/useMutation-CFMGlAMW.js +119 -0
  572. package/lib/useMutation-CFMGlAMW.js.map +1 -0
  573. package/lib/useSuspenseQuery-CSB_rVek.js +1226 -0
  574. package/lib/useSuspenseQuery-CSB_rVek.js.map +1 -0
  575. package/lib/zudoku.__internal.js +826 -1325
  576. package/lib/zudoku.__internal.js.map +1 -1
  577. package/lib/zudoku.auth-auth0.js +19 -19
  578. package/lib/zudoku.auth-auth0.js.map +1 -1
  579. package/lib/zudoku.auth-azureb2c.js +28 -28
  580. package/lib/zudoku.auth-azureb2c.js.map +1 -1
  581. package/lib/zudoku.auth-clerk.js +41 -64
  582. package/lib/zudoku.auth-clerk.js.map +1 -1
  583. package/lib/zudoku.auth-firebase.js +10 -0
  584. package/lib/zudoku.auth-firebase.js.map +1 -0
  585. package/lib/zudoku.auth-openid.js +52 -55
  586. package/lib/zudoku.auth-openid.js.map +1 -1
  587. package/lib/zudoku.auth-supabase.js +107 -60
  588. package/lib/zudoku.auth-supabase.js.map +1 -1
  589. package/lib/zudoku.components.js +23 -21
  590. package/lib/zudoku.hooks.js +11 -24
  591. package/lib/zudoku.hooks.js.map +1 -1
  592. package/lib/zudoku.mermaid.js +10 -0
  593. package/lib/zudoku.mermaid.js.map +1 -0
  594. package/lib/zudoku.plugin-api-catalog.js +8 -8
  595. package/lib/zudoku.plugin-api-keys.js +607 -543
  596. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  597. package/lib/zudoku.plugin-custom-pages.js +1 -1
  598. package/lib/zudoku.plugin-markdown.js +10 -9
  599. package/lib/zudoku.plugin-markdown.js.map +1 -1
  600. package/lib/zudoku.plugin-openapi.js +6 -7
  601. package/lib/zudoku.plugin-openapi.js.map +1 -1
  602. package/lib/zudoku.plugin-redirect.js +1 -1
  603. package/lib/zudoku.plugin-search-pagefind.js +185 -226
  604. package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
  605. package/lib/zudoku.plugins.js.map +1 -1
  606. package/lib/zudoku.react-query.js +440 -0
  607. package/lib/zudoku.react-query.js.map +1 -0
  608. package/lib/zudoku.router.js +1130 -1404
  609. package/lib/zudoku.router.js.map +1 -1
  610. package/package.json +76 -45
  611. package/src/app/entry.server.tsx +16 -6
  612. package/src/app/main.css +61 -9
  613. package/src/app/main.tsx +5 -1
  614. package/src/app/sentry.ts +1 -1
  615. package/src/lib/auth/issuer.ts +3 -0
  616. package/src/lib/authentication/authentication.ts +29 -5
  617. package/src/lib/authentication/components/CallbackHandler.tsx +1 -1
  618. package/src/lib/authentication/components/OAuthErrorPage.tsx +1 -1
  619. package/src/lib/authentication/components/SignIn.tsx +10 -5
  620. package/src/lib/authentication/components/SignOut.tsx +7 -6
  621. package/src/lib/authentication/components/SignUp.tsx +8 -8
  622. package/src/lib/authentication/hook.ts +37 -10
  623. package/src/lib/authentication/providers/auth0.tsx +23 -11
  624. package/src/lib/authentication/providers/azureb2c.tsx +10 -3
  625. package/src/lib/authentication/providers/clerk.tsx +9 -28
  626. package/src/lib/authentication/providers/firebase.tsx +376 -0
  627. package/src/lib/authentication/providers/openid.tsx +18 -15
  628. package/src/lib/authentication/providers/supabase/SupabaseAuthUI.tsx +75 -0
  629. package/src/lib/authentication/providers/supabase.tsx +61 -59
  630. package/src/lib/authentication/state.ts +3 -23
  631. package/src/lib/authentication/ui/EmailVerificationUi.tsx +129 -0
  632. package/src/lib/authentication/ui/ZudokuAuthUi.tsx +477 -0
  633. package/src/lib/authentication/ui/icons/Apple.tsx +10 -0
  634. package/src/lib/authentication/ui/icons/Facebook.tsx +15 -0
  635. package/src/lib/authentication/ui/icons/Github.tsx +16 -0
  636. package/src/lib/authentication/ui/icons/Google.tsx +16 -0
  637. package/src/lib/authentication/ui/icons/Microsoft.tsx +12 -0
  638. package/src/lib/authentication/ui/icons/X.tsx +10 -0
  639. package/src/lib/authentication/utils/relativeRedirectUrl.ts +12 -0
  640. package/src/lib/components/Autocomplete.tsx +11 -2
  641. package/src/lib/components/Layout.tsx +3 -2
  642. package/src/lib/components/Mermaid.tsx +68 -0
  643. package/src/lib/components/PagefindSearchMeta.tsx +14 -0
  644. package/src/lib/components/Pagination.tsx +4 -5
  645. package/src/lib/components/Zudoku.tsx +7 -10
  646. package/src/lib/components/index.ts +4 -0
  647. package/src/lib/components/navigation/NavigationItem.tsx +16 -23
  648. package/src/lib/components/navigation/Toc.tsx +3 -3
  649. package/src/lib/core/RouteGuard.tsx +69 -43
  650. package/src/lib/core/ZudokuContext.ts +3 -0
  651. package/src/lib/core/plugins.ts +2 -2
  652. package/src/lib/core/react-query.ts +1 -0
  653. package/src/lib/errors/ErrorAlert.tsx +1 -1
  654. package/src/lib/errors/ErrorMessage.tsx +38 -0
  655. package/src/lib/errors/RouterError.tsx +7 -2
  656. package/src/lib/oas/graphql/circular.test.ts +186 -0
  657. package/src/lib/oas/graphql/circular.ts +49 -10
  658. package/src/lib/oas/graphql/index.ts +7 -3
  659. package/src/lib/oas/parser/index.ts +10 -3
  660. package/src/lib/plugins/api-keys/ProtectedRoute.tsx +11 -7
  661. package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +36 -476
  662. package/src/lib/plugins/api-keys/index.tsx +76 -32
  663. package/src/lib/plugins/api-keys/settings/ApiKeyItem.tsx +342 -0
  664. package/src/lib/plugins/api-keys/settings/ApiKeyList.tsx +67 -0
  665. package/src/lib/plugins/api-keys/settings/RevealApiKey.tsx +124 -0
  666. package/src/lib/plugins/markdown/MdxPage.tsx +4 -1
  667. package/src/lib/plugins/markdown/index.tsx +2 -0
  668. package/src/lib/plugins/openapi/CollapsibleCode.tsx +5 -3
  669. package/src/lib/plugins/openapi/DownloadSchemaButton.tsx +115 -0
  670. package/src/lib/plugins/openapi/Endpoint.tsx +20 -27
  671. package/src/lib/plugins/openapi/GeneratedExampleSidecarBox.tsx +52 -0
  672. package/src/lib/plugins/openapi/OasProvider.tsx +30 -17
  673. package/src/lib/plugins/openapi/OperationList.tsx +51 -21
  674. package/src/lib/plugins/openapi/OperationListItem.tsx +15 -12
  675. package/src/lib/plugins/openapi/ParamInfos.tsx +1 -0
  676. package/src/lib/plugins/openapi/ParameterList.tsx +37 -23
  677. package/src/lib/plugins/openapi/ParameterListItem.tsx +105 -54
  678. package/src/lib/plugins/openapi/RequestBodySidecarBox.tsx +48 -7
  679. package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +101 -33
  680. package/src/lib/plugins/openapi/SchemaList.tsx +4 -0
  681. package/src/lib/plugins/openapi/Sidecar.tsx +148 -67
  682. package/src/lib/plugins/openapi/SidecarBox.tsx +26 -4
  683. package/src/lib/plugins/openapi/SidecarExamples.tsx +91 -79
  684. package/src/lib/plugins/openapi/components/ConstValue.tsx +1 -1
  685. package/src/lib/plugins/openapi/components/EnumValues.tsx +2 -2
  686. package/src/lib/plugins/openapi/components/NonHighlightedCode.tsx +22 -0
  687. package/src/lib/plugins/openapi/components/ResponseContent.tsx +63 -53
  688. package/src/lib/plugins/openapi/index.tsx +25 -36
  689. package/src/lib/plugins/openapi/interfaces.ts +28 -7
  690. package/src/lib/plugins/openapi/playground/BodyPanel.tsx +246 -30
  691. package/src/lib/plugins/openapi/playground/CollapsibleHeader.tsx +10 -6
  692. package/src/lib/plugins/openapi/playground/ExamplesDropdown.tsx +3 -2
  693. package/src/lib/plugins/openapi/playground/Headers.tsx +103 -219
  694. package/src/lib/plugins/openapi/playground/ParamsGrid.tsx +33 -1
  695. package/src/lib/plugins/openapi/playground/PathParams.tsx +26 -34
  696. package/src/lib/plugins/openapi/playground/Playground.tsx +88 -35
  697. package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +10 -31
  698. package/src/lib/plugins/openapi/playground/QueryParams.tsx +82 -136
  699. package/src/lib/plugins/openapi/playground/RequestLoginDialog.tsx +20 -1
  700. package/src/lib/plugins/openapi/playground/request-panel/MultipartField.tsx +91 -0
  701. package/src/lib/plugins/openapi/playground/request-panel/UrlQueryParams.tsx +1 -1
  702. package/src/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.tsx +872 -0
  703. package/src/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.ts +349 -0
  704. package/src/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.tsx +2 -2
  705. package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +102 -62
  706. package/src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx +1 -1
  707. package/src/lib/plugins/openapi/playground/useRememberSkipLoginDialog.tsx +3 -0
  708. package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +1 -1
  709. package/src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx +89 -55
  710. package/src/lib/plugins/openapi/schema/SchemaView.tsx +100 -60
  711. package/src/lib/plugins/openapi/schema/UnionView.tsx +6 -17
  712. package/src/lib/plugins/openapi/schema/union-helpers.ts +0 -1
  713. package/src/lib/plugins/openapi/schema/utils.ts +20 -6
  714. package/src/lib/plugins/openapi/util/createHttpSnippet.ts +29 -1
  715. package/src/lib/plugins/openapi/util/generateSchemaExample.ts +11 -11
  716. package/src/lib/plugins/openapi/util/getRoutes.tsx +35 -3
  717. package/src/lib/plugins/search-pagefind/IndexingDialog.tsx +163 -0
  718. package/src/lib/plugins/search-pagefind/PagefindSearch.tsx +61 -22
  719. package/src/lib/plugins/search-pagefind/ResultList.tsx +8 -3
  720. package/src/lib/shiki.ts +37 -14
  721. package/src/lib/ui/Badge.tsx +21 -12
  722. package/src/lib/ui/Button.tsx +11 -9
  723. package/src/lib/ui/ButtonGroup.tsx +82 -0
  724. package/src/lib/ui/Callout.tsx +10 -5
  725. package/src/lib/ui/Checkbox.tsx +23 -24
  726. package/src/lib/ui/CodeBlock.tsx +3 -4
  727. package/src/lib/ui/Collapsible.tsx +26 -4
  728. package/src/lib/ui/Command.tsx +3 -3
  729. package/src/lib/ui/Dialog.tsx +112 -106
  730. package/src/lib/ui/DropdownMenu.tsx +226 -170
  731. package/src/lib/ui/EmbeddedCodeBlock.tsx +24 -19
  732. package/src/lib/ui/Frame.tsx +81 -0
  733. package/src/lib/ui/Item.tsx +192 -0
  734. package/src/lib/ui/Kbd.tsx +28 -0
  735. package/src/lib/ui/NativeSelect.tsx +47 -0
  736. package/src/lib/ui/ReactComponentDoc.tsx +17 -17
  737. package/src/lib/ui/Select.tsx +153 -126
  738. package/src/lib/ui/Separator.tsx +25 -0
  739. package/src/lib/ui/SyntaxHighlight.tsx +6 -1
  740. package/src/lib/ui/Tooltip.tsx +54 -32
  741. package/src/lib/util/MdxComponents.tsx +5 -5
  742. package/src/lib/util/createVariantComponent.tsx +31 -5
  743. package/src/lib/util/flattenAllOf.test.ts +689 -0
  744. package/src/lib/util/flattenAllOf.ts +122 -0
  745. package/src/lib/util/invariant.ts +2 -1
  746. package/src/lib/util/readFrontmatter.ts +13 -0
  747. package/src/lib/util/syncZustandState.ts +22 -0
  748. package/src/shiki/langs/markdown-nix.js +1 -0
  749. package/src/shiki/langs/openscad.js +1 -0
  750. package/dist/lib/plugins/openapi/playground/InlineInput.d.ts +0 -4
  751. package/dist/lib/plugins/openapi/playground/InlineInput.js +0 -3
  752. package/dist/lib/plugins/openapi/playground/InlineInput.js.map +0 -1
  753. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupConnector.d.ts +0 -5
  754. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupConnector.js +0 -7
  755. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupConnector.js.map +0 -1
  756. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupItem.d.ts +0 -4
  757. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupItem.js +0 -10
  758. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupItem.js.map +0 -1
  759. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupView.d.ts +0 -5
  760. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupView.js +0 -16
  761. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupView.js.map +0 -1
  762. package/dist/vite/create-pagefind-index.d.ts +0 -4
  763. package/dist/vite/create-pagefind-index.js +0 -12
  764. package/dist/vite/create-pagefind-index.js.map +0 -1
  765. package/lib/Button-DmS4u8Lj.js +0 -51
  766. package/lib/Button-DmS4u8Lj.js.map +0 -1
  767. package/lib/CodeBlock-CanTUJLl.js +0 -221
  768. package/lib/CodeBlock-CanTUJLl.js.map +0 -1
  769. package/lib/Command-CJY6q3PF.js.map +0 -1
  770. package/lib/Dialog-BOl0QB3n.js +0 -114
  771. package/lib/Dialog-BOl0QB3n.js.map +0 -1
  772. package/lib/DropdownMenu-BZ2NKQ3K.js +0 -126
  773. package/lib/DropdownMenu-BZ2NKQ3K.js.map +0 -1
  774. package/lib/ErrorAlert-VBJ8aHH7.js.map +0 -1
  775. package/lib/MdxPage-DFRNwSsc.js +0 -239
  776. package/lib/MdxPage-DFRNwSsc.js.map +0 -1
  777. package/lib/OAuthErrorPage-DJUOdr6Q.js.map +0 -1
  778. package/lib/OasProvider-BMUgPYQU.js +0 -36
  779. package/lib/OasProvider-BMUgPYQU.js.map +0 -1
  780. package/lib/OperationList-DVig5I94.js +0 -5446
  781. package/lib/OperationList-DVig5I94.js.map +0 -1
  782. package/lib/Pagination-CT4VUR6u.js +0 -37
  783. package/lib/Pagination-CT4VUR6u.js.map +0 -1
  784. package/lib/RouteGuard-BPWQlxy5.js +0 -56
  785. package/lib/RouteGuard-BPWQlxy5.js.map +0 -1
  786. package/lib/RouterError-fm21cqlj.js +0 -41
  787. package/lib/RouterError-fm21cqlj.js.map +0 -1
  788. package/lib/SchemaList-1eLKXqn8.js.map +0 -1
  789. package/lib/SchemaView-fq3uKfOA.js +0 -458
  790. package/lib/SchemaView-fq3uKfOA.js.map +0 -1
  791. package/lib/Select-CPoGZU_V.js +0 -372
  792. package/lib/Select-CPoGZU_V.js.map +0 -1
  793. package/lib/SignUp-BraHuRN_.js +0 -56
  794. package/lib/SignUp-BraHuRN_.js.map +0 -1
  795. package/lib/SyntaxHighlight-B0laqAqK.js.map +0 -1
  796. package/lib/Toc-KzXCRqrX.js.map +0 -1
  797. package/lib/ZudokuContext-BXTZApgy.js +0 -1506
  798. package/lib/ZudokuContext-BXTZApgy.js.map +0 -1
  799. package/lib/chunk-PVWAREVJ-BO6B-RAk.js +0 -7965
  800. package/lib/chunk-PVWAREVJ-BO6B-RAk.js.map +0 -1
  801. package/lib/circular-D6wbrxuf.js.map +0 -1
  802. package/lib/cn-dYga0KKN.js.map +0 -1
  803. package/lib/createServer-C5aY10Bc.js +0 -12559
  804. package/lib/createServer-C5aY10Bc.js.map +0 -1
  805. package/lib/hook-CAebs2rv.js +0 -31
  806. package/lib/hook-CAebs2rv.js.map +0 -1
  807. package/lib/index-BPSpOxTK.js +0 -1058
  808. package/lib/index-BPSpOxTK.js.map +0 -1
  809. package/lib/index-Bb9AsFlk.js +0 -3318
  810. package/lib/index-Bb9AsFlk.js.map +0 -1
  811. package/lib/invariant-Bm-FVUQE.js.map +0 -1
  812. package/lib/mutation-CdGPxHNX.js.map +0 -1
  813. package/lib/useExposedProps-Cd7Yg_uG.js +0 -113
  814. package/lib/useExposedProps-Cd7Yg_uG.js.map +0 -1
  815. package/src/lib/plugins/openapi/playground/InlineInput.tsx +0 -6
  816. package/src/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupConnector.tsx +0 -36
  817. package/src/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupItem.tsx +0 -25
  818. package/src/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupView.tsx +0 -42
@@ -0,0 +1,438 @@
1
+ import { j as t } from "./jsx-runtime-BzflLqGi.js";
2
+ import { ChevronUpIcon as _, ChevronDownIcon as J, ChevronsLeftRightIcon as U, MinusIcon as W, PlusIcon as G, RefreshCcwDotIcon as K, InfoIcon as X } from "lucide-react";
3
+ import { useState as f, isValidElement as Q, Fragment as P } from "react";
4
+ import { I as S, a as g, b as $, c as Y, F as N, d as h, e as F, f as Z, g as H, h as ee, i as te } from "./Frame-DKlOmSkU.js";
5
+ import { b as u, I as R, M as V } from "./index-BDsEwofZ.js";
6
+ import { B as re } from "./Button-GUVe7pmt.js";
7
+ import { c as j } from "./cn-5-Gd1Dss.js";
8
+ import * as E from "@radix-ui/react-collapsible";
9
+ import { Button as se } from "./ui/Button.js";
10
+ import { Badge as ne } from "./ui/Badge.js";
11
+ import { Frame as ie, FramePanel as oe } from "./ui/Frame.js";
12
+ import { C as le, S as b } from "./circular-DFquXeY2.js";
13
+ const Fe = ({
14
+ name: e,
15
+ children: r
16
+ }) => /* @__PURE__ */ t.jsx("span", { "data-pagefind-meta": e, className: "sr-only", children: r }), ae = (e, r) => e.reduce(
17
+ (s, i) => {
18
+ const o = r(i);
19
+ return s[o] || (s[o] = []), s[o].push(i), s;
20
+ },
21
+ {}
22
+ ), M = ({
23
+ schema: e,
24
+ hideDescription: r = !1
25
+ }) => /* @__PURE__ */ t.jsx("div", { className: "flex flex-col gap-1", children: /* @__PURE__ */ t.jsxs("div", { children: [
26
+ /* @__PURE__ */ t.jsx("span", { className: "text-muted-foreground", children: "Const value: " }),
27
+ /* @__PURE__ */ t.jsx(u, { className: "border rounded px-1 font-mono", children: e.const }),
28
+ !r && e.description && /* @__PURE__ */ t.jsx("div", { className: "text-muted-foreground", children: e.description })
29
+ ] }) }), v = ({
30
+ values: e,
31
+ className: r,
32
+ maxVisibleValues: s = 8
33
+ }) => {
34
+ const [i, o] = f(!1);
35
+ if (!e.length) return null;
36
+ const n = e.length > s, l = n && !i ? e.slice(0, s) : e;
37
+ return /* @__PURE__ */ t.jsxs("div", { className: j("flex flex-wrap gap-1.5", r), children: [
38
+ /* @__PURE__ */ t.jsx("span", { className: "text-muted-foreground", children: "Enum values:" }),
39
+ l.map((d) => /* @__PURE__ */ t.jsx("div", { children: /* @__PURE__ */ t.jsx(u, { className: "border rounded-sm px-1 font-mono", children: d }) }, d)),
40
+ n && /* @__PURE__ */ t.jsx(
41
+ re,
42
+ {
43
+ variant: "ghost",
44
+ size: "sm",
45
+ className: "h-fit px-0",
46
+ onClick: () => o(!i),
47
+ children: i ? /* @__PURE__ */ t.jsxs("div", { className: "flex items-center gap-1", children: [
48
+ /* @__PURE__ */ t.jsx(_, { size: 12 }),
49
+ /* @__PURE__ */ t.jsx("span", { className: "text-muted-foreground", children: "show less" })
50
+ ] }) : /* @__PURE__ */ t.jsxs("div", { className: "flex items-center gap-1", children: [
51
+ /* @__PURE__ */ t.jsx(J, { size: 12 }),
52
+ /* @__PURE__ */ t.jsxs("span", { className: "text-muted-foreground", children: [
53
+ "show ",
54
+ e.length - s,
55
+ " more"
56
+ ] })
57
+ ] })
58
+ }
59
+ )
60
+ ] });
61
+ }, de = ({ pattern: e }) => {
62
+ const [r, s] = f(!1), i = e.length > 20, o = i ? `${e.slice(0, 20)}…` : e;
63
+ return /* @__PURE__ */ t.jsxs(
64
+ R,
65
+ {
66
+ className: j("text-xs", i && "cursor-pointer"),
67
+ onClick: () => s(!r),
68
+ selectOnClick: !1,
69
+ children: [
70
+ r ? e : o,
71
+ i && /* @__PURE__ */ t.jsx("button", { type: "button", className: "p-1 translate-y-[2px]", children: !r && /* @__PURE__ */ t.jsx(U, { size: 12 }) })
72
+ ]
73
+ }
74
+ );
75
+ }, ce = (e) => e ? [
76
+ e.type === "array" && e.items.type ? Array.isArray(e.items.type) ? `(${e.items.type.join(" | ")})[]` : `${e.items.type}[]` : Array.isArray(e.type) ? e.type.join(" | ") : e.type,
77
+ e.enum && "enum",
78
+ e.const && "const",
79
+ e.format,
80
+ e.type === "array" && e.items?.contentMediaType,
81
+ e.minimum !== void 0 && `min: ${e.minimum}`,
82
+ e.maximum !== void 0 && `max: ${e.maximum}`,
83
+ e.minLength !== void 0 && `minLength: ${e.minLength}`,
84
+ e.maxLength !== void 0 && `maxLength: ${e.maxLength}`,
85
+ e.minItems !== void 0 && `minItems: ${e.minItems}`,
86
+ e.maxItems !== void 0 && `maxItems: ${e.maxItems}`,
87
+ e.minProperties !== void 0 && `minProps: ${e.minProperties}`,
88
+ e.maxProperties !== void 0 && `maxProps: ${e.maxProperties}`,
89
+ e.uniqueItems && "unique",
90
+ e.readOnly && "readOnly",
91
+ e.writeOnly && "writeOnly",
92
+ e.deprecated && "deprecated",
93
+ e.pattern && /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
94
+ "pattern: ",
95
+ /* @__PURE__ */ t.jsx(de, { pattern: e.pattern })
96
+ ] })
97
+ ] : [], I = ({
98
+ schema: e,
99
+ extraItems: r = [],
100
+ className: s
101
+ }) => {
102
+ const i = [...ce(e), ...r].flatMap(
103
+ (o) => typeof o == "string" || Q(o) ? o : []
104
+ );
105
+ return /* @__PURE__ */ t.jsx("span", { className: s, children: i.map((o, n) => (
106
+ // biome-ignore lint/suspicious/noArrayIndexKey: index should be stable
107
+ /* @__PURE__ */ t.jsxs("span", { className: "text-muted-foreground", children: [
108
+ o,
109
+ n < i.length - 1 && /* @__PURE__ */ t.jsx("span", { className: "text-muted-foreground/50", children: " · " })
110
+ ] }, n)
111
+ )) });
112
+ }, O = ({
113
+ schema: e
114
+ }) => {
115
+ const r = e.examples?.at(0), s = e.default;
116
+ return r === void 0 && s === void 0 ? null : /* @__PURE__ */ t.jsxs("div", { className: "flex flex-col gap-1", children: [
117
+ r !== void 0 && /* @__PURE__ */ t.jsxs("div", { children: [
118
+ /* @__PURE__ */ t.jsx("span", { className: "text-muted-foreground", children: "Example: " }),
119
+ /* @__PURE__ */ t.jsx(u, { className: "border rounded-sm px-1 font-mono", children: typeof r == "object" || typeof r == "boolean" ? JSON.stringify(r) : r })
120
+ ] }),
121
+ s !== void 0 && /* @__PURE__ */ t.jsxs("div", { children: [
122
+ /* @__PURE__ */ t.jsx("span", { className: "text-muted-foreground", children: "Default: " }),
123
+ /* @__PURE__ */ t.jsx(u, { className: "border rounded-sm px-1 font-mono", children: typeof s == "object" || typeof s == "boolean" ? JSON.stringify(s) : s })
124
+ ] })
125
+ ] });
126
+ }, B = (e) => typeof e == "string" && ["string", "number", "boolean", "integer", "null"].includes(e) || Array.isArray(e) && e.every(B), m = (e) => e.type === "array" || // schema.type might be an array of types, so we need to check if "array" is one of them
127
+ Array.isArray(e.type) && e.type.includes("array"), k = (e) => e && (e.type === "object" && Object.keys(e.properties ?? {}).length > 0 || e.type === "array" && typeof e.items == "object" && (!e.items.type || e.items.type === "object")), z = (e) => typeof e == "string" && (e.startsWith(le) || e.startsWith(b)), w = (e) => m(e) && "items" in e && z(e.items), pe = (e) => {
128
+ if (typeof e == "string")
129
+ return e.startsWith(b) ? e.slice(b.length).split("/").pop() : e.split(":")[1];
130
+ }, q = ({ circularProp: e }) => /* @__PURE__ */ t.jsxs(
131
+ R,
132
+ {
133
+ className: "inline-flex items-center gap-1.5 text-xs translate-y-0.5",
134
+ selectOnClick: !1,
135
+ children: [
136
+ /* @__PURE__ */ t.jsx(K, { size: 13 }),
137
+ /* @__PURE__ */ t.jsx("span", { children: e ? `${e} (circular)` : "circular" })
138
+ ]
139
+ }
140
+ ), xe = ({
141
+ name: e,
142
+ schema: r,
143
+ group: s,
144
+ defaultOpen: i = !1,
145
+ showCollapseButton: o = !0
146
+ }) => {
147
+ const [n, l] = f(i);
148
+ if (z(r))
149
+ return /* @__PURE__ */ t.jsx(S, { children: /* @__PURE__ */ t.jsxs(g, { className: "gap-y-2", children: [
150
+ /* @__PURE__ */ t.jsxs("div", { children: [
151
+ /* @__PURE__ */ t.jsx($, { className: "inline me-2", children: /* @__PURE__ */ t.jsx("code", { children: e }) }),
152
+ /* @__PURE__ */ t.jsx(
153
+ I,
154
+ {
155
+ className: "inline",
156
+ schema: r,
157
+ extraItems: [
158
+ s !== "optional" && /* @__PURE__ */ t.jsx("span", { className: "text-primary", children: "required" }),
159
+ /* @__PURE__ */ t.jsx(q, {}, "circular-ref")
160
+ ]
161
+ }
162
+ )
163
+ ] }),
164
+ /* @__PURE__ */ t.jsx(O, { schema: r })
165
+ ] }) });
166
+ const d = !!((r.allOf || r.anyOf || r.oneOf || k(r) || m(r) && "items" in r && k(r.items) || r.additionalProperties) && !w(r)), c = !!(r.description || "items" in r && r.items?.enum || r.const || r.enum || r.example !== void 0 || r.default !== void 0);
167
+ return /* @__PURE__ */ t.jsxs(S, { children: [
168
+ /* @__PURE__ */ t.jsxs(g, { className: "gap-y-2", children: [
169
+ /* @__PURE__ */ t.jsxs("div", { children: [
170
+ /* @__PURE__ */ t.jsx($, { className: "inline me-2", children: d ? /* @__PURE__ */ t.jsx(
171
+ "button",
172
+ {
173
+ onClick: () => l(!n),
174
+ type: "button",
175
+ className: "hover:underline",
176
+ children: /* @__PURE__ */ t.jsx("code", { children: e })
177
+ }
178
+ ) : /* @__PURE__ */ t.jsx("code", { children: e }) }),
179
+ /* @__PURE__ */ t.jsx(
180
+ I,
181
+ {
182
+ className: "inline",
183
+ schema: r,
184
+ extraItems: [
185
+ s !== "optional" && /* @__PURE__ */ t.jsx("span", { className: "text-primary", children: "required" }),
186
+ w(r) && /* @__PURE__ */ t.jsx(
187
+ q,
188
+ {
189
+ circularProp: pe(r.items)
190
+ }
191
+ )
192
+ ]
193
+ }
194
+ )
195
+ ] }),
196
+ c && /* @__PURE__ */ t.jsxs("div", { className: "flex flex-col gap-1.5", children: [
197
+ r.description && /* @__PURE__ */ t.jsx(V, { className: "prose-sm", content: r.description }),
198
+ "items" in r && r.items?.enum && /* @__PURE__ */ t.jsx(v, { values: r.items.enum }),
199
+ r.const && /* @__PURE__ */ t.jsx(M, { schema: r, hideDescription: !0 }),
200
+ r.enum && /* @__PURE__ */ t.jsx(v, { values: r.enum }),
201
+ /* @__PURE__ */ t.jsx(O, { schema: r })
202
+ ] })
203
+ ] }),
204
+ d && o && /* @__PURE__ */ t.jsx(Y, { className: "self-start", children: /* @__PURE__ */ t.jsx(
205
+ se,
206
+ {
207
+ variant: "ghost",
208
+ size: "icon",
209
+ className: "rounded-full",
210
+ onClick: () => l(!n),
211
+ "aria-label": "Toggle properties",
212
+ children: n ? /* @__PURE__ */ t.jsx(W, { size: 16 }) : /* @__PURE__ */ t.jsx(G, { size: 16 })
213
+ }
214
+ ) }),
215
+ d && /* @__PURE__ */ t.jsx(
216
+ E.Root,
217
+ {
218
+ defaultOpen: i,
219
+ open: n,
220
+ onOpenChange: l,
221
+ className: j("w-full", !n && "contents"),
222
+ children: /* @__PURE__ */ t.jsx(E.Content, { asChild: !0, children: /* @__PURE__ */ t.jsx(g, { children: r.anyOf || r.oneOf || r.type === "object" ? /* @__PURE__ */ t.jsx(x, { schema: r }) : m(r) && "items" in r ? /* @__PURE__ */ t.jsx(x, { schema: r.items }) : null }) })
223
+ }
224
+ )
225
+ ] });
226
+ }, D = (e) => {
227
+ const r = e.oneOf ?? e.anyOf ?? [];
228
+ return e.properties && Object.keys(e.properties).length > 0 ? r.map((s) => !s.properties && !s.type && !s.oneOf && !s.anyOf ? {
229
+ ...s,
230
+ type: "object",
231
+ properties: e.properties,
232
+ required: s.required ?? e.required
233
+ } : s) : r;
234
+ }, ue = (e) => {
235
+ if (Array.isArray(e.oneOf)) return "exactly-one";
236
+ const r = e.discriminator?.propertyName;
237
+ if (!r) return "at-least-one";
238
+ const s = D(e), i = /* @__PURE__ */ new Set();
239
+ for (const o of s) {
240
+ const n = o.properties?.[r], l = n?.const ?? (Array.isArray(n?.enum) && n.enum.length === 1 ? String(n.enum[0]) : void 0);
241
+ if (l == null || i.has(String(l))) return "at-least-one";
242
+ i.add(String(l));
243
+ }
244
+ return "exactly-one";
245
+ }, A = (e, r) => r.title?.trim() || `Variant ${e + 1}`, me = (e, r) => {
246
+ const s = [];
247
+ e.type && s.push(
248
+ `type = ${Array.isArray(e.type) ? e.type.join("|") : e.type}`
249
+ );
250
+ const i = r?.discriminator?.propertyName;
251
+ if (i) {
252
+ const n = e.properties?.[i], l = n?.const ?? (Array.isArray(n?.enum) && n.enum.length === 1 ? n.enum[0] : void 0);
253
+ l !== void 0 && s.push(`${i}=${JSON.stringify(l)}`);
254
+ }
255
+ const o = (e.required ?? []).filter((n) => n !== i);
256
+ if (o.length) {
257
+ const n = o.slice(0, 3).join(", "), l = o.length > 3 ? ` +${o.length - 3} more` : "";
258
+ s.push(`requires: ${n}${l}`);
259
+ }
260
+ return s;
261
+ }, fe = ({
262
+ variants: e,
263
+ schema: r,
264
+ selectedVariant: s,
265
+ onSelectVariant: i
266
+ }) => {
267
+ const o = e.map((n, l) => ({
268
+ label: A(l, n),
269
+ guards: me(n, r)
270
+ }));
271
+ return /* @__PURE__ */ t.jsxs("div", { className: "flex flex-col gap-2 text-sm", children: [
272
+ /* @__PURE__ */ t.jsx("h4", { className: "font-medium", children: "Decision Table" }),
273
+ /* @__PURE__ */ t.jsx("div", { className: "border rounded-md overflow-hidden", children: /* @__PURE__ */ t.jsxs("table", { className: "w-full", children: [
274
+ /* @__PURE__ */ t.jsx("thead", { children: /* @__PURE__ */ t.jsxs("tr", { className: "border-b bg-muted/50", children: [
275
+ /* @__PURE__ */ t.jsx("th", { className: "text-left p-2 font-medium", children: "Variant" }),
276
+ /* @__PURE__ */ t.jsx("th", { className: "text-left p-2 font-medium", children: "Matching Criteria" })
277
+ ] }) }),
278
+ /* @__PURE__ */ t.jsx("tbody", { className: "divide-y", children: o.map((n) => /* @__PURE__ */ t.jsxs("tr", { className: "hover:bg-muted/30", children: [
279
+ /* @__PURE__ */ t.jsx("td", { className: "p-2 font-medium", children: /* @__PURE__ */ t.jsx(
280
+ "button",
281
+ {
282
+ type: "button",
283
+ className: j(
284
+ "hover:underline",
285
+ s === n.label && "text-primary"
286
+ ),
287
+ onClick: () => i(n.label),
288
+ children: n.label
289
+ }
290
+ ) }),
291
+ /* @__PURE__ */ t.jsx("td", { className: "p-2 text-muted-foreground text-xs", children: n.guards.length > 0 ? n.guards.join(" · ") : "No specific criteria" })
292
+ ] }, n.label)) })
293
+ ] }) })
294
+ ] });
295
+ }, je = ({
296
+ schema: e,
297
+ cardHeader: r
298
+ }) => {
299
+ const s = Array.isArray(e.oneOf) ? "oneOf" : Array.isArray(e.anyOf) ? "anyOf" : void 0, i = s ? D(e) : [], [o, n] = f(
300
+ () => i[0] ? A(0, i[0]) : ""
301
+ );
302
+ if (!s) return null;
303
+ const d = ue(e) === "exactly-one" ? /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
304
+ "Exactly one variant ",
305
+ /* @__PURE__ */ t.jsx("b", { children: "must match" }),
306
+ "."
307
+ ] }) : /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
308
+ "At least one variant ",
309
+ /* @__PURE__ */ t.jsx("b", { children: "must match" }),
310
+ ". Multiple variants",
311
+ " ",
312
+ /* @__PURE__ */ t.jsx("i", { children: "may match" }),
313
+ " simultaneously."
314
+ ] }), c = i.findIndex(
315
+ (p, y) => A(y, p) === o
316
+ ), a = c >= 0 ? i[c] : null;
317
+ return /* @__PURE__ */ t.jsxs(ie, { children: [
318
+ r,
319
+ /* @__PURE__ */ t.jsxs(oe, { className: "text-sm flex flex-col gap-4", children: [
320
+ /* @__PURE__ */ t.jsxs("div", { className: "flex items-center gap-2", children: [
321
+ /* @__PURE__ */ t.jsx(ne, { variant: "outline", children: s }),
322
+ /* @__PURE__ */ t.jsx("div", { className: "flex-1 p-2", children: /* @__PURE__ */ t.jsx("span", { className: "text-sm", children: d }) })
323
+ ] }),
324
+ /* @__PURE__ */ t.jsx(
325
+ fe,
326
+ {
327
+ variants: i,
328
+ schema: e,
329
+ selectedVariant: o,
330
+ onSelectVariant: n
331
+ }
332
+ ),
333
+ /* @__PURE__ */ t.jsxs("strong", { children: [
334
+ "Properties for ",
335
+ o,
336
+ ":"
337
+ ] }),
338
+ a && /* @__PURE__ */ t.jsx(x, { schema: a })
339
+ ] })
340
+ ] });
341
+ }, ye = (e) => e && /* @__PURE__ */ t.jsx(
342
+ V,
343
+ {
344
+ className: "text-sm leading-normal line-clamp-4",
345
+ content: e
346
+ }
347
+ ), ge = (e, r, s) => {
348
+ const i = /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
349
+ /* @__PURE__ */ t.jsx("span", { className: "text-sm text-muted-foreground", children: /* @__PURE__ */ t.jsx(I, { schema: e }) }),
350
+ e.enum && /* @__PURE__ */ t.jsx(v, { values: e.enum }),
351
+ ye(e.description),
352
+ /* @__PURE__ */ t.jsx(O, { schema: e })
353
+ ] });
354
+ return s ? /* @__PURE__ */ t.jsx("div", { className: "space-y-2 p-4", children: i }) : /* @__PURE__ */ t.jsxs(N, { children: [
355
+ r,
356
+ /* @__PURE__ */ t.jsx(h, { className: "space-y-2", children: i })
357
+ ] });
358
+ }, x = ({
359
+ schema: e,
360
+ defaultOpen: r = !1,
361
+ cardHeader: s,
362
+ embedded: i
363
+ }) => {
364
+ if (!e || Object.keys(e).length === 0)
365
+ return /* @__PURE__ */ t.jsxs(N, { children: [
366
+ s,
367
+ /* @__PURE__ */ t.jsx(h, { children: /* @__PURE__ */ t.jsx("div", { className: "text-sm text-muted-foreground italic", children: "No data returned" }) })
368
+ ] });
369
+ if (e.const)
370
+ return /* @__PURE__ */ t.jsx(M, { schema: e });
371
+ if (Array.isArray(e.oneOf) || Array.isArray(e.anyOf))
372
+ return /* @__PURE__ */ t.jsx(je, { schema: e, cardHeader: s });
373
+ if (B(e.type))
374
+ return ge(e, s, i);
375
+ if (m(e) && typeof e.items == "object") {
376
+ const n = {
377
+ type: "object",
378
+ properties: { "": e }
379
+ };
380
+ return /* @__PURE__ */ t.jsx(x, { schema: n, cardHeader: s, defaultOpen: !0 });
381
+ }
382
+ const o = typeof e.additionalProperties == "object" && /* @__PURE__ */ t.jsx(x, { schema: e.additionalProperties, embedded: !0 });
383
+ if (e.type === "object") {
384
+ const n = ae(
385
+ Object.entries(e.properties ?? {}),
386
+ ([a, p]) => p.deprecated ? "deprecated" : e.required?.includes(a) ? "required" : "optional"
387
+ ), c = ["required", "optional", "deprecated"].flatMap((a) => {
388
+ const p = n[a];
389
+ return p ? { group: a, properties: p } : [];
390
+ }).map(({ group: a, properties: p }, y) => /* @__PURE__ */ t.jsxs(P, { children: [
391
+ y > 0 && /* @__PURE__ */ t.jsx(F, {}),
392
+ /* @__PURE__ */ t.jsx(Z, { className: "overflow-clip", children: p.map(([C, L], T) => /* @__PURE__ */ t.jsxs(P, { children: [
393
+ T > 0 && /* @__PURE__ */ t.jsx(F, {}),
394
+ /* @__PURE__ */ t.jsx(
395
+ xe,
396
+ {
397
+ name: C,
398
+ schema: L,
399
+ group: a,
400
+ defaultOpen: r
401
+ }
402
+ )
403
+ ] }, C)) })
404
+ ] }, a));
405
+ return i ? c : /* @__PURE__ */ t.jsxs(N, { children: [
406
+ s,
407
+ e.description && /* @__PURE__ */ t.jsx(H, { children: /* @__PURE__ */ t.jsx(ee, { children: e.description }) }),
408
+ (c.length > 0 || o) && /* @__PURE__ */ t.jsxs(h, { className: "p-0!", children: [
409
+ c,
410
+ o
411
+ ] }),
412
+ e.additionalProperties === !0 && /* @__PURE__ */ t.jsx(te, { children: /* @__PURE__ */ t.jsxs(
413
+ "a",
414
+ {
415
+ className: "text-sm flex items-center gap-1 hover:underline",
416
+ href: "https://swagger.io/docs/specification/v3_0/data-models/dictionaries/",
417
+ rel: "noopener noreferrer",
418
+ target: "_blank",
419
+ children: [
420
+ "Additional properties are allowed",
421
+ /* @__PURE__ */ t.jsx(X, { size: 14 })
422
+ ]
423
+ }
424
+ ) })
425
+ ] });
426
+ }
427
+ };
428
+ export {
429
+ v as E,
430
+ Fe as P,
431
+ x as S,
432
+ I as a,
433
+ O as b,
434
+ z as c,
435
+ ae as g,
436
+ m as i
437
+ };
438
+ //# sourceMappingURL=SchemaView-DyJkiQkD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaView-DyJkiQkD.js","sources":["../src/lib/components/PagefindSearchMeta.tsx","../src/lib/util/groupBy.ts","../src/lib/plugins/openapi/components/ConstValue.tsx","../src/lib/plugins/openapi/components/EnumValues.tsx","../src/lib/plugins/openapi/ParamInfos.tsx","../src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx","../src/lib/plugins/openapi/schema/utils.ts","../src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx","../src/lib/plugins/openapi/schema/union-helpers.ts","../src/lib/plugins/openapi/schema/UnionView.tsx","../src/lib/plugins/openapi/schema/SchemaView.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\n\n/**\n * Adds metadata to be captured by Pagefind for search results.\n * Content is visually hidden but indexed by the search engine.\n */\nexport const PagefindSearchMeta = ({\n name,\n children,\n}: PropsWithChildren<{ name?: string }>) => (\n <span data-pagefind-meta={name} className=\"sr-only\">\n {children}\n </span>\n);\n","// biome-ignore-all lint/suspicious/noExplicitAny: Allow any type\nexport 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 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\">\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 { 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\", 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 { 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.type === \"array\" && schema.items?.contentMediaType,\n schema.minimum !== undefined && `min: ${schema.minimum}`,\n schema.maximum !== undefined && `max: ${schema.maximum}`,\n schema.minLength !== undefined && `minLength: ${schema.minLength}`,\n schema.maxLength !== undefined && `maxLength: ${schema.maxLength}`,\n schema.minItems !== undefined && `minItems: ${schema.minItems}`,\n schema.maxItems !== undefined && `maxItems: ${schema.maxItems}`,\n schema.minProperties !== undefined && `minProps: ${schema.minProperties}`,\n schema.maxProperties !== undefined && `maxProps: ${schema.maxProperties}`,\n schema.uniqueItems && \"unique\",\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 // biome-ignore lint/suspicious/noArrayIndexKey: index should be stable\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 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\">\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 {\n CIRCULAR_REF,\n SCHEMA_REF_PREFIX,\n} from \"../../../oas/graphql/circular.js\";\nimport type {\n ArraySchemaObject,\n SchemaObject,\n} 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): value is ArraySchemaObject =>\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 isCircularRef = (schema: unknown): schema is string =>\n typeof schema === \"string\" &&\n (schema.startsWith(CIRCULAR_REF) || schema.startsWith(SCHEMA_REF_PREFIX));\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 if (typeof ref !== \"string\") return undefined;\n\n if (ref.startsWith(SCHEMA_REF_PREFIX)) {\n return ref.slice(SCHEMA_REF_PREFIX.length).split(\"/\").pop();\n }\n\n return ref.split(\":\")[1];\n};\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { MinusIcon, PlusIcon, RefreshCcwDotIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { Item, ItemActions, ItemContent, ItemTitle } from \"zudoku/ui/Item.js\";\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 { cn } from \"../../../util/cn.js\";\nimport { ConstValue } from \"../components/ConstValue.js\";\nimport { EnumValues } from \"../components/EnumValues.js\";\nimport { ParamInfos } from \"../ParamInfos.js\";\nimport { SchemaExampleAndDefault } from \"./SchemaExampleAndDefault.js\";\nimport { SchemaView } from \"./SchemaView.js\";\nimport {\n extractCircularRefInfo,\n isArrayCircularRef,\n isArrayType,\n isCircularRef,\n isComplexType,\n} from \"./utils.js\";\n\nconst RecursiveIndicator = ({ circularProp }: { circularProp?: string }) => (\n <InlineCode\n className=\"inline-flex items-center gap-1.5 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 <Item>\n <ItemContent className=\"gap-y-2\">\n <div>\n <ItemTitle className=\"inline me-2\">\n <code>{name}</code>\n </ItemTitle>\n <ParamInfos\n className=\"inline\"\n schema={schema}\n extraItems={[\n group !== \"optional\" && (\n <span className=\"text-primary\">required</span>\n ),\n <RecursiveIndicator key=\"circular-ref\" />,\n ]}\n />\n </div>\n <SchemaExampleAndDefault schema={schema} />\n </ItemContent>\n </Item>\n );\n }\n\n const isCollapsible = Boolean(\n (schema.allOf ||\n schema.anyOf ||\n schema.oneOf ||\n isComplexType(schema) ||\n (isArrayType(schema) &&\n \"items\" in schema &&\n isComplexType(schema.items)) ||\n schema.additionalProperties) &&\n !isArrayCircularRef(schema),\n );\n\n const shouldRenderDescription = Boolean(\n schema.description ||\n (\"items\" in schema && schema.items?.enum) ||\n schema.const ||\n schema.enum ||\n schema.example !== undefined ||\n schema.default !== undefined,\n );\n\n return (\n <Item>\n <ItemContent className=\"gap-y-2\">\n <div>\n <ItemTitle className=\"inline me-2\">\n {isCollapsible ? (\n <button\n onClick={() => setIsOpen(!isOpen)}\n type=\"button\"\n className=\"hover:underline\"\n >\n <code>{name}</code>\n </button>\n ) : (\n <code>{name}</code>\n )}\n </ItemTitle>\n <ParamInfos\n className=\"inline\"\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 {shouldRenderDescription && (\n <div className=\"flex flex-col gap-1.5\">\n {schema.description && (\n <Markdown className=\"prose-sm\" content={schema.description} />\n )}\n {\"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 </div>\n )}\n </ItemContent>\n\n {isCollapsible && showCollapseButton && (\n <ItemActions className=\"self-start\">\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"rounded-full\"\n onClick={() => setIsOpen(!isOpen)}\n aria-label=\"Toggle properties\"\n >\n {isOpen ? <MinusIcon size={16} /> : <PlusIcon size={16} />}\n </Button>\n </ItemActions>\n )}\n\n {isCollapsible && (\n <Collapsible.Root\n defaultOpen={defaultOpen}\n open={isOpen}\n onOpenChange={setIsOpen}\n className={cn(\"w-full\", !isOpen && \"contents\")}\n >\n <Collapsible.Content asChild>\n <ItemContent>\n {schema.anyOf || schema.oneOf || schema.type === \"object\" ? (\n <SchemaView schema={schema} />\n ) : isArrayType(schema) && \"items\" in schema ? (\n <SchemaView schema={schema.items} />\n ) : null}\n </ItemContent>\n </Collapsible.Content>\n </Collapsible.Root>\n )}\n </Item>\n );\n};\n","import type { SchemaObject } from \"../../../oas/parser/index.js\";\n\nexport type FieldSignature = {\n type?: SchemaObject[\"type\"];\n const?: unknown;\n enum?: unknown[];\n format?: string;\n pattern?: string;\n minimum?: number;\n maximum?: number;\n exclusiveMinimum?: boolean | number;\n exclusiveMaximum?: boolean | number;\n minLength?: number;\n maxLength?: number;\n minItems?: number;\n maxItems?: number;\n itemsType?: string | string[];\n additionalProps?: \"true\" | \"false\" | \"schema\";\n};\n\nexport type FieldDoc = {\n name: string;\n humanType: string;\n description?: string;\n requiredInAll: boolean;\n};\n\nexport const unionVariants = (schema: SchemaObject): SchemaObject[] => {\n const variants = (schema.oneOf ?? schema.anyOf ?? []) as SchemaObject[];\n\n // If parent schema has properties that variants don't, merge them\n // This handles the pattern where anyOf/oneOf is used just for required field combinations\n if (schema.properties && Object.keys(schema.properties).length > 0) {\n return variants.map((variant) => {\n // If variant doesn't define its own properties or type, inherit from parent\n const shouldInherit =\n !variant.properties &&\n !variant.type &&\n !variant.oneOf &&\n !variant.anyOf;\n\n if (shouldInherit) {\n return {\n ...variant,\n type: \"object\" as const,\n properties: schema.properties,\n required: variant.required ?? schema.required,\n };\n }\n\n return variant;\n });\n }\n\n return variants;\n};\n\nexport const decideExclusivity = (\n schema: SchemaObject,\n): \"exactly-one\" | \"at-least-one\" => {\n if (Array.isArray(schema.oneOf)) return \"exactly-one\";\n\n const discriminator = schema.discriminator?.propertyName;\n if (!discriminator) return \"at-least-one\";\n\n const variants = unionVariants(schema);\n const seen = new Set<string>();\n\n for (const variant of variants) {\n const prop = variant.properties?.[discriminator];\n\n const value =\n prop?.const ??\n (Array.isArray(prop?.enum) && prop.enum.length === 1\n ? String(prop.enum[0])\n : undefined);\n\n if (value == null || seen.has(String(value))) return \"at-least-one\";\n seen.add(String(value));\n }\n\n return \"exactly-one\";\n};\n\nexport const labelForVariant = (index: number, variant: SchemaObject) =>\n variant.title?.trim() || `Variant ${index + 1}`;\n\nexport const quickGuards = (variant: SchemaObject, root?: SchemaObject) => {\n const guards: string[] = [];\n\n if (variant.type) {\n guards.push(\n `type = ${Array.isArray(variant.type) ? variant.type.join(\"|\") : variant.type}`,\n );\n }\n\n const discriminator = root?.discriminator?.propertyName;\n if (discriminator) {\n const discriminatorProp = variant.properties?.[discriminator] as\n | SchemaObject\n | undefined;\n\n const discriminatorValue =\n discriminatorProp?.const ??\n (Array.isArray(discriminatorProp?.enum) &&\n discriminatorProp.enum.length === 1\n ? discriminatorProp.enum[0]\n : undefined);\n\n if (discriminatorValue !== undefined) {\n guards.push(`${discriminator}=${JSON.stringify(discriminatorValue)}`);\n }\n }\n\n const required = (variant.required ?? []).filter((k) => k !== discriminator);\n if (required.length) {\n const head = required.slice(0, 3).join(\", \");\n const more = required.length > 3 ? ` +${required.length - 3} more` : \"\";\n guards.push(`requires: ${head}${more}`);\n }\n\n return guards;\n};\n","import { useState } from \"react\";\nimport type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { Badge } from \"../../../ui/Badge.js\";\nimport { Frame, FramePanel } from \"../../../ui/Frame.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { SchemaView } from \"./SchemaView.js\";\nimport {\n decideExclusivity,\n labelForVariant,\n quickGuards,\n unionVariants,\n} from \"./union-helpers.js\";\n\nconst DecisionTable = ({\n variants,\n schema,\n selectedVariant,\n onSelectVariant,\n}: {\n variants: SchemaObject[];\n schema: SchemaObject;\n selectedVariant: string;\n onSelectVariant: (label: string) => void;\n}) => {\n const rows = variants.map((v, i) => ({\n label: labelForVariant(i, v),\n guards: quickGuards(v, schema),\n }));\n\n return (\n <div className=\"flex flex-col gap-2 text-sm\">\n <h4 className=\"font-medium\">Decision Table</h4>\n <div className=\"border rounded-md overflow-hidden\">\n <table className=\"w-full\">\n <thead>\n <tr className=\"border-b bg-muted/50\">\n <th className=\"text-left p-2 font-medium\">Variant</th>\n <th className=\"text-left p-2 font-medium\">Matching Criteria</th>\n </tr>\n </thead>\n <tbody className=\"divide-y\">\n {rows.map((row) => (\n <tr key={row.label} className=\"hover:bg-muted/30\">\n <td className=\"p-2 font-medium\">\n <button\n type=\"button\"\n className={cn(\n \"hover:underline\",\n selectedVariant === row.label && \"text-primary\",\n )}\n onClick={() => onSelectVariant(row.label)}\n >\n {row.label}\n </button>\n </td>\n <td className=\"p-2 text-muted-foreground text-xs\">\n {row.guards.length > 0\n ? row.guards.join(\" · \")\n : \"No specific criteria\"}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n );\n};\n\nexport const UnionView = ({\n schema,\n cardHeader,\n}: {\n schema: SchemaObject;\n cardHeader?: React.ReactNode;\n}) => {\n const mode = Array.isArray(schema.oneOf)\n ? \"oneOf\"\n : Array.isArray(schema.anyOf)\n ? \"anyOf\"\n : undefined;\n\n const variants = mode ? unionVariants(schema) : [];\n const [selectedVariant, setSelectedVariant] = useState(() =>\n variants[0] ? labelForVariant(0, variants[0]) : \"\",\n );\n\n if (!mode) return null;\n\n const exclusivity = decideExclusivity(schema);\n\n const semanticsMessage =\n exclusivity === \"exactly-one\" ? (\n <>\n Exactly one variant <b>must match</b>.\n </>\n ) : (\n <>\n At least one variant <b>must match</b>. Multiple variants{\" \"}\n <i>may match</i> simultaneously.\n </>\n );\n\n const currentVariantIndex = variants.findIndex(\n (v, i) => labelForVariant(i, v) === selectedVariant,\n );\n const currentVariant =\n currentVariantIndex >= 0 ? variants[currentVariantIndex] : null;\n\n return (\n <Frame>\n {cardHeader}\n <FramePanel className=\"text-sm flex flex-col gap-4\">\n <div className=\"flex items-center gap-2\">\n <Badge variant=\"outline\">{mode}</Badge>\n <div className=\"flex-1 p-2\">\n <span className=\"text-sm\">{semanticsMessage}</span>\n </div>\n </div>\n\n <DecisionTable\n variants={variants}\n schema={schema}\n selectedVariant={selectedVariant}\n onSelectVariant={setSelectedVariant}\n />\n <strong>Properties for {selectedVariant}:</strong>\n {currentVariant && <SchemaView schema={currentVariant} />}\n </FramePanel>\n </Frame>\n );\n};\n","import { InfoIcon } from \"lucide-react\";\nimport { Fragment } from \"react\";\nimport {\n Frame,\n FrameDescription,\n FrameFooter,\n FrameHeader,\n FramePanel,\n} from \"zudoku/ui/Frame.js\";\nimport { ItemGroup, ItemSeparator } from \"zudoku/ui/Item.js\";\nimport { Markdown } from \"../../../components/Markdown.js\";\nimport type { SchemaObject } from \"../../../oas/parser/index.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 { SchemaPropertyItem } from \"./SchemaPropertyItem.js\";\nimport { UnionView } from \"./UnionView.js\";\nimport { isArrayType, 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 = (\n schema: SchemaObject,\n cardHeader?: React.ReactNode,\n embedded?: boolean,\n) => {\n const content = (\n <>\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 </>\n );\n\n if (embedded) {\n return <div className=\"space-y-2 p-4\">{content}</div>;\n }\n\n return (\n <Frame>\n {cardHeader}\n <FramePanel className=\"space-y-2\">{content}</FramePanel>\n </Frame>\n );\n};\n\nexport const SchemaView = ({\n schema,\n defaultOpen = false,\n cardHeader,\n embedded,\n}: {\n schema?: SchemaObject | null;\n defaultOpen?: boolean;\n cardHeader?: React.ReactNode;\n embedded?: boolean;\n}) => {\n if (!schema || Object.keys(schema).length === 0) {\n return (\n <Frame>\n {cardHeader}\n <FramePanel>\n <div className=\"text-sm text-muted-foreground italic\">\n No data returned\n </div>\n </FramePanel>\n </Frame>\n );\n }\n\n if (schema.const) {\n return <ConstValue schema={schema} />;\n }\n\n if (Array.isArray(schema.oneOf) || Array.isArray(schema.anyOf)) {\n return <UnionView schema={schema} cardHeader={cardHeader} />;\n }\n\n if (isBasicType(schema.type)) {\n return renderBasicSchema(schema, cardHeader, embedded);\n }\n\n if (isArrayType(schema) && typeof schema.items === \"object\") {\n const wrappedSchema: SchemaObject = {\n type: \"object\",\n properties: { \"\": schema },\n };\n\n return (\n <SchemaView schema={wrappedSchema} cardHeader={cardHeader} defaultOpen />\n );\n }\n\n const additionalObjectProperties = typeof schema.additionalProperties ===\n \"object\" && <SchemaView schema={schema.additionalProperties} embedded />;\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\n const groupNames = [\"required\", \"optional\", \"deprecated\"] as const;\n const groups = groupNames.flatMap((group) => {\n const properties = groupedProperties[group];\n return properties ? { group, properties } : [];\n });\n\n const itemsList = groups.map(({ group, properties }, index) => (\n <Fragment key={group}>\n {index > 0 && <ItemSeparator />}\n <ItemGroup className=\"overflow-clip\">\n {properties.map(([name, schema], index) => (\n <Fragment key={name}>\n {index > 0 && <ItemSeparator />}\n <SchemaPropertyItem\n name={name}\n schema={schema}\n group={group}\n defaultOpen={defaultOpen}\n />\n </Fragment>\n ))}\n </ItemGroup>\n </Fragment>\n ));\n\n if (embedded) {\n return itemsList;\n }\n\n return (\n <Frame>\n {cardHeader}\n {schema.description && (\n <FrameHeader>\n <FrameDescription>{schema.description}</FrameDescription>\n </FrameHeader>\n )}\n {(itemsList.length > 0 || additionalObjectProperties) && (\n <FramePanel className=\"p-0!\">\n {itemsList}\n {additionalObjectProperties}\n </FramePanel>\n )}\n {schema.additionalProperties === true && (\n <FrameFooter>\n <a\n className=\"text-sm flex items-center gap-1 hover:underline\"\n href=\"https://swagger.io/docs/specification/v3_0/data-models/dictionaries/\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n Additional properties are allowed\n <InfoIcon size={14} />\n </a>\n </FrameFooter>\n )}\n </Frame>\n );\n }\n};\n"],"names":["PagefindSearchMeta","name","children","groupBy","arr","keySelector","accumulator","val","groupedKey","ConstValue","schema","hideDescription","jsx","SelectOnClick","EnumValues","values","className","maxVisibleValues","isOpen","setIsOpen","useState","shouldCollapse","visibleValues","cn","value","Button","jsxs","ChevronUpIcon","ChevronDownIcon","Pattern","pattern","isExpanded","setIsExpanded","isExpandable","shortPattern","InlineCode","ChevronsLeftRightIcon","getSchemaInfos","Fragment","ParamInfos","extraItems","filteredItems","item","isValidElement","index","SchemaExampleAndDefault","example","defaultValue","isBasicType","type","isArrayType","isComplexType","isCircularRef","CIRCULAR_REF","SCHEMA_REF_PREFIX","isArrayCircularRef","extractCircularRefInfo","ref","RecursiveIndicator","circularProp","RefreshCcwDotIcon","SchemaPropertyItem","group","defaultOpen","showCollapseButton","Item","ItemContent","ItemTitle","isCollapsible","shouldRenderDescription","Markdown","ItemActions","MinusIcon","PlusIcon","Collapsible","SchemaView","unionVariants","variants","variant","decideExclusivity","discriminator","seen","prop","labelForVariant","quickGuards","root","guards","discriminatorProp","discriminatorValue","required","k","head","more","DecisionTable","selectedVariant","onSelectVariant","rows","v","i","row","UnionView","cardHeader","mode","setSelectedVariant","semanticsMessage","currentVariantIndex","currentVariant","Frame","FramePanel","Badge","renderMarkdown","content","renderBasicSchema","embedded","wrappedSchema","additionalObjectProperties","groupedProperties","propertyName","property","itemsList","properties","ItemSeparator","ItemGroup","FrameHeader","FrameDescription","FrameFooter","InfoIcon"],"mappings":"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"}