zudoku 0.0.0-feat-openapi-docs-redesign.dab3fc6a → 0.0.0-feat-navigation-at-property.z8cd07fa5

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 (656) hide show
  1. package/dist/app/main.d.ts +6 -6
  2. package/dist/app/main.js +1 -1
  3. package/dist/app/main.js.map +1 -1
  4. package/dist/app/sentry.js +1 -1
  5. package/dist/cli/common/version-check.js +12 -3
  6. package/dist/cli/common/version-check.js.map +1 -1
  7. package/dist/config/create-plugin.d.ts +2 -0
  8. package/dist/config/create-plugin.js +55 -0
  9. package/dist/config/create-plugin.js.map +1 -0
  10. package/dist/config/loader.js +3 -1
  11. package/dist/config/loader.js.map +1 -1
  12. package/dist/config/validators/BuildSchema.js +18 -3
  13. package/dist/config/validators/BuildSchema.js.map +1 -1
  14. package/dist/config/validators/InputNavigationSchema.d.ts +133 -45
  15. package/dist/config/validators/InputNavigationSchema.js +30 -0
  16. package/dist/config/validators/InputNavigationSchema.js.map +1 -1
  17. package/dist/config/validators/NavigationSchema.d.ts +18 -4
  18. package/dist/config/validators/NavigationSchema.js +15 -5
  19. package/dist/config/validators/NavigationSchema.js.map +1 -1
  20. package/dist/config/validators/ProtectedRoutesSchema.d.ts +1 -1
  21. package/dist/config/validators/validate.d.ts +104 -14
  22. package/dist/config/validators/validate.js +15 -4
  23. package/dist/config/validators/validate.js.map +1 -1
  24. package/dist/config/validators/validate.test.js +43 -0
  25. package/dist/config/validators/validate.test.js.map +1 -1
  26. package/dist/flat-config.d.ts +68 -32
  27. package/dist/index.d.ts +4 -2
  28. package/dist/index.js +3 -1
  29. package/dist/index.js.map +1 -1
  30. package/dist/lib/auth/issuer.js +1 -1
  31. package/dist/lib/auth/issuer.js.map +1 -1
  32. package/dist/lib/authentication/authentication.d.ts +3 -2
  33. package/dist/lib/authentication/components/CallbackHandler.js +1 -1
  34. package/dist/lib/authentication/components/CallbackHandler.js.map +1 -1
  35. package/dist/lib/authentication/components/SignIn.js +4 -2
  36. package/dist/lib/authentication/components/SignIn.js.map +1 -1
  37. package/dist/lib/authentication/components/SignUp.js +4 -2
  38. package/dist/lib/authentication/components/SignUp.js.map +1 -1
  39. package/dist/lib/authentication/hook.d.ts +2 -0
  40. package/dist/lib/authentication/hook.js +10 -0
  41. package/dist/lib/authentication/hook.js.map +1 -1
  42. package/dist/lib/authentication/providers/auth0.js +17 -8
  43. package/dist/lib/authentication/providers/auth0.js.map +1 -1
  44. package/dist/lib/authentication/providers/clerk.js +0 -22
  45. package/dist/lib/authentication/providers/clerk.js.map +1 -1
  46. package/dist/lib/authentication/providers/firebase.js +67 -9
  47. package/dist/lib/authentication/providers/firebase.js.map +1 -1
  48. package/dist/lib/authentication/providers/supabase.js +6 -15
  49. package/dist/lib/authentication/providers/supabase.js.map +1 -1
  50. package/dist/lib/authentication/ui/EmailVerificationUi.d.ts +4 -0
  51. package/dist/lib/authentication/ui/EmailVerificationUi.js +34 -0
  52. package/dist/lib/authentication/ui/EmailVerificationUi.js.map +1 -0
  53. package/dist/lib/authentication/ui/ZudokuAuthUi.d.ts +7 -2
  54. package/dist/lib/authentication/ui/ZudokuAuthUi.js +48 -12
  55. package/dist/lib/authentication/ui/ZudokuAuthUi.js.map +1 -1
  56. package/dist/lib/authentication/utils/relativeRedirectUrl.d.ts +1 -0
  57. package/dist/lib/authentication/utils/relativeRedirectUrl.js +8 -0
  58. package/dist/lib/authentication/utils/relativeRedirectUrl.js.map +1 -0
  59. package/dist/lib/components/Bootstrap.js +1 -2
  60. package/dist/lib/components/Bootstrap.js.map +1 -1
  61. package/dist/lib/components/Heading.d.ts +1 -1
  62. package/dist/lib/components/Mermaid.d.ts +7 -0
  63. package/dist/lib/components/Mermaid.js +42 -0
  64. package/dist/lib/components/Mermaid.js.map +1 -0
  65. package/dist/lib/components/MobileTopNavigation.js +3 -2
  66. package/dist/lib/components/MobileTopNavigation.js.map +1 -1
  67. package/dist/lib/components/PagefindSearchMeta.d.ts +8 -0
  68. package/dist/lib/components/PagefindSearchMeta.js +7 -0
  69. package/dist/lib/components/PagefindSearchMeta.js.map +1 -0
  70. package/dist/lib/components/Pagination.js +2 -2
  71. package/dist/lib/components/Pagination.js.map +1 -1
  72. package/dist/lib/components/Slot.test.js +1 -1
  73. package/dist/lib/components/Slot.test.js.map +1 -1
  74. package/dist/lib/components/TopNavigation.d.ts +7 -1
  75. package/dist/lib/components/TopNavigation.js +8 -3
  76. package/dist/lib/components/TopNavigation.js.map +1 -1
  77. package/dist/lib/components/Zudoku.d.ts +4 -1
  78. package/dist/lib/components/Zudoku.js +5 -11
  79. package/dist/lib/components/Zudoku.js.map +1 -1
  80. package/dist/lib/components/context/ZudokuContext.d.ts +9 -4
  81. package/dist/lib/components/context/ZudokuContext.js +26 -8
  82. package/dist/lib/components/context/ZudokuContext.js.map +1 -1
  83. package/dist/lib/components/context/ZudokuProvider.js +1 -1
  84. package/dist/lib/components/context/ZudokuProvider.js.map +1 -1
  85. package/dist/lib/components/context/ZudokuReactContext.d.ts +11 -0
  86. package/dist/lib/components/context/ZudokuReactContext.js +4 -0
  87. package/dist/lib/components/context/ZudokuReactContext.js.map +1 -0
  88. package/dist/lib/components/index.d.ts +18 -69
  89. package/dist/lib/components/index.js +19 -32
  90. package/dist/lib/components/index.js.map +1 -1
  91. package/dist/lib/components/navigation/Navigation.js +4 -3
  92. package/dist/lib/components/navigation/Navigation.js.map +1 -1
  93. package/dist/lib/components/navigation/NavigationCategory.js +8 -0
  94. package/dist/lib/components/navigation/NavigationCategory.js.map +1 -1
  95. package/dist/lib/components/navigation/NavigationFilterContext.d.ts +8 -0
  96. package/dist/lib/components/navigation/NavigationFilterContext.js +12 -0
  97. package/dist/lib/components/navigation/NavigationFilterContext.js.map +1 -0
  98. package/dist/lib/components/navigation/NavigationFilterInput.d.ts +3 -0
  99. package/dist/lib/components/navigation/NavigationFilterInput.js +9 -0
  100. package/dist/lib/components/navigation/NavigationFilterInput.js.map +1 -0
  101. package/dist/lib/components/navigation/NavigationItem.js +13 -3
  102. package/dist/lib/components/navigation/NavigationItem.js.map +1 -1
  103. package/dist/lib/components/navigation/NavigationWrapper.js +1 -1
  104. package/dist/lib/components/navigation/NavigationWrapper.js.map +1 -1
  105. package/dist/lib/components/navigation/utils.d.ts +6 -1
  106. package/dist/lib/components/navigation/utils.js +26 -2
  107. package/dist/lib/components/navigation/utils.js.map +1 -1
  108. package/dist/lib/core/RouteGuard.js +12 -7
  109. package/dist/lib/core/RouteGuard.js.map +1 -1
  110. package/dist/lib/core/ZudokuContext.d.ts +2 -1
  111. package/dist/lib/core/ZudokuContext.js +3 -1
  112. package/dist/lib/core/ZudokuContext.js.map +1 -1
  113. package/dist/lib/core/__internal.d.ts +1 -0
  114. package/dist/lib/core/__internal.js +2 -0
  115. package/dist/lib/core/__internal.js.map +1 -1
  116. package/dist/lib/core/plugins.d.ts +18 -4
  117. package/dist/lib/core/plugins.js +1 -0
  118. package/dist/lib/core/plugins.js.map +1 -1
  119. package/dist/lib/core/react-query.d.ts +1 -0
  120. package/dist/lib/core/react-query.js +2 -0
  121. package/dist/lib/core/react-query.js.map +1 -0
  122. package/dist/lib/core/transform-config.d.ts +4 -0
  123. package/dist/lib/core/transform-config.js +42 -0
  124. package/dist/lib/core/transform-config.js.map +1 -0
  125. package/dist/lib/core/transform-config.test.d.ts +1 -0
  126. package/dist/lib/core/transform-config.test.js +83 -0
  127. package/dist/lib/core/transform-config.test.js.map +1 -0
  128. package/dist/lib/errors/ErrorAlert.js +1 -2
  129. package/dist/lib/errors/ErrorAlert.js.map +1 -1
  130. package/dist/lib/errors/ErrorMessage.d.ts +3 -0
  131. package/dist/lib/errors/ErrorMessage.js +16 -0
  132. package/dist/lib/errors/ErrorMessage.js.map +1 -0
  133. package/dist/lib/hooks/index.d.ts +7 -28
  134. package/dist/lib/hooks/index.js +7 -15
  135. package/dist/lib/hooks/index.js.map +1 -1
  136. package/dist/lib/hooks/useEvent.test.js +1 -1
  137. package/dist/lib/hooks/useEvent.test.js.map +1 -1
  138. package/dist/lib/navigation/pathMatcher.d.ts +8 -0
  139. package/dist/lib/navigation/pathMatcher.js +62 -0
  140. package/dist/lib/navigation/pathMatcher.js.map +1 -0
  141. package/dist/lib/navigation/pathMatcher.test.d.ts +1 -0
  142. package/dist/lib/navigation/pathMatcher.test.js +115 -0
  143. package/dist/lib/navigation/pathMatcher.test.js.map +1 -0
  144. package/dist/lib/navigation/positionItems.d.ts +10 -0
  145. package/dist/lib/navigation/positionItems.js +54 -0
  146. package/dist/lib/navigation/positionItems.js.map +1 -0
  147. package/dist/lib/navigation/positionItems.test.d.ts +1 -0
  148. package/dist/lib/navigation/positionItems.test.js +229 -0
  149. package/dist/lib/navigation/positionItems.test.js.map +1 -0
  150. package/dist/lib/oas/graphql/circular.d.ts +2 -0
  151. package/dist/lib/oas/graphql/circular.js +21 -16
  152. package/dist/lib/oas/graphql/circular.js.map +1 -1
  153. package/dist/lib/oas/graphql/circular.test.d.ts +1 -0
  154. package/dist/lib/oas/graphql/circular.test.js +183 -0
  155. package/dist/lib/oas/graphql/circular.test.js.map +1 -0
  156. package/dist/lib/oas/graphql/index.js +7 -3
  157. package/dist/lib/oas/graphql/index.js.map +1 -1
  158. package/dist/lib/oas/parser/index.d.ts +1 -0
  159. package/dist/lib/oas/parser/index.js +14 -5
  160. package/dist/lib/oas/parser/index.js.map +1 -1
  161. package/dist/lib/plugins/api-keys/SettingsApiKeys.js +9 -172
  162. package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
  163. package/dist/lib/plugins/api-keys/index.d.ts +11 -4
  164. package/dist/lib/plugins/api-keys/index.js +36 -22
  165. package/dist/lib/plugins/api-keys/index.js.map +1 -1
  166. package/dist/lib/plugins/api-keys/settings/ApiKeyItem.d.ts +12 -0
  167. package/dist/lib/plugins/api-keys/settings/ApiKeyItem.js +133 -0
  168. package/dist/lib/plugins/api-keys/settings/ApiKeyItem.js.map +1 -0
  169. package/dist/lib/plugins/api-keys/settings/ApiKeyList.d.ts +4 -0
  170. package/dist/lib/plugins/api-keys/settings/ApiKeyList.js +33 -0
  171. package/dist/lib/plugins/api-keys/settings/ApiKeyList.js.map +1 -0
  172. package/dist/lib/plugins/api-keys/settings/RevealApiKey.d.ts +6 -0
  173. package/dist/lib/plugins/api-keys/settings/RevealApiKey.js +39 -0
  174. package/dist/lib/plugins/api-keys/settings/RevealApiKey.js.map +1 -0
  175. package/dist/lib/plugins/openapi/DownloadSchemaButton.d.ts +3 -0
  176. package/dist/lib/plugins/openapi/DownloadSchemaButton.js +47 -0
  177. package/dist/lib/plugins/openapi/DownloadSchemaButton.js.map +1 -0
  178. package/dist/lib/plugins/openapi/Endpoint.js +3 -6
  179. package/dist/lib/plugins/openapi/Endpoint.js.map +1 -1
  180. package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.js +1 -1
  181. package/dist/lib/plugins/openapi/OasProvider.js +26 -13
  182. package/dist/lib/plugins/openapi/OasProvider.js.map +1 -1
  183. package/dist/lib/plugins/openapi/OperationList.js +20 -10
  184. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  185. package/dist/lib/plugins/openapi/OperationListItem.js +2 -2
  186. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  187. package/dist/lib/plugins/openapi/ParamInfos.js +1 -0
  188. package/dist/lib/plugins/openapi/ParamInfos.js.map +1 -1
  189. package/dist/lib/plugins/openapi/ParameterList.js +1 -1
  190. package/dist/lib/plugins/openapi/ParameterList.js.map +1 -1
  191. package/dist/lib/plugins/openapi/ResponsesSidecarBox.d.ts +2 -1
  192. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +4 -3
  193. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
  194. package/dist/lib/plugins/openapi/SchemaList.js +2 -1
  195. package/dist/lib/plugins/openapi/SchemaList.js.map +1 -1
  196. package/dist/lib/plugins/openapi/Sidecar.js +12 -3
  197. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  198. package/dist/lib/plugins/openapi/index.js +11 -5
  199. package/dist/lib/plugins/openapi/index.js.map +1 -1
  200. package/dist/lib/plugins/openapi/interfaces.d.ts +19 -13
  201. package/dist/lib/plugins/openapi/playground/Playground.js +8 -4
  202. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  203. package/dist/lib/plugins/openapi/playground/fileUtils.d.ts +1 -0
  204. package/dist/lib/plugins/openapi/playground/fileUtils.js +3 -0
  205. package/dist/lib/plugins/openapi/playground/fileUtils.js.map +1 -1
  206. package/dist/lib/plugins/openapi/playground/result-panel/AudioPlayer.d.ts +6 -0
  207. package/dist/lib/plugins/openapi/playground/result-panel/AudioPlayer.js +20 -0
  208. package/dist/lib/plugins/openapi/playground/result-panel/AudioPlayer.js.map +1 -0
  209. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +7 -2
  210. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js.map +1 -1
  211. package/dist/lib/plugins/openapi/schema/SchemaView.d.ts +1 -1
  212. package/dist/lib/plugins/openapi/schema/SchemaView.js +16 -7
  213. package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
  214. package/dist/lib/plugins/openapi/schema/utils.d.ts +2 -2
  215. package/dist/lib/plugins/openapi/schema/utils.js +11 -3
  216. package/dist/lib/plugins/openapi/schema/utils.js.map +1 -1
  217. package/dist/lib/plugins/openapi/util/createHttpSnippet.js +24 -1
  218. package/dist/lib/plugins/openapi/util/createHttpSnippet.js.map +1 -1
  219. package/dist/lib/plugins/openapi/util/getRoutes.d.ts +9 -1
  220. package/dist/lib/plugins/openapi/util/getRoutes.js +30 -2
  221. package/dist/lib/plugins/openapi/util/getRoutes.js.map +1 -1
  222. package/dist/lib/plugins/search-pagefind/IndexingDialog.d.ts +3 -0
  223. package/dist/lib/plugins/search-pagefind/IndexingDialog.js +64 -0
  224. package/dist/lib/plugins/search-pagefind/IndexingDialog.js.map +1 -0
  225. package/dist/lib/plugins/search-pagefind/PagefindSearch.js +22 -5
  226. package/dist/lib/plugins/search-pagefind/PagefindSearch.js.map +1 -1
  227. package/dist/lib/plugins/search-pagefind/ResultList.js +5 -4
  228. package/dist/lib/plugins/search-pagefind/ResultList.js.map +1 -1
  229. package/dist/lib/shiki.d.ts +1 -1
  230. package/dist/lib/shiki.js +18 -12
  231. package/dist/lib/shiki.js.map +1 -1
  232. package/dist/lib/ui/Alert.d.ts +3 -2
  233. package/dist/lib/ui/Alert.js +9 -5
  234. package/dist/lib/ui/Alert.js.map +1 -1
  235. package/dist/lib/ui/Button.d.ts +2 -2
  236. package/dist/lib/ui/Button.js +10 -9
  237. package/dist/lib/ui/Button.js.map +1 -1
  238. package/dist/lib/ui/ButtonGroup.d.ts +11 -0
  239. package/dist/lib/ui/ButtonGroup.js +28 -0
  240. package/dist/lib/ui/ButtonGroup.js.map +1 -0
  241. package/dist/lib/ui/Command.d.ts +3 -3
  242. package/dist/lib/ui/Command.js +2 -2
  243. package/dist/lib/ui/Command.js.map +1 -1
  244. package/dist/lib/ui/DropdownMenu.d.ts +21 -23
  245. package/dist/lib/ui/DropdownMenu.js +47 -32
  246. package/dist/lib/ui/DropdownMenu.js.map +1 -1
  247. package/dist/lib/ui/InputGroup.d.ts +16 -0
  248. package/dist/lib/ui/InputGroup.js +65 -0
  249. package/dist/lib/ui/InputGroup.js.map +1 -0
  250. package/dist/lib/ui/Kbd.d.ts +3 -0
  251. package/dist/lib/ui/Kbd.js +10 -0
  252. package/dist/lib/ui/Kbd.js.map +1 -0
  253. package/dist/lib/ui/Secret.js +2 -2
  254. package/dist/lib/ui/Secret.js.map +1 -1
  255. package/dist/lib/util/MdxComponents.d.ts +1 -0
  256. package/dist/lib/util/MdxComponents.js +2 -0
  257. package/dist/lib/util/MdxComponents.js.map +1 -1
  258. package/dist/lib/util/flattenAllOf.d.ts +0 -2
  259. package/dist/lib/util/flattenAllOf.js +0 -23
  260. package/dist/lib/util/flattenAllOf.js.map +1 -1
  261. package/dist/lib/util/flattenAllOf.test.js +69 -13
  262. package/dist/lib/util/flattenAllOf.test.js.map +1 -1
  263. package/dist/lib/util/flattenAllOfProcessor.d.ts +2 -0
  264. package/dist/lib/util/flattenAllOfProcessor.js +48 -0
  265. package/dist/lib/util/flattenAllOfProcessor.js.map +1 -0
  266. package/dist/lib/util/invariant.d.ts +1 -1
  267. package/dist/lib/util/invariant.js +2 -2
  268. package/dist/lib/util/invariant.js.map +1 -1
  269. package/dist/lib/util/readFrontmatter.d.ts +6 -0
  270. package/dist/lib/util/readFrontmatter.js +13 -0
  271. package/dist/lib/util/readFrontmatter.js.map +1 -0
  272. package/dist/vite/api/SchemaManager.d.ts +17 -1
  273. package/dist/vite/api/SchemaManager.js +52 -11
  274. package/dist/vite/api/SchemaManager.js.map +1 -1
  275. package/dist/vite/api/SchemaManager.test.js +111 -0
  276. package/dist/vite/api/SchemaManager.test.js.map +1 -1
  277. package/dist/vite/build.js +91 -73
  278. package/dist/vite/build.js.map +1 -1
  279. package/dist/vite/config.js +16 -1
  280. package/dist/vite/config.js.map +1 -1
  281. package/dist/vite/dev-server.js +25 -0
  282. package/dist/vite/dev-server.js.map +1 -1
  283. package/dist/vite/error-handler.js +1 -5
  284. package/dist/vite/error-handler.js.map +1 -1
  285. package/dist/vite/mdx/remark-inject-filepath.js +5 -1
  286. package/dist/vite/mdx/remark-inject-filepath.js.map +1 -1
  287. package/dist/vite/mdx/remark-last-modified.js +57 -3
  288. package/dist/vite/mdx/remark-last-modified.js.map +1 -1
  289. package/dist/vite/mdx/remark-link-rewrite.js +4 -3
  290. package/dist/vite/mdx/remark-link-rewrite.js.map +1 -1
  291. package/dist/vite/pagefind-dev-index.d.ts +16 -0
  292. package/dist/vite/pagefind-dev-index.js +68 -0
  293. package/dist/vite/pagefind-dev-index.js.map +1 -0
  294. package/dist/vite/plugin-api-keys.js +5 -1
  295. package/dist/vite/plugin-api-keys.js.map +1 -1
  296. package/dist/vite/plugin-api.js +44 -4
  297. package/dist/vite/plugin-api.js.map +1 -1
  298. package/dist/vite/plugin-config.js +16 -4
  299. package/dist/vite/plugin-config.js.map +1 -1
  300. package/dist/vite/plugin-docs.js +9 -7
  301. package/dist/vite/plugin-docs.js.map +1 -1
  302. package/dist/vite/plugin-frontmatter.js +3 -5
  303. package/dist/vite/plugin-frontmatter.js.map +1 -1
  304. package/dist/vite/plugin-markdown-export.js +8 -7
  305. package/dist/vite/plugin-markdown-export.js.map +1 -1
  306. package/dist/vite/plugin-theme.js +2 -1
  307. package/dist/vite/plugin-theme.js.map +1 -1
  308. package/dist/vite/prerender/prerender.js +4 -20
  309. package/dist/vite/prerender/prerender.js.map +1 -1
  310. package/dist/vite/prerender/utils.d.ts +2 -0
  311. package/dist/vite/prerender/utils.js +30 -0
  312. package/dist/vite/prerender/utils.js.map +1 -0
  313. package/dist/vite/prerender/worker.js +6 -1
  314. package/dist/vite/prerender/worker.js.map +1 -1
  315. package/dist/vite/zuplo.d.ts +13 -0
  316. package/dist/vite/zuplo.js +15 -0
  317. package/dist/vite/zuplo.js.map +1 -0
  318. package/lib/ActionButton-B0CXL1Lq.js +25 -0
  319. package/lib/ActionButton-B0CXL1Lq.js.map +1 -0
  320. package/lib/Button-GUVe7pmt.js +54 -0
  321. package/lib/Button-GUVe7pmt.js.map +1 -0
  322. package/lib/{Card-KFniaZn5.js → Card-DCdq37aA.js} +2 -2
  323. package/lib/{Card-KFniaZn5.js.map → Card-DCdq37aA.js.map} +1 -1
  324. package/lib/ClaudeLogo-DoZ7fHHk.js +73 -0
  325. package/lib/ClaudeLogo-DoZ7fHHk.js.map +1 -0
  326. package/lib/{Command-CUcrW3qs.js → Command-N6VujV30.js} +26 -26
  327. package/lib/Command-N6VujV30.js.map +1 -0
  328. package/lib/{Dialog-BQciPiHN.js → Dialog-hlvmmQ_c.js} +2 -2
  329. package/lib/{Dialog-BQciPiHN.js.map → Dialog-hlvmmQ_c.js.map} +1 -1
  330. package/lib/{Drawer-Ci7XwhqT.js → Drawer-Ch7927PF.js} +7 -7
  331. package/lib/{Drawer-Ci7XwhqT.js.map → Drawer-Ch7927PF.js.map} +1 -1
  332. package/lib/DropdownMenu-DN0jNrjj.js +104 -0
  333. package/lib/DropdownMenu-DN0jNrjj.js.map +1 -0
  334. package/lib/Frame-DKlOmSkU.js +205 -0
  335. package/lib/Frame-DKlOmSkU.js.map +1 -0
  336. package/lib/HydrationBoundary-CJu4vUlG.js +601 -0
  337. package/lib/HydrationBoundary-CJu4vUlG.js.map +1 -0
  338. package/lib/IndexingDialog-D0YdGfbn.js +100 -0
  339. package/lib/IndexingDialog-D0YdGfbn.js.map +1 -0
  340. package/lib/Input-Cx-GeKoF.js +22 -0
  341. package/lib/Input-Cx-GeKoF.js.map +1 -0
  342. package/lib/MdxPage-Bc_5OsQ5.js +210 -0
  343. package/lib/MdxPage-Bc_5OsQ5.js.map +1 -0
  344. package/lib/Mermaid-Chx5BPHn.js +104 -0
  345. package/lib/Mermaid-Chx5BPHn.js.map +1 -0
  346. package/lib/{OAuthErrorPage-DnKnq4xK.js → OAuthErrorPage-D-VcZ5cO.js} +26 -23
  347. package/lib/OAuthErrorPage-D-VcZ5cO.js.map +1 -0
  348. package/lib/OasProvider-CZqLHoRo.js +48 -0
  349. package/lib/OasProvider-CZqLHoRo.js.map +1 -0
  350. package/lib/{OperationList-D8EDc9v7.js → OperationList-BmV1XvEY.js} +2136 -2002
  351. package/lib/OperationList-BmV1XvEY.js.map +1 -0
  352. package/lib/RouteGuard-Dns7HD7C.js +77 -0
  353. package/lib/RouteGuard-Dns7HD7C.js.map +1 -0
  354. package/lib/{SchemaList-E6lF7dID.js → SchemaList-D23IyrX5.js} +28 -27
  355. package/lib/SchemaList-D23IyrX5.js.map +1 -0
  356. package/lib/SchemaView-DVbiGPo3.js +438 -0
  357. package/lib/SchemaView-DVbiGPo3.js.map +1 -0
  358. package/lib/Secret-CyhXSA8i.js +263 -0
  359. package/lib/Secret-CyhXSA8i.js.map +1 -0
  360. package/lib/SignUp-DfEe1w5X.js +55 -0
  361. package/lib/SignUp-DfEe1w5X.js.map +1 -0
  362. package/lib/{SyntaxHighlight-C19vH0V_.js → SyntaxHighlight-N2RffYNz.js} +1469 -1411
  363. package/lib/SyntaxHighlight-N2RffYNz.js.map +1 -0
  364. package/lib/{Toc-DbWS75JZ.js → Toc-Cpo_HSYx.js} +3 -3
  365. package/lib/{Toc-DbWS75JZ.js.map → Toc-Cpo_HSYx.js.map} +1 -1
  366. package/lib/{ErrorAlert-_1Zmhr68.js → Zudoku-GbutmWzP.js} +5663 -4482
  367. package/lib/Zudoku-GbutmWzP.js.map +1 -0
  368. package/lib/ZudokuContext-LPkD2SQs.js +250 -0
  369. package/lib/ZudokuContext-LPkD2SQs.js.map +1 -0
  370. package/lib/ZudokuReactContext-DGJAP1sN.js +222 -0
  371. package/lib/ZudokuReactContext-DGJAP1sN.js.map +1 -0
  372. package/lib/chunk-EPOLDU6W-C6C8jAwd.js +8558 -0
  373. package/lib/chunk-EPOLDU6W-C6C8jAwd.js.map +1 -0
  374. package/lib/{circular-BoYo7au5.js → circular-DfSpMuY7.js} +6429 -6019
  375. package/lib/circular-DfSpMuY7.js.map +1 -0
  376. package/lib/{cn-dYga0KKN.js → cn-5-Gd1Dss.js} +531 -498
  377. package/lib/cn-5-Gd1Dss.js.map +1 -0
  378. package/lib/{createServer-B_BZ7xX8.js → createServer-4kaAMuIM.js} +2790 -2737
  379. package/lib/createServer-4kaAMuIM.js.map +1 -0
  380. package/lib/createVariantComponent-Dc0vtOvr.js +18 -0
  381. package/lib/createVariantComponent-Dc0vtOvr.js.map +1 -0
  382. package/lib/{errors-CD873hrG.js → errors-CtZTDEB6.js} +3 -3
  383. package/lib/{errors-CD873hrG.js.map → errors-CtZTDEB6.js.map} +1 -1
  384. package/lib/firebase-D286uF4e.js +7615 -0
  385. package/lib/firebase-D286uF4e.js.map +1 -0
  386. package/lib/hook-DyEn6D2Q.js +53 -0
  387. package/lib/hook-DyEn6D2Q.js.map +1 -0
  388. package/lib/{index-HNVs5cgX.js → index-B7bvsQHg.js} +853 -802
  389. package/lib/index-B7bvsQHg.js.map +1 -0
  390. package/lib/{index-BK0jKRrX.js → index-CVumYRba.js} +2 -2
  391. package/lib/{index-BK0jKRrX.js.map → index-CVumYRba.js.map} +1 -1
  392. package/lib/index-CrcNWbel.js.map +1 -1
  393. package/lib/index-DAWHN3cH.js +86 -0
  394. package/lib/index-DAWHN3cH.js.map +1 -0
  395. package/lib/index.esm-BYObtETB.js.map +1 -1
  396. package/lib/index.esm-BkpWrvLZ.js +34 -0
  397. package/lib/index.esm-BkpWrvLZ.js.map +1 -0
  398. package/lib/{index.esm-BnYHxCYC.js → index.esm-Ca5zvoff.js} +2 -2
  399. package/lib/{index.esm-BnYHxCYC.js.map → index.esm-Ca5zvoff.js.map} +1 -1
  400. package/lib/{invariant-Bm-FVUQE.js → invariant-B_t_F2s_.js} +4 -4
  401. package/lib/invariant-B_t_F2s_.js.map +1 -0
  402. package/lib/jsx-runtime-BzflLqGi.js.map +1 -1
  403. package/lib/{mutation-BSU0xu4m.js → mutation-B7eFBLZY.js} +70 -44
  404. package/lib/mutation-B7eFBLZY.js.map +1 -0
  405. package/lib/ui/Accordion.js +1 -1
  406. package/lib/ui/ActionButton.js +2 -2
  407. package/lib/ui/Alert.js +32 -20
  408. package/lib/ui/Alert.js.map +1 -1
  409. package/lib/ui/AlertDialog.js +1 -1
  410. package/lib/ui/Badge.js +1 -1
  411. package/lib/ui/Breadcrumb.js +1 -1
  412. package/lib/ui/Button.js +27 -25
  413. package/lib/ui/Button.js.map +1 -1
  414. package/lib/ui/ButtonGroup.js +77 -0
  415. package/lib/ui/ButtonGroup.js.map +1 -0
  416. package/lib/ui/Callout.js +1 -1
  417. package/lib/ui/Card.js +1 -1
  418. package/lib/ui/Carousel.js +1 -1
  419. package/lib/ui/Carousel.js.map +1 -1
  420. package/lib/ui/Checkbox.js +1 -1
  421. package/lib/ui/CodeBlock.js +1 -1
  422. package/lib/ui/Command.js +5 -5
  423. package/lib/ui/Command.js.map +1 -1
  424. package/lib/ui/Dialog.js +1 -1
  425. package/lib/ui/Drawer.js +3 -3
  426. package/lib/ui/DropdownMenu.js +227 -140
  427. package/lib/ui/DropdownMenu.js.map +1 -1
  428. package/lib/ui/EmbeddedCodeBlock.js +1 -1
  429. package/lib/ui/Form.js +1 -1
  430. package/lib/ui/Frame.js +1 -1
  431. package/lib/ui/HoverCard.js +1 -1
  432. package/lib/ui/Input.js +1 -1
  433. package/lib/ui/InputGroup.js +155 -0
  434. package/lib/ui/InputGroup.js.map +1 -0
  435. package/lib/ui/Item.js +1 -1
  436. package/lib/ui/Kbd.js +32 -0
  437. package/lib/ui/Kbd.js.map +1 -0
  438. package/lib/ui/Label.js +1 -1
  439. package/lib/ui/NativeSelect.js +1 -1
  440. package/lib/ui/Pagination.js +1 -1
  441. package/lib/ui/Popover.js +1 -1
  442. package/lib/ui/Progress.js +1 -1
  443. package/lib/ui/RadioGroup.js +1 -1
  444. package/lib/ui/ScrollArea.js +1 -1
  445. package/lib/ui/Secret.js +3 -3
  446. package/lib/ui/Secret.js.map +1 -1
  447. package/lib/ui/Separator.js +1 -1
  448. package/lib/ui/Skeleton.js +1 -1
  449. package/lib/ui/Slider.js +1 -1
  450. package/lib/ui/Switch.js +1 -1
  451. package/lib/ui/SyntaxHighlight.js +3 -3
  452. package/lib/ui/Tabs.js +1 -1
  453. package/lib/ui/Textarea.js +1 -1
  454. package/lib/ui/Toggle.js +1 -1
  455. package/lib/ui/ToggleGroup.js +1 -1
  456. package/lib/ui/Value.js +1 -1
  457. package/lib/ui/util.js +1 -1
  458. package/lib/useExposedProps-CzTDfXfq.js +30 -0
  459. package/lib/useExposedProps-CzTDfXfq.js.map +1 -0
  460. package/lib/useMutation-CErliDZ9.js +119 -0
  461. package/lib/useMutation-CErliDZ9.js.map +1 -0
  462. package/lib/useQuery-ht7aWJ3S.js +1212 -0
  463. package/lib/useQuery-ht7aWJ3S.js.map +1 -0
  464. package/lib/useSuspenseQuery-DQH4Bmc2.js +18 -0
  465. package/lib/useSuspenseQuery-DQH4Bmc2.js.map +1 -0
  466. package/lib/zudoku.__internal.js +1540 -1553
  467. package/lib/zudoku.__internal.js.map +1 -1
  468. package/lib/zudoku.auth-auth0.js +19 -18
  469. package/lib/zudoku.auth-auth0.js.map +1 -1
  470. package/lib/zudoku.auth-azureb2c.js +14 -13
  471. package/lib/zudoku.auth-azureb2c.js.map +1 -1
  472. package/lib/zudoku.auth-clerk.js +52 -75
  473. package/lib/zudoku.auth-clerk.js.map +1 -1
  474. package/lib/zudoku.auth-firebase.js +10 -0
  475. package/lib/zudoku.auth-firebase.js.map +1 -0
  476. package/lib/zudoku.auth-openid.js +8 -7
  477. package/lib/zudoku.auth-openid.js.map +1 -1
  478. package/lib/zudoku.auth-supabase.js +31 -40
  479. package/lib/zudoku.auth-supabase.js.map +1 -1
  480. package/lib/zudoku.components.js +29 -25
  481. package/lib/zudoku.components.js.map +1 -1
  482. package/lib/zudoku.hooks.js +20 -20
  483. package/lib/zudoku.hooks.js.map +1 -1
  484. package/lib/zudoku.mermaid.js +11 -0
  485. package/lib/zudoku.mermaid.js.map +1 -0
  486. package/lib/zudoku.plugin-api-catalog.js +42 -37
  487. package/lib/zudoku.plugin-api-catalog.js.map +1 -1
  488. package/lib/zudoku.plugin-api-keys.js +617 -550
  489. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  490. package/lib/zudoku.plugin-custom-pages.js +1 -1
  491. package/lib/zudoku.plugin-markdown.js +1 -1
  492. package/lib/zudoku.plugin-openapi.js +3 -3
  493. package/lib/zudoku.plugin-redirect.js +1 -1
  494. package/lib/zudoku.plugin-search-pagefind.js +186 -226
  495. package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
  496. package/lib/zudoku.plugins.js +9 -8
  497. package/lib/zudoku.plugins.js.map +1 -1
  498. package/lib/zudoku.react-query.js +441 -0
  499. package/lib/zudoku.react-query.js.map +1 -0
  500. package/lib/zudoku.router.js +1130 -1404
  501. package/lib/zudoku.router.js.map +1 -1
  502. package/package.json +63 -37
  503. package/src/app/defaultTheme.css +4 -0
  504. package/src/app/main.css +2 -0
  505. package/src/app/main.tsx +1 -1
  506. package/src/app/sentry.ts +1 -1
  507. package/src/lib/auth/issuer.ts +1 -1
  508. package/src/lib/authentication/authentication.ts +8 -2
  509. package/src/lib/authentication/components/CallbackHandler.tsx +1 -1
  510. package/src/lib/authentication/components/SignIn.tsx +5 -2
  511. package/src/lib/authentication/components/SignUp.tsx +5 -2
  512. package/src/lib/authentication/hook.ts +16 -0
  513. package/src/lib/authentication/providers/auth0.tsx +21 -10
  514. package/src/lib/authentication/providers/clerk.tsx +0 -26
  515. package/src/lib/authentication/providers/firebase.tsx +98 -6
  516. package/src/lib/authentication/providers/supabase.tsx +6 -15
  517. package/src/lib/authentication/ui/EmailVerificationUi.tsx +129 -0
  518. package/src/lib/authentication/ui/ZudokuAuthUi.tsx +181 -39
  519. package/src/lib/authentication/utils/relativeRedirectUrl.ts +12 -0
  520. package/src/lib/components/Bootstrap.tsx +1 -4
  521. package/src/lib/components/Mermaid.tsx +68 -0
  522. package/src/lib/components/MobileTopNavigation.tsx +16 -9
  523. package/src/lib/components/PagefindSearchMeta.tsx +14 -0
  524. package/src/lib/components/Pagination.tsx +4 -5
  525. package/src/lib/components/Slot.test.tsx +1 -1
  526. package/src/lib/components/TopNavigation.tsx +26 -8
  527. package/src/lib/components/Zudoku.tsx +22 -21
  528. package/src/lib/components/context/ZudokuContext.ts +33 -12
  529. package/src/lib/components/context/ZudokuProvider.tsx +1 -1
  530. package/src/lib/components/context/ZudokuReactContext.tsx +17 -0
  531. package/src/lib/components/index.ts +19 -35
  532. package/src/lib/components/navigation/Navigation.tsx +4 -3
  533. package/src/lib/components/navigation/NavigationCategory.tsx +9 -0
  534. package/src/lib/components/navigation/NavigationFilterContext.tsx +28 -0
  535. package/src/lib/components/navigation/NavigationFilterInput.tsx +35 -0
  536. package/src/lib/components/navigation/NavigationItem.tsx +26 -4
  537. package/src/lib/components/navigation/NavigationWrapper.tsx +1 -1
  538. package/src/lib/components/navigation/utils.ts +44 -2
  539. package/src/lib/core/RouteGuard.tsx +30 -24
  540. package/src/lib/core/ZudokuContext.ts +7 -1
  541. package/src/lib/core/__internal.tsx +2 -0
  542. package/src/lib/core/plugins.ts +27 -3
  543. package/src/lib/core/react-query.ts +1 -0
  544. package/src/lib/core/transform-config.test.tsx +99 -0
  545. package/src/lib/core/transform-config.ts +67 -0
  546. package/src/lib/errors/ErrorAlert.tsx +1 -6
  547. package/src/lib/errors/ErrorMessage.tsx +38 -0
  548. package/src/lib/hooks/index.ts +7 -16
  549. package/src/lib/hooks/useEvent.test.tsx +1 -1
  550. package/src/lib/navigation/pathMatcher.test.ts +136 -0
  551. package/src/lib/navigation/pathMatcher.ts +93 -0
  552. package/src/lib/navigation/positionItems.test.ts +265 -0
  553. package/src/lib/navigation/positionItems.ts +111 -0
  554. package/src/lib/oas/graphql/circular.test.ts +221 -0
  555. package/src/lib/oas/graphql/circular.ts +31 -18
  556. package/src/lib/oas/graphql/index.ts +7 -3
  557. package/src/lib/oas/parser/index.ts +19 -6
  558. package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +36 -476
  559. package/src/lib/plugins/api-keys/index.tsx +76 -32
  560. package/src/lib/plugins/api-keys/settings/ApiKeyItem.tsx +342 -0
  561. package/src/lib/plugins/api-keys/settings/ApiKeyList.tsx +67 -0
  562. package/src/lib/plugins/api-keys/settings/RevealApiKey.tsx +124 -0
  563. package/src/lib/plugins/openapi/DownloadSchemaButton.tsx +115 -0
  564. package/src/lib/plugins/openapi/Endpoint.tsx +20 -27
  565. package/src/lib/plugins/openapi/GeneratedExampleSidecarBox.tsx +1 -1
  566. package/src/lib/plugins/openapi/OasProvider.tsx +38 -17
  567. package/src/lib/plugins/openapi/OperationList.tsx +48 -28
  568. package/src/lib/plugins/openapi/OperationListItem.tsx +5 -5
  569. package/src/lib/plugins/openapi/ParamInfos.tsx +1 -0
  570. package/src/lib/plugins/openapi/ParameterList.tsx +2 -2
  571. package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +37 -15
  572. package/src/lib/plugins/openapi/SchemaList.tsx +4 -0
  573. package/src/lib/plugins/openapi/Sidecar.tsx +20 -3
  574. package/src/lib/plugins/openapi/index.tsx +16 -7
  575. package/src/lib/plugins/openapi/interfaces.ts +21 -7
  576. package/src/lib/plugins/openapi/playground/Playground.tsx +8 -4
  577. package/src/lib/plugins/openapi/playground/fileUtils.ts +4 -0
  578. package/src/lib/plugins/openapi/playground/result-panel/AudioPlayer.tsx +50 -0
  579. package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +33 -17
  580. package/src/lib/plugins/openapi/schema/SchemaView.tsx +56 -43
  581. package/src/lib/plugins/openapi/schema/utils.ts +20 -6
  582. package/src/lib/plugins/openapi/util/createHttpSnippet.ts +29 -1
  583. package/src/lib/plugins/openapi/util/getRoutes.tsx +38 -3
  584. package/src/lib/plugins/search-pagefind/IndexingDialog.tsx +163 -0
  585. package/src/lib/plugins/search-pagefind/PagefindSearch.tsx +61 -22
  586. package/src/lib/plugins/search-pagefind/ResultList.tsx +8 -3
  587. package/src/lib/shiki.ts +21 -12
  588. package/src/lib/ui/Alert.tsx +17 -5
  589. package/src/lib/ui/Button.tsx +11 -10
  590. package/src/lib/ui/ButtonGroup.tsx +82 -0
  591. package/src/lib/ui/Command.tsx +3 -3
  592. package/src/lib/ui/DropdownMenu.tsx +226 -170
  593. package/src/lib/ui/InputGroup.tsx +168 -0
  594. package/src/lib/ui/Kbd.tsx +28 -0
  595. package/src/lib/ui/Secret.tsx +2 -2
  596. package/src/lib/util/MdxComponents.tsx +2 -0
  597. package/src/lib/util/flattenAllOf.test.ts +73 -20
  598. package/src/lib/util/flattenAllOf.ts +0 -36
  599. package/src/lib/util/flattenAllOfProcessor.ts +58 -0
  600. package/src/lib/util/invariant.ts +2 -1
  601. package/src/lib/util/readFrontmatter.ts +14 -0
  602. package/src/shiki/langs/c3.js +1 -0
  603. package/src/shiki/langs/gn.js +1 -0
  604. package/src/shiki/langs/markdown-nix.js +1 -0
  605. package/src/shiki/langs/moonbit.js +1 -0
  606. package/src/shiki/langs/openscad.js +1 -0
  607. package/src/zuplo/enrich-with-zuplo-mcp.ts +168 -0
  608. package/src/zuplo/enrich-with-zuplo.ts +254 -0
  609. package/src/zuplo/policy-types.ts +46 -0
  610. package/src/zuplo/with-zuplo-processors.ts +35 -0
  611. package/src/zuplo/with-zuplo.ts +14 -0
  612. package/dist/vite/create-pagefind-index.d.ts +0 -4
  613. package/dist/vite/create-pagefind-index.js +0 -12
  614. package/dist/vite/create-pagefind-index.js.map +0 -1
  615. package/lib/Button-B3ucvvQw.js +0 -52
  616. package/lib/Button-B3ucvvQw.js.map +0 -1
  617. package/lib/Command-CUcrW3qs.js.map +0 -1
  618. package/lib/DropdownMenu-BZ2NKQ3K.js +0 -126
  619. package/lib/DropdownMenu-BZ2NKQ3K.js.map +0 -1
  620. package/lib/ErrorAlert-_1Zmhr68.js.map +0 -1
  621. package/lib/MdxPage-B2t1EShN.js +0 -240
  622. package/lib/MdxPage-B2t1EShN.js.map +0 -1
  623. package/lib/OAuthErrorPage-DnKnq4xK.js.map +0 -1
  624. package/lib/OasProvider-BhuIkD4Z.js +0 -36
  625. package/lib/OasProvider-BhuIkD4Z.js.map +0 -1
  626. package/lib/OperationList-D8EDc9v7.js.map +0 -1
  627. package/lib/Pagination-hk-llhpw.js +0 -37
  628. package/lib/Pagination-hk-llhpw.js.map +0 -1
  629. package/lib/RouteGuard-Brz95MSt.js +0 -77
  630. package/lib/RouteGuard-Brz95MSt.js.map +0 -1
  631. package/lib/RouterError-CMaIfdjb.js +0 -42
  632. package/lib/RouterError-CMaIfdjb.js.map +0 -1
  633. package/lib/SchemaList-E6lF7dID.js.map +0 -1
  634. package/lib/SchemaView-CIv-OXgv.js +0 -572
  635. package/lib/SchemaView-CIv-OXgv.js.map +0 -1
  636. package/lib/Select-DFRCS31-.js +0 -399
  637. package/lib/Select-DFRCS31-.js.map +0 -1
  638. package/lib/SignUp-sGYAsj2K.js +0 -50
  639. package/lib/SignUp-sGYAsj2K.js.map +0 -1
  640. package/lib/SyntaxHighlight-C19vH0V_.js.map +0 -1
  641. package/lib/ZudokuContext-BUZ5hkWB.js +0 -1508
  642. package/lib/ZudokuContext-BUZ5hkWB.js.map +0 -1
  643. package/lib/chunk-PVWAREVJ-BMhpCH5D.js +0 -7965
  644. package/lib/chunk-PVWAREVJ-BMhpCH5D.js.map +0 -1
  645. package/lib/circular-BoYo7au5.js.map +0 -1
  646. package/lib/cn-dYga0KKN.js.map +0 -1
  647. package/lib/createServer-B_BZ7xX8.js.map +0 -1
  648. package/lib/hook-CMeoxziF.js +0 -40
  649. package/lib/hook-CMeoxziF.js.map +0 -1
  650. package/lib/index-HNVs5cgX.js.map +0 -1
  651. package/lib/index-pMMX55GH.js +0 -1059
  652. package/lib/index-pMMX55GH.js.map +0 -1
  653. package/lib/invariant-Bm-FVUQE.js.map +0 -1
  654. package/lib/mutation-BSU0xu4m.js.map +0 -1
  655. package/lib/useExposedProps-U3pmsHaG.js +0 -113
  656. package/lib/useExposedProps-U3pmsHaG.js.map +0 -1
@@ -0,0 +1,254 @@
1
+ import type { OpenAPIV3_1 } from "openapi-types";
2
+ import type { ProcessorArg } from "../config/validators/BuildSchema.js";
3
+ import { objectEntries } from "../lib/util/objectEntries.js";
4
+ import type { RecordAny } from "../lib/util/traverse.js";
5
+ import type {
6
+ PoliciesConfigFile,
7
+ PolicyConfigurationFragment,
8
+ } from "./policy-types.js";
9
+
10
+ const API_KEY_REPLACEMENT_STRING = "YOUR_KEY_HERE";
11
+
12
+ const enrichWithApiKeyData = (
13
+ operationObject: RecordAny,
14
+ apiKeyPolicies: PolicyConfigurationFragment[],
15
+ ) => {
16
+ if (apiKeyPolicies.length === 0) {
17
+ return operationObject;
18
+ }
19
+
20
+ const firstPolicy = apiKeyPolicies[0];
21
+ const authorizationHeader =
22
+ (firstPolicy?.handler.options?.authHeader as string) || "Authorization";
23
+ const authorizationScheme = (firstPolicy?.handler.options?.authScheme ??
24
+ "Bearer") as string;
25
+ const authSchemeExample =
26
+ authorizationScheme !== ""
27
+ ? `${authorizationScheme} ${API_KEY_REPLACEMENT_STRING}`
28
+ : API_KEY_REPLACEMENT_STRING;
29
+
30
+ // Add API key header parameter
31
+ const apiKeyHeader: OpenAPIV3_1.ParameterObject = {
32
+ name: authorizationHeader,
33
+ in: "header",
34
+ required: true,
35
+ example: authSchemeExample,
36
+ schema: {
37
+ type: "string",
38
+ },
39
+ description: `The \`${authorizationHeader}\` header is used to authenticate with the API using your API key. Value is of the format \`${authSchemeExample}\`.`,
40
+ };
41
+
42
+ const parameters = operationObject.parameters || [];
43
+ if (
44
+ !parameters.some((param: RecordAny) => param.name === authorizationHeader)
45
+ ) {
46
+ operationObject.parameters = [apiKeyHeader, ...parameters];
47
+ }
48
+
49
+ // Add security scheme and requirement
50
+ const apiSecuritySchemeId = "api_key";
51
+ const apiKeySecurityRequirement = { [apiSecuritySchemeId]: [] };
52
+
53
+ if (!operationObject.security) {
54
+ operationObject.security = [apiKeySecurityRequirement];
55
+ } else if (
56
+ !operationObject.security.some((req: RecordAny) => req[apiSecuritySchemeId])
57
+ ) {
58
+ operationObject.security = [
59
+ apiKeySecurityRequirement,
60
+ ...operationObject.security,
61
+ ];
62
+ }
63
+
64
+ return operationObject;
65
+ };
66
+
67
+ const enrichWithRateLimitData = (
68
+ operationObject: RecordAny,
69
+ rateLimitPolicies: PolicyConfigurationFragment[],
70
+ ) => {
71
+ if (rateLimitPolicies.length === 0) {
72
+ return operationObject;
73
+ }
74
+
75
+ const shouldIncludeHeader = rateLimitPolicies.some(
76
+ (policy) => policy.handler.options?.headerMode !== "none",
77
+ );
78
+
79
+ if (!operationObject.responses) {
80
+ operationObject.responses = {};
81
+ }
82
+
83
+ if (!operationObject.responses["429"]) {
84
+ operationObject.responses["429"] = {
85
+ $ref: shouldIncludeHeader
86
+ ? "#/components/responses/RateLimitWithRetryAfter"
87
+ : "#/components/responses/RateLimitNoRetryAfter",
88
+ };
89
+ }
90
+
91
+ return operationObject;
92
+ };
93
+
94
+ // biome-ignore format: for readability
95
+ export const operations = [
96
+ "get", "put", "post", "delete",
97
+ "options", "head", "patch", "trace",
98
+ ];
99
+
100
+ const rateLimitingResponse: OpenAPIV3_1.ResponseObject = {
101
+ description: "Rate Limiting Response",
102
+ content: {
103
+ "application/json": {
104
+ schema: {
105
+ type: "object",
106
+ required: ["type", "title", "status"],
107
+ examples: [
108
+ {
109
+ type: "https://httpproblems.com/http-status/429",
110
+ title: "Too Many Requests",
111
+ status: 429,
112
+ instance: "/foo/bar",
113
+ },
114
+ ],
115
+ properties: {
116
+ type: {
117
+ type: "string",
118
+ example: "https://httpproblems.com/http-status/429",
119
+ description: "A URI reference that identifies the problem.",
120
+ },
121
+ title: {
122
+ type: "string",
123
+ example: "Too Many Requests",
124
+ description: "A short, human-readable summary of the problem.",
125
+ },
126
+ status: {
127
+ type: "number",
128
+ example: 429,
129
+ description: "The HTTP status code.",
130
+ },
131
+ instance: {
132
+ type: "string",
133
+ example: "/foo/bar",
134
+ },
135
+ },
136
+ },
137
+ },
138
+ },
139
+ };
140
+
141
+ const rateLimitingResponseWithHeader: OpenAPIV3_1.ResponseObject = {
142
+ ...rateLimitingResponse,
143
+ headers: {
144
+ "retry-after": {
145
+ description: "The number of seconds to wait before making a new request.",
146
+ schema: {
147
+ type: "integer",
148
+ example: 60,
149
+ },
150
+ },
151
+ },
152
+ };
153
+
154
+ export const enrichWithZuploData = ({
155
+ policiesConfig,
156
+ }: {
157
+ policiesConfig: PoliciesConfigFile;
158
+ }) => {
159
+ return ({ schema }: ProcessorArg) => {
160
+ if (!schema.paths) return schema;
161
+
162
+ let hasRateLimitPolicies = false;
163
+
164
+ for (const [, pathItem] of objectEntries<RecordAny>(schema.paths)) {
165
+ for (const method of operations) {
166
+ const operation = pathItem[method];
167
+ if (!operation?.["x-zuplo-route"]) continue;
168
+
169
+ const inboundPolicies = operation[
170
+ "x-zuplo-route"
171
+ ]?.policies?.inbound?.reduce((acc: string[], policyName: string) => {
172
+ const policy = policiesConfig.policies?.find(
173
+ ({ name }) => name === policyName,
174
+ );
175
+ if (!policy) return acc;
176
+
177
+ // Handle composite policies
178
+ if (policy.handler.export === "CompositeInboundPolicy") {
179
+ const childPolicies = policy.handler.options?.policies as
180
+ | string[]
181
+ | undefined;
182
+ return childPolicies ? [...acc, ...childPolicies] : acc;
183
+ }
184
+
185
+ return [...acc, policyName];
186
+ }, []);
187
+
188
+ if (!inboundPolicies) continue;
189
+
190
+ // Find API key policies
191
+ const apiKeyPolicies =
192
+ policiesConfig.policies?.filter(
193
+ (policy) =>
194
+ inboundPolicies.includes(policy.name) &&
195
+ (policy.handler.export === "ApiAuthKeyInboundPolicy" ||
196
+ policy.handler.export === "ApiKeyInboundPolicy") &&
197
+ !policy.handler.options
198
+ ?.disableAutomaticallyAddingKeyHeaderToOpenApi,
199
+ ) ?? [];
200
+
201
+ // Find rate limit policies
202
+ const rateLimitPolicies =
203
+ policiesConfig.policies?.filter(
204
+ (policy) =>
205
+ inboundPolicies.includes(policy.name) &&
206
+ (policy.handler.export === "RateLimitInboundPolicy" ||
207
+ policy.handler.export === "ComplexRateLimitInboundPolicy"),
208
+ ) ?? [];
209
+
210
+ if (rateLimitPolicies.length > 0) {
211
+ hasRateLimitPolicies = true;
212
+ }
213
+
214
+ // Apply enrichments directly to the operation
215
+ pathItem[method] = enrichWithApiKeyData(operation, apiKeyPolicies);
216
+ pathItem[method] = enrichWithRateLimitData(
217
+ pathItem[method],
218
+ rateLimitPolicies,
219
+ );
220
+ }
221
+ }
222
+
223
+ // Add security scheme if we have API key policies
224
+ if (
225
+ policiesConfig.policies?.some(
226
+ (policy) =>
227
+ policy.handler.export === "ApiAuthKeyInboundPolicy" ||
228
+ policy.handler.export === "ApiKeyInboundPolicy",
229
+ )
230
+ ) {
231
+ if (!schema.components) schema.components = {};
232
+ if (!schema.components.securitySchemes)
233
+ schema.components.securitySchemes = {};
234
+
235
+ if (!schema.components.securitySchemes.api_key) {
236
+ schema.components.securitySchemes.api_key = {
237
+ type: "http",
238
+ scheme: "bearer",
239
+ };
240
+ }
241
+ }
242
+
243
+ // Add rate limiting responses only if we found rate limiting policies
244
+ if (hasRateLimitPolicies) {
245
+ if (!schema.components) schema.components = {};
246
+ if (!schema.components.responses) schema.components.responses = {};
247
+ schema.components.responses.RateLimitNoRetryAfter = rateLimitingResponse;
248
+ schema.components.responses.RateLimitWithRetryAfter =
249
+ rateLimitingResponseWithHeader;
250
+ }
251
+
252
+ return schema;
253
+ };
254
+ };
@@ -0,0 +1,46 @@
1
+ /**
2
+ * This file was automatically generated by json-schema-to-typescript.
3
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
4
+ * and run json-schema-to-typescript to regenerate this file.
5
+ */
6
+
7
+ export interface PoliciesConfigFile {
8
+ policies?: PolicyConfigurationFragment[];
9
+ corsPolicies?: CorsPolicyConfiguration[];
10
+ }
11
+ export interface PolicyConfigurationFragment {
12
+ name: string;
13
+ policyType: string;
14
+ handler: HandlerDefinition;
15
+ options?: {
16
+ [k: string]: unknown;
17
+ };
18
+ }
19
+ export interface HandlerDefinition {
20
+ module: string;
21
+ export: string;
22
+ options?: {
23
+ [k: string]: unknown;
24
+ };
25
+ }
26
+ export interface CorsPolicyConfiguration {
27
+ name: string;
28
+ allowCredentials?: boolean;
29
+ maxAge?: number;
30
+ allowedOrigins: string[] | string;
31
+ allowedMethods?:
32
+ | (
33
+ | "GET"
34
+ | "HEAD"
35
+ | "POST"
36
+ | "PUT"
37
+ | "DELETE"
38
+ | "CONNECT"
39
+ | "OPTIONS"
40
+ | "TRACE"
41
+ | "PATCH"
42
+ )[]
43
+ | string;
44
+ allowedHeaders?: string[] | string;
45
+ exposeHeaders?: string[] | string;
46
+ }
@@ -0,0 +1,35 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { ZuploEnv } from "../app/env.js";
4
+ import type {
5
+ Processor,
6
+ ProcessorArg,
7
+ } from "../config/validators/BuildSchema.js";
8
+ import { removeExtensions } from "../lib/plugins/openapi/processors/removeExtensions.js";
9
+ import { removeParameters } from "../lib/plugins/openapi/processors/removeParameters.js";
10
+ import { removePaths } from "../lib/plugins/openapi/processors/removePaths.js";
11
+ import { enrichWithZuploData } from "./enrich-with-zuplo.js";
12
+ import { enrichWithZuploMcpServerData } from "./enrich-with-zuplo-mcp.js";
13
+
14
+ export const getProcessors = async (rootDir: string): Promise<Processor[]> => {
15
+ const policiesConfig = JSON.parse(
16
+ await fs.readFile(path.join(rootDir, "../config/policies.json"), "utf-8"),
17
+ );
18
+
19
+ return [
20
+ removePaths({ shouldRemove: ({ operation }) => operation["x-internal"] }),
21
+ removeParameters({
22
+ shouldRemove: ({ parameter }) => parameter["x-internal"],
23
+ }),
24
+ enrichWithZuploData({ policiesConfig }),
25
+ enrichWithZuploMcpServerData({ rootDir }),
26
+ ({ schema }: ProcessorArg) => {
27
+ const url = ZuploEnv.serverUrl;
28
+ if (!url) return schema;
29
+ return { ...schema, servers: [{ url }] };
30
+ },
31
+ removeExtensions({ shouldRemove: (key) => key.startsWith("x-zuplo") }),
32
+ ];
33
+ };
34
+
35
+ export default getProcessors;
@@ -0,0 +1,14 @@
1
+ import type { ZudokuConfig } from "../config/validators/validate.js";
2
+
3
+ /**
4
+ * @deprecated `withZuplo` is no longer needed and will automatically be applied. It will be removed in a future version.
5
+ */
6
+ const withZuplo = (config: ZudokuConfig): ZudokuConfig => {
7
+ // biome-ignore lint/suspicious/noConsole: Logging allowed here
8
+ console.warn(
9
+ "`withZuplo` is no longer needed and will automatically be applied. It will be removed in a future version.",
10
+ );
11
+ return config;
12
+ };
13
+
14
+ export default withZuplo;
@@ -1,4 +0,0 @@
1
- export declare const createPagefindIndex: (options: {
2
- dir: string;
3
- outDir?: string;
4
- }) => Promise<string>;
@@ -1,12 +0,0 @@
1
- import path from "node:path";
2
- import invariant from "../lib/util/invariant.js";
3
- export const createPagefindIndex = async (options) => {
4
- const pagefind = await import("pagefind");
5
- const { index, errors } = await pagefind.createIndex();
6
- invariant(index, `Failed to create pagefind index: ${errors.join(", ")}`);
7
- const outputPath = path.join(options.outDir ?? options.dir, "pagefind");
8
- await index.addDirectory({ path: options.dir });
9
- await index.writeFiles({ outputPath });
10
- return outputPath;
11
- };
12
- //# sourceMappingURL=create-pagefind-index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-pagefind-index.js","sourceRoot":"","sources":["../../src/vite/create-pagefind-index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,SAAS,MAAM,0BAA0B,CAAC;AAEjD,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,OAGzC,EAAE,EAAE;IACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;IAEvD,SAAS,CAAC,KAAK,EAAE,oCAAoC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE1E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAExE,MAAM,KAAK,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAChD,MAAM,KAAK,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IAEvC,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC"}
@@ -1,52 +0,0 @@
1
- import { j as d } from "./jsx-runtime-BzflLqGi.js";
2
- import { Slot as a } from "@radix-ui/react-slot";
3
- import { c as u } from "./index-DI5SPFK9.js";
4
- import * as c from "react";
5
- import { c as x } from "./cn-dYga0KKN.js";
6
- const f = u(
7
- "not-prose inline-flex shrink-0 items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",
8
- {
9
- variants: {
10
- variant: {
11
- default: "bg-primary text-primary-foreground shadow-sm hover:bg-primary/90",
12
- destructive: "bg-destructive text-destructive-foreground shadow-xs hover:bg-destructive/90",
13
- outline: "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground",
14
- secondary: "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",
15
- ghost: "hover:bg-accent hover:text-accent-foreground",
16
- "ghost-destructive": "text-destructive hover:bg-destructive hover:text-destructive-foreground",
17
- link: "text-primary underline-offset-4 hover:underline",
18
- expand: "flex gap-1.5 border bg-transparent rounded-xl text-muted-foreground hover:text-foreground"
19
- },
20
- size: {
21
- default: "h-9 px-4 py-2",
22
- sm: "h-8 rounded-md px-3 text-xs",
23
- lg: "h-10 rounded-md px-8",
24
- xl: "h-14 rounded-lg px-10 text-lg",
25
- icon: "size-9",
26
- "icon-xs": "size-7",
27
- "icon-xxs": "size-5"
28
- }
29
- },
30
- defaultVariants: {
31
- variant: "default",
32
- size: "default"
33
- }
34
- }
35
- ), g = c.forwardRef(
36
- ({ className: e, variant: t, size: r, asChild: o = !1, ...n }, s) => {
37
- const i = o ? a : "button";
38
- return /* @__PURE__ */ d.jsx(
39
- i,
40
- {
41
- className: x(f({ variant: t, size: r, className: e })),
42
- ref: s,
43
- ...n
44
- }
45
- );
46
- }
47
- );
48
- g.displayName = "Button";
49
- export {
50
- g as B
51
- };
52
- //# sourceMappingURL=Button-B3ucvvQw.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Button-B3ucvvQw.js","sources":["../src/lib/ui/Button.tsx"],"sourcesContent":["import { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nexport const buttonVariants = cva(\n \"not-prose inline-flex shrink-0 items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow-sm hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground shadow-xs hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n \"ghost-destructive\":\n \"text-destructive hover:bg-destructive hover:text-destructive-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n expand:\n \"flex gap-1.5 border bg-transparent rounded-xl text-muted-foreground hover:text-foreground\",\n },\n size: {\n default: \"h-9 px-4 py-2\",\n sm: \"h-8 rounded-md px-3 text-xs\",\n lg: \"h-10 rounded-md px-8\",\n xl: \"h-14 rounded-lg px-10 text-lg\",\n icon: \"size-9\",\n \"icon-xs\": \"size-7\",\n \"icon-xxs\": \"size-5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n );\n },\n);\nButton.displayName = \"Button\";\n"],"names":["buttonVariants","cva","Button","React","className","variant","size","asChild","props","ref","Comp","Slot","jsx","cn"],"mappings":";;;;;AAKO,MAAMA,IAAiBC;AAAA,EAC5B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,aACE;AAAA,QACF,SACE;AAAA,QACF,WACE;AAAA,QACF,OAAO;AAAA,QACP,qBACE;AAAA,QACF,MAAM;AAAA,QACN,QACE;AAAA,MAAA;AAAA,MAEJ,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,WAAW;AAAA,QACX,YAAY;AAAA,MAAA;AAAA,IACd;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ,GAQaC,IAASC,EAAM;AAAA,EAC1B,CAAC,EAAE,WAAAC,GAAW,SAAAC,GAAS,MAAAC,GAAM,SAAAC,IAAU,IAAO,GAAGC,EAAA,GAASC,MAAQ;AAChE,UAAMC,IAAOH,IAAUI,IAAO;AAC9B,WACEC,gBAAAA,EAAAA;AAAAA,MAACF;AAAA,MAAA;AAAA,QACC,WAAWG,EAAGb,EAAe,EAAE,SAAAK,GAAS,MAAAC,GAAM,WAAAF,EAAA,CAAW,CAAC;AAAA,QAC1D,KAAAK;AAAA,QACC,GAAGD;AAAA,MAAA;AAAA,IAAA;AAAA,EAGV;AACF;AACAN,EAAO,cAAc;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Command-CUcrW3qs.js","sources":["../src/lib/ui/Command.tsx"],"sourcesContent":["import type { DialogProps } from \"@radix-ui/react-dialog\";\nimport { Command as CommandPrimitive } from \"cmdk\";\nimport { Search } from \"lucide-react\";\nimport type { ComponentPropsWithoutRef } from \"react\";\nimport * as React from \"react\";\nimport { Dialog, DialogContent } from \"zudoku/ui/Dialog.js\";\nimport { cn } from \"../util/cn.js\";\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\n className,\n )}\n {...props}\n />\n));\nCommand.displayName = CommandPrimitive.displayName;\n\nconst CommandDialog = ({\n children,\n command,\n content,\n ...props\n}: DialogProps & {\n command?: ComponentPropsWithoutRef<typeof CommandPrimitive>;\n content?: ComponentPropsWithoutRef<typeof DialogContent>;\n}) => {\n return (\n <Dialog {...props}>\n <DialogContent\n {...content}\n className={cn(\n \"overflow-hidden p-0 shadow-lg top-[15vh] translate-y-[0%]\",\n content?.className,\n )}\n aria-describedby={undefined}\n >\n <Command\n {...command}\n className={cn(\n \"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\",\n command?.className,\n )}\n >\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n );\n};\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n </div>\n));\n\nCommandInput.displayName = CommandPrimitive.Input.displayName;\n\nconst CommandInlineInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center\" cmdk-input-wrapper=\"\">\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-xs transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-hidden disabled:cursor-not-allowed disabled:opacity-50\",\n \"focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring\",\n className,\n )}\n {...props}\n />\n </div>\n));\n\nCommandInlineInput.displayName = CommandPrimitive.Input.displayName;\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)}\n {...props}\n />\n));\n\nCommandList.displayName = CommandPrimitive.List.displayName;\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty\n ref={ref}\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n));\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\n className,\n )}\n {...props}\n />\n));\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n));\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default gap-2 select-none items-center rounded-xs px-2 py-1.5 text-sm outline-hidden data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n />\n));\n\nCommandItem.displayName = CommandPrimitive.Item.displayName;\n\nconst CommandShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n};\nCommandShortcut.displayName = \"CommandShortcut\";\n\nexport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInlineInput,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut,\n};\n"],"names":["Command","React","className","props","ref","jsx","CommandPrimitive","cn","CommandDialog","children","command","content","Dialog","DialogContent","CommandInput","jsxs","Search","CommandInlineInput","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem"],"mappings":"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"}
@@ -1,126 +0,0 @@
1
- import { j as t } from "./jsx-runtime-BzflLqGi.js";
2
- import * as e from "@radix-ui/react-dropdown-menu";
3
- import { ChevronRightIcon as l, CheckIcon as c, DotIcon as m } from "lucide-react";
4
- import * as n from "react";
5
- import { c as r } from "./cn-dYga0KKN.js";
6
- const I = e.Root, R = e.Trigger, v = e.Group, p = n.forwardRef(({ className: a, inset: o, children: s, ...d }, i) => /* @__PURE__ */ t.jsxs(
7
- e.SubTrigger,
8
- {
9
- ref: i,
10
- className: r(
11
- "flex cursor-default select-none items-center rounded-xs px-2 py-1.5 text-sm outline-hidden focus:bg-accent data-[state=open]:bg-accent",
12
- o && "pl-8",
13
- a
14
- ),
15
- ...d,
16
- children: [
17
- s,
18
- /* @__PURE__ */ t.jsx(l, { className: "ml-auto h-4 w-4" })
19
- ]
20
- }
21
- ));
22
- p.displayName = e.SubTrigger.displayName;
23
- const f = n.forwardRef(({ className: a, ...o }, s) => /* @__PURE__ */ t.jsx(
24
- e.SubContent,
25
- {
26
- ref: s,
27
- className: r(
28
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
29
- a
30
- ),
31
- ...o
32
- }
33
- ));
34
- f.displayName = e.SubContent.displayName;
35
- const u = n.forwardRef(({ className: a, sideOffset: o = 4, ...s }, d) => /* @__PURE__ */ t.jsx(e.Portal, { children: /* @__PURE__ */ t.jsx(
36
- e.Content,
37
- {
38
- ref: d,
39
- sideOffset: o,
40
- className: r(
41
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md",
42
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
43
- a
44
- ),
45
- ...s
46
- }
47
- ) }));
48
- u.displayName = e.Content.displayName;
49
- const x = n.forwardRef(({ className: a, inset: o, ...s }, d) => /* @__PURE__ */ t.jsx(
50
- e.Item,
51
- {
52
- ref: d,
53
- className: r(
54
- "relative flex cursor-default select-none items-center rounded-xs px-2 py-1.5 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
55
- o && "pl-8",
56
- a
57
- ),
58
- ...s
59
- }
60
- ));
61
- x.displayName = e.Item.displayName;
62
- const b = n.forwardRef(({ className: a, children: o, checked: s, ...d }, i) => /* @__PURE__ */ t.jsxs(
63
- e.CheckboxItem,
64
- {
65
- ref: i,
66
- className: r(
67
- "relative flex cursor-default select-none items-center rounded-xs py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
68
- a
69
- ),
70
- checked: s,
71
- ...d,
72
- children: [
73
- /* @__PURE__ */ t.jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ t.jsx(e.ItemIndicator, { children: /* @__PURE__ */ t.jsx(c, { className: "h-4 w-4" }) }) }),
74
- o
75
- ]
76
- }
77
- ));
78
- b.displayName = e.CheckboxItem.displayName;
79
- const h = n.forwardRef(({ className: a, children: o, ...s }, d) => /* @__PURE__ */ t.jsxs(
80
- e.RadioItem,
81
- {
82
- ref: d,
83
- className: r(
84
- "relative flex cursor-default select-none items-center rounded-xs py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
85
- a
86
- ),
87
- ...s,
88
- children: [
89
- /* @__PURE__ */ t.jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ t.jsx(e.ItemIndicator, { children: /* @__PURE__ */ t.jsx(m, { className: "h-4 w-4 fill-current" }) }) }),
90
- o
91
- ]
92
- }
93
- ));
94
- h.displayName = e.RadioItem.displayName;
95
- const w = n.forwardRef(({ className: a, inset: o, ...s }, d) => /* @__PURE__ */ t.jsx(
96
- e.Label,
97
- {
98
- ref: d,
99
- className: r(
100
- "px-2 py-1.5 text-sm font-semibold",
101
- o && "pl-8",
102
- a
103
- ),
104
- ...s
105
- }
106
- ));
107
- w.displayName = e.Label.displayName;
108
- const g = n.forwardRef(({ className: a, ...o }, s) => /* @__PURE__ */ t.jsx(
109
- e.Separator,
110
- {
111
- ref: s,
112
- className: r("-mx-1 my-1 h-px bg-muted", a),
113
- ...o
114
- }
115
- ));
116
- g.displayName = e.Separator.displayName;
117
- export {
118
- I as D,
119
- R as a,
120
- u as b,
121
- x as c,
122
- w as d,
123
- g as e,
124
- v as f
125
- };
126
- //# sourceMappingURL=DropdownMenu-BZ2NKQ3K.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DropdownMenu-BZ2NKQ3K.js","sources":["../src/lib/ui/DropdownMenu.tsx"],"sourcesContent":["import * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\n\nimport { CheckIcon, ChevronRightIcon, DotIcon } from \"lucide-react\";\nimport * as React from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nconst DropdownMenu = DropdownMenuPrimitive.Root;\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center rounded-xs px-2 py-1.5 text-sm outline-hidden focus:bg-accent data-[state=open]:bg-accent\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto h-4 w-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName =\n DropdownMenuPrimitive.SubTrigger.displayName;\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuSubContent.displayName =\n DropdownMenuPrimitive.SubContent.displayName;\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n));\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-xs px-2 py-1.5 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-xs py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"h-4 w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName;\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-xs py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <DotIcon className=\"h-4 w-4 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n));\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\"ml-auto text-xs tracking-widest opacity-60\", className)}\n {...props}\n />\n );\n};\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\nexport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n};\n"],"names":["DropdownMenu","DropdownMenuPrimitive","DropdownMenuTrigger","DropdownMenuGroup","DropdownMenuSubTrigger","React","className","inset","children","props","ref","jsxs","cn","jsx","ChevronRightIcon","DropdownMenuSubContent","DropdownMenuContent","sideOffset","DropdownMenuItem","DropdownMenuCheckboxItem","checked","CheckIcon","DropdownMenuRadioItem","DotIcon","DropdownMenuLabel","DropdownMenuSeparator"],"mappings":"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"}