@edgedev/create-edge-app 1.1.5 → 1.1.7

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 (357) hide show
  1. package/.eslintrc +2 -1
  2. package/assets/css/tailwind.css +12 -2
  3. package/components/ui/accordion/Accordion.vue +1 -1
  4. package/components/ui/accordion/AccordionContent.vue +3 -3
  5. package/components/ui/accordion/AccordionItem.vue +3 -3
  6. package/components/ui/accordion/AccordionTrigger.vue +4 -4
  7. package/components/ui/alert/Alert.vue +1 -1
  8. package/components/ui/alert/AlertDescription.vue +1 -1
  9. package/components/ui/alert/AlertTitle.vue +1 -1
  10. package/components/ui/alert/index.ts +2 -2
  11. package/components/ui/alert-dialog/AlertDialog.vue +1 -1
  12. package/components/ui/alert-dialog/AlertDialogAction.vue +4 -4
  13. package/components/ui/alert-dialog/AlertDialogCancel.vue +12 -5
  14. package/components/ui/alert-dialog/AlertDialogContent.vue +4 -4
  15. package/components/ui/alert-dialog/AlertDialogDescription.vue +3 -3
  16. package/components/ui/alert-dialog/AlertDialogFooter.vue +1 -1
  17. package/components/ui/alert-dialog/AlertDialogHeader.vue +1 -1
  18. package/components/ui/alert-dialog/AlertDialogTitle.vue +3 -3
  19. package/components/ui/alert-dialog/AlertDialogTrigger.vue +1 -1
  20. package/components/ui/alert-dialog/index.ts +5 -5
  21. package/components/ui/aspect-ratio/AspectRatio.vue +1 -1
  22. package/components/ui/auto-form/AutoForm.vue +8 -8
  23. package/components/ui/auto-form/AutoFormField.vue +1 -1
  24. package/components/ui/auto-form/AutoFormFieldArray.vue +9 -9
  25. package/components/ui/auto-form/AutoFormFieldBoolean.vue +9 -9
  26. package/components/ui/auto-form/AutoFormFieldDate.vue +9 -9
  27. package/components/ui/auto-form/AutoFormFieldEnum.vue +8 -8
  28. package/components/ui/auto-form/AutoFormFieldFile.vue +6 -6
  29. package/components/ui/auto-form/AutoFormFieldInput.vue +5 -5
  30. package/components/ui/auto-form/AutoFormFieldNumber.vue +4 -4
  31. package/components/ui/auto-form/AutoFormFieldObject.vue +5 -5
  32. package/components/ui/auto-form/AutoFormLabel.vue +1 -1
  33. package/components/ui/auto-form/constant.ts +2 -1
  34. package/components/ui/auto-form/dependencies.ts +4 -4
  35. package/components/ui/auto-form/index.ts +4 -4
  36. package/components/ui/auto-form/interface.ts +15 -1
  37. package/components/ui/auto-form/utils.ts +23 -6
  38. package/components/ui/avatar/Avatar.vue +3 -3
  39. package/components/ui/avatar/AvatarFallback.vue +1 -1
  40. package/components/ui/avatar/AvatarImage.vue +5 -2
  41. package/components/ui/avatar/index.ts +2 -2
  42. package/components/ui/badge/Badge.vue +1 -1
  43. package/components/ui/badge/index.ts +1 -1
  44. package/components/ui/breadcrumb/BreadcrumbEllipsis.vue +1 -1
  45. package/components/ui/breadcrumb/BreadcrumbItem.vue +1 -1
  46. package/components/ui/breadcrumb/BreadcrumbLink.vue +2 -2
  47. package/components/ui/breadcrumb/BreadcrumbList.vue +1 -1
  48. package/components/ui/breadcrumb/BreadcrumbPage.vue +1 -1
  49. package/components/ui/breadcrumb/BreadcrumbSeparator.vue +2 -2
  50. package/components/ui/button/Button.vue +2 -2
  51. package/components/ui/button/index.ts +3 -3
  52. package/components/ui/calendar/Calendar.vue +3 -3
  53. package/components/ui/calendar/CalendarCell.vue +4 -4
  54. package/components/ui/calendar/CalendarCellTrigger.vue +5 -5
  55. package/components/ui/calendar/CalendarGrid.vue +3 -3
  56. package/components/ui/calendar/CalendarGridBody.vue +1 -1
  57. package/components/ui/calendar/CalendarGridHead.vue +1 -1
  58. package/components/ui/calendar/CalendarGridRow.vue +3 -3
  59. package/components/ui/calendar/CalendarHeadCell.vue +3 -3
  60. package/components/ui/calendar/CalendarHeader.vue +3 -3
  61. package/components/ui/calendar/CalendarHeading.vue +7 -3
  62. package/components/ui/calendar/CalendarNextButton.vue +4 -4
  63. package/components/ui/calendar/CalendarPrevButton.vue +4 -4
  64. package/components/ui/card/Card.vue +1 -1
  65. package/components/ui/card/CardContent.vue +1 -1
  66. package/components/ui/card/CardDescription.vue +1 -1
  67. package/components/ui/card/CardFooter.vue +1 -1
  68. package/components/ui/card/CardHeader.vue +1 -1
  69. package/components/ui/card/CardTitle.vue +1 -1
  70. package/components/ui/card/index.ts +3 -3
  71. package/components/ui/carousel/Carousel.vue +15 -7
  72. package/components/ui/carousel/CarouselContent.vue +2 -2
  73. package/components/ui/carousel/CarouselItem.vue +2 -2
  74. package/components/ui/carousel/CarouselNext.vue +4 -3
  75. package/components/ui/carousel/CarouselPrevious.vue +4 -3
  76. package/components/ui/carousel/index.ts +5 -5
  77. package/components/ui/carousel/interface.ts +14 -8
  78. package/components/ui/carousel/useCarousel.ts +5 -8
  79. package/components/ui/chart/ChartCrosshair.vue +2 -2
  80. package/components/ui/chart/ChartLegend.vue +3 -3
  81. package/components/ui/chart/ChartSingleTooltip.vue +6 -7
  82. package/components/ui/chart/ChartTooltip.vue +1 -1
  83. package/components/ui/chart/index.ts +6 -6
  84. package/components/ui/chart-area/AreaChart.vue +10 -7
  85. package/components/ui/chart-bar/BarChart.vue +5 -5
  86. package/components/ui/chart-donut/DonutChart.vue +6 -6
  87. package/components/ui/chart-line/LineChart.vue +5 -5
  88. package/components/ui/checkbox/Checkbox.vue +4 -4
  89. package/components/ui/collapsible/Collapsible.vue +2 -2
  90. package/components/ui/collapsible/CollapsibleContent.vue +1 -1
  91. package/components/ui/collapsible/CollapsibleTrigger.vue +1 -1
  92. package/components/ui/collapsible/index.ts +1 -1
  93. package/components/ui/combobox/Combobox.vue +14 -0
  94. package/components/ui/combobox/ComboboxAnchor.vue +25 -0
  95. package/components/ui/combobox/ComboboxEmpty.vue +20 -0
  96. package/components/ui/combobox/ComboboxGroup.vue +29 -0
  97. package/components/ui/combobox/ComboboxInput.vue +28 -0
  98. package/components/ui/combobox/ComboboxItem.vue +26 -0
  99. package/components/ui/combobox/ComboboxList.vue +34 -0
  100. package/components/ui/combobox/ComboboxSeparator.vue +23 -0
  101. package/components/ui/combobox/ComboboxTrigger.vue +26 -0
  102. package/components/ui/combobox/index.ts +10 -0
  103. package/components/ui/command/Command.vue +71 -9
  104. package/components/ui/command/CommandDialog.vue +3 -3
  105. package/components/ui/command/CommandEmpty.vue +12 -7
  106. package/components/ui/command/CommandGroup.vue +26 -9
  107. package/components/ui/command/CommandInput.vue +10 -6
  108. package/components/ui/command/CommandItem.vue +61 -9
  109. package/components/ui/command/CommandList.vue +8 -11
  110. package/components/ui/command/CommandSeparator.vue +7 -7
  111. package/components/ui/command/CommandShortcut.vue +1 -1
  112. package/components/ui/command/index.ts +16 -0
  113. package/components/ui/context-menu/ContextMenu.vue +2 -2
  114. package/components/ui/context-menu/ContextMenuCheckboxItem.vue +4 -4
  115. package/components/ui/context-menu/ContextMenuContent.vue +3 -3
  116. package/components/ui/context-menu/ContextMenuGroup.vue +1 -1
  117. package/components/ui/context-menu/ContextMenuItem.vue +3 -3
  118. package/components/ui/context-menu/ContextMenuLabel.vue +3 -3
  119. package/components/ui/context-menu/ContextMenuPortal.vue +1 -1
  120. package/components/ui/context-menu/ContextMenuRadioGroup.vue +1 -1
  121. package/components/ui/context-menu/ContextMenuRadioItem.vue +4 -4
  122. package/components/ui/context-menu/ContextMenuSeparator.vue +3 -3
  123. package/components/ui/context-menu/ContextMenuShortcut.vue +1 -1
  124. package/components/ui/context-menu/ContextMenuSub.vue +1 -1
  125. package/components/ui/context-menu/ContextMenuSubContent.vue +3 -3
  126. package/components/ui/context-menu/ContextMenuSubTrigger.vue +4 -4
  127. package/components/ui/context-menu/ContextMenuTrigger.vue +1 -1
  128. package/components/ui/context-menu/index.ts +6 -6
  129. package/components/ui/dialog/Dialog.vue +1 -1
  130. package/components/ui/dialog/DialogClose.vue +1 -1
  131. package/components/ui/dialog/DialogContent.vue +5 -5
  132. package/components/ui/dialog/DialogDescription.vue +3 -3
  133. package/components/ui/dialog/DialogFooter.vue +1 -1
  134. package/components/ui/dialog/DialogHeader.vue +1 -1
  135. package/components/ui/dialog/DialogScrollContent.vue +5 -5
  136. package/components/ui/dialog/DialogTitle.vue +3 -3
  137. package/components/ui/dialog/DialogTrigger.vue +1 -1
  138. package/components/ui/dialog/index.ts +5 -5
  139. package/components/ui/drawer/Drawer.vue +1 -1
  140. package/components/ui/drawer/DrawerContent.vue +4 -4
  141. package/components/ui/drawer/DrawerDescription.vue +2 -2
  142. package/components/ui/drawer/DrawerFooter.vue +1 -1
  143. package/components/ui/drawer/DrawerHeader.vue +1 -1
  144. package/components/ui/drawer/DrawerOverlay.vue +3 -3
  145. package/components/ui/drawer/DrawerTitle.vue +2 -2
  146. package/components/ui/drawer/index.ts +4 -4
  147. package/components/ui/dropdown-menu/DropdownMenu.vue +1 -1
  148. package/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +4 -4
  149. package/components/ui/dropdown-menu/DropdownMenuContent.vue +3 -3
  150. package/components/ui/dropdown-menu/DropdownMenuGroup.vue +1 -1
  151. package/components/ui/dropdown-menu/DropdownMenuItem.vue +4 -4
  152. package/components/ui/dropdown-menu/DropdownMenuLabel.vue +3 -3
  153. package/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +1 -1
  154. package/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +4 -4
  155. package/components/ui/dropdown-menu/DropdownMenuSeparator.vue +3 -3
  156. package/components/ui/dropdown-menu/DropdownMenuShortcut.vue +1 -1
  157. package/components/ui/dropdown-menu/DropdownMenuSub.vue +1 -1
  158. package/components/ui/dropdown-menu/DropdownMenuSubContent.vue +3 -3
  159. package/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +4 -4
  160. package/components/ui/dropdown-menu/DropdownMenuTrigger.vue +1 -1
  161. package/components/ui/dropdown-menu/index.ts +8 -8
  162. package/components/ui/form/FormControl.vue +1 -1
  163. package/components/ui/form/FormDescription.vue +1 -1
  164. package/components/ui/form/FormItem.vue +2 -2
  165. package/components/ui/form/FormLabel.vue +3 -3
  166. package/components/ui/form/index.ts +3 -3
  167. package/components/ui/form/useFormField.ts +7 -7
  168. package/components/ui/hover-card/HoverCard.vue +1 -1
  169. package/components/ui/hover-card/HoverCardContent.vue +3 -3
  170. package/components/ui/hover-card/HoverCardTrigger.vue +1 -1
  171. package/components/ui/hover-card/index.ts +1 -1
  172. package/components/ui/input/Input.vue +1 -1
  173. package/components/ui/label/Label.vue +3 -3
  174. package/components/ui/menubar/Menubar.vue +3 -3
  175. package/components/ui/menubar/MenubarCheckboxItem.vue +4 -4
  176. package/components/ui/menubar/MenubarContent.vue +3 -3
  177. package/components/ui/menubar/MenubarGroup.vue +1 -1
  178. package/components/ui/menubar/MenubarItem.vue +3 -3
  179. package/components/ui/menubar/MenubarLabel.vue +2 -2
  180. package/components/ui/menubar/MenubarMenu.vue +1 -1
  181. package/components/ui/menubar/MenubarRadioGroup.vue +1 -1
  182. package/components/ui/menubar/MenubarRadioItem.vue +4 -4
  183. package/components/ui/menubar/MenubarSeparator.vue +3 -3
  184. package/components/ui/menubar/MenubarShortcut.vue +1 -1
  185. package/components/ui/menubar/MenubarSub.vue +1 -1
  186. package/components/ui/menubar/MenubarSubContent.vue +3 -3
  187. package/components/ui/menubar/MenubarSubTrigger.vue +3 -3
  188. package/components/ui/menubar/MenubarTrigger.vue +3 -3
  189. package/components/ui/menubar/index.ts +4 -4
  190. package/components/ui/navigation-menu/NavigationMenu.vue +3 -3
  191. package/components/ui/navigation-menu/NavigationMenuContent.vue +3 -3
  192. package/components/ui/navigation-menu/NavigationMenuIndicator.vue +3 -3
  193. package/components/ui/navigation-menu/NavigationMenuItem.vue +1 -1
  194. package/components/ui/navigation-menu/NavigationMenuLink.vue +1 -1
  195. package/components/ui/navigation-menu/NavigationMenuList.vue +3 -3
  196. package/components/ui/navigation-menu/NavigationMenuTrigger.vue +4 -4
  197. package/components/ui/navigation-menu/NavigationMenuViewport.vue +4 -4
  198. package/components/ui/navigation-menu/index.ts +5 -3
  199. package/components/ui/number-field/NumberField.vue +4 -4
  200. package/components/ui/number-field/NumberFieldContent.vue +2 -2
  201. package/components/ui/number-field/NumberFieldDecrement.vue +5 -5
  202. package/components/ui/number-field/NumberFieldIncrement.vue +5 -5
  203. package/components/ui/number-field/NumberFieldInput.vue +11 -3
  204. package/components/ui/number-field/index.ts +3 -3
  205. package/components/ui/pagination/PaginationEllipsis.vue +3 -3
  206. package/components/ui/pagination/PaginationFirst.vue +5 -5
  207. package/components/ui/pagination/PaginationLast.vue +5 -5
  208. package/components/ui/pagination/PaginationNext.vue +5 -5
  209. package/components/ui/pagination/PaginationPrev.vue +5 -5
  210. package/components/ui/pagination/index.ts +5 -5
  211. package/components/ui/pin-input/PinInput.vue +3 -3
  212. package/components/ui/pin-input/PinInputGroup.vue +3 -3
  213. package/components/ui/pin-input/PinInputInput.vue +3 -3
  214. package/components/ui/pin-input/PinInputSeparator.vue +1 -1
  215. package/components/ui/pin-input/index.ts +1 -1
  216. package/components/ui/popover/Popover.vue +2 -2
  217. package/components/ui/popover/PopoverContent.vue +3 -3
  218. package/components/ui/popover/PopoverTrigger.vue +1 -1
  219. package/components/ui/popover/index.ts +1 -1
  220. package/components/ui/progress/Progress.vue +3 -3
  221. package/components/ui/radio-group/RadioGroup.vue +3 -3
  222. package/components/ui/radio-group/RadioGroupItem.vue +8 -6
  223. package/components/ui/range-calendar/RangeCalendar.vue +3 -3
  224. package/components/ui/range-calendar/RangeCalendarCell.vue +4 -4
  225. package/components/ui/range-calendar/RangeCalendarCellTrigger.vue +5 -5
  226. package/components/ui/range-calendar/RangeCalendarGrid.vue +3 -3
  227. package/components/ui/range-calendar/RangeCalendarGridBody.vue +1 -1
  228. package/components/ui/range-calendar/RangeCalendarGridHead.vue +1 -1
  229. package/components/ui/range-calendar/RangeCalendarGridRow.vue +3 -3
  230. package/components/ui/range-calendar/RangeCalendarHeadCell.vue +4 -4
  231. package/components/ui/range-calendar/RangeCalendarHeader.vue +3 -3
  232. package/components/ui/range-calendar/RangeCalendarHeading.vue +7 -3
  233. package/components/ui/range-calendar/RangeCalendarNextButton.vue +4 -4
  234. package/components/ui/range-calendar/RangeCalendarPrevButton.vue +4 -4
  235. package/components/ui/resizable/ResizableHandle.vue +3 -3
  236. package/components/ui/resizable/ResizablePanelGroup.vue +3 -3
  237. package/components/ui/resizable/index.ts +2 -2
  238. package/components/ui/scroll-area/ScrollArea.vue +3 -3
  239. package/components/ui/scroll-area/ScrollBar.vue +3 -3
  240. package/components/ui/select/Select.vue +2 -2
  241. package/components/ui/select/SelectContent.vue +4 -4
  242. package/components/ui/select/SelectGroup.vue +3 -3
  243. package/components/ui/select/SelectItem.vue +4 -4
  244. package/components/ui/select/SelectItemText.vue +1 -1
  245. package/components/ui/select/SelectLabel.vue +2 -2
  246. package/components/ui/select/SelectScrollDownButton.vue +3 -3
  247. package/components/ui/select/SelectScrollUpButton.vue +3 -3
  248. package/components/ui/select/SelectSeparator.vue +3 -3
  249. package/components/ui/select/SelectTrigger.vue +5 -5
  250. package/components/ui/select/SelectValue.vue +1 -1
  251. package/components/ui/select/index.ts +4 -4
  252. package/components/ui/separator/Separator.vue +21 -6
  253. package/components/ui/sheet/Sheet.vue +1 -1
  254. package/components/ui/sheet/SheetClose.vue +1 -1
  255. package/components/ui/sheet/SheetContent.vue +5 -5
  256. package/components/ui/sheet/SheetDescription.vue +3 -3
  257. package/components/ui/sheet/SheetFooter.vue +1 -1
  258. package/components/ui/sheet/SheetHeader.vue +1 -1
  259. package/components/ui/sheet/SheetTitle.vue +3 -3
  260. package/components/ui/sheet/SheetTrigger.vue +1 -1
  261. package/components/ui/sheet/index.ts +4 -4
  262. package/components/ui/sidebar/Sidebar.vue +8 -8
  263. package/components/ui/sidebar/SidebarContent.vue +1 -1
  264. package/components/ui/sidebar/SidebarFooter.vue +1 -1
  265. package/components/ui/sidebar/SidebarGroup.vue +1 -1
  266. package/components/ui/sidebar/SidebarGroupAction.vue +3 -4
  267. package/components/ui/sidebar/SidebarGroupContent.vue +1 -1
  268. package/components/ui/sidebar/SidebarGroupLabel.vue +3 -3
  269. package/components/ui/sidebar/SidebarHeader.vue +1 -1
  270. package/components/ui/sidebar/SidebarInput.vue +2 -2
  271. package/components/ui/sidebar/SidebarInset.vue +1 -1
  272. package/components/ui/sidebar/SidebarMenu.vue +1 -1
  273. package/components/ui/sidebar/SidebarMenuAction.vue +2 -3
  274. package/components/ui/sidebar/SidebarMenuBadge.vue +1 -1
  275. package/components/ui/sidebar/SidebarMenuButton.vue +1 -1
  276. package/components/ui/sidebar/SidebarMenuButtonChild.vue +2 -2
  277. package/components/ui/sidebar/SidebarMenuItem.vue +1 -1
  278. package/components/ui/sidebar/SidebarMenuSkeleton.vue +2 -2
  279. package/components/ui/sidebar/SidebarMenuSub.vue +1 -1
  280. package/components/ui/sidebar/SidebarMenuSubButton.vue +3 -3
  281. package/components/ui/sidebar/SidebarProvider.vue +2 -2
  282. package/components/ui/sidebar/SidebarRail.vue +1 -1
  283. package/components/ui/sidebar/SidebarSeparator.vue +2 -2
  284. package/components/ui/sidebar/SidebarTrigger.vue +2 -2
  285. package/components/ui/sidebar/utils.ts +1 -1
  286. package/components/ui/skeleton/Skeleton.vue +1 -1
  287. package/components/ui/slider/Slider.vue +7 -7
  288. package/components/ui/stepper/Stepper.vue +31 -0
  289. package/components/ui/stepper/StepperDescription.vue +23 -0
  290. package/components/ui/stepper/StepperIndicator.vue +35 -0
  291. package/components/ui/stepper/StepperItem.vue +27 -0
  292. package/components/ui/stepper/StepperSeparator.vue +31 -0
  293. package/components/ui/stepper/StepperTitle.vue +23 -0
  294. package/components/ui/stepper/StepperTrigger.vue +26 -0
  295. package/components/ui/stepper/index.ts +7 -0
  296. package/components/ui/switch/Switch.vue +7 -5
  297. package/components/ui/table/Table.vue +1 -1
  298. package/components/ui/table/TableBody.vue +1 -1
  299. package/components/ui/table/TableCaption.vue +1 -1
  300. package/components/ui/table/TableCell.vue +1 -1
  301. package/components/ui/table/TableEmpty.vue +3 -3
  302. package/components/ui/table/TableFooter.vue +1 -1
  303. package/components/ui/table/TableHead.vue +1 -1
  304. package/components/ui/table/TableHeader.vue +1 -1
  305. package/components/ui/table/TableRow.vue +1 -1
  306. package/components/ui/table/index.ts +3 -2
  307. package/components/ui/tabs/Tabs.vue +2 -2
  308. package/components/ui/tabs/TabsContent.vue +3 -3
  309. package/components/ui/tabs/TabsList.vue +4 -4
  310. package/components/ui/tabs/TabsTrigger.vue +6 -4
  311. package/components/ui/tabs/index.ts +2 -2
  312. package/components/ui/tags-input/TagsInput.vue +3 -3
  313. package/components/ui/tags-input/TagsInputInput.vue +3 -3
  314. package/components/ui/tags-input/TagsInputItem.vue +3 -3
  315. package/components/ui/tags-input/TagsInputItemDelete.vue +3 -3
  316. package/components/ui/tags-input/TagsInputItemText.vue +3 -3
  317. package/components/ui/textarea/Textarea.vue +1 -1
  318. package/components/ui/toast/Toast.vue +2 -2
  319. package/components/ui/toast/ToastAction.vue +3 -3
  320. package/components/ui/toast/ToastClose.vue +3 -3
  321. package/components/ui/toast/ToastDescription.vue +3 -3
  322. package/components/ui/toast/ToastProvider.vue +1 -1
  323. package/components/ui/toast/ToastTitle.vue +3 -3
  324. package/components/ui/toast/ToastViewport.vue +3 -3
  325. package/components/ui/toast/Toaster.vue +1 -1
  326. package/components/ui/toast/index.ts +6 -6
  327. package/components/ui/toast/use-toast.ts +1 -1
  328. package/components/ui/toggle/Toggle.vue +3 -3
  329. package/components/ui/toggle/index.ts +5 -5
  330. package/components/ui/toggle-group/ToggleGroup.vue +4 -4
  331. package/components/ui/toggle-group/ToggleGroupItem.vue +4 -4
  332. package/components/ui/tooltip/Tooltip.vue +1 -1
  333. package/components/ui/tooltip/TooltipContent.vue +3 -3
  334. package/components/ui/tooltip/TooltipProvider.vue +1 -1
  335. package/components/ui/tooltip/TooltipTrigger.vue +1 -1
  336. package/components/ui/tooltip/index.ts +1 -1
  337. package/components.json +10 -7
  338. package/lib/utils.ts +9 -0
  339. package/middleware/auth.ts +7 -2
  340. package/nuxt.config.ts +1 -1
  341. package/package.json +13 -13
  342. package/components/ui/accordion/index.js +0 -4
  343. package/components/ui/alert/index.js +0 -21
  344. package/components/ui/button/index.js +0 -33
  345. package/components/ui/card/index.js +0 -6
  346. package/components/ui/command/index.js +0 -9
  347. package/components/ui/dialog/index.js +0 -9
  348. package/components/ui/form/index.js +0 -7
  349. package/components/ui/form/injectionKeys.js +0 -1
  350. package/components/ui/form/useFormField.js +0 -36
  351. package/components/ui/input/index.js +0 -1
  352. package/components/ui/label/index.js +0 -1
  353. package/components/ui/popover/index.js +0 -3
  354. package/components/ui/progress/index.js +0 -1
  355. package/components/ui/separator/index.js +0 -1
  356. package/components/ui/v-calendar/Calendar.vue +0 -331
  357. package/components/ui/v-calendar/index.ts +0 -22
@@ -1,9 +1,9 @@
1
1
  <script setup lang="ts">
2
+ import type { WithClassAsProps } from './interface'
3
+ import { cn } from '~/lib/utils'
4
+ import { Button } from '~/components/ui/button'
2
5
  import { ArrowLeft } from 'lucide-vue-next'
3
6
  import { useCarousel } from './useCarousel'
4
- import type { WithClassAsProps } from './interface'
5
- import { cn } from '@/lib/utils'
6
- import { Button } from '@/components/ui/button'
7
7
 
8
8
  const props = defineProps<WithClassAsProps>()
9
9
 
@@ -25,6 +25,7 @@ const { orientation, canScrollPrev, scrollPrev } = useCarousel()
25
25
  >
26
26
  <slot>
27
27
  <ArrowLeft class="h-4 w-4 text-current" />
28
+ <span class="sr-only">Previous Slide</span>
28
29
  </slot>
29
30
  </Button>
30
31
  </template>
@@ -1,10 +1,10 @@
1
1
  export { default as Carousel } from './Carousel.vue'
2
2
  export { default as CarouselContent } from './CarouselContent.vue'
3
3
  export { default as CarouselItem } from './CarouselItem.vue'
4
- export { default as CarouselPrevious } from './CarouselPrevious.vue'
5
4
  export { default as CarouselNext } from './CarouselNext.vue'
6
- export { useCarousel } from './useCarousel'
7
-
5
+ export { default as CarouselPrevious } from './CarouselPrevious.vue'
8
6
  export type {
9
- EmblaCarouselType as CarouselApi,
10
- } from 'embla-carousel'
7
+ UnwrapRefCarouselApi as CarouselApi,
8
+ } from './interface'
9
+
10
+ export { useCarousel } from './useCarousel'
@@ -1,18 +1,24 @@
1
+ import type useEmblaCarousel from 'embla-carousel-vue'
1
2
  import type {
2
- EmblaCarouselType as CarouselApi,
3
- EmblaOptionsType as CarouselOptions,
4
- EmblaPluginType as CarouselPlugin,
5
- } from 'embla-carousel'
6
- import type { HTMLAttributes, Ref } from 'vue'
3
+ EmblaCarouselVueType,
4
+ } from 'embla-carousel-vue'
5
+ import type { HTMLAttributes, UnwrapRef } from 'vue'
6
+
7
+ type CarouselApi = EmblaCarouselVueType[1]
8
+ type UseCarouselParameters = Parameters<typeof useEmblaCarousel>
9
+ type CarouselOptions = UseCarouselParameters[0]
10
+ type CarouselPlugin = UseCarouselParameters[1]
11
+
12
+ export type UnwrapRefCarouselApi = UnwrapRef<CarouselApi>
7
13
 
8
14
  export interface CarouselProps {
9
- opts?: CarouselOptions | Ref<CarouselOptions>
10
- plugins?: CarouselPlugin[] | Ref<CarouselPlugin[]>
15
+ opts?: CarouselOptions
16
+ plugins?: CarouselPlugin
11
17
  orientation?: 'horizontal' | 'vertical'
12
18
  }
13
19
 
14
20
  export interface CarouselEmits {
15
- (e: 'init-api', payload: CarouselApi): void
21
+ (e: 'init-api', payload: UnwrapRefCarouselApi): void
16
22
  }
17
23
 
18
24
  export interface WithClassAsProps {
@@ -1,10 +1,7 @@
1
+ import type { UnwrapRefCarouselApi as CarouselApi, CarouselEmits, CarouselProps } from './interface'
1
2
  import { createInjectionState } from '@vueuse/core'
2
3
  import emblaCarouselVue from 'embla-carousel-vue'
3
4
  import { onMounted, ref } from 'vue'
4
- import type {
5
- EmblaCarouselType as CarouselApi,
6
- } from 'embla-carousel'
7
- import type { CarouselEmits, CarouselProps } from './interface'
8
5
 
9
6
  const [useProvideCarousel, useInjectCarousel] = createInjectionState(
10
7
  ({
@@ -24,12 +21,12 @@ const [useProvideCarousel, useInjectCarousel] = createInjectionState(
24
21
  emblaApi.value?.scrollNext()
25
22
  }
26
23
 
27
- const canScrollNext = ref(true)
28
- const canScrollPrev = ref(true)
24
+ const canScrollNext = ref(false)
25
+ const canScrollPrev = ref(false)
29
26
 
30
27
  function onSelect(api: CarouselApi) {
31
- canScrollNext.value = api.canScrollNext()
32
- canScrollPrev.value = api.canScrollPrev()
28
+ canScrollNext.value = api?.canScrollNext() || false
29
+ canScrollPrev.value = api?.canScrollPrev() || false
33
30
  }
34
31
 
35
32
  onMounted(() => {
@@ -1,7 +1,7 @@
1
1
  <script setup lang="ts">
2
- import { VisCrosshair, VisTooltip } from '@unovis/vue'
3
2
  import type { BulletLegendItemInterface } from '@unovis/ts'
4
3
  import { omit } from '@unovis/ts'
4
+ import { VisCrosshair, VisTooltip } from '@unovis/vue'
5
5
  import { type Component, createApp } from 'vue'
6
6
  import { ChartTooltip } from '.'
7
7
 
@@ -34,7 +34,7 @@ function template(d: any) {
34
34
  }
35
35
 
36
36
  function color(d: unknown, i: number) {
37
- return props.colors[i] ?? 'transparent'
37
+ return props.colors[i] ?? 'transparent';
38
38
  }
39
39
  </script>
40
40
 
@@ -1,9 +1,9 @@
1
1
  <script setup lang="ts">
2
- import { VisBulletLegend } from '@unovis/vue'
3
2
  import type { BulletLegendItemInterface } from '@unovis/ts'
3
+ import { buttonVariants } from '~/components/ui/button'
4
4
  import { BulletLegend } from '@unovis/ts'
5
+ import { VisBulletLegend } from '@unovis/vue'
5
6
  import { nextTick, onMounted, ref } from 'vue'
6
- import { buttonVariants } from '@/components/ui/button'
7
7
 
8
8
  const props = withDefaults(defineProps<{ items: BulletLegendItemInterface[] }>(), {
9
9
  items: () => [],
@@ -20,7 +20,7 @@ onMounted(() => {
20
20
  const selector = `.${BulletLegend.selectors.item}`
21
21
  nextTick(() => {
22
22
  const elements = elRef.value?.querySelectorAll(selector)
23
- const classes = buttonVariants({ variant: 'ghost', size: 'xs' }).split(' ')
23
+ const classes = buttonVariants({ variant: 'ghost', size: 'sm' }).split(' ')
24
24
  elements?.forEach(el => el.classList.add(...classes, '!inline-flex', '!mr-2'))
25
25
  })
26
26
  })
@@ -1,23 +1,22 @@
1
1
  <script setup lang="ts">
2
- import { VisTooltip } from '@unovis/vue'
3
2
  import type { BulletLegendItemInterface } from '@unovis/ts'
4
3
  import { omit } from '@unovis/ts'
4
+ import { VisTooltip } from '@unovis/vue'
5
5
  import { type Component, createApp } from 'vue'
6
6
  import { ChartTooltip } from '.'
7
7
 
8
- const props = withDefaults(defineProps<{
8
+ const props = defineProps<{
9
9
  selector: string
10
10
  index: string
11
11
  items?: BulletLegendItemInterface[]
12
12
  valueFormatter?: (tick: number, i?: number, ticks?: number[]) => string
13
13
  customTooltip?: Component
14
- }>(), {
15
- valueFormatter: (tick: number) => `${tick}`,
16
- })
14
+ }>()
17
15
 
18
16
  // Use weakmap to store reference to each datapoint for Tooltip
19
17
  const wm = new WeakMap()
20
18
  function template(d: any, i: number, elements: (HTMLElement | SVGElement)[]) {
19
+ const valueFormatter = props.valueFormatter ?? ((tick: number) => `${tick}`)
21
20
  if (props.index in d) {
22
21
  if (wm.has(d)) {
23
22
  return wm.get(d)
@@ -26,7 +25,7 @@ function template(d: any, i: number, elements: (HTMLElement | SVGElement)[]) {
26
25
  const componentDiv = document.createElement('div')
27
26
  const omittedData = Object.entries(omit(d, [props.index])).map(([key, value]) => {
28
27
  const legendReference = props.items?.find(i => i.name === key)
29
- return { ...legendReference, value: props.valueFormatter(value) }
28
+ return { ...legendReference, value: valueFormatter(value) }
30
29
  })
31
30
  const TooltipComponent = props.customTooltip ?? ChartTooltip
32
31
  createApp(TooltipComponent, { title: d[props.index], data: omittedData }).mount(componentDiv)
@@ -43,7 +42,7 @@ function template(d: any, i: number, elements: (HTMLElement | SVGElement)[]) {
43
42
  }
44
43
  else {
45
44
  const style = getComputedStyle(elements[i])
46
- const omittedData = [{ name: data.name, value: props.valueFormatter(data[props.index]), color: style.fill }]
45
+ const omittedData = [{ name: data.name, value: valueFormatter(data[props.index]), color: style.fill }]
47
46
  const componentDiv = document.createElement('div')
48
47
  const TooltipComponent = props.customTooltip ?? ChartTooltip
49
48
  createApp(TooltipComponent, { title: d[props.index], data: omittedData }).mount(componentDiv)
@@ -1,5 +1,5 @@
1
1
  <script setup lang="ts">
2
- import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'
2
+ import { Card, CardContent, CardHeader, CardTitle } from '~/components/ui/card'
3
3
 
4
4
  defineProps<{
5
5
  title?: string
@@ -1,7 +1,7 @@
1
- export { default as ChartTooltip } from './ChartTooltip.vue'
2
- export { default as ChartSingleTooltip } from './ChartSingleTooltip.vue'
3
- export { default as ChartLegend } from './ChartLegend.vue'
4
1
  export { default as ChartCrosshair } from './ChartCrosshair.vue'
2
+ export { default as ChartLegend } from './ChartLegend.vue'
3
+ export { default as ChartSingleTooltip } from './ChartSingleTooltip.vue'
4
+ export { default as ChartTooltip } from './ChartTooltip.vue'
5
5
 
6
6
  export function defaultColors(count: number = 3) {
7
7
  const quotient = Math.floor(count / 2)
@@ -10,9 +10,9 @@ export function defaultColors(count: number = 3) {
10
10
  const primaryCount = quotient + remainder
11
11
  const secondaryCount = quotient
12
12
  return [
13
- ...Array.from(Array(primaryCount).keys()).map(i => `hsl(var(--vis-primary-color) / ${1 - (1 / primaryCount) * i})`),
14
- ...Array.from(Array(secondaryCount).keys()).map(i => `hsl(var(--vis-secondary-color) / ${1 - (1 / secondaryCount) * i})`),
15
- ]
13
+ ...Array.from(new Array(primaryCount).keys()).map(i => `hsl(var(--vis-primary-color) / ${1 - (1 / primaryCount) * i})`),
14
+ ...Array.from(new Array(secondaryCount).keys()).map(i => `hsl(var(--vis-secondary-color) / ${1 - (1 / secondaryCount) * i})`),
15
+ ];
16
16
  }
17
17
 
18
18
  export * from './interface'
@@ -1,12 +1,13 @@
1
1
  <script setup lang="ts" generic="T extends Record<string, any>">
2
+ import type { BaseChartProps } from '.'
3
+ import { cn } from '~/lib/utils'
4
+ import { ChartCrosshair, ChartLegend, defaultColors } from '~/components/ui/chart'
2
5
  import { type BulletLegendItemInterface, CurveType } from '@unovis/ts'
3
- import { VisArea, VisAxis, VisLine, VisXYContainer } from '@unovis/vue'
4
6
  import { Area, Axis, Line } from '@unovis/ts'
5
- import { type Component, computed, ref } from 'vue'
7
+ import { VisArea, VisAxis, VisLine, VisXYContainer } from '@unovis/vue'
6
8
  import { useMounted } from '@vueuse/core'
7
- import type { BaseChartProps } from '.'
8
- import { ChartCrosshair, ChartLegend, defaultColors } from '@/components/ui/chart'
9
- import { cn } from '@/lib/utils'
9
+ import { useId } from 'reka-ui'
10
+ import { type Component, computed, ref } from 'vue'
10
11
 
11
12
  const props = withDefaults(defineProps<BaseChartProps<T> & {
12
13
  /**
@@ -41,6 +42,8 @@ const emits = defineEmits<{
41
42
  type KeyOfT = Extract<keyof T, string>
42
43
  type Data = typeof props.data[number]
43
44
 
45
+ const chartRef = useId()
46
+
44
47
  const index = computed(() => props.index as KeyOfT)
45
48
  const colors = computed(() => props.colors?.length ? props.colors : defaultColors(props.categories.length))
46
49
 
@@ -64,7 +67,7 @@ function handleLegendItemClick(d: BulletLegendItemInterface, i: number) {
64
67
  <VisXYContainer :style="{ height: isMounted ? '100%' : 'auto' }" :margin="{ left: 20, right: 20 }" :data="data">
65
68
  <svg width="0" height="0">
66
69
  <defs>
67
- <linearGradient v-for="(color, i) in colors" :id="`color-${i}`" :key="i" x1="0" y1="0" x2="0" y2="1">
70
+ <linearGradient v-for="(color, i) in colors" :id="`${chartRef}-color-${i}`" :key="i" x1="0" y1="0" x2="0" y2="1">
68
71
  <template v-if="showGradiant">
69
72
  <stop offset="5%" :stop-color="color" stop-opacity="0.4" />
70
73
  <stop offset="95%" :stop-color="color" stop-opacity="0" />
@@ -86,7 +89,7 @@ function handleLegendItemClick(d: BulletLegendItemInterface, i: number) {
86
89
  :curve-type="curveType"
87
90
  :attributes="{
88
91
  [Area.selectors.area]: {
89
- fill: `url(#color-${i})`,
92
+ fill: `url(#${chartRef}-color-${i})`,
90
93
  },
91
94
  }"
92
95
  :opacity="legendItems.find(item => item.name === category)?.inactive ? filterOpacity : 1"
@@ -1,12 +1,12 @@
1
1
  <script setup lang="ts" generic="T extends Record<string, any>">
2
2
  import type { BulletLegendItemInterface } from '@unovis/ts'
3
- import { VisAxis, VisGroupedBar, VisStackedBar, VisXYContainer } from '@unovis/vue'
3
+ import type { BaseChartProps } from '.'
4
+ import { cn } from '~/lib/utils'
5
+ import { ChartCrosshair, ChartLegend, defaultColors } from '~/components/ui/chart'
4
6
  import { Axis, GroupedBar, StackedBar } from '@unovis/ts'
5
- import { type Component, computed, ref } from 'vue'
7
+ import { VisAxis, VisGroupedBar, VisStackedBar, VisXYContainer } from '@unovis/vue'
6
8
  import { useMounted } from '@vueuse/core'
7
- import type { BaseChartProps } from '.'
8
- import { ChartCrosshair, ChartLegend, defaultColors } from '@/components/ui/chart'
9
- import { cn } from '@/lib/utils'
9
+ import { type Component, computed, ref } from 'vue'
10
10
 
11
11
  const props = withDefaults(defineProps<BaseChartProps<T> & {
12
12
  /**
@@ -1,11 +1,11 @@
1
1
  <script setup lang="ts" generic="T extends Record<string, any>">
2
- import { VisDonut, VisSingleContainer } from '@unovis/vue'
2
+ import type { BaseChartProps } from '.'
3
+ import { cn } from '~/lib/utils'
4
+ import { ChartSingleTooltip, defaultColors } from '~/components/ui/chart'
3
5
  import { Donut } from '@unovis/ts'
4
- import { type Component, computed, ref } from 'vue'
6
+ import { VisDonut, VisSingleContainer } from '@unovis/vue'
5
7
  import { useMounted } from '@vueuse/core'
6
- import type { BaseChartProps } from '.'
7
- import { ChartSingleTooltip, defaultColors } from '@/components/ui/chart'
8
- import { cn } from '@/lib/utils'
8
+ import { type Component, computed, ref } from 'vue'
9
9
 
10
10
  const props = withDefaults(defineProps<Pick<BaseChartProps<T>, 'data' | 'colors' | 'index' | 'margin' | 'showLegend' | 'showTooltip' | 'filterOpacity'> & {
11
11
  /**
@@ -32,7 +32,6 @@ const props = withDefaults(defineProps<Pick<BaseChartProps<T>, 'data' | 'colors'
32
32
  }>(), {
33
33
  margin: () => ({ top: 0, bottom: 0, left: 0, right: 0 }),
34
34
  sortFunction: () => undefined,
35
- valueFormatter: (tick: number) => `${tick}`,
36
35
  type: 'donut',
37
36
  filterOpacity: 0.2,
38
37
  showTooltip: true,
@@ -42,6 +41,7 @@ const props = withDefaults(defineProps<Pick<BaseChartProps<T>, 'data' | 'colors'
42
41
  type KeyOfT = Extract<keyof T, string>
43
42
  type Data = typeof props.data[number]
44
43
 
44
+ const valueFormatter = props.valueFormatter ?? ((tick: number) => `${tick}`)
45
45
  const category = computed(() => props.category as KeyOfT)
46
46
  const index = computed(() => props.index as KeyOfT)
47
47
 
@@ -1,12 +1,12 @@
1
1
  <script setup lang="ts" generic="T extends Record<string, any>">
2
+ import type { BaseChartProps } from '.'
3
+ import { cn } from '~/lib/utils'
4
+ import { ChartCrosshair, ChartLegend, defaultColors } from '~/components/ui/chart'
2
5
  import { type BulletLegendItemInterface, CurveType } from '@unovis/ts'
3
- import { VisAxis, VisLine, VisXYContainer } from '@unovis/vue'
4
6
  import { Axis, Line } from '@unovis/ts'
5
- import { type Component, computed, ref } from 'vue'
7
+ import { VisAxis, VisLine, VisXYContainer } from '@unovis/vue'
6
8
  import { useMounted } from '@vueuse/core'
7
- import type { BaseChartProps } from '.'
8
- import { ChartCrosshair, ChartLegend, defaultColors } from '@/components/ui/chart'
9
- import { cn } from '@/lib/utils'
9
+ import { type Component, computed, ref } from 'vue'
10
10
 
11
11
  const props = withDefaults(defineProps<BaseChartProps<T> & {
12
12
  /**
@@ -1,9 +1,9 @@
1
1
  <script setup lang="ts">
2
- import { type HTMLAttributes, computed } from 'vue'
3
- import type { CheckboxRootEmits, CheckboxRootProps } from 'radix-vue'
4
- import { CheckboxIndicator, CheckboxRoot, useForwardPropsEmits } from 'radix-vue'
2
+ import type { CheckboxRootEmits, CheckboxRootProps } from 'reka-ui'
3
+ import { cn } from '~/lib/utils'
5
4
  import { Check } from 'lucide-vue-next'
6
- import { cn } from '@/lib/utils'
5
+ import { CheckboxIndicator, CheckboxRoot, useForwardPropsEmits } from 'reka-ui'
6
+ import { computed, type HTMLAttributes } from 'vue'
7
7
 
8
8
  const props = defineProps<CheckboxRootProps & { class?: HTMLAttributes['class'] }>()
9
9
  const emits = defineEmits<CheckboxRootEmits>()
@@ -1,6 +1,6 @@
1
1
  <script setup lang="ts">
2
- import { CollapsibleRoot, useForwardPropsEmits } from 'radix-vue'
3
- import type { CollapsibleRootEmits, CollapsibleRootProps } from 'radix-vue'
2
+ import type { CollapsibleRootEmits, CollapsibleRootProps } from 'reka-ui'
3
+ import { CollapsibleRoot, useForwardPropsEmits } from 'reka-ui'
4
4
 
5
5
  const props = defineProps<CollapsibleRootProps>()
6
6
  const emits = defineEmits<CollapsibleRootEmits>()
@@ -1,5 +1,5 @@
1
1
  <script setup lang="ts">
2
- import { CollapsibleContent, type CollapsibleContentProps } from 'radix-vue'
2
+ import { CollapsibleContent, type CollapsibleContentProps } from 'reka-ui'
3
3
 
4
4
  const props = defineProps<CollapsibleContentProps>()
5
5
  </script>
@@ -1,5 +1,5 @@
1
1
  <script setup lang="ts">
2
- import { CollapsibleTrigger, type CollapsibleTriggerProps } from 'radix-vue'
2
+ import { CollapsibleTrigger, type CollapsibleTriggerProps } from 'reka-ui'
3
3
 
4
4
  const props = defineProps<CollapsibleTriggerProps>()
5
5
  </script>
@@ -1,3 +1,3 @@
1
1
  export { default as Collapsible } from './Collapsible.vue'
2
- export { default as CollapsibleTrigger } from './CollapsibleTrigger.vue'
3
2
  export { default as CollapsibleContent } from './CollapsibleContent.vue'
3
+ export { default as CollapsibleTrigger } from './CollapsibleTrigger.vue'
@@ -0,0 +1,14 @@
1
+ <script setup lang="ts">
2
+ import { ComboboxRoot, type ComboboxRootEmits, type ComboboxRootProps, useForwardPropsEmits } from 'reka-ui'
3
+
4
+ const props = defineProps<ComboboxRootProps>()
5
+ const emits = defineEmits<ComboboxRootEmits>()
6
+
7
+ const forwarded = useForwardPropsEmits(props, emits)
8
+ </script>
9
+
10
+ <template>
11
+ <ComboboxRoot v-bind="forwarded">
12
+ <slot />
13
+ </ComboboxRoot>
14
+ </template>
@@ -0,0 +1,25 @@
1
+ <script setup lang="ts">
2
+ import type { ComboboxAnchorProps } from 'reka-ui'
3
+ import { cn } from '~/lib/utils'
4
+ import { ComboboxAnchor, useForwardProps } from 'reka-ui'
5
+ import { computed, type HTMLAttributes } from 'vue'
6
+
7
+ const props = defineProps<ComboboxAnchorProps & { class?: HTMLAttributes['class'] }>()
8
+
9
+ const delegatedProps = computed(() => {
10
+ const { class: _, ...delegated } = props
11
+
12
+ return delegated
13
+ })
14
+
15
+ const forwarded = useForwardProps(delegatedProps)
16
+ </script>
17
+
18
+ <template>
19
+ <ComboboxAnchor
20
+ v-bind="forwarded"
21
+ :class="cn('w-[200px]', props.class)"
22
+ >
23
+ <slot />
24
+ </ComboboxAnchor>
25
+ </template>
@@ -0,0 +1,20 @@
1
+ <script setup lang="ts">
2
+ import type { ComboboxEmptyProps } from 'reka-ui'
3
+ import { cn } from '~/lib/utils'
4
+ import { ComboboxEmpty } from 'reka-ui'
5
+ import { computed, type HTMLAttributes } from 'vue'
6
+
7
+ const props = defineProps<ComboboxEmptyProps & { class?: HTMLAttributes['class'] }>()
8
+
9
+ const delegatedProps = computed(() => {
10
+ const { class: _, ...delegated } = props
11
+
12
+ return delegated
13
+ })
14
+ </script>
15
+
16
+ <template>
17
+ <ComboboxEmpty v-bind="delegatedProps" :class="cn('py-6 text-center text-sm', props.class)">
18
+ <slot />
19
+ </ComboboxEmpty>
20
+ </template>
@@ -0,0 +1,29 @@
1
+ <script setup lang="ts">
2
+ import type { ComboboxGroupProps } from 'reka-ui'
3
+ import { cn } from '~/lib/utils'
4
+ import { ComboboxGroup, ComboboxLabel } from 'reka-ui'
5
+ import { computed, type HTMLAttributes } from 'vue'
6
+
7
+ const props = defineProps<ComboboxGroupProps & {
8
+ class?: HTMLAttributes['class']
9
+ heading?: string
10
+ }>()
11
+
12
+ const delegatedProps = computed(() => {
13
+ const { class: _, ...delegated } = props
14
+
15
+ return delegated
16
+ })
17
+ </script>
18
+
19
+ <template>
20
+ <ComboboxGroup
21
+ v-bind="delegatedProps"
22
+ :class="cn('overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground', props.class)"
23
+ >
24
+ <ComboboxLabel v-if="heading" class="px-2 py-1.5 text-xs font-medium text-muted-foreground">
25
+ {{ heading }}
26
+ </ComboboxLabel>
27
+ <slot />
28
+ </ComboboxGroup>
29
+ </template>
@@ -0,0 +1,28 @@
1
+ <script setup lang="ts">
2
+ import { cn } from '~/lib/utils'
3
+ import { ComboboxInput, type ComboboxInputEmits, type ComboboxInputProps, useForwardPropsEmits } from 'reka-ui'
4
+ import { computed, type HTMLAttributes } from 'vue'
5
+
6
+ const props = defineProps<ComboboxInputProps & {
7
+ class?: HTMLAttributes['class']
8
+ }>()
9
+
10
+ const emits = defineEmits<ComboboxInputEmits>()
11
+
12
+ const delegatedProps = computed(() => {
13
+ const { class: _, ...delegated } = props
14
+
15
+ return delegated
16
+ })
17
+
18
+ const forwarded = useForwardPropsEmits(delegatedProps, emits)
19
+ </script>
20
+
21
+ <template>
22
+ <ComboboxInput
23
+ v-bind="forwarded"
24
+ :class="cn('flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50', props.class)"
25
+ >
26
+ <slot />
27
+ </ComboboxInput>
28
+ </template>
@@ -0,0 +1,26 @@
1
+ <script setup lang="ts">
2
+ import type { ComboboxItemEmits, ComboboxItemProps } from 'reka-ui'
3
+ import { cn } from '~/lib/utils'
4
+ import { ComboboxItem, useForwardPropsEmits } from 'reka-ui'
5
+ import { computed, type HTMLAttributes } from 'vue'
6
+
7
+ const props = defineProps<ComboboxItemProps & { class?: HTMLAttributes['class'] }>()
8
+ const emits = defineEmits<ComboboxItemEmits>()
9
+
10
+ const delegatedProps = computed(() => {
11
+ const { class: _, ...delegated } = props
12
+
13
+ return delegated
14
+ })
15
+
16
+ const forwarded = useForwardPropsEmits(delegatedProps, emits)
17
+ </script>
18
+
19
+ <template>
20
+ <ComboboxItem
21
+ v-bind="forwarded"
22
+ :class="cn('relative flex cursor-default gap-2 select-none justify-between items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0', props.class)"
23
+ >
24
+ <slot />
25
+ </ComboboxItem>
26
+ </template>
@@ -0,0 +1,34 @@
1
+ <script setup lang="ts">
2
+ import type { ComboboxContentEmits, ComboboxContentProps } from 'reka-ui'
3
+ import { cn } from '~/lib/utils'
4
+ import { ComboboxContent, ComboboxPortal, ComboboxViewport, useForwardPropsEmits } from 'reka-ui'
5
+ import { computed, type HTMLAttributes } from 'vue'
6
+
7
+ const props = withDefaults(defineProps<ComboboxContentProps & { class?: HTMLAttributes['class'] }>(), {
8
+ position: 'popper',
9
+ align: 'center',
10
+ sideOffset: 4,
11
+ })
12
+ const emits = defineEmits<ComboboxContentEmits>()
13
+
14
+ const delegatedProps = computed(() => {
15
+ const { class: _, ...delegated } = props
16
+
17
+ return delegated
18
+ })
19
+
20
+ const forwarded = useForwardPropsEmits(delegatedProps, emits)
21
+ </script>
22
+
23
+ <template>
24
+ <ComboboxPortal>
25
+ <ComboboxContent
26
+ v-bind="forwarded"
27
+ :class="cn('z-50 w-[200px] rounded-md border bg-popover text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', props.class)"
28
+ >
29
+ <ComboboxViewport>
30
+ <slot />
31
+ </ComboboxViewport>
32
+ </ComboboxContent>
33
+ </ComboboxPortal>
34
+ </template>
@@ -0,0 +1,23 @@
1
+ <script setup lang="ts">
2
+ import type { ComboboxSeparatorProps } from 'reka-ui'
3
+ import { cn } from '~/lib/utils'
4
+ import { ComboboxSeparator } from 'reka-ui'
5
+ import { computed, type HTMLAttributes } from 'vue'
6
+
7
+ const props = defineProps<ComboboxSeparatorProps & { class?: HTMLAttributes['class'] }>()
8
+
9
+ const delegatedProps = computed(() => {
10
+ const { class: _, ...delegated } = props
11
+
12
+ return delegated
13
+ })
14
+ </script>
15
+
16
+ <template>
17
+ <ComboboxSeparator
18
+ v-bind="delegatedProps"
19
+ :class="cn('-mx-1 h-px bg-border', props.class)"
20
+ >
21
+ <slot />
22
+ </ComboboxSeparator>
23
+ </template>
@@ -0,0 +1,26 @@
1
+ <script setup lang="ts">
2
+ import type { ComboboxTriggerProps } from 'reka-ui'
3
+ import { cn } from '~/lib/utils'
4
+ import { ComboboxTrigger, useForwardProps } from 'reka-ui'
5
+ import { computed, type HTMLAttributes } from 'vue'
6
+
7
+ const props = defineProps<ComboboxTriggerProps & { class?: HTMLAttributes['class'] }>()
8
+
9
+ const delegatedProps = computed(() => {
10
+ const { class: _, ...delegated } = props
11
+
12
+ return delegated
13
+ })
14
+
15
+ const forwarded = useForwardProps(delegatedProps)
16
+ </script>
17
+
18
+ <template>
19
+ <ComboboxTrigger
20
+ v-bind="forwarded"
21
+ :class="cn('', props.class)"
22
+ tabindex="0"
23
+ >
24
+ <slot />
25
+ </ComboboxTrigger>
26
+ </template>
@@ -0,0 +1,10 @@
1
+ export { default as Combobox } from './Combobox.vue'
2
+ export { default as ComboboxAnchor } from './ComboboxAnchor.vue'
3
+ export { default as ComboboxEmpty } from './ComboboxEmpty.vue'
4
+ export { default as ComboboxGroup } from './ComboboxGroup.vue'
5
+ export { default as ComboboxInput } from './ComboboxInput.vue'
6
+ export { default as ComboboxItem } from './ComboboxItem.vue'
7
+ export { default as ComboboxList } from './ComboboxList.vue'
8
+ export { default as ComboboxSeparator } from './ComboboxSeparator.vue'
9
+
10
+ export { ComboboxCancel, ComboboxItemIndicator, ComboboxTrigger } from 'reka-ui'