zudoku 0.0.0-fix-downgrade-openapi-parser.aac00796 → 0.0.0-fix-firebase-export.2e421fda

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 (566) hide show
  1. package/dist/app/main.d.ts +91 -1
  2. package/dist/app/main.js +5 -1
  3. package/dist/app/main.js.map +1 -1
  4. package/dist/app/sentry.js +1 -1
  5. package/dist/config/config.d.ts +15 -46
  6. package/dist/config/validators/BuildSchema.js +18 -3
  7. package/dist/config/validators/BuildSchema.js.map +1 -1
  8. package/dist/config/validators/InputNavigationSchema.d.ts +61 -61
  9. package/dist/config/validators/NavigationSchema.js +2 -4
  10. package/dist/config/validators/NavigationSchema.js.map +1 -1
  11. package/dist/config/validators/ProtectedRoutesSchema.d.ts +1 -1
  12. package/dist/config/validators/validate.d.ts +203 -5
  13. package/dist/config/validators/validate.js +44 -1
  14. package/dist/config/validators/validate.js.map +1 -1
  15. package/dist/config/validators/validate.test.js +43 -0
  16. package/dist/config/validators/validate.test.js.map +1 -1
  17. package/dist/flat-config.d.ts +31 -2
  18. package/dist/lib/auth/issuer.js +3 -0
  19. package/dist/lib/auth/issuer.js.map +1 -1
  20. package/dist/lib/authentication/authentication.d.ts +1 -1
  21. package/dist/lib/authentication/providers/auth0.js +6 -1
  22. package/dist/lib/authentication/providers/auth0.js.map +1 -1
  23. package/dist/lib/authentication/providers/firebase.d.ts +4 -0
  24. package/dist/lib/authentication/providers/firebase.js +215 -0
  25. package/dist/lib/authentication/providers/firebase.js.map +1 -0
  26. package/dist/lib/authentication/providers/supabase.js +1 -6
  27. package/dist/lib/authentication/providers/supabase.js.map +1 -1
  28. package/dist/lib/authentication/ui/ZudokuAuthUi.d.ts +24 -0
  29. package/dist/lib/authentication/ui/ZudokuAuthUi.js +124 -0
  30. package/dist/lib/authentication/ui/ZudokuAuthUi.js.map +1 -0
  31. package/dist/lib/authentication/ui/icons/Apple.d.ts +3 -0
  32. package/dist/lib/authentication/ui/icons/Apple.js +4 -0
  33. package/dist/lib/authentication/ui/icons/Apple.js.map +1 -0
  34. package/dist/lib/authentication/ui/icons/Facebook.d.ts +3 -0
  35. package/dist/lib/authentication/ui/icons/Facebook.js +4 -0
  36. package/dist/lib/authentication/ui/icons/Facebook.js.map +1 -0
  37. package/dist/lib/authentication/ui/icons/Github.d.ts +3 -0
  38. package/dist/lib/authentication/ui/icons/Github.js +4 -0
  39. package/dist/lib/authentication/ui/icons/Github.js.map +1 -0
  40. package/dist/lib/authentication/ui/icons/Google.d.ts +3 -0
  41. package/dist/lib/authentication/ui/icons/Google.js +4 -0
  42. package/dist/lib/authentication/ui/icons/Google.js.map +1 -0
  43. package/dist/lib/authentication/ui/icons/Microsoft.d.ts +3 -0
  44. package/dist/lib/authentication/ui/icons/Microsoft.js +4 -0
  45. package/dist/lib/authentication/ui/icons/Microsoft.js.map +1 -0
  46. package/dist/lib/authentication/ui/icons/X.d.ts +3 -0
  47. package/dist/lib/authentication/ui/icons/X.js +4 -0
  48. package/dist/lib/authentication/ui/icons/X.js.map +1 -0
  49. package/dist/lib/components/Autocomplete.d.ts +3 -1
  50. package/dist/lib/components/Autocomplete.js +6 -2
  51. package/dist/lib/components/Autocomplete.js.map +1 -1
  52. package/dist/lib/components/Heading.d.ts +1 -1
  53. package/dist/lib/components/Layout.js +3 -2
  54. package/dist/lib/components/Layout.js.map +1 -1
  55. package/dist/lib/components/Mermaid.d.ts +7 -0
  56. package/dist/lib/components/Mermaid.js +42 -0
  57. package/dist/lib/components/Mermaid.js.map +1 -0
  58. package/dist/lib/components/PagefindSearchMeta.d.ts +8 -0
  59. package/dist/lib/components/PagefindSearchMeta.js +7 -0
  60. package/dist/lib/components/PagefindSearchMeta.js.map +1 -0
  61. package/dist/lib/components/Zudoku.js +2 -5
  62. package/dist/lib/components/Zudoku.js.map +1 -1
  63. package/dist/lib/components/navigation/NavigationItem.js +2 -2
  64. package/dist/lib/components/navigation/NavigationItem.js.map +1 -1
  65. package/dist/lib/core/RouteGuard.js +7 -7
  66. package/dist/lib/core/RouteGuard.js.map +1 -1
  67. package/dist/lib/core/plugins.d.ts +3 -3
  68. package/dist/lib/errors/ErrorAlert.js +1 -1
  69. package/dist/lib/errors/RouterError.d.ts +3 -1
  70. package/dist/lib/errors/RouterError.js +3 -2
  71. package/dist/lib/errors/RouterError.js.map +1 -1
  72. package/dist/lib/oas/parser/index.d.ts +1 -0
  73. package/dist/lib/oas/parser/index.js +7 -3
  74. package/dist/lib/oas/parser/index.js.map +1 -1
  75. package/dist/lib/plugins/api-keys/ProtectedRoute.js +4 -1
  76. package/dist/lib/plugins/api-keys/ProtectedRoute.js.map +1 -1
  77. package/dist/lib/plugins/openapi/CollapsibleCode.d.ts +1 -0
  78. package/dist/lib/plugins/openapi/CollapsibleCode.js +2 -1
  79. package/dist/lib/plugins/openapi/CollapsibleCode.js.map +1 -1
  80. package/dist/lib/plugins/openapi/DownloadSchemaButton.d.ts +3 -0
  81. package/dist/lib/plugins/openapi/DownloadSchemaButton.js +47 -0
  82. package/dist/lib/plugins/openapi/DownloadSchemaButton.js.map +1 -0
  83. package/dist/lib/plugins/openapi/Endpoint.js +3 -6
  84. package/dist/lib/plugins/openapi/Endpoint.js.map +1 -1
  85. package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.d.ts +5 -0
  86. package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.js +10 -0
  87. package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.js.map +1 -0
  88. package/dist/lib/plugins/openapi/OasProvider.js +22 -13
  89. package/dist/lib/plugins/openapi/OasProvider.js.map +1 -1
  90. package/dist/lib/plugins/openapi/OperationList.js +16 -6
  91. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  92. package/dist/lib/plugins/openapi/OperationListItem.d.ts +2 -1
  93. package/dist/lib/plugins/openapi/OperationListItem.js +4 -3
  94. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  95. package/dist/lib/plugins/openapi/ParameterList.js +7 -4
  96. package/dist/lib/plugins/openapi/ParameterList.js.map +1 -1
  97. package/dist/lib/plugins/openapi/ParameterListItem.js +17 -6
  98. package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
  99. package/dist/lib/plugins/openapi/RequestBodySidecarBox.d.ts +9 -2
  100. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js +5 -2
  101. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js.map +1 -1
  102. package/dist/lib/plugins/openapi/ResponsesSidecarBox.d.ts +4 -2
  103. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +26 -4
  104. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
  105. package/dist/lib/plugins/openapi/SchemaList.js +2 -1
  106. package/dist/lib/plugins/openapi/SchemaList.js.map +1 -1
  107. package/dist/lib/plugins/openapi/Sidecar.d.ts +2 -2
  108. package/dist/lib/plugins/openapi/Sidecar.js +61 -26
  109. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  110. package/dist/lib/plugins/openapi/SidecarBox.js +4 -4
  111. package/dist/lib/plugins/openapi/SidecarBox.js.map +1 -1
  112. package/dist/lib/plugins/openapi/SidecarExamples.d.ts +9 -2
  113. package/dist/lib/plugins/openapi/SidecarExamples.js +24 -43
  114. package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -1
  115. package/dist/lib/plugins/openapi/components/ConstValue.js +1 -1
  116. package/dist/lib/plugins/openapi/components/ConstValue.js.map +1 -1
  117. package/dist/lib/plugins/openapi/components/EnumValues.js +1 -1
  118. package/dist/lib/plugins/openapi/components/EnumValues.js.map +1 -1
  119. package/dist/lib/plugins/openapi/components/NonHighlightedCode.d.ts +4 -0
  120. package/dist/lib/plugins/openapi/components/NonHighlightedCode.js +5 -0
  121. package/dist/lib/plugins/openapi/components/NonHighlightedCode.js.map +1 -0
  122. package/dist/lib/plugins/openapi/components/ResponseContent.js +5 -6
  123. package/dist/lib/plugins/openapi/components/ResponseContent.js.map +1 -1
  124. package/dist/lib/plugins/openapi/index.js +11 -5
  125. package/dist/lib/plugins/openapi/index.js.map +1 -1
  126. package/dist/lib/plugins/openapi/interfaces.d.ts +29 -13
  127. package/dist/lib/plugins/openapi/playground/BodyPanel.js +67 -15
  128. package/dist/lib/plugins/openapi/playground/BodyPanel.js.map +1 -1
  129. package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js +2 -2
  130. package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js.map +1 -1
  131. package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js +1 -1
  132. package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js.map +1 -1
  133. package/dist/lib/plugins/openapi/playground/Headers.js +23 -83
  134. package/dist/lib/plugins/openapi/playground/Headers.js.map +1 -1
  135. package/dist/lib/plugins/openapi/playground/ParamsGrid.d.ts +10 -2
  136. package/dist/lib/plugins/openapi/playground/ParamsGrid.js +8 -1
  137. package/dist/lib/plugins/openapi/playground/ParamsGrid.js.map +1 -1
  138. package/dist/lib/plugins/openapi/playground/PathParams.js +2 -3
  139. package/dist/lib/plugins/openapi/playground/PathParams.js.map +1 -1
  140. package/dist/lib/plugins/openapi/playground/Playground.d.ts +7 -0
  141. package/dist/lib/plugins/openapi/playground/Playground.js +58 -26
  142. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  143. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +3 -2
  144. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js.map +1 -1
  145. package/dist/lib/plugins/openapi/playground/QueryParams.js +16 -40
  146. package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
  147. package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.d.ts +8 -0
  148. package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.js +19 -0
  149. package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.js.map +1 -0
  150. package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.js +1 -1
  151. package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.js.map +1 -1
  152. package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.d.ts +1 -0
  153. package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.js +540 -0
  154. package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.js.map +1 -0
  155. package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.d.ts +40 -0
  156. package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.js +205 -0
  157. package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.js.map +1 -0
  158. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +2 -2
  159. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js.map +1 -1
  160. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js +1 -1
  161. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js.map +1 -1
  162. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js +17 -8
  163. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js.map +1 -1
  164. package/dist/lib/plugins/openapi/schema/SchemaView.d.ts +1 -1
  165. package/dist/lib/plugins/openapi/schema/SchemaView.js +31 -16
  166. package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
  167. package/dist/lib/plugins/openapi/schema/UnionView.js +2 -5
  168. package/dist/lib/plugins/openapi/schema/UnionView.js.map +1 -1
  169. package/dist/lib/plugins/openapi/schema/union-helpers.js +0 -1
  170. package/dist/lib/plugins/openapi/schema/union-helpers.js.map +1 -1
  171. package/dist/lib/plugins/openapi/schema/utils.d.ts +2 -2
  172. package/dist/lib/plugins/openapi/schema/utils.js.map +1 -1
  173. package/dist/lib/plugins/openapi/util/generateSchemaExample.js +9 -11
  174. package/dist/lib/plugins/openapi/util/generateSchemaExample.js.map +1 -1
  175. package/dist/lib/plugins/openapi/util/getRoutes.d.ts +6 -1
  176. package/dist/lib/plugins/openapi/util/getRoutes.js +29 -2
  177. package/dist/lib/plugins/openapi/util/getRoutes.js.map +1 -1
  178. package/dist/lib/plugins/search-pagefind/IndexingDialog.d.ts +3 -0
  179. package/dist/lib/plugins/search-pagefind/IndexingDialog.js +64 -0
  180. package/dist/lib/plugins/search-pagefind/IndexingDialog.js.map +1 -0
  181. package/dist/lib/plugins/search-pagefind/PagefindSearch.js +22 -5
  182. package/dist/lib/plugins/search-pagefind/PagefindSearch.js.map +1 -1
  183. package/dist/lib/plugins/search-pagefind/ResultList.js +5 -4
  184. package/dist/lib/plugins/search-pagefind/ResultList.js.map +1 -1
  185. package/dist/lib/shiki.d.ts +1 -1
  186. package/dist/lib/shiki.js +18 -12
  187. package/dist/lib/shiki.js.map +1 -1
  188. package/dist/lib/ui/Badge.d.ts +3 -3
  189. package/dist/lib/ui/Badge.js +9 -7
  190. package/dist/lib/ui/Badge.js.map +1 -1
  191. package/dist/lib/ui/Button.d.ts +2 -2
  192. package/dist/lib/ui/Button.js +9 -7
  193. package/dist/lib/ui/Button.js.map +1 -1
  194. package/dist/lib/ui/ButtonGroup.d.ts +11 -0
  195. package/dist/lib/ui/ButtonGroup.js +28 -0
  196. package/dist/lib/ui/ButtonGroup.js.map +1 -0
  197. package/dist/lib/ui/Checkbox.d.ts +2 -2
  198. package/dist/lib/ui/Checkbox.js +4 -4
  199. package/dist/lib/ui/Checkbox.js.map +1 -1
  200. package/dist/lib/ui/CodeBlock.d.ts +0 -1
  201. package/dist/lib/ui/CodeBlock.js +1 -1
  202. package/dist/lib/ui/CodeBlock.js.map +1 -1
  203. package/dist/lib/ui/Collapsible.d.ts +4 -4
  204. package/dist/lib/ui/Collapsible.js +11 -4
  205. package/dist/lib/ui/Collapsible.js.map +1 -1
  206. package/dist/lib/ui/Command.d.ts +3 -3
  207. package/dist/lib/ui/Command.js +2 -2
  208. package/dist/lib/ui/Command.js.map +1 -1
  209. package/dist/lib/ui/DropdownMenu.d.ts +21 -23
  210. package/dist/lib/ui/DropdownMenu.js +47 -32
  211. package/dist/lib/ui/DropdownMenu.js.map +1 -1
  212. package/dist/lib/ui/EmbeddedCodeBlock.d.ts +0 -1
  213. package/dist/lib/ui/EmbeddedCodeBlock.js +3 -2
  214. package/dist/lib/ui/EmbeddedCodeBlock.js.map +1 -1
  215. package/dist/lib/ui/Frame.d.ts +8 -0
  216. package/dist/lib/ui/Frame.js +22 -0
  217. package/dist/lib/ui/Frame.js.map +1 -0
  218. package/dist/lib/ui/Item.d.ts +23 -0
  219. package/dist/lib/ui/Item.js +67 -0
  220. package/dist/lib/ui/Item.js.map +1 -0
  221. package/dist/lib/ui/Kbd.d.ts +3 -0
  222. package/dist/lib/ui/Kbd.js +10 -0
  223. package/dist/lib/ui/Kbd.js.map +1 -0
  224. package/dist/lib/ui/NativeSelect.d.ts +5 -0
  225. package/dist/lib/ui/NativeSelect.js +14 -0
  226. package/dist/lib/ui/NativeSelect.js.map +1 -0
  227. package/dist/lib/ui/Select.d.ts +13 -11
  228. package/dist/lib/ui/Select.js +34 -23
  229. package/dist/lib/ui/Select.js.map +1 -1
  230. package/dist/lib/ui/Separator.d.ts +4 -0
  231. package/dist/lib/ui/Separator.js +8 -0
  232. package/dist/lib/ui/Separator.js.map +1 -0
  233. package/dist/lib/ui/Tooltip.d.ts +7 -7
  234. package/dist/lib/ui/Tooltip.js +16 -10
  235. package/dist/lib/ui/Tooltip.js.map +1 -1
  236. package/dist/lib/util/MdxComponents.d.ts +1 -0
  237. package/dist/lib/util/MdxComponents.js +2 -0
  238. package/dist/lib/util/MdxComponents.js.map +1 -1
  239. package/dist/lib/util/createVariantComponent.d.ts +5 -2
  240. package/dist/lib/util/createVariantComponent.js +5 -2
  241. package/dist/lib/util/createVariantComponent.js.map +1 -1
  242. package/dist/lib/util/flattenAllOf.d.ts +4 -0
  243. package/dist/lib/util/flattenAllOf.js +88 -0
  244. package/dist/lib/util/flattenAllOf.js.map +1 -0
  245. package/dist/lib/util/flattenAllOf.test.d.ts +1 -0
  246. package/dist/lib/util/flattenAllOf.test.js +587 -0
  247. package/dist/lib/util/flattenAllOf.test.js.map +1 -0
  248. package/dist/lib/util/readFrontmatter.d.ts +6 -0
  249. package/dist/lib/util/readFrontmatter.js +12 -0
  250. package/dist/lib/util/readFrontmatter.js.map +1 -0
  251. package/dist/vite/api/SchemaManager.d.ts +5 -0
  252. package/dist/vite/api/SchemaManager.js +30 -18
  253. package/dist/vite/api/SchemaManager.js.map +1 -1
  254. package/dist/vite/api/SchemaManager.test.js +67 -0
  255. package/dist/vite/api/SchemaManager.test.js.map +1 -1
  256. package/dist/vite/config.js +8 -2
  257. package/dist/vite/config.js.map +1 -1
  258. package/dist/vite/dev-server.js +25 -0
  259. package/dist/vite/dev-server.js.map +1 -1
  260. package/dist/vite/mdx/remark-last-modified.js +57 -3
  261. package/dist/vite/mdx/remark-last-modified.js.map +1 -1
  262. package/dist/vite/pagefind-dev-index.d.ts +16 -0
  263. package/dist/vite/pagefind-dev-index.js +68 -0
  264. package/dist/vite/pagefind-dev-index.js.map +1 -0
  265. package/dist/vite/plugin-api.js +41 -3
  266. package/dist/vite/plugin-api.js.map +1 -1
  267. package/dist/vite/plugin-frontmatter.js +3 -5
  268. package/dist/vite/plugin-frontmatter.js.map +1 -1
  269. package/dist/vite/plugin-markdown-export.js +3 -4
  270. package/dist/vite/plugin-markdown-export.js.map +1 -1
  271. package/dist/vite/plugin-theme.js +10 -1
  272. package/dist/vite/plugin-theme.js.map +1 -1
  273. package/dist/vite/prerender/prerender.js +1 -19
  274. package/dist/vite/prerender/prerender.js.map +1 -1
  275. package/dist/vite/prerender/utils.d.ts +2 -0
  276. package/dist/vite/prerender/utils.js +24 -0
  277. package/dist/vite/prerender/utils.js.map +1 -0
  278. package/lib/ActionButton-DUgvSylL.js +25 -0
  279. package/lib/ActionButton-DUgvSylL.js.map +1 -0
  280. package/lib/Button-CynVW1JV.js +53 -0
  281. package/lib/Button-CynVW1JV.js.map +1 -0
  282. package/lib/ClaudeLogo-B4Xxt-x_.js +69 -0
  283. package/lib/ClaudeLogo-B4Xxt-x_.js.map +1 -0
  284. package/lib/{Command-CUcrW3qs.js → Command-BpT1iBE6.js} +25 -25
  285. package/lib/Command-BpT1iBE6.js.map +1 -0
  286. package/lib/Drawer-Ci7XwhqT.js.map +1 -1
  287. package/lib/DropdownMenu-C8SX_-S_.js +104 -0
  288. package/lib/DropdownMenu-C8SX_-S_.js.map +1 -0
  289. package/lib/{ErrorAlert-DE3Sf66a.js → ErrorAlert-DrOR8w3f.js} +475 -456
  290. package/lib/ErrorAlert-DrOR8w3f.js.map +1 -0
  291. package/lib/IndexingDialog-B5zCiUKr.js +100 -0
  292. package/lib/IndexingDialog-B5zCiUKr.js.map +1 -0
  293. package/lib/MdxPage-BagO2c-n.js +210 -0
  294. package/lib/MdxPage-BagO2c-n.js.map +1 -0
  295. package/lib/Mermaid-D_VSX7_Q.js +102 -0
  296. package/lib/Mermaid-D_VSX7_Q.js.map +1 -0
  297. package/lib/{OAuthErrorPage-BycMozgn.js → OAuthErrorPage-Fq54RLgt.js} +7 -7
  298. package/lib/{OAuthErrorPage-BycMozgn.js.map → OAuthErrorPage-Fq54RLgt.js.map} +1 -1
  299. package/lib/OasProvider-DPH8mwDa.js +40 -0
  300. package/lib/OasProvider-DPH8mwDa.js.map +1 -0
  301. package/lib/OperationList-C0jiEaG5.js +5805 -0
  302. package/lib/OperationList-C0jiEaG5.js.map +1 -0
  303. package/lib/RouteGuard-9wjejsKm.js +77 -0
  304. package/lib/RouteGuard-9wjejsKm.js.map +1 -0
  305. package/lib/RouterError-DSLXagd5.js +42 -0
  306. package/lib/RouterError-DSLXagd5.js.map +1 -0
  307. package/lib/{SchemaList-xZSf3IMh.js → SchemaList-BU0zCHn9.js} +28 -27
  308. package/lib/SchemaList-BU0zCHn9.js.map +1 -0
  309. package/lib/SchemaView-DVae4RO2.js +597 -0
  310. package/lib/SchemaView-DVae4RO2.js.map +1 -0
  311. package/lib/Select-CkxXP5I7.js +243 -0
  312. package/lib/Select-CkxXP5I7.js.map +1 -0
  313. package/lib/Separator-CTPSeW1S.js +27 -0
  314. package/lib/Separator-CTPSeW1S.js.map +1 -0
  315. package/lib/{SignUp-6SGx9Yyq.js → SignUp-BjS4ozA7.js} +13 -13
  316. package/lib/{SignUp-6SGx9Yyq.js.map → SignUp-BjS4ozA7.js.map} +1 -1
  317. package/lib/{SyntaxHighlight-zvlnSnHB.js → SyntaxHighlight-Kdyskw3C.js} +710 -662
  318. package/lib/{SyntaxHighlight-zvlnSnHB.js.map → SyntaxHighlight-Kdyskw3C.js.map} +1 -1
  319. package/lib/{Toc-Da9yp7lo.js → Toc-DJxFPfcS.js} +2 -2
  320. package/lib/{Toc-Da9yp7lo.js.map → Toc-DJxFPfcS.js.map} +1 -1
  321. package/lib/{ZudokuContext-BUZ5hkWB.js → ZudokuContext-BXldanA8.js} +11 -11
  322. package/lib/{ZudokuContext-BUZ5hkWB.js.map → ZudokuContext-BXldanA8.js.map} +1 -1
  323. package/lib/___vite-browser-external_commonjs-proxy-Cga3HsWk.js +9 -0
  324. package/lib/___vite-browser-external_commonjs-proxy-Cga3HsWk.js.map +1 -0
  325. package/lib/{chunk-PVWAREVJ-BMhpCH5D.js → chunk-PVWAREVJ-dLIqswPy.js} +5 -5
  326. package/lib/{chunk-PVWAREVJ-BMhpCH5D.js.map → chunk-PVWAREVJ-dLIqswPy.js.map} +1 -1
  327. package/lib/{circular-DvuimBGQ.js → circular-CzWF1hj5.js} +6360 -5953
  328. package/lib/circular-CzWF1hj5.js.map +1 -0
  329. package/lib/createServer-BIr2_tGn.js +16693 -0
  330. package/lib/createServer-BIr2_tGn.js.map +1 -0
  331. package/lib/createVariantComponent-B9_dVBvu.js +35 -0
  332. package/lib/createVariantComponent-B9_dVBvu.js.map +1 -0
  333. package/lib/{errors-CuGgh3hf.js → errors-Bs4duWDy.js} +3 -3
  334. package/lib/{errors-CuGgh3hf.js.map → errors-Bs4duWDy.js.map} +1 -1
  335. package/lib/firebase-Cax7HPzn.js +7360 -0
  336. package/lib/firebase-Cax7HPzn.js.map +1 -0
  337. package/lib/{hook-CMeoxziF.js → hook-BNxidGQq.js} +3 -3
  338. package/lib/{hook-CMeoxziF.js.map → hook-BNxidGQq.js.map} +1 -1
  339. package/lib/index-0oT9beQN.js +3676 -0
  340. package/lib/index-0oT9beQN.js.map +1 -0
  341. package/lib/{index-rYHsvtTo.js → index-Bh-MffiL.js} +2 -2
  342. package/lib/{index-rYHsvtTo.js.map → index-Bh-MffiL.js.map} +1 -1
  343. package/lib/{index-B1rmok4X.js → index-CCmMJp02.js} +10 -10
  344. package/lib/{index-B1rmok4X.js.map → index-CCmMJp02.js.map} +1 -1
  345. package/lib/index-CrcNWbel.js.map +1 -1
  346. package/lib/index-Css56y3F.js +133 -0
  347. package/lib/index-Css56y3F.js.map +1 -0
  348. package/lib/index.esm-DDENMN4y.js +32 -0
  349. package/lib/index.esm-DDENMN4y.js.map +1 -0
  350. package/lib/{index.esm-BnYHxCYC.js → index.esm-DtzT_KoE.js} +20 -20
  351. package/lib/{index.esm-BnYHxCYC.js.map → index.esm-DtzT_KoE.js.map} +1 -1
  352. package/lib/{invariant-Bm-FVUQE.js → invariant-CGOLuIIz.js} +3 -3
  353. package/lib/{invariant-Bm-FVUQE.js.map → invariant-CGOLuIIz.js.map} +1 -1
  354. package/lib/{mutation-BSU0xu4m.js → mutation-BoVlx8yA.js} +2 -2
  355. package/lib/{mutation-BSU0xu4m.js.map → mutation-BoVlx8yA.js.map} +1 -1
  356. package/lib/ui/ActionButton.js +1 -1
  357. package/lib/ui/Badge.js +27 -13
  358. package/lib/ui/Badge.js.map +1 -1
  359. package/lib/ui/Button.js +26 -24
  360. package/lib/ui/Button.js.map +1 -1
  361. package/lib/ui/ButtonGroup.js +77 -0
  362. package/lib/ui/ButtonGroup.js.map +1 -0
  363. package/lib/ui/Checkbox.js +29 -26
  364. package/lib/ui/Checkbox.js.map +1 -1
  365. package/lib/ui/CodeBlock.js +7 -7
  366. package/lib/ui/CodeBlock.js.map +1 -1
  367. package/lib/ui/Collapsible.js +32 -5
  368. package/lib/ui/Collapsible.js.map +1 -1
  369. package/lib/ui/Command.js +3 -3
  370. package/lib/ui/Command.js.map +1 -1
  371. package/lib/ui/DropdownMenu.js +227 -140
  372. package/lib/ui/DropdownMenu.js.map +1 -1
  373. package/lib/ui/EmbeddedCodeBlock.js +26 -25
  374. package/lib/ui/EmbeddedCodeBlock.js.map +1 -1
  375. package/lib/ui/Frame.js +81 -0
  376. package/lib/ui/Frame.js.map +1 -0
  377. package/lib/ui/Item.js +188 -0
  378. package/lib/ui/Item.js.map +1 -0
  379. package/lib/ui/Kbd.js +32 -0
  380. package/lib/ui/Kbd.js.map +1 -0
  381. package/lib/ui/NativeSelect.js +57 -0
  382. package/lib/ui/NativeSelect.js.map +1 -0
  383. package/lib/ui/Select.js +166 -116
  384. package/lib/ui/Select.js.map +1 -1
  385. package/lib/ui/Separator.js +27 -0
  386. package/lib/ui/Separator.js.map +1 -0
  387. package/lib/ui/SyntaxHighlight.js +3 -3
  388. package/lib/ui/Tabs.js +10 -10
  389. package/lib/ui/Tooltip.js +55 -28
  390. package/lib/ui/Tooltip.js.map +1 -1
  391. package/lib/useMutation-C6RqWmTS.js +97 -0
  392. package/lib/useMutation-C6RqWmTS.js.map +1 -0
  393. package/lib/zudoku.__internal.js +349 -349
  394. package/lib/zudoku.__internal.js.map +1 -1
  395. package/lib/zudoku.auth-auth0.js +7 -7
  396. package/lib/zudoku.auth-auth0.js.map +1 -1
  397. package/lib/zudoku.auth-azureb2c.js +4 -4
  398. package/lib/zudoku.auth-clerk.js +2 -2
  399. package/lib/zudoku.auth-firebase.js +9 -0
  400. package/lib/zudoku.auth-firebase.js.map +1 -0
  401. package/lib/zudoku.auth-openid.js +5 -5
  402. package/lib/zudoku.auth-supabase.js +31 -34
  403. package/lib/zudoku.auth-supabase.js.map +1 -1
  404. package/lib/zudoku.components.js +7 -7
  405. package/lib/zudoku.hooks.js +11 -24
  406. package/lib/zudoku.hooks.js.map +1 -1
  407. package/lib/zudoku.mermaid.js +10 -0
  408. package/lib/zudoku.mermaid.js.map +1 -0
  409. package/lib/zudoku.plugin-api-catalog.js +6 -6
  410. package/lib/zudoku.plugin-api-keys.js +225 -216
  411. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  412. package/lib/zudoku.plugin-custom-pages.js +1 -1
  413. package/lib/zudoku.plugin-markdown.js +1 -1
  414. package/lib/zudoku.plugin-openapi.js +3 -3
  415. package/lib/zudoku.plugin-redirect.js +1 -1
  416. package/lib/zudoku.plugin-search-pagefind.js +184 -226
  417. package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
  418. package/lib/zudoku.plugins.js.map +1 -1
  419. package/lib/zudoku.router.js +2 -2
  420. package/package.json +44 -27
  421. package/src/app/main.css +1 -1
  422. package/src/app/main.tsx +5 -1
  423. package/src/app/sentry.ts +1 -1
  424. package/src/lib/auth/issuer.ts +3 -0
  425. package/src/lib/authentication/authentication.ts +1 -1
  426. package/src/lib/authentication/providers/auth0.tsx +6 -1
  427. package/src/lib/authentication/providers/firebase.tsx +284 -0
  428. package/src/lib/authentication/providers/supabase.tsx +2 -7
  429. package/src/lib/authentication/ui/ZudokuAuthUi.tsx +335 -0
  430. package/src/lib/authentication/ui/icons/Apple.tsx +10 -0
  431. package/src/lib/authentication/ui/icons/Facebook.tsx +15 -0
  432. package/src/lib/authentication/ui/icons/Github.tsx +16 -0
  433. package/src/lib/authentication/ui/icons/Google.tsx +16 -0
  434. package/src/lib/authentication/ui/icons/Microsoft.tsx +12 -0
  435. package/src/lib/authentication/ui/icons/X.tsx +10 -0
  436. package/src/lib/components/Autocomplete.tsx +11 -2
  437. package/src/lib/components/Layout.tsx +3 -2
  438. package/src/lib/components/Mermaid.tsx +68 -0
  439. package/src/lib/components/PagefindSearchMeta.tsx +14 -0
  440. package/src/lib/components/Zudoku.tsx +4 -7
  441. package/src/lib/components/navigation/NavigationItem.tsx +7 -20
  442. package/src/lib/core/RouteGuard.tsx +9 -9
  443. package/src/lib/core/plugins.ts +2 -2
  444. package/src/lib/errors/ErrorAlert.tsx +1 -1
  445. package/src/lib/errors/RouterError.tsx +7 -2
  446. package/src/lib/oas/parser/index.ts +10 -3
  447. package/src/lib/plugins/api-keys/ProtectedRoute.tsx +11 -7
  448. package/src/lib/plugins/openapi/CollapsibleCode.tsx +5 -3
  449. package/src/lib/plugins/openapi/DownloadSchemaButton.tsx +115 -0
  450. package/src/lib/plugins/openapi/Endpoint.tsx +20 -27
  451. package/src/lib/plugins/openapi/GeneratedExampleSidecarBox.tsx +52 -0
  452. package/src/lib/plugins/openapi/OasProvider.tsx +30 -17
  453. package/src/lib/plugins/openapi/OperationList.tsx +46 -21
  454. package/src/lib/plugins/openapi/OperationListItem.tsx +15 -12
  455. package/src/lib/plugins/openapi/ParameterList.tsx +37 -23
  456. package/src/lib/plugins/openapi/ParameterListItem.tsx +105 -54
  457. package/src/lib/plugins/openapi/RequestBodySidecarBox.tsx +48 -7
  458. package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +101 -33
  459. package/src/lib/plugins/openapi/SchemaList.tsx +4 -0
  460. package/src/lib/plugins/openapi/Sidecar.tsx +145 -65
  461. package/src/lib/plugins/openapi/SidecarBox.tsx +26 -4
  462. package/src/lib/plugins/openapi/SidecarExamples.tsx +91 -79
  463. package/src/lib/plugins/openapi/components/ConstValue.tsx +1 -1
  464. package/src/lib/plugins/openapi/components/EnumValues.tsx +2 -2
  465. package/src/lib/plugins/openapi/components/NonHighlightedCode.tsx +22 -0
  466. package/src/lib/plugins/openapi/components/ResponseContent.tsx +63 -53
  467. package/src/lib/plugins/openapi/index.tsx +16 -7
  468. package/src/lib/plugins/openapi/interfaces.ts +28 -7
  469. package/src/lib/plugins/openapi/playground/BodyPanel.tsx +246 -30
  470. package/src/lib/plugins/openapi/playground/CollapsibleHeader.tsx +10 -6
  471. package/src/lib/plugins/openapi/playground/ExamplesDropdown.tsx +3 -2
  472. package/src/lib/plugins/openapi/playground/Headers.tsx +103 -219
  473. package/src/lib/plugins/openapi/playground/ParamsGrid.tsx +33 -1
  474. package/src/lib/plugins/openapi/playground/PathParams.tsx +26 -34
  475. package/src/lib/plugins/openapi/playground/Playground.tsx +75 -33
  476. package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +9 -30
  477. package/src/lib/plugins/openapi/playground/QueryParams.tsx +82 -136
  478. package/src/lib/plugins/openapi/playground/request-panel/MultipartField.tsx +91 -0
  479. package/src/lib/plugins/openapi/playground/request-panel/UrlQueryParams.tsx +1 -1
  480. package/src/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.tsx +872 -0
  481. package/src/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.ts +349 -0
  482. package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +2 -6
  483. package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +1 -1
  484. package/src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx +89 -55
  485. package/src/lib/plugins/openapi/schema/SchemaView.tsx +98 -60
  486. package/src/lib/plugins/openapi/schema/UnionView.tsx +6 -17
  487. package/src/lib/plugins/openapi/schema/union-helpers.ts +0 -1
  488. package/src/lib/plugins/openapi/schema/utils.ts +5 -2
  489. package/src/lib/plugins/openapi/util/generateSchemaExample.ts +11 -11
  490. package/src/lib/plugins/openapi/util/getRoutes.tsx +35 -3
  491. package/src/lib/plugins/search-pagefind/IndexingDialog.tsx +163 -0
  492. package/src/lib/plugins/search-pagefind/PagefindSearch.tsx +61 -22
  493. package/src/lib/plugins/search-pagefind/ResultList.tsx +8 -3
  494. package/src/lib/shiki.ts +21 -12
  495. package/src/lib/ui/Badge.tsx +21 -12
  496. package/src/lib/ui/Button.tsx +10 -9
  497. package/src/lib/ui/ButtonGroup.tsx +82 -0
  498. package/src/lib/ui/Checkbox.tsx +23 -24
  499. package/src/lib/ui/CodeBlock.tsx +3 -4
  500. package/src/lib/ui/Collapsible.tsx +26 -4
  501. package/src/lib/ui/Command.tsx +3 -3
  502. package/src/lib/ui/DropdownMenu.tsx +226 -170
  503. package/src/lib/ui/EmbeddedCodeBlock.tsx +21 -19
  504. package/src/lib/ui/Frame.tsx +81 -0
  505. package/src/lib/ui/Item.tsx +192 -0
  506. package/src/lib/ui/Kbd.tsx +28 -0
  507. package/src/lib/ui/NativeSelect.tsx +47 -0
  508. package/src/lib/ui/Select.tsx +153 -126
  509. package/src/lib/ui/Separator.tsx +25 -0
  510. package/src/lib/ui/Tooltip.tsx +54 -32
  511. package/src/lib/util/MdxComponents.tsx +2 -0
  512. package/src/lib/util/createVariantComponent.tsx +31 -5
  513. package/src/lib/util/flattenAllOf.test.ts +689 -0
  514. package/src/lib/util/flattenAllOf.ts +122 -0
  515. package/src/lib/util/readFrontmatter.ts +13 -0
  516. package/src/shiki/langs/markdown-nix.js +1 -0
  517. package/src/shiki/langs/openscad.js +1 -0
  518. package/dist/lib/plugins/openapi/playground/InlineInput.d.ts +0 -4
  519. package/dist/lib/plugins/openapi/playground/InlineInput.js +0 -3
  520. package/dist/lib/plugins/openapi/playground/InlineInput.js.map +0 -1
  521. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupConnector.d.ts +0 -5
  522. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupConnector.js +0 -7
  523. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupConnector.js.map +0 -1
  524. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupItem.d.ts +0 -4
  525. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupItem.js +0 -10
  526. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupItem.js.map +0 -1
  527. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupView.d.ts +0 -5
  528. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupView.js +0 -16
  529. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupView.js.map +0 -1
  530. package/dist/vite/create-pagefind-index.d.ts +0 -4
  531. package/dist/vite/create-pagefind-index.js +0 -12
  532. package/dist/vite/create-pagefind-index.js.map +0 -1
  533. package/lib/Button-DmS4u8Lj.js +0 -51
  534. package/lib/Button-DmS4u8Lj.js.map +0 -1
  535. package/lib/Command-CUcrW3qs.js.map +0 -1
  536. package/lib/DropdownMenu-BZ2NKQ3K.js +0 -126
  537. package/lib/DropdownMenu-BZ2NKQ3K.js.map +0 -1
  538. package/lib/ErrorAlert-DE3Sf66a.js.map +0 -1
  539. package/lib/MdxPage-DZfeC0QY.js +0 -240
  540. package/lib/MdxPage-DZfeC0QY.js.map +0 -1
  541. package/lib/OasProvider-Bf5zBDBY.js +0 -36
  542. package/lib/OasProvider-Bf5zBDBY.js.map +0 -1
  543. package/lib/OperationList-Cmiw1xm2.js +0 -5446
  544. package/lib/OperationList-Cmiw1xm2.js.map +0 -1
  545. package/lib/Pagination-CJszmeSA.js +0 -37
  546. package/lib/Pagination-CJszmeSA.js.map +0 -1
  547. package/lib/RouteGuard-DhU3LRr1.js +0 -81
  548. package/lib/RouteGuard-DhU3LRr1.js.map +0 -1
  549. package/lib/RouterError-VDLnrFqF.js +0 -41
  550. package/lib/RouterError-VDLnrFqF.js.map +0 -1
  551. package/lib/SchemaList-xZSf3IMh.js.map +0 -1
  552. package/lib/SchemaView-tHXTm5oM.js +0 -458
  553. package/lib/SchemaView-tHXTm5oM.js.map +0 -1
  554. package/lib/Select-C1DeCqKv.js +0 -372
  555. package/lib/Select-C1DeCqKv.js.map +0 -1
  556. package/lib/circular-DvuimBGQ.js.map +0 -1
  557. package/lib/createServer-D9UvCoDf.js +0 -12559
  558. package/lib/createServer-D9UvCoDf.js.map +0 -1
  559. package/lib/index-Cr9_YzOZ.js +0 -3364
  560. package/lib/index-Cr9_YzOZ.js.map +0 -1
  561. package/lib/useExposedProps-U3pmsHaG.js +0 -113
  562. package/lib/useExposedProps-U3pmsHaG.js.map +0 -1
  563. package/src/lib/plugins/openapi/playground/InlineInput.tsx +0 -6
  564. package/src/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupConnector.tsx +0 -36
  565. package/src/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupItem.tsx +0 -25
  566. package/src/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupView.tsx +0 -42
@@ -0,0 +1,192 @@
1
+ import { Slot } from "@radix-ui/react-slot";
2
+ import { cva, type VariantProps } from "class-variance-authority";
3
+ import type * as React from "react";
4
+ import { cn } from "../util/cn.js";
5
+ import { Separator } from "./Separator.js";
6
+
7
+ function ItemGroup({ className, ...props }: React.ComponentProps<"div">) {
8
+ return (
9
+ <div
10
+ role="list"
11
+ data-slot="item-group"
12
+ className={cn("group/item-group flex flex-col", className)}
13
+ {...props}
14
+ />
15
+ );
16
+ }
17
+
18
+ function ItemSeparator({
19
+ className,
20
+ ...props
21
+ }: React.ComponentProps<typeof Separator>) {
22
+ return (
23
+ <Separator
24
+ data-slot="item-separator"
25
+ orientation="horizontal"
26
+ className={cn("my-0", className)}
27
+ {...props}
28
+ />
29
+ );
30
+ }
31
+
32
+ const itemVariants = cva(
33
+ "group/item flex items-center border border-transparent text-sm rounded-md transition-colors [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
34
+ {
35
+ variants: {
36
+ variant: {
37
+ default: "bg-transparent",
38
+ outline: "border-border",
39
+ muted: "bg-muted/50",
40
+ },
41
+ size: {
42
+ default: "p-4 gap-4 ",
43
+ sm: "py-3 px-4 gap-2.5",
44
+ },
45
+ },
46
+ defaultVariants: {
47
+ variant: "default",
48
+ size: "default",
49
+ },
50
+ },
51
+ );
52
+
53
+ function Item({
54
+ className,
55
+ variant = "default",
56
+ size = "default",
57
+ asChild = false,
58
+ ...props
59
+ }: React.ComponentProps<"div"> &
60
+ VariantProps<typeof itemVariants> & { asChild?: boolean }) {
61
+ const Comp = asChild ? Slot : "div";
62
+ return (
63
+ <Comp
64
+ data-slot="item"
65
+ data-variant={variant}
66
+ data-size={size}
67
+ className={cn(itemVariants({ variant, size, className }))}
68
+ {...props}
69
+ />
70
+ );
71
+ }
72
+
73
+ const itemMediaVariants = cva(
74
+ "flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none group-has-[[data-slot=item-description]]/item:translate-y-0.5",
75
+ {
76
+ variants: {
77
+ variant: {
78
+ default: "bg-transparent",
79
+ icon: "size-8 border rounded-sm bg-muted [&_svg:not([class*='size-'])]:size-4",
80
+ image:
81
+ "size-10 rounded-sm overflow-hidden [&_img]:size-full [&_img]:object-cover",
82
+ },
83
+ },
84
+ defaultVariants: {
85
+ variant: "default",
86
+ },
87
+ },
88
+ );
89
+
90
+ function ItemMedia({
91
+ className,
92
+ variant = "default",
93
+ ...props
94
+ }: React.ComponentProps<"div"> & VariantProps<typeof itemMediaVariants>) {
95
+ return (
96
+ <div
97
+ data-slot="item-media"
98
+ data-variant={variant}
99
+ className={cn(itemMediaVariants({ variant, className }))}
100
+ {...props}
101
+ />
102
+ );
103
+ }
104
+
105
+ function ItemContent({ className, ...props }: React.ComponentProps<"div">) {
106
+ return (
107
+ <div
108
+ data-slot="item-content"
109
+ className={cn(
110
+ "flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none",
111
+ className,
112
+ )}
113
+ {...props}
114
+ />
115
+ );
116
+ }
117
+
118
+ function ItemTitle({ className, ...props }: React.ComponentProps<"div">) {
119
+ return (
120
+ <div
121
+ data-slot="item-title"
122
+ className={cn(
123
+ "flex w-fit items-center gap-2 text-sm leading-snug font-medium",
124
+ className,
125
+ )}
126
+ {...props}
127
+ />
128
+ );
129
+ }
130
+
131
+ function ItemDescription({ className, ...props }: React.ComponentProps<"p">) {
132
+ return (
133
+ <p
134
+ data-slot="item-description"
135
+ className={cn(
136
+ "text-muted-foreground line-clamp-2 text-sm leading-normal font-normal text-balance",
137
+ "[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4",
138
+ className,
139
+ )}
140
+ {...props}
141
+ />
142
+ );
143
+ }
144
+
145
+ function ItemActions({ className, ...props }: React.ComponentProps<"div">) {
146
+ return (
147
+ <div
148
+ data-slot="item-actions"
149
+ className={cn("flex items-center gap-2", className)}
150
+ {...props}
151
+ />
152
+ );
153
+ }
154
+
155
+ function ItemHeader({ className, ...props }: React.ComponentProps<"div">) {
156
+ return (
157
+ <div
158
+ data-slot="item-header"
159
+ className={cn(
160
+ "flex basis-full items-center justify-between gap-2",
161
+ className,
162
+ )}
163
+ {...props}
164
+ />
165
+ );
166
+ }
167
+
168
+ function ItemFooter({ className, ...props }: React.ComponentProps<"div">) {
169
+ return (
170
+ <div
171
+ data-slot="item-footer"
172
+ className={cn(
173
+ "flex basis-full items-center justify-between gap-2",
174
+ className,
175
+ )}
176
+ {...props}
177
+ />
178
+ );
179
+ }
180
+
181
+ export {
182
+ Item,
183
+ ItemMedia,
184
+ ItemContent,
185
+ ItemActions,
186
+ ItemGroup,
187
+ ItemSeparator,
188
+ ItemTitle,
189
+ ItemDescription,
190
+ ItemHeader,
191
+ ItemFooter,
192
+ };
@@ -0,0 +1,28 @@
1
+ import { cn } from "./util.js";
2
+
3
+ function Kbd({ className, ...props }: React.ComponentProps<"kbd">) {
4
+ return (
5
+ <kbd
6
+ data-slot="kbd"
7
+ className={cn(
8
+ "bg-muted text-muted-foreground pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm px-1 font-sans text-xs font-medium select-none",
9
+ "[&_svg:not([class*='size-'])]:size-3",
10
+ "[[data-slot=tooltip-content]_&]:bg-background/20 [[data-slot=tooltip-content]_&]:text-background dark:[[data-slot=tooltip-content]_&]:bg-background/10",
11
+ className,
12
+ )}
13
+ {...props}
14
+ />
15
+ );
16
+ }
17
+
18
+ function KbdGroup({ className, ...props }: React.ComponentProps<"kbd">) {
19
+ return (
20
+ <kbd
21
+ data-slot="kbd-group"
22
+ className={cn("inline-flex items-center gap-1", className)}
23
+ {...props}
24
+ />
25
+ );
26
+ }
27
+
28
+ export { Kbd, KbdGroup };
@@ -0,0 +1,47 @@
1
+ import { ChevronDownIcon } from "lucide-react";
2
+ import type * as React from "react";
3
+ import { cn } from "../util/cn.js";
4
+
5
+ function NativeSelect({ className, ...props }: React.ComponentProps<"select">) {
6
+ return (
7
+ <div
8
+ className="group/native-select relative w-fit has-[select:disabled]:opacity-50"
9
+ data-slot="native-select-wrapper"
10
+ >
11
+ <select
12
+ data-slot="native-select"
13
+ className={cn(
14
+ "border-input placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 dark:hover:bg-input/50 h-9 w-full min-w-0 appearance-none rounded-md border bg-transparent px-3 py-2 pr-9 text-sm shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed",
15
+ "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
16
+ "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
17
+ className,
18
+ )}
19
+ {...props}
20
+ />
21
+ <ChevronDownIcon
22
+ className="text-muted-foreground pointer-events-none absolute top-1/2 right-3.5 size-4 -translate-y-1/2 opacity-50 select-none"
23
+ aria-hidden="true"
24
+ data-slot="native-select-icon"
25
+ />
26
+ </div>
27
+ );
28
+ }
29
+
30
+ function NativeSelectOption({ ...props }: React.ComponentProps<"option">) {
31
+ return <option data-slot="native-select-option" {...props} />;
32
+ }
33
+
34
+ function NativeSelectOptGroup({
35
+ className,
36
+ ...props
37
+ }: React.ComponentProps<"optgroup">) {
38
+ return (
39
+ <optgroup
40
+ data-slot="native-select-optgroup"
41
+ className={cn(className)}
42
+ {...props}
43
+ />
44
+ );
45
+ }
46
+
47
+ export { NativeSelect, NativeSelectOptGroup, NativeSelectOption };
@@ -1,147 +1,174 @@
1
1
  import * as SelectPrimitive from "@radix-ui/react-select";
2
- import { Check, ChevronDown, ChevronUp } from "lucide-react";
3
- import * as React from "react";
4
- import { cn } from "../util/cn.js";
2
+ import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
3
+ import type * as React from "react";
4
+ import { cn } from "./util.js";
5
5
 
6
- const Select = SelectPrimitive.Root;
6
+ function Select({
7
+ ...props
8
+ }: React.ComponentProps<typeof SelectPrimitive.Root>) {
9
+ return <SelectPrimitive.Root data-slot="select" {...props} />;
10
+ }
7
11
 
8
- const SelectGroup = SelectPrimitive.Group;
12
+ function SelectGroup({
13
+ ...props
14
+ }: React.ComponentProps<typeof SelectPrimitive.Group>) {
15
+ return <SelectPrimitive.Group data-slot="select-group" {...props} />;
16
+ }
9
17
 
10
- const SelectValue = SelectPrimitive.Value;
18
+ function SelectValue({
19
+ ...props
20
+ }: React.ComponentProps<typeof SelectPrimitive.Value>) {
21
+ return <SelectPrimitive.Value data-slot="select-value" {...props} />;
22
+ }
11
23
 
12
- const SelectTrigger = React.forwardRef<
13
- React.ElementRef<typeof SelectPrimitive.Trigger>,
14
- React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>
15
- >(({ className, children, ...props }, ref) => (
16
- <SelectPrimitive.Trigger
17
- ref={ref}
18
- className={cn(
19
- "flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-hidden focus:ring-1 focus:ring-ring focus:ring-offset-1 disabled:cursor-not-allowed disabled:opacity-50",
20
- className,
21
- )}
22
- {...props}
23
- >
24
- <span className="truncate">{children}</span>
25
- <SelectPrimitive.Icon asChild>
26
- <ChevronDown className="shrink-0 h-4 w-4 opacity-50" />
27
- </SelectPrimitive.Icon>
28
- </SelectPrimitive.Trigger>
29
- ));
30
- SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
31
-
32
- const SelectScrollUpButton = React.forwardRef<
33
- React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,
34
- React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>
35
- >(({ className, ...props }, ref) => (
36
- <SelectPrimitive.ScrollUpButton
37
- ref={ref}
38
- className={cn(
39
- "flex cursor-default items-center justify-center py-1",
40
- className,
41
- )}
42
- {...props}
43
- >
44
- <ChevronUp className="h-4 w-4" />
45
- </SelectPrimitive.ScrollUpButton>
46
- ));
47
- SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
48
-
49
- const SelectScrollDownButton = React.forwardRef<
50
- React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,
51
- React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>
52
- >(({ className, ...props }, ref) => (
53
- <SelectPrimitive.ScrollDownButton
54
- ref={ref}
55
- className={cn(
56
- "flex cursor-default items-center justify-center py-1",
57
- className,
58
- )}
59
- {...props}
60
- >
61
- <ChevronDown className="h-4 w-4" />
62
- </SelectPrimitive.ScrollDownButton>
63
- ));
64
- SelectScrollDownButton.displayName =
65
- SelectPrimitive.ScrollDownButton.displayName;
66
-
67
- const SelectContent = React.forwardRef<
68
- React.ElementRef<typeof SelectPrimitive.Content>,
69
- React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>
70
- >(({ className, children, position = "popper", ...props }, ref) => (
71
- <SelectPrimitive.Portal>
72
- <SelectPrimitive.Content
73
- ref={ref}
24
+ function SelectTrigger({
25
+ className,
26
+ size = "default",
27
+ children,
28
+ ...props
29
+ }: React.ComponentProps<typeof SelectPrimitive.Trigger> & {
30
+ size?: "sm" | "default";
31
+ }) {
32
+ return (
33
+ <SelectPrimitive.Trigger
34
+ data-slot="select-trigger"
35
+ data-size={size}
74
36
  className={cn(
75
- "relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md 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",
76
- position === "popper" &&
77
- "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
37
+ "border-input data-placeholder:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
78
38
  className,
79
39
  )}
80
- position={position}
81
40
  {...props}
82
41
  >
83
- <SelectScrollUpButton />
84
- <SelectPrimitive.Viewport
42
+ {children}
43
+ <SelectPrimitive.Icon asChild>
44
+ <ChevronDownIcon className="size-4 opacity-50" />
45
+ </SelectPrimitive.Icon>
46
+ </SelectPrimitive.Trigger>
47
+ );
48
+ }
49
+
50
+ function SelectContent({
51
+ className,
52
+ children,
53
+ position = "popper",
54
+ align = "center",
55
+ ...props
56
+ }: React.ComponentProps<typeof SelectPrimitive.Content>) {
57
+ return (
58
+ <SelectPrimitive.Portal>
59
+ <SelectPrimitive.Content
60
+ data-slot="select-content"
85
61
  className={cn(
62
+ "bg-popover text-popover-foreground 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 relative z-50 max-h-(--radix-select-content-available-height) min-w-32 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",
86
63
  position === "popper" &&
87
- "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]",
88
- "divide-y",
64
+ "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
65
+ className,
89
66
  )}
67
+ position={position}
68
+ align={align}
69
+ {...props}
90
70
  >
91
- {children}
92
- </SelectPrimitive.Viewport>
93
- <SelectScrollDownButton />
94
- </SelectPrimitive.Content>
95
- </SelectPrimitive.Portal>
96
- ));
97
- SelectContent.displayName = SelectPrimitive.Content.displayName;
71
+ <SelectScrollUpButton />
72
+ <SelectPrimitive.Viewport
73
+ className={cn(
74
+ "p-1",
75
+ position === "popper" &&
76
+ "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width) scroll-my-1",
77
+ )}
78
+ >
79
+ {children}
80
+ </SelectPrimitive.Viewport>
81
+ <SelectScrollDownButton />
82
+ </SelectPrimitive.Content>
83
+ </SelectPrimitive.Portal>
84
+ );
85
+ }
86
+
87
+ function SelectLabel({
88
+ className,
89
+ ...props
90
+ }: React.ComponentProps<typeof SelectPrimitive.Label>) {
91
+ return (
92
+ <SelectPrimitive.Label
93
+ data-slot="select-label"
94
+ className={cn("text-muted-foreground px-2 py-1.5 text-xs", className)}
95
+ {...props}
96
+ />
97
+ );
98
+ }
98
99
 
99
- const SelectLabel = React.forwardRef<
100
- React.ElementRef<typeof SelectPrimitive.Label>,
101
- React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>
102
- >(({ className, ...props }, ref) => (
103
- <SelectPrimitive.Label
104
- ref={ref}
105
- className={cn("py-1.5 pl-8 pr-2 text-sm font-semibold", className)}
106
- {...props}
107
- />
108
- ));
109
- SelectLabel.displayName = SelectPrimitive.Label.displayName;
100
+ function SelectItem({
101
+ className,
102
+ children,
103
+ ...props
104
+ }: React.ComponentProps<typeof SelectPrimitive.Item>) {
105
+ return (
106
+ <SelectPrimitive.Item
107
+ data-slot="select-item"
108
+ className={cn(
109
+ "focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
110
+ className,
111
+ )}
112
+ {...props}
113
+ >
114
+ <span className="absolute right-2 flex size-3.5 items-center justify-center">
115
+ <SelectPrimitive.ItemIndicator>
116
+ <CheckIcon className="size-4" />
117
+ </SelectPrimitive.ItemIndicator>
118
+ </span>
119
+ <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>
120
+ </SelectPrimitive.Item>
121
+ );
122
+ }
110
123
 
111
- const SelectItem = React.forwardRef<
112
- React.ElementRef<typeof SelectPrimitive.Item>,
113
- React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>
114
- >(({ className, children, ...props }, ref) => (
115
- <SelectPrimitive.Item
116
- ref={ref}
117
- className={cn(
118
- "relative flex w-full cursor-default select-none items-center py-1.5 pl-8 pr-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
119
- className,
120
- )}
121
- {...props}
122
- >
123
- <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
124
- <SelectPrimitive.ItemIndicator>
125
- <Check className="h-4 w-4" />
126
- </SelectPrimitive.ItemIndicator>
127
- </span>
124
+ function SelectSeparator({
125
+ className,
126
+ ...props
127
+ }: React.ComponentProps<typeof SelectPrimitive.Separator>) {
128
+ return (
129
+ <SelectPrimitive.Separator
130
+ data-slot="select-separator"
131
+ className={cn("bg-border pointer-events-none -mx-1 my-1 h-px", className)}
132
+ {...props}
133
+ />
134
+ );
135
+ }
128
136
 
129
- <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>
130
- </SelectPrimitive.Item>
131
- ));
132
- SelectItem.displayName = SelectPrimitive.Item.displayName;
137
+ function SelectScrollUpButton({
138
+ className,
139
+ ...props
140
+ }: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {
141
+ return (
142
+ <SelectPrimitive.ScrollUpButton
143
+ data-slot="select-scroll-up-button"
144
+ className={cn(
145
+ "flex cursor-default items-center justify-center py-1",
146
+ className,
147
+ )}
148
+ {...props}
149
+ >
150
+ <ChevronUpIcon className="size-4" />
151
+ </SelectPrimitive.ScrollUpButton>
152
+ );
153
+ }
133
154
 
134
- const SelectSeparator = React.forwardRef<
135
- React.ElementRef<typeof SelectPrimitive.Separator>,
136
- React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>
137
- >(({ className, ...props }, ref) => (
138
- <SelectPrimitive.Separator
139
- ref={ref}
140
- className={cn("-mx-1 my-1 h-px bg-muted", className)}
141
- {...props}
142
- />
143
- ));
144
- SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
155
+ function SelectScrollDownButton({
156
+ className,
157
+ ...props
158
+ }: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {
159
+ return (
160
+ <SelectPrimitive.ScrollDownButton
161
+ data-slot="select-scroll-down-button"
162
+ className={cn(
163
+ "flex cursor-default items-center justify-center py-1",
164
+ className,
165
+ )}
166
+ {...props}
167
+ >
168
+ <ChevronDownIcon className="size-4" />
169
+ </SelectPrimitive.ScrollDownButton>
170
+ );
171
+ }
145
172
 
146
173
  export {
147
174
  Select,
@@ -0,0 +1,25 @@
1
+ import * as SeparatorPrimitive from "@radix-ui/react-separator";
2
+ import type * as React from "react";
3
+ import { cn } from "../util/cn.js";
4
+
5
+ function Separator({
6
+ className,
7
+ orientation = "horizontal",
8
+ decorative = true,
9
+ ...props
10
+ }: React.ComponentProps<typeof SeparatorPrimitive.Root>) {
11
+ return (
12
+ <SeparatorPrimitive.Root
13
+ data-slot="separator"
14
+ decorative={decorative}
15
+ orientation={orientation}
16
+ className={cn(
17
+ "bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
18
+ className,
19
+ )}
20
+ {...props}
21
+ />
22
+ );
23
+ }
24
+
25
+ export { Separator };