@slexn/codecenter-ui 1.0.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 (472) hide show
  1. package/LICENSE +34 -0
  2. package/README.md +148 -0
  3. package/components.json +20 -0
  4. package/dist/codecenter-ui.cjs +10 -0
  5. package/dist/codecenter-ui.js +17995 -0
  6. package/dist/components/ui/accordion/Accordion.vue.d.ts +28 -0
  7. package/dist/components/ui/accordion/AccordionContent.vue.d.ts +22 -0
  8. package/dist/components/ui/accordion/AccordionItem.vue.d.ts +24 -0
  9. package/dist/components/ui/accordion/AccordionTrigger.vue.d.ts +22 -0
  10. package/dist/components/ui/accordion/index.d.ts +4 -0
  11. package/dist/components/ui/alert/Alert.vue.d.ts +32 -0
  12. package/dist/components/ui/alert/AlertDescription.vue.d.ts +24 -0
  13. package/dist/components/ui/alert/AlertTitle.vue.d.ts +24 -0
  14. package/dist/components/ui/alert/index.d.ts +4 -0
  15. package/dist/components/ui/alert/variants.d.ts +5 -0
  16. package/dist/components/ui/button/Button.vue.d.ts +27 -0
  17. package/dist/components/ui/button/index.d.ts +2 -0
  18. package/dist/components/ui/button/variants.d.ts +6 -0
  19. package/dist/components/ui/button-group/ButtonGroup.vue.d.ts +25 -0
  20. package/dist/components/ui/button-group/index.d.ts +2 -0
  21. package/dist/components/ui/card/Card.vue.d.ts +21 -0
  22. package/dist/components/ui/card/CardContent.vue.d.ts +21 -0
  23. package/dist/components/ui/card/CardDescription.vue.d.ts +21 -0
  24. package/dist/components/ui/card/CardFooter.vue.d.ts +21 -0
  25. package/dist/components/ui/card/CardHeader.vue.d.ts +21 -0
  26. package/dist/components/ui/card/CardTitle.vue.d.ts +21 -0
  27. package/dist/components/ui/card/index.d.ts +6 -0
  28. package/dist/components/ui/chart/Chart.vue.d.ts +92 -0
  29. package/dist/components/ui/chart/index.d.ts +2 -0
  30. package/dist/components/ui/chat/Chat.vue.d.ts +190 -0
  31. package/dist/components/ui/chat/ChatAttachments.vue.d.ts +11 -0
  32. package/dist/components/ui/chat/ChatCodeBlock.vue.d.ts +16 -0
  33. package/dist/components/ui/chat/code-block.d.ts +27 -0
  34. package/dist/components/ui/chat/index.d.ts +6 -0
  35. package/dist/components/ui/chat/types.d.ts +15 -0
  36. package/dist/components/ui/checkbox/Checkbox.vue.d.ts +29 -0
  37. package/dist/components/ui/checkbox/index.d.ts +1 -0
  38. package/dist/components/ui/commit/Commit.vue.d.ts +62 -0
  39. package/dist/components/ui/commit/index.d.ts +2 -0
  40. package/dist/components/ui/contribution-graph/ContributionGraph.vue.d.ts +87 -0
  41. package/dist/components/ui/contribution-graph/index.d.ts +2 -0
  42. package/dist/components/ui/data-table/DataTable.vue.d.ts +109 -0
  43. package/dist/components/ui/data-table/index.d.ts +2 -0
  44. package/dist/components/ui/date-picker/DatePicker.vue.d.ts +37 -0
  45. package/dist/components/ui/date-picker/index.d.ts +2 -0
  46. package/dist/components/ui/dialog/Dialog.vue.d.ts +25 -0
  47. package/dist/components/ui/dialog/DialogClose.vue.d.ts +18 -0
  48. package/dist/components/ui/dialog/DialogContent.vue.d.ts +39 -0
  49. package/dist/components/ui/dialog/DialogDescription.vue.d.ts +22 -0
  50. package/dist/components/ui/dialog/DialogFooter.vue.d.ts +21 -0
  51. package/dist/components/ui/dialog/DialogHeader.vue.d.ts +21 -0
  52. package/dist/components/ui/dialog/DialogOverlay.vue.d.ts +22 -0
  53. package/dist/components/ui/dialog/DialogScrollContent.vue.d.ts +36 -0
  54. package/dist/components/ui/dialog/DialogTitle.vue.d.ts +22 -0
  55. package/dist/components/ui/dialog/DialogTrigger.vue.d.ts +18 -0
  56. package/dist/components/ui/dialog/index.d.ts +10 -0
  57. package/dist/components/ui/diff/DiffTool.vue.d.ts +21 -0
  58. package/dist/components/ui/diff/diff-parser.d.ts +30 -0
  59. package/dist/components/ui/diff/diff-tool.d.ts +36 -0
  60. package/dist/components/ui/diff/index.d.ts +2 -0
  61. package/dist/components/ui/dropdown-menu/DropdownMenu.vue.d.ts +24 -0
  62. package/dist/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue.d.ts +29 -0
  63. package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +36 -0
  64. package/dist/components/ui/dropdown-menu/DropdownMenuGroup.vue.d.ts +18 -0
  65. package/dist/components/ui/dropdown-menu/DropdownMenuItem.vue.d.ts +26 -0
  66. package/dist/components/ui/dropdown-menu/DropdownMenuLabel.vue.d.ts +23 -0
  67. package/dist/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue.d.ts +22 -0
  68. package/dist/components/ui/dropdown-menu/DropdownMenuRadioItem.vue.d.ts +27 -0
  69. package/dist/components/ui/dropdown-menu/DropdownMenuSeparator.vue.d.ts +7 -0
  70. package/dist/components/ui/dropdown-menu/DropdownMenuShortcut.vue.d.ts +21 -0
  71. package/dist/components/ui/dropdown-menu/DropdownMenuSub.vue.d.ts +22 -0
  72. package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +38 -0
  73. package/dist/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue.d.ts +23 -0
  74. package/dist/components/ui/dropdown-menu/DropdownMenuTrigger.vue.d.ts +18 -0
  75. package/dist/components/ui/dropdown-menu/index.d.ts +15 -0
  76. package/dist/components/ui/gauge/Gauge.vue.d.ts +62 -0
  77. package/dist/components/ui/gauge/index.d.ts +2 -0
  78. package/dist/components/ui/git-graph/GitGraph.vue.d.ts +59 -0
  79. package/dist/components/ui/git-graph/index.d.ts +2 -0
  80. package/dist/components/ui/incident-timeline/IncidentTimeline.vue.d.ts +50 -0
  81. package/dist/components/ui/incident-timeline/index.d.ts +2 -0
  82. package/dist/components/ui/input/Input.vue.d.ts +14 -0
  83. package/dist/components/ui/input/InputControl.vue.d.ts +14 -0
  84. package/dist/components/ui/input/InputFieldGroup.vue.d.ts +21 -0
  85. package/dist/components/ui/input/index.d.ts +4 -0
  86. package/dist/components/ui/input/types.d.ts +31 -0
  87. package/dist/components/ui/kpi-card/KpiCard.vue.d.ts +46 -0
  88. package/dist/components/ui/kpi-card/index.d.ts +2 -0
  89. package/dist/components/ui/kpi-line-card/KpiLineCard.vue.d.ts +66 -0
  90. package/dist/components/ui/kpi-line-card/index.d.ts +2 -0
  91. package/dist/components/ui/model-selector/ModelSelector.vue.d.ts +41 -0
  92. package/dist/components/ui/model-selector/index.d.ts +2 -0
  93. package/dist/components/ui/model-selector/types.d.ts +12 -0
  94. package/dist/components/ui/network-graph/NetworkGraph.vue.d.ts +75 -0
  95. package/dist/components/ui/network-graph/index.d.ts +2 -0
  96. package/dist/components/ui/pagination/Pagination.vue.d.ts +29 -0
  97. package/dist/components/ui/pagination/PaginationContent.vue.d.ts +29 -0
  98. package/dist/components/ui/pagination/PaginationEllipsis.vue.d.ts +22 -0
  99. package/dist/components/ui/pagination/PaginationFirst.vue.d.ts +26 -0
  100. package/dist/components/ui/pagination/PaginationItem.vue.d.ts +28 -0
  101. package/dist/components/ui/pagination/PaginationLast.vue.d.ts +26 -0
  102. package/dist/components/ui/pagination/PaginationNext.vue.d.ts +26 -0
  103. package/dist/components/ui/pagination/PaginationPrevious.vue.d.ts +26 -0
  104. package/dist/components/ui/pagination/index.d.ts +8 -0
  105. package/dist/components/ui/profile/Profile.vue.d.ts +30 -0
  106. package/dist/components/ui/profile/ProfileGroup.vue.d.ts +37 -0
  107. package/dist/components/ui/profile/index.d.ts +4 -0
  108. package/dist/components/ui/progress/Progress.vue.d.ts +36 -0
  109. package/dist/components/ui/progress/index.d.ts +2 -0
  110. package/dist/components/ui/prompt-input/PromptInput.vue.d.ts +150 -0
  111. package/dist/components/ui/prompt-input/index.d.ts +2 -0
  112. package/dist/components/ui/prompt-input/types.d.ts +61 -0
  113. package/dist/components/ui/radio-group/RadioGroup.vue.d.ts +30 -0
  114. package/dist/components/ui/radio-group/RadioGroupItem.vue.d.ts +12 -0
  115. package/dist/components/ui/radio-group/RadioGroupOption.vue.d.ts +28 -0
  116. package/dist/components/ui/radio-group/index.d.ts +3 -0
  117. package/dist/components/ui/reasoning/Reasoning.vue.d.ts +40 -0
  118. package/dist/components/ui/reasoning/index.d.ts +2 -0
  119. package/dist/components/ui/reasoning/types.d.ts +26 -0
  120. package/dist/components/ui/select/Select.vue.d.ts +28 -0
  121. package/dist/components/ui/select/SelectContent.vue.d.ts +46 -0
  122. package/dist/components/ui/select/SelectGroup.vue.d.ts +18 -0
  123. package/dist/components/ui/select/SelectItem.vue.d.ts +26 -0
  124. package/dist/components/ui/select/SelectItemText.vue.d.ts +18 -0
  125. package/dist/components/ui/select/SelectLabel.vue.d.ts +22 -0
  126. package/dist/components/ui/select/SelectScrollDownButton.vue.d.ts +22 -0
  127. package/dist/components/ui/select/SelectScrollUpButton.vue.d.ts +22 -0
  128. package/dist/components/ui/select/SelectSeparator.vue.d.ts +7 -0
  129. package/dist/components/ui/select/SelectTrigger.vue.d.ts +25 -0
  130. package/dist/components/ui/select/SelectValue.vue.d.ts +18 -0
  131. package/dist/components/ui/select/index.d.ts +11 -0
  132. package/dist/components/ui/select/search.d.ts +18 -0
  133. package/dist/components/ui/separator/Separator.vue.d.ts +6 -0
  134. package/dist/components/ui/separator/index.d.ts +2 -0
  135. package/dist/components/ui/separator/types.d.ts +7 -0
  136. package/dist/components/ui/shimmer/Shimmer.vue.d.ts +37 -0
  137. package/dist/components/ui/shimmer/index.d.ts +2 -0
  138. package/dist/components/ui/sidebar/Sidebar.vue.d.ts +24 -0
  139. package/dist/components/ui/sidebar/SidebarContent.vue.d.ts +21 -0
  140. package/dist/components/ui/sidebar/SidebarFooter.vue.d.ts +21 -0
  141. package/dist/components/ui/sidebar/SidebarGroup.vue.d.ts +21 -0
  142. package/dist/components/ui/sidebar/SidebarGroupAction.vue.d.ts +24 -0
  143. package/dist/components/ui/sidebar/SidebarGroupContent.vue.d.ts +21 -0
  144. package/dist/components/ui/sidebar/SidebarGroupLabel.vue.d.ts +24 -0
  145. package/dist/components/ui/sidebar/SidebarHeader.vue.d.ts +21 -0
  146. package/dist/components/ui/sidebar/SidebarInput.vue.d.ts +6 -0
  147. package/dist/components/ui/sidebar/SidebarInset.vue.d.ts +21 -0
  148. package/dist/components/ui/sidebar/SidebarMenu.vue.d.ts +21 -0
  149. package/dist/components/ui/sidebar/SidebarMenuAction.vue.d.ts +25 -0
  150. package/dist/components/ui/sidebar/SidebarMenuBadge.vue.d.ts +21 -0
  151. package/dist/components/ui/sidebar/SidebarMenuButton.vue.d.ts +25 -0
  152. package/dist/components/ui/sidebar/SidebarMenuButtonChild.vue.d.ts +30 -0
  153. package/dist/components/ui/sidebar/SidebarMenuItem.vue.d.ts +21 -0
  154. package/dist/components/ui/sidebar/SidebarMenuSub.vue.d.ts +21 -0
  155. package/dist/components/ui/sidebar/SidebarMenuSubButton.vue.d.ts +27 -0
  156. package/dist/components/ui/sidebar/SidebarMenuSubItem.vue.d.ts +21 -0
  157. package/dist/components/ui/sidebar/SidebarProvider.vue.d.ts +36 -0
  158. package/dist/components/ui/sidebar/SidebarRail.vue.d.ts +21 -0
  159. package/dist/components/ui/sidebar/SidebarSeparator.vue.d.ts +6 -0
  160. package/dist/components/ui/sidebar/SidebarTrigger.vue.d.ts +6 -0
  161. package/dist/components/ui/sidebar/context.d.ts +19 -0
  162. package/dist/components/ui/sidebar/index.d.ts +26 -0
  163. package/dist/components/ui/sidebar/types.d.ts +11 -0
  164. package/dist/components/ui/sidebar/variants.d.ts +6 -0
  165. package/dist/components/ui/skeleton/Skeleton.vue.d.ts +18 -0
  166. package/dist/components/ui/skeleton/index.d.ts +2 -0
  167. package/dist/components/ui/sonner/Sonner.vue.d.ts +5 -0
  168. package/dist/components/ui/sonner/index.d.ts +2 -0
  169. package/dist/components/ui/spinner/Spinner.vue.d.ts +11 -0
  170. package/dist/components/ui/spinner/index.d.ts +1 -0
  171. package/dist/components/ui/stepper/Stepper.vue.d.ts +38 -0
  172. package/dist/components/ui/stepper/StepperDescription.vue.d.ts +22 -0
  173. package/dist/components/ui/stepper/StepperIndicator.vue.d.ts +30 -0
  174. package/dist/components/ui/stepper/StepperItem.vue.d.ts +24 -0
  175. package/dist/components/ui/stepper/StepperSeparator.vue.d.ts +7 -0
  176. package/dist/components/ui/stepper/StepperTitle.vue.d.ts +22 -0
  177. package/dist/components/ui/stepper/StepperTrigger.vue.d.ts +22 -0
  178. package/dist/components/ui/stepper/index.d.ts +7 -0
  179. package/dist/components/ui/switch/Switch.vue.d.ts +12 -0
  180. package/dist/components/ui/switch/index.d.ts +1 -0
  181. package/dist/components/ui/table/Table.vue.d.ts +22 -0
  182. package/dist/components/ui/table/TableBody.vue.d.ts +21 -0
  183. package/dist/components/ui/table/TableCaption.vue.d.ts +21 -0
  184. package/dist/components/ui/table/TableCell.vue.d.ts +22 -0
  185. package/dist/components/ui/table/TableEmpty.vue.d.ts +24 -0
  186. package/dist/components/ui/table/TableFooter.vue.d.ts +21 -0
  187. package/dist/components/ui/table/TableHead.vue.d.ts +21 -0
  188. package/dist/components/ui/table/TableHeader.vue.d.ts +21 -0
  189. package/dist/components/ui/table/TableRow.vue.d.ts +21 -0
  190. package/dist/components/ui/table/index.d.ts +9 -0
  191. package/dist/components/ui/tabs/Tabs.vue.d.ts +28 -0
  192. package/dist/components/ui/tabs/TabsContent.vue.d.ts +22 -0
  193. package/dist/components/ui/tabs/TabsList.vue.d.ts +22 -0
  194. package/dist/components/ui/tabs/TabsTrigger.vue.d.ts +22 -0
  195. package/dist/components/ui/tabs/index.d.ts +4 -0
  196. package/dist/components/ui/tag/Tag.vue.d.ts +35 -0
  197. package/dist/components/ui/tag/index.d.ts +2 -0
  198. package/dist/components/ui/tag/variants.d.ts +6 -0
  199. package/dist/components/ui/textarea/Textarea.vue.d.ts +14 -0
  200. package/dist/components/ui/textarea/TextareaControl.vue.d.ts +14 -0
  201. package/dist/components/ui/textarea/TextareaFieldGroup.vue.d.ts +21 -0
  202. package/dist/components/ui/textarea/index.d.ts +4 -0
  203. package/dist/components/ui/textarea/types.d.ts +32 -0
  204. package/dist/components/ui/tool/Tool.vue.d.ts +61 -0
  205. package/dist/components/ui/tool/index.d.ts +2 -0
  206. package/dist/components/ui/tooltip/Tooltip.vue.d.ts +24 -0
  207. package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +32 -0
  208. package/dist/components/ui/tooltip/TooltipProvider.vue.d.ts +20 -0
  209. package/dist/components/ui/tooltip/TooltipTrigger.vue.d.ts +18 -0
  210. package/dist/components/ui/tooltip/index.d.ts +4 -0
  211. package/dist/docs/component-docs.d.ts +18 -0
  212. package/dist/docs/markdown.d.ts +27 -0
  213. package/dist/index.d.ts +45 -0
  214. package/dist/lib/code-highlight.d.ts +11 -0
  215. package/dist/lib/utils.d.ts +2 -0
  216. package/dist/styles.css +3 -0
  217. package/package.json +76 -0
  218. package/public/r/accordion.json +52 -0
  219. package/public/r/alert.json +51 -0
  220. package/public/r/button-group.json +31 -0
  221. package/public/r/button.json +39 -0
  222. package/public/r/card.json +61 -0
  223. package/public/r/chart.json +31 -0
  224. package/public/r/chat.json +186 -0
  225. package/public/r/checkbox.json +34 -0
  226. package/public/r/commit.json +32 -0
  227. package/public/r/contribution-graph.json +63 -0
  228. package/public/r/data-table.json +197 -0
  229. package/public/r/date-picker.json +33 -0
  230. package/public/r/dialog.json +88 -0
  231. package/public/r/diff.json +71 -0
  232. package/public/r/dropdown-menu.json +112 -0
  233. package/public/r/gauge.json +31 -0
  234. package/public/r/git-graph.json +32 -0
  235. package/public/r/incident-timeline.json +64 -0
  236. package/public/r/input.json +49 -0
  237. package/public/r/kpi-card.json +32 -0
  238. package/public/r/kpi-line-card.json +32 -0
  239. package/public/r/model-selector.json +148 -0
  240. package/public/r/network-graph.json +33 -0
  241. package/public/r/pagination.json +95 -0
  242. package/public/r/profile.json +37 -0
  243. package/public/r/progress.json +31 -0
  244. package/public/r/prompt-input.json +293 -0
  245. package/public/r/radio-group.json +45 -0
  246. package/public/r/reasoning.json +38 -0
  247. package/public/r/registry.json +2512 -0
  248. package/public/r/select.json +100 -0
  249. package/public/r/separator.json +37 -0
  250. package/public/r/shimmer.json +31 -0
  251. package/public/r/sidebar.json +221 -0
  252. package/public/r/skeleton.json +31 -0
  253. package/public/r/sonner.json +33 -0
  254. package/public/r/spinner.json +31 -0
  255. package/public/r/stepper.json +70 -0
  256. package/public/r/switch.json +33 -0
  257. package/public/r/table.json +79 -0
  258. package/public/r/tabs.json +51 -0
  259. package/public/r/tag.json +39 -0
  260. package/public/r/textarea.json +49 -0
  261. package/public/r/tool.json +32 -0
  262. package/public/r/tooltip.json +51 -0
  263. package/registry.json +2512 -0
  264. package/src/components/docs/MarkdownContent.vue +106 -0
  265. package/src/components/ui/accordion/Accordion.vue +24 -0
  266. package/src/components/ui/accordion/AccordionContent.vue +62 -0
  267. package/src/components/ui/accordion/AccordionItem.vue +23 -0
  268. package/src/components/ui/accordion/AccordionTrigger.vue +38 -0
  269. package/src/components/ui/accordion/index.ts +4 -0
  270. package/src/components/ui/alert/Alert.vue +40 -0
  271. package/src/components/ui/alert/AlertDescription.vue +24 -0
  272. package/src/components/ui/alert/AlertTitle.vue +24 -0
  273. package/src/components/ui/alert/index.ts +4 -0
  274. package/src/components/ui/alert/variants.ts +19 -0
  275. package/src/components/ui/button/Button.vue +27 -0
  276. package/src/components/ui/button/index.ts +2 -0
  277. package/src/components/ui/button/variants.ts +32 -0
  278. package/src/components/ui/button-group/ButtonGroup.vue +31 -0
  279. package/src/components/ui/button-group/index.ts +2 -0
  280. package/src/components/ui/card/Card.vue +17 -0
  281. package/src/components/ui/card/CardContent.vue +14 -0
  282. package/src/components/ui/card/CardDescription.vue +14 -0
  283. package/src/components/ui/card/CardFooter.vue +14 -0
  284. package/src/components/ui/card/CardHeader.vue +17 -0
  285. package/src/components/ui/card/CardTitle.vue +14 -0
  286. package/src/components/ui/card/index.ts +6 -0
  287. package/src/components/ui/chart/Chart.vue +1042 -0
  288. package/src/components/ui/chart/index.ts +13 -0
  289. package/src/components/ui/chat/Chat.vue +1297 -0
  290. package/src/components/ui/chat/ChatAttachments.vue +278 -0
  291. package/src/components/ui/chat/ChatCodeBlock.vue +283 -0
  292. package/src/components/ui/chat/code-block.ts +30 -0
  293. package/src/components/ui/chat/index.ts +24 -0
  294. package/src/components/ui/chat/types.ts +23 -0
  295. package/src/components/ui/checkbox/Checkbox.vue +38 -0
  296. package/src/components/ui/checkbox/index.ts +1 -0
  297. package/src/components/ui/commit/Commit.vue +423 -0
  298. package/src/components/ui/commit/index.ts +9 -0
  299. package/src/components/ui/contribution-graph/ContributionGraph.vue +719 -0
  300. package/src/components/ui/contribution-graph/index.ts +9 -0
  301. package/src/components/ui/data-table/DataTable.vue +534 -0
  302. package/src/components/ui/data-table/index.ts +9 -0
  303. package/src/components/ui/date-picker/DatePicker.vue +649 -0
  304. package/src/components/ui/date-picker/index.ts +7 -0
  305. package/src/components/ui/dialog/Dialog.vue +19 -0
  306. package/src/components/ui/dialog/DialogClose.vue +17 -0
  307. package/src/components/ui/dialog/DialogContent.vue +60 -0
  308. package/src/components/ui/dialog/DialogDescription.vue +23 -0
  309. package/src/components/ui/dialog/DialogFooter.vue +17 -0
  310. package/src/components/ui/dialog/DialogHeader.vue +17 -0
  311. package/src/components/ui/dialog/DialogOverlay.vue +23 -0
  312. package/src/components/ui/dialog/DialogScrollContent.vue +69 -0
  313. package/src/components/ui/dialog/DialogTitle.vue +23 -0
  314. package/src/components/ui/dialog/DialogTrigger.vue +17 -0
  315. package/src/components/ui/dialog/index.ts +10 -0
  316. package/src/components/ui/diff/DiffTool.vue +513 -0
  317. package/src/components/ui/diff/diff-parser.ts +423 -0
  318. package/src/components/ui/diff/diff-tool.ts +39 -0
  319. package/src/components/ui/diff/index.ts +5 -0
  320. package/src/components/ui/dropdown-menu/DropdownMenu.vue +19 -0
  321. package/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -0
  322. package/src/components/ui/dropdown-menu/DropdownMenuContent.vue +39 -0
  323. package/src/components/ui/dropdown-menu/DropdownMenuGroup.vue +15 -0
  324. package/src/components/ui/dropdown-menu/DropdownMenuItem.vue +31 -0
  325. package/src/components/ui/dropdown-menu/DropdownMenuLabel.vue +23 -0
  326. package/src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -0
  327. package/src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -0
  328. package/src/components/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -0
  329. package/src/components/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -0
  330. package/src/components/ui/dropdown-menu/DropdownMenuSub.vue +18 -0
  331. package/src/components/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -0
  332. package/src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -0
  333. package/src/components/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -0
  334. package/src/components/ui/dropdown-menu/index.ts +16 -0
  335. package/src/components/ui/gauge/Gauge.vue +725 -0
  336. package/src/components/ui/gauge/index.ts +9 -0
  337. package/src/components/ui/git-graph/GitGraph.vue +715 -0
  338. package/src/components/ui/git-graph/index.ts +9 -0
  339. package/src/components/ui/incident-timeline/IncidentTimeline.vue +360 -0
  340. package/src/components/ui/incident-timeline/index.ts +7 -0
  341. package/src/components/ui/input/Input.vue +159 -0
  342. package/src/components/ui/input/InputControl.vue +135 -0
  343. package/src/components/ui/input/InputFieldGroup.vue +14 -0
  344. package/src/components/ui/input/index.ts +9 -0
  345. package/src/components/ui/input/types.ts +34 -0
  346. package/src/components/ui/kpi-card/KpiCard.vue +268 -0
  347. package/src/components/ui/kpi-card/index.ts +9 -0
  348. package/src/components/ui/kpi-line-card/KpiLineCard.vue +622 -0
  349. package/src/components/ui/kpi-line-card/index.ts +11 -0
  350. package/src/components/ui/model-selector/ModelSelector.vue +328 -0
  351. package/src/components/ui/model-selector/index.ts +6 -0
  352. package/src/components/ui/model-selector/types.ts +15 -0
  353. package/src/components/ui/network-graph/NetworkGraph.vue +902 -0
  354. package/src/components/ui/network-graph/index.ts +7 -0
  355. package/src/components/ui/pagination/Pagination.vue +26 -0
  356. package/src/components/ui/pagination/PaginationContent.vue +24 -0
  357. package/src/components/ui/pagination/PaginationEllipsis.vue +27 -0
  358. package/src/components/ui/pagination/PaginationFirst.vue +33 -0
  359. package/src/components/ui/pagination/PaginationItem.vue +39 -0
  360. package/src/components/ui/pagination/PaginationLast.vue +33 -0
  361. package/src/components/ui/pagination/PaginationNext.vue +33 -0
  362. package/src/components/ui/pagination/PaginationPrevious.vue +33 -0
  363. package/src/components/ui/pagination/index.ts +8 -0
  364. package/src/components/ui/profile/Profile.vue +226 -0
  365. package/src/components/ui/profile/ProfileGroup.vue +96 -0
  366. package/src/components/ui/profile/index.ts +8 -0
  367. package/src/components/ui/progress/Progress.vue +271 -0
  368. package/src/components/ui/progress/index.ts +9 -0
  369. package/src/components/ui/prompt-input/PromptInput.vue +1094 -0
  370. package/src/components/ui/prompt-input/index.ts +14 -0
  371. package/src/components/ui/prompt-input/types.ts +78 -0
  372. package/src/components/ui/radio-group/RadioGroup.vue +36 -0
  373. package/src/components/ui/radio-group/RadioGroupItem.vue +45 -0
  374. package/src/components/ui/radio-group/RadioGroupOption.vue +80 -0
  375. package/src/components/ui/radio-group/index.ts +3 -0
  376. package/src/components/ui/reasoning/Reasoning.vue +278 -0
  377. package/src/components/ui/reasoning/index.ts +8 -0
  378. package/src/components/ui/reasoning/types.ts +29 -0
  379. package/src/components/ui/select/Select.vue +19 -0
  380. package/src/components/ui/select/SelectContent.vue +166 -0
  381. package/src/components/ui/select/SelectGroup.vue +23 -0
  382. package/src/components/ui/select/SelectItem.vue +97 -0
  383. package/src/components/ui/select/SelectItemText.vue +15 -0
  384. package/src/components/ui/select/SelectLabel.vue +17 -0
  385. package/src/components/ui/select/SelectScrollDownButton.vue +26 -0
  386. package/src/components/ui/select/SelectScrollUpButton.vue +26 -0
  387. package/src/components/ui/select/SelectSeparator.vue +19 -0
  388. package/src/components/ui/select/SelectTrigger.vue +33 -0
  389. package/src/components/ui/select/SelectValue.vue +15 -0
  390. package/src/components/ui/select/index.ts +11 -0
  391. package/src/components/ui/select/search.ts +26 -0
  392. package/src/components/ui/separator/Separator.vue +30 -0
  393. package/src/components/ui/separator/index.ts +5 -0
  394. package/src/components/ui/separator/types.ts +9 -0
  395. package/src/components/ui/shimmer/Shimmer.vue +110 -0
  396. package/src/components/ui/shimmer/index.ts +5 -0
  397. package/src/components/ui/sidebar/Sidebar.vue +142 -0
  398. package/src/components/ui/sidebar/SidebarContent.vue +18 -0
  399. package/src/components/ui/sidebar/SidebarFooter.vue +18 -0
  400. package/src/components/ui/sidebar/SidebarGroup.vue +18 -0
  401. package/src/components/ui/sidebar/SidebarGroupAction.vue +31 -0
  402. package/src/components/ui/sidebar/SidebarGroupContent.vue +18 -0
  403. package/src/components/ui/sidebar/SidebarGroupLabel.vue +30 -0
  404. package/src/components/ui/sidebar/SidebarHeader.vue +18 -0
  405. package/src/components/ui/sidebar/SidebarInput.vue +26 -0
  406. package/src/components/ui/sidebar/SidebarInset.vue +23 -0
  407. package/src/components/ui/sidebar/SidebarMenu.vue +18 -0
  408. package/src/components/ui/sidebar/SidebarMenuAction.vue +34 -0
  409. package/src/components/ui/sidebar/SidebarMenuBadge.vue +25 -0
  410. package/src/components/ui/sidebar/SidebarMenuButton.vue +37 -0
  411. package/src/components/ui/sidebar/SidebarMenuButtonChild.vue +38 -0
  412. package/src/components/ui/sidebar/SidebarMenuItem.vue +18 -0
  413. package/src/components/ui/sidebar/SidebarMenuSub.vue +18 -0
  414. package/src/components/ui/sidebar/SidebarMenuSubButton.vue +36 -0
  415. package/src/components/ui/sidebar/SidebarMenuSubItem.vue +18 -0
  416. package/src/components/ui/sidebar/SidebarProvider.vue +119 -0
  417. package/src/components/ui/sidebar/SidebarRail.vue +35 -0
  418. package/src/components/ui/sidebar/SidebarSeparator.vue +18 -0
  419. package/src/components/ui/sidebar/SidebarTrigger.vue +28 -0
  420. package/src/components/ui/sidebar/context.ts +39 -0
  421. package/src/components/ui/sidebar/index.ts +43 -0
  422. package/src/components/ui/sidebar/types.ts +13 -0
  423. package/src/components/ui/sidebar/variants.ts +25 -0
  424. package/src/components/ui/skeleton/Skeleton.vue +53 -0
  425. package/src/components/ui/skeleton/index.ts +5 -0
  426. package/src/components/ui/sonner/Sonner.vue +69 -0
  427. package/src/components/ui/sonner/index.ts +12 -0
  428. package/src/components/ui/spinner/Spinner.vue +33 -0
  429. package/src/components/ui/spinner/index.ts +1 -0
  430. package/src/components/ui/stepper/Stepper.vue +29 -0
  431. package/src/components/ui/stepper/StepperDescription.vue +30 -0
  432. package/src/components/ui/stepper/StepperIndicator.vue +50 -0
  433. package/src/components/ui/stepper/StepperItem.vue +28 -0
  434. package/src/components/ui/stepper/StepperSeparator.vue +25 -0
  435. package/src/components/ui/stepper/StepperTitle.vue +27 -0
  436. package/src/components/ui/stepper/StepperTrigger.vue +27 -0
  437. package/src/components/ui/stepper/index.ts +7 -0
  438. package/src/components/ui/switch/Switch.vue +41 -0
  439. package/src/components/ui/switch/index.ts +1 -0
  440. package/src/components/ui/table/Table.vue +23 -0
  441. package/src/components/ui/table/TableBody.vue +17 -0
  442. package/src/components/ui/table/TableCaption.vue +17 -0
  443. package/src/components/ui/table/TableCell.vue +24 -0
  444. package/src/components/ui/table/TableEmpty.vue +31 -0
  445. package/src/components/ui/table/TableFooter.vue +17 -0
  446. package/src/components/ui/table/TableHead.vue +22 -0
  447. package/src/components/ui/table/TableHeader.vue +17 -0
  448. package/src/components/ui/table/TableRow.vue +22 -0
  449. package/src/components/ui/table/index.ts +9 -0
  450. package/src/components/ui/tabs/Tabs.vue +24 -0
  451. package/src/components/ui/tabs/TabsContent.vue +22 -0
  452. package/src/components/ui/tabs/TabsList.vue +27 -0
  453. package/src/components/ui/tabs/TabsTrigger.vue +27 -0
  454. package/src/components/ui/tabs/index.ts +4 -0
  455. package/src/components/ui/tag/Tag.vue +55 -0
  456. package/src/components/ui/tag/index.ts +2 -0
  457. package/src/components/ui/tag/variants.ts +29 -0
  458. package/src/components/ui/textarea/Textarea.vue +159 -0
  459. package/src/components/ui/textarea/TextareaControl.vue +120 -0
  460. package/src/components/ui/textarea/TextareaFieldGroup.vue +14 -0
  461. package/src/components/ui/textarea/index.ts +10 -0
  462. package/src/components/ui/textarea/types.ts +35 -0
  463. package/src/components/ui/tool/Tool.vue +304 -0
  464. package/src/components/ui/tool/index.ts +7 -0
  465. package/src/components/ui/tooltip/Tooltip.vue +19 -0
  466. package/src/components/ui/tooltip/TooltipContent.vue +44 -0
  467. package/src/components/ui/tooltip/TooltipProvider.vue +14 -0
  468. package/src/components/ui/tooltip/TooltipTrigger.vue +15 -0
  469. package/src/components/ui/tooltip/index.ts +4 -0
  470. package/src/lib/code-highlight.ts +220 -0
  471. package/src/lib/utils.ts +6 -0
  472. package/src/styles.css +684 -0
@@ -0,0 +1,2512 @@
1
+ {
2
+ "$schema": "https://shadcn-vue.com/schema/registry.json",
3
+ "name": "codecenter-ui",
4
+ "homepage": "https://github.com/codecenter-ui/codecenter-ui",
5
+ "items": [
6
+ {
7
+ "name": "accordion",
8
+ "type": "registry:ui",
9
+ "title": "Accordion",
10
+ "description": "A vertically stacked set of interactive headings that reveal collapsible content sections.",
11
+ "dependencies": [
12
+ "@lucide/vue",
13
+ "@vueuse/core",
14
+ "clsx",
15
+ "reka-ui",
16
+ "tailwind-merge"
17
+ ],
18
+ "files": [
19
+ {
20
+ "path": "src/components/ui/accordion/Accordion.vue",
21
+ "type": "registry:ui",
22
+ "target": "components/ui/accordion/Accordion.vue"
23
+ },
24
+ {
25
+ "path": "src/components/ui/accordion/AccordionItem.vue",
26
+ "type": "registry:ui",
27
+ "target": "components/ui/accordion/AccordionItem.vue"
28
+ },
29
+ {
30
+ "path": "src/components/ui/accordion/AccordionTrigger.vue",
31
+ "type": "registry:ui",
32
+ "target": "components/ui/accordion/AccordionTrigger.vue"
33
+ },
34
+ {
35
+ "path": "src/components/ui/accordion/AccordionContent.vue",
36
+ "type": "registry:ui",
37
+ "target": "components/ui/accordion/AccordionContent.vue"
38
+ },
39
+ {
40
+ "path": "src/components/ui/accordion/index.ts",
41
+ "type": "registry:ui",
42
+ "target": "components/ui/accordion/index.ts"
43
+ },
44
+ {
45
+ "path": "src/lib/utils.ts",
46
+ "type": "registry:lib",
47
+ "target": "lib/utils.ts"
48
+ }
49
+ ]
50
+ },
51
+ {
52
+ "name": "alert",
53
+ "type": "registry:ui",
54
+ "title": "Alert",
55
+ "description": "An inline status message with title, description, icon, and variants.",
56
+ "dependencies": [
57
+ "class-variance-authority",
58
+ "clsx",
59
+ "reka-ui",
60
+ "tailwind-merge"
61
+ ],
62
+ "files": [
63
+ {
64
+ "path": "src/components/ui/alert/Alert.vue",
65
+ "type": "registry:ui",
66
+ "target": "components/ui/alert/Alert.vue"
67
+ },
68
+ {
69
+ "path": "src/components/ui/alert/AlertTitle.vue",
70
+ "type": "registry:ui",
71
+ "target": "components/ui/alert/AlertTitle.vue"
72
+ },
73
+ {
74
+ "path": "src/components/ui/alert/AlertDescription.vue",
75
+ "type": "registry:ui",
76
+ "target": "components/ui/alert/AlertDescription.vue"
77
+ },
78
+ {
79
+ "path": "src/components/ui/alert/variants.ts",
80
+ "type": "registry:ui",
81
+ "target": "components/ui/alert/variants.ts"
82
+ },
83
+ {
84
+ "path": "src/components/ui/alert/index.ts",
85
+ "type": "registry:ui",
86
+ "target": "components/ui/alert/index.ts"
87
+ },
88
+ {
89
+ "path": "src/lib/utils.ts",
90
+ "type": "registry:lib",
91
+ "target": "lib/utils.ts"
92
+ }
93
+ ]
94
+ },
95
+ {
96
+ "name": "button",
97
+ "type": "registry:ui",
98
+ "title": "Button",
99
+ "description": "A button primitive with variants and sizes.",
100
+ "dependencies": [
101
+ "class-variance-authority",
102
+ "clsx",
103
+ "reka-ui",
104
+ "tailwind-merge"
105
+ ],
106
+ "files": [
107
+ {
108
+ "path": "src/components/ui/button/Button.vue",
109
+ "type": "registry:ui",
110
+ "target": "components/ui/button/Button.vue"
111
+ },
112
+ {
113
+ "path": "src/components/ui/button/variants.ts",
114
+ "type": "registry:ui",
115
+ "target": "components/ui/button/variants.ts"
116
+ },
117
+ {
118
+ "path": "src/components/ui/button/index.ts",
119
+ "type": "registry:ui",
120
+ "target": "components/ui/button/index.ts"
121
+ },
122
+ {
123
+ "path": "src/lib/utils.ts",
124
+ "type": "registry:lib",
125
+ "target": "lib/utils.ts"
126
+ }
127
+ ]
128
+ },
129
+ {
130
+ "name": "button-group",
131
+ "type": "registry:ui",
132
+ "title": "Button Group",
133
+ "description": "A connected control group for related buttons.",
134
+ "dependencies": [
135
+ "clsx",
136
+ "tailwind-merge"
137
+ ],
138
+ "files": [
139
+ {
140
+ "path": "src/components/ui/button-group/ButtonGroup.vue",
141
+ "type": "registry:ui",
142
+ "target": "components/ui/button-group/ButtonGroup.vue"
143
+ },
144
+ {
145
+ "path": "src/components/ui/button-group/index.ts",
146
+ "type": "registry:ui",
147
+ "target": "components/ui/button-group/index.ts"
148
+ },
149
+ {
150
+ "path": "src/lib/utils.ts",
151
+ "type": "registry:lib",
152
+ "target": "lib/utils.ts"
153
+ }
154
+ ]
155
+ },
156
+ {
157
+ "name": "card",
158
+ "type": "registry:ui",
159
+ "title": "Card",
160
+ "description": "Composable card sections for structured UI surfaces.",
161
+ "dependencies": [
162
+ "clsx",
163
+ "tailwind-merge"
164
+ ],
165
+ "files": [
166
+ {
167
+ "path": "src/components/ui/card/Card.vue",
168
+ "type": "registry:ui",
169
+ "target": "components/ui/card/Card.vue"
170
+ },
171
+ {
172
+ "path": "src/components/ui/card/CardHeader.vue",
173
+ "type": "registry:ui",
174
+ "target": "components/ui/card/CardHeader.vue"
175
+ },
176
+ {
177
+ "path": "src/components/ui/card/CardTitle.vue",
178
+ "type": "registry:ui",
179
+ "target": "components/ui/card/CardTitle.vue"
180
+ },
181
+ {
182
+ "path": "src/components/ui/card/CardDescription.vue",
183
+ "type": "registry:ui",
184
+ "target": "components/ui/card/CardDescription.vue"
185
+ },
186
+ {
187
+ "path": "src/components/ui/card/CardContent.vue",
188
+ "type": "registry:ui",
189
+ "target": "components/ui/card/CardContent.vue"
190
+ },
191
+ {
192
+ "path": "src/components/ui/card/CardFooter.vue",
193
+ "type": "registry:ui",
194
+ "target": "components/ui/card/CardFooter.vue"
195
+ },
196
+ {
197
+ "path": "src/components/ui/card/index.ts",
198
+ "type": "registry:ui",
199
+ "target": "components/ui/card/index.ts"
200
+ },
201
+ {
202
+ "path": "src/lib/utils.ts",
203
+ "type": "registry:lib",
204
+ "target": "lib/utils.ts"
205
+ }
206
+ ]
207
+ },
208
+ {
209
+ "name": "kpi-card",
210
+ "type": "registry:ui",
211
+ "title": "KPI Card",
212
+ "description": "A compact metric card with title, value, description, trend, loading state, and icon slots.",
213
+ "dependencies": [
214
+ "@lucide/vue",
215
+ "clsx",
216
+ "tailwind-merge"
217
+ ],
218
+ "files": [
219
+ {
220
+ "path": "src/components/ui/kpi-card/KpiCard.vue",
221
+ "type": "registry:ui",
222
+ "target": "components/ui/kpi-card/KpiCard.vue"
223
+ },
224
+ {
225
+ "path": "src/components/ui/kpi-card/index.ts",
226
+ "type": "registry:ui",
227
+ "target": "components/ui/kpi-card/index.ts"
228
+ },
229
+ {
230
+ "path": "src/lib/utils.ts",
231
+ "type": "registry:lib",
232
+ "target": "lib/utils.ts"
233
+ }
234
+ ]
235
+ },
236
+ {
237
+ "name": "kpi-line-card",
238
+ "type": "registry:ui",
239
+ "title": "KPI Line Card",
240
+ "description": "A compact metric card with a configurable sparkline line chart position, trend state, loading state, and icon slots.",
241
+ "dependencies": [
242
+ "@lucide/vue",
243
+ "clsx",
244
+ "tailwind-merge"
245
+ ],
246
+ "files": [
247
+ {
248
+ "path": "src/components/ui/kpi-line-card/KpiLineCard.vue",
249
+ "type": "registry:ui",
250
+ "target": "components/ui/kpi-line-card/KpiLineCard.vue"
251
+ },
252
+ {
253
+ "path": "src/components/ui/kpi-line-card/index.ts",
254
+ "type": "registry:ui",
255
+ "target": "components/ui/kpi-line-card/index.ts"
256
+ },
257
+ {
258
+ "path": "src/lib/utils.ts",
259
+ "type": "registry:lib",
260
+ "target": "lib/utils.ts"
261
+ }
262
+ ]
263
+ },
264
+ {
265
+ "name": "chat",
266
+ "type": "registry:ui",
267
+ "title": "Chat",
268
+ "description": "A left and right chat message display component with attachments, streaming status, custom rendering slots, and a unified action toolbar.",
269
+ "dependencies": [
270
+ "@lucide/vue",
271
+ "@vueuse/core",
272
+ "class-variance-authority",
273
+ "clsx",
274
+ "highlight.js",
275
+ "reka-ui",
276
+ "tailwind-merge"
277
+ ],
278
+ "files": [
279
+ {
280
+ "path": "src/components/ui/button/Button.vue",
281
+ "type": "registry:ui",
282
+ "target": "components/ui/button/Button.vue"
283
+ },
284
+ {
285
+ "path": "src/components/ui/button/variants.ts",
286
+ "type": "registry:ui",
287
+ "target": "components/ui/button/variants.ts"
288
+ },
289
+ {
290
+ "path": "src/components/ui/button/index.ts",
291
+ "type": "registry:ui",
292
+ "target": "components/ui/button/index.ts"
293
+ },
294
+ {
295
+ "path": "src/components/ui/dropdown-menu/DropdownMenu.vue",
296
+ "type": "registry:ui",
297
+ "target": "components/ui/dropdown-menu/DropdownMenu.vue"
298
+ },
299
+ {
300
+ "path": "src/components/ui/dropdown-menu/DropdownMenuTrigger.vue",
301
+ "type": "registry:ui",
302
+ "target": "components/ui/dropdown-menu/DropdownMenuTrigger.vue"
303
+ },
304
+ {
305
+ "path": "src/components/ui/dropdown-menu/DropdownMenuContent.vue",
306
+ "type": "registry:ui",
307
+ "target": "components/ui/dropdown-menu/DropdownMenuContent.vue"
308
+ },
309
+ {
310
+ "path": "src/components/ui/dropdown-menu/DropdownMenuGroup.vue",
311
+ "type": "registry:ui",
312
+ "target": "components/ui/dropdown-menu/DropdownMenuGroup.vue"
313
+ },
314
+ {
315
+ "path": "src/components/ui/dropdown-menu/DropdownMenuItem.vue",
316
+ "type": "registry:ui",
317
+ "target": "components/ui/dropdown-menu/DropdownMenuItem.vue"
318
+ },
319
+ {
320
+ "path": "src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue",
321
+ "type": "registry:ui",
322
+ "target": "components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue"
323
+ },
324
+ {
325
+ "path": "src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue",
326
+ "type": "registry:ui",
327
+ "target": "components/ui/dropdown-menu/DropdownMenuRadioGroup.vue"
328
+ },
329
+ {
330
+ "path": "src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue",
331
+ "type": "registry:ui",
332
+ "target": "components/ui/dropdown-menu/DropdownMenuRadioItem.vue"
333
+ },
334
+ {
335
+ "path": "src/components/ui/dropdown-menu/DropdownMenuLabel.vue",
336
+ "type": "registry:ui",
337
+ "target": "components/ui/dropdown-menu/DropdownMenuLabel.vue"
338
+ },
339
+ {
340
+ "path": "src/components/ui/dropdown-menu/DropdownMenuSeparator.vue",
341
+ "type": "registry:ui",
342
+ "target": "components/ui/dropdown-menu/DropdownMenuSeparator.vue"
343
+ },
344
+ {
345
+ "path": "src/components/ui/dropdown-menu/DropdownMenuShortcut.vue",
346
+ "type": "registry:ui",
347
+ "target": "components/ui/dropdown-menu/DropdownMenuShortcut.vue"
348
+ },
349
+ {
350
+ "path": "src/components/ui/dropdown-menu/DropdownMenuSub.vue",
351
+ "type": "registry:ui",
352
+ "target": "components/ui/dropdown-menu/DropdownMenuSub.vue"
353
+ },
354
+ {
355
+ "path": "src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue",
356
+ "type": "registry:ui",
357
+ "target": "components/ui/dropdown-menu/DropdownMenuSubTrigger.vue"
358
+ },
359
+ {
360
+ "path": "src/components/ui/dropdown-menu/DropdownMenuSubContent.vue",
361
+ "type": "registry:ui",
362
+ "target": "components/ui/dropdown-menu/DropdownMenuSubContent.vue"
363
+ },
364
+ {
365
+ "path": "src/components/ui/dropdown-menu/index.ts",
366
+ "type": "registry:ui",
367
+ "target": "components/ui/dropdown-menu/index.ts"
368
+ },
369
+ {
370
+ "path": "src/components/ui/chat/ChatAttachments.vue",
371
+ "type": "registry:ui",
372
+ "target": "components/ui/chat/ChatAttachments.vue"
373
+ },
374
+ {
375
+ "path": "src/components/ui/chat/ChatCodeBlock.vue",
376
+ "type": "registry:ui",
377
+ "target": "components/ui/chat/ChatCodeBlock.vue"
378
+ },
379
+ {
380
+ "path": "src/components/ui/chat/code-block.ts",
381
+ "type": "registry:ui",
382
+ "target": "components/ui/chat/code-block.ts"
383
+ },
384
+ {
385
+ "path": "src/lib/code-highlight.ts",
386
+ "type": "registry:lib",
387
+ "target": "lib/code-highlight.ts"
388
+ },
389
+ {
390
+ "path": "src/components/ui/chat/Chat.vue",
391
+ "type": "registry:ui",
392
+ "target": "components/ui/chat/Chat.vue"
393
+ },
394
+ {
395
+ "path": "src/components/ui/chat/index.ts",
396
+ "type": "registry:ui",
397
+ "target": "components/ui/chat/index.ts"
398
+ },
399
+ {
400
+ "path": "src/components/ui/chat/types.ts",
401
+ "type": "registry:ui",
402
+ "target": "components/ui/chat/types.ts"
403
+ },
404
+ {
405
+ "path": "src/components/ui/spinner/Spinner.vue",
406
+ "type": "registry:ui",
407
+ "target": "components/ui/spinner/Spinner.vue"
408
+ },
409
+ {
410
+ "path": "src/components/ui/spinner/index.ts",
411
+ "type": "registry:ui",
412
+ "target": "components/ui/spinner/index.ts"
413
+ },
414
+ {
415
+ "path": "src/lib/utils.ts",
416
+ "type": "registry:lib",
417
+ "target": "lib/utils.ts"
418
+ }
419
+ ]
420
+ },
421
+ {
422
+ "name": "chart",
423
+ "type": "registry:ui",
424
+ "title": "Chart",
425
+ "description": "A responsive SVG chart for grouped bars, line series, translucent area fills, legends, axis labels, and selectable data points.",
426
+ "dependencies": [
427
+ "clsx",
428
+ "tailwind-merge"
429
+ ],
430
+ "files": [
431
+ {
432
+ "path": "src/components/ui/chart/Chart.vue",
433
+ "type": "registry:ui",
434
+ "target": "components/ui/chart/Chart.vue"
435
+ },
436
+ {
437
+ "path": "src/components/ui/chart/index.ts",
438
+ "type": "registry:ui",
439
+ "target": "components/ui/chart/index.ts"
440
+ },
441
+ {
442
+ "path": "src/lib/utils.ts",
443
+ "type": "registry:lib",
444
+ "target": "lib/utils.ts"
445
+ }
446
+ ]
447
+ },
448
+ {
449
+ "name": "gauge",
450
+ "type": "registry:ui",
451
+ "title": "Gauge",
452
+ "description": "A semi-circular gauge and linear meter chart for single KPI values with markers, labels, and formatted values.",
453
+ "dependencies": [
454
+ "clsx",
455
+ "tailwind-merge"
456
+ ],
457
+ "files": [
458
+ {
459
+ "path": "src/components/ui/gauge/Gauge.vue",
460
+ "type": "registry:ui",
461
+ "target": "components/ui/gauge/Gauge.vue"
462
+ },
463
+ {
464
+ "path": "src/components/ui/gauge/index.ts",
465
+ "type": "registry:ui",
466
+ "target": "components/ui/gauge/index.ts"
467
+ },
468
+ {
469
+ "path": "src/lib/utils.ts",
470
+ "type": "registry:lib",
471
+ "target": "lib/utils.ts"
472
+ }
473
+ ]
474
+ },
475
+ {
476
+ "name": "incident-timeline",
477
+ "type": "registry:ui",
478
+ "title": "Incident Timeline",
479
+ "description": "An uptime-style incident timeline with a service label, status icon, uptime percentage, and compact vertical status bars.",
480
+ "dependencies": [
481
+ "@lucide/vue",
482
+ "@vueuse/core",
483
+ "clsx",
484
+ "reka-ui",
485
+ "tailwind-merge"
486
+ ],
487
+ "files": [
488
+ {
489
+ "path": "src/components/ui/incident-timeline/IncidentTimeline.vue",
490
+ "type": "registry:ui",
491
+ "target": "components/ui/incident-timeline/IncidentTimeline.vue"
492
+ },
493
+ {
494
+ "path": "src/components/ui/incident-timeline/index.ts",
495
+ "type": "registry:ui",
496
+ "target": "components/ui/incident-timeline/index.ts"
497
+ },
498
+ {
499
+ "path": "src/components/ui/tooltip/Tooltip.vue",
500
+ "type": "registry:ui",
501
+ "target": "components/ui/tooltip/Tooltip.vue"
502
+ },
503
+ {
504
+ "path": "src/components/ui/tooltip/TooltipTrigger.vue",
505
+ "type": "registry:ui",
506
+ "target": "components/ui/tooltip/TooltipTrigger.vue"
507
+ },
508
+ {
509
+ "path": "src/components/ui/tooltip/TooltipContent.vue",
510
+ "type": "registry:ui",
511
+ "target": "components/ui/tooltip/TooltipContent.vue"
512
+ },
513
+ {
514
+ "path": "src/components/ui/tooltip/TooltipProvider.vue",
515
+ "type": "registry:ui",
516
+ "target": "components/ui/tooltip/TooltipProvider.vue"
517
+ },
518
+ {
519
+ "path": "src/components/ui/tooltip/index.ts",
520
+ "type": "registry:ui",
521
+ "target": "components/ui/tooltip/index.ts"
522
+ },
523
+ {
524
+ "path": "src/lib/utils.ts",
525
+ "type": "registry:lib",
526
+ "target": "lib/utils.ts"
527
+ }
528
+ ]
529
+ },
530
+ {
531
+ "name": "diff",
532
+ "type": "registry:ui",
533
+ "title": "Diff Tool",
534
+ "description": "A standalone split diff viewer with previous and next panes, line numbers, syntax highlighting, copy, and expand controls.",
535
+ "dependencies": [
536
+ "@lucide/vue",
537
+ "class-variance-authority",
538
+ "clsx",
539
+ "highlight.js",
540
+ "reka-ui",
541
+ "tailwind-merge"
542
+ ],
543
+ "files": [
544
+ {
545
+ "path": "src/components/ui/button/Button.vue",
546
+ "type": "registry:ui",
547
+ "target": "components/ui/button/Button.vue"
548
+ },
549
+ {
550
+ "path": "src/components/ui/button/variants.ts",
551
+ "type": "registry:ui",
552
+ "target": "components/ui/button/variants.ts"
553
+ },
554
+ {
555
+ "path": "src/components/ui/button/index.ts",
556
+ "type": "registry:ui",
557
+ "target": "components/ui/button/index.ts"
558
+ },
559
+ {
560
+ "path": "src/components/ui/diff/DiffTool.vue",
561
+ "type": "registry:ui",
562
+ "target": "components/ui/diff/DiffTool.vue"
563
+ },
564
+ {
565
+ "path": "src/components/ui/diff/diff-tool.ts",
566
+ "type": "registry:ui",
567
+ "target": "components/ui/diff/diff-tool.ts"
568
+ },
569
+ {
570
+ "path": "src/components/ui/diff/diff-parser.ts",
571
+ "type": "registry:ui",
572
+ "target": "components/ui/diff/diff-parser.ts"
573
+ },
574
+ {
575
+ "path": "src/components/ui/diff/index.ts",
576
+ "type": "registry:ui",
577
+ "target": "components/ui/diff/index.ts"
578
+ },
579
+ {
580
+ "path": "src/lib/code-highlight.ts",
581
+ "type": "registry:lib",
582
+ "target": "lib/code-highlight.ts"
583
+ },
584
+ {
585
+ "path": "src/lib/utils.ts",
586
+ "type": "registry:lib",
587
+ "target": "lib/utils.ts"
588
+ }
589
+ ]
590
+ },
591
+ {
592
+ "name": "checkbox",
593
+ "type": "registry:ui",
594
+ "title": "Checkbox",
595
+ "description": "A checkbox control for boolean and indeterminate selection states.",
596
+ "dependencies": [
597
+ "@lucide/vue",
598
+ "@vueuse/core",
599
+ "clsx",
600
+ "reka-ui",
601
+ "tailwind-merge"
602
+ ],
603
+ "files": [
604
+ {
605
+ "path": "src/components/ui/checkbox/Checkbox.vue",
606
+ "type": "registry:ui",
607
+ "target": "components/ui/checkbox/Checkbox.vue"
608
+ },
609
+ {
610
+ "path": "src/components/ui/checkbox/index.ts",
611
+ "type": "registry:ui",
612
+ "target": "components/ui/checkbox/index.ts"
613
+ },
614
+ {
615
+ "path": "src/lib/utils.ts",
616
+ "type": "registry:lib",
617
+ "target": "lib/utils.ts"
618
+ }
619
+ ]
620
+ },
621
+ {
622
+ "name": "commit",
623
+ "type": "registry:ui",
624
+ "title": "Commit",
625
+ "description": "A collapsible commit summary card with changed files, status letters, line stats, and copy action.",
626
+ "dependencies": [
627
+ "@lucide/vue",
628
+ "clsx",
629
+ "tailwind-merge"
630
+ ],
631
+ "files": [
632
+ {
633
+ "path": "src/components/ui/commit/Commit.vue",
634
+ "type": "registry:ui",
635
+ "target": "components/ui/commit/Commit.vue"
636
+ },
637
+ {
638
+ "path": "src/components/ui/commit/index.ts",
639
+ "type": "registry:ui",
640
+ "target": "components/ui/commit/index.ts"
641
+ },
642
+ {
643
+ "path": "src/lib/utils.ts",
644
+ "type": "registry:lib",
645
+ "target": "lib/utils.ts"
646
+ }
647
+ ]
648
+ },
649
+ {
650
+ "name": "tool",
651
+ "type": "registry:ui",
652
+ "title": "Tool",
653
+ "description": "A collapsible tool execution card with status badge and parameters panel.",
654
+ "dependencies": [
655
+ "@lucide/vue",
656
+ "clsx",
657
+ "tailwind-merge"
658
+ ],
659
+ "files": [
660
+ {
661
+ "path": "src/components/ui/tool/Tool.vue",
662
+ "type": "registry:ui",
663
+ "target": "components/ui/tool/Tool.vue"
664
+ },
665
+ {
666
+ "path": "src/components/ui/tool/index.ts",
667
+ "type": "registry:ui",
668
+ "target": "components/ui/tool/index.ts"
669
+ },
670
+ {
671
+ "path": "src/lib/utils.ts",
672
+ "type": "registry:lib",
673
+ "target": "lib/utils.ts"
674
+ }
675
+ ]
676
+ },
677
+ {
678
+ "name": "git-graph",
679
+ "type": "registry:ui",
680
+ "title": "Git Graph",
681
+ "description": "A compact commit graph timeline with lanes, merge edges, refs, metadata, and selectable rows.",
682
+ "dependencies": [
683
+ "@lucide/vue",
684
+ "clsx",
685
+ "tailwind-merge"
686
+ ],
687
+ "files": [
688
+ {
689
+ "path": "src/components/ui/git-graph/GitGraph.vue",
690
+ "type": "registry:ui",
691
+ "target": "components/ui/git-graph/GitGraph.vue"
692
+ },
693
+ {
694
+ "path": "src/components/ui/git-graph/index.ts",
695
+ "type": "registry:ui",
696
+ "target": "components/ui/git-graph/index.ts"
697
+ },
698
+ {
699
+ "path": "src/lib/utils.ts",
700
+ "type": "registry:lib",
701
+ "target": "lib/utils.ts"
702
+ }
703
+ ]
704
+ },
705
+ {
706
+ "name": "network-graph",
707
+ "type": "registry:ui",
708
+ "title": "Network Graph",
709
+ "description": "An Obsidian-style force-directed network graph with zoom, pan, node dragging, selection, and connected-node highlighting.",
710
+ "dependencies": [
711
+ "@lucide/vue",
712
+ "clsx",
713
+ "d3-force",
714
+ "tailwind-merge"
715
+ ],
716
+ "files": [
717
+ {
718
+ "path": "src/components/ui/network-graph/NetworkGraph.vue",
719
+ "type": "registry:ui",
720
+ "target": "components/ui/network-graph/NetworkGraph.vue"
721
+ },
722
+ {
723
+ "path": "src/components/ui/network-graph/index.ts",
724
+ "type": "registry:ui",
725
+ "target": "components/ui/network-graph/index.ts"
726
+ },
727
+ {
728
+ "path": "src/lib/utils.ts",
729
+ "type": "registry:lib",
730
+ "target": "lib/utils.ts"
731
+ }
732
+ ]
733
+ },
734
+ {
735
+ "name": "contribution-graph",
736
+ "type": "registry:ui",
737
+ "title": "Contribution Graph",
738
+ "description": "A calendar heatmap for contribution activity with month labels, weekday labels, tooltips, selection, and intensity legend.",
739
+ "dependencies": [
740
+ "@vueuse/core",
741
+ "clsx",
742
+ "reka-ui",
743
+ "tailwind-merge"
744
+ ],
745
+ "files": [
746
+ {
747
+ "path": "src/components/ui/contribution-graph/ContributionGraph.vue",
748
+ "type": "registry:ui",
749
+ "target": "components/ui/contribution-graph/ContributionGraph.vue"
750
+ },
751
+ {
752
+ "path": "src/components/ui/contribution-graph/index.ts",
753
+ "type": "registry:ui",
754
+ "target": "components/ui/contribution-graph/index.ts"
755
+ },
756
+ {
757
+ "path": "src/components/ui/tooltip/Tooltip.vue",
758
+ "type": "registry:ui",
759
+ "target": "components/ui/tooltip/Tooltip.vue"
760
+ },
761
+ {
762
+ "path": "src/components/ui/tooltip/TooltipTrigger.vue",
763
+ "type": "registry:ui",
764
+ "target": "components/ui/tooltip/TooltipTrigger.vue"
765
+ },
766
+ {
767
+ "path": "src/components/ui/tooltip/TooltipContent.vue",
768
+ "type": "registry:ui",
769
+ "target": "components/ui/tooltip/TooltipContent.vue"
770
+ },
771
+ {
772
+ "path": "src/components/ui/tooltip/TooltipProvider.vue",
773
+ "type": "registry:ui",
774
+ "target": "components/ui/tooltip/TooltipProvider.vue"
775
+ },
776
+ {
777
+ "path": "src/components/ui/tooltip/index.ts",
778
+ "type": "registry:ui",
779
+ "target": "components/ui/tooltip/index.ts"
780
+ },
781
+ {
782
+ "path": "src/lib/utils.ts",
783
+ "type": "registry:lib",
784
+ "target": "lib/utils.ts"
785
+ }
786
+ ]
787
+ },
788
+ {
789
+ "name": "date-picker",
790
+ "type": "registry:ui",
791
+ "title": "Date Picker",
792
+ "description": "A date picker control that can switch between single date, range, and time picker modes with props.",
793
+ "dependencies": [
794
+ "@lucide/vue",
795
+ "clsx",
796
+ "reka-ui",
797
+ "tailwind-merge"
798
+ ],
799
+ "files": [
800
+ {
801
+ "path": "src/components/ui/date-picker/DatePicker.vue",
802
+ "type": "registry:ui",
803
+ "target": "components/ui/date-picker/DatePicker.vue"
804
+ },
805
+ {
806
+ "path": "src/components/ui/date-picker/index.ts",
807
+ "type": "registry:ui",
808
+ "target": "components/ui/date-picker/index.ts"
809
+ },
810
+ {
811
+ "path": "src/lib/utils.ts",
812
+ "type": "registry:lib",
813
+ "target": "lib/utils.ts"
814
+ }
815
+ ]
816
+ },
817
+ {
818
+ "name": "data-table",
819
+ "type": "registry:ui",
820
+ "title": "Data Table",
821
+ "description": "A searchable, sortable, selectable, and paginated data table composed from table primitives.",
822
+ "dependencies": [
823
+ "@lucide/vue",
824
+ "@vueuse/core",
825
+ "class-variance-authority",
826
+ "clsx",
827
+ "reka-ui",
828
+ "tailwind-merge"
829
+ ],
830
+ "files": [
831
+ {
832
+ "path": "src/components/ui/data-table/DataTable.vue",
833
+ "type": "registry:ui",
834
+ "target": "components/ui/data-table/DataTable.vue"
835
+ },
836
+ {
837
+ "path": "src/components/ui/data-table/index.ts",
838
+ "type": "registry:ui",
839
+ "target": "components/ui/data-table/index.ts"
840
+ },
841
+ {
842
+ "path": "src/components/ui/button/Button.vue",
843
+ "type": "registry:ui",
844
+ "target": "components/ui/button/Button.vue"
845
+ },
846
+ {
847
+ "path": "src/components/ui/button/variants.ts",
848
+ "type": "registry:ui",
849
+ "target": "components/ui/button/variants.ts"
850
+ },
851
+ {
852
+ "path": "src/components/ui/button/index.ts",
853
+ "type": "registry:ui",
854
+ "target": "components/ui/button/index.ts"
855
+ },
856
+ {
857
+ "path": "src/components/ui/checkbox/Checkbox.vue",
858
+ "type": "registry:ui",
859
+ "target": "components/ui/checkbox/Checkbox.vue"
860
+ },
861
+ {
862
+ "path": "src/components/ui/checkbox/index.ts",
863
+ "type": "registry:ui",
864
+ "target": "components/ui/checkbox/index.ts"
865
+ },
866
+ {
867
+ "path": "src/components/ui/input/Input.vue",
868
+ "type": "registry:ui",
869
+ "target": "components/ui/input/Input.vue"
870
+ },
871
+ {
872
+ "path": "src/components/ui/input/InputControl.vue",
873
+ "type": "registry:ui",
874
+ "target": "components/ui/input/InputControl.vue"
875
+ },
876
+ {
877
+ "path": "src/components/ui/input/InputFieldGroup.vue",
878
+ "type": "registry:ui",
879
+ "target": "components/ui/input/InputFieldGroup.vue"
880
+ },
881
+ {
882
+ "path": "src/components/ui/input/types.ts",
883
+ "type": "registry:ui",
884
+ "target": "components/ui/input/types.ts"
885
+ },
886
+ {
887
+ "path": "src/components/ui/input/index.ts",
888
+ "type": "registry:ui",
889
+ "target": "components/ui/input/index.ts"
890
+ },
891
+ {
892
+ "path": "src/components/ui/pagination/Pagination.vue",
893
+ "type": "registry:ui",
894
+ "target": "components/ui/pagination/Pagination.vue"
895
+ },
896
+ {
897
+ "path": "src/components/ui/pagination/PaginationContent.vue",
898
+ "type": "registry:ui",
899
+ "target": "components/ui/pagination/PaginationContent.vue"
900
+ },
901
+ {
902
+ "path": "src/components/ui/pagination/PaginationEllipsis.vue",
903
+ "type": "registry:ui",
904
+ "target": "components/ui/pagination/PaginationEllipsis.vue"
905
+ },
906
+ {
907
+ "path": "src/components/ui/pagination/PaginationFirst.vue",
908
+ "type": "registry:ui",
909
+ "target": "components/ui/pagination/PaginationFirst.vue"
910
+ },
911
+ {
912
+ "path": "src/components/ui/pagination/PaginationItem.vue",
913
+ "type": "registry:ui",
914
+ "target": "components/ui/pagination/PaginationItem.vue"
915
+ },
916
+ {
917
+ "path": "src/components/ui/pagination/PaginationLast.vue",
918
+ "type": "registry:ui",
919
+ "target": "components/ui/pagination/PaginationLast.vue"
920
+ },
921
+ {
922
+ "path": "src/components/ui/pagination/PaginationNext.vue",
923
+ "type": "registry:ui",
924
+ "target": "components/ui/pagination/PaginationNext.vue"
925
+ },
926
+ {
927
+ "path": "src/components/ui/pagination/PaginationPrevious.vue",
928
+ "type": "registry:ui",
929
+ "target": "components/ui/pagination/PaginationPrevious.vue"
930
+ },
931
+ {
932
+ "path": "src/components/ui/pagination/index.ts",
933
+ "type": "registry:ui",
934
+ "target": "components/ui/pagination/index.ts"
935
+ },
936
+ {
937
+ "path": "src/components/ui/table/Table.vue",
938
+ "type": "registry:ui",
939
+ "target": "components/ui/table/Table.vue"
940
+ },
941
+ {
942
+ "path": "src/components/ui/table/TableBody.vue",
943
+ "type": "registry:ui",
944
+ "target": "components/ui/table/TableBody.vue"
945
+ },
946
+ {
947
+ "path": "src/components/ui/table/TableCell.vue",
948
+ "type": "registry:ui",
949
+ "target": "components/ui/table/TableCell.vue"
950
+ },
951
+ {
952
+ "path": "src/components/ui/table/TableEmpty.vue",
953
+ "type": "registry:ui",
954
+ "target": "components/ui/table/TableEmpty.vue"
955
+ },
956
+ {
957
+ "path": "src/components/ui/table/TableHead.vue",
958
+ "type": "registry:ui",
959
+ "target": "components/ui/table/TableHead.vue"
960
+ },
961
+ {
962
+ "path": "src/components/ui/table/TableHeader.vue",
963
+ "type": "registry:ui",
964
+ "target": "components/ui/table/TableHeader.vue"
965
+ },
966
+ {
967
+ "path": "src/components/ui/table/TableRow.vue",
968
+ "type": "registry:ui",
969
+ "target": "components/ui/table/TableRow.vue"
970
+ },
971
+ {
972
+ "path": "src/components/ui/table/index.ts",
973
+ "type": "registry:ui",
974
+ "target": "components/ui/table/index.ts"
975
+ },
976
+ {
977
+ "path": "src/lib/utils.ts",
978
+ "type": "registry:lib",
979
+ "target": "lib/utils.ts"
980
+ }
981
+ ]
982
+ },
983
+ {
984
+ "name": "dialog",
985
+ "type": "registry:ui",
986
+ "title": "Dialog",
987
+ "description": "A modal window for focused tasks with overlay, title, description, footer actions, and close controls.",
988
+ "dependencies": [
989
+ "@lucide/vue",
990
+ "@vueuse/core",
991
+ "clsx",
992
+ "reka-ui",
993
+ "tailwind-merge"
994
+ ],
995
+ "files": [
996
+ {
997
+ "path": "src/components/ui/dialog/Dialog.vue",
998
+ "type": "registry:ui",
999
+ "target": "components/ui/dialog/Dialog.vue"
1000
+ },
1001
+ {
1002
+ "path": "src/components/ui/dialog/DialogTrigger.vue",
1003
+ "type": "registry:ui",
1004
+ "target": "components/ui/dialog/DialogTrigger.vue"
1005
+ },
1006
+ {
1007
+ "path": "src/components/ui/dialog/DialogContent.vue",
1008
+ "type": "registry:ui",
1009
+ "target": "components/ui/dialog/DialogContent.vue"
1010
+ },
1011
+ {
1012
+ "path": "src/components/ui/dialog/DialogScrollContent.vue",
1013
+ "type": "registry:ui",
1014
+ "target": "components/ui/dialog/DialogScrollContent.vue"
1015
+ },
1016
+ {
1017
+ "path": "src/components/ui/dialog/DialogOverlay.vue",
1018
+ "type": "registry:ui",
1019
+ "target": "components/ui/dialog/DialogOverlay.vue"
1020
+ },
1021
+ {
1022
+ "path": "src/components/ui/dialog/DialogHeader.vue",
1023
+ "type": "registry:ui",
1024
+ "target": "components/ui/dialog/DialogHeader.vue"
1025
+ },
1026
+ {
1027
+ "path": "src/components/ui/dialog/DialogFooter.vue",
1028
+ "type": "registry:ui",
1029
+ "target": "components/ui/dialog/DialogFooter.vue"
1030
+ },
1031
+ {
1032
+ "path": "src/components/ui/dialog/DialogTitle.vue",
1033
+ "type": "registry:ui",
1034
+ "target": "components/ui/dialog/DialogTitle.vue"
1035
+ },
1036
+ {
1037
+ "path": "src/components/ui/dialog/DialogDescription.vue",
1038
+ "type": "registry:ui",
1039
+ "target": "components/ui/dialog/DialogDescription.vue"
1040
+ },
1041
+ {
1042
+ "path": "src/components/ui/dialog/DialogClose.vue",
1043
+ "type": "registry:ui",
1044
+ "target": "components/ui/dialog/DialogClose.vue"
1045
+ },
1046
+ {
1047
+ "path": "src/components/ui/dialog/index.ts",
1048
+ "type": "registry:ui",
1049
+ "target": "components/ui/dialog/index.ts"
1050
+ },
1051
+ {
1052
+ "path": "src/lib/utils.ts",
1053
+ "type": "registry:lib",
1054
+ "target": "lib/utils.ts"
1055
+ }
1056
+ ]
1057
+ },
1058
+ {
1059
+ "name": "sidebar",
1060
+ "type": "registry:ui",
1061
+ "title": "Sidebar",
1062
+ "description": "A composable application sidebar with provider-managed open state, menu groups, trigger controls, and collapsed icon mode.",
1063
+ "dependencies": [
1064
+ "@lucide/vue",
1065
+ "@vueuse/core",
1066
+ "class-variance-authority",
1067
+ "clsx",
1068
+ "reka-ui",
1069
+ "tailwind-merge"
1070
+ ],
1071
+ "files": [
1072
+ {
1073
+ "path": "src/components/ui/sidebar/Sidebar.vue",
1074
+ "type": "registry:ui",
1075
+ "target": "components/ui/sidebar/Sidebar.vue"
1076
+ },
1077
+ {
1078
+ "path": "src/components/ui/sidebar/SidebarProvider.vue",
1079
+ "type": "registry:ui",
1080
+ "target": "components/ui/sidebar/SidebarProvider.vue"
1081
+ },
1082
+ {
1083
+ "path": "src/components/ui/sidebar/SidebarInset.vue",
1084
+ "type": "registry:ui",
1085
+ "target": "components/ui/sidebar/SidebarInset.vue"
1086
+ },
1087
+ {
1088
+ "path": "src/components/ui/sidebar/SidebarTrigger.vue",
1089
+ "type": "registry:ui",
1090
+ "target": "components/ui/sidebar/SidebarTrigger.vue"
1091
+ },
1092
+ {
1093
+ "path": "src/components/ui/sidebar/SidebarRail.vue",
1094
+ "type": "registry:ui",
1095
+ "target": "components/ui/sidebar/SidebarRail.vue"
1096
+ },
1097
+ {
1098
+ "path": "src/components/ui/sidebar/SidebarHeader.vue",
1099
+ "type": "registry:ui",
1100
+ "target": "components/ui/sidebar/SidebarHeader.vue"
1101
+ },
1102
+ {
1103
+ "path": "src/components/ui/sidebar/SidebarContent.vue",
1104
+ "type": "registry:ui",
1105
+ "target": "components/ui/sidebar/SidebarContent.vue"
1106
+ },
1107
+ {
1108
+ "path": "src/components/ui/sidebar/SidebarFooter.vue",
1109
+ "type": "registry:ui",
1110
+ "target": "components/ui/sidebar/SidebarFooter.vue"
1111
+ },
1112
+ {
1113
+ "path": "src/components/ui/sidebar/SidebarGroup.vue",
1114
+ "type": "registry:ui",
1115
+ "target": "components/ui/sidebar/SidebarGroup.vue"
1116
+ },
1117
+ {
1118
+ "path": "src/components/ui/sidebar/SidebarGroupContent.vue",
1119
+ "type": "registry:ui",
1120
+ "target": "components/ui/sidebar/SidebarGroupContent.vue"
1121
+ },
1122
+ {
1123
+ "path": "src/components/ui/sidebar/SidebarGroupLabel.vue",
1124
+ "type": "registry:ui",
1125
+ "target": "components/ui/sidebar/SidebarGroupLabel.vue"
1126
+ },
1127
+ {
1128
+ "path": "src/components/ui/sidebar/SidebarGroupAction.vue",
1129
+ "type": "registry:ui",
1130
+ "target": "components/ui/sidebar/SidebarGroupAction.vue"
1131
+ },
1132
+ {
1133
+ "path": "src/components/ui/sidebar/SidebarMenu.vue",
1134
+ "type": "registry:ui",
1135
+ "target": "components/ui/sidebar/SidebarMenu.vue"
1136
+ },
1137
+ {
1138
+ "path": "src/components/ui/sidebar/SidebarMenuItem.vue",
1139
+ "type": "registry:ui",
1140
+ "target": "components/ui/sidebar/SidebarMenuItem.vue"
1141
+ },
1142
+ {
1143
+ "path": "src/components/ui/sidebar/SidebarMenuButton.vue",
1144
+ "type": "registry:ui",
1145
+ "target": "components/ui/sidebar/SidebarMenuButton.vue"
1146
+ },
1147
+ {
1148
+ "path": "src/components/ui/sidebar/SidebarMenuButtonChild.vue",
1149
+ "type": "registry:ui",
1150
+ "target": "components/ui/sidebar/SidebarMenuButtonChild.vue"
1151
+ },
1152
+ {
1153
+ "path": "src/components/ui/sidebar/SidebarMenuAction.vue",
1154
+ "type": "registry:ui",
1155
+ "target": "components/ui/sidebar/SidebarMenuAction.vue"
1156
+ },
1157
+ {
1158
+ "path": "src/components/ui/sidebar/SidebarMenuBadge.vue",
1159
+ "type": "registry:ui",
1160
+ "target": "components/ui/sidebar/SidebarMenuBadge.vue"
1161
+ },
1162
+ {
1163
+ "path": "src/components/ui/sidebar/SidebarMenuSub.vue",
1164
+ "type": "registry:ui",
1165
+ "target": "components/ui/sidebar/SidebarMenuSub.vue"
1166
+ },
1167
+ {
1168
+ "path": "src/components/ui/sidebar/SidebarMenuSubItem.vue",
1169
+ "type": "registry:ui",
1170
+ "target": "components/ui/sidebar/SidebarMenuSubItem.vue"
1171
+ },
1172
+ {
1173
+ "path": "src/components/ui/sidebar/SidebarMenuSubButton.vue",
1174
+ "type": "registry:ui",
1175
+ "target": "components/ui/sidebar/SidebarMenuSubButton.vue"
1176
+ },
1177
+ {
1178
+ "path": "src/components/ui/sidebar/SidebarInput.vue",
1179
+ "type": "registry:ui",
1180
+ "target": "components/ui/sidebar/SidebarInput.vue"
1181
+ },
1182
+ {
1183
+ "path": "src/components/ui/sidebar/SidebarSeparator.vue",
1184
+ "type": "registry:ui",
1185
+ "target": "components/ui/sidebar/SidebarSeparator.vue"
1186
+ },
1187
+ {
1188
+ "path": "src/components/ui/sidebar/context.ts",
1189
+ "type": "registry:ui",
1190
+ "target": "components/ui/sidebar/context.ts"
1191
+ },
1192
+ {
1193
+ "path": "src/components/ui/sidebar/types.ts",
1194
+ "type": "registry:ui",
1195
+ "target": "components/ui/sidebar/types.ts"
1196
+ },
1197
+ {
1198
+ "path": "src/components/ui/sidebar/variants.ts",
1199
+ "type": "registry:ui",
1200
+ "target": "components/ui/sidebar/variants.ts"
1201
+ },
1202
+ {
1203
+ "path": "src/components/ui/sidebar/index.ts",
1204
+ "type": "registry:ui",
1205
+ "target": "components/ui/sidebar/index.ts"
1206
+ },
1207
+ {
1208
+ "path": "src/components/ui/button/Button.vue",
1209
+ "type": "registry:ui",
1210
+ "target": "components/ui/button/Button.vue"
1211
+ },
1212
+ {
1213
+ "path": "src/components/ui/button/variants.ts",
1214
+ "type": "registry:ui",
1215
+ "target": "components/ui/button/variants.ts"
1216
+ },
1217
+ {
1218
+ "path": "src/components/ui/button/index.ts",
1219
+ "type": "registry:ui",
1220
+ "target": "components/ui/button/index.ts"
1221
+ },
1222
+ {
1223
+ "path": "src/components/ui/separator/Separator.vue",
1224
+ "type": "registry:ui",
1225
+ "target": "components/ui/separator/Separator.vue"
1226
+ },
1227
+ {
1228
+ "path": "src/components/ui/separator/types.ts",
1229
+ "type": "registry:ui",
1230
+ "target": "components/ui/separator/types.ts"
1231
+ },
1232
+ {
1233
+ "path": "src/components/ui/separator/index.ts",
1234
+ "type": "registry:ui",
1235
+ "target": "components/ui/separator/index.ts"
1236
+ },
1237
+ {
1238
+ "path": "src/lib/utils.ts",
1239
+ "type": "registry:lib",
1240
+ "target": "lib/utils.ts"
1241
+ }
1242
+ ]
1243
+ },
1244
+ {
1245
+ "name": "dropdown-menu",
1246
+ "type": "registry:ui",
1247
+ "title": "Dropdown Menu",
1248
+ "description": "A menu primitive for grouped actions, checkbox items, radio items, shortcuts, and submenus.",
1249
+ "dependencies": [
1250
+ "@lucide/vue",
1251
+ "@vueuse/core",
1252
+ "clsx",
1253
+ "reka-ui",
1254
+ "tailwind-merge"
1255
+ ],
1256
+ "files": [
1257
+ {
1258
+ "path": "src/components/ui/dropdown-menu/DropdownMenu.vue",
1259
+ "type": "registry:ui",
1260
+ "target": "components/ui/dropdown-menu/DropdownMenu.vue"
1261
+ },
1262
+ {
1263
+ "path": "src/components/ui/dropdown-menu/DropdownMenuTrigger.vue",
1264
+ "type": "registry:ui",
1265
+ "target": "components/ui/dropdown-menu/DropdownMenuTrigger.vue"
1266
+ },
1267
+ {
1268
+ "path": "src/components/ui/dropdown-menu/DropdownMenuContent.vue",
1269
+ "type": "registry:ui",
1270
+ "target": "components/ui/dropdown-menu/DropdownMenuContent.vue"
1271
+ },
1272
+ {
1273
+ "path": "src/components/ui/dropdown-menu/DropdownMenuGroup.vue",
1274
+ "type": "registry:ui",
1275
+ "target": "components/ui/dropdown-menu/DropdownMenuGroup.vue"
1276
+ },
1277
+ {
1278
+ "path": "src/components/ui/dropdown-menu/DropdownMenuItem.vue",
1279
+ "type": "registry:ui",
1280
+ "target": "components/ui/dropdown-menu/DropdownMenuItem.vue"
1281
+ },
1282
+ {
1283
+ "path": "src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue",
1284
+ "type": "registry:ui",
1285
+ "target": "components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue"
1286
+ },
1287
+ {
1288
+ "path": "src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue",
1289
+ "type": "registry:ui",
1290
+ "target": "components/ui/dropdown-menu/DropdownMenuRadioGroup.vue"
1291
+ },
1292
+ {
1293
+ "path": "src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue",
1294
+ "type": "registry:ui",
1295
+ "target": "components/ui/dropdown-menu/DropdownMenuRadioItem.vue"
1296
+ },
1297
+ {
1298
+ "path": "src/components/ui/dropdown-menu/DropdownMenuLabel.vue",
1299
+ "type": "registry:ui",
1300
+ "target": "components/ui/dropdown-menu/DropdownMenuLabel.vue"
1301
+ },
1302
+ {
1303
+ "path": "src/components/ui/dropdown-menu/DropdownMenuSeparator.vue",
1304
+ "type": "registry:ui",
1305
+ "target": "components/ui/dropdown-menu/DropdownMenuSeparator.vue"
1306
+ },
1307
+ {
1308
+ "path": "src/components/ui/dropdown-menu/DropdownMenuShortcut.vue",
1309
+ "type": "registry:ui",
1310
+ "target": "components/ui/dropdown-menu/DropdownMenuShortcut.vue"
1311
+ },
1312
+ {
1313
+ "path": "src/components/ui/dropdown-menu/DropdownMenuSub.vue",
1314
+ "type": "registry:ui",
1315
+ "target": "components/ui/dropdown-menu/DropdownMenuSub.vue"
1316
+ },
1317
+ {
1318
+ "path": "src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue",
1319
+ "type": "registry:ui",
1320
+ "target": "components/ui/dropdown-menu/DropdownMenuSubTrigger.vue"
1321
+ },
1322
+ {
1323
+ "path": "src/components/ui/dropdown-menu/DropdownMenuSubContent.vue",
1324
+ "type": "registry:ui",
1325
+ "target": "components/ui/dropdown-menu/DropdownMenuSubContent.vue"
1326
+ },
1327
+ {
1328
+ "path": "src/components/ui/dropdown-menu/index.ts",
1329
+ "type": "registry:ui",
1330
+ "target": "components/ui/dropdown-menu/index.ts"
1331
+ },
1332
+ {
1333
+ "path": "src/lib/utils.ts",
1334
+ "type": "registry:lib",
1335
+ "target": "lib/utils.ts"
1336
+ }
1337
+ ]
1338
+ },
1339
+ {
1340
+ "name": "input",
1341
+ "type": "registry:ui",
1342
+ "title": "Input",
1343
+ "description": "An input control with plain, field, field group, disabled, file, and icon states.",
1344
+ "dependencies": [
1345
+ "clsx",
1346
+ "tailwind-merge"
1347
+ ],
1348
+ "files": [
1349
+ {
1350
+ "path": "src/components/ui/input/Input.vue",
1351
+ "type": "registry:ui",
1352
+ "target": "components/ui/input/Input.vue"
1353
+ },
1354
+ {
1355
+ "path": "src/components/ui/input/InputControl.vue",
1356
+ "type": "registry:ui",
1357
+ "target": "components/ui/input/InputControl.vue"
1358
+ },
1359
+ {
1360
+ "path": "src/components/ui/input/InputFieldGroup.vue",
1361
+ "type": "registry:ui",
1362
+ "target": "components/ui/input/InputFieldGroup.vue"
1363
+ },
1364
+ {
1365
+ "path": "src/components/ui/input/types.ts",
1366
+ "type": "registry:ui",
1367
+ "target": "components/ui/input/types.ts"
1368
+ },
1369
+ {
1370
+ "path": "src/components/ui/input/index.ts",
1371
+ "type": "registry:ui",
1372
+ "target": "components/ui/input/index.ts"
1373
+ },
1374
+ {
1375
+ "path": "src/lib/utils.ts",
1376
+ "type": "registry:lib",
1377
+ "target": "lib/utils.ts"
1378
+ }
1379
+ ]
1380
+ },
1381
+ {
1382
+ "name": "separator",
1383
+ "type": "registry:ui",
1384
+ "title": "Separator",
1385
+ "description": "A horizontal or vertical divider for separating related content.",
1386
+ "dependencies": [
1387
+ "clsx",
1388
+ "tailwind-merge"
1389
+ ],
1390
+ "files": [
1391
+ {
1392
+ "path": "src/components/ui/separator/Separator.vue",
1393
+ "type": "registry:ui",
1394
+ "target": "components/ui/separator/Separator.vue"
1395
+ },
1396
+ {
1397
+ "path": "src/components/ui/separator/types.ts",
1398
+ "type": "registry:ui",
1399
+ "target": "components/ui/separator/types.ts"
1400
+ },
1401
+ {
1402
+ "path": "src/components/ui/separator/index.ts",
1403
+ "type": "registry:ui",
1404
+ "target": "components/ui/separator/index.ts"
1405
+ },
1406
+ {
1407
+ "path": "src/lib/utils.ts",
1408
+ "type": "registry:lib",
1409
+ "target": "lib/utils.ts"
1410
+ }
1411
+ ]
1412
+ },
1413
+ {
1414
+ "name": "tag",
1415
+ "type": "registry:ui",
1416
+ "title": "Tag",
1417
+ "description": "A compact label for status, metadata, filters, and removable tokens.",
1418
+ "dependencies": [
1419
+ "@lucide/vue",
1420
+ "class-variance-authority",
1421
+ "clsx",
1422
+ "tailwind-merge"
1423
+ ],
1424
+ "files": [
1425
+ {
1426
+ "path": "src/components/ui/tag/Tag.vue",
1427
+ "type": "registry:ui",
1428
+ "target": "components/ui/tag/Tag.vue"
1429
+ },
1430
+ {
1431
+ "path": "src/components/ui/tag/variants.ts",
1432
+ "type": "registry:ui",
1433
+ "target": "components/ui/tag/variants.ts"
1434
+ },
1435
+ {
1436
+ "path": "src/components/ui/tag/index.ts",
1437
+ "type": "registry:ui",
1438
+ "target": "components/ui/tag/index.ts"
1439
+ },
1440
+ {
1441
+ "path": "src/lib/utils.ts",
1442
+ "type": "registry:lib",
1443
+ "target": "lib/utils.ts"
1444
+ }
1445
+ ]
1446
+ },
1447
+ {
1448
+ "name": "table",
1449
+ "type": "registry:ui",
1450
+ "title": "Table",
1451
+ "description": "Composable table primitives for structured data, captions, footers, empty states, and horizontal overflow.",
1452
+ "dependencies": [
1453
+ "clsx",
1454
+ "tailwind-merge"
1455
+ ],
1456
+ "files": [
1457
+ {
1458
+ "path": "src/components/ui/table/Table.vue",
1459
+ "type": "registry:ui",
1460
+ "target": "components/ui/table/Table.vue"
1461
+ },
1462
+ {
1463
+ "path": "src/components/ui/table/TableHeader.vue",
1464
+ "type": "registry:ui",
1465
+ "target": "components/ui/table/TableHeader.vue"
1466
+ },
1467
+ {
1468
+ "path": "src/components/ui/table/TableBody.vue",
1469
+ "type": "registry:ui",
1470
+ "target": "components/ui/table/TableBody.vue"
1471
+ },
1472
+ {
1473
+ "path": "src/components/ui/table/TableFooter.vue",
1474
+ "type": "registry:ui",
1475
+ "target": "components/ui/table/TableFooter.vue"
1476
+ },
1477
+ {
1478
+ "path": "src/components/ui/table/TableRow.vue",
1479
+ "type": "registry:ui",
1480
+ "target": "components/ui/table/TableRow.vue"
1481
+ },
1482
+ {
1483
+ "path": "src/components/ui/table/TableHead.vue",
1484
+ "type": "registry:ui",
1485
+ "target": "components/ui/table/TableHead.vue"
1486
+ },
1487
+ {
1488
+ "path": "src/components/ui/table/TableCell.vue",
1489
+ "type": "registry:ui",
1490
+ "target": "components/ui/table/TableCell.vue"
1491
+ },
1492
+ {
1493
+ "path": "src/components/ui/table/TableCaption.vue",
1494
+ "type": "registry:ui",
1495
+ "target": "components/ui/table/TableCaption.vue"
1496
+ },
1497
+ {
1498
+ "path": "src/components/ui/table/TableEmpty.vue",
1499
+ "type": "registry:ui",
1500
+ "target": "components/ui/table/TableEmpty.vue"
1501
+ },
1502
+ {
1503
+ "path": "src/components/ui/table/index.ts",
1504
+ "type": "registry:ui",
1505
+ "target": "components/ui/table/index.ts"
1506
+ },
1507
+ {
1508
+ "path": "src/lib/utils.ts",
1509
+ "type": "registry:lib",
1510
+ "target": "lib/utils.ts"
1511
+ }
1512
+ ]
1513
+ },
1514
+ {
1515
+ "name": "tabs",
1516
+ "type": "registry:ui",
1517
+ "title": "Tabs",
1518
+ "description": "A layered content control that displays one panel at a time.",
1519
+ "dependencies": [
1520
+ "@vueuse/core",
1521
+ "clsx",
1522
+ "reka-ui",
1523
+ "tailwind-merge"
1524
+ ],
1525
+ "files": [
1526
+ {
1527
+ "path": "src/components/ui/tabs/Tabs.vue",
1528
+ "type": "registry:ui",
1529
+ "target": "components/ui/tabs/Tabs.vue"
1530
+ },
1531
+ {
1532
+ "path": "src/components/ui/tabs/TabsList.vue",
1533
+ "type": "registry:ui",
1534
+ "target": "components/ui/tabs/TabsList.vue"
1535
+ },
1536
+ {
1537
+ "path": "src/components/ui/tabs/TabsTrigger.vue",
1538
+ "type": "registry:ui",
1539
+ "target": "components/ui/tabs/TabsTrigger.vue"
1540
+ },
1541
+ {
1542
+ "path": "src/components/ui/tabs/TabsContent.vue",
1543
+ "type": "registry:ui",
1544
+ "target": "components/ui/tabs/TabsContent.vue"
1545
+ },
1546
+ {
1547
+ "path": "src/components/ui/tabs/index.ts",
1548
+ "type": "registry:ui",
1549
+ "target": "components/ui/tabs/index.ts"
1550
+ },
1551
+ {
1552
+ "path": "src/lib/utils.ts",
1553
+ "type": "registry:lib",
1554
+ "target": "lib/utils.ts"
1555
+ }
1556
+ ]
1557
+ },
1558
+ {
1559
+ "name": "textarea",
1560
+ "type": "registry:ui",
1561
+ "title": "Textarea",
1562
+ "description": "A textarea control with plain, field, field group, disabled, resize, validation, and icon states.",
1563
+ "dependencies": [
1564
+ "clsx",
1565
+ "tailwind-merge"
1566
+ ],
1567
+ "files": [
1568
+ {
1569
+ "path": "src/components/ui/textarea/Textarea.vue",
1570
+ "type": "registry:ui",
1571
+ "target": "components/ui/textarea/Textarea.vue"
1572
+ },
1573
+ {
1574
+ "path": "src/components/ui/textarea/TextareaControl.vue",
1575
+ "type": "registry:ui",
1576
+ "target": "components/ui/textarea/TextareaControl.vue"
1577
+ },
1578
+ {
1579
+ "path": "src/components/ui/textarea/TextareaFieldGroup.vue",
1580
+ "type": "registry:ui",
1581
+ "target": "components/ui/textarea/TextareaFieldGroup.vue"
1582
+ },
1583
+ {
1584
+ "path": "src/components/ui/textarea/types.ts",
1585
+ "type": "registry:ui",
1586
+ "target": "components/ui/textarea/types.ts"
1587
+ },
1588
+ {
1589
+ "path": "src/components/ui/textarea/index.ts",
1590
+ "type": "registry:ui",
1591
+ "target": "components/ui/textarea/index.ts"
1592
+ },
1593
+ {
1594
+ "path": "src/lib/utils.ts",
1595
+ "type": "registry:lib",
1596
+ "target": "lib/utils.ts"
1597
+ }
1598
+ ]
1599
+ },
1600
+ {
1601
+ "name": "radio-group",
1602
+ "type": "registry:ui",
1603
+ "title": "Radio Group",
1604
+ "description": "A radio group control for single selection with labels, descriptions, horizontal layout, and disabled options.",
1605
+ "dependencies": [
1606
+ "@vueuse/core",
1607
+ "clsx",
1608
+ "reka-ui",
1609
+ "tailwind-merge"
1610
+ ],
1611
+ "files": [
1612
+ {
1613
+ "path": "src/components/ui/radio-group/RadioGroup.vue",
1614
+ "type": "registry:ui",
1615
+ "target": "components/ui/radio-group/RadioGroup.vue"
1616
+ },
1617
+ {
1618
+ "path": "src/components/ui/radio-group/RadioGroupItem.vue",
1619
+ "type": "registry:ui",
1620
+ "target": "components/ui/radio-group/RadioGroupItem.vue"
1621
+ },
1622
+ {
1623
+ "path": "src/components/ui/radio-group/RadioGroupOption.vue",
1624
+ "type": "registry:ui",
1625
+ "target": "components/ui/radio-group/RadioGroupOption.vue"
1626
+ },
1627
+ {
1628
+ "path": "src/components/ui/radio-group/index.ts",
1629
+ "type": "registry:ui",
1630
+ "target": "components/ui/radio-group/index.ts"
1631
+ },
1632
+ {
1633
+ "path": "src/lib/utils.ts",
1634
+ "type": "registry:lib",
1635
+ "target": "lib/utils.ts"
1636
+ }
1637
+ ]
1638
+ },
1639
+ {
1640
+ "name": "reasoning",
1641
+ "type": "registry:ui",
1642
+ "title": "Reasoning",
1643
+ "description": "A standalone AI thought surface with a minimal header and collapsible reasoning content.",
1644
+ "dependencies": [
1645
+ "@lucide/vue",
1646
+ "clsx",
1647
+ "tailwind-merge"
1648
+ ],
1649
+ "files": [
1650
+ {
1651
+ "path": "src/components/ui/reasoning/Reasoning.vue",
1652
+ "type": "registry:ui",
1653
+ "target": "components/ui/reasoning/Reasoning.vue"
1654
+ },
1655
+ {
1656
+ "path": "src/components/ui/reasoning/types.ts",
1657
+ "type": "registry:ui",
1658
+ "target": "components/ui/reasoning/types.ts"
1659
+ },
1660
+ {
1661
+ "path": "src/components/ui/reasoning/index.ts",
1662
+ "type": "registry:ui",
1663
+ "target": "components/ui/reasoning/index.ts"
1664
+ },
1665
+ {
1666
+ "path": "src/lib/utils.ts",
1667
+ "type": "registry:lib",
1668
+ "target": "lib/utils.ts"
1669
+ }
1670
+ ]
1671
+ },
1672
+ {
1673
+ "name": "select",
1674
+ "type": "registry:ui",
1675
+ "title": "Select",
1676
+ "description": "A select control with styled option menus, option descriptions, groups, disabled options, and optional search.",
1677
+ "dependencies": [
1678
+ "@lucide/vue",
1679
+ "@vueuse/core",
1680
+ "clsx",
1681
+ "reka-ui",
1682
+ "tailwind-merge"
1683
+ ],
1684
+ "files": [
1685
+ {
1686
+ "path": "src/components/ui/select/Select.vue",
1687
+ "type": "registry:ui",
1688
+ "target": "components/ui/select/Select.vue"
1689
+ },
1690
+ {
1691
+ "path": "src/components/ui/select/SelectTrigger.vue",
1692
+ "type": "registry:ui",
1693
+ "target": "components/ui/select/SelectTrigger.vue"
1694
+ },
1695
+ {
1696
+ "path": "src/components/ui/select/SelectValue.vue",
1697
+ "type": "registry:ui",
1698
+ "target": "components/ui/select/SelectValue.vue"
1699
+ },
1700
+ {
1701
+ "path": "src/components/ui/select/SelectContent.vue",
1702
+ "type": "registry:ui",
1703
+ "target": "components/ui/select/SelectContent.vue"
1704
+ },
1705
+ {
1706
+ "path": "src/components/ui/select/SelectGroup.vue",
1707
+ "type": "registry:ui",
1708
+ "target": "components/ui/select/SelectGroup.vue"
1709
+ },
1710
+ {
1711
+ "path": "src/components/ui/select/SelectItem.vue",
1712
+ "type": "registry:ui",
1713
+ "target": "components/ui/select/SelectItem.vue"
1714
+ },
1715
+ {
1716
+ "path": "src/components/ui/select/SelectItemText.vue",
1717
+ "type": "registry:ui",
1718
+ "target": "components/ui/select/SelectItemText.vue"
1719
+ },
1720
+ {
1721
+ "path": "src/components/ui/select/SelectLabel.vue",
1722
+ "type": "registry:ui",
1723
+ "target": "components/ui/select/SelectLabel.vue"
1724
+ },
1725
+ {
1726
+ "path": "src/components/ui/select/SelectSeparator.vue",
1727
+ "type": "registry:ui",
1728
+ "target": "components/ui/select/SelectSeparator.vue"
1729
+ },
1730
+ {
1731
+ "path": "src/components/ui/select/SelectScrollUpButton.vue",
1732
+ "type": "registry:ui",
1733
+ "target": "components/ui/select/SelectScrollUpButton.vue"
1734
+ },
1735
+ {
1736
+ "path": "src/components/ui/select/SelectScrollDownButton.vue",
1737
+ "type": "registry:ui",
1738
+ "target": "components/ui/select/SelectScrollDownButton.vue"
1739
+ },
1740
+ {
1741
+ "path": "src/components/ui/select/search.ts",
1742
+ "type": "registry:ui",
1743
+ "target": "components/ui/select/search.ts"
1744
+ },
1745
+ {
1746
+ "path": "src/components/ui/select/index.ts",
1747
+ "type": "registry:ui",
1748
+ "target": "components/ui/select/index.ts"
1749
+ },
1750
+ {
1751
+ "path": "src/lib/utils.ts",
1752
+ "type": "registry:lib",
1753
+ "target": "lib/utils.ts"
1754
+ }
1755
+ ]
1756
+ },
1757
+ {
1758
+ "name": "model-selector",
1759
+ "type": "registry:ui",
1760
+ "title": "Model Selector",
1761
+ "description": "A Select-like model picker that switches to a searchable Dialog for large model catalogs.",
1762
+ "dependencies": [
1763
+ "@lucide/vue",
1764
+ "@vueuse/core",
1765
+ "clsx",
1766
+ "reka-ui",
1767
+ "tailwind-merge"
1768
+ ],
1769
+ "files": [
1770
+ {
1771
+ "path": "src/components/ui/model-selector/ModelSelector.vue",
1772
+ "type": "registry:ui",
1773
+ "target": "components/ui/model-selector/ModelSelector.vue"
1774
+ },
1775
+ {
1776
+ "path": "src/components/ui/model-selector/types.ts",
1777
+ "type": "registry:ui",
1778
+ "target": "components/ui/model-selector/types.ts"
1779
+ },
1780
+ {
1781
+ "path": "src/components/ui/model-selector/index.ts",
1782
+ "type": "registry:ui",
1783
+ "target": "components/ui/model-selector/index.ts"
1784
+ },
1785
+ {
1786
+ "path": "src/components/ui/select/Select.vue",
1787
+ "type": "registry:ui",
1788
+ "target": "components/ui/select/Select.vue"
1789
+ },
1790
+ {
1791
+ "path": "src/components/ui/select/SelectTrigger.vue",
1792
+ "type": "registry:ui",
1793
+ "target": "components/ui/select/SelectTrigger.vue"
1794
+ },
1795
+ {
1796
+ "path": "src/components/ui/select/SelectValue.vue",
1797
+ "type": "registry:ui",
1798
+ "target": "components/ui/select/SelectValue.vue"
1799
+ },
1800
+ {
1801
+ "path": "src/components/ui/select/SelectContent.vue",
1802
+ "type": "registry:ui",
1803
+ "target": "components/ui/select/SelectContent.vue"
1804
+ },
1805
+ {
1806
+ "path": "src/components/ui/select/SelectGroup.vue",
1807
+ "type": "registry:ui",
1808
+ "target": "components/ui/select/SelectGroup.vue"
1809
+ },
1810
+ {
1811
+ "path": "src/components/ui/select/SelectItem.vue",
1812
+ "type": "registry:ui",
1813
+ "target": "components/ui/select/SelectItem.vue"
1814
+ },
1815
+ {
1816
+ "path": "src/components/ui/select/SelectItemText.vue",
1817
+ "type": "registry:ui",
1818
+ "target": "components/ui/select/SelectItemText.vue"
1819
+ },
1820
+ {
1821
+ "path": "src/components/ui/select/SelectLabel.vue",
1822
+ "type": "registry:ui",
1823
+ "target": "components/ui/select/SelectLabel.vue"
1824
+ },
1825
+ {
1826
+ "path": "src/components/ui/select/SelectSeparator.vue",
1827
+ "type": "registry:ui",
1828
+ "target": "components/ui/select/SelectSeparator.vue"
1829
+ },
1830
+ {
1831
+ "path": "src/components/ui/select/SelectScrollUpButton.vue",
1832
+ "type": "registry:ui",
1833
+ "target": "components/ui/select/SelectScrollUpButton.vue"
1834
+ },
1835
+ {
1836
+ "path": "src/components/ui/select/SelectScrollDownButton.vue",
1837
+ "type": "registry:ui",
1838
+ "target": "components/ui/select/SelectScrollDownButton.vue"
1839
+ },
1840
+ {
1841
+ "path": "src/components/ui/select/search.ts",
1842
+ "type": "registry:ui",
1843
+ "target": "components/ui/select/search.ts"
1844
+ },
1845
+ {
1846
+ "path": "src/components/ui/select/index.ts",
1847
+ "type": "registry:ui",
1848
+ "target": "components/ui/select/index.ts"
1849
+ },
1850
+ {
1851
+ "path": "src/components/ui/dialog/Dialog.vue",
1852
+ "type": "registry:ui",
1853
+ "target": "components/ui/dialog/Dialog.vue"
1854
+ },
1855
+ {
1856
+ "path": "src/components/ui/dialog/DialogTrigger.vue",
1857
+ "type": "registry:ui",
1858
+ "target": "components/ui/dialog/DialogTrigger.vue"
1859
+ },
1860
+ {
1861
+ "path": "src/components/ui/dialog/DialogContent.vue",
1862
+ "type": "registry:ui",
1863
+ "target": "components/ui/dialog/DialogContent.vue"
1864
+ },
1865
+ {
1866
+ "path": "src/components/ui/dialog/DialogOverlay.vue",
1867
+ "type": "registry:ui",
1868
+ "target": "components/ui/dialog/DialogOverlay.vue"
1869
+ },
1870
+ {
1871
+ "path": "src/components/ui/dialog/DialogTitle.vue",
1872
+ "type": "registry:ui",
1873
+ "target": "components/ui/dialog/DialogTitle.vue"
1874
+ },
1875
+ {
1876
+ "path": "src/lib/utils.ts",
1877
+ "type": "registry:lib",
1878
+ "target": "lib/utils.ts"
1879
+ }
1880
+ ]
1881
+ },
1882
+ {
1883
+ "name": "profile",
1884
+ "type": "registry:ui",
1885
+ "title": "Profile",
1886
+ "description": "A profile identity display with fallback, badge, avatar-only, and grouped states.",
1887
+ "dependencies": [
1888
+ "clsx",
1889
+ "tailwind-merge"
1890
+ ],
1891
+ "files": [
1892
+ {
1893
+ "path": "src/components/ui/profile/Profile.vue",
1894
+ "type": "registry:ui",
1895
+ "target": "components/ui/profile/Profile.vue"
1896
+ },
1897
+ {
1898
+ "path": "src/components/ui/profile/ProfileGroup.vue",
1899
+ "type": "registry:ui",
1900
+ "target": "components/ui/profile/ProfileGroup.vue"
1901
+ },
1902
+ {
1903
+ "path": "src/components/ui/profile/index.ts",
1904
+ "type": "registry:ui",
1905
+ "target": "components/ui/profile/index.ts"
1906
+ },
1907
+ {
1908
+ "path": "src/lib/utils.ts",
1909
+ "type": "registry:lib",
1910
+ "target": "lib/utils.ts"
1911
+ }
1912
+ ]
1913
+ },
1914
+ {
1915
+ "name": "pagination",
1916
+ "type": "registry:ui",
1917
+ "title": "Pagination",
1918
+ "description": "A page navigation control with previous, next, first, last, active, disabled, and ellipsis states.",
1919
+ "dependencies": [
1920
+ "@lucide/vue",
1921
+ "@vueuse/core",
1922
+ "class-variance-authority",
1923
+ "clsx",
1924
+ "reka-ui",
1925
+ "tailwind-merge"
1926
+ ],
1927
+ "files": [
1928
+ {
1929
+ "path": "src/components/ui/pagination/Pagination.vue",
1930
+ "type": "registry:ui",
1931
+ "target": "components/ui/pagination/Pagination.vue"
1932
+ },
1933
+ {
1934
+ "path": "src/components/ui/pagination/PaginationContent.vue",
1935
+ "type": "registry:ui",
1936
+ "target": "components/ui/pagination/PaginationContent.vue"
1937
+ },
1938
+ {
1939
+ "path": "src/components/ui/pagination/PaginationEllipsis.vue",
1940
+ "type": "registry:ui",
1941
+ "target": "components/ui/pagination/PaginationEllipsis.vue"
1942
+ },
1943
+ {
1944
+ "path": "src/components/ui/pagination/PaginationFirst.vue",
1945
+ "type": "registry:ui",
1946
+ "target": "components/ui/pagination/PaginationFirst.vue"
1947
+ },
1948
+ {
1949
+ "path": "src/components/ui/pagination/PaginationItem.vue",
1950
+ "type": "registry:ui",
1951
+ "target": "components/ui/pagination/PaginationItem.vue"
1952
+ },
1953
+ {
1954
+ "path": "src/components/ui/pagination/PaginationLast.vue",
1955
+ "type": "registry:ui",
1956
+ "target": "components/ui/pagination/PaginationLast.vue"
1957
+ },
1958
+ {
1959
+ "path": "src/components/ui/pagination/PaginationNext.vue",
1960
+ "type": "registry:ui",
1961
+ "target": "components/ui/pagination/PaginationNext.vue"
1962
+ },
1963
+ {
1964
+ "path": "src/components/ui/pagination/PaginationPrevious.vue",
1965
+ "type": "registry:ui",
1966
+ "target": "components/ui/pagination/PaginationPrevious.vue"
1967
+ },
1968
+ {
1969
+ "path": "src/components/ui/pagination/index.ts",
1970
+ "type": "registry:ui",
1971
+ "target": "components/ui/pagination/index.ts"
1972
+ },
1973
+ {
1974
+ "path": "src/components/ui/button/Button.vue",
1975
+ "type": "registry:ui",
1976
+ "target": "components/ui/button/Button.vue"
1977
+ },
1978
+ {
1979
+ "path": "src/components/ui/button/variants.ts",
1980
+ "type": "registry:ui",
1981
+ "target": "components/ui/button/variants.ts"
1982
+ },
1983
+ {
1984
+ "path": "src/components/ui/button/index.ts",
1985
+ "type": "registry:ui",
1986
+ "target": "components/ui/button/index.ts"
1987
+ },
1988
+ {
1989
+ "path": "src/lib/utils.ts",
1990
+ "type": "registry:lib",
1991
+ "target": "lib/utils.ts"
1992
+ }
1993
+ ]
1994
+ },
1995
+ {
1996
+ "name": "prompt-input",
1997
+ "type": "registry:ui",
1998
+ "title": "Prompt Input",
1999
+ "description": "A standalone AI prompt composer with add action, searchable model selection, model icons, toolbar slots, and submit behavior.",
2000
+ "dependencies": [
2001
+ "@lucide/vue",
2002
+ "@vueuse/core",
2003
+ "class-variance-authority",
2004
+ "clsx",
2005
+ "reka-ui",
2006
+ "tailwind-merge"
2007
+ ],
2008
+ "files": [
2009
+ {
2010
+ "path": "src/components/ui/button/Button.vue",
2011
+ "type": "registry:ui",
2012
+ "target": "components/ui/button/Button.vue"
2013
+ },
2014
+ {
2015
+ "path": "src/components/ui/button/variants.ts",
2016
+ "type": "registry:ui",
2017
+ "target": "components/ui/button/variants.ts"
2018
+ },
2019
+ {
2020
+ "path": "src/components/ui/button/index.ts",
2021
+ "type": "registry:ui",
2022
+ "target": "components/ui/button/index.ts"
2023
+ },
2024
+ {
2025
+ "path": "src/components/ui/dropdown-menu/DropdownMenu.vue",
2026
+ "type": "registry:ui",
2027
+ "target": "components/ui/dropdown-menu/DropdownMenu.vue"
2028
+ },
2029
+ {
2030
+ "path": "src/components/ui/dropdown-menu/DropdownMenuTrigger.vue",
2031
+ "type": "registry:ui",
2032
+ "target": "components/ui/dropdown-menu/DropdownMenuTrigger.vue"
2033
+ },
2034
+ {
2035
+ "path": "src/components/ui/dropdown-menu/DropdownMenuContent.vue",
2036
+ "type": "registry:ui",
2037
+ "target": "components/ui/dropdown-menu/DropdownMenuContent.vue"
2038
+ },
2039
+ {
2040
+ "path": "src/components/ui/dropdown-menu/DropdownMenuGroup.vue",
2041
+ "type": "registry:ui",
2042
+ "target": "components/ui/dropdown-menu/DropdownMenuGroup.vue"
2043
+ },
2044
+ {
2045
+ "path": "src/components/ui/dropdown-menu/DropdownMenuItem.vue",
2046
+ "type": "registry:ui",
2047
+ "target": "components/ui/dropdown-menu/DropdownMenuItem.vue"
2048
+ },
2049
+ {
2050
+ "path": "src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue",
2051
+ "type": "registry:ui",
2052
+ "target": "components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue"
2053
+ },
2054
+ {
2055
+ "path": "src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue",
2056
+ "type": "registry:ui",
2057
+ "target": "components/ui/dropdown-menu/DropdownMenuRadioGroup.vue"
2058
+ },
2059
+ {
2060
+ "path": "src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue",
2061
+ "type": "registry:ui",
2062
+ "target": "components/ui/dropdown-menu/DropdownMenuRadioItem.vue"
2063
+ },
2064
+ {
2065
+ "path": "src/components/ui/dropdown-menu/DropdownMenuLabel.vue",
2066
+ "type": "registry:ui",
2067
+ "target": "components/ui/dropdown-menu/DropdownMenuLabel.vue"
2068
+ },
2069
+ {
2070
+ "path": "src/components/ui/dropdown-menu/DropdownMenuSeparator.vue",
2071
+ "type": "registry:ui",
2072
+ "target": "components/ui/dropdown-menu/DropdownMenuSeparator.vue"
2073
+ },
2074
+ {
2075
+ "path": "src/components/ui/dropdown-menu/DropdownMenuShortcut.vue",
2076
+ "type": "registry:ui",
2077
+ "target": "components/ui/dropdown-menu/DropdownMenuShortcut.vue"
2078
+ },
2079
+ {
2080
+ "path": "src/components/ui/dropdown-menu/DropdownMenuSub.vue",
2081
+ "type": "registry:ui",
2082
+ "target": "components/ui/dropdown-menu/DropdownMenuSub.vue"
2083
+ },
2084
+ {
2085
+ "path": "src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue",
2086
+ "type": "registry:ui",
2087
+ "target": "components/ui/dropdown-menu/DropdownMenuSubTrigger.vue"
2088
+ },
2089
+ {
2090
+ "path": "src/components/ui/dropdown-menu/DropdownMenuSubContent.vue",
2091
+ "type": "registry:ui",
2092
+ "target": "components/ui/dropdown-menu/DropdownMenuSubContent.vue"
2093
+ },
2094
+ {
2095
+ "path": "src/components/ui/dropdown-menu/index.ts",
2096
+ "type": "registry:ui",
2097
+ "target": "components/ui/dropdown-menu/index.ts"
2098
+ },
2099
+ {
2100
+ "path": "src/components/ui/model-selector/ModelSelector.vue",
2101
+ "type": "registry:ui",
2102
+ "target": "components/ui/model-selector/ModelSelector.vue"
2103
+ },
2104
+ {
2105
+ "path": "src/components/ui/model-selector/types.ts",
2106
+ "type": "registry:ui",
2107
+ "target": "components/ui/model-selector/types.ts"
2108
+ },
2109
+ {
2110
+ "path": "src/components/ui/model-selector/index.ts",
2111
+ "type": "registry:ui",
2112
+ "target": "components/ui/model-selector/index.ts"
2113
+ },
2114
+ {
2115
+ "path": "src/components/ui/select/Select.vue",
2116
+ "type": "registry:ui",
2117
+ "target": "components/ui/select/Select.vue"
2118
+ },
2119
+ {
2120
+ "path": "src/components/ui/select/SelectTrigger.vue",
2121
+ "type": "registry:ui",
2122
+ "target": "components/ui/select/SelectTrigger.vue"
2123
+ },
2124
+ {
2125
+ "path": "src/components/ui/select/SelectValue.vue",
2126
+ "type": "registry:ui",
2127
+ "target": "components/ui/select/SelectValue.vue"
2128
+ },
2129
+ {
2130
+ "path": "src/components/ui/select/SelectContent.vue",
2131
+ "type": "registry:ui",
2132
+ "target": "components/ui/select/SelectContent.vue"
2133
+ },
2134
+ {
2135
+ "path": "src/components/ui/select/SelectGroup.vue",
2136
+ "type": "registry:ui",
2137
+ "target": "components/ui/select/SelectGroup.vue"
2138
+ },
2139
+ {
2140
+ "path": "src/components/ui/select/SelectItem.vue",
2141
+ "type": "registry:ui",
2142
+ "target": "components/ui/select/SelectItem.vue"
2143
+ },
2144
+ {
2145
+ "path": "src/components/ui/select/SelectItemText.vue",
2146
+ "type": "registry:ui",
2147
+ "target": "components/ui/select/SelectItemText.vue"
2148
+ },
2149
+ {
2150
+ "path": "src/components/ui/select/SelectLabel.vue",
2151
+ "type": "registry:ui",
2152
+ "target": "components/ui/select/SelectLabel.vue"
2153
+ },
2154
+ {
2155
+ "path": "src/components/ui/select/SelectSeparator.vue",
2156
+ "type": "registry:ui",
2157
+ "target": "components/ui/select/SelectSeparator.vue"
2158
+ },
2159
+ {
2160
+ "path": "src/components/ui/select/SelectScrollUpButton.vue",
2161
+ "type": "registry:ui",
2162
+ "target": "components/ui/select/SelectScrollUpButton.vue"
2163
+ },
2164
+ {
2165
+ "path": "src/components/ui/select/SelectScrollDownButton.vue",
2166
+ "type": "registry:ui",
2167
+ "target": "components/ui/select/SelectScrollDownButton.vue"
2168
+ },
2169
+ {
2170
+ "path": "src/components/ui/select/search.ts",
2171
+ "type": "registry:ui",
2172
+ "target": "components/ui/select/search.ts"
2173
+ },
2174
+ {
2175
+ "path": "src/components/ui/select/index.ts",
2176
+ "type": "registry:ui",
2177
+ "target": "components/ui/select/index.ts"
2178
+ },
2179
+ {
2180
+ "path": "src/components/ui/dialog/Dialog.vue",
2181
+ "type": "registry:ui",
2182
+ "target": "components/ui/dialog/Dialog.vue"
2183
+ },
2184
+ {
2185
+ "path": "src/components/ui/dialog/DialogTrigger.vue",
2186
+ "type": "registry:ui",
2187
+ "target": "components/ui/dialog/DialogTrigger.vue"
2188
+ },
2189
+ {
2190
+ "path": "src/components/ui/dialog/DialogContent.vue",
2191
+ "type": "registry:ui",
2192
+ "target": "components/ui/dialog/DialogContent.vue"
2193
+ },
2194
+ {
2195
+ "path": "src/components/ui/dialog/DialogOverlay.vue",
2196
+ "type": "registry:ui",
2197
+ "target": "components/ui/dialog/DialogOverlay.vue"
2198
+ },
2199
+ {
2200
+ "path": "src/components/ui/dialog/DialogTitle.vue",
2201
+ "type": "registry:ui",
2202
+ "target": "components/ui/dialog/DialogTitle.vue"
2203
+ },
2204
+ {
2205
+ "path": "src/components/ui/tag/Tag.vue",
2206
+ "type": "registry:ui",
2207
+ "target": "components/ui/tag/Tag.vue"
2208
+ },
2209
+ {
2210
+ "path": "src/components/ui/tag/variants.ts",
2211
+ "type": "registry:ui",
2212
+ "target": "components/ui/tag/variants.ts"
2213
+ },
2214
+ {
2215
+ "path": "src/components/ui/tag/index.ts",
2216
+ "type": "registry:ui",
2217
+ "target": "components/ui/tag/index.ts"
2218
+ },
2219
+ {
2220
+ "path": "src/components/ui/prompt-input/PromptInput.vue",
2221
+ "type": "registry:ui",
2222
+ "target": "components/ui/prompt-input/PromptInput.vue"
2223
+ },
2224
+ {
2225
+ "path": "src/components/ui/prompt-input/types.ts",
2226
+ "type": "registry:ui",
2227
+ "target": "components/ui/prompt-input/types.ts"
2228
+ },
2229
+ {
2230
+ "path": "src/components/ui/prompt-input/index.ts",
2231
+ "type": "registry:ui",
2232
+ "target": "components/ui/prompt-input/index.ts"
2233
+ },
2234
+ {
2235
+ "path": "src/lib/utils.ts",
2236
+ "type": "registry:lib",
2237
+ "target": "lib/utils.ts"
2238
+ }
2239
+ ]
2240
+ },
2241
+ {
2242
+ "name": "spinner",
2243
+ "type": "registry:ui",
2244
+ "title": "Spinner",
2245
+ "description": "A compact loading indicator for buttons and status displays.",
2246
+ "dependencies": [
2247
+ "clsx",
2248
+ "tailwind-merge"
2249
+ ],
2250
+ "files": [
2251
+ {
2252
+ "path": "src/components/ui/spinner/Spinner.vue",
2253
+ "type": "registry:ui",
2254
+ "target": "components/ui/spinner/Spinner.vue"
2255
+ },
2256
+ {
2257
+ "path": "src/components/ui/spinner/index.ts",
2258
+ "type": "registry:ui",
2259
+ "target": "components/ui/spinner/index.ts"
2260
+ },
2261
+ {
2262
+ "path": "src/lib/utils.ts",
2263
+ "type": "registry:lib",
2264
+ "target": "lib/utils.ts"
2265
+ }
2266
+ ]
2267
+ },
2268
+ {
2269
+ "name": "progress",
2270
+ "type": "registry:ui",
2271
+ "title": "Progress",
2272
+ "description": "An accessible horizontal progress bar for determinate and indeterminate task state.",
2273
+ "dependencies": [
2274
+ "clsx",
2275
+ "tailwind-merge"
2276
+ ],
2277
+ "files": [
2278
+ {
2279
+ "path": "src/components/ui/progress/Progress.vue",
2280
+ "type": "registry:ui",
2281
+ "target": "components/ui/progress/Progress.vue"
2282
+ },
2283
+ {
2284
+ "path": "src/components/ui/progress/index.ts",
2285
+ "type": "registry:ui",
2286
+ "target": "components/ui/progress/index.ts"
2287
+ },
2288
+ {
2289
+ "path": "src/lib/utils.ts",
2290
+ "type": "registry:lib",
2291
+ "target": "lib/utils.ts"
2292
+ }
2293
+ ]
2294
+ },
2295
+ {
2296
+ "name": "skeleton",
2297
+ "type": "registry:ui",
2298
+ "title": "Skeleton",
2299
+ "description": "A placeholder block for loading surfaces with shape variants, optional animation, and accessible status labeling.",
2300
+ "dependencies": [
2301
+ "clsx",
2302
+ "tailwind-merge"
2303
+ ],
2304
+ "files": [
2305
+ {
2306
+ "path": "src/components/ui/skeleton/Skeleton.vue",
2307
+ "type": "registry:ui",
2308
+ "target": "components/ui/skeleton/Skeleton.vue"
2309
+ },
2310
+ {
2311
+ "path": "src/components/ui/skeleton/index.ts",
2312
+ "type": "registry:ui",
2313
+ "target": "components/ui/skeleton/index.ts"
2314
+ },
2315
+ {
2316
+ "path": "src/lib/utils.ts",
2317
+ "type": "registry:lib",
2318
+ "target": "lib/utils.ts"
2319
+ }
2320
+ ]
2321
+ },
2322
+ {
2323
+ "name": "shimmer",
2324
+ "type": "registry:ui",
2325
+ "title": "Shimmer",
2326
+ "description": "An animated text shimmer for loading states and progressive reveal effects.",
2327
+ "dependencies": [
2328
+ "clsx",
2329
+ "tailwind-merge"
2330
+ ],
2331
+ "files": [
2332
+ {
2333
+ "path": "src/components/ui/shimmer/Shimmer.vue",
2334
+ "type": "registry:ui",
2335
+ "target": "components/ui/shimmer/Shimmer.vue"
2336
+ },
2337
+ {
2338
+ "path": "src/components/ui/shimmer/index.ts",
2339
+ "type": "registry:ui",
2340
+ "target": "components/ui/shimmer/index.ts"
2341
+ },
2342
+ {
2343
+ "path": "src/lib/utils.ts",
2344
+ "type": "registry:lib",
2345
+ "target": "lib/utils.ts"
2346
+ }
2347
+ ]
2348
+ },
2349
+ {
2350
+ "name": "stepper",
2351
+ "type": "registry:ui",
2352
+ "title": "Stepper",
2353
+ "description": "A multi-step progress control for onboarding, setup, and wizard flows.",
2354
+ "dependencies": [
2355
+ "@lucide/vue",
2356
+ "@vueuse/core",
2357
+ "clsx",
2358
+ "reka-ui",
2359
+ "tailwind-merge"
2360
+ ],
2361
+ "files": [
2362
+ {
2363
+ "path": "src/components/ui/stepper/Stepper.vue",
2364
+ "type": "registry:ui",
2365
+ "target": "components/ui/stepper/Stepper.vue"
2366
+ },
2367
+ {
2368
+ "path": "src/components/ui/stepper/StepperItem.vue",
2369
+ "type": "registry:ui",
2370
+ "target": "components/ui/stepper/StepperItem.vue"
2371
+ },
2372
+ {
2373
+ "path": "src/components/ui/stepper/StepperTrigger.vue",
2374
+ "type": "registry:ui",
2375
+ "target": "components/ui/stepper/StepperTrigger.vue"
2376
+ },
2377
+ {
2378
+ "path": "src/components/ui/stepper/StepperIndicator.vue",
2379
+ "type": "registry:ui",
2380
+ "target": "components/ui/stepper/StepperIndicator.vue"
2381
+ },
2382
+ {
2383
+ "path": "src/components/ui/stepper/StepperTitle.vue",
2384
+ "type": "registry:ui",
2385
+ "target": "components/ui/stepper/StepperTitle.vue"
2386
+ },
2387
+ {
2388
+ "path": "src/components/ui/stepper/StepperDescription.vue",
2389
+ "type": "registry:ui",
2390
+ "target": "components/ui/stepper/StepperDescription.vue"
2391
+ },
2392
+ {
2393
+ "path": "src/components/ui/stepper/StepperSeparator.vue",
2394
+ "type": "registry:ui",
2395
+ "target": "components/ui/stepper/StepperSeparator.vue"
2396
+ },
2397
+ {
2398
+ "path": "src/components/ui/stepper/index.ts",
2399
+ "type": "registry:ui",
2400
+ "target": "components/ui/stepper/index.ts"
2401
+ },
2402
+ {
2403
+ "path": "src/lib/utils.ts",
2404
+ "type": "registry:lib",
2405
+ "target": "lib/utils.ts"
2406
+ }
2407
+ ]
2408
+ },
2409
+ {
2410
+ "name": "sonner",
2411
+ "type": "registry:ui",
2412
+ "title": "Sonner",
2413
+ "description": "An opinionated toast component for Vue applications.",
2414
+ "dependencies": [
2415
+ "@lucide/vue",
2416
+ "clsx",
2417
+ "tailwind-merge",
2418
+ "vue-sonner"
2419
+ ],
2420
+ "files": [
2421
+ {
2422
+ "path": "src/components/ui/sonner/Sonner.vue",
2423
+ "type": "registry:ui",
2424
+ "target": "components/ui/sonner/Sonner.vue"
2425
+ },
2426
+ {
2427
+ "path": "src/components/ui/sonner/index.ts",
2428
+ "type": "registry:ui",
2429
+ "target": "components/ui/sonner/index.ts"
2430
+ },
2431
+ {
2432
+ "path": "src/lib/utils.ts",
2433
+ "type": "registry:lib",
2434
+ "target": "lib/utils.ts"
2435
+ }
2436
+ ]
2437
+ },
2438
+ {
2439
+ "name": "switch",
2440
+ "type": "registry:ui",
2441
+ "title": "Switch",
2442
+ "description": "A toggle control for checked, unchecked, disabled, and invalid states.",
2443
+ "dependencies": [
2444
+ "@vueuse/core",
2445
+ "clsx",
2446
+ "reka-ui",
2447
+ "tailwind-merge"
2448
+ ],
2449
+ "files": [
2450
+ {
2451
+ "path": "src/components/ui/switch/Switch.vue",
2452
+ "type": "registry:ui",
2453
+ "target": "components/ui/switch/Switch.vue"
2454
+ },
2455
+ {
2456
+ "path": "src/components/ui/switch/index.ts",
2457
+ "type": "registry:ui",
2458
+ "target": "components/ui/switch/index.ts"
2459
+ },
2460
+ {
2461
+ "path": "src/lib/utils.ts",
2462
+ "type": "registry:lib",
2463
+ "target": "lib/utils.ts"
2464
+ }
2465
+ ]
2466
+ },
2467
+ {
2468
+ "name": "tooltip",
2469
+ "type": "registry:ui",
2470
+ "title": "Tooltip",
2471
+ "description": "A small contextual overlay for explaining controls and compact UI elements.",
2472
+ "dependencies": [
2473
+ "@vueuse/core",
2474
+ "clsx",
2475
+ "reka-ui",
2476
+ "tailwind-merge"
2477
+ ],
2478
+ "files": [
2479
+ {
2480
+ "path": "src/components/ui/tooltip/Tooltip.vue",
2481
+ "type": "registry:ui",
2482
+ "target": "components/ui/tooltip/Tooltip.vue"
2483
+ },
2484
+ {
2485
+ "path": "src/components/ui/tooltip/TooltipTrigger.vue",
2486
+ "type": "registry:ui",
2487
+ "target": "components/ui/tooltip/TooltipTrigger.vue"
2488
+ },
2489
+ {
2490
+ "path": "src/components/ui/tooltip/TooltipContent.vue",
2491
+ "type": "registry:ui",
2492
+ "target": "components/ui/tooltip/TooltipContent.vue"
2493
+ },
2494
+ {
2495
+ "path": "src/components/ui/tooltip/TooltipProvider.vue",
2496
+ "type": "registry:ui",
2497
+ "target": "components/ui/tooltip/TooltipProvider.vue"
2498
+ },
2499
+ {
2500
+ "path": "src/components/ui/tooltip/index.ts",
2501
+ "type": "registry:ui",
2502
+ "target": "components/ui/tooltip/index.ts"
2503
+ },
2504
+ {
2505
+ "path": "src/lib/utils.ts",
2506
+ "type": "registry:lib",
2507
+ "target": "lib/utils.ts"
2508
+ }
2509
+ ]
2510
+ }
2511
+ ]
2512
+ }