zudoku 0.13.6 → 0.14.0

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 (370) hide show
  1. package/cli.js +2 -2
  2. package/dist/app/entry.client.js +2 -2
  3. package/dist/app/entry.client.js.map +1 -1
  4. package/dist/app/entry.server.js +3 -0
  5. package/dist/app/entry.server.js.map +1 -1
  6. package/dist/app/main.d.ts +1 -0
  7. package/dist/app/main.js +7 -22
  8. package/dist/app/main.js.map +1 -1
  9. package/dist/app/standalone.js.map +1 -1
  10. package/dist/cli/common/machine-id/lib.js.map +1 -1
  11. package/dist/cli/common/outdated.js.map +1 -1
  12. package/dist/cli/common/utils/box.js.map +1 -1
  13. package/dist/config/validators/InputSidebarSchema.d.ts +2 -2
  14. package/dist/config/validators/SidebarSchema.d.ts +24 -1
  15. package/dist/config/validators/SidebarSchema.js +76 -39
  16. package/dist/config/validators/SidebarSchema.js.map +1 -1
  17. package/dist/config/validators/validate.d.ts +329 -264
  18. package/dist/config/validators/validate.js +11 -10
  19. package/dist/config/validators/validate.js.map +1 -1
  20. package/dist/index.d.ts +4 -1
  21. package/dist/index.js +1 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/lib/components/Header.js +5 -1
  24. package/dist/lib/components/Header.js.map +1 -1
  25. package/dist/lib/components/Heading.d.ts +1 -1
  26. package/dist/lib/components/SyntaxHighlight.js +4 -1
  27. package/dist/lib/components/SyntaxHighlight.js.map +1 -1
  28. package/dist/lib/components/TopNavigation.js +30 -5
  29. package/dist/lib/components/TopNavigation.js.map +1 -1
  30. package/dist/lib/components/context/ZudokuContext.d.ts +6 -12
  31. package/dist/lib/components/context/ZudokuContext.js +26 -20
  32. package/dist/lib/components/context/ZudokuContext.js.map +1 -1
  33. package/dist/lib/components/navigation/Sidebar.js +3 -3
  34. package/dist/lib/components/navigation/Sidebar.js.map +1 -1
  35. package/dist/lib/components/navigation/SidebarCategory.js +2 -4
  36. package/dist/lib/components/navigation/SidebarCategory.js.map +1 -1
  37. package/dist/lib/components/navigation/SidebarItem.js +1 -3
  38. package/dist/lib/components/navigation/SidebarItem.js.map +1 -1
  39. package/dist/lib/components/navigation/utils.js +10 -14
  40. package/dist/lib/components/navigation/utils.js.map +1 -1
  41. package/dist/lib/core/DevPortalContext.d.ts +3 -7
  42. package/dist/lib/core/DevPortalContext.js.map +1 -1
  43. package/dist/lib/core/plugins.d.ts +1 -0
  44. package/dist/lib/core/plugins.js.map +1 -1
  45. package/dist/lib/plugins/api-keys/CreateApiKey.js +1 -1
  46. package/dist/lib/plugins/api-keys/CreateApiKey.js.map +1 -1
  47. package/dist/lib/plugins/markdown/index.d.ts +5 -6
  48. package/dist/lib/plugins/markdown/index.js +31 -3
  49. package/dist/lib/plugins/markdown/index.js.map +1 -1
  50. package/dist/lib/plugins/markdown/resolver.d.ts +38 -0
  51. package/dist/lib/plugins/markdown/resolver.js +75 -0
  52. package/dist/lib/plugins/markdown/resolver.js.map +1 -0
  53. package/dist/lib/plugins/openapi/Endpoint.js.map +1 -1
  54. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js.map +1 -1
  55. package/dist/lib/plugins/openapi/Sidecar.js +2 -2
  56. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  57. package/dist/lib/plugins/openapi/client/worker.js.map +1 -1
  58. package/dist/lib/plugins/openapi/index.js.map +1 -1
  59. package/dist/lib/plugins/openapi/playground/Playground.js +1 -1
  60. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  61. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +1 -1
  62. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js.map +1 -1
  63. package/dist/lib/ui/Accordion.d.ts +7 -0
  64. package/dist/lib/ui/Accordion.js +14 -0
  65. package/dist/lib/ui/Accordion.js.map +1 -0
  66. package/dist/lib/ui/Alert.d.ts +8 -0
  67. package/dist/lib/ui/Alert.js +23 -0
  68. package/dist/lib/ui/Alert.js.map +1 -0
  69. package/dist/lib/ui/AlertDialog.d.ts +20 -0
  70. package/dist/lib/ui/AlertDialog.js +27 -0
  71. package/dist/lib/ui/AlertDialog.js.map +1 -0
  72. package/dist/lib/ui/AspectRatio.d.ts +3 -0
  73. package/dist/lib/ui/AspectRatio.js +4 -0
  74. package/dist/lib/ui/AspectRatio.js.map +1 -0
  75. package/dist/lib/ui/Badge.d.ts +9 -0
  76. package/dist/lib/ui/Badge.js +21 -0
  77. package/dist/lib/ui/Badge.js.map +1 -0
  78. package/dist/lib/ui/Breadcrumb.d.ts +19 -0
  79. package/dist/lib/ui/Breadcrumb.js +24 -0
  80. package/dist/lib/ui/Breadcrumb.js.map +1 -0
  81. package/dist/lib/ui/Button.d.ts +2 -3
  82. package/dist/lib/ui/Button.js +1 -1
  83. package/dist/lib/ui/Button.js.map +1 -1
  84. package/dist/lib/ui/Carousel.d.ts +18 -0
  85. package/dist/lib/ui/Carousel.js +99 -0
  86. package/dist/lib/ui/Carousel.js.map +1 -0
  87. package/dist/lib/ui/Checkbox.d.ts +4 -0
  88. package/dist/lib/ui/Checkbox.js +9 -0
  89. package/dist/lib/ui/Checkbox.js.map +1 -0
  90. package/dist/lib/ui/Collapsible.d.ts +5 -0
  91. package/dist/lib/ui/Collapsible.js +6 -0
  92. package/dist/lib/ui/Collapsible.js.map +1 -0
  93. package/dist/lib/{components → ui}/Dialog.js +2 -2
  94. package/dist/lib/ui/Dialog.js.map +1 -0
  95. package/dist/lib/ui/Form.d.ts +23 -0
  96. package/dist/lib/ui/Form.js +63 -0
  97. package/dist/lib/ui/Form.js.map +1 -0
  98. package/dist/lib/ui/HoverCard.d.ts +6 -0
  99. package/dist/lib/ui/HoverCard.js +10 -0
  100. package/dist/lib/ui/HoverCard.js.map +1 -0
  101. package/dist/lib/ui/Label.d.ts +5 -0
  102. package/dist/lib/ui/Label.js +10 -0
  103. package/dist/lib/ui/Label.js.map +1 -0
  104. package/dist/lib/ui/Pagination.d.ts +28 -0
  105. package/dist/lib/ui/Pagination.js +24 -0
  106. package/dist/lib/ui/Pagination.js.map +1 -0
  107. package/dist/lib/ui/Popover.d.ts +6 -0
  108. package/dist/lib/ui/Popover.js +10 -0
  109. package/dist/lib/ui/Popover.js.map +1 -0
  110. package/dist/lib/ui/Progress.d.ts +4 -0
  111. package/dist/lib/ui/Progress.js +8 -0
  112. package/dist/lib/ui/Progress.js.map +1 -0
  113. package/dist/lib/ui/RadioGroup.d.ts +5 -0
  114. package/dist/lib/ui/RadioGroup.js +15 -0
  115. package/dist/lib/ui/RadioGroup.js.map +1 -0
  116. package/dist/lib/ui/ScrollArea.d.ts +5 -0
  117. package/dist/lib/ui/ScrollArea.js +12 -0
  118. package/dist/lib/ui/ScrollArea.js.map +1 -0
  119. package/dist/lib/ui/Select.js.map +1 -0
  120. package/dist/lib/ui/Skeleton.d.ts +2 -0
  121. package/dist/lib/ui/Skeleton.js +7 -0
  122. package/dist/lib/ui/Skeleton.js.map +1 -0
  123. package/dist/lib/ui/Slider.d.ts +4 -0
  124. package/dist/lib/ui/Slider.js +8 -0
  125. package/dist/lib/ui/Slider.js.map +1 -0
  126. package/dist/lib/ui/Switch.d.ts +4 -0
  127. package/dist/lib/ui/Switch.js +8 -0
  128. package/dist/lib/ui/Switch.js.map +1 -0
  129. package/dist/lib/ui/Textarea.d.ts +4 -0
  130. package/dist/lib/ui/Textarea.js +9 -0
  131. package/dist/lib/ui/Textarea.js.map +1 -0
  132. package/dist/lib/ui/Toggle.d.ts +12 -0
  133. package/dist/lib/ui/Toggle.js +26 -0
  134. package/dist/lib/ui/Toggle.js.map +1 -0
  135. package/dist/lib/ui/ToggleGroup.d.ts +12 -0
  136. package/dist/lib/ui/ToggleGroup.js +21 -0
  137. package/dist/lib/ui/ToggleGroup.js.map +1 -0
  138. package/dist/lib/ui/Tooltip.d.ts +7 -0
  139. package/dist/lib/ui/Tooltip.js +11 -0
  140. package/dist/lib/ui/Tooltip.js.map +1 -0
  141. package/dist/lib/util/MdxComponents.js.map +1 -1
  142. package/dist/lib/util/useScrollToAnchor.js.map +1 -1
  143. package/dist/vite/build.js +7 -2
  144. package/dist/vite/build.js.map +1 -1
  145. package/dist/vite/config.js +11 -6
  146. package/dist/vite/config.js.map +1 -1
  147. package/dist/vite/debug.d.ts +1 -0
  148. package/dist/vite/debug.js +10 -0
  149. package/dist/vite/debug.js.map +1 -0
  150. package/dist/vite/plugin-component.js +17 -7
  151. package/dist/vite/plugin-component.js.map +1 -1
  152. package/dist/vite/plugin-config-reload.js +0 -2
  153. package/dist/vite/plugin-config-reload.js.map +1 -1
  154. package/dist/vite/plugin-docs.js +37 -26
  155. package/dist/vite/plugin-docs.js.map +1 -1
  156. package/dist/vite/plugin-frontmatter.d.ts +2 -1
  157. package/dist/vite/plugin-frontmatter.js +27 -24
  158. package/dist/vite/plugin-frontmatter.js.map +1 -1
  159. package/dist/vite/plugin-sidebar.js +7 -6
  160. package/dist/vite/plugin-sidebar.js.map +1 -1
  161. package/dist/vite/plugin.js +1 -1
  162. package/dist/vite/plugin.js.map +1 -1
  163. package/dist/vite/prerender.d.ts +5 -1
  164. package/dist/vite/prerender.js +6 -5
  165. package/dist/vite/prerender.js.map +1 -1
  166. package/lib/{utils-G5XSiZc9.js → AnchorLink-BbB2q-jx.js} +231 -275
  167. package/lib/AnchorLink-BbB2q-jx.js.map +1 -0
  168. package/lib/{AuthenticationPlugin-tBvLKsFg.js → AuthenticationPlugin-C9BHGXlE.js} +2 -2
  169. package/lib/{AuthenticationPlugin-tBvLKsFg.js.map → AuthenticationPlugin-C9BHGXlE.js.map} +1 -1
  170. package/lib/{CategoryHeading-D2WS6sRI.js → CategoryHeading-Bb9dqxD3.js} +4 -4
  171. package/lib/{CategoryHeading-D2WS6sRI.js.map → CategoryHeading-Bb9dqxD3.js.map} +1 -1
  172. package/lib/{DeveloperHint-CRiZjqd2.js → DeveloperHint-DHdLXGHA.js} +2 -2
  173. package/lib/{DeveloperHint-CRiZjqd2.js.map → DeveloperHint-DHdLXGHA.js.map} +1 -1
  174. package/lib/{Markdown-DM4zv3MA.js → Markdown-BDcCAWwm.js} +4268 -6651
  175. package/lib/Markdown-BDcCAWwm.js.map +1 -0
  176. package/lib/{MdxPage-tWI_P8wP.js → MdxPage-DKMH_t0f.js} +31 -29
  177. package/lib/{MdxPage-tWI_P8wP.js.map → MdxPage-DKMH_t0f.js.map} +1 -1
  178. package/lib/{OperationList-Cd3lue0b.js → OperationList-DnaAtLxP.js} +131 -127
  179. package/lib/OperationList-DnaAtLxP.js.map +1 -0
  180. package/lib/{Route-DI0Y0pIV.js → Route-DSbLrlig.js} +2 -2
  181. package/lib/{Route-DI0Y0pIV.js.map → Route-DSbLrlig.js.map} +1 -1
  182. package/lib/Select-Bagt3Bme.js +223 -0
  183. package/lib/Select-Bagt3Bme.js.map +1 -0
  184. package/lib/{SlotletProvider-CBqY8mp6.js → SlotletProvider-4Naek_5M.js} +4 -4
  185. package/lib/{SlotletProvider-CBqY8mp6.js.map → SlotletProvider-4Naek_5M.js.map} +1 -1
  186. package/lib/Spinner-C6zroowC.js +40 -0
  187. package/lib/Spinner-C6zroowC.js.map +1 -0
  188. package/lib/StaggeredRender-DDHSzQKE.js +17 -0
  189. package/lib/StaggeredRender-DDHSzQKE.js.map +1 -0
  190. package/lib/{ZudokuContext-DEoP3GGJ.js → ZudokuContext-BKXGJTmu.js} +460 -411
  191. package/lib/ZudokuContext-BKXGJTmu.js.map +1 -0
  192. package/lib/__vite-browser-external-BYRIRx8p.js +9 -0
  193. package/lib/__vite-browser-external-BYRIRx8p.js.map +1 -0
  194. package/lib/assets/worker-Bf8vjASY.js.map +1 -1
  195. package/lib/cn-BmFQLtkS.js +2279 -0
  196. package/lib/cn-BmFQLtkS.js.map +1 -0
  197. package/lib/hook-sn0zMTkE.js +229 -0
  198. package/lib/hook-sn0zMTkE.js.map +1 -0
  199. package/lib/{index-Bs9roz8y.js → index-B3F9d8oi.js} +1201 -1429
  200. package/lib/index-B3F9d8oi.js.map +1 -0
  201. package/lib/index-BuAyrJe3.js +46 -0
  202. package/lib/index-BuAyrJe3.js.map +1 -0
  203. package/lib/index.esm-C5mr_sKO.js +1193 -0
  204. package/lib/index.esm-C5mr_sKO.js.map +1 -0
  205. package/lib/ui/Accordion.js +47 -0
  206. package/lib/ui/Accordion.js.map +1 -0
  207. package/lib/ui/Alert.js +51 -0
  208. package/lib/ui/Alert.js.map +1 -0
  209. package/lib/ui/AlertDialog.js +114 -0
  210. package/lib/ui/AlertDialog.js.map +1 -0
  211. package/lib/ui/AspectRatio.js +6 -0
  212. package/lib/ui/AspectRatio.js.map +1 -0
  213. package/lib/ui/Badge.js +27 -0
  214. package/lib/ui/Badge.js.map +1 -0
  215. package/lib/ui/Breadcrumb.js +94 -0
  216. package/lib/ui/Breadcrumb.js.map +1 -0
  217. package/lib/ui/Button.js +49 -0
  218. package/lib/ui/Button.js.map +1 -0
  219. package/lib/ui/Callout.js +77 -0
  220. package/lib/ui/Callout.js.map +1 -0
  221. package/lib/ui/Card.js +62 -0
  222. package/lib/ui/Card.js.map +1 -0
  223. package/lib/ui/Carousel.js +1410 -0
  224. package/lib/ui/Carousel.js.map +1 -0
  225. package/lib/ui/Checkbox.js +28 -0
  226. package/lib/ui/Checkbox.js.map +1 -0
  227. package/lib/ui/Collapsible.js +8 -0
  228. package/lib/ui/Collapsible.js.map +1 -0
  229. package/lib/ui/Dialog.js +101 -0
  230. package/lib/ui/Dialog.js.map +1 -0
  231. package/lib/ui/Drawer.js +1153 -0
  232. package/lib/ui/Drawer.js.map +1 -0
  233. package/lib/ui/DropdownMenu.js +145 -0
  234. package/lib/ui/DropdownMenu.js.map +1 -0
  235. package/lib/ui/Form.js +95 -0
  236. package/lib/ui/Form.js.map +1 -0
  237. package/lib/ui/HoverCard.js +24 -0
  238. package/lib/ui/HoverCard.js.map +1 -0
  239. package/lib/ui/Input.js +22 -0
  240. package/lib/ui/Input.js.map +1 -0
  241. package/lib/ui/Label.js +20 -0
  242. package/lib/ui/Label.js.map +1 -0
  243. package/lib/ui/Pagination.js +106 -0
  244. package/lib/ui/Pagination.js.map +1 -0
  245. package/lib/ui/Popover.js +24 -0
  246. package/lib/ui/Popover.js.map +1 -0
  247. package/lib/ui/Progress.js +27 -0
  248. package/lib/ui/Progress.js.map +1 -0
  249. package/lib/ui/RadioGroup.js +32 -0
  250. package/lib/ui/RadioGroup.js.map +1 -0
  251. package/lib/ui/ScrollArea.js +39 -0
  252. package/lib/ui/ScrollArea.js.map +1 -0
  253. package/lib/ui/Select.js +122 -0
  254. package/lib/ui/Select.js.map +1 -0
  255. package/lib/ui/Skeleton.js +18 -0
  256. package/lib/ui/Skeleton.js.map +1 -0
  257. package/lib/ui/Slider.js +24 -0
  258. package/lib/ui/Slider.js.map +1 -0
  259. package/lib/ui/Switch.js +28 -0
  260. package/lib/ui/Switch.js.map +1 -0
  261. package/lib/ui/Tabs.js +47 -0
  262. package/lib/ui/Tabs.js.map +1 -0
  263. package/lib/ui/Textarea.js +21 -0
  264. package/lib/ui/Textarea.js.map +1 -0
  265. package/lib/ui/Toggle.js +38 -0
  266. package/lib/ui/Toggle.js.map +1 -0
  267. package/lib/ui/ToggleGroup.js +42 -0
  268. package/lib/ui/ToggleGroup.js.map +1 -0
  269. package/lib/ui/Tooltip.js +24 -0
  270. package/lib/ui/Tooltip.js.map +1 -0
  271. package/lib/{urql-core-KJnLL26g.js → urql-core-CqTI9H6N.js} +289 -261
  272. package/lib/urql-core-CqTI9H6N.js.map +1 -0
  273. package/lib/zudoku.auth-clerk.js +1 -1
  274. package/lib/zudoku.auth-openid.js +2 -2
  275. package/lib/zudoku.components.js +889 -2876
  276. package/lib/zudoku.components.js.map +1 -1
  277. package/lib/zudoku.openapi-worker.js +1 -1
  278. package/lib/zudoku.plugin-api-keys.js +21 -18
  279. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  280. package/lib/zudoku.plugin-custom-pages.js +14 -13
  281. package/lib/zudoku.plugin-custom-pages.js.map +1 -1
  282. package/lib/zudoku.plugin-markdown.js +93 -27
  283. package/lib/zudoku.plugin-markdown.js.map +1 -1
  284. package/lib/zudoku.plugin-openapi.js +6 -6
  285. package/package.json +30 -8
  286. package/src/app/entry.client.tsx +4 -2
  287. package/src/app/entry.server.tsx +4 -0
  288. package/src/app/main.css +4 -0
  289. package/src/app/main.tsx +10 -26
  290. package/src/app/standalone.tsx +1 -1
  291. package/src/lib/components/Header.tsx +10 -2
  292. package/src/lib/components/SyntaxHighlight.tsx +5 -1
  293. package/src/lib/components/TopNavigation.tsx +58 -24
  294. package/src/lib/components/context/ZudokuContext.ts +28 -20
  295. package/src/lib/components/navigation/Sidebar.tsx +5 -5
  296. package/src/lib/components/navigation/SidebarCategory.tsx +2 -4
  297. package/src/lib/components/navigation/SidebarItem.tsx +1 -3
  298. package/src/lib/components/navigation/utils.ts +11 -16
  299. package/src/lib/core/DevPortalContext.ts +3 -7
  300. package/src/lib/core/plugins.ts +2 -0
  301. package/src/lib/plugins/api-keys/CreateApiKey.tsx +2 -2
  302. package/src/lib/plugins/markdown/index.tsx +49 -12
  303. package/src/lib/plugins/markdown/resolver.ts +92 -0
  304. package/src/lib/plugins/openapi/Endpoint.tsx +2 -2
  305. package/src/lib/plugins/openapi/RequestBodySidecarBox.tsx +1 -1
  306. package/src/lib/plugins/openapi/Sidecar.tsx +3 -3
  307. package/src/lib/plugins/openapi/client/worker.ts +2 -2
  308. package/src/lib/plugins/openapi/index.tsx +1 -1
  309. package/src/lib/plugins/openapi/playground/Playground.tsx +3 -3
  310. package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +1 -1
  311. package/src/lib/ui/Accordion.tsx +56 -0
  312. package/src/lib/ui/{Note.tsx → Alert.tsx} +11 -10
  313. package/src/lib/ui/AlertDialog.tsx +139 -0
  314. package/src/lib/ui/AspectRatio.tsx +5 -0
  315. package/src/lib/ui/Badge.tsx +36 -0
  316. package/src/lib/ui/Breadcrumb.tsx +115 -0
  317. package/src/lib/ui/Button.tsx +1 -1
  318. package/src/lib/ui/Carousel.tsx +260 -0
  319. package/src/lib/ui/Checkbox.tsx +28 -0
  320. package/src/lib/ui/Collapsible.tsx +9 -0
  321. package/src/lib/{components → ui}/Dialog.tsx +4 -3
  322. package/src/lib/ui/Form.tsx +177 -0
  323. package/src/lib/ui/HoverCard.tsx +27 -0
  324. package/src/lib/ui/Label.tsx +24 -0
  325. package/src/lib/ui/Pagination.tsx +117 -0
  326. package/src/lib/ui/Popover.tsx +29 -0
  327. package/src/lib/ui/Progress.tsx +26 -0
  328. package/src/lib/ui/RadioGroup.tsx +42 -0
  329. package/src/lib/ui/ScrollArea.tsx +46 -0
  330. package/src/lib/ui/Skeleton.tsx +15 -0
  331. package/src/lib/ui/Slider.tsx +26 -0
  332. package/src/lib/ui/Switch.tsx +27 -0
  333. package/src/lib/ui/Textarea.tsx +23 -0
  334. package/src/lib/ui/Toggle.tsx +43 -0
  335. package/src/lib/ui/ToggleGroup.tsx +59 -0
  336. package/src/lib/ui/Tooltip.tsx +28 -0
  337. package/src/lib/util/MdxComponents.tsx +0 -1
  338. package/src/lib/util/useScrollToAnchor.ts +1 -1
  339. package/dist/internal.d.ts +0 -1
  340. package/dist/internal.js +0 -2
  341. package/dist/internal.js.map +0 -1
  342. package/dist/lib/components/Dialog.js.map +0 -1
  343. package/dist/lib/components/Select.js.map +0 -1
  344. package/dist/lib/plugins/markdown/generateRoutes.d.ts +0 -3
  345. package/dist/lib/plugins/markdown/generateRoutes.js +0 -21
  346. package/dist/lib/plugins/markdown/generateRoutes.js.map +0 -1
  347. package/dist/lib/ui/Note.d.ts +0 -8
  348. package/dist/lib/ui/Note.js +0 -23
  349. package/dist/lib/ui/Note.js.map +0 -1
  350. package/lib/Input-CO-1DOZa.js +0 -2229
  351. package/lib/Input-CO-1DOZa.js.map +0 -1
  352. package/lib/Markdown-DM4zv3MA.js.map +0 -1
  353. package/lib/OperationList-Cd3lue0b.js.map +0 -1
  354. package/lib/Spinner-DFQhPMBl.js +0 -505
  355. package/lib/Spinner-DFQhPMBl.js.map +0 -1
  356. package/lib/ZudokuContext-DEoP3GGJ.js.map +0 -1
  357. package/lib/index-Bs9roz8y.js.map +0 -1
  358. package/lib/index-CBr6BM_4.js +0 -2867
  359. package/lib/index-CBr6BM_4.js.map +0 -1
  360. package/lib/index-UUT9q9f9.js +0 -124
  361. package/lib/index-UUT9q9f9.js.map +0 -1
  362. package/lib/joinPath-B7kNnUX4.js +0 -8
  363. package/lib/joinPath-B7kNnUX4.js.map +0 -1
  364. package/lib/urql-core-KJnLL26g.js.map +0 -1
  365. package/lib/utils-G5XSiZc9.js.map +0 -1
  366. package/src/lib/plugins/markdown/generateRoutes.tsx +0 -38
  367. /package/dist/lib/{components → ui}/Dialog.d.ts +0 -0
  368. /package/dist/lib/{components → ui}/Select.d.ts +0 -0
  369. /package/dist/lib/{components → ui}/Select.js +0 -0
  370. /package/src/lib/{components → ui}/Select.tsx +0 -0
@@ -0,0 +1,92 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+ import {
4
+ ZudokuConfig,
5
+ ZudokuDocsConfig,
6
+ } from "../../../config/validators/validate.js";
7
+
8
+ const DEFAULT_DOCS_FILES = "/pages/**/*.{md,mdx}";
9
+
10
+ // TODO: This should be dynamic based on the glob selector
11
+ const SUPPORTED_EXTENSIONS = [".md", ".mdx"];
12
+
13
+ /**
14
+ * Utilities for resolving markdown file paths and routes
15
+ */
16
+ export class DocResolver {
17
+ constructor(private config: ZudokuConfig) {}
18
+
19
+ fileMap = new Map<string, string>();
20
+
21
+ /**
22
+ * Gets the default docs config from the zudoku config
23
+ */
24
+ getDocsConfigs() {
25
+ const docsConfigs: ZudokuDocsConfig[] = this.config.docs
26
+ ? Array.isArray(this.config.docs)
27
+ ? this.config.docs
28
+ : [this.config.docs]
29
+ : [{ files: DEFAULT_DOCS_FILES }];
30
+
31
+ return docsConfigs;
32
+ }
33
+
34
+ /**
35
+ * Resolves the first matching file system path for a given docId
36
+ * @param docId - The docId to resolve
37
+ * @returns
38
+ */
39
+ resolveFilePath(docId: string) {
40
+ const docsConfigs = this.getDocsConfigs();
41
+ let fsPath: string | undefined;
42
+
43
+ docsConfigs.forEach(({ files: fileGlob }) => {
44
+ if (fsPath) {
45
+ return;
46
+ }
47
+ const rootDir = DocResolver.getRootDir(fileGlob);
48
+ for (const ext of SUPPORTED_EXTENSIONS) {
49
+ if (fsPath) {
50
+ return;
51
+ }
52
+ const checkPath = path.join(rootDir, `${docId}${ext}`);
53
+ if (fs.existsSync(checkPath)) {
54
+ fsPath = checkPath;
55
+ }
56
+ }
57
+ });
58
+
59
+ return fsPath;
60
+ }
61
+
62
+ /**
63
+ * Gets the root directory from a files glob
64
+ */
65
+ private static getRootDir(filesGlob: string) {
66
+ let rootDir = filesGlob.split("**")[0];
67
+ if (!rootDir) {
68
+ throw new Error("Invalid files glob. Must have '**' in the path.");
69
+ }
70
+ rootDir = rootDir.replace("/**", "/");
71
+ return rootDir;
72
+ }
73
+
74
+ /**
75
+ * Resolves the route path for a given file system path
76
+ * @param options - The options to resolve the route path
77
+ * @returns The string route path
78
+ */
79
+ static resolveRoutePath({
80
+ filesGlob,
81
+ fsPath,
82
+ }: {
83
+ filesGlob: string;
84
+ fsPath: string;
85
+ }) {
86
+ const rootDir = this.getRootDir(filesGlob);
87
+ const re = new RegExp(`^${rootDir}(.*).mdx?`);
88
+ const match = fsPath.match(re);
89
+ const routePath = match?.at(1);
90
+ return routePath;
91
+ }
92
+ }
@@ -62,9 +62,9 @@ export const Endpoint = () => {
62
62
  <div className="flex items-center gap-2">
63
63
  <span className="font-medium text-sm">Endpoint:</span>
64
64
  <InlineCode className="text-xs px-2 py-1.5" selectOnClick>
65
- {servers[0].url}
65
+ {servers[0]!.url}
66
66
  </InlineCode>
67
- <CopyButton url={servers[0].url} />
67
+ <CopyButton url={servers[0]!.url} />
68
68
  </div>
69
69
  );
70
70
  }
@@ -26,7 +26,7 @@ export const RequestBodySidecarBox = ({ content }: { content: Content }) => {
26
26
  className="text-xs max-h-[450px] p-2"
27
27
  code={JSON.stringify(
28
28
  content.at(0)?.schema
29
- ? generateSchemaExample(content[0].schema as SchemaObject)
29
+ ? generateSchemaExample(content[0]!.schema as SchemaObject)
30
30
  : "",
31
31
  null,
32
32
  2,
@@ -198,7 +198,7 @@ export const Sidecar = ({
198
198
  language={selectedLang}
199
199
  noBackground
200
200
  className="text-xs p-2"
201
- code={code}
201
+ code={code!}
202
202
  />
203
203
  </SidecarBox.Body>
204
204
  <SidecarBox.Footer className="flex items-center text-xs gap-2 justify-end py-1">
@@ -216,13 +216,13 @@ export const Sidecar = ({
216
216
  }}
217
217
  options={[
218
218
  { value: "shell", label: "cURL" },
219
- { value: "js", label: "Javascript" },
219
+ { value: "js", label: "JavaScript" },
220
220
  { value: "python", label: "Python" },
221
221
  { value: "java", label: "Java" },
222
222
  { value: "go", label: "Go" },
223
223
  { value: "csharp", label: "C#" },
224
224
  { value: "kotlin", label: "Kotlin" },
225
- { value: "objc", label: "Objective C" },
225
+ { value: "objc", label: "Objective-C" },
226
226
  { value: "php", label: "PHP" },
227
227
  { value: "ruby", label: "Ruby" },
228
228
  { value: "swift", label: "Swift" },
@@ -10,7 +10,7 @@ worker.addEventListener(
10
10
  function (event: MessageEvent<{ id: string; body: string }>) {
11
11
  const port = event.ports[0];
12
12
 
13
- port.onmessage = async function (e) {
13
+ port!.onmessage = async function (e) {
14
14
  const response = await localServer.fetch(
15
15
  new Request("/__z/graphql", {
16
16
  method: "POST",
@@ -21,7 +21,7 @@ worker.addEventListener(
21
21
  }),
22
22
  );
23
23
 
24
- port.postMessage({
24
+ port!.postMessage({
25
25
  id: e.data.id,
26
26
  body: await response.text(),
27
27
  } satisfies WorkerGraphQLMessage);
@@ -170,7 +170,7 @@ export const openApiPlugin = (
170
170
  href: `#${operation.slug}`,
171
171
  badge: {
172
172
  label: operation.method,
173
- color: MethodColorMap[operation.method.toLowerCase()],
173
+ color: MethodColorMap[operation.method.toLowerCase()]!,
174
174
  },
175
175
  })),
176
176
  }));
@@ -1,15 +1,15 @@
1
1
  import { useMutation } from "@tanstack/react-query";
2
2
  import { Fragment, useEffect, useRef, useTransition } from "react";
3
3
  import { FormProvider, useForm } from "react-hook-form";
4
- import { useSelectedServerStore } from "../../../authentication/state.js";
5
- import { useApiIdentities } from "../../../components/context/ZudokuContext.js";
6
4
  import {
7
5
  Select,
8
6
  SelectContent,
9
7
  SelectItem,
10
8
  SelectTrigger,
11
9
  SelectValue,
12
- } from "../../../components/Select.js";
10
+ } from "zudoku/ui/Select.js";
11
+ import { useSelectedServerStore } from "../../../authentication/state.js";
12
+ import { useApiIdentities } from "../../../components/context/ZudokuContext.js";
13
13
  import { Spinner } from "../../../components/Spinner.js";
14
14
  import { Button } from "../../../ui/Button.js";
15
15
  import { Callout } from "../../../ui/Callout.js";
@@ -5,7 +5,7 @@ import {
5
5
  DialogContent,
6
6
  DialogTitle,
7
7
  DialogTrigger,
8
- } from "../../../components/Dialog.js";
8
+ } from "zudoku/ui/Dialog.js";
9
9
  import { Playground, type PlaygroundContentProps } from "./Playground.js";
10
10
 
11
11
  export type PlaygroundDialogProps = PropsWithChildren<PlaygroundContentProps>;
@@ -0,0 +1,56 @@
1
+ import * as AccordionPrimitive from "@radix-ui/react-accordion";
2
+ import { ChevronDown } from "lucide-react";
3
+ import * as React from "react";
4
+
5
+ import { cn } from "../util/cn.js";
6
+
7
+ const Accordion = AccordionPrimitive.Root;
8
+
9
+ const AccordionItem = React.forwardRef<
10
+ React.ElementRef<typeof AccordionPrimitive.Item>,
11
+ React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>
12
+ >(({ className, ...props }, ref) => (
13
+ <AccordionPrimitive.Item
14
+ ref={ref}
15
+ className={cn("border-b", className)}
16
+ {...props}
17
+ />
18
+ ));
19
+ AccordionItem.displayName = "AccordionItem";
20
+
21
+ const AccordionTrigger = React.forwardRef<
22
+ React.ElementRef<typeof AccordionPrimitive.Trigger>,
23
+ React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>
24
+ >(({ className, children, ...props }, ref) => (
25
+ <AccordionPrimitive.Header className="flex">
26
+ <AccordionPrimitive.Trigger
27
+ ref={ref}
28
+ className={cn(
29
+ "flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
30
+ className,
31
+ )}
32
+ {...props}
33
+ >
34
+ {children}
35
+ <ChevronDown className="h-4 w-4 shrink-0 transition-transform duration-200" />
36
+ </AccordionPrimitive.Trigger>
37
+ </AccordionPrimitive.Header>
38
+ ));
39
+ AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
40
+
41
+ const AccordionContent = React.forwardRef<
42
+ React.ElementRef<typeof AccordionPrimitive.Content>,
43
+ React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>
44
+ >(({ className, children, ...props }, ref) => (
45
+ <AccordionPrimitive.Content
46
+ ref={ref}
47
+ className="overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down"
48
+ {...props}
49
+ >
50
+ <div className={cn("pb-4 pt-0", className)}>{children}</div>
51
+ </AccordionPrimitive.Content>
52
+ ));
53
+
54
+ AccordionContent.displayName = AccordionPrimitive.Content.displayName;
55
+
56
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger };
@@ -1,8 +1,9 @@
1
1
  import { cva, type VariantProps } from "class-variance-authority";
2
2
  import * as React from "react";
3
+
3
4
  import { cn } from "../util/cn.js";
4
5
 
5
- const noteVariants = cva(
6
+ const alertVariants = cva(
6
7
  "relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",
7
8
  {
8
9
  variants: {
@@ -18,20 +19,20 @@ const noteVariants = cva(
18
19
  },
19
20
  );
20
21
 
21
- const Note = React.forwardRef<
22
+ const Alert = React.forwardRef<
22
23
  HTMLDivElement,
23
- React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof noteVariants>
24
+ React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>
24
25
  >(({ className, variant, ...props }, ref) => (
25
26
  <div
26
27
  ref={ref}
27
28
  role="alert"
28
- className={cn(noteVariants({ variant }), className)}
29
+ className={cn(alertVariants({ variant }), className)}
29
30
  {...props}
30
31
  />
31
32
  ));
32
- Note.displayName = "Alert";
33
+ Alert.displayName = "Alert";
33
34
 
34
- const NoteTitle = React.forwardRef<
35
+ const AlertTitle = React.forwardRef<
35
36
  HTMLParagraphElement,
36
37
  React.HTMLAttributes<HTMLHeadingElement>
37
38
  >(({ className, ...props }, ref) => (
@@ -41,9 +42,9 @@ const NoteTitle = React.forwardRef<
41
42
  {...props}
42
43
  />
43
44
  ));
44
- NoteTitle.displayName = "AlertTitle";
45
+ AlertTitle.displayName = "AlertTitle";
45
46
 
46
- const NoteDescription = React.forwardRef<
47
+ const AlertDescription = React.forwardRef<
47
48
  HTMLParagraphElement,
48
49
  React.HTMLAttributes<HTMLParagraphElement>
49
50
  >(({ className, ...props }, ref) => (
@@ -53,6 +54,6 @@ const NoteDescription = React.forwardRef<
53
54
  {...props}
54
55
  />
55
56
  ));
56
- NoteDescription.displayName = "AlertDescription";
57
+ AlertDescription.displayName = "AlertDescription";
57
58
 
58
- export { Note, NoteDescription, NoteTitle };
59
+ export { Alert, AlertDescription, AlertTitle };
@@ -0,0 +1,139 @@
1
+ import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
2
+ import * as React from "react";
3
+
4
+ import { cn } from "../util/cn.js";
5
+ import { buttonVariants } from "./Button.js";
6
+
7
+ const AlertDialog = AlertDialogPrimitive.Root;
8
+
9
+ const AlertDialogTrigger = AlertDialogPrimitive.Trigger;
10
+
11
+ const AlertDialogPortal = AlertDialogPrimitive.Portal;
12
+
13
+ const AlertDialogOverlay = React.forwardRef<
14
+ React.ElementRef<typeof AlertDialogPrimitive.Overlay>,
15
+ React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>
16
+ >(({ className, ...props }, ref) => (
17
+ <AlertDialogPrimitive.Overlay
18
+ className={cn(
19
+ "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
20
+ className,
21
+ )}
22
+ {...props}
23
+ ref={ref}
24
+ />
25
+ ));
26
+ AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
27
+
28
+ const AlertDialogContent = React.forwardRef<
29
+ React.ElementRef<typeof AlertDialogPrimitive.Content>,
30
+ React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>
31
+ >(({ className, ...props }, ref) => (
32
+ <AlertDialogPortal>
33
+ <AlertDialogOverlay />
34
+ <AlertDialogPrimitive.Content
35
+ ref={ref}
36
+ className={cn(
37
+ "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
38
+ className,
39
+ )}
40
+ {...props}
41
+ />
42
+ </AlertDialogPortal>
43
+ ));
44
+ AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
45
+
46
+ const AlertDialogHeader = ({
47
+ className,
48
+ ...props
49
+ }: React.HTMLAttributes<HTMLDivElement>) => (
50
+ <div
51
+ className={cn(
52
+ "flex flex-col space-y-2 text-center sm:text-left",
53
+ className,
54
+ )}
55
+ {...props}
56
+ />
57
+ );
58
+ AlertDialogHeader.displayName = "AlertDialogHeader";
59
+
60
+ const AlertDialogFooter = ({
61
+ className,
62
+ ...props
63
+ }: React.HTMLAttributes<HTMLDivElement>) => (
64
+ <div
65
+ className={cn(
66
+ "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
67
+ className,
68
+ )}
69
+ {...props}
70
+ />
71
+ );
72
+ AlertDialogFooter.displayName = "AlertDialogFooter";
73
+
74
+ const AlertDialogTitle = React.forwardRef<
75
+ React.ElementRef<typeof AlertDialogPrimitive.Title>,
76
+ React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>
77
+ >(({ className, ...props }, ref) => (
78
+ <AlertDialogPrimitive.Title
79
+ ref={ref}
80
+ className={cn("text-lg font-semibold", className)}
81
+ {...props}
82
+ />
83
+ ));
84
+ AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
85
+
86
+ const AlertDialogDescription = React.forwardRef<
87
+ React.ElementRef<typeof AlertDialogPrimitive.Description>,
88
+ React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>
89
+ >(({ className, ...props }, ref) => (
90
+ <AlertDialogPrimitive.Description
91
+ ref={ref}
92
+ className={cn("text-sm text-muted-foreground", className)}
93
+ {...props}
94
+ />
95
+ ));
96
+ AlertDialogDescription.displayName =
97
+ AlertDialogPrimitive.Description.displayName;
98
+
99
+ const AlertDialogAction = React.forwardRef<
100
+ React.ElementRef<typeof AlertDialogPrimitive.Action>,
101
+ React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>
102
+ >(({ className, ...props }, ref) => (
103
+ <AlertDialogPrimitive.Action
104
+ ref={ref}
105
+ className={cn(buttonVariants(), className)}
106
+ {...props}
107
+ />
108
+ ));
109
+ AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
110
+
111
+ const AlertDialogCancel = React.forwardRef<
112
+ React.ElementRef<typeof AlertDialogPrimitive.Cancel>,
113
+ React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>
114
+ >(({ className, ...props }, ref) => (
115
+ <AlertDialogPrimitive.Cancel
116
+ ref={ref}
117
+ className={cn(
118
+ buttonVariants({ variant: "outline" }),
119
+ "mt-2 sm:mt-0",
120
+ className,
121
+ )}
122
+ {...props}
123
+ />
124
+ ));
125
+ AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
126
+
127
+ export {
128
+ AlertDialog,
129
+ AlertDialogAction,
130
+ AlertDialogCancel,
131
+ AlertDialogContent,
132
+ AlertDialogDescription,
133
+ AlertDialogFooter,
134
+ AlertDialogHeader,
135
+ AlertDialogOverlay,
136
+ AlertDialogPortal,
137
+ AlertDialogTitle,
138
+ AlertDialogTrigger,
139
+ };
@@ -0,0 +1,5 @@
1
+ import * as AspectRatioPrimitive from "@radix-ui/react-aspect-ratio";
2
+
3
+ const AspectRatio = AspectRatioPrimitive.Root;
4
+
5
+ export { AspectRatio };
@@ -0,0 +1,36 @@
1
+ import { cva, type VariantProps } from "class-variance-authority";
2
+ import * as React from "react";
3
+
4
+ import { cn } from "../util/cn.js";
5
+
6
+ const badgeVariants = cva(
7
+ "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
8
+ {
9
+ variants: {
10
+ variant: {
11
+ default:
12
+ "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
13
+ secondary:
14
+ "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
15
+ destructive:
16
+ "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",
17
+ outline: "text-foreground",
18
+ },
19
+ },
20
+ defaultVariants: {
21
+ variant: "default",
22
+ },
23
+ },
24
+ );
25
+
26
+ export interface BadgeProps
27
+ extends React.HTMLAttributes<HTMLDivElement>,
28
+ VariantProps<typeof badgeVariants> {}
29
+
30
+ function Badge({ className, variant, ...props }: BadgeProps) {
31
+ return (
32
+ <div className={cn(badgeVariants({ variant }), className)} {...props} />
33
+ );
34
+ }
35
+
36
+ export { Badge, badgeVariants };
@@ -0,0 +1,115 @@
1
+ import { Slot } from "@radix-ui/react-slot";
2
+ import { ChevronRight, MoreHorizontal } from "lucide-react";
3
+ import * as React from "react";
4
+
5
+ import { cn } from "../util/cn.js";
6
+
7
+ const Breadcrumb = React.forwardRef<
8
+ HTMLElement,
9
+ React.ComponentPropsWithoutRef<"nav"> & {
10
+ separator?: React.ReactNode;
11
+ }
12
+ >(({ ...props }, ref) => <nav ref={ref} aria-label="breadcrumb" {...props} />);
13
+ Breadcrumb.displayName = "Breadcrumb";
14
+
15
+ const BreadcrumbList = React.forwardRef<
16
+ HTMLOListElement,
17
+ React.ComponentPropsWithoutRef<"ol">
18
+ >(({ className, ...props }, ref) => (
19
+ <ol
20
+ ref={ref}
21
+ className={cn(
22
+ "flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5",
23
+ className,
24
+ )}
25
+ {...props}
26
+ />
27
+ ));
28
+ BreadcrumbList.displayName = "BreadcrumbList";
29
+
30
+ const BreadcrumbItem = React.forwardRef<
31
+ HTMLLIElement,
32
+ React.ComponentPropsWithoutRef<"li">
33
+ >(({ className, ...props }, ref) => (
34
+ <li
35
+ ref={ref}
36
+ className={cn("inline-flex items-center gap-1.5", className)}
37
+ {...props}
38
+ />
39
+ ));
40
+ BreadcrumbItem.displayName = "BreadcrumbItem";
41
+
42
+ const BreadcrumbLink = React.forwardRef<
43
+ HTMLAnchorElement,
44
+ React.ComponentPropsWithoutRef<"a"> & {
45
+ asChild?: boolean;
46
+ }
47
+ >(({ asChild, className, ...props }, ref) => {
48
+ const Comp = asChild ? Slot : "a";
49
+
50
+ return (
51
+ <Comp
52
+ ref={ref}
53
+ className={cn("transition-colors hover:text-foreground", className)}
54
+ {...props}
55
+ />
56
+ );
57
+ });
58
+ BreadcrumbLink.displayName = "BreadcrumbLink";
59
+
60
+ const BreadcrumbPage = React.forwardRef<
61
+ HTMLSpanElement,
62
+ React.ComponentPropsWithoutRef<"span">
63
+ >(({ className, ...props }, ref) => (
64
+ <span
65
+ ref={ref}
66
+ role="link"
67
+ aria-disabled="true"
68
+ aria-current="page"
69
+ className={cn("font-normal text-foreground", className)}
70
+ {...props}
71
+ />
72
+ ));
73
+ BreadcrumbPage.displayName = "BreadcrumbPage";
74
+
75
+ const BreadcrumbSeparator = ({
76
+ children,
77
+ className,
78
+ ...props
79
+ }: React.ComponentProps<"li">) => (
80
+ <li
81
+ role="presentation"
82
+ aria-hidden="true"
83
+ className={cn("[&>svg]:w-3.5 [&>svg]:h-3.5", className)}
84
+ {...props}
85
+ >
86
+ {children ?? <ChevronRight />}
87
+ </li>
88
+ );
89
+ BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
90
+
91
+ const BreadcrumbEllipsis = ({
92
+ className,
93
+ ...props
94
+ }: React.ComponentProps<"span">) => (
95
+ <span
96
+ role="presentation"
97
+ aria-hidden="true"
98
+ className={cn("flex h-9 w-9 items-center justify-center", className)}
99
+ {...props}
100
+ >
101
+ <MoreHorizontal className="h-4 w-4" />
102
+ <span className="sr-only">More</span>
103
+ </span>
104
+ );
105
+ BreadcrumbEllipsis.displayName = "BreadcrumbElipssis";
106
+
107
+ export {
108
+ Breadcrumb,
109
+ BreadcrumbEllipsis,
110
+ BreadcrumbItem,
111
+ BreadcrumbLink,
112
+ BreadcrumbList,
113
+ BreadcrumbPage,
114
+ BreadcrumbSeparator,
115
+ };
@@ -3,7 +3,7 @@ import { cva, VariantProps } from "class-variance-authority";
3
3
  import * as React from "react";
4
4
  import { cn } from "../util/cn.js";
5
5
 
6
- const buttonVariants = cva(
6
+ export const buttonVariants = cva(
7
7
  "not-prose inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",
8
8
  {
9
9
  variants: {