@edgedev/create-edge-app 1.0.41 → 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 -107
  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, computed } from 'vue'
3
+ import { SplitterResizeHandle, type SplitterResizeHandleEmits, type SplitterResizeHandleProps, useForwardPropsEmits } from 'radix-vue'
4
+ import { GripVertical } from 'lucide-vue-next'
5
+ import { cn } from '@/lib/utils'
6
+
7
+ const props = defineProps<SplitterResizeHandleProps & { class?: HTMLAttributes['class'], withHandle?: boolean }>()
8
+ const emits = defineEmits<SplitterResizeHandleEmits>()
9
+
10
+ const delegatedProps = computed(() => {
11
+ const { class: _, ...delegated } = props
12
+ return delegated
13
+ })
14
+
15
+ const forwarded = useForwardPropsEmits(delegatedProps, emits)
16
+ </script>
17
+
18
+ <template>
19
+ <SplitterResizeHandle v-bind="forwarded" :class="cn('relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 [&[data-orientation=vertical]]:h-px [&[data-orientation=vertical]]:w-full [&[data-orientation=vertical]]:after:left-0 [&[data-orientation=vertical]]:after:h-1 [&[data-orientation=vertical]]:after:w-full [&[data-orientation=vertical]]:after:-translate-y-1/2 [&[data-orientation=vertical]]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90', props.class)">
20
+ <template v-if="props.withHandle">
21
+ <div class="z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border">
22
+ <GripVertical class="h-2.5 w-2.5" />
23
+ </div>
24
+ </template>
25
+ </SplitterResizeHandle>
26
+ </template>
@@ -0,0 +1,21 @@
1
+ <script setup lang="ts">
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import { SplitterGroup, type SplitterGroupEmits, type SplitterGroupProps, useForwardPropsEmits } from 'radix-vue'
4
+ import { cn } from '@/lib/utils'
5
+
6
+ const props = defineProps<SplitterGroupProps & { class?: HTMLAttributes['class'] }>()
7
+ const emits = defineEmits<SplitterGroupEmits>()
8
+
9
+ const delegatedProps = computed(() => {
10
+ const { class: _, ...delegated } = props
11
+ return delegated
12
+ })
13
+
14
+ const forwarded = useForwardPropsEmits(delegatedProps, emits)
15
+ </script>
16
+
17
+ <template>
18
+ <SplitterGroup v-bind="forwarded" :class="cn('flex h-full w-full data-[panel-group-direction=vertical]:flex-col', props.class)">
19
+ <slot />
20
+ </SplitterGroup>
21
+ </template>
@@ -0,0 +1,3 @@
1
+ export { default as ResizablePanelGroup } from './ResizablePanelGroup.vue'
2
+ export { default as ResizableHandle } from './ResizableHandle.vue'
3
+ export { SplitterPanel as ResizablePanel } from 'radix-vue'
@@ -0,0 +1,29 @@
1
+ <script setup lang="ts">
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import {
4
+ ScrollAreaCorner,
5
+ ScrollAreaRoot,
6
+ type ScrollAreaRootProps,
7
+ ScrollAreaViewport,
8
+ } from 'radix-vue'
9
+ import ScrollBar from './ScrollBar.vue'
10
+ import { cn } from '@/lib/utils'
11
+
12
+ const props = defineProps<ScrollAreaRootProps & { class?: HTMLAttributes['class'] }>()
13
+
14
+ const delegatedProps = computed(() => {
15
+ const { class: _, ...delegated } = props
16
+
17
+ return delegated
18
+ })
19
+ </script>
20
+
21
+ <template>
22
+ <ScrollAreaRoot v-bind="delegatedProps" :class="cn('relative overflow-hidden', props.class)">
23
+ <ScrollAreaViewport class="h-full w-full rounded-[inherit]">
24
+ <slot />
25
+ </ScrollAreaViewport>
26
+ <ScrollBar />
27
+ <ScrollAreaCorner />
28
+ </ScrollAreaRoot>
29
+ </template>
@@ -0,0 +1,30 @@
1
+ <script setup lang="ts">
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import { ScrollAreaScrollbar, type ScrollAreaScrollbarProps, ScrollAreaThumb } from 'radix-vue'
4
+ import { cn } from '@/lib/utils'
5
+
6
+ const props = withDefaults(defineProps<ScrollAreaScrollbarProps & { class?: HTMLAttributes['class'] }>(), {
7
+ orientation: 'vertical',
8
+ })
9
+
10
+ const delegatedProps = computed(() => {
11
+ const { class: _, ...delegated } = props
12
+
13
+ return delegated
14
+ })
15
+ </script>
16
+
17
+ <template>
18
+ <ScrollAreaScrollbar
19
+ v-bind="delegatedProps"
20
+ :class="
21
+ cn('flex touch-none select-none transition-colors',
22
+ orientation === 'vertical'
23
+ && 'h-full w-2.5 border-l border-l-transparent p-px',
24
+ orientation === 'horizontal'
25
+ && 'h-2.5 flex-col border-t border-t-transparent p-px',
26
+ props.class)"
27
+ >
28
+ <ScrollAreaThumb class="relative flex-1 rounded-full bg-border" />
29
+ </ScrollAreaScrollbar>
30
+ </template>
@@ -0,0 +1,2 @@
1
+ export { default as ScrollArea } from './ScrollArea.vue'
2
+ export { default as ScrollBar } from './ScrollBar.vue'
@@ -0,0 +1,15 @@
1
+ <script setup lang="ts">
2
+ import type { SelectRootEmits, SelectRootProps } from 'radix-vue'
3
+ import { SelectRoot, useForwardPropsEmits } from 'radix-vue'
4
+
5
+ const props = defineProps<SelectRootProps>()
6
+ const emits = defineEmits<SelectRootEmits>()
7
+
8
+ const forwarded = useForwardPropsEmits(props, emits)
9
+ </script>
10
+
11
+ <template>
12
+ <SelectRoot v-bind="forwarded">
13
+ <slot />
14
+ </SelectRoot>
15
+ </template>
@@ -0,0 +1,53 @@
1
+ <script setup lang="ts">
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import {
4
+ SelectContent,
5
+ type SelectContentEmits,
6
+ type SelectContentProps,
7
+ SelectPortal,
8
+ SelectViewport,
9
+ useForwardPropsEmits,
10
+ } from 'radix-vue'
11
+ import { SelectScrollDownButton, SelectScrollUpButton } from '.'
12
+ import { cn } from '@/lib/utils'
13
+
14
+ defineOptions({
15
+ inheritAttrs: false,
16
+ })
17
+
18
+ const props = withDefaults(
19
+ defineProps<SelectContentProps & { class?: HTMLAttributes['class'] }>(),
20
+ {
21
+ position: 'popper',
22
+ },
23
+ )
24
+ const emits = defineEmits<SelectContentEmits>()
25
+
26
+ const delegatedProps = computed(() => {
27
+ const { class: _, ...delegated } = props
28
+
29
+ return delegated
30
+ })
31
+
32
+ const forwarded = useForwardPropsEmits(delegatedProps, emits)
33
+ </script>
34
+
35
+ <template>
36
+ <SelectPortal>
37
+ <SelectContent
38
+ v-bind="{ ...forwarded, ...$attrs }" :class="cn(
39
+ 'relative z-50 max-h-96 min-w-32 overflow-hidden rounded-md border bg-popover 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',
40
+ position === 'popper'
41
+ && 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',
42
+ props.class,
43
+ )
44
+ "
45
+ >
46
+ <SelectScrollUpButton />
47
+ <SelectViewport :class="cn('p-1', position === 'popper' && 'h-[--radix-select-trigger-height] w-full min-w-[--radix-select-trigger-width]')">
48
+ <slot />
49
+ </SelectViewport>
50
+ <SelectScrollDownButton />
51
+ </SelectContent>
52
+ </SelectPortal>
53
+ </template>
@@ -0,0 +1,19 @@
1
+ <script setup lang="ts">
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import { SelectGroup, type SelectGroupProps } from 'radix-vue'
4
+ import { cn } from '@/lib/utils'
5
+
6
+ const props = defineProps<SelectGroupProps & { class?: HTMLAttributes['class'] }>()
7
+
8
+ const delegatedProps = computed(() => {
9
+ const { class: _, ...delegated } = props
10
+
11
+ return delegated
12
+ })
13
+ </script>
14
+
15
+ <template>
16
+ <SelectGroup :class="cn('p-1 w-full', props.class)" v-bind="delegatedProps">
17
+ <slot />
18
+ </SelectGroup>
19
+ </template>
@@ -0,0 +1,44 @@
1
+ <script setup lang="ts">
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import {
4
+ SelectItem,
5
+ SelectItemIndicator,
6
+ type SelectItemProps,
7
+ SelectItemText,
8
+ useForwardProps,
9
+ } from 'radix-vue'
10
+ import { Check } from 'lucide-vue-next'
11
+ import { cn } from '@/lib/utils'
12
+
13
+ const props = defineProps<SelectItemProps & { class?: HTMLAttributes['class'] }>()
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
+ <SelectItem
26
+ v-bind="forwardedProps"
27
+ :class="
28
+ cn(
29
+ 'relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
30
+ props.class,
31
+ )
32
+ "
33
+ >
34
+ <span class="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
35
+ <SelectItemIndicator>
36
+ <Check class="h-4 w-4" />
37
+ </SelectItemIndicator>
38
+ </span>
39
+
40
+ <SelectItemText>
41
+ <slot />
42
+ </SelectItemText>
43
+ </SelectItem>
44
+ </template>
@@ -0,0 +1,11 @@
1
+ <script setup lang="ts">
2
+ import { SelectItemText, type SelectItemTextProps } from 'radix-vue'
3
+
4
+ const props = defineProps<SelectItemTextProps>()
5
+ </script>
6
+
7
+ <template>
8
+ <SelectItemText v-bind="props">
9
+ <slot />
10
+ </SelectItemText>
11
+ </template>
@@ -0,0 +1,13 @@
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue'
3
+ import { SelectLabel, type SelectLabelProps } from 'radix-vue'
4
+ import { cn } from '@/lib/utils'
5
+
6
+ const props = defineProps<SelectLabelProps & { class?: HTMLAttributes['class'] }>()
7
+ </script>
8
+
9
+ <template>
10
+ <SelectLabel :class="cn('py-1.5 pl-8 pr-2 text-sm font-semibold', props.class)">
11
+ <slot />
12
+ </SelectLabel>
13
+ </template>
@@ -0,0 +1,24 @@
1
+ <script setup lang="ts">
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import { SelectScrollDownButton, type SelectScrollDownButtonProps, useForwardProps } from 'radix-vue'
4
+ import { ChevronDown } from 'lucide-vue-next'
5
+ import { cn } from '@/lib/utils'
6
+
7
+ const props = defineProps<SelectScrollDownButtonProps & { 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
+ <SelectScrollDownButton v-bind="forwardedProps" :class="cn('flex cursor-default items-center justify-center py-1', props.class)">
20
+ <slot>
21
+ <ChevronDown class="h-4 w-4" />
22
+ </slot>
23
+ </SelectScrollDownButton>
24
+ </template>
@@ -0,0 +1,24 @@
1
+ <script setup lang="ts">
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import { SelectScrollUpButton, type SelectScrollUpButtonProps, useForwardProps } from 'radix-vue'
4
+ import { ChevronUp } from 'lucide-vue-next'
5
+ import { cn } from '@/lib/utils'
6
+
7
+ const props = defineProps<SelectScrollUpButtonProps & { 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
+ <SelectScrollUpButton v-bind="forwardedProps" :class="cn('flex cursor-default items-center justify-center py-1', props.class)">
20
+ <slot>
21
+ <ChevronUp class="h-4 w-4" />
22
+ </slot>
23
+ </SelectScrollUpButton>
24
+ </template>
@@ -0,0 +1,17 @@
1
+ <script setup lang="ts">
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import { SelectSeparator, type SelectSeparatorProps } from 'radix-vue'
4
+ import { cn } from '@/lib/utils'
5
+
6
+ const props = defineProps<SelectSeparatorProps & { class?: HTMLAttributes['class'] }>()
7
+
8
+ const delegatedProps = computed(() => {
9
+ const { class: _, ...delegated } = props
10
+
11
+ return delegated
12
+ })
13
+ </script>
14
+
15
+ <template>
16
+ <SelectSeparator v-bind="delegatedProps" :class="cn('-mx-1 my-1 h-px bg-muted', props.class)" />
17
+ </template>
@@ -0,0 +1,31 @@
1
+ <script setup lang="ts">
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import { SelectIcon, SelectTrigger, type SelectTriggerProps, useForwardProps } from 'radix-vue'
4
+ import { ChevronDown } from 'lucide-vue-next'
5
+ import { cn } from '@/lib/utils'
6
+
7
+ const props = defineProps<SelectTriggerProps & { 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
+ <SelectTrigger
20
+ v-bind="forwardedProps"
21
+ :class="cn(
22
+ 'flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1',
23
+ props.class,
24
+ )"
25
+ >
26
+ <slot />
27
+ <SelectIcon as-child>
28
+ <ChevronDown class="w-4 h-4 opacity-50" />
29
+ </SelectIcon>
30
+ </SelectTrigger>
31
+ </template>
@@ -0,0 +1,11 @@
1
+ <script setup lang="ts">
2
+ import { SelectValue, type SelectValueProps } from 'radix-vue'
3
+
4
+ const props = defineProps<SelectValueProps>()
5
+ </script>
6
+
7
+ <template>
8
+ <SelectValue v-bind="props">
9
+ <slot />
10
+ </SelectValue>
11
+ </template>
@@ -0,0 +1,11 @@
1
+ export { default as Select } from './Select.vue'
2
+ export { default as SelectValue } from './SelectValue.vue'
3
+ export { default as SelectTrigger } from './SelectTrigger.vue'
4
+ export { default as SelectContent } from './SelectContent.vue'
5
+ export { default as SelectGroup } from './SelectGroup.vue'
6
+ export { default as SelectItem } from './SelectItem.vue'
7
+ export { default as SelectItemText } from './SelectItemText.vue'
8
+ export { default as SelectLabel } from './SelectLabel.vue'
9
+ export { default as SelectSeparator } from './SelectSeparator.vue'
10
+ export { default as SelectScrollUpButton } from './SelectScrollUpButton.vue'
11
+ export { default as SelectScrollDownButton } from './SelectScrollDownButton.vue'
@@ -0,0 +1,20 @@
1
+ <script setup lang="ts">
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import { Separator, type SeparatorProps } from 'radix-vue'
4
+ import { cn } from '@/lib/utils'
5
+
6
+ const props = defineProps<SeparatorProps & { class?: HTMLAttributes['class'] }>()
7
+
8
+ const delegatedProps = computed(() => {
9
+ const { class: _, ...delegated } = props
10
+
11
+ return delegated
12
+ })
13
+ </script>
14
+
15
+ <template>
16
+ <Separator
17
+ v-bind="delegatedProps"
18
+ :class="cn('shrink-0 bg-border', props.orientation === 'vertical' ? 'w-px h-full' : 'h-px w-full', props.class)"
19
+ />
20
+ </template>
@@ -0,0 +1 @@
1
+ export { default as Separator } from "./Separator.vue";
@@ -0,0 +1 @@
1
+ export { default as Separator } from './Separator.vue'
@@ -0,0 +1,14 @@
1
+ <script setup lang="ts">
2
+ import { DialogRoot, type DialogRootEmits, type DialogRootProps, useForwardPropsEmits } from 'radix-vue'
3
+
4
+ const props = defineProps<DialogRootProps>()
5
+ const emits = defineEmits<DialogRootEmits>()
6
+
7
+ const forwarded = useForwardPropsEmits(props, emits)
8
+ </script>
9
+
10
+ <template>
11
+ <DialogRoot v-bind="forwarded">
12
+ <slot />
13
+ </DialogRoot>
14
+ </template>
@@ -0,0 +1,11 @@
1
+ <script setup lang="ts">
2
+ import { DialogClose, type DialogCloseProps } from 'radix-vue'
3
+
4
+ const props = defineProps<DialogCloseProps>()
5
+ </script>
6
+
7
+ <template>
8
+ <DialogClose v-bind="props">
9
+ <slot />
10
+ </DialogClose>
11
+ </template>
@@ -0,0 +1,56 @@
1
+ <script setup lang="ts">
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import {
4
+ DialogClose,
5
+ DialogContent,
6
+ type DialogContentEmits,
7
+ type DialogContentProps,
8
+ DialogOverlay,
9
+ DialogPortal,
10
+ useForwardPropsEmits,
11
+ } from 'radix-vue'
12
+ import { X } from 'lucide-vue-next'
13
+ import { type SheetVariants, sheetVariants } from '.'
14
+ import { cn } from '@/lib/utils'
15
+
16
+ interface SheetContentProps extends DialogContentProps {
17
+ class?: HTMLAttributes['class']
18
+ side?: SheetVariants['side']
19
+ }
20
+
21
+ defineOptions({
22
+ inheritAttrs: false,
23
+ })
24
+
25
+ const props = defineProps<SheetContentProps>()
26
+
27
+ const emits = defineEmits<DialogContentEmits>()
28
+
29
+ const delegatedProps = computed(() => {
30
+ const { class: _, side, ...delegated } = props
31
+
32
+ return delegated
33
+ })
34
+
35
+ const forwarded = useForwardPropsEmits(delegatedProps, emits)
36
+ </script>
37
+
38
+ <template>
39
+ <DialogPortal>
40
+ <DialogOverlay
41
+ 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"
42
+ />
43
+ <DialogContent
44
+ :class="cn(sheetVariants({ side }), props.class)"
45
+ v-bind="{ ...forwarded, ...$attrs }"
46
+ >
47
+ <slot />
48
+
49
+ <DialogClose
50
+ 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-secondary"
51
+ >
52
+ <X class="w-4 h-4 text-muted-foreground" />
53
+ </DialogClose>
54
+ </DialogContent>
55
+ </DialogPortal>
56
+ </template>
@@ -0,0 +1,22 @@
1
+ <script setup lang="ts">
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import { DialogDescription, type DialogDescriptionProps } from 'radix-vue'
4
+ import { cn } from '@/lib/utils'
5
+
6
+ const props = defineProps<DialogDescriptionProps & { class?: HTMLAttributes['class'] }>()
7
+
8
+ const delegatedProps = computed(() => {
9
+ const { class: _, ...delegated } = props
10
+
11
+ return delegated
12
+ })
13
+ </script>
14
+
15
+ <template>
16
+ <DialogDescription
17
+ :class="cn('text-sm text-muted-foreground', props.class)"
18
+ v-bind="delegatedProps"
19
+ >
20
+ <slot />
21
+ </DialogDescription>
22
+ </template>
@@ -0,0 +1,19 @@
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue'
3
+ import { cn } from '@/lib/utils'
4
+
5
+ const props = defineProps<{ class?: HTMLAttributes['class'] }>()
6
+ </script>
7
+
8
+ <template>
9
+ <div
10
+ :class="
11
+ cn(
12
+ 'flex flex-col-reverse sm:flex-row sm:justify-end sm:gap-x-2',
13
+ props.class,
14
+ )
15
+ "
16
+ >
17
+ <slot />
18
+ </div>
19
+ </template>
@@ -0,0 +1,16 @@
1
+ <script setup lang="ts">
2
+ import type { HTMLAttributes } from 'vue'
3
+ import { cn } from '@/lib/utils'
4
+
5
+ const props = defineProps<{ class?: HTMLAttributes['class'] }>()
6
+ </script>
7
+
8
+ <template>
9
+ <div
10
+ :class="
11
+ cn('flex flex-col gap-y-2 text-center sm:text-left', props.class)
12
+ "
13
+ >
14
+ <slot />
15
+ </div>
16
+ </template>
@@ -0,0 +1,22 @@
1
+ <script setup lang="ts">
2
+ import { type HTMLAttributes, computed } from 'vue'
3
+ import { DialogTitle, type DialogTitleProps } from 'radix-vue'
4
+ import { cn } from '@/lib/utils'
5
+
6
+ const props = defineProps<DialogTitleProps & { class?: HTMLAttributes['class'] }>()
7
+
8
+ const delegatedProps = computed(() => {
9
+ const { class: _, ...delegated } = props
10
+
11
+ return delegated
12
+ })
13
+ </script>
14
+
15
+ <template>
16
+ <DialogTitle
17
+ :class="cn('text-lg font-semibold text-foreground', props.class)"
18
+ v-bind="delegatedProps"
19
+ >
20
+ <slot />
21
+ </DialogTitle>
22
+ </template>
@@ -0,0 +1,11 @@
1
+ <script setup lang="ts">
2
+ import { DialogTrigger, type DialogTriggerProps } from 'radix-vue'
3
+
4
+ const props = defineProps<DialogTriggerProps>()
5
+ </script>
6
+
7
+ <template>
8
+ <DialogTrigger v-bind="props">
9
+ <slot />
10
+ </DialogTrigger>
11
+ </template>
@@ -0,0 +1,31 @@
1
+ import { type VariantProps, cva } from 'class-variance-authority'
2
+
3
+ export { default as Sheet } from './Sheet.vue'
4
+ export { default as SheetTrigger } from './SheetTrigger.vue'
5
+ export { default as SheetClose } from './SheetClose.vue'
6
+ export { default as SheetContent } from './SheetContent.vue'
7
+ export { default as SheetHeader } from './SheetHeader.vue'
8
+ export { default as SheetTitle } from './SheetTitle.vue'
9
+ export { default as SheetDescription } from './SheetDescription.vue'
10
+ export { default as SheetFooter } from './SheetFooter.vue'
11
+
12
+ export const sheetVariants = cva(
13
+ 'fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500',
14
+ {
15
+ variants: {
16
+ side: {
17
+ top: 'inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',
18
+ bottom:
19
+ 'inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom',
20
+ left: 'inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm',
21
+ right:
22
+ 'inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm',
23
+ },
24
+ },
25
+ defaultVariants: {
26
+ side: 'right',
27
+ },
28
+ },
29
+ )
30
+
31
+ export type SheetVariants = VariantProps<typeof sheetVariants>