From eba2e90b6bccb4a1edc5760fb5b52f4a00072f73 Mon Sep 17 00:00:00 2001 From: arturka Date: Mon, 1 Dec 2025 22:05:10 +0100 Subject: [PATCH] feat: update nuxt and packages, add more UI elements, update tests --- .gitignore | 3 + {src => app}/app.vue | 9 +- {src => app}/assets/css/main.css | 0 {src => app}/components/header.vue | 0 {src => app}/components/range-picker.vue | 0 {src => app}/components/sortable-arrow.vue | 0 {src => app}/components/task-state.vue | 2 +- {src => app}/components/tasks-table.vue | 61 +- {src => app}/components/theme.vue | 0 {src => app}/components/ui/button/Button.vue | 8 +- app/components/ui/button/index.ts | 37 + .../components/ui/calendar/Calendar.vue | 0 .../components/ui/calendar/CalendarCell.vue | 0 .../ui/calendar/CalendarCellTrigger.vue | 0 .../components/ui/calendar/CalendarGrid.vue | 0 .../ui/calendar/CalendarGridBody.vue | 0 .../ui/calendar/CalendarGridHead.vue | 0 .../ui/calendar/CalendarGridRow.vue | 0 .../ui/calendar/CalendarHeadCell.vue | 0 .../components/ui/calendar/CalendarHeader.vue | 0 .../ui/calendar/CalendarHeading.vue | 0 .../ui/calendar/CalendarNextButton.vue | 0 .../ui/calendar/CalendarPrevButton.vue | 0 {src => app}/components/ui/calendar/index.ts | 0 {src => app}/components/ui/card/Card.vue | 0 .../components/ui/card/CardAction.vue | 0 .../components/ui/card/CardContent.vue | 0 .../components/ui/card/CardDescription.vue | 0 .../components/ui/card/CardFooter.vue | 0 .../components/ui/card/CardHeader.vue | 0 {src => app}/components/ui/card/CardTitle.vue | 0 {src => app}/components/ui/card/index.ts | 0 app/components/ui/checkbox/Checkbox.vue | 34 + app/components/ui/checkbox/index.ts | 1 + app/components/ui/dialog/Dialog.vue | 19 + app/components/ui/dialog/DialogClose.vue | 15 + app/components/ui/dialog/DialogContent.vue | 53 + .../ui/dialog/DialogDescription.vue | 23 + app/components/ui/dialog/DialogFooter.vue | 15 + app/components/ui/dialog/DialogHeader.vue | 17 + app/components/ui/dialog/DialogOverlay.vue | 21 + .../ui/dialog/DialogScrollContent.vue | 59 + app/components/ui/dialog/DialogTitle.vue | 23 + app/components/ui/dialog/DialogTrigger.vue | 15 + app/components/ui/dialog/index.ts | 10 + .../ui/dropdown-menu/DropdownMenu.vue | 0 .../DropdownMenuCheckboxItem.vue | 0 .../ui/dropdown-menu/DropdownMenuContent.vue | 0 .../ui/dropdown-menu/DropdownMenuGroup.vue | 0 .../ui/dropdown-menu/DropdownMenuItem.vue | 0 .../ui/dropdown-menu/DropdownMenuLabel.vue | 0 .../dropdown-menu/DropdownMenuRadioGroup.vue | 0 .../dropdown-menu/DropdownMenuRadioItem.vue | 0 .../dropdown-menu/DropdownMenuSeparator.vue | 0 .../ui/dropdown-menu/DropdownMenuShortcut.vue | 0 .../ui/dropdown-menu/DropdownMenuSub.vue | 0 .../dropdown-menu/DropdownMenuSubContent.vue | 0 .../dropdown-menu/DropdownMenuSubTrigger.vue | 0 .../ui/dropdown-menu/DropdownMenuTrigger.vue | 0 .../components/ui/dropdown-menu/index.ts | 0 {src => app}/components/ui/input/Input.vue | 0 {src => app}/components/ui/input/index.ts | 0 .../components/ui/popover/Popover.vue | 0 .../components/ui/popover/PopoverAnchor.vue | 0 .../components/ui/popover/PopoverContent.vue | 0 .../components/ui/popover/PopoverTrigger.vue | 0 {src => app}/components/ui/popover/index.ts | 0 .../ui/range-calendar/RangeCalendar.vue | 0 .../ui/range-calendar/RangeCalendarCell.vue | 0 .../RangeCalendarCellTrigger.vue | 0 .../ui/range-calendar/RangeCalendarGrid.vue | 0 .../range-calendar/RangeCalendarGridBody.vue | 0 .../range-calendar/RangeCalendarGridHead.vue | 0 .../range-calendar/RangeCalendarGridRow.vue | 0 .../range-calendar/RangeCalendarHeadCell.vue | 0 .../ui/range-calendar/RangeCalendarHeader.vue | 0 .../range-calendar/RangeCalendarHeading.vue | 0 .../RangeCalendarNextButton.vue | 0 .../RangeCalendarPrevButton.vue | 0 .../components/ui/range-calendar/index.ts | 0 {src => app}/components/ui/select/Select.vue | 0 .../components/ui/select/SelectContent.vue | 0 .../components/ui/select/SelectGroup.vue | 0 .../components/ui/select/SelectItem.vue | 0 .../components/ui/select/SelectItemText.vue | 0 .../components/ui/select/SelectLabel.vue | 0 .../ui/select/SelectScrollDownButton.vue | 0 .../ui/select/SelectScrollUpButton.vue | 0 .../components/ui/select/SelectSeparator.vue | 0 .../components/ui/select/SelectTrigger.vue | 0 .../components/ui/select/SelectValue.vue | 0 {src => app}/components/ui/select/index.ts | 0 {src => app}/components/ui/table/Table.vue | 0 .../components/ui/table/TableBody.vue | 0 .../components/ui/table/TableCaption.vue | 0 .../components/ui/table/TableCell.vue | 0 .../components/ui/table/TableEmpty.vue | 0 .../components/ui/table/TableFooter.vue | 0 .../components/ui/table/TableHead.vue | 0 .../components/ui/table/TableHeader.vue | 0 {src => app}/components/ui/table/TableRow.vue | 0 {src => app}/components/ui/table/index.ts | 0 {src => app}/components/ui/table/utils.ts | 0 {src => app}/lib/utils.ts | 0 app/pages/index.vue | 13 + {src => app}/pages/tasks/[id].vue | 12 +- {src => app}/pages/tasks/index.vue | 122 +- docs/images/preview1.png | Bin 227983 -> 370352 bytes docs/images/preview2.png | Bin 68799 -> 80503 bytes drizzle.config.ts | 14 +- nuxt.config.ts | 5 +- package.json | 45 +- pnpm-lock.yaml | 4864 ++++++++--------- public/favicon.ico | Bin 0 -> 183773 bytes {src/public => public}/robots.txt | 0 .../api/tasks/[id]/executed.post.ts | 4 +- .../api/tasks/[id]/index.get.ts | 2 +- .../api/tasks/[id]/queued.post.ts | 4 +- .../api/tasks/[id]/started.post.ts | 6 +- .../server => server}/api/tasks/backup.get.ts | 6 +- {src/server => server}/api/tasks/index.get.ts | 2 +- {src/server => server}/middleware/log.ts | 0 {src/server => server}/plugins/shutdown.ts | 2 +- {src/server => server}/plugins/startup.ts | 2 +- {src/server => server}/repositories/tasks.ts | 35 +- server/tasks/delete-old.ts | 26 + server/tasks/vacuum.ts | 14 + server/tsconfig.json | 3 + shared/db/index.ts | 11 + {src/server => shared}/db/schema.ts | 2 +- {src/server => shared}/env.ts | 0 {src/server => shared}/exceptions.ts | 0 {src/server => shared}/schemas/tasks.ts | 6 +- {src => shared}/types.ts | 0 {src/server => shared}/utils.ts | 2 +- src/components/ui/button/index.ts | 36 - src/pages/index.vue | 7 - src/public/favicon.ico | Bin 4286 -> 0 bytes src/server/db/index.ts | 7 - src/server/tsconfig.json | 3 - {src/tests => tests}/helpers/db-test-utils.ts | 2 +- {src/tests => tests}/task-flow.nuxt.spec.ts | 2 +- 142 files changed, 2853 insertions(+), 2831 deletions(-) rename {src => app}/app.vue (61%) rename {src => app}/assets/css/main.css (100%) rename {src => app}/components/header.vue (100%) rename {src => app}/components/range-picker.vue (100%) rename {src => app}/components/sortable-arrow.vue (100%) rename {src => app}/components/task-state.vue (91%) rename {src => app}/components/tasks-table.vue (69%) rename {src => app}/components/theme.vue (100%) rename {src => app}/components/ui/button/Button.vue (74%) create mode 100644 app/components/ui/button/index.ts rename {src => app}/components/ui/calendar/Calendar.vue (100%) rename {src => app}/components/ui/calendar/CalendarCell.vue (100%) rename {src => app}/components/ui/calendar/CalendarCellTrigger.vue (100%) rename {src => app}/components/ui/calendar/CalendarGrid.vue (100%) rename {src => app}/components/ui/calendar/CalendarGridBody.vue (100%) rename {src => app}/components/ui/calendar/CalendarGridHead.vue (100%) rename {src => app}/components/ui/calendar/CalendarGridRow.vue (100%) rename {src => app}/components/ui/calendar/CalendarHeadCell.vue (100%) rename {src => app}/components/ui/calendar/CalendarHeader.vue (100%) rename {src => app}/components/ui/calendar/CalendarHeading.vue (100%) rename {src => app}/components/ui/calendar/CalendarNextButton.vue (100%) rename {src => app}/components/ui/calendar/CalendarPrevButton.vue (100%) rename {src => app}/components/ui/calendar/index.ts (100%) rename {src => app}/components/ui/card/Card.vue (100%) rename {src => app}/components/ui/card/CardAction.vue (100%) rename {src => app}/components/ui/card/CardContent.vue (100%) rename {src => app}/components/ui/card/CardDescription.vue (100%) rename {src => app}/components/ui/card/CardFooter.vue (100%) rename {src => app}/components/ui/card/CardHeader.vue (100%) rename {src => app}/components/ui/card/CardTitle.vue (100%) rename {src => app}/components/ui/card/index.ts (100%) create mode 100644 app/components/ui/checkbox/Checkbox.vue create mode 100644 app/components/ui/checkbox/index.ts create mode 100644 app/components/ui/dialog/Dialog.vue create mode 100644 app/components/ui/dialog/DialogClose.vue create mode 100644 app/components/ui/dialog/DialogContent.vue create mode 100644 app/components/ui/dialog/DialogDescription.vue create mode 100644 app/components/ui/dialog/DialogFooter.vue create mode 100644 app/components/ui/dialog/DialogHeader.vue create mode 100644 app/components/ui/dialog/DialogOverlay.vue create mode 100644 app/components/ui/dialog/DialogScrollContent.vue create mode 100644 app/components/ui/dialog/DialogTitle.vue create mode 100644 app/components/ui/dialog/DialogTrigger.vue create mode 100644 app/components/ui/dialog/index.ts rename {src => app}/components/ui/dropdown-menu/DropdownMenu.vue (100%) rename {src => app}/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue (100%) rename {src => app}/components/ui/dropdown-menu/DropdownMenuContent.vue (100%) rename {src => app}/components/ui/dropdown-menu/DropdownMenuGroup.vue (100%) rename {src => app}/components/ui/dropdown-menu/DropdownMenuItem.vue (100%) rename {src => app}/components/ui/dropdown-menu/DropdownMenuLabel.vue (100%) rename {src => app}/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue (100%) rename {src => app}/components/ui/dropdown-menu/DropdownMenuRadioItem.vue (100%) rename {src => app}/components/ui/dropdown-menu/DropdownMenuSeparator.vue (100%) rename {src => app}/components/ui/dropdown-menu/DropdownMenuShortcut.vue (100%) rename {src => app}/components/ui/dropdown-menu/DropdownMenuSub.vue (100%) rename {src => app}/components/ui/dropdown-menu/DropdownMenuSubContent.vue (100%) rename {src => app}/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue (100%) rename {src => app}/components/ui/dropdown-menu/DropdownMenuTrigger.vue (100%) rename {src => app}/components/ui/dropdown-menu/index.ts (100%) rename {src => app}/components/ui/input/Input.vue (100%) rename {src => app}/components/ui/input/index.ts (100%) rename {src => app}/components/ui/popover/Popover.vue (100%) rename {src => app}/components/ui/popover/PopoverAnchor.vue (100%) rename {src => app}/components/ui/popover/PopoverContent.vue (100%) rename {src => app}/components/ui/popover/PopoverTrigger.vue (100%) rename {src => app}/components/ui/popover/index.ts (100%) rename {src => app}/components/ui/range-calendar/RangeCalendar.vue (100%) rename {src => app}/components/ui/range-calendar/RangeCalendarCell.vue (100%) rename {src => app}/components/ui/range-calendar/RangeCalendarCellTrigger.vue (100%) rename {src => app}/components/ui/range-calendar/RangeCalendarGrid.vue (100%) rename {src => app}/components/ui/range-calendar/RangeCalendarGridBody.vue (100%) rename {src => app}/components/ui/range-calendar/RangeCalendarGridHead.vue (100%) rename {src => app}/components/ui/range-calendar/RangeCalendarGridRow.vue (100%) rename {src => app}/components/ui/range-calendar/RangeCalendarHeadCell.vue (100%) rename {src => app}/components/ui/range-calendar/RangeCalendarHeader.vue (100%) rename {src => app}/components/ui/range-calendar/RangeCalendarHeading.vue (100%) rename {src => app}/components/ui/range-calendar/RangeCalendarNextButton.vue (100%) rename {src => app}/components/ui/range-calendar/RangeCalendarPrevButton.vue (100%) rename {src => app}/components/ui/range-calendar/index.ts (100%) rename {src => app}/components/ui/select/Select.vue (100%) rename {src => app}/components/ui/select/SelectContent.vue (100%) rename {src => app}/components/ui/select/SelectGroup.vue (100%) rename {src => app}/components/ui/select/SelectItem.vue (100%) rename {src => app}/components/ui/select/SelectItemText.vue (100%) rename {src => app}/components/ui/select/SelectLabel.vue (100%) rename {src => app}/components/ui/select/SelectScrollDownButton.vue (100%) rename {src => app}/components/ui/select/SelectScrollUpButton.vue (100%) rename {src => app}/components/ui/select/SelectSeparator.vue (100%) rename {src => app}/components/ui/select/SelectTrigger.vue (100%) rename {src => app}/components/ui/select/SelectValue.vue (100%) rename {src => app}/components/ui/select/index.ts (100%) rename {src => app}/components/ui/table/Table.vue (100%) rename {src => app}/components/ui/table/TableBody.vue (100%) rename {src => app}/components/ui/table/TableCaption.vue (100%) rename {src => app}/components/ui/table/TableCell.vue (100%) rename {src => app}/components/ui/table/TableEmpty.vue (100%) rename {src => app}/components/ui/table/TableFooter.vue (100%) rename {src => app}/components/ui/table/TableHead.vue (100%) rename {src => app}/components/ui/table/TableHeader.vue (100%) rename {src => app}/components/ui/table/TableRow.vue (100%) rename {src => app}/components/ui/table/index.ts (100%) rename {src => app}/components/ui/table/utils.ts (100%) rename {src => app}/lib/utils.ts (100%) create mode 100644 app/pages/index.vue rename {src => app}/pages/tasks/[id].vue (92%) rename {src => app}/pages/tasks/index.vue (68%) create mode 100644 public/favicon.ico rename {src/public => public}/robots.txt (100%) rename {src/server => server}/api/tasks/[id]/executed.post.ts (91%) rename {src/server => server}/api/tasks/[id]/index.get.ts (81%) rename {src/server => server}/api/tasks/[id]/queued.post.ts (92%) rename {src/server => server}/api/tasks/[id]/started.post.ts (88%) rename {src/server => server}/api/tasks/backup.get.ts (79%) rename {src/server => server}/api/tasks/index.get.ts (90%) rename {src/server => server}/middleware/log.ts (100%) rename {src/server => server}/plugins/shutdown.ts (75%) rename {src/server => server}/plugins/startup.ts (85%) rename {src/server => server}/repositories/tasks.ts (79%) create mode 100644 server/tasks/delete-old.ts create mode 100644 server/tasks/vacuum.ts create mode 100644 server/tsconfig.json create mode 100644 shared/db/index.ts rename {src/server => shared}/db/schema.ts (95%) rename {src/server => shared}/env.ts (100%) rename {src/server => shared}/exceptions.ts (100%) rename {src/server => shared}/schemas/tasks.ts (91%) rename {src => shared}/types.ts (100%) rename {src/server => shared}/utils.ts (89%) delete mode 100644 src/components/ui/button/index.ts delete mode 100644 src/pages/index.vue delete mode 100644 src/public/favicon.ico delete mode 100644 src/server/db/index.ts delete mode 100644 src/server/tsconfig.json rename {src/tests => tests}/helpers/db-test-utils.ts (89%) rename {src/tests => tests}/task-flow.nuxt.spec.ts (97%) diff --git a/.gitignore b/.gitignore index 35c3afb..7b56edb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,8 @@ *.db dbschema.sql +*.db-shm +*.db-wal +.data # Nuxt dev/build outputs .output diff --git a/src/app.vue b/app/app.vue similarity index 61% rename from src/app.vue rename to app/app.vue index 7501589..9b20194 100644 --- a/src/app.vue +++ b/app/app.vue @@ -1,6 +1,7 @@ + + diff --git a/src/assets/css/main.css b/app/assets/css/main.css similarity index 100% rename from src/assets/css/main.css rename to app/assets/css/main.css diff --git a/src/components/header.vue b/app/components/header.vue similarity index 100% rename from src/components/header.vue rename to app/components/header.vue diff --git a/src/components/range-picker.vue b/app/components/range-picker.vue similarity index 100% rename from src/components/range-picker.vue rename to app/components/range-picker.vue diff --git a/src/components/sortable-arrow.vue b/app/components/sortable-arrow.vue similarity index 100% rename from src/components/sortable-arrow.vue rename to app/components/sortable-arrow.vue diff --git a/src/components/task-state.vue b/app/components/task-state.vue similarity index 91% rename from src/components/task-state.vue rename to app/components/task-state.vue index 4585a4d..74aed96 100644 --- a/src/components/task-state.vue +++ b/app/components/task-state.vue @@ -1,5 +1,5 @@ diff --git a/app/components/ui/button/index.ts b/app/components/ui/button/index.ts new file mode 100644 index 0000000..7779332 --- /dev/null +++ b/app/components/ui/button/index.ts @@ -0,0 +1,37 @@ +import type { VariantProps } from 'class-variance-authority' +import { cva } from 'class-variance-authority' + +export { default as Button } from './Button.vue' + +export const buttonVariants = cva( + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", + { + variants: { + variant: { + default: 'bg-primary text-primary-foreground hover:bg-primary/90', + destructive: + 'bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60', + outline: + 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50', + secondary: + 'bg-secondary text-secondary-foreground hover:bg-secondary/80', + ghost: + 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50', + link: 'text-primary underline-offset-4 hover:underline' + }, + size: { + default: 'h-9 px-4 py-2 has-[>svg]:px-3', + sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5', + lg: 'h-10 rounded-md px-6 has-[>svg]:px-4', + icon: 'size-9', + 'icon-sm': 'size-8', + 'icon-lg': 'size-10' + } + }, + defaultVariants: { + variant: 'default', + size: 'default' + } + } +) +export type ButtonVariants = VariantProps diff --git a/src/components/ui/calendar/Calendar.vue b/app/components/ui/calendar/Calendar.vue similarity index 100% rename from src/components/ui/calendar/Calendar.vue rename to app/components/ui/calendar/Calendar.vue diff --git a/src/components/ui/calendar/CalendarCell.vue b/app/components/ui/calendar/CalendarCell.vue similarity index 100% rename from src/components/ui/calendar/CalendarCell.vue rename to app/components/ui/calendar/CalendarCell.vue diff --git a/src/components/ui/calendar/CalendarCellTrigger.vue b/app/components/ui/calendar/CalendarCellTrigger.vue similarity index 100% rename from src/components/ui/calendar/CalendarCellTrigger.vue rename to app/components/ui/calendar/CalendarCellTrigger.vue diff --git a/src/components/ui/calendar/CalendarGrid.vue b/app/components/ui/calendar/CalendarGrid.vue similarity index 100% rename from src/components/ui/calendar/CalendarGrid.vue rename to app/components/ui/calendar/CalendarGrid.vue diff --git a/src/components/ui/calendar/CalendarGridBody.vue b/app/components/ui/calendar/CalendarGridBody.vue similarity index 100% rename from src/components/ui/calendar/CalendarGridBody.vue rename to app/components/ui/calendar/CalendarGridBody.vue diff --git a/src/components/ui/calendar/CalendarGridHead.vue b/app/components/ui/calendar/CalendarGridHead.vue similarity index 100% rename from src/components/ui/calendar/CalendarGridHead.vue rename to app/components/ui/calendar/CalendarGridHead.vue diff --git a/src/components/ui/calendar/CalendarGridRow.vue b/app/components/ui/calendar/CalendarGridRow.vue similarity index 100% rename from src/components/ui/calendar/CalendarGridRow.vue rename to app/components/ui/calendar/CalendarGridRow.vue diff --git a/src/components/ui/calendar/CalendarHeadCell.vue b/app/components/ui/calendar/CalendarHeadCell.vue similarity index 100% rename from src/components/ui/calendar/CalendarHeadCell.vue rename to app/components/ui/calendar/CalendarHeadCell.vue diff --git a/src/components/ui/calendar/CalendarHeader.vue b/app/components/ui/calendar/CalendarHeader.vue similarity index 100% rename from src/components/ui/calendar/CalendarHeader.vue rename to app/components/ui/calendar/CalendarHeader.vue diff --git a/src/components/ui/calendar/CalendarHeading.vue b/app/components/ui/calendar/CalendarHeading.vue similarity index 100% rename from src/components/ui/calendar/CalendarHeading.vue rename to app/components/ui/calendar/CalendarHeading.vue diff --git a/src/components/ui/calendar/CalendarNextButton.vue b/app/components/ui/calendar/CalendarNextButton.vue similarity index 100% rename from src/components/ui/calendar/CalendarNextButton.vue rename to app/components/ui/calendar/CalendarNextButton.vue diff --git a/src/components/ui/calendar/CalendarPrevButton.vue b/app/components/ui/calendar/CalendarPrevButton.vue similarity index 100% rename from src/components/ui/calendar/CalendarPrevButton.vue rename to app/components/ui/calendar/CalendarPrevButton.vue diff --git a/src/components/ui/calendar/index.ts b/app/components/ui/calendar/index.ts similarity index 100% rename from src/components/ui/calendar/index.ts rename to app/components/ui/calendar/index.ts diff --git a/src/components/ui/card/Card.vue b/app/components/ui/card/Card.vue similarity index 100% rename from src/components/ui/card/Card.vue rename to app/components/ui/card/Card.vue diff --git a/src/components/ui/card/CardAction.vue b/app/components/ui/card/CardAction.vue similarity index 100% rename from src/components/ui/card/CardAction.vue rename to app/components/ui/card/CardAction.vue diff --git a/src/components/ui/card/CardContent.vue b/app/components/ui/card/CardContent.vue similarity index 100% rename from src/components/ui/card/CardContent.vue rename to app/components/ui/card/CardContent.vue diff --git a/src/components/ui/card/CardDescription.vue b/app/components/ui/card/CardDescription.vue similarity index 100% rename from src/components/ui/card/CardDescription.vue rename to app/components/ui/card/CardDescription.vue diff --git a/src/components/ui/card/CardFooter.vue b/app/components/ui/card/CardFooter.vue similarity index 100% rename from src/components/ui/card/CardFooter.vue rename to app/components/ui/card/CardFooter.vue diff --git a/src/components/ui/card/CardHeader.vue b/app/components/ui/card/CardHeader.vue similarity index 100% rename from src/components/ui/card/CardHeader.vue rename to app/components/ui/card/CardHeader.vue diff --git a/src/components/ui/card/CardTitle.vue b/app/components/ui/card/CardTitle.vue similarity index 100% rename from src/components/ui/card/CardTitle.vue rename to app/components/ui/card/CardTitle.vue diff --git a/src/components/ui/card/index.ts b/app/components/ui/card/index.ts similarity index 100% rename from src/components/ui/card/index.ts rename to app/components/ui/card/index.ts diff --git a/app/components/ui/checkbox/Checkbox.vue b/app/components/ui/checkbox/Checkbox.vue new file mode 100644 index 0000000..58e42f2 --- /dev/null +++ b/app/components/ui/checkbox/Checkbox.vue @@ -0,0 +1,34 @@ + + + diff --git a/app/components/ui/checkbox/index.ts b/app/components/ui/checkbox/index.ts new file mode 100644 index 0000000..3391a85 --- /dev/null +++ b/app/components/ui/checkbox/index.ts @@ -0,0 +1 @@ +export { default as Checkbox } from "./Checkbox.vue" diff --git a/app/components/ui/dialog/Dialog.vue b/app/components/ui/dialog/Dialog.vue new file mode 100644 index 0000000..ade5260 --- /dev/null +++ b/app/components/ui/dialog/Dialog.vue @@ -0,0 +1,19 @@ + + + diff --git a/app/components/ui/dialog/DialogClose.vue b/app/components/ui/dialog/DialogClose.vue new file mode 100644 index 0000000..c5fae04 --- /dev/null +++ b/app/components/ui/dialog/DialogClose.vue @@ -0,0 +1,15 @@ + + + diff --git a/app/components/ui/dialog/DialogContent.vue b/app/components/ui/dialog/DialogContent.vue new file mode 100644 index 0000000..7f86b47 --- /dev/null +++ b/app/components/ui/dialog/DialogContent.vue @@ -0,0 +1,53 @@ + + + diff --git a/app/components/ui/dialog/DialogDescription.vue b/app/components/ui/dialog/DialogDescription.vue new file mode 100644 index 0000000..f52e655 --- /dev/null +++ b/app/components/ui/dialog/DialogDescription.vue @@ -0,0 +1,23 @@ + + + diff --git a/app/components/ui/dialog/DialogFooter.vue b/app/components/ui/dialog/DialogFooter.vue new file mode 100644 index 0000000..0a936e6 --- /dev/null +++ b/app/components/ui/dialog/DialogFooter.vue @@ -0,0 +1,15 @@ + + + diff --git a/app/components/ui/dialog/DialogHeader.vue b/app/components/ui/dialog/DialogHeader.vue new file mode 100644 index 0000000..bfc3c64 --- /dev/null +++ b/app/components/ui/dialog/DialogHeader.vue @@ -0,0 +1,17 @@ + + + diff --git a/app/components/ui/dialog/DialogOverlay.vue b/app/components/ui/dialog/DialogOverlay.vue new file mode 100644 index 0000000..7790077 --- /dev/null +++ b/app/components/ui/dialog/DialogOverlay.vue @@ -0,0 +1,21 @@ + + + diff --git a/app/components/ui/dialog/DialogScrollContent.vue b/app/components/ui/dialog/DialogScrollContent.vue new file mode 100644 index 0000000..f2475db --- /dev/null +++ b/app/components/ui/dialog/DialogScrollContent.vue @@ -0,0 +1,59 @@ + + + diff --git a/app/components/ui/dialog/DialogTitle.vue b/app/components/ui/dialog/DialogTitle.vue new file mode 100644 index 0000000..860f01a --- /dev/null +++ b/app/components/ui/dialog/DialogTitle.vue @@ -0,0 +1,23 @@ + + + diff --git a/app/components/ui/dialog/DialogTrigger.vue b/app/components/ui/dialog/DialogTrigger.vue new file mode 100644 index 0000000..49667e9 --- /dev/null +++ b/app/components/ui/dialog/DialogTrigger.vue @@ -0,0 +1,15 @@ + + + diff --git a/app/components/ui/dialog/index.ts b/app/components/ui/dialog/index.ts new file mode 100644 index 0000000..6768b09 --- /dev/null +++ b/app/components/ui/dialog/index.ts @@ -0,0 +1,10 @@ +export { default as Dialog } from "./Dialog.vue" +export { default as DialogClose } from "./DialogClose.vue" +export { default as DialogContent } from "./DialogContent.vue" +export { default as DialogDescription } from "./DialogDescription.vue" +export { default as DialogFooter } from "./DialogFooter.vue" +export { default as DialogHeader } from "./DialogHeader.vue" +export { default as DialogOverlay } from "./DialogOverlay.vue" +export { default as DialogScrollContent } from "./DialogScrollContent.vue" +export { default as DialogTitle } from "./DialogTitle.vue" +export { default as DialogTrigger } from "./DialogTrigger.vue" diff --git a/src/components/ui/dropdown-menu/DropdownMenu.vue b/app/components/ui/dropdown-menu/DropdownMenu.vue similarity index 100% rename from src/components/ui/dropdown-menu/DropdownMenu.vue rename to app/components/ui/dropdown-menu/DropdownMenu.vue diff --git a/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue b/app/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue similarity index 100% rename from src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue rename to app/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue diff --git a/src/components/ui/dropdown-menu/DropdownMenuContent.vue b/app/components/ui/dropdown-menu/DropdownMenuContent.vue similarity index 100% rename from src/components/ui/dropdown-menu/DropdownMenuContent.vue rename to app/components/ui/dropdown-menu/DropdownMenuContent.vue diff --git a/src/components/ui/dropdown-menu/DropdownMenuGroup.vue b/app/components/ui/dropdown-menu/DropdownMenuGroup.vue similarity index 100% rename from src/components/ui/dropdown-menu/DropdownMenuGroup.vue rename to app/components/ui/dropdown-menu/DropdownMenuGroup.vue diff --git a/src/components/ui/dropdown-menu/DropdownMenuItem.vue b/app/components/ui/dropdown-menu/DropdownMenuItem.vue similarity index 100% rename from src/components/ui/dropdown-menu/DropdownMenuItem.vue rename to app/components/ui/dropdown-menu/DropdownMenuItem.vue diff --git a/src/components/ui/dropdown-menu/DropdownMenuLabel.vue b/app/components/ui/dropdown-menu/DropdownMenuLabel.vue similarity index 100% rename from src/components/ui/dropdown-menu/DropdownMenuLabel.vue rename to app/components/ui/dropdown-menu/DropdownMenuLabel.vue diff --git a/src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue b/app/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue similarity index 100% rename from src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue rename to app/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue diff --git a/src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue b/app/components/ui/dropdown-menu/DropdownMenuRadioItem.vue similarity index 100% rename from src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue rename to app/components/ui/dropdown-menu/DropdownMenuRadioItem.vue diff --git a/src/components/ui/dropdown-menu/DropdownMenuSeparator.vue b/app/components/ui/dropdown-menu/DropdownMenuSeparator.vue similarity index 100% rename from src/components/ui/dropdown-menu/DropdownMenuSeparator.vue rename to app/components/ui/dropdown-menu/DropdownMenuSeparator.vue diff --git a/src/components/ui/dropdown-menu/DropdownMenuShortcut.vue b/app/components/ui/dropdown-menu/DropdownMenuShortcut.vue similarity index 100% rename from src/components/ui/dropdown-menu/DropdownMenuShortcut.vue rename to app/components/ui/dropdown-menu/DropdownMenuShortcut.vue diff --git a/src/components/ui/dropdown-menu/DropdownMenuSub.vue b/app/components/ui/dropdown-menu/DropdownMenuSub.vue similarity index 100% rename from src/components/ui/dropdown-menu/DropdownMenuSub.vue rename to app/components/ui/dropdown-menu/DropdownMenuSub.vue diff --git a/src/components/ui/dropdown-menu/DropdownMenuSubContent.vue b/app/components/ui/dropdown-menu/DropdownMenuSubContent.vue similarity index 100% rename from src/components/ui/dropdown-menu/DropdownMenuSubContent.vue rename to app/components/ui/dropdown-menu/DropdownMenuSubContent.vue diff --git a/src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue b/app/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue similarity index 100% rename from src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue rename to app/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue diff --git a/src/components/ui/dropdown-menu/DropdownMenuTrigger.vue b/app/components/ui/dropdown-menu/DropdownMenuTrigger.vue similarity index 100% rename from src/components/ui/dropdown-menu/DropdownMenuTrigger.vue rename to app/components/ui/dropdown-menu/DropdownMenuTrigger.vue diff --git a/src/components/ui/dropdown-menu/index.ts b/app/components/ui/dropdown-menu/index.ts similarity index 100% rename from src/components/ui/dropdown-menu/index.ts rename to app/components/ui/dropdown-menu/index.ts diff --git a/src/components/ui/input/Input.vue b/app/components/ui/input/Input.vue similarity index 100% rename from src/components/ui/input/Input.vue rename to app/components/ui/input/Input.vue diff --git a/src/components/ui/input/index.ts b/app/components/ui/input/index.ts similarity index 100% rename from src/components/ui/input/index.ts rename to app/components/ui/input/index.ts diff --git a/src/components/ui/popover/Popover.vue b/app/components/ui/popover/Popover.vue similarity index 100% rename from src/components/ui/popover/Popover.vue rename to app/components/ui/popover/Popover.vue diff --git a/src/components/ui/popover/PopoverAnchor.vue b/app/components/ui/popover/PopoverAnchor.vue similarity index 100% rename from src/components/ui/popover/PopoverAnchor.vue rename to app/components/ui/popover/PopoverAnchor.vue diff --git a/src/components/ui/popover/PopoverContent.vue b/app/components/ui/popover/PopoverContent.vue similarity index 100% rename from src/components/ui/popover/PopoverContent.vue rename to app/components/ui/popover/PopoverContent.vue diff --git a/src/components/ui/popover/PopoverTrigger.vue b/app/components/ui/popover/PopoverTrigger.vue similarity index 100% rename from src/components/ui/popover/PopoverTrigger.vue rename to app/components/ui/popover/PopoverTrigger.vue diff --git a/src/components/ui/popover/index.ts b/app/components/ui/popover/index.ts similarity index 100% rename from src/components/ui/popover/index.ts rename to app/components/ui/popover/index.ts diff --git a/src/components/ui/range-calendar/RangeCalendar.vue b/app/components/ui/range-calendar/RangeCalendar.vue similarity index 100% rename from src/components/ui/range-calendar/RangeCalendar.vue rename to app/components/ui/range-calendar/RangeCalendar.vue diff --git a/src/components/ui/range-calendar/RangeCalendarCell.vue b/app/components/ui/range-calendar/RangeCalendarCell.vue similarity index 100% rename from src/components/ui/range-calendar/RangeCalendarCell.vue rename to app/components/ui/range-calendar/RangeCalendarCell.vue diff --git a/src/components/ui/range-calendar/RangeCalendarCellTrigger.vue b/app/components/ui/range-calendar/RangeCalendarCellTrigger.vue similarity index 100% rename from src/components/ui/range-calendar/RangeCalendarCellTrigger.vue rename to app/components/ui/range-calendar/RangeCalendarCellTrigger.vue diff --git a/src/components/ui/range-calendar/RangeCalendarGrid.vue b/app/components/ui/range-calendar/RangeCalendarGrid.vue similarity index 100% rename from src/components/ui/range-calendar/RangeCalendarGrid.vue rename to app/components/ui/range-calendar/RangeCalendarGrid.vue diff --git a/src/components/ui/range-calendar/RangeCalendarGridBody.vue b/app/components/ui/range-calendar/RangeCalendarGridBody.vue similarity index 100% rename from src/components/ui/range-calendar/RangeCalendarGridBody.vue rename to app/components/ui/range-calendar/RangeCalendarGridBody.vue diff --git a/src/components/ui/range-calendar/RangeCalendarGridHead.vue b/app/components/ui/range-calendar/RangeCalendarGridHead.vue similarity index 100% rename from src/components/ui/range-calendar/RangeCalendarGridHead.vue rename to app/components/ui/range-calendar/RangeCalendarGridHead.vue diff --git a/src/components/ui/range-calendar/RangeCalendarGridRow.vue b/app/components/ui/range-calendar/RangeCalendarGridRow.vue similarity index 100% rename from src/components/ui/range-calendar/RangeCalendarGridRow.vue rename to app/components/ui/range-calendar/RangeCalendarGridRow.vue diff --git a/src/components/ui/range-calendar/RangeCalendarHeadCell.vue b/app/components/ui/range-calendar/RangeCalendarHeadCell.vue similarity index 100% rename from src/components/ui/range-calendar/RangeCalendarHeadCell.vue rename to app/components/ui/range-calendar/RangeCalendarHeadCell.vue diff --git a/src/components/ui/range-calendar/RangeCalendarHeader.vue b/app/components/ui/range-calendar/RangeCalendarHeader.vue similarity index 100% rename from src/components/ui/range-calendar/RangeCalendarHeader.vue rename to app/components/ui/range-calendar/RangeCalendarHeader.vue diff --git a/src/components/ui/range-calendar/RangeCalendarHeading.vue b/app/components/ui/range-calendar/RangeCalendarHeading.vue similarity index 100% rename from src/components/ui/range-calendar/RangeCalendarHeading.vue rename to app/components/ui/range-calendar/RangeCalendarHeading.vue diff --git a/src/components/ui/range-calendar/RangeCalendarNextButton.vue b/app/components/ui/range-calendar/RangeCalendarNextButton.vue similarity index 100% rename from src/components/ui/range-calendar/RangeCalendarNextButton.vue rename to app/components/ui/range-calendar/RangeCalendarNextButton.vue diff --git a/src/components/ui/range-calendar/RangeCalendarPrevButton.vue b/app/components/ui/range-calendar/RangeCalendarPrevButton.vue similarity index 100% rename from src/components/ui/range-calendar/RangeCalendarPrevButton.vue rename to app/components/ui/range-calendar/RangeCalendarPrevButton.vue diff --git a/src/components/ui/range-calendar/index.ts b/app/components/ui/range-calendar/index.ts similarity index 100% rename from src/components/ui/range-calendar/index.ts rename to app/components/ui/range-calendar/index.ts diff --git a/src/components/ui/select/Select.vue b/app/components/ui/select/Select.vue similarity index 100% rename from src/components/ui/select/Select.vue rename to app/components/ui/select/Select.vue diff --git a/src/components/ui/select/SelectContent.vue b/app/components/ui/select/SelectContent.vue similarity index 100% rename from src/components/ui/select/SelectContent.vue rename to app/components/ui/select/SelectContent.vue diff --git a/src/components/ui/select/SelectGroup.vue b/app/components/ui/select/SelectGroup.vue similarity index 100% rename from src/components/ui/select/SelectGroup.vue rename to app/components/ui/select/SelectGroup.vue diff --git a/src/components/ui/select/SelectItem.vue b/app/components/ui/select/SelectItem.vue similarity index 100% rename from src/components/ui/select/SelectItem.vue rename to app/components/ui/select/SelectItem.vue diff --git a/src/components/ui/select/SelectItemText.vue b/app/components/ui/select/SelectItemText.vue similarity index 100% rename from src/components/ui/select/SelectItemText.vue rename to app/components/ui/select/SelectItemText.vue diff --git a/src/components/ui/select/SelectLabel.vue b/app/components/ui/select/SelectLabel.vue similarity index 100% rename from src/components/ui/select/SelectLabel.vue rename to app/components/ui/select/SelectLabel.vue diff --git a/src/components/ui/select/SelectScrollDownButton.vue b/app/components/ui/select/SelectScrollDownButton.vue similarity index 100% rename from src/components/ui/select/SelectScrollDownButton.vue rename to app/components/ui/select/SelectScrollDownButton.vue diff --git a/src/components/ui/select/SelectScrollUpButton.vue b/app/components/ui/select/SelectScrollUpButton.vue similarity index 100% rename from src/components/ui/select/SelectScrollUpButton.vue rename to app/components/ui/select/SelectScrollUpButton.vue diff --git a/src/components/ui/select/SelectSeparator.vue b/app/components/ui/select/SelectSeparator.vue similarity index 100% rename from src/components/ui/select/SelectSeparator.vue rename to app/components/ui/select/SelectSeparator.vue diff --git a/src/components/ui/select/SelectTrigger.vue b/app/components/ui/select/SelectTrigger.vue similarity index 100% rename from src/components/ui/select/SelectTrigger.vue rename to app/components/ui/select/SelectTrigger.vue diff --git a/src/components/ui/select/SelectValue.vue b/app/components/ui/select/SelectValue.vue similarity index 100% rename from src/components/ui/select/SelectValue.vue rename to app/components/ui/select/SelectValue.vue diff --git a/src/components/ui/select/index.ts b/app/components/ui/select/index.ts similarity index 100% rename from src/components/ui/select/index.ts rename to app/components/ui/select/index.ts diff --git a/src/components/ui/table/Table.vue b/app/components/ui/table/Table.vue similarity index 100% rename from src/components/ui/table/Table.vue rename to app/components/ui/table/Table.vue diff --git a/src/components/ui/table/TableBody.vue b/app/components/ui/table/TableBody.vue similarity index 100% rename from src/components/ui/table/TableBody.vue rename to app/components/ui/table/TableBody.vue diff --git a/src/components/ui/table/TableCaption.vue b/app/components/ui/table/TableCaption.vue similarity index 100% rename from src/components/ui/table/TableCaption.vue rename to app/components/ui/table/TableCaption.vue diff --git a/src/components/ui/table/TableCell.vue b/app/components/ui/table/TableCell.vue similarity index 100% rename from src/components/ui/table/TableCell.vue rename to app/components/ui/table/TableCell.vue diff --git a/src/components/ui/table/TableEmpty.vue b/app/components/ui/table/TableEmpty.vue similarity index 100% rename from src/components/ui/table/TableEmpty.vue rename to app/components/ui/table/TableEmpty.vue diff --git a/src/components/ui/table/TableFooter.vue b/app/components/ui/table/TableFooter.vue similarity index 100% rename from src/components/ui/table/TableFooter.vue rename to app/components/ui/table/TableFooter.vue diff --git a/src/components/ui/table/TableHead.vue b/app/components/ui/table/TableHead.vue similarity index 100% rename from src/components/ui/table/TableHead.vue rename to app/components/ui/table/TableHead.vue diff --git a/src/components/ui/table/TableHeader.vue b/app/components/ui/table/TableHeader.vue similarity index 100% rename from src/components/ui/table/TableHeader.vue rename to app/components/ui/table/TableHeader.vue diff --git a/src/components/ui/table/TableRow.vue b/app/components/ui/table/TableRow.vue similarity index 100% rename from src/components/ui/table/TableRow.vue rename to app/components/ui/table/TableRow.vue diff --git a/src/components/ui/table/index.ts b/app/components/ui/table/index.ts similarity index 100% rename from src/components/ui/table/index.ts rename to app/components/ui/table/index.ts diff --git a/src/components/ui/table/utils.ts b/app/components/ui/table/utils.ts similarity index 100% rename from src/components/ui/table/utils.ts rename to app/components/ui/table/utils.ts diff --git a/src/lib/utils.ts b/app/lib/utils.ts similarity index 100% rename from src/lib/utils.ts rename to app/lib/utils.ts diff --git a/app/pages/index.vue b/app/pages/index.vue new file mode 100644 index 0000000..f158c47 --- /dev/null +++ b/app/pages/index.vue @@ -0,0 +1,13 @@ + + diff --git a/src/pages/tasks/[id].vue b/app/pages/tasks/[id].vue similarity index 92% rename from src/pages/tasks/[id].vue rename to app/pages/tasks/[id].vue index cc0fd7c..00ef189 100644 --- a/src/pages/tasks/[id].vue +++ b/app/pages/tasks/[id].vue @@ -7,7 +7,7 @@ import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card' import { useIntervalFn } from '@vueuse/core' import { useRoute, useRouter } from 'vue-router' import { useFetch } from '#imports' -import type { TaskSelect } from '~/server/db/schema' +import type { TaskSelect } from '~~/shared/db/schema' const route = useRoute() const router = useRouter() @@ -26,7 +26,7 @@ useIntervalFn(() => { const handleCopy = (value: string) => { copyToClipboard(value) - toast('Successfully copied', { + toast.success('Successfully copied', { description: 'The ID has been copied to your clipboard' }) } @@ -84,7 +84,13 @@ const handleCopy = (value: string) => { Return Value - {{ task.returnValue }} + + {{ + task.returnValue?.return_value + ? task.returnValue?.return_value + : 'null' + }} + Queued At diff --git a/src/pages/tasks/index.vue b/app/pages/tasks/index.vue similarity index 68% rename from src/pages/tasks/index.vue rename to app/pages/tasks/index.vue index f3cac04..4a04424 100644 --- a/src/pages/tasks/index.vue +++ b/app/pages/tasks/index.vue @@ -1,14 +1,15 @@ - diff --git a/src/public/favicon.ico b/src/public/favicon.ico deleted file mode 100644 index 18993ad91cfd43e03b074dd0b5cc3f37ab38e49c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmeHLOKuuL5PjK%MHWVi6lD zOGiREbCw`xmFozJ^aNatJY>w+g ze6a2@u~m#^BZm@8wco9#Crlli0uLb^3E$t2-WIc^#(?t)*@`UpuofJ(Uyh@F>b3Ph z$D^m8Xq~pTkGJ4Q`Q2)te3mgkWYZ^Ijq|hkiP^9`De={bQQ%heZC$QU2UpP(-tbl8 zPWD2abEew;oat@w`uP3J^YpsgT%~jT(Dk%oU}sa$7|n6hBjDj`+I;RX(>)%lm_7N{+B7Mu%H?422lE%MBJH!!YTN2oT7xr>>N-8OF$C&qU^ z>vLsa{$0X%q1fjOe3P1mCv#lN{xQ4_*HCSAZjTb1`}mlc+9rl8$B3OP%VT@mch_~G z7Y+4b{r>9e=M+7vSI;BgB?ryZDY4m>&wcHSn81VH1N~`0gvwH{ z8dv#hG|OK`>1;j7tM#B)Z7zDN?{6=dUal}$e