@edgedev/create-edge-app 1.0.40 → 1.0.42

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 (366) hide show
  1. package/.env.dev +1 -0
  2. package/.vscode/settings.json +1 -1
  3. package/app.vue +72 -21
  4. package/assets/css/tailwind.css +78 -0
  5. package/bin/cli.js +1 -1
  6. package/components/subToolbar.vue +4 -13
  7. package/components/ui/accordion/Accordion.vue +19 -0
  8. package/components/ui/accordion/AccordionContent.vue +24 -0
  9. package/components/ui/accordion/AccordionItem.vue +24 -0
  10. package/components/ui/accordion/AccordionTrigger.vue +39 -0
  11. package/components/ui/accordion/index.js +4 -0
  12. package/components/ui/accordion/index.ts +4 -0
  13. package/components/ui/alert/Alert.vue +16 -0
  14. package/components/ui/alert/AlertDescription.vue +14 -0
  15. package/components/ui/alert/AlertTitle.vue +14 -0
  16. package/components/ui/alert/index.js +21 -0
  17. package/components/ui/alert/index.ts +23 -0
  18. package/components/ui/alert-dialog/AlertDialog.vue +14 -0
  19. package/components/ui/alert-dialog/AlertDialogAction.vue +20 -0
  20. package/components/ui/alert-dialog/AlertDialogCancel.vue +20 -0
  21. package/components/ui/alert-dialog/AlertDialogContent.vue +42 -0
  22. package/components/ui/alert-dialog/AlertDialogDescription.vue +25 -0
  23. package/components/ui/alert-dialog/AlertDialogFooter.vue +21 -0
  24. package/components/ui/alert-dialog/AlertDialogHeader.vue +16 -0
  25. package/components/ui/alert-dialog/AlertDialogTitle.vue +22 -0
  26. package/components/ui/alert-dialog/AlertDialogTrigger.vue +11 -0
  27. package/components/ui/alert-dialog/index.ts +9 -0
  28. package/components/ui/aspect-ratio/AspectRatio.vue +11 -0
  29. package/components/ui/aspect-ratio/index.ts +1 -0
  30. package/components/ui/auto-form/AutoForm.vue +105 -0
  31. package/components/ui/auto-form/AutoFormField.vue +45 -0
  32. package/components/ui/auto-form/AutoFormFieldArray.vue +110 -0
  33. package/components/ui/auto-form/AutoFormFieldBoolean.vue +41 -0
  34. package/components/ui/auto-form/AutoFormFieldDate.vue +57 -0
  35. package/components/ui/auto-form/AutoFormFieldEnum.vue +49 -0
  36. package/components/ui/auto-form/AutoFormFieldFile.vue +74 -0
  37. package/components/ui/auto-form/AutoFormFieldInput.vue +36 -0
  38. package/components/ui/auto-form/AutoFormFieldNumber.vue +32 -0
  39. package/components/ui/auto-form/AutoFormFieldObject.vue +78 -0
  40. package/components/ui/auto-form/AutoFormLabel.vue +14 -0
  41. package/components/ui/auto-form/constant.ts +39 -0
  42. package/components/ui/auto-form/dependencies.ts +92 -0
  43. package/components/ui/auto-form/index.ts +15 -0
  44. package/components/ui/auto-form/interface.ts +81 -0
  45. package/components/ui/auto-form/utils.ts +171 -0
  46. package/components/ui/avatar/Avatar.vue +21 -0
  47. package/components/ui/avatar/AvatarFallback.vue +11 -0
  48. package/components/ui/avatar/AvatarImage.vue +9 -0
  49. package/components/ui/avatar/index.ts +24 -0
  50. package/components/ui/badge/Badge.vue +16 -0
  51. package/components/ui/badge/index.ts +25 -0
  52. package/components/ui/breadcrumb/Breadcrumb.vue +13 -0
  53. package/components/ui/breadcrumb/BreadcrumbEllipsis.vue +22 -0
  54. package/components/ui/breadcrumb/BreadcrumbItem.vue +16 -0
  55. package/components/ui/breadcrumb/BreadcrumbLink.vue +19 -0
  56. package/components/ui/breadcrumb/BreadcrumbList.vue +16 -0
  57. package/components/ui/breadcrumb/BreadcrumbPage.vue +19 -0
  58. package/components/ui/breadcrumb/BreadcrumbSeparator.vue +21 -0
  59. package/components/ui/breadcrumb/index.ts +7 -0
  60. package/components/ui/button/Button.vue +26 -0
  61. package/components/ui/button/index.js +33 -0
  62. package/components/ui/button/index.ts +35 -0
  63. package/components/ui/calendar/Calendar.vue +60 -0
  64. package/components/ui/calendar/CalendarCell.vue +24 -0
  65. package/components/ui/calendar/CalendarCellTrigger.vue +38 -0
  66. package/components/ui/calendar/CalendarGrid.vue +24 -0
  67. package/components/ui/calendar/CalendarGridBody.vue +11 -0
  68. package/components/ui/calendar/CalendarGridHead.vue +11 -0
  69. package/components/ui/calendar/CalendarGridRow.vue +21 -0
  70. package/components/ui/calendar/CalendarHeadCell.vue +21 -0
  71. package/components/ui/calendar/CalendarHeader.vue +21 -0
  72. package/components/ui/calendar/CalendarHeading.vue +27 -0
  73. package/components/ui/calendar/CalendarNextButton.vue +32 -0
  74. package/components/ui/calendar/CalendarPrevButton.vue +32 -0
  75. package/components/ui/calendar/index.ts +12 -0
  76. package/components/ui/card/Card.vue +21 -0
  77. package/components/ui/card/CardContent.vue +14 -0
  78. package/components/ui/card/CardDescription.vue +14 -0
  79. package/components/ui/card/CardFooter.vue +14 -0
  80. package/components/ui/card/CardHeader.vue +14 -0
  81. package/components/ui/card/CardTitle.vue +18 -0
  82. package/components/ui/card/index.js +6 -0
  83. package/components/ui/card/index.ts +6 -0
  84. package/components/ui/carousel/Carousel.vue +44 -0
  85. package/components/ui/carousel/CarouselContent.vue +29 -0
  86. package/components/ui/carousel/CarouselItem.vue +23 -0
  87. package/components/ui/carousel/CarouselNext.vue +30 -0
  88. package/components/ui/carousel/CarouselPrevious.vue +30 -0
  89. package/components/ui/carousel/index.ts +10 -0
  90. package/components/ui/carousel/interface.ts +20 -0
  91. package/components/ui/carousel/useCarousel.ts +59 -0
  92. package/components/ui/chart/ChartCrosshair.vue +44 -0
  93. package/components/ui/chart/ChartLegend.vue +50 -0
  94. package/components/ui/chart/ChartSingleTooltip.vue +63 -0
  95. package/components/ui/chart/ChartTooltip.vue +40 -0
  96. package/components/ui/chart/index.ts +18 -0
  97. package/components/ui/chart/interface.ts +64 -0
  98. package/components/ui/chart-area/AreaChart.vue +136 -0
  99. package/components/ui/chart-area/index.ts +66 -0
  100. package/components/ui/chart-bar/BarChart.vue +115 -0
  101. package/components/ui/chart-bar/index.ts +66 -0
  102. package/components/ui/chart-donut/DonutChart.vue +100 -0
  103. package/components/ui/chart-donut/index.ts +39 -0
  104. package/components/ui/chart-line/LineChart.vue +105 -0
  105. package/components/ui/chart-line/index.ts +66 -0
  106. package/components/ui/checkbox/Checkbox.vue +33 -0
  107. package/components/ui/checkbox/index.ts +1 -0
  108. package/components/ui/collapsible/Collapsible.vue +15 -0
  109. package/components/ui/collapsible/CollapsibleContent.vue +11 -0
  110. package/components/ui/collapsible/CollapsibleTrigger.vue +11 -0
  111. package/components/ui/collapsible/index.ts +3 -0
  112. package/components/ui/command/Command.vue +30 -0
  113. package/components/ui/command/CommandDialog.vue +21 -0
  114. package/components/ui/command/CommandEmpty.vue +20 -0
  115. package/components/ui/command/CommandGroup.vue +29 -0
  116. package/components/ui/command/CommandInput.vue +33 -0
  117. package/components/ui/command/CommandItem.vue +26 -0
  118. package/components/ui/command/CommandList.vue +27 -0
  119. package/components/ui/command/CommandSeparator.vue +23 -0
  120. package/components/ui/command/CommandShortcut.vue +14 -0
  121. package/components/ui/command/index.js +9 -0
  122. package/components/ui/command/index.ts +9 -0
  123. package/components/ui/context-menu/ContextMenu.vue +15 -0
  124. package/components/ui/context-menu/ContextMenuCheckboxItem.vue +40 -0
  125. package/components/ui/context-menu/ContextMenuContent.vue +36 -0
  126. package/components/ui/context-menu/ContextMenuGroup.vue +11 -0
  127. package/components/ui/context-menu/ContextMenuItem.vue +34 -0
  128. package/components/ui/context-menu/ContextMenuLabel.vue +25 -0
  129. package/components/ui/context-menu/ContextMenuPortal.vue +11 -0
  130. package/components/ui/context-menu/ContextMenuRadioGroup.vue +19 -0
  131. package/components/ui/context-menu/ContextMenuRadioItem.vue +40 -0
  132. package/components/ui/context-menu/ContextMenuSeparator.vue +20 -0
  133. package/components/ui/context-menu/ContextMenuShortcut.vue +14 -0
  134. package/components/ui/context-menu/ContextMenuSub.vue +19 -0
  135. package/components/ui/context-menu/ContextMenuSubContent.vue +35 -0
  136. package/components/ui/context-menu/ContextMenuSubTrigger.vue +34 -0
  137. package/components/ui/context-menu/ContextMenuTrigger.vue +13 -0
  138. package/components/ui/context-menu/index.ts +14 -0
  139. package/components/ui/dialog/Dialog.vue +14 -0
  140. package/components/ui/dialog/DialogClose.vue +11 -0
  141. package/components/ui/dialog/DialogContent.vue +50 -0
  142. package/components/ui/dialog/DialogDescription.vue +24 -0
  143. package/components/ui/dialog/DialogFooter.vue +19 -0
  144. package/components/ui/dialog/DialogHeader.vue +16 -0
  145. package/components/ui/dialog/DialogScrollContent.vue +59 -0
  146. package/components/ui/dialog/DialogTitle.vue +29 -0
  147. package/components/ui/dialog/DialogTrigger.vue +11 -0
  148. package/components/ui/dialog/index.js +9 -0
  149. package/components/ui/dialog/index.ts +9 -0
  150. package/components/ui/drawer/Drawer.vue +19 -0
  151. package/components/ui/drawer/DrawerContent.vue +28 -0
  152. package/components/ui/drawer/DrawerDescription.vue +20 -0
  153. package/components/ui/drawer/DrawerFooter.vue +14 -0
  154. package/components/ui/drawer/DrawerHeader.vue +14 -0
  155. package/components/ui/drawer/DrawerOverlay.vue +18 -0
  156. package/components/ui/drawer/DrawerTitle.vue +20 -0
  157. package/components/ui/drawer/index.ts +8 -0
  158. package/components/ui/dropdown-menu/DropdownMenu.vue +14 -0
  159. package/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +40 -0
  160. package/components/ui/dropdown-menu/DropdownMenuContent.vue +38 -0
  161. package/components/ui/dropdown-menu/DropdownMenuGroup.vue +11 -0
  162. package/components/ui/dropdown-menu/DropdownMenuItem.vue +28 -0
  163. package/components/ui/dropdown-menu/DropdownMenuLabel.vue +24 -0
  164. package/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +19 -0
  165. package/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +41 -0
  166. package/components/ui/dropdown-menu/DropdownMenuSeparator.vue +22 -0
  167. package/components/ui/dropdown-menu/DropdownMenuShortcut.vue +14 -0
  168. package/components/ui/dropdown-menu/DropdownMenuSub.vue +19 -0
  169. package/components/ui/dropdown-menu/DropdownMenuSubContent.vue +30 -0
  170. package/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +33 -0
  171. package/components/ui/dropdown-menu/DropdownMenuTrigger.vue +13 -0
  172. package/components/ui/dropdown-menu/index.ts +16 -0
  173. package/components/ui/form/FormControl.vue +16 -0
  174. package/components/ui/form/FormDescription.vue +20 -0
  175. package/components/ui/form/FormItem.vue +19 -0
  176. package/components/ui/form/FormLabel.vue +23 -0
  177. package/components/ui/form/FormMessage.vue +16 -0
  178. package/components/ui/form/index.js +7 -0
  179. package/components/ui/form/index.ts +7 -0
  180. package/components/ui/form/injectionKeys.js +1 -0
  181. package/components/ui/form/injectionKeys.ts +4 -0
  182. package/components/ui/form/useFormField.js +36 -0
  183. package/components/ui/form/useFormField.ts +30 -0
  184. package/components/ui/hover-card/HoverCard.vue +14 -0
  185. package/components/ui/hover-card/HoverCardContent.vue +41 -0
  186. package/components/ui/hover-card/HoverCardTrigger.vue +11 -0
  187. package/components/ui/hover-card/index.ts +3 -0
  188. package/components/ui/input/Input.vue +24 -0
  189. package/components/ui/input/index.js +1 -0
  190. package/components/ui/input/index.ts +1 -0
  191. package/components/ui/label/Label.vue +27 -0
  192. package/components/ui/label/index.js +1 -0
  193. package/components/ui/label/index.ts +1 -0
  194. package/components/ui/menubar/Menubar.vue +35 -0
  195. package/components/ui/menubar/MenubarCheckboxItem.vue +40 -0
  196. package/components/ui/menubar/MenubarContent.vue +43 -0
  197. package/components/ui/menubar/MenubarGroup.vue +11 -0
  198. package/components/ui/menubar/MenubarItem.vue +35 -0
  199. package/components/ui/menubar/MenubarLabel.vue +13 -0
  200. package/components/ui/menubar/MenubarMenu.vue +11 -0
  201. package/components/ui/menubar/MenubarRadioGroup.vue +20 -0
  202. package/components/ui/menubar/MenubarRadioItem.vue +40 -0
  203. package/components/ui/menubar/MenubarSeparator.vue +19 -0
  204. package/components/ui/menubar/MenubarShortcut.vue +14 -0
  205. package/components/ui/menubar/MenubarSub.vue +19 -0
  206. package/components/ui/menubar/MenubarSubContent.vue +39 -0
  207. package/components/ui/menubar/MenubarSubTrigger.vue +30 -0
  208. package/components/ui/menubar/MenubarTrigger.vue +29 -0
  209. package/components/ui/menubar/index.ts +15 -0
  210. package/components/ui/navigation-menu/NavigationMenu.vue +33 -0
  211. package/components/ui/navigation-menu/NavigationMenuContent.vue +34 -0
  212. package/components/ui/navigation-menu/NavigationMenuIndicator.vue +24 -0
  213. package/components/ui/navigation-menu/NavigationMenuItem.vue +11 -0
  214. package/components/ui/navigation-menu/NavigationMenuLink.vue +19 -0
  215. package/components/ui/navigation-menu/NavigationMenuList.vue +29 -0
  216. package/components/ui/navigation-menu/NavigationMenuTrigger.vue +34 -0
  217. package/components/ui/navigation-menu/NavigationMenuViewport.vue +33 -0
  218. package/components/ui/navigation-menu/index.ts +12 -0
  219. package/components/ui/number-field/NumberField.vue +23 -0
  220. package/components/ui/number-field/NumberFieldContent.vue +14 -0
  221. package/components/ui/number-field/NumberFieldDecrement.vue +25 -0
  222. package/components/ui/number-field/NumberFieldIncrement.vue +25 -0
  223. package/components/ui/number-field/NumberFieldInput.vue +8 -0
  224. package/components/ui/number-field/index.ts +5 -0
  225. package/components/ui/pagination/PaginationEllipsis.vue +22 -0
  226. package/components/ui/pagination/PaginationFirst.vue +29 -0
  227. package/components/ui/pagination/PaginationLast.vue +29 -0
  228. package/components/ui/pagination/PaginationNext.vue +29 -0
  229. package/components/ui/pagination/PaginationPrev.vue +29 -0
  230. package/components/ui/pagination/index.ts +10 -0
  231. package/components/ui/pin-input/PinInput.vue +23 -0
  232. package/components/ui/pin-input/PinInputGroup.vue +18 -0
  233. package/components/ui/pin-input/PinInputInput.vue +18 -0
  234. package/components/ui/pin-input/PinInputSeparator.vue +15 -0
  235. package/components/ui/pin-input/index.ts +4 -0
  236. package/components/ui/popover/Popover.vue +15 -0
  237. package/components/ui/popover/PopoverContent.vue +48 -0
  238. package/components/ui/popover/PopoverTrigger.vue +11 -0
  239. package/components/ui/popover/index.js +3 -0
  240. package/components/ui/popover/index.ts +3 -0
  241. package/components/ui/progress/Progress.vue +39 -0
  242. package/components/ui/progress/index.js +1 -0
  243. package/components/ui/progress/index.ts +1 -0
  244. package/components/ui/radio-group/RadioGroup.vue +25 -0
  245. package/components/ui/radio-group/RadioGroupItem.vue +39 -0
  246. package/components/ui/radio-group/index.ts +2 -0
  247. package/components/ui/range-calendar/RangeCalendar.vue +60 -0
  248. package/components/ui/range-calendar/RangeCalendarCell.vue +24 -0
  249. package/components/ui/range-calendar/RangeCalendarCellTrigger.vue +40 -0
  250. package/components/ui/range-calendar/RangeCalendarGrid.vue +24 -0
  251. package/components/ui/range-calendar/RangeCalendarGridBody.vue +11 -0
  252. package/components/ui/range-calendar/RangeCalendarGridHead.vue +11 -0
  253. package/components/ui/range-calendar/RangeCalendarGridRow.vue +21 -0
  254. package/components/ui/range-calendar/RangeCalendarHeadCell.vue +21 -0
  255. package/components/ui/range-calendar/RangeCalendarHeader.vue +21 -0
  256. package/components/ui/range-calendar/RangeCalendarHeading.vue +27 -0
  257. package/components/ui/range-calendar/RangeCalendarNextButton.vue +32 -0
  258. package/components/ui/range-calendar/RangeCalendarPrevButton.vue +32 -0
  259. package/components/ui/range-calendar/index.ts +12 -0
  260. package/components/ui/resizable/ResizableHandle.vue +26 -0
  261. package/components/ui/resizable/ResizablePanelGroup.vue +21 -0
  262. package/components/ui/resizable/index.ts +3 -0
  263. package/components/ui/scroll-area/ScrollArea.vue +29 -0
  264. package/components/ui/scroll-area/ScrollBar.vue +30 -0
  265. package/components/ui/scroll-area/index.ts +2 -0
  266. package/components/ui/select/Select.vue +15 -0
  267. package/components/ui/select/SelectContent.vue +53 -0
  268. package/components/ui/select/SelectGroup.vue +19 -0
  269. package/components/ui/select/SelectItem.vue +44 -0
  270. package/components/ui/select/SelectItemText.vue +11 -0
  271. package/components/ui/select/SelectLabel.vue +13 -0
  272. package/components/ui/select/SelectScrollDownButton.vue +24 -0
  273. package/components/ui/select/SelectScrollUpButton.vue +24 -0
  274. package/components/ui/select/SelectSeparator.vue +17 -0
  275. package/components/ui/select/SelectTrigger.vue +31 -0
  276. package/components/ui/select/SelectValue.vue +11 -0
  277. package/components/ui/select/index.ts +11 -0
  278. package/components/ui/separator/Separator.vue +20 -0
  279. package/components/ui/separator/index.js +1 -0
  280. package/components/ui/separator/index.ts +1 -0
  281. package/components/ui/sheet/Sheet.vue +14 -0
  282. package/components/ui/sheet/SheetClose.vue +11 -0
  283. package/components/ui/sheet/SheetContent.vue +56 -0
  284. package/components/ui/sheet/SheetDescription.vue +22 -0
  285. package/components/ui/sheet/SheetFooter.vue +19 -0
  286. package/components/ui/sheet/SheetHeader.vue +16 -0
  287. package/components/ui/sheet/SheetTitle.vue +22 -0
  288. package/components/ui/sheet/SheetTrigger.vue +11 -0
  289. package/components/ui/sheet/index.ts +31 -0
  290. package/components/ui/skeleton/Skeleton.vue +14 -0
  291. package/components/ui/skeleton/index.ts +1 -0
  292. package/components/ui/slider/Slider.vue +36 -0
  293. package/components/ui/slider/index.ts +1 -0
  294. package/components/ui/sonner/Sonner.vue +22 -0
  295. package/components/ui/sonner/index.ts +1 -0
  296. package/components/ui/switch/Switch.vue +37 -0
  297. package/components/ui/switch/index.ts +1 -0
  298. package/components/ui/table/Table.vue +16 -0
  299. package/components/ui/table/TableBody.vue +14 -0
  300. package/components/ui/table/TableCaption.vue +14 -0
  301. package/components/ui/table/TableCell.vue +21 -0
  302. package/components/ui/table/TableEmpty.vue +37 -0
  303. package/components/ui/table/TableFooter.vue +14 -0
  304. package/components/ui/table/TableHead.vue +14 -0
  305. package/components/ui/table/TableHeader.vue +14 -0
  306. package/components/ui/table/TableRow.vue +14 -0
  307. package/components/ui/table/index.ts +8 -0
  308. package/components/ui/tabs/Tabs.vue +15 -0
  309. package/components/ui/tabs/TabsContent.vue +22 -0
  310. package/components/ui/tabs/TabsList.vue +25 -0
  311. package/components/ui/tabs/TabsTrigger.vue +27 -0
  312. package/components/ui/tabs/index.ts +4 -0
  313. package/components/ui/tags-input/TagsInput.vue +22 -0
  314. package/components/ui/tags-input/TagsInputInput.vue +19 -0
  315. package/components/ui/tags-input/TagsInputItem.vue +22 -0
  316. package/components/ui/tags-input/TagsInputItemDelete.vue +24 -0
  317. package/components/ui/tags-input/TagsInputItemText.vue +19 -0
  318. package/components/ui/tags-input/index.ts +5 -0
  319. package/components/ui/textarea/Textarea.vue +24 -0
  320. package/components/ui/textarea/index.ts +1 -0
  321. package/components/ui/toast/Toast.vue +28 -0
  322. package/components/ui/toast/ToastAction.vue +19 -0
  323. package/components/ui/toast/ToastClose.vue +22 -0
  324. package/components/ui/toast/ToastDescription.vue +19 -0
  325. package/components/ui/toast/ToastProvider.vue +11 -0
  326. package/components/ui/toast/ToastTitle.vue +19 -0
  327. package/components/ui/toast/ToastViewport.vue +17 -0
  328. package/components/ui/toast/Toaster.vue +30 -0
  329. package/components/ui/toast/index.ts +38 -0
  330. package/components/ui/toast/use-toast.ts +165 -0
  331. package/components/ui/toggle/Toggle.vue +35 -0
  332. package/components/ui/toggle/index.ts +27 -0
  333. package/components/ui/toggle-group/ToggleGroup.vue +34 -0
  334. package/components/ui/toggle-group/ToggleGroupItem.vue +35 -0
  335. package/components/ui/toggle-group/index.ts +2 -0
  336. package/components/ui/tooltip/Tooltip.vue +14 -0
  337. package/components/ui/tooltip/TooltipContent.vue +31 -0
  338. package/components/ui/tooltip/TooltipProvider.vue +11 -0
  339. package/components/ui/tooltip/TooltipTrigger.vue +11 -0
  340. package/components/ui/tooltip/index.ts +4 -0
  341. package/components/ui/v-calendar/Calendar.vue +331 -0
  342. package/components/ui/v-calendar/index.ts +22 -0
  343. package/components.json +17 -0
  344. package/edge-components-install.sh +1 -0
  345. package/jsconfig.json +9 -0
  346. package/lib/utils.ts +6 -0
  347. package/nuxt.config.ts +28 -11
  348. package/package.json +33 -14
  349. package/pages/app/account/[page].vue +71 -0
  350. package/pages/app/dashboard/[[collection]]/[[docId]].vue +181 -0
  351. package/pages/app/login.vue +9 -7
  352. package/pages/app/signup.vue +9 -7
  353. package/plugins/icons.ts +72 -0
  354. package/tailwind.config.js +85 -0
  355. package/components/.gitkeep +0 -0
  356. package/components/account.vue +0 -101
  357. package/components/billing.vue +0 -8
  358. package/components/bottomMenu.vue +0 -35
  359. package/components/dashboard.vue +0 -186
  360. package/components/editor.vue +0 -247
  361. package/components/topMenu.vue +0 -17
  362. package/components/userMenu.vue +0 -64
  363. package/composables/vuetify.ts +0 -10
  364. package/pages/app/[[page]]/[[collection]]/[[docId]].vue +0 -48
  365. package/plugins/edgeFirebaseFramework.ts +0 -5
  366. package/plugins/vuetify.ts +0 -14
@@ -0,0 +1,26 @@
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue'
3
+ import { Primitive, type PrimitiveProps } from 'radix-vue'
4
+ import { type ButtonVariants, buttonVariants } from '.'
5
+ import { cn } from '@/lib/utils'
6
+
7
+ interface Props extends PrimitiveProps {
8
+ variant?: ButtonVariants['variant']
9
+ size?: ButtonVariants['size']
10
+ class?: HTMLAttributes['class']
11
+ }
12
+
13
+ const props = withDefaults(defineProps<Props>(), {
14
+ as: 'button',
15
+ })
16
+ </script>
17
+
18
+ <template>
19
+ <Primitive
20
+ :as="as"
21
+ :as-child="asChild"
22
+ :class="cn(buttonVariants({ variant, size }), props.class)"
23
+ >
24
+ <slot />
25
+ </Primitive>
26
+ </template>
@@ -0,0 +1,33 @@
1
+ import { cva } from "class-variance-authority";
2
+
3
+ export { default as Button } from "./Button.vue";
4
+
5
+ export const buttonVariants = cva(
6
+ "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
7
+ {
8
+ variants: {
9
+ variant: {
10
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
11
+ destructive:
12
+ "bg-destructive text-destructive-foreground hover:bg-destructive/90",
13
+ outline:
14
+ "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
15
+ secondary:
16
+ "bg-secondary text-secondary-foreground hover:bg-secondary/80",
17
+ ghost: "hover:bg-accent hover:text-accent-foreground",
18
+ link: "text-primary underline-offset-4 hover:underline",
19
+ },
20
+ size: {
21
+ default: "h-10 px-4 py-2",
22
+ xs: "h-7 rounded px-2",
23
+ sm: "h-9 rounded-md px-3",
24
+ lg: "h-11 rounded-md px-8",
25
+ icon: "h-10 w-10",
26
+ },
27
+ },
28
+ defaultVariants: {
29
+ variant: "default",
30
+ size: "default",
31
+ },
32
+ },
33
+ );
@@ -0,0 +1,35 @@
1
+ import { type VariantProps, cva } from 'class-variance-authority'
2
+
3
+ export { default as Button } from './Button.vue'
4
+
5
+ export const buttonVariants = cva(
6
+ 'inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',
7
+ {
8
+ variants: {
9
+ variant: {
10
+ default: 'bg-primary text-primary-foreground hover:bg-primary/90',
11
+ destructive:
12
+ 'bg-destructive text-destructive-foreground hover:bg-destructive/90',
13
+ outline:
14
+ 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',
15
+ secondary:
16
+ 'bg-secondary text-secondary-foreground hover:bg-secondary/80',
17
+ ghost: 'hover:bg-accent hover:text-accent-foreground',
18
+ link: 'text-primary underline-offset-4 hover:underline',
19
+ },
20
+ size: {
21
+ default: 'h-10 px-4 py-2',
22
+ xs: 'h-7 rounded px-2',
23
+ sm: 'h-9 rounded-md px-3',
24
+ lg: 'h-11 rounded-md px-8',
25
+ icon: 'h-10 w-10',
26
+ },
27
+ },
28
+ defaultVariants: {
29
+ variant: 'default',
30
+ size: 'default',
31
+ },
32
+ },
33
+ )
34
+
35
+ export type ButtonVariants = VariantProps<typeof buttonVariants>
@@ -0,0 +1,60 @@
1
+ <script lang="ts" setup>
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import { CalendarRoot, type CalendarRootEmits, type CalendarRootProps, useForwardPropsEmits } from 'radix-vue'
4
+ import { CalendarCell, CalendarCellTrigger, CalendarGrid, CalendarGridBody, CalendarGridHead, CalendarGridRow, CalendarHeadCell, CalendarHeader, CalendarHeading, CalendarNextButton, CalendarPrevButton } from '.'
5
+ import { cn } from '@/lib/utils'
6
+
7
+ const props = defineProps<CalendarRootProps & { class?: HTMLAttributes['class'] }>()
8
+
9
+ const emits = defineEmits<CalendarRootEmits>()
10
+
11
+ const delegatedProps = computed(() => {
12
+ const { class: _, ...delegated } = props
13
+
14
+ return delegated
15
+ })
16
+
17
+ const forwarded = useForwardPropsEmits(delegatedProps, emits)
18
+ </script>
19
+
20
+ <template>
21
+ <CalendarRoot
22
+ v-slot="{ grid, weekDays }"
23
+ :class="cn('p-3', props.class)"
24
+ v-bind="forwarded"
25
+ >
26
+ <CalendarHeader>
27
+ <CalendarPrevButton />
28
+ <CalendarHeading />
29
+ <CalendarNextButton />
30
+ </CalendarHeader>
31
+
32
+ <div class="flex flex-col gap-y-4 mt-4 sm:flex-row sm:gap-x-4 sm:gap-y-0">
33
+ <CalendarGrid v-for="month in grid" :key="month.value.toString()">
34
+ <CalendarGridHead>
35
+ <CalendarGridRow>
36
+ <CalendarHeadCell
37
+ v-for="day in weekDays" :key="day"
38
+ >
39
+ {{ day }}
40
+ </CalendarHeadCell>
41
+ </CalendarGridRow>
42
+ </CalendarGridHead>
43
+ <CalendarGridBody>
44
+ <CalendarGridRow v-for="(weekDates, index) in month.rows" :key="`weekDate-${index}`" class="mt-2 w-full">
45
+ <CalendarCell
46
+ v-for="weekDate in weekDates"
47
+ :key="weekDate.toString()"
48
+ :date="weekDate"
49
+ >
50
+ <CalendarCellTrigger
51
+ :day="weekDate"
52
+ :month="month.value"
53
+ />
54
+ </CalendarCell>
55
+ </CalendarGridRow>
56
+ </CalendarGridBody>
57
+ </CalendarGrid>
58
+ </div>
59
+ </CalendarRoot>
60
+ </template>
@@ -0,0 +1,24 @@
1
+ <script lang="ts" setup>
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import { CalendarCell, type CalendarCellProps, useForwardProps } from 'radix-vue'
4
+ import { cn } from '@/lib/utils'
5
+
6
+ const props = defineProps<CalendarCellProps & { class?: HTMLAttributes['class'] }>()
7
+
8
+ const delegatedProps = computed(() => {
9
+ const { class: _, ...delegated } = props
10
+
11
+ return delegated
12
+ })
13
+
14
+ const forwardedProps = useForwardProps(delegatedProps)
15
+ </script>
16
+
17
+ <template>
18
+ <CalendarCell
19
+ :class="cn('relative h-9 w-9 p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([data-selected])]:rounded-md [&:has([data-selected])]:bg-accent [&:has([data-selected][data-outside-month])]:bg-accent/50', props.class)"
20
+ v-bind="forwardedProps"
21
+ >
22
+ <slot />
23
+ </CalendarCell>
24
+ </template>
@@ -0,0 +1,38 @@
1
+ <script lang="ts" setup>
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import { CalendarCellTrigger, type CalendarCellTriggerProps, useForwardProps } from 'radix-vue'
4
+ import { buttonVariants } from '@/components/ui/button'
5
+ import { cn } from '@/lib/utils'
6
+
7
+ const props = defineProps<CalendarCellTriggerProps & { class?: HTMLAttributes['class'] }>()
8
+
9
+ const delegatedProps = computed(() => {
10
+ const { class: _, ...delegated } = props
11
+
12
+ return delegated
13
+ })
14
+
15
+ const forwardedProps = useForwardProps(delegatedProps)
16
+ </script>
17
+
18
+ <template>
19
+ <CalendarCellTrigger
20
+ :class="cn(
21
+ buttonVariants({ variant: 'ghost' }),
22
+ 'h-9 w-9 p-0 font-normal',
23
+ '[&[data-today]:not([data-selected])]:bg-accent [&[data-today]:not([data-selected])]:text-accent-foreground',
24
+ // Selected
25
+ 'data-[selected]:bg-primary data-[selected]:text-primary-foreground data-[selected]:opacity-100 data-[selected]:hover:bg-primary data-[selected]:hover:text-primary-foreground data-[selected]:focus:bg-primary data-[selected]:focus:text-primary-foreground',
26
+ // Disabled
27
+ 'data-[disabled]:text-muted-foreground data-[disabled]:opacity-50',
28
+ // Unavailable
29
+ 'data-[unavailable]:text-destructive-foreground data-[unavailable]:line-through',
30
+ // Outside months
31
+ 'data-[outside-month]:pointer-events-none data-[outside-month]:text-muted-foreground data-[outside-month]:opacity-50 [&[data-outside-month][data-selected]]:bg-accent/50 [&[data-outside-month][data-selected]]:text-muted-foreground [&[data-outside-month][data-selected]]:opacity-30',
32
+ props.class,
33
+ )"
34
+ v-bind="forwardedProps"
35
+ >
36
+ <slot />
37
+ </CalendarCellTrigger>
38
+ </template>
@@ -0,0 +1,24 @@
1
+ <script lang="ts" setup>
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import { CalendarGrid, type CalendarGridProps, useForwardProps } from 'radix-vue'
4
+ import { cn } from '@/lib/utils'
5
+
6
+ const props = defineProps<CalendarGridProps & { class?: HTMLAttributes['class'] }>()
7
+
8
+ const delegatedProps = computed(() => {
9
+ const { class: _, ...delegated } = props
10
+
11
+ return delegated
12
+ })
13
+
14
+ const forwardedProps = useForwardProps(delegatedProps)
15
+ </script>
16
+
17
+ <template>
18
+ <CalendarGrid
19
+ :class="cn('w-full border-collapse space-y-1', props.class)"
20
+ v-bind="forwardedProps"
21
+ >
22
+ <slot />
23
+ </CalendarGrid>
24
+ </template>
@@ -0,0 +1,11 @@
1
+ <script lang="ts" setup>
2
+ import { CalendarGridBody, type CalendarGridBodyProps } from 'radix-vue'
3
+
4
+ const props = defineProps<CalendarGridBodyProps>()
5
+ </script>
6
+
7
+ <template>
8
+ <CalendarGridBody v-bind="props">
9
+ <slot />
10
+ </CalendarGridBody>
11
+ </template>
@@ -0,0 +1,11 @@
1
+ <script lang="ts" setup>
2
+ import { CalendarGridHead, type CalendarGridHeadProps } from 'radix-vue'
3
+
4
+ const props = defineProps<CalendarGridHeadProps>()
5
+ </script>
6
+
7
+ <template>
8
+ <CalendarGridHead v-bind="props">
9
+ <slot />
10
+ </CalendarGridHead>
11
+ </template>
@@ -0,0 +1,21 @@
1
+ <script lang="ts" setup>
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import { CalendarGridRow, type CalendarGridRowProps, useForwardProps } from 'radix-vue'
4
+ import { cn } from '@/lib/utils'
5
+
6
+ const props = defineProps<CalendarGridRowProps & { class?: HTMLAttributes['class'] }>()
7
+
8
+ const delegatedProps = computed(() => {
9
+ const { class: _, ...delegated } = props
10
+
11
+ return delegated
12
+ })
13
+
14
+ const forwardedProps = useForwardProps(delegatedProps)
15
+ </script>
16
+
17
+ <template>
18
+ <CalendarGridRow :class="cn('flex', props.class)" v-bind="forwardedProps">
19
+ <slot />
20
+ </CalendarGridRow>
21
+ </template>
@@ -0,0 +1,21 @@
1
+ <script lang="ts" setup>
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import { CalendarHeadCell, type CalendarHeadCellProps, useForwardProps } from 'radix-vue'
4
+ import { cn } from '@/lib/utils'
5
+
6
+ const props = defineProps<CalendarHeadCellProps & { class?: HTMLAttributes['class'] }>()
7
+
8
+ const delegatedProps = computed(() => {
9
+ const { class: _, ...delegated } = props
10
+
11
+ return delegated
12
+ })
13
+
14
+ const forwardedProps = useForwardProps(delegatedProps)
15
+ </script>
16
+
17
+ <template>
18
+ <CalendarHeadCell :class="cn('w-9 rounded-md text-[0.8rem] font-normal text-muted-foreground', props.class)" v-bind="forwardedProps">
19
+ <slot />
20
+ </CalendarHeadCell>
21
+ </template>
@@ -0,0 +1,21 @@
1
+ <script lang="ts" setup>
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import { CalendarHeader, type CalendarHeaderProps, useForwardProps } from 'radix-vue'
4
+ import { cn } from '@/lib/utils'
5
+
6
+ const props = defineProps<CalendarHeaderProps & { class?: HTMLAttributes['class'] }>()
7
+
8
+ const delegatedProps = computed(() => {
9
+ const { class: _, ...delegated } = props
10
+
11
+ return delegated
12
+ })
13
+
14
+ const forwardedProps = useForwardProps(delegatedProps)
15
+ </script>
16
+
17
+ <template>
18
+ <CalendarHeader :class="cn('relative flex w-full items-center justify-between pt-1', props.class)" v-bind="forwardedProps">
19
+ <slot />
20
+ </CalendarHeader>
21
+ </template>
@@ -0,0 +1,27 @@
1
+ <script lang="ts" setup>
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import { CalendarHeading, type CalendarHeadingProps, useForwardProps } from 'radix-vue'
4
+ import { cn } from '@/lib/utils'
5
+
6
+ const props = defineProps<CalendarHeadingProps & { class?: HTMLAttributes['class'] }>()
7
+
8
+ const delegatedProps = computed(() => {
9
+ const { class: _, ...delegated } = props
10
+
11
+ return delegated
12
+ })
13
+
14
+ const forwardedProps = useForwardProps(delegatedProps)
15
+ </script>
16
+
17
+ <template>
18
+ <CalendarHeading
19
+ v-slot="{ headingValue }"
20
+ :class="cn('text-sm font-medium', props.class)"
21
+ v-bind="forwardedProps"
22
+ >
23
+ <slot :heading-value>
24
+ {{ headingValue }}
25
+ </slot>
26
+ </CalendarHeading>
27
+ </template>
@@ -0,0 +1,32 @@
1
+ <script lang="ts" setup>
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import { CalendarNext, type CalendarNextProps, useForwardProps } from 'radix-vue'
4
+ import { ChevronRight } from 'lucide-vue-next'
5
+ import { cn } from '@/lib/utils'
6
+ import { buttonVariants } from '@/components/ui/button'
7
+
8
+ const props = defineProps<CalendarNextProps & { class?: HTMLAttributes['class'] }>()
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
+ <CalendarNext
21
+ :class="cn(
22
+ buttonVariants({ variant: 'outline' }),
23
+ 'h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100',
24
+ props.class,
25
+ )"
26
+ v-bind="forwardedProps"
27
+ >
28
+ <slot>
29
+ <ChevronRight class="h-4 w-4" />
30
+ </slot>
31
+ </CalendarNext>
32
+ </template>
@@ -0,0 +1,32 @@
1
+ <script lang="ts" setup>
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import { CalendarPrev, type CalendarPrevProps, useForwardProps } from 'radix-vue'
4
+ import { ChevronLeft } from 'lucide-vue-next'
5
+ import { cn } from '@/lib/utils'
6
+ import { buttonVariants } from '@/components/ui/button'
7
+
8
+ const props = defineProps<CalendarPrevProps & { class?: HTMLAttributes['class'] }>()
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
+ <CalendarPrev
21
+ :class="cn(
22
+ buttonVariants({ variant: 'outline' }),
23
+ 'h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100',
24
+ props.class,
25
+ )"
26
+ v-bind="forwardedProps"
27
+ >
28
+ <slot>
29
+ <ChevronLeft class="h-4 w-4" />
30
+ </slot>
31
+ </CalendarPrev>
32
+ </template>
@@ -0,0 +1,12 @@
1
+ export { default as Calendar } from './Calendar.vue'
2
+ export { default as CalendarCell } from './CalendarCell.vue'
3
+ export { default as CalendarCellTrigger } from './CalendarCellTrigger.vue'
4
+ export { default as CalendarGrid } from './CalendarGrid.vue'
5
+ export { default as CalendarGridBody } from './CalendarGridBody.vue'
6
+ export { default as CalendarGridHead } from './CalendarGridHead.vue'
7
+ export { default as CalendarGridRow } from './CalendarGridRow.vue'
8
+ export { default as CalendarHeadCell } from './CalendarHeadCell.vue'
9
+ export { default as CalendarHeader } from './CalendarHeader.vue'
10
+ export { default as CalendarHeading } from './CalendarHeading.vue'
11
+ export { default as CalendarNextButton } from './CalendarNextButton.vue'
12
+ export { default as CalendarPrevButton } from './CalendarPrevButton.vue'
@@ -0,0 +1,21 @@
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue'
3
+ import { cn } from '@/lib/utils'
4
+
5
+ const props = defineProps<{
6
+ class?: HTMLAttributes['class']
7
+ }>()
8
+ </script>
9
+
10
+ <template>
11
+ <div
12
+ :class="
13
+ cn(
14
+ 'rounded-lg border bg-card text-card-foreground shadow-sm',
15
+ props.class,
16
+ )
17
+ "
18
+ >
19
+ <slot />
20
+ </div>
21
+ </template>
@@ -0,0 +1,14 @@
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue'
3
+ import { cn } from '@/lib/utils'
4
+
5
+ const props = defineProps<{
6
+ class?: HTMLAttributes['class']
7
+ }>()
8
+ </script>
9
+
10
+ <template>
11
+ <div :class="cn('p-6 pt-0', props.class)">
12
+ <slot />
13
+ </div>
14
+ </template>
@@ -0,0 +1,14 @@
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue'
3
+ import { cn } from '@/lib/utils'
4
+
5
+ const props = defineProps<{
6
+ class?: HTMLAttributes['class']
7
+ }>()
8
+ </script>
9
+
10
+ <template>
11
+ <p :class="cn('text-sm text-muted-foreground', props.class)">
12
+ <slot />
13
+ </p>
14
+ </template>
@@ -0,0 +1,14 @@
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue'
3
+ import { cn } from '@/lib/utils'
4
+
5
+ const props = defineProps<{
6
+ class?: HTMLAttributes['class']
7
+ }>()
8
+ </script>
9
+
10
+ <template>
11
+ <div :class="cn('flex items-center p-6 pt-0', props.class)">
12
+ <slot />
13
+ </div>
14
+ </template>
@@ -0,0 +1,14 @@
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue'
3
+ import { cn } from '@/lib/utils'
4
+
5
+ const props = defineProps<{
6
+ class?: HTMLAttributes['class']
7
+ }>()
8
+ </script>
9
+
10
+ <template>
11
+ <div :class="cn('flex flex-col gap-y-1.5 p-6', props.class)">
12
+ <slot />
13
+ </div>
14
+ </template>
@@ -0,0 +1,18 @@
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue'
3
+ import { cn } from '@/lib/utils'
4
+
5
+ const props = defineProps<{
6
+ class?: HTMLAttributes['class']
7
+ }>()
8
+ </script>
9
+
10
+ <template>
11
+ <h3
12
+ :class="
13
+ cn('text-2xl font-semibold leading-none tracking-tight', props.class)
14
+ "
15
+ >
16
+ <slot />
17
+ </h3>
18
+ </template>
@@ -0,0 +1,6 @@
1
+ export { default as Card } from "./Card.vue";
2
+ export { default as CardHeader } from "./CardHeader.vue";
3
+ export { default as CardTitle } from "./CardTitle.vue";
4
+ export { default as CardDescription } from "./CardDescription.vue";
5
+ export { default as CardContent } from "./CardContent.vue";
6
+ export { default as CardFooter } from "./CardFooter.vue";
@@ -0,0 +1,6 @@
1
+ export { default as Card } from './Card.vue'
2
+ export { default as CardHeader } from './CardHeader.vue'
3
+ export { default as CardTitle } from './CardTitle.vue'
4
+ export { default as CardDescription } from './CardDescription.vue'
5
+ export { default as CardContent } from './CardContent.vue'
6
+ export { default as CardFooter } from './CardFooter.vue'
@@ -0,0 +1,44 @@
1
+ <script setup lang="ts">
2
+ import { useProvideCarousel } from './useCarousel'
3
+ import type { CarouselEmits, CarouselProps, WithClassAsProps } from './interface'
4
+ import { cn } from '@/lib/utils'
5
+
6
+ const props = withDefaults(defineProps<CarouselProps & WithClassAsProps>(), {
7
+ orientation: 'horizontal',
8
+ })
9
+
10
+ const emits = defineEmits<CarouselEmits>()
11
+
12
+ const carouselArgs = useProvideCarousel(props, emits)
13
+
14
+ defineExpose(carouselArgs)
15
+
16
+ function onKeyDown(event: KeyboardEvent) {
17
+ const prevKey = props.orientation === 'vertical' ? 'ArrowUp' : 'ArrowLeft'
18
+ const nextKey = props.orientation === 'vertical' ? 'ArrowDown' : 'ArrowRight'
19
+
20
+ if (event.key === prevKey) {
21
+ event.preventDefault()
22
+ carouselArgs.scrollPrev()
23
+
24
+ return
25
+ }
26
+
27
+ if (event.key === nextKey) {
28
+ event.preventDefault()
29
+ carouselArgs.scrollNext()
30
+ }
31
+ }
32
+ </script>
33
+
34
+ <template>
35
+ <div
36
+ :class="cn('relative', props.class)"
37
+ role="region"
38
+ aria-roledescription="carousel"
39
+ tabindex="0"
40
+ @keydown="onKeyDown"
41
+ >
42
+ <slot v-bind="carouselArgs" />
43
+ </div>
44
+ </template>
@@ -0,0 +1,29 @@
1
+ <script setup lang="ts">
2
+ import { useCarousel } from './useCarousel'
3
+ import type { WithClassAsProps } from './interface'
4
+ import { cn } from '@/lib/utils'
5
+
6
+ defineOptions({
7
+ inheritAttrs: false,
8
+ })
9
+
10
+ const props = defineProps<WithClassAsProps>()
11
+
12
+ const { carouselRef, orientation } = useCarousel()
13
+ </script>
14
+
15
+ <template>
16
+ <div ref="carouselRef" class="overflow-hidden">
17
+ <div
18
+ :class="
19
+ cn(
20
+ 'flex',
21
+ orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col',
22
+ props.class,
23
+ )"
24
+ v-bind="$attrs"
25
+ >
26
+ <slot />
27
+ </div>
28
+ </div>
29
+ </template>
@@ -0,0 +1,23 @@
1
+ <script setup lang="ts">
2
+ import { useCarousel } from './useCarousel'
3
+ import type { WithClassAsProps } from './interface'
4
+ import { cn } from '@/lib/utils'
5
+
6
+ const props = defineProps<WithClassAsProps>()
7
+
8
+ const { orientation } = useCarousel()
9
+ </script>
10
+
11
+ <template>
12
+ <div
13
+ role="group"
14
+ aria-roledescription="slide"
15
+ :class="cn(
16
+ 'min-w-0 shrink-0 grow-0 basis-full',
17
+ orientation === 'horizontal' ? 'pl-4' : 'pt-4',
18
+ props.class,
19
+ )"
20
+ >
21
+ <slot />
22
+ </div>
23
+ </template>