@iqual/nuxt-icms 1.1.0 → 1.2.1

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 (401) hide show
  1. package/assets/css/ckeditor.css +4 -0
  2. package/assets/css/components/container.css +2 -2
  3. package/assets/css/tailwind.css +1 -1
  4. package/assets/css/typography.css +4 -0
  5. package/assets/symbols/download.svg +3 -0
  6. package/bundles.ts +4 -1
  7. package/components/Blokkli/TextMedia/index.vue +1 -2
  8. package/components/DesignSystem/Atoms/Caption.vue +15 -0
  9. package/components/DesignSystem/Atoms/LinkListItem.vue +21 -0
  10. package/components/DesignSystem/Molecules/MediaSlider.vue +25 -8
  11. package/components/DesignSystem/Organisms/Map.vue +61 -0
  12. package/components/Media/Image/index.vue +4 -162
  13. package/components/Node/Icms/Page/SearchResult/fragment.graphql +8 -0
  14. package/components/Node/Icms/Page/SearchResult/index.vue +12 -0
  15. package/components/Node/Icms/Page/Teaser/fragment.graphql +17 -0
  16. package/components/Node/Icms/Page/Teaser/index.vue +20 -0
  17. package/components/Node/Icms/Page/fragment.graphql +18 -0
  18. package/components/Paragraph/CallToAction/index.vue +12 -8
  19. package/components/Paragraph/Card/Layout/index.vue +2 -2
  20. package/components/Paragraph/Downloads/index.vue +3 -14
  21. package/components/Paragraph/FAQ/Layout/index.vue +23 -1
  22. package/components/Paragraph/FlipTeasers/index.vue +2 -2
  23. package/components/Paragraph/Gallery/index.vue +32 -171
  24. package/components/Paragraph/HeroImage/index.vue +13 -4
  25. package/components/Paragraph/Media/index.vue +7 -2
  26. package/components/Paragraph/Table/index.vue +2 -2
  27. package/components/Paragraph/Team/Layout/index.vue +2 -2
  28. package/components/Paragraph/Teasers/fragment.graphql +2 -15
  29. package/components/Paragraph/Teasers/index.vue +11 -14
  30. package/components/Paragraph/TextMedia/index.vue +40 -33
  31. package/components/Paragraph/Timeline/Element/index.vue +1 -1
  32. package/components/Paragraph/Timeline/Layout/fragment.graphql +1 -0
  33. package/components/Paragraph/Timeline/Layout/index.vue +4 -4
  34. package/components/Paragraph/iFrame/index.vue +1 -1
  35. package/components/Search/Facets/FacetDropdownUI.vue +222 -0
  36. package/components/Search/Facets/FacetedSearchUI.vue +397 -0
  37. package/components/Search/Facets/fragment.graphql +40 -0
  38. package/components/Section/Header/LanguageDropdown.vue +60 -73
  39. package/components/Section/Header/LanguageSwitcher.vue +37 -0
  40. package/components/Section/Header/MetaMenu.vue +10 -1
  41. package/components/Section/Header/index.vue +80 -67
  42. package/components/ui/accordion/Accordion.vue +2 -2
  43. package/components/ui/accordion/AccordionContent.vue +5 -5
  44. package/components/ui/accordion/AccordionItem.vue +9 -10
  45. package/components/ui/accordion/AccordionTrigger.vue +5 -5
  46. package/components/ui/alert/Alert.vue +17 -0
  47. package/components/ui/alert/AlertDescription.vue +14 -0
  48. package/components/ui/alert/AlertTitle.vue +14 -0
  49. package/components/ui/alert/index.ts +24 -0
  50. package/components/ui/alert-dialog/AlertDialog.vue +15 -0
  51. package/components/ui/alert-dialog/AlertDialogAction.vue +22 -0
  52. package/components/ui/alert-dialog/AlertDialogCancel.vue +29 -0
  53. package/components/ui/alert-dialog/AlertDialogContent.vue +43 -0
  54. package/components/ui/alert-dialog/AlertDialogDescription.vue +27 -0
  55. package/components/ui/alert-dialog/AlertDialogFooter.vue +21 -0
  56. package/components/ui/alert-dialog/AlertDialogHeader.vue +16 -0
  57. package/components/ui/alert-dialog/AlertDialogTitle.vue +24 -0
  58. package/components/ui/alert-dialog/AlertDialogTrigger.vue +12 -0
  59. package/components/ui/alert-dialog/index.ts +9 -0
  60. package/components/ui/aspect-ratio/AspectRatio.vue +12 -0
  61. package/components/ui/aspect-ratio/index.ts +1 -0
  62. package/components/ui/auto-form/AutoForm.vue +106 -0
  63. package/components/ui/auto-form/AutoFormField.vue +45 -0
  64. package/components/ui/auto-form/AutoFormFieldArray.vue +110 -0
  65. package/components/ui/auto-form/AutoFormFieldBoolean.vue +41 -0
  66. package/components/ui/auto-form/AutoFormFieldDate.vue +57 -0
  67. package/components/ui/auto-form/AutoFormFieldEnum.vue +49 -0
  68. package/components/ui/auto-form/AutoFormFieldFile.vue +74 -0
  69. package/components/ui/auto-form/AutoFormFieldInput.vue +36 -0
  70. package/components/ui/auto-form/AutoFormFieldNumber.vue +32 -0
  71. package/components/ui/auto-form/AutoFormFieldObject.vue +78 -0
  72. package/components/ui/auto-form/AutoFormLabel.vue +14 -0
  73. package/components/ui/auto-form/constant.ts +40 -0
  74. package/components/ui/auto-form/dependencies.ts +93 -0
  75. package/components/ui/auto-form/index.ts +15 -0
  76. package/components/ui/auto-form/interface.ts +95 -0
  77. package/components/ui/auto-form/utils.ts +188 -0
  78. package/components/ui/avatar/Avatar.vue +22 -0
  79. package/components/ui/avatar/AvatarFallback.vue +12 -0
  80. package/components/ui/avatar/AvatarImage.vue +10 -0
  81. package/components/ui/avatar/index.ts +25 -0
  82. package/components/ui/badge/Badge.vue +17 -0
  83. package/components/ui/badge/index.ts +26 -0
  84. package/components/ui/breadcrumb/Breadcrumb.vue +13 -0
  85. package/components/ui/breadcrumb/BreadcrumbEllipsis.vue +22 -0
  86. package/components/ui/breadcrumb/BreadcrumbItem.vue +16 -0
  87. package/components/ui/breadcrumb/BreadcrumbLink.vue +20 -0
  88. package/components/ui/breadcrumb/BreadcrumbList.vue +16 -0
  89. package/components/ui/breadcrumb/BreadcrumbPage.vue +19 -0
  90. package/components/ui/breadcrumb/BreadcrumbSeparator.vue +21 -0
  91. package/components/ui/breadcrumb/index.ts +7 -0
  92. package/components/ui/button/Button.vue +4 -2
  93. package/components/ui/button/index.ts +9 -9
  94. package/components/ui/calendar/Calendar.vue +62 -0
  95. package/components/ui/calendar/CalendarCell.vue +26 -0
  96. package/components/ui/calendar/CalendarCellTrigger.vue +40 -0
  97. package/components/ui/calendar/CalendarGrid.vue +26 -0
  98. package/components/ui/calendar/CalendarGridBody.vue +12 -0
  99. package/components/ui/calendar/CalendarGridHead.vue +12 -0
  100. package/components/ui/calendar/CalendarGridRow.vue +23 -0
  101. package/components/ui/calendar/CalendarHeadCell.vue +23 -0
  102. package/components/ui/calendar/CalendarHeader.vue +23 -0
  103. package/components/ui/calendar/CalendarHeading.vue +33 -0
  104. package/components/ui/calendar/CalendarNextButton.vue +34 -0
  105. package/components/ui/calendar/CalendarPrevButton.vue +34 -0
  106. package/components/ui/calendar/index.ts +12 -0
  107. package/components/ui/card/Card.vue +21 -0
  108. package/components/ui/card/CardContent.vue +14 -0
  109. package/components/ui/card/CardDescription.vue +14 -0
  110. package/components/ui/card/CardFooter.vue +14 -0
  111. package/components/ui/card/CardHeader.vue +14 -0
  112. package/components/ui/card/CardTitle.vue +18 -0
  113. package/components/ui/card/index.ts +6 -0
  114. package/components/ui/carousel/Carousel.vue +3 -23
  115. package/components/ui/carousel/CarouselContent.vue +1 -2
  116. package/components/ui/carousel/CarouselItem.vue +5 -7
  117. package/components/ui/carousel/CarouselNext.vue +7 -9
  118. package/components/ui/carousel/CarouselPrevious.vue +7 -9
  119. package/components/ui/carousel/index.ts +3 -1
  120. package/components/ui/carousel/interface.ts +3 -1
  121. package/components/ui/carousel/useCarousel.ts +13 -23
  122. package/components/ui/chart/ChartCrosshair.vue +45 -0
  123. package/components/ui/chart/ChartLegend.vue +50 -0
  124. package/components/ui/chart/ChartSingleTooltip.vue +64 -0
  125. package/components/ui/chart/ChartTooltip.vue +40 -0
  126. package/components/ui/chart/index.ts +18 -0
  127. package/components/ui/chart/interface.ts +64 -0
  128. package/components/ui/chart-area/AreaChart.vue +141 -0
  129. package/components/ui/chart-area/index.ts +66 -0
  130. package/components/ui/chart-bar/BarChart.vue +116 -0
  131. package/components/ui/chart-bar/index.ts +66 -0
  132. package/components/ui/chart-donut/DonutChart.vue +101 -0
  133. package/components/ui/chart-donut/index.ts +39 -0
  134. package/components/ui/chart-line/LineChart.vue +107 -0
  135. package/components/ui/chart-line/index.ts +66 -0
  136. package/components/ui/checkbox/Checkbox.vue +1 -1
  137. package/components/ui/collapsible/Collapsible.vue +15 -0
  138. package/components/ui/collapsible/CollapsibleContent.vue +12 -0
  139. package/components/ui/collapsible/CollapsibleTrigger.vue +12 -0
  140. package/components/ui/collapsible/index.ts +3 -0
  141. package/components/ui/command/Command.vue +31 -0
  142. package/components/ui/command/CommandDialog.vue +21 -0
  143. package/components/ui/command/CommandEmpty.vue +21 -0
  144. package/components/ui/command/CommandGroup.vue +30 -0
  145. package/components/ui/command/CommandInput.vue +35 -0
  146. package/components/ui/command/CommandItem.vue +27 -0
  147. package/components/ui/command/CommandList.vue +28 -0
  148. package/components/ui/command/CommandSeparator.vue +24 -0
  149. package/components/ui/command/CommandShortcut.vue +14 -0
  150. package/components/ui/command/index.ts +9 -0
  151. package/components/ui/context-menu/ContextMenu.vue +15 -0
  152. package/components/ui/context-menu/ContextMenuCheckboxItem.vue +41 -0
  153. package/components/ui/context-menu/ContextMenuContent.vue +37 -0
  154. package/components/ui/context-menu/ContextMenuGroup.vue +12 -0
  155. package/components/ui/context-menu/ContextMenuItem.vue +35 -0
  156. package/components/ui/context-menu/ContextMenuLabel.vue +27 -0
  157. package/components/ui/context-menu/ContextMenuPortal.vue +12 -0
  158. package/components/ui/context-menu/ContextMenuRadioGroup.vue +19 -0
  159. package/components/ui/context-menu/ContextMenuRadioItem.vue +41 -0
  160. package/components/ui/context-menu/ContextMenuSeparator.vue +22 -0
  161. package/components/ui/context-menu/ContextMenuShortcut.vue +14 -0
  162. package/components/ui/context-menu/ContextMenuSub.vue +19 -0
  163. package/components/ui/context-menu/ContextMenuSubContent.vue +36 -0
  164. package/components/ui/context-menu/ContextMenuSubTrigger.vue +36 -0
  165. package/components/ui/context-menu/ContextMenuTrigger.vue +14 -0
  166. package/components/ui/context-menu/index.ts +14 -0
  167. package/components/ui/dialog/Dialog.vue +2 -6
  168. package/components/ui/dialog/DialogClose.vue +2 -1
  169. package/components/ui/dialog/DialogContent.vue +10 -12
  170. package/components/ui/dialog/DialogDescription.vue +6 -10
  171. package/components/ui/dialog/DialogScrollContent.vue +15 -21
  172. package/components/ui/dialog/DialogTitle.vue +9 -6
  173. package/components/ui/dialog/DialogTrigger.vue +2 -1
  174. package/components/ui/drawer/Drawer.vue +19 -0
  175. package/components/ui/drawer/DrawerContent.vue +28 -0
  176. package/components/ui/drawer/DrawerDescription.vue +21 -0
  177. package/components/ui/drawer/DrawerFooter.vue +14 -0
  178. package/components/ui/drawer/DrawerHeader.vue +14 -0
  179. package/components/ui/drawer/DrawerOverlay.vue +19 -0
  180. package/components/ui/drawer/DrawerTitle.vue +21 -0
  181. package/components/ui/drawer/index.ts +8 -0
  182. package/components/ui/dropdown-menu/DropdownMenu.vue +15 -0
  183. package/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +41 -0
  184. package/components/ui/dropdown-menu/DropdownMenuContent.vue +39 -0
  185. package/components/ui/dropdown-menu/DropdownMenuGroup.vue +12 -0
  186. package/components/ui/dropdown-menu/DropdownMenuItem.vue +30 -0
  187. package/components/ui/dropdown-menu/DropdownMenuLabel.vue +26 -0
  188. package/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +19 -0
  189. package/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +42 -0
  190. package/components/ui/dropdown-menu/DropdownMenuSeparator.vue +24 -0
  191. package/components/ui/dropdown-menu/DropdownMenuShortcut.vue +14 -0
  192. package/components/ui/dropdown-menu/DropdownMenuSub.vue +19 -0
  193. package/components/ui/dropdown-menu/DropdownMenuSubContent.vue +31 -0
  194. package/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +35 -0
  195. package/components/ui/dropdown-menu/DropdownMenuTrigger.vue +14 -0
  196. package/components/ui/dropdown-menu/index.ts +16 -0
  197. package/components/ui/form/FormControl.vue +16 -0
  198. package/components/ui/form/FormDescription.vue +20 -0
  199. package/components/ui/form/FormItem.vue +20 -0
  200. package/components/ui/form/FormLabel.vue +23 -0
  201. package/components/ui/form/FormMessage.vue +16 -0
  202. package/components/ui/form/index.ts +7 -0
  203. package/components/ui/form/injectionKeys.ts +4 -0
  204. package/components/ui/form/useFormField.ts +30 -0
  205. package/components/ui/hover-card/HoverCard.vue +15 -0
  206. package/components/ui/hover-card/HoverCardContent.vue +43 -0
  207. package/components/ui/hover-card/HoverCardTrigger.vue +12 -0
  208. package/components/ui/hover-card/index.ts +3 -0
  209. package/components/ui/input/Input.vue +1 -1
  210. package/components/ui/menubar/Menubar.vue +36 -0
  211. package/components/ui/menubar/MenubarCheckboxItem.vue +41 -0
  212. package/components/ui/menubar/MenubarContent.vue +45 -0
  213. package/components/ui/menubar/MenubarGroup.vue +12 -0
  214. package/components/ui/menubar/MenubarItem.vue +36 -0
  215. package/components/ui/menubar/MenubarLabel.vue +14 -0
  216. package/components/ui/menubar/MenubarMenu.vue +12 -0
  217. package/components/ui/menubar/MenubarRadioGroup.vue +20 -0
  218. package/components/ui/menubar/MenubarRadioItem.vue +41 -0
  219. package/components/ui/menubar/MenubarSeparator.vue +21 -0
  220. package/components/ui/menubar/MenubarShortcut.vue +14 -0
  221. package/components/ui/menubar/MenubarSub.vue +20 -0
  222. package/components/ui/menubar/MenubarSubContent.vue +40 -0
  223. package/components/ui/menubar/MenubarSubTrigger.vue +32 -0
  224. package/components/ui/menubar/MenubarTrigger.vue +31 -0
  225. package/components/ui/menubar/index.ts +15 -0
  226. package/components/ui/navigation-menu/NavigationMenu.vue +34 -0
  227. package/components/ui/navigation-menu/NavigationMenuContent.vue +35 -0
  228. package/components/ui/navigation-menu/NavigationMenuIndicator.vue +26 -0
  229. package/components/ui/navigation-menu/NavigationMenuItem.vue +12 -0
  230. package/components/ui/navigation-menu/NavigationMenuLink.vue +19 -0
  231. package/components/ui/navigation-menu/NavigationMenuList.vue +31 -0
  232. package/components/ui/navigation-menu/NavigationMenuTrigger.vue +36 -0
  233. package/components/ui/navigation-menu/NavigationMenuViewport.vue +35 -0
  234. package/components/ui/navigation-menu/index.ts +14 -0
  235. package/components/ui/number-field/NumberField.vue +24 -0
  236. package/components/ui/number-field/NumberFieldContent.vue +14 -0
  237. package/components/ui/number-field/NumberFieldDecrement.vue +26 -0
  238. package/components/ui/number-field/NumberFieldIncrement.vue +26 -0
  239. package/components/ui/number-field/NumberFieldInput.vue +16 -0
  240. package/components/ui/number-field/index.ts +5 -0
  241. package/components/ui/pagination/PaginationEllipsis.vue +24 -0
  242. package/components/ui/pagination/PaginationFirst.vue +31 -0
  243. package/components/ui/pagination/PaginationLast.vue +31 -0
  244. package/components/ui/pagination/PaginationNext.vue +31 -0
  245. package/components/ui/pagination/PaginationPrev.vue +31 -0
  246. package/components/ui/pagination/index.ts +10 -0
  247. package/components/ui/pin-input/PinInput.vue +25 -0
  248. package/components/ui/pin-input/PinInputGroup.vue +20 -0
  249. package/components/ui/pin-input/PinInputInput.vue +20 -0
  250. package/components/ui/pin-input/PinInputSeparator.vue +16 -0
  251. package/components/ui/pin-input/index.ts +4 -0
  252. package/components/ui/popover/Popover.vue +15 -0
  253. package/components/ui/popover/PopoverContent.vue +49 -0
  254. package/components/ui/popover/PopoverTrigger.vue +12 -0
  255. package/components/ui/popover/index.ts +3 -0
  256. package/components/ui/progress/Progress.vue +41 -0
  257. package/components/ui/progress/index.ts +1 -0
  258. package/components/ui/radio-group/RadioGroupItem.vue +1 -1
  259. package/components/ui/range-calendar/RangeCalendar.vue +62 -0
  260. package/components/ui/range-calendar/RangeCalendarCell.vue +26 -0
  261. package/components/ui/range-calendar/RangeCalendarCellTrigger.vue +42 -0
  262. package/components/ui/range-calendar/RangeCalendarGrid.vue +26 -0
  263. package/components/ui/range-calendar/RangeCalendarGridBody.vue +12 -0
  264. package/components/ui/range-calendar/RangeCalendarGridHead.vue +12 -0
  265. package/components/ui/range-calendar/RangeCalendarGridRow.vue +23 -0
  266. package/components/ui/range-calendar/RangeCalendarHeadCell.vue +23 -0
  267. package/components/ui/range-calendar/RangeCalendarHeader.vue +23 -0
  268. package/components/ui/range-calendar/RangeCalendarHeading.vue +33 -0
  269. package/components/ui/range-calendar/RangeCalendarNextButton.vue +34 -0
  270. package/components/ui/range-calendar/RangeCalendarPrevButton.vue +34 -0
  271. package/components/ui/range-calendar/index.ts +12 -0
  272. package/components/ui/resizable/ResizableHandle.vue +28 -0
  273. package/components/ui/resizable/ResizablePanelGroup.vue +23 -0
  274. package/components/ui/resizable/index.ts +3 -0
  275. package/components/ui/scroll-area/ScrollArea.vue +31 -0
  276. package/components/ui/scroll-area/ScrollBar.vue +32 -0
  277. package/components/ui/scroll-area/index.ts +2 -0
  278. package/components/ui/select/SelectContent.vue +1 -1
  279. package/components/ui/select/SelectItem.vue +1 -1
  280. package/components/ui/select/SelectSeparator.vue +1 -1
  281. package/components/ui/select/SelectTrigger.vue +1 -1
  282. package/components/ui/separator/Separator.vue +37 -0
  283. package/components/ui/separator/index.ts +1 -0
  284. package/components/ui/sheet/Sheet.vue +15 -0
  285. package/components/ui/sheet/SheetClose.vue +12 -0
  286. package/components/ui/sheet/SheetContent.vue +58 -0
  287. package/components/ui/sheet/SheetDescription.vue +24 -0
  288. package/components/ui/sheet/SheetFooter.vue +19 -0
  289. package/components/ui/sheet/SheetHeader.vue +16 -0
  290. package/components/ui/sheet/SheetTitle.vue +24 -0
  291. package/components/ui/sheet/SheetTrigger.vue +12 -0
  292. package/components/ui/sheet/index.ts +32 -0
  293. package/components/ui/sidebar/Sidebar.vue +85 -0
  294. package/components/ui/sidebar/SidebarContent.vue +17 -0
  295. package/components/ui/sidebar/SidebarFooter.vue +17 -0
  296. package/components/ui/sidebar/SidebarGroup.vue +17 -0
  297. package/components/ui/sidebar/SidebarGroupAction.vue +26 -0
  298. package/components/ui/sidebar/SidebarGroupContent.vue +17 -0
  299. package/components/ui/sidebar/SidebarGroupLabel.vue +24 -0
  300. package/components/ui/sidebar/SidebarHeader.vue +17 -0
  301. package/components/ui/sidebar/SidebarInput.vue +21 -0
  302. package/components/ui/sidebar/SidebarInset.vue +20 -0
  303. package/components/ui/sidebar/SidebarMenu.vue +17 -0
  304. package/components/ui/sidebar/SidebarMenuAction.vue +34 -0
  305. package/components/ui/sidebar/SidebarMenuBadge.vue +25 -0
  306. package/components/ui/sidebar/SidebarMenuButton.vue +51 -0
  307. package/components/ui/sidebar/SidebarMenuButtonChild.vue +35 -0
  308. package/components/ui/sidebar/SidebarMenuItem.vue +17 -0
  309. package/components/ui/sidebar/SidebarMenuSkeleton.vue +34 -0
  310. package/components/ui/sidebar/SidebarMenuSub.vue +21 -0
  311. package/components/ui/sidebar/SidebarMenuSubButton.vue +35 -0
  312. package/components/ui/sidebar/SidebarMenuSubItem.vue +8 -0
  313. package/components/ui/sidebar/SidebarProvider.vue +81 -0
  314. package/components/ui/sidebar/SidebarRail.vue +32 -0
  315. package/components/ui/sidebar/SidebarSeparator.vue +18 -0
  316. package/components/ui/sidebar/SidebarTrigger.vue +26 -0
  317. package/components/ui/sidebar/index.ts +60 -0
  318. package/components/ui/sidebar/utils.ts +19 -0
  319. package/components/ui/skeleton/Skeleton.vue +14 -0
  320. package/components/ui/skeleton/index.ts +1 -0
  321. package/components/ui/slider/Slider.vue +37 -0
  322. package/components/ui/slider/index.ts +1 -0
  323. package/components/ui/sonner/Sonner.vue +23 -0
  324. package/components/ui/sonner/index.ts +1 -0
  325. package/components/ui/stepper/Stepper.vue +32 -0
  326. package/components/ui/stepper/StepperDescription.vue +24 -0
  327. package/components/ui/stepper/StepperIndicator.vue +36 -0
  328. package/components/ui/stepper/StepperItem.vue +28 -0
  329. package/components/ui/stepper/StepperSeparator.vue +32 -0
  330. package/components/ui/stepper/StepperTitle.vue +24 -0
  331. package/components/ui/stepper/StepperTrigger.vue +27 -0
  332. package/components/ui/stepper/index.ts +7 -0
  333. package/components/ui/switch/Switch.vue +40 -0
  334. package/components/ui/switch/index.ts +1 -0
  335. package/components/ui/table/Table.vue +16 -0
  336. package/components/ui/table/TableBody.vue +14 -0
  337. package/components/ui/table/TableCaption.vue +14 -0
  338. package/components/ui/table/TableCell.vue +21 -0
  339. package/components/ui/table/TableEmpty.vue +38 -0
  340. package/components/ui/table/TableFooter.vue +14 -0
  341. package/components/ui/table/TableHead.vue +14 -0
  342. package/components/ui/table/TableHeader.vue +14 -0
  343. package/components/ui/table/TableRow.vue +14 -0
  344. package/components/ui/table/index.ts +9 -0
  345. package/components/ui/tabs/TabsContent.vue +6 -11
  346. package/components/ui/tabs/TabsList.vue +8 -8
  347. package/components/ui/tabs/TabsTrigger.vue +9 -11
  348. package/components/ui/tags-input/TagsInput.vue +24 -0
  349. package/components/ui/tags-input/TagsInputInput.vue +21 -0
  350. package/components/ui/tags-input/TagsInputItem.vue +24 -0
  351. package/components/ui/tags-input/TagsInputItemDelete.vue +26 -0
  352. package/components/ui/tags-input/TagsInputItemText.vue +21 -0
  353. package/components/ui/tags-input/index.ts +5 -0
  354. package/components/ui/textarea/Textarea.vue +1 -1
  355. package/components/ui/toast/Toast.vue +30 -0
  356. package/components/ui/toast/ToastAction.vue +21 -0
  357. package/components/ui/toast/ToastClose.vue +24 -0
  358. package/components/ui/toast/ToastDescription.vue +21 -0
  359. package/components/ui/toast/ToastProvider.vue +12 -0
  360. package/components/ui/toast/ToastTitle.vue +21 -0
  361. package/components/ui/toast/ToastViewport.vue +19 -0
  362. package/components/ui/toast/Toaster.vue +30 -0
  363. package/components/ui/toast/index.ts +39 -0
  364. package/components/ui/toast/use-toast.ts +165 -0
  365. package/components/ui/toggle/Toggle.vue +38 -0
  366. package/components/ui/toggle/index.ts +28 -0
  367. package/components/ui/toggle-group/ToggleGroup.vue +36 -0
  368. package/components/ui/toggle-group/ToggleGroupItem.vue +37 -0
  369. package/components/ui/toggle-group/index.ts +2 -0
  370. package/components/ui/tooltip/Tooltip.vue +15 -0
  371. package/components/ui/tooltip/TooltipContent.vue +33 -0
  372. package/components/ui/tooltip/TooltipProvider.vue +12 -0
  373. package/components/ui/tooltip/TooltipTrigger.vue +12 -0
  374. package/components/ui/tooltip/index.ts +4 -0
  375. package/components/ui/v-calendar/Calendar.vue +343 -0
  376. package/components/ui/v-calendar/index.ts +22 -0
  377. package/composables/useAccordionScroll.ts +1 -1
  378. package/composables/useContentSearch.ts +0 -0
  379. package/composables/useImageSources.ts +208 -0
  380. package/composables/useLightbox.ts +81 -0
  381. package/composables/useMainMenuLinks.ts +1 -1
  382. package/composables/useMessageBus.ts +74 -0
  383. package/composables/useMetaMenuLinks.ts +1 -1
  384. package/composables/useNavigationOffset.ts +1 -1
  385. package/layouts/default.vue +2 -2
  386. package/layouts/error.vue +8 -10
  387. package/modules/dynamicEntityComponentResolver.ts +182 -0
  388. package/modules/dynamicParagraphResolver.ts +1 -1
  389. package/nuxt.config.ts +11 -22
  390. package/package.json +3 -2
  391. package/pages/[...slug]/index.vue +2 -2
  392. package/pages/index.vue +2 -2
  393. package/pages/node/[nid]/index.vue +2 -2
  394. package/queries/query.contentSearch.graphql +17 -0
  395. package/tailwind.config.ts +1 -0
  396. package/types/fslightbox-vue.d.ts +1 -0
  397. package/composables/languageLinks.ts +0 -31
  398. package/modules/dynamicNodeResolver.ts +0 -95
  399. package/pages/search/index.vue +0 -69
  400. package/pages/static-page/example.vue +0 -40
  401. package/queries/fragment.routeQuery.graphql +0 -51
@@ -0,0 +1,19 @@
1
+ <script setup lang="ts">
2
+ import type { ContextMenuSubEmits, ContextMenuSubProps } from 'radix-vue'
3
+ import {
4
+ ContextMenuSub,
5
+
6
+ useForwardPropsEmits,
7
+ } from 'radix-vue'
8
+
9
+ const props = defineProps<ContextMenuSubProps>()
10
+ const emits = defineEmits<ContextMenuSubEmits>()
11
+
12
+ const forwarded = useForwardPropsEmits(props, emits)
13
+ </script>
14
+
15
+ <template>
16
+ <ContextMenuSub v-bind="forwarded">
17
+ <slot />
18
+ </ContextMenuSub>
19
+ </template>
@@ -0,0 +1,36 @@
1
+ <script setup lang="ts">
2
+ import type { DropdownMenuSubContentEmits, DropdownMenuSubContentProps } from 'radix-vue'
3
+ import type { HTMLAttributes } from 'vue'
4
+ import { cn } from '@/lib/utils'
5
+ import {
6
+ ContextMenuSubContent,
7
+
8
+ useForwardPropsEmits,
9
+ } from 'radix-vue'
10
+ import { computed } from 'vue'
11
+
12
+ const props = defineProps<DropdownMenuSubContentProps & { class?: HTMLAttributes['class'] }>()
13
+ const emits = defineEmits<DropdownMenuSubContentEmits>()
14
+
15
+ const delegatedProps = computed(() => {
16
+ const { class: _, ...delegated } = props
17
+
18
+ return delegated
19
+ })
20
+
21
+ const forwarded = useForwardPropsEmits(delegatedProps, emits)
22
+ </script>
23
+
24
+ <template>
25
+ <ContextMenuSubContent
26
+ v-bind="forwarded"
27
+ :class="
28
+ cn(
29
+ 'z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',
30
+ props.class,
31
+ )
32
+ "
33
+ >
34
+ <slot />
35
+ </ContextMenuSubContent>
36
+ </template>
@@ -0,0 +1,36 @@
1
+ <script setup lang="ts">
2
+ import type { ContextMenuSubTriggerProps } from 'radix-vue'
3
+ import type { HTMLAttributes } from 'vue'
4
+ import { cn } from '@/lib/utils'
5
+ import { ChevronRight } from 'lucide-vue-next'
6
+ import {
7
+ ContextMenuSubTrigger,
8
+
9
+ useForwardProps,
10
+ } from 'radix-vue'
11
+ import { computed } from 'vue'
12
+
13
+ const props = defineProps<ContextMenuSubTriggerProps & { class?: HTMLAttributes['class'], inset?: boolean }>()
14
+
15
+ const delegatedProps = computed(() => {
16
+ const { class: _, ...delegated } = props
17
+
18
+ return delegated
19
+ })
20
+
21
+ const forwardedProps = useForwardProps(delegatedProps)
22
+ </script>
23
+
24
+ <template>
25
+ <ContextMenuSubTrigger
26
+ v-bind="forwardedProps"
27
+ :class="cn(
28
+ 'flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',
29
+ inset && 'pl-8',
30
+ props.class,
31
+ )"
32
+ >
33
+ <slot />
34
+ <ChevronRight class="ml-auto h-4 w-4" />
35
+ </ContextMenuSubTrigger>
36
+ </template>
@@ -0,0 +1,14 @@
1
+ <script setup lang="ts">
2
+ import type { ContextMenuTriggerProps } from 'radix-vue'
3
+ import { ContextMenuTrigger, useForwardProps } from 'radix-vue'
4
+
5
+ const props = defineProps<ContextMenuTriggerProps>()
6
+
7
+ const forwardedProps = useForwardProps(props)
8
+ </script>
9
+
10
+ <template>
11
+ <ContextMenuTrigger v-bind="forwardedProps">
12
+ <slot />
13
+ </ContextMenuTrigger>
14
+ </template>
@@ -0,0 +1,14 @@
1
+ export { default as ContextMenu } from './ContextMenu.vue'
2
+ export { default as ContextMenuCheckboxItem } from './ContextMenuCheckboxItem.vue'
3
+ export { default as ContextMenuContent } from './ContextMenuContent.vue'
4
+ export { default as ContextMenuGroup } from './ContextMenuGroup.vue'
5
+ export { default as ContextMenuItem } from './ContextMenuItem.vue'
6
+ export { default as ContextMenuLabel } from './ContextMenuLabel.vue'
7
+ export { default as ContextMenuRadioGroup } from './ContextMenuRadioGroup.vue'
8
+ export { default as ContextMenuRadioItem } from './ContextMenuRadioItem.vue'
9
+ export { default as ContextMenuSeparator } from './ContextMenuSeparator.vue'
10
+ export { default as ContextMenuShortcut } from './ContextMenuShortcut.vue'
11
+ export { default as ContextMenuSub } from './ContextMenuSub.vue'
12
+ export { default as ContextMenuSubContent } from './ContextMenuSubContent.vue'
13
+ export { default as ContextMenuSubTrigger } from './ContextMenuSubTrigger.vue'
14
+ export { default as ContextMenuTrigger } from './ContextMenuTrigger.vue'
@@ -1,10 +1,6 @@
1
1
  <script setup lang="ts">
2
- import {
3
- DialogRoot,
4
- type DialogRootEmits,
5
- type DialogRootProps,
6
- useForwardPropsEmits,
7
- } from 'radix-vue'
2
+ import type { DialogRootEmits, DialogRootProps } from 'radix-vue'
3
+ import { DialogRoot, useForwardPropsEmits } from 'radix-vue'
8
4
 
9
5
  const props = defineProps<DialogRootProps>()
10
6
  const emits = defineEmits<DialogRootEmits>()
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
- import { DialogClose, type DialogCloseProps } from 'radix-vue'
2
+ import type { DialogCloseProps } from 'radix-vue'
3
+ import { DialogClose } from 'radix-vue'
3
4
 
4
5
  const props = defineProps<DialogCloseProps>()
5
6
  </script>
@@ -1,20 +1,19 @@
1
1
  <script setup lang="ts">
2
+ import type { DialogContentEmits, DialogContentProps } from 'radix-vue'
3
+ import type { HTMLAttributes } from 'vue'
2
4
  import { cn } from '@/lib/utils'
3
5
  import { X } from 'lucide-vue-next'
4
6
  import {
5
7
  DialogClose,
6
8
  DialogContent,
7
- type DialogContentEmits,
8
- type DialogContentProps,
9
+
9
10
  DialogOverlay,
10
11
  DialogPortal,
11
12
  useForwardPropsEmits,
12
13
  } from 'radix-vue'
13
- import { computed, type HTMLAttributes } from 'vue'
14
+ import { computed } from 'vue'
14
15
 
15
- const props = defineProps<
16
- DialogContentProps & { class?: HTMLAttributes['class'] }
17
- >()
16
+ const props = defineProps<DialogContentProps & { class?: HTMLAttributes['class'] }>()
18
17
  const emits = defineEmits<DialogContentEmits>()
19
18
 
20
19
  const delegatedProps = computed(() => {
@@ -29,23 +28,22 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits)
29
28
  <template>
30
29
  <DialogPortal>
31
30
  <DialogOverlay
32
- class="fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0"
31
+ class="fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0"
33
32
  />
34
33
  <DialogContent
35
34
  v-bind="forwarded"
36
35
  :class="
37
36
  cn(
38
- 'fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border border-gray-200 bg-white p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg dark:border-gray-800 dark:bg-gray-950',
37
+ 'fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg',
39
38
  props.class,
40
- )
41
- "
39
+ )"
42
40
  >
43
41
  <slot />
44
42
 
45
43
  <DialogClose
46
- class="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-gray-950 focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-gray-100 data-[state=open]:text-gray-500 dark:ring-offset-gray-950 dark:focus:ring-gray-300 dark:data-[state=open]:bg-gray-800 dark:data-[state=open]:text-gray-400"
44
+ class="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground"
47
45
  >
48
- <X class="h-4 w-4" />
46
+ <X class="w-4 h-4" />
49
47
  <span class="sr-only">Close</span>
50
48
  </DialogClose>
51
49
  </DialogContent>
@@ -1,15 +1,11 @@
1
1
  <script setup lang="ts">
2
+ import type { DialogDescriptionProps } from 'radix-vue'
3
+ import type { HTMLAttributes } from 'vue'
2
4
  import { cn } from '@/lib/utils'
3
- import {
4
- DialogDescription,
5
- type DialogDescriptionProps,
6
- useForwardProps,
7
- } from 'radix-vue'
8
- import { computed, type HTMLAttributes } from 'vue'
5
+ import { DialogDescription, useForwardProps } from 'radix-vue'
6
+ import { computed } from 'vue'
9
7
 
10
- const props = defineProps<
11
- DialogDescriptionProps & { class?: HTMLAttributes['class'] }
12
- >()
8
+ const props = defineProps<DialogDescriptionProps & { class?: HTMLAttributes['class'] }>()
13
9
 
14
10
  const delegatedProps = computed(() => {
15
11
  const { class: _, ...delegated } = props
@@ -23,7 +19,7 @@ const forwardedProps = useForwardProps(delegatedProps)
23
19
  <template>
24
20
  <DialogDescription
25
21
  v-bind="forwardedProps"
26
- :class="cn('text-sm text-gray-500 dark:text-gray-400', props.class)"
22
+ :class="cn('text-sm text-muted-foreground', props.class)"
27
23
  >
28
24
  <slot />
29
25
  </DialogDescription>
@@ -1,20 +1,19 @@
1
1
  <script setup lang="ts">
2
+ import type { DialogContentEmits, DialogContentProps } from 'radix-vue'
3
+ import type { HTMLAttributes } from 'vue'
2
4
  import { cn } from '@/lib/utils'
3
5
  import { X } from 'lucide-vue-next'
4
6
  import {
5
7
  DialogClose,
6
8
  DialogContent,
7
- type DialogContentEmits,
8
- type DialogContentProps,
9
+
9
10
  DialogOverlay,
10
11
  DialogPortal,
11
12
  useForwardPropsEmits,
12
13
  } from 'radix-vue'
13
- import { computed, type HTMLAttributes } from 'vue'
14
+ import { computed } from 'vue'
14
15
 
15
- const props = defineProps<
16
- DialogContentProps & { class?: HTMLAttributes['class'] }
17
- >()
16
+ const props = defineProps<DialogContentProps & { class?: HTMLAttributes['class'] }>()
18
17
  const emits = defineEmits<DialogContentEmits>()
19
18
 
20
19
  const delegatedProps = computed(() => {
@@ -29,35 +28,30 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits)
29
28
  <template>
30
29
  <DialogPortal>
31
30
  <DialogOverlay
32
- class="fixed inset-0 z-50 grid place-items-center overflow-y-auto bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0"
31
+ class="fixed inset-0 z-50 grid place-items-center overflow-y-auto bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0"
33
32
  >
34
33
  <DialogContent
35
34
  :class="
36
35
  cn(
37
- 'relative z-50 my-8 grid w-full max-w-lg gap-4 border border-gray-200 bg-white p-6 shadow-lg duration-200 sm:rounded-lg md:w-full dark:border-gray-800 dark:bg-gray-950',
36
+ 'relative z-50 grid w-full max-w-lg my-8 gap-4 border border-border bg-background p-6 shadow-lg duration-200 sm:rounded-lg md:w-full',
38
37
  props.class,
39
38
  )
40
39
  "
41
40
  v-bind="forwarded"
42
- @pointer-down-outside="
43
- (event) => {
44
- const originalEvent = event.detail.originalEvent
45
- const target = originalEvent.target as HTMLElement
46
- if (
47
- originalEvent.offsetX > target.clientWidth ||
48
- originalEvent.offsetY > target.clientHeight
49
- ) {
50
- event.preventDefault()
51
- }
41
+ @pointer-down-outside="(event) => {
42
+ const originalEvent = event.detail.originalEvent;
43
+ const target = originalEvent.target as HTMLElement;
44
+ if (originalEvent.offsetX > target.clientWidth || originalEvent.offsetY > target.clientHeight) {
45
+ event.preventDefault();
52
46
  }
53
- "
47
+ }"
54
48
  >
55
49
  <slot />
56
50
 
57
51
  <DialogClose
58
- class="absolute right-3 top-3 rounded-md p-0.5 transition-colors hover:bg-gray-100 dark:hover:bg-gray-800"
52
+ class="absolute top-3 right-3 p-0.5 transition-colors rounded-md hover:bg-secondary"
59
53
  >
60
- <X class="h-4 w-4" />
54
+ <X class="w-4 h-4" />
61
55
  <span class="sr-only">Close</span>
62
56
  </DialogClose>
63
57
  </DialogContent>
@@ -1,11 +1,11 @@
1
1
  <script setup lang="ts">
2
+ import type { DialogTitleProps } from 'radix-vue'
3
+ import type { HTMLAttributes } from 'vue'
2
4
  import { cn } from '@/lib/utils'
3
- import { DialogTitle, type DialogTitleProps, useForwardProps } from 'radix-vue'
4
- import { computed, type HTMLAttributes } from 'vue'
5
+ import { DialogTitle, useForwardProps } from 'radix-vue'
6
+ import { computed } from 'vue'
5
7
 
6
- const props = defineProps<
7
- DialogTitleProps & { class?: HTMLAttributes['class'] }
8
- >()
8
+ const props = defineProps<DialogTitleProps & { class?: HTMLAttributes['class'] }>()
9
9
 
10
10
  const delegatedProps = computed(() => {
11
11
  const { class: _, ...delegated } = props
@@ -20,7 +20,10 @@ const forwardedProps = useForwardProps(delegatedProps)
20
20
  <DialogTitle
21
21
  v-bind="forwardedProps"
22
22
  :class="
23
- cn('text-lg font-semibold leading-none tracking-tight', props.class)
23
+ cn(
24
+ 'text-lg font-semibold leading-none tracking-tight',
25
+ props.class,
26
+ )
24
27
  "
25
28
  >
26
29
  <slot />
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
- import { DialogTrigger, type DialogTriggerProps } from 'radix-vue'
2
+ import type { DialogTriggerProps } from 'radix-vue'
3
+ import { DialogTrigger } from 'radix-vue'
3
4
 
4
5
  const props = defineProps<DialogTriggerProps>()
5
6
  </script>
@@ -0,0 +1,19 @@
1
+ <script lang="ts" setup>
2
+ import type { DrawerRootEmits, DrawerRootProps } from 'vaul-vue'
3
+ import { useForwardPropsEmits } from 'radix-vue'
4
+ import { DrawerRoot } from 'vaul-vue'
5
+
6
+ const props = withDefaults(defineProps<DrawerRootProps>(), {
7
+ shouldScaleBackground: true,
8
+ })
9
+
10
+ const emits = defineEmits<DrawerRootEmits>()
11
+
12
+ const forwarded = useForwardPropsEmits(props, emits)
13
+ </script>
14
+
15
+ <template>
16
+ <DrawerRoot v-bind="forwarded">
17
+ <slot />
18
+ </DrawerRoot>
19
+ </template>
@@ -0,0 +1,28 @@
1
+ <script lang="ts" setup>
2
+ import type { DialogContentEmits, DialogContentProps } from 'radix-vue'
3
+ import type { HtmlHTMLAttributes } from 'vue'
4
+ import { cn } from '@/lib/utils'
5
+ import { useForwardPropsEmits } from 'radix-vue'
6
+ import { DrawerContent, DrawerPortal } from 'vaul-vue'
7
+ import DrawerOverlay from './DrawerOverlay.vue'
8
+
9
+ const props = defineProps<DialogContentProps & { class?: HtmlHTMLAttributes['class'] }>()
10
+ const emits = defineEmits<DialogContentEmits>()
11
+
12
+ const forwarded = useForwardPropsEmits(props, emits)
13
+ </script>
14
+
15
+ <template>
16
+ <DrawerPortal>
17
+ <DrawerOverlay />
18
+ <DrawerContent
19
+ v-bind="forwarded" :class="cn(
20
+ 'fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background',
21
+ props.class,
22
+ )"
23
+ >
24
+ <div class="mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted" />
25
+ <slot />
26
+ </DrawerContent>
27
+ </DrawerPortal>
28
+ </template>
@@ -0,0 +1,21 @@
1
+ <script lang="ts" setup>
2
+ import type { DrawerDescriptionProps } from 'vaul-vue'
3
+ import type { HtmlHTMLAttributes } from 'vue'
4
+ import { cn } from '@/lib/utils'
5
+ import { DrawerDescription } from 'vaul-vue'
6
+ import { computed } from 'vue'
7
+
8
+ const props = defineProps<DrawerDescriptionProps & { class?: HtmlHTMLAttributes['class'] }>()
9
+
10
+ const delegatedProps = computed(() => {
11
+ const { class: _, ...delegated } = props
12
+
13
+ return delegated
14
+ })
15
+ </script>
16
+
17
+ <template>
18
+ <DrawerDescription v-bind="delegatedProps" :class="cn('text-sm text-muted-foreground', props.class)">
19
+ <slot />
20
+ </DrawerDescription>
21
+ </template>
@@ -0,0 +1,14 @@
1
+ <script lang="ts" setup>
2
+ import type { HtmlHTMLAttributes } from 'vue'
3
+ import { cn } from '@/lib/utils'
4
+
5
+ const props = defineProps<{
6
+ class?: HtmlHTMLAttributes['class']
7
+ }>()
8
+ </script>
9
+
10
+ <template>
11
+ <div :class="cn('mt-auto flex flex-col gap-2 p-4', props.class)">
12
+ <slot />
13
+ </div>
14
+ </template>
@@ -0,0 +1,14 @@
1
+ <script lang="ts" setup>
2
+ import type { HtmlHTMLAttributes } from 'vue'
3
+ import { cn } from '@/lib/utils'
4
+
5
+ const props = defineProps<{
6
+ class?: HtmlHTMLAttributes['class']
7
+ }>()
8
+ </script>
9
+
10
+ <template>
11
+ <div :class="cn('grid gap-1.5 p-4 text-center sm:text-left', props.class)">
12
+ <slot />
13
+ </div>
14
+ </template>
@@ -0,0 +1,19 @@
1
+ <script lang="ts" setup>
2
+ import type { DialogOverlayProps } from 'radix-vue'
3
+ import type { HtmlHTMLAttributes } from 'vue'
4
+ import { cn } from '@/lib/utils'
5
+ import { DrawerOverlay } from 'vaul-vue'
6
+ import { computed } from 'vue'
7
+
8
+ const props = defineProps<DialogOverlayProps & { class?: HtmlHTMLAttributes['class'] }>()
9
+
10
+ const delegatedProps = computed(() => {
11
+ const { class: _, ...delegated } = props
12
+
13
+ return delegated
14
+ })
15
+ </script>
16
+
17
+ <template>
18
+ <DrawerOverlay v-bind="delegatedProps" :class="cn('fixed inset-0 z-50 bg-black/80', props.class)" />
19
+ </template>
@@ -0,0 +1,21 @@
1
+ <script lang="ts" setup>
2
+ import type { DrawerTitleProps } from 'vaul-vue'
3
+ import type { HtmlHTMLAttributes } from 'vue'
4
+ import { cn } from '@/lib/utils'
5
+ import { DrawerTitle } from 'vaul-vue'
6
+ import { computed } from 'vue'
7
+
8
+ const props = defineProps<DrawerTitleProps & { class?: HtmlHTMLAttributes['class'] }>()
9
+
10
+ const delegatedProps = computed(() => {
11
+ const { class: _, ...delegated } = props
12
+
13
+ return delegated
14
+ })
15
+ </script>
16
+
17
+ <template>
18
+ <DrawerTitle v-bind="delegatedProps" :class="cn('text-lg font-semibold leading-none tracking-tight', props.class)">
19
+ <slot />
20
+ </DrawerTitle>
21
+ </template>
@@ -0,0 +1,8 @@
1
+ export { default as Drawer } from './Drawer.vue'
2
+ export { default as DrawerContent } from './DrawerContent.vue'
3
+ export { default as DrawerDescription } from './DrawerDescription.vue'
4
+ export { default as DrawerFooter } from './DrawerFooter.vue'
5
+ export { default as DrawerHeader } from './DrawerHeader.vue'
6
+ export { default as DrawerOverlay } from './DrawerOverlay.vue'
7
+ export { default as DrawerTitle } from './DrawerTitle.vue'
8
+ export { DrawerClose, DrawerPortal, DrawerTrigger } from 'vaul-vue'
@@ -0,0 +1,15 @@
1
+ <script setup lang="ts">
2
+ import type { DropdownMenuRootEmits, DropdownMenuRootProps } from 'radix-vue'
3
+ import { DropdownMenuRoot, useForwardPropsEmits } from 'radix-vue'
4
+
5
+ const props = defineProps<DropdownMenuRootProps>()
6
+ const emits = defineEmits<DropdownMenuRootEmits>()
7
+
8
+ const forwarded = useForwardPropsEmits(props, emits)
9
+ </script>
10
+
11
+ <template>
12
+ <DropdownMenuRoot v-bind="forwarded">
13
+ <slot />
14
+ </DropdownMenuRoot>
15
+ </template>
@@ -0,0 +1,41 @@
1
+ <script setup lang="ts">
2
+ import type { DropdownMenuCheckboxItemEmits, DropdownMenuCheckboxItemProps } from 'radix-vue'
3
+ import type { HTMLAttributes } from 'vue'
4
+ import { cn } from '@/lib/utils'
5
+ import { Check } from 'lucide-vue-next'
6
+ import {
7
+ DropdownMenuCheckboxItem,
8
+
9
+ DropdownMenuItemIndicator,
10
+ useForwardPropsEmits,
11
+ } from 'radix-vue'
12
+ import { computed } from 'vue'
13
+
14
+ const props = defineProps<DropdownMenuCheckboxItemProps & { class?: HTMLAttributes['class'] }>()
15
+ const emits = defineEmits<DropdownMenuCheckboxItemEmits>()
16
+
17
+ const delegatedProps = computed(() => {
18
+ const { class: _, ...delegated } = props
19
+
20
+ return delegated
21
+ })
22
+
23
+ const forwarded = useForwardPropsEmits(delegatedProps, emits)
24
+ </script>
25
+
26
+ <template>
27
+ <DropdownMenuCheckboxItem
28
+ v-bind="forwarded"
29
+ :class=" cn(
30
+ 'relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
31
+ props.class,
32
+ )"
33
+ >
34
+ <span class="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
35
+ <DropdownMenuItemIndicator>
36
+ <Check class="w-4 h-4" />
37
+ </DropdownMenuItemIndicator>
38
+ </span>
39
+ <slot />
40
+ </DropdownMenuCheckboxItem>
41
+ </template>
@@ -0,0 +1,39 @@
1
+ <script setup lang="ts">
2
+ import type { DropdownMenuContentEmits, DropdownMenuContentProps } from 'radix-vue'
3
+ import type { HTMLAttributes } from 'vue'
4
+ import { cn } from '@/lib/utils'
5
+ import {
6
+ DropdownMenuContent,
7
+
8
+ DropdownMenuPortal,
9
+ useForwardPropsEmits,
10
+ } from 'radix-vue'
11
+ import { computed } from 'vue'
12
+
13
+ const props = withDefaults(
14
+ defineProps<DropdownMenuContentProps & { class?: HTMLAttributes['class'] }>(),
15
+ {
16
+ sideOffset: 4,
17
+ },
18
+ )
19
+ const emits = defineEmits<DropdownMenuContentEmits>()
20
+
21
+ const delegatedProps = computed(() => {
22
+ const { class: _, ...delegated } = props
23
+
24
+ return delegated
25
+ })
26
+
27
+ const forwarded = useForwardPropsEmits(delegatedProps, emits)
28
+ </script>
29
+
30
+ <template>
31
+ <DropdownMenuPortal>
32
+ <DropdownMenuContent
33
+ v-bind="forwarded"
34
+ :class="cn('z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', props.class)"
35
+ >
36
+ <slot />
37
+ </DropdownMenuContent>
38
+ </DropdownMenuPortal>
39
+ </template>
@@ -0,0 +1,12 @@
1
+ <script setup lang="ts">
2
+ import type { DropdownMenuGroupProps } from 'radix-vue'
3
+ import { DropdownMenuGroup } from 'radix-vue'
4
+
5
+ const props = defineProps<DropdownMenuGroupProps>()
6
+ </script>
7
+
8
+ <template>
9
+ <DropdownMenuGroup v-bind="props">
10
+ <slot />
11
+ </DropdownMenuGroup>
12
+ </template>
@@ -0,0 +1,30 @@
1
+ <script setup lang="ts">
2
+ import type { DropdownMenuItemProps } from 'radix-vue'
3
+ import type { HTMLAttributes } from 'vue'
4
+ import { cn } from '@/lib/utils'
5
+ import { DropdownMenuItem, useForwardProps } from 'radix-vue'
6
+ import { computed } from 'vue'
7
+
8
+ const props = defineProps<DropdownMenuItemProps & { class?: HTMLAttributes['class'], inset?: boolean }>()
9
+
10
+ const delegatedProps = computed(() => {
11
+ const { class: _, ...delegated } = props
12
+
13
+ return delegated
14
+ })
15
+
16
+ const forwardedProps = useForwardProps(delegatedProps)
17
+ </script>
18
+
19
+ <template>
20
+ <DropdownMenuItem
21
+ v-bind="forwardedProps"
22
+ :class="cn(
23
+ 'relative flex cursor-default select-none items-center rounded-sm gap-2 px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0',
24
+ inset && 'pl-8',
25
+ props.class,
26
+ )"
27
+ >
28
+ <slot />
29
+ </DropdownMenuItem>
30
+ </template>