@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,331 @@
1
+ <script setup lang="ts">
2
+ import { useVModel } from '@vueuse/core'
3
+ import { ChevronLeft, ChevronRight } from 'lucide-vue-next'
4
+ import type { Calendar } from 'v-calendar'
5
+ import { DatePicker } from 'v-calendar'
6
+ import { computed, nextTick, onMounted, ref, useSlots } from 'vue'
7
+ import { isVCalendarSlot } from '.'
8
+ import { cn } from '@/lib/utils'
9
+ import { buttonVariants } from '@/components/ui/button'
10
+
11
+ /* Extracted from v-calendar */
12
+ type DatePickerModel = DatePickerDate | DatePickerRangeObject
13
+ type DateSource = Date | string | number
14
+ type DatePickerDate = DateSource | Partial<SimpleDateParts> | null
15
+ interface DatePickerRangeObject {
16
+ start: Exclude<DatePickerDate, null>
17
+ end: Exclude<DatePickerDate, null>
18
+ }
19
+ interface SimpleDateParts {
20
+ year: number
21
+ month: number
22
+ day: number
23
+ hours: number
24
+ minutes: number
25
+ seconds: number
26
+ milliseconds: number
27
+ }
28
+
29
+ defineOptions({
30
+ inheritAttrs: false,
31
+ })
32
+ const props = withDefaults(defineProps< {
33
+ modelValue?: string | number | Date | DatePickerModel
34
+ modelModifiers?: object
35
+ columns?: number
36
+ type?: 'single' | 'range'
37
+ }>(), {
38
+ type: 'single',
39
+ columns: 1,
40
+ })
41
+ const emits = defineEmits<{
42
+ (e: 'update:modelValue', payload: typeof props.modelValue): void
43
+ }>()
44
+
45
+ const modelValue = useVModel(props, 'modelValue', emits, {
46
+ passive: true,
47
+ })
48
+
49
+ const datePicker = ref<InstanceType<typeof DatePicker>>()
50
+ // @ts-expect-error in this current version of v-calendar has the calendaRef instance, which is required to handle arrow nav.
51
+ const calendarRef = computed<InstanceType<typeof Calendar>>(() => datePicker.value.calendarRef)
52
+
53
+ function handleNav(direction: 'prev' | 'next') {
54
+ if (!calendarRef.value)
55
+ return
56
+
57
+ if (direction === 'prev')
58
+ calendarRef.value.movePrev()
59
+ else calendarRef.value.moveNext()
60
+ }
61
+
62
+ onMounted(async () => {
63
+ await nextTick()
64
+ if (modelValue.value instanceof Date && calendarRef.value)
65
+ calendarRef.value.focusDate(modelValue.value)
66
+ })
67
+
68
+ const $slots = useSlots()
69
+ const vCalendarSlots = computed(() => {
70
+ return Object.keys($slots)
71
+ .filter(name => isVCalendarSlot(name))
72
+ .reduce((obj: Record<string, any>, key: string) => {
73
+ obj[key] = $slots[key]
74
+ return obj
75
+ }, {})
76
+ })
77
+ </script>
78
+
79
+ <template>
80
+ <div class="relative">
81
+ <div v-if="$attrs.mode !== 'time'" class="absolute flex justify-between w-full px-4 top-3 z-[1]">
82
+ <button :class="cn(buttonVariants({ variant: 'outline' }), 'h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100')" @click="handleNav('prev')">
83
+ <ChevronLeft class="w-4 h-4" />
84
+ </button>
85
+ <button :class="cn(buttonVariants({ variant: 'outline' }), 'h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100')" @click="handleNav('next')">
86
+ <ChevronRight class="w-4 h-4" />
87
+ </button>
88
+ </div>
89
+
90
+ <DatePicker
91
+ ref="datePicker"
92
+ v-bind="$attrs"
93
+ v-model="modelValue"
94
+ :model-modifiers="modelModifiers"
95
+ class="calendar"
96
+ trim-weeks
97
+ :transition="'none'"
98
+ :columns="columns"
99
+ >
100
+ <template v-for="(_, slot) of vCalendarSlots" #[slot]="scope">
101
+ <slot :name="slot" v-bind="scope" />
102
+ </template>
103
+
104
+ <template #nav-prev-button>
105
+ <ChevronLeft />
106
+ </template>
107
+
108
+ <template #nav-next-button>
109
+ <ChevronRight />
110
+ </template>
111
+ </DatePicker>
112
+ </div>
113
+ </template>
114
+
115
+ <style lang="css">
116
+ .calendar {
117
+ @apply p-3 text-center;
118
+ }
119
+ .calendar .vc-pane-layout {
120
+ @apply grid gap-4 max-sm:!grid-cols-1;
121
+ }
122
+ .calendar .vc-title {
123
+ @apply text-sm font-medium relative z-20;
124
+ }
125
+ .vc-popover-content-wrapper .vc-popover-content {
126
+ @apply mt-3 rounded-md max-w-xs border bg-background;
127
+ }
128
+ .vc-popover-content-wrapper .vc-nav-header {
129
+ @apply flex justify-between items-center p-2;
130
+ }
131
+ .vc-popover-content-wrapper .vc-nav-items {
132
+ @apply grid grid-cols-4 gap-2 p-2;
133
+ }
134
+ .vc-popover-content-wrapper .vc-nav-items .vc-nav-item {
135
+ @apply rounded-md px-2 py-1;
136
+ }
137
+ .vc-popover-content-wrapper .vc-nav-items .vc-nav-item:hover {
138
+ @apply text-muted-foreground bg-muted;
139
+ }
140
+ .vc-popover-content-wrapper .vc-nav-items .vc-nav-item.is-active {
141
+ @apply bg-primary text-primary-foreground;
142
+ }
143
+ .calendar .vc-pane-header-wrapper {
144
+ @apply hidden;
145
+ }
146
+ .calendar .vc-weeks {
147
+ @apply mt-4;
148
+ }
149
+ .calendar .vc-weekdays {
150
+ @apply justify-items-center;
151
+ }
152
+ .calendar .vc-weekday {
153
+ @apply text-muted-foreground rounded-md font-normal text-[0.8rem];
154
+ }
155
+ .calendar .vc-weeks {
156
+ @apply w-full space-y-2 flex flex-col [&>_div]:grid [&>_div]:grid-cols-7;
157
+ }
158
+ .calendar .vc-day:has(.vc-highlights) {
159
+ @apply first:rounded-l-md last:rounded-r-md;
160
+ }
161
+ .calendar .vc-day.is-today:not(:has(.vc-day-layer)) .vc-day-content {
162
+ @apply bg-secondary text-primary rounded-md;
163
+ }
164
+ .calendar .vc-day:has(.vc-highlight-base-start) {
165
+ @apply rounded-l-md;
166
+ }
167
+ .calendar .vc-day:has(.vc-highlight-base-end) {
168
+ @apply rounded-r-md;
169
+ }
170
+ .calendar .vc-day:has(.vc-highlight-bg-outline):not(:has(.vc-highlight-base-start)):not(:has(.vc-highlight-base-end)) {
171
+ @apply rounded-md;
172
+ }
173
+ .calendar .vc-day-content {
174
+ @apply text-center text-sm p-0 relative focus-within:relative focus-within:z-20 inline-flex items-center justify-center ring-offset-background hover:transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 hover:bg-accent hover:text-accent-foreground h-9 w-9 font-normal aria-selected:opacity-100 select-none;
175
+ }
176
+ .calendar .vc-day-content:not(.vc-highlight-content-light) {
177
+ @apply rounded-md;
178
+ }
179
+ .calendar .is-not-in-month:not(:has(.vc-highlight-content-solid)):not(:has(.vc-highlight-content-light)):not(:has(.vc-highlight-content-outline)),
180
+ .calendar .vc-disabled {
181
+ @apply text-muted-foreground opacity-50;
182
+ }
183
+ .calendar .vc-highlight-content-solid, .calendar .vc-highlight-content-outline {
184
+ @apply bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground;
185
+ }
186
+ .calendar .vc-highlight-content-light {
187
+ @apply bg-accent text-accent-foreground;
188
+ }
189
+ .calendar .vc-pane-container.in-transition {
190
+ @apply overflow-hidden;
191
+ }
192
+ .calendar .vc-pane-container {
193
+ @apply w-full relative;
194
+ }
195
+ :root {
196
+ --vc-slide-translate: 22px;
197
+ --vc-slide-duration: 0.15s;
198
+ --vc-slide-timing: ease;
199
+ }
200
+
201
+ .calendar .vc-fade-enter-active,
202
+ .calendar .vc-fade-leave-active,
203
+ .calendar .vc-slide-left-enter-active,
204
+ .calendar .vc-slide-left-leave-active,
205
+ .calendar .vc-slide-right-enter-active,
206
+ .calendar .vc-slide-right-leave-active,
207
+ .calendar .vc-slide-up-enter-active,
208
+ .calendar .vc-slide-up-leave-active,
209
+ .calendar .vc-slide-down-enter-active,
210
+ .calendar .vc-slide-down-leave-active,
211
+ .calendar .vc-slide-fade-enter-active,
212
+ .calendar .vc-slide-fade-leave-active {
213
+ transition:
214
+ opacity var(--vc-slide-duration) var(--vc-slide-timing),
215
+ -webkit-transform var(--vc-slide-duration) var(--vc-slide-timing);
216
+ transition:
217
+ transform var(--vc-slide-duration) var(--vc-slide-timing),
218
+ opacity var(--vc-slide-duration) var(--vc-slide-timing);
219
+ transition:
220
+ transform var(--vc-slide-duration) var(--vc-slide-timing),
221
+ opacity var(--vc-slide-duration) var(--vc-slide-timing),
222
+ -webkit-transform var(--vc-slide-duration) var(--vc-slide-timing);
223
+ -webkit-backface-visibility: hidden;
224
+ backface-visibility: hidden;
225
+ pointer-events: none;
226
+ }
227
+
228
+ .calendar .vc-none-leave-active,
229
+ .calendar .vc-fade-leave-active,
230
+ .calendar .vc-slide-left-leave-active,
231
+ .calendar .vc-slide-right-leave-active,
232
+ .calendar .vc-slide-up-leave-active,
233
+ .calendar .vc-slide-down-leave-active {
234
+ position: absolute !important;
235
+ width: 100%;
236
+ }
237
+
238
+ .calendar .vc-none-enter-from,
239
+ .calendar .vc-none-leave-to,
240
+ .calendar .vc-fade-enter-from,
241
+ .calendar .vc-fade-leave-to,
242
+ .calendar .vc-slide-left-enter-from,
243
+ .calendar .vc-slide-left-leave-to,
244
+ .calendar .vc-slide-right-enter-from,
245
+ .calendar .vc-slide-right-leave-to,
246
+ .calendar .vc-slide-up-enter-from,
247
+ .calendar .vc-slide-up-leave-to,
248
+ .calendar .vc-slide-down-enter-from,
249
+ .calendar .vc-slide-down-leave-to,
250
+ .calendar .vc-slide-fade-enter-from,
251
+ .calendar .vc-slide-fade-leave-to {
252
+ opacity: 0;
253
+ }
254
+
255
+ .calendar .vc-slide-left-enter-from,
256
+ .calendar .vc-slide-right-leave-to,
257
+ .calendar .vc-slide-fade-enter-from.direction-left,
258
+ .calendar .vc-slide-fade-leave-to.direction-left {
259
+ -webkit-transform: translateX(var(--vc-slide-translate));
260
+ transform: translateX(var(--vc-slide-translate));
261
+ }
262
+
263
+ .calendar .vc-slide-right-enter-from,
264
+ .calendar .vc-slide-left-leave-to,
265
+ .calendar .vc-slide-fade-enter-from.direction-right,
266
+ .calendar .vc-slide-fade-leave-to.direction-right {
267
+ -webkit-transform: translateX(calc(-1 * var(--vc-slide-translate)));
268
+ transform: translateX(calc(-1 * var(--vc-slide-translate)));
269
+ }
270
+
271
+ .calendar .vc-slide-up-enter-from,
272
+ .calendar .vc-slide-down-leave-to,
273
+ .calendar .vc-slide-fade-enter-from.direction-top,
274
+ .calendar .vc-slide-fade-leave-to.direction-top {
275
+ -webkit-transform: translateY(var(--vc-slide-translate));
276
+ transform: translateY(var(--vc-slide-translate));
277
+ }
278
+
279
+ .calendar .vc-slide-down-enter-from,
280
+ .calendar .vc-slide-up-leave-to,
281
+ .calendar .vc-slide-fade-enter-from.direction-bottom,
282
+ .calendar .vc-slide-fade-leave-to.direction-bottom {
283
+ -webkit-transform: translateY(calc(-1 * var(--vc-slide-translate)));
284
+ transform: translateY(calc(-1 * var(--vc-slide-translate)));
285
+ }
286
+ /**
287
+ * Timepicker styles
288
+ */
289
+ .vc-time-picker {
290
+ @apply flex flex-col items-center p-2;
291
+ }
292
+ .vc-time-picker.vc-invalid {
293
+ @apply pointer-events-none opacity-50;
294
+ }
295
+ .vc-time-picker.vc-attached {
296
+ @apply border-t border-solid border-secondary mt-2;
297
+ }
298
+ .vc-time-picker > * + * {
299
+ @apply mt-1;
300
+ }
301
+ .vc-time-header {
302
+ @apply flex items-center text-sm font-semibold uppercase mt-1 px-1 leading-6;
303
+ }
304
+ .vc-time-select-group {
305
+ @apply inline-flex items-center px-1 rounded-md bg-primary-foreground border border-solid border-secondary;
306
+ }
307
+ .vc-time-select-group .vc-base-icon {
308
+ @apply mr-1 text-primary stroke-primary;
309
+ }
310
+ .vc-time-select-group select {
311
+ @apply bg-primary-foreground p-1 appearance-none outline-none text-center;
312
+ }
313
+ .vc-time-weekday {
314
+ @apply text-muted-foreground tracking-wide;
315
+ }
316
+ .vc-time-month {
317
+ @apply text-primary ml-2;
318
+ }
319
+ .vc-time-day {
320
+ @apply text-primary ml-1;
321
+ }
322
+ .vc-time-year {
323
+ @apply text-muted-foreground ml-2;
324
+ }
325
+ .vc-time-colon {
326
+ @apply mb-0.5;
327
+ }
328
+ .vc-time-decimal {
329
+ @apply ml-0.5;
330
+ }
331
+ </style>
@@ -0,0 +1,22 @@
1
+ export { default as Calendar } from './Calendar.vue'
2
+ import type { CalendarSlotName } from 'v-calendar/dist/types/src/components/Calendar/CalendarSlot.vue.d.ts'
3
+
4
+ export function isVCalendarSlot(slotName: string): slotName is CalendarSlotName {
5
+ const validSlots: CalendarSlotName[] = [
6
+ 'day-content',
7
+ 'day-popover',
8
+ 'dp-footer',
9
+ 'footer',
10
+ 'header-title-wrapper',
11
+ 'header-title',
12
+ 'header-prev-button',
13
+ 'header-next-button',
14
+ 'nav',
15
+ 'nav-prev-button',
16
+ 'nav-next-button',
17
+ 'page',
18
+ 'time-header',
19
+ ]
20
+
21
+ return validSlots.includes(slotName as CalendarSlotName)
22
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "https://shadcn-vue.com/schema.json",
3
+ "style": "default",
4
+ "typescript": true,
5
+ "tsConfigPath": ".nuxt/tsconfig.json",
6
+ "tailwind": {
7
+ "config": "tailwind.config.js",
8
+ "css": "assets/css/tailwind.css",
9
+ "baseColor": "slate",
10
+ "cssVariables": true
11
+ },
12
+ "framework": "nuxt",
13
+ "aliases": {
14
+ "components": "@/components",
15
+ "utils": "@/lib/utils"
16
+ }
17
+ }
@@ -0,0 +1 @@
1
+ git clone https://github.com/Edge-Marketing-and-Design/edge-vue-components.git edge
package/jsconfig.json ADDED
@@ -0,0 +1,9 @@
1
+ {
2
+ "compilerOptions": {
3
+ "paths": {
4
+ "@/*": [
5
+ "./*"
6
+ ]
7
+ }
8
+ }
9
+ }
package/lib/utils.ts ADDED
@@ -0,0 +1,6 @@
1
+ import { type ClassValue, clsx } from 'clsx'
2
+ import { twMerge } from 'tailwind-merge'
3
+
4
+ export function cn(...inputs: ClassValue[]) {
5
+ return twMerge(clsx(inputs))
6
+ }
package/nuxt.config.ts CHANGED
@@ -1,24 +1,35 @@
1
1
  // https://nuxt.com/docs/api/configuration/nuxt-config
2
2
  export default defineNuxtConfig({
3
- css: [
4
- 'vuetify/lib/styles/main.sass',
5
- '@mdi/font/css/materialdesignicons.min.css',
6
- ],
7
3
  ssr: false,
8
- build: {
9
- transpile: ['vuetify'],
10
- },
11
4
  runtimeConfig: {
12
5
  public: {
13
6
  registrationCode: process.env.REGISTRATION_CODE,
14
7
  },
15
8
  },
16
- modules: [
17
- '@vant/nuxt',
18
- ],
9
+ modules: ['@vant/nuxt', '@nuxtjs/tailwindcss', '@nuxtjs/color-mode', 'shadcn-nuxt'],
10
+ shadcn: {
11
+ /**
12
+ * Prefix for all the imported component
13
+ */
14
+ prefix: '',
15
+ /**
16
+ * Directory that the component lives in.
17
+ * @default "./components/ui"
18
+ */
19
+ componentDir: './components/ui',
20
+ },
21
+ colorMode: {
22
+ classSuffix: '',
23
+ },
24
+ imports: {
25
+ dirs: [
26
+ 'edge/composables/**',
27
+ ],
28
+ },
19
29
  components: {
20
30
  dirs: [
21
- { path: '~/components/formSubtypes', global: true, prefix: 'form-subtypes' },
31
+ { path: '~/components/formSubtypes', global: true, prefix: 'edge-form-subtypes' },
32
+ { path: '~/edge/components', global: true, prefix: 'edge' },
22
33
  '~/components',
23
34
  ],
24
35
  },
@@ -26,6 +37,12 @@ export default defineNuxtConfig({
26
37
  define: {
27
38
  'process.env.DEBUG': false,
28
39
  },
40
+ server: {
41
+ hmr: {
42
+ port: 3000, // Make sure this port matches your Nuxt server port
43
+ clientPort: 3000, // Ensure this matches your Nuxt server port as well
44
+ },
45
+ },
29
46
  },
30
47
  devtools: { enabled: false },
31
48
  })
package/package.json CHANGED
@@ -1,44 +1,63 @@
1
1
  {
2
2
  "name": "@edgedev/create-edge-app",
3
- "version": "1.0.40",
3
+ "version": "1.0.42",
4
4
  "description": "Create Edge Starter App",
5
5
  "bin": {
6
6
  "create-edge-app": "./bin/cli.js"
7
7
  },
8
8
  "scripts": {
9
9
  "build": "nuxt build",
10
- "dev": "nuxt dev --host",
11
- "emulator": "nuxt dev --dotenv .env.dev --host",
10
+ "dev": "nuxt dev --host --port=3000",
11
+ "emulator": "nuxt dev --dotenv .env.dev --host --port=3000",
12
12
  "build-emulator": "nuxt generate --dotenv .env.dev",
13
13
  "generate": "nuxt generate",
14
14
  "preview": "nuxt preview",
15
15
  "postinstall": "nuxt prepare"
16
16
  },
17
+ "dependencies": {
18
+ "@capacitor/android": "5.4.1",
19
+ "@capacitor/app": "5.0.6",
20
+ "@capacitor/core": "5.4.1",
21
+ "@capacitor/ios": "5.4.1",
22
+ "@capacitor/push-notifications": "5.1.0",
23
+ "@chenfengyuan/vue-number-input": "2",
24
+ "@edgedev/firebase": "latest",
25
+ "@unovis/ts": "^1.4.1",
26
+ "@unovis/vue": "^1.4.1",
27
+ "@vee-validate/zod": "^4.13.1",
28
+ "@vueuse/core": "10.4.1",
29
+ "class-variance-authority": "^0.7.0",
30
+ "clsx": "^2.1.1",
31
+ "embla-carousel": "^8.1.5",
32
+ "embla-carousel-vue": "^8.1.5",
33
+ "lucide-vue-next": "^0.394.0",
34
+ "maska": "2.1.9",
35
+ "radix-vue": "^1.8.3",
36
+ "tailwind-merge": "^2.3.0",
37
+ "tailwindcss-animate": "^1.0.7",
38
+ "v-calendar": "^3.1.2",
39
+ "vaul-vue": "^0.1.2",
40
+ "vee-validate": "^4.13.1",
41
+ "vue-sonner": "^1.1.2",
42
+ "zod": "^3.23.8"
43
+ },
17
44
  "devDependencies": {
18
45
  "@antfu/eslint-config": "0.35.1",
19
46
  "@capacitor/assets": "3.0.0",
20
47
  "@capacitor/cli": "5.4.1",
21
48
  "@mdi/font": "7.1.96",
22
49
  "@nuxt/devtools": "0.7.2",
50
+ "@nuxtjs/color-mode": "^3.4.1",
51
+ "@nuxtjs/tailwindcss": "^6.12.0",
23
52
  "@types/node": "18.11.18",
24
53
  "@vant/nuxt": "1.0.3",
25
54
  "eslint": "8.33.0",
26
55
  "firebase": "9.17.1",
27
56
  "nuxt": "3.9.3",
28
57
  "sass": "1.58.0",
58
+ "shadcn-nuxt": "^0.10.4",
29
59
  "typescript": "4.9.5",
30
60
  "vuedraggable": "4.1.0",
31
61
  "vuetify": "^3.5.1"
32
- },
33
- "dependencies": {
34
- "@capacitor/android": "5.4.1",
35
- "@capacitor/app": "5.0.6",
36
- "@capacitor/core": "5.4.1",
37
- "@capacitor/ios": "5.4.1",
38
- "@capacitor/push-notifications": "5.1.0",
39
- "@chenfengyuan/vue-number-input": "2",
40
- "@edgedev/firebase": "latest",
41
- "@vueuse/core": "10.4.1",
42
- "maska": "2.1.9"
43
62
  }
44
63
  }
@@ -0,0 +1,71 @@
1
+ <script setup>
2
+ import { toTypedSchema } from '@vee-validate/zod'
3
+ import * as z from 'zod'
4
+ const route = useRoute()
5
+ const router = useRouter()
6
+ // const edgeGlobal = inject('edgeGlobal')
7
+ const metaFields = [
8
+ {
9
+ field: 'name',
10
+ type: 'text',
11
+ label: 'Name',
12
+ hint: 'Your name, shown in the user interface.',
13
+ value: '',
14
+ },
15
+ ]
16
+ const orgFields = [
17
+ {
18
+ field: 'name',
19
+ type: 'text',
20
+ label: 'Name',
21
+ hint: '',
22
+ value: '',
23
+ },
24
+ ]
25
+
26
+ const orgSchema = toTypedSchema(z.object({
27
+ name: z.string({
28
+ required_error: 'Name is required',
29
+ }).min(1, { message: 'Name is required' }),
30
+ }))
31
+
32
+ const metaSchema = toTypedSchema(z.object({
33
+ name: z.string({
34
+ required_error: 'Name is required',
35
+ }).min(1, { message: 'Name is required' }),
36
+ }))
37
+
38
+ const config = useRuntimeConfig()
39
+
40
+ definePageMeta({
41
+ middleware: 'auth',
42
+ })
43
+
44
+ onMounted(() => {
45
+ if (!route.params.page) {
46
+ // router.push('/app/account/my-account')
47
+ }
48
+ })
49
+
50
+ const page = computed(() => {
51
+ return route.params.page
52
+ })
53
+ </script>
54
+
55
+ <template>
56
+ <div
57
+ v-if="edgeGlobal.edgeState.organizationDocPath"
58
+ class="p-3 w-full h-[calc(100vh-118px)] overflow-y-auto"
59
+ >
60
+ <div class="gap-2 h-full w-full justify-items-center">
61
+ <Card class="w-full h-full bg-muted/50 max-w-7xl m-auto pt-3">
62
+ <edge-organization-settings v-if="page === 'organization-settings'" :form-schema="orgSchema" :org-fields="orgFields" />
63
+ <edge-my-account v-if="page === 'my-account'" />
64
+ <edge-my-profile v-if="page === 'my-profile'" :form-schema="metaSchema" :meta-fields="metaFields" />
65
+ <edge-organization-members v-if="page === 'organization-members'" />
66
+ <edge-my-organizations v-if="page === 'my-organizations'" :registration-code="config.public.registrationCode" />
67
+ <edge-billing v-if="page === 'subscription'" />
68
+ </Card>
69
+ </div>
70
+ </div>
71
+ </template>