@geniusdynamics/ns8-ui-lib 1.0.6 → 1.0.7
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.
- package/dist/ns8-ui-lib.css +1 -1
- package/dist/ns8-ui-lib.es.js +222 -222
- package/dist/ns8-ui-lib.es.js.map +1 -1
- package/dist/ns8-ui-lib.umd.js +3 -3
- package/dist/ns8-ui-lib.umd.js.map +1 -1
- package/package.json +2 -2
- package/src/App.vue +3 -4
- package/src/components/HelloWorld.vue +2 -2
- package/src/components/NS/CompleteDemo.vue +49 -49
- package/src/components/NS/Demo.vue +20 -20
- package/src/components/NS/cards/NSBackupCard.vue +41 -41
- package/src/components/NS/cards/NSSystemInfoCard.vue +37 -37
- package/src/components/NS/cards/NSSystemdServiceCard.vue +27 -27
- package/src/components/NS/checkbox/NSCheckbox.vue +4 -4
- package/src/components/NS/data-table/NSDataTable.vue +29 -29
- package/src/components/NS/empty-state/NSEmptyState.vue +3 -3
- package/src/components/NS/inline-notification/NSInlineNotification.vue +9 -9
- package/src/components/NS/lottie-animation/NSLottieAnimation.vue +5 -5
- package/src/components/NS/modal/NSModal.vue +10 -10
- package/src/components/NS/modal/NSModalTrigger.vue +1 -1
- package/src/components/NS/pagination/NSPagination.vue +10 -10
- package/src/components/NS/progress/NSProgress.vue +3 -3
- package/src/components/NS/progress/NSProgressBar.vue +4 -4
- package/src/components/NS/slider/NSByteSlider.vue +3 -3
- package/src/components/NS/slider/NSSlider.vue +2 -2
- package/src/components/NS/tag/NSTag.vue +5 -5
- package/src/components/NS/text-input/NSTextInput.vue +5 -5
- package/src/components/NS/toast-notification/NSToastNotification.vue +7 -7
- package/src/components/NS/toggle/NSToggle.vue +2 -2
- package/src/components/NS/wizard/NSWizard.vue +21 -21
- package/src/components/ui/accordion/AccordionContent.vue +2 -2
- package/src/components/ui/accordion/AccordionItem.vue +1 -1
- package/src/components/ui/accordion/AccordionTrigger.vue +3 -3
- package/src/components/ui/alert/AlertDescription.vue +1 -1
- package/src/components/ui/alert/AlertTitle.vue +1 -1
- package/src/components/ui/alert-dialog/AlertDialogCancel.vue +1 -1
- package/src/components/ui/alert-dialog/AlertDialogContent.vue +2 -2
- package/src/components/ui/alert-dialog/AlertDialogDescription.vue +1 -1
- package/src/components/ui/alert-dialog/AlertDialogFooter.vue +1 -1
- package/src/components/ui/alert-dialog/AlertDialogHeader.vue +1 -1
- package/src/components/ui/alert-dialog/AlertDialogTitle.vue +1 -1
- package/src/components/ui/avatar/Avatar.vue +1 -1
- package/src/components/ui/avatar/AvatarFallback.vue +1 -1
- package/src/components/ui/avatar/AvatarImage.vue +1 -1
- package/src/components/ui/breadcrumb/BreadcrumbEllipsis.vue +3 -3
- package/src/components/ui/breadcrumb/BreadcrumbItem.vue +1 -1
- package/src/components/ui/breadcrumb/BreadcrumbLink.vue +1 -1
- package/src/components/ui/breadcrumb/BreadcrumbList.vue +1 -1
- package/src/components/ui/breadcrumb/BreadcrumbPage.vue +1 -1
- package/src/components/ui/breadcrumb/BreadcrumbSeparator.vue +1 -1
- package/src/components/ui/button-group/ButtonGroupSeparator.vue +1 -1
- package/src/components/ui/button-group/ButtonGroupText.vue +1 -1
- package/src/components/ui/calendar/Calendar.vue +16 -16
- package/src/components/ui/calendar/CalendarCell.vue +1 -1
- package/src/components/ui/calendar/CalendarCellTrigger.vue +6 -6
- package/src/components/ui/calendar/CalendarGrid.vue +1 -1
- package/src/components/ui/calendar/CalendarGridRow.vue +1 -1
- package/src/components/ui/calendar/CalendarHeadCell.vue +1 -1
- package/src/components/ui/calendar/CalendarHeader.vue +1 -1
- package/src/components/ui/calendar/CalendarHeading.vue +1 -1
- package/src/components/ui/calendar/CalendarNextButton.vue +2 -2
- package/src/components/ui/calendar/CalendarPrevButton.vue +2 -2
- package/src/components/ui/card/Card.vue +1 -1
- package/src/components/ui/card/CardAction.vue +1 -1
- package/src/components/ui/card/CardContent.vue +1 -1
- package/src/components/ui/card/CardDescription.vue +1 -1
- package/src/components/ui/card/CardFooter.vue +1 -1
- package/src/components/ui/card/CardHeader.vue +1 -1
- package/src/components/ui/card/CardTitle.vue +1 -1
- package/src/components/ui/carousel/Carousel.vue +1 -1
- package/src/components/ui/carousel/CarouselContent.vue +3 -3
- package/src/components/ui/carousel/CarouselItem.vue +2 -2
- package/src/components/ui/carousel/CarouselNext.vue +4 -4
- package/src/components/ui/carousel/CarouselPrevious.vue +4 -4
- package/src/components/ui/checkbox/Checkbox.vue +3 -3
- package/src/components/ui/combobox/ComboboxAnchor.vue +1 -1
- package/src/components/ui/combobox/ComboboxEmpty.vue +1 -1
- package/src/components/ui/combobox/ComboboxGroup.vue +2 -2
- package/src/components/ui/combobox/ComboboxInput.vue +3 -3
- package/src/components/ui/combobox/ComboboxItem.vue +1 -1
- package/src/components/ui/combobox/ComboboxItemIndicator.vue +1 -1
- package/src/components/ui/combobox/ComboboxList.vue +1 -1
- package/src/components/ui/combobox/ComboboxSeparator.vue +1 -1
- package/src/components/ui/combobox/ComboboxTrigger.vue +1 -1
- package/src/components/ui/combobox/ComboboxViewport.vue +1 -1
- package/src/components/ui/command/Command.vue +1 -1
- package/src/components/ui/command/CommandDialog.vue +2 -2
- package/src/components/ui/command/CommandEmpty.vue +1 -1
- package/src/components/ui/command/CommandGroup.vue +2 -2
- package/src/components/ui/command/CommandInput.vue +3 -3
- package/src/components/ui/command/CommandItem.vue +1 -1
- package/src/components/ui/command/CommandList.vue +1 -1
- package/src/components/ui/command/CommandSeparator.vue +1 -1
- package/src/components/ui/command/CommandShortcut.vue +1 -1
- package/src/components/ui/context-menu/ContextMenuCheckboxItem.vue +3 -3
- package/src/components/ui/context-menu/ContextMenuContent.vue +1 -1
- package/src/components/ui/context-menu/ContextMenuItem.vue +1 -1
- package/src/components/ui/context-menu/ContextMenuLabel.vue +1 -1
- package/src/components/ui/context-menu/ContextMenuRadioItem.vue +3 -3
- package/src/components/ui/context-menu/ContextMenuSeparator.vue +1 -1
- package/src/components/ui/context-menu/ContextMenuShortcut.vue +1 -1
- package/src/components/ui/context-menu/ContextMenuSubContent.vue +1 -1
- package/src/components/ui/context-menu/ContextMenuSubTrigger.vue +2 -2
- package/src/components/ui/dialog/DialogContent.vue +18 -27
- package/src/components/ui/dialog/DialogDescription.vue +1 -1
- package/src/components/ui/dialog/DialogFooter.vue +1 -1
- package/src/components/ui/dialog/DialogHeader.vue +1 -1
- package/src/components/ui/dialog/DialogOverlay.vue +1 -1
- package/src/components/ui/dialog/DialogScrollContent.vue +5 -5
- package/src/components/ui/dialog/DialogTitle.vue +1 -1
- package/src/components/ui/drawer/DrawerContent.vue +6 -6
- package/src/components/ui/drawer/DrawerDescription.vue +1 -1
- package/src/components/ui/drawer/DrawerFooter.vue +1 -1
- package/src/components/ui/drawer/DrawerHeader.vue +1 -1
- package/src/components/ui/drawer/DrawerOverlay.vue +1 -1
- package/src/components/ui/drawer/DrawerTitle.vue +1 -1
- package/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +3 -3
- package/src/components/ui/dropdown-menu/DropdownMenuContent.vue +1 -1
- package/src/components/ui/dropdown-menu/DropdownMenuItem.vue +1 -1
- package/src/components/ui/dropdown-menu/DropdownMenuLabel.vue +1 -1
- package/src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +3 -3
- package/src/components/ui/dropdown-menu/DropdownMenuSeparator.vue +1 -1
- package/src/components/ui/dropdown-menu/DropdownMenuShortcut.vue +1 -1
- package/src/components/ui/dropdown-menu/DropdownMenuSubContent.vue +1 -1
- package/src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +2 -2
- package/src/components/ui/empty/Empty.vue +1 -1
- package/src/components/ui/empty/EmptyContent.vue +1 -1
- package/src/components/ui/empty/EmptyDescription.vue +2 -2
- package/src/components/ui/empty/EmptyHeader.vue +1 -1
- package/src/components/ui/empty/EmptyTitle.vue +1 -1
- package/src/components/ui/field/FieldContent.vue +1 -1
- package/src/components/ui/field/FieldDescription.vue +3 -3
- package/src/components/ui/field/FieldError.vue +2 -2
- package/src/components/ui/field/FieldGroup.vue +1 -1
- package/src/components/ui/field/FieldLabel.vue +3 -3
- package/src/components/ui/field/FieldLegend.vue +3 -3
- package/src/components/ui/field/FieldSeparator.vue +3 -3
- package/src/components/ui/field/FieldSet.vue +2 -2
- package/src/components/ui/field/FieldTitle.vue +1 -1
- package/src/components/ui/form/FormDescription.vue +1 -1
- package/src/components/ui/form/FormItem.vue +1 -1
- package/src/components/ui/form/FormLabel.vue +1 -1
- package/src/components/ui/form/FormMessage.vue +1 -1
- package/src/components/ui/hover-card/HoverCardContent.vue +1 -1
- package/src/components/ui/input/Input.vue +3 -3
- package/src/components/ui/input-group/InputGroup.vue +8 -8
- package/src/components/ui/input-group/InputGroupInput.vue +1 -1
- package/src/components/ui/input-group/InputGroupText.vue +1 -1
- package/src/components/ui/input-group/InputGroupTextarea.vue +1 -1
- package/src/components/ui/input-otp/InputOTP.vue +1 -1
- package/src/components/ui/input-otp/InputOTPGroup.vue +1 -1
- package/src/components/ui/input-otp/InputOTPSlot.vue +3 -3
- package/src/components/ui/item/ItemActions.vue +1 -1
- package/src/components/ui/item/ItemContent.vue +1 -1
- package/src/components/ui/item/ItemDescription.vue +2 -2
- package/src/components/ui/item/ItemFooter.vue +1 -1
- package/src/components/ui/item/ItemGroup.vue +1 -1
- package/src/components/ui/item/ItemHeader.vue +1 -1
- package/src/components/ui/item/ItemSeparator.vue +1 -1
- package/src/components/ui/item/ItemTitle.vue +1 -1
- package/src/components/ui/kbd/Kbd.vue +3 -3
- package/src/components/ui/kbd/KbdGroup.vue +1 -1
- package/src/components/ui/label/Label.vue +1 -1
- package/src/components/ui/menubar/Menubar.vue +1 -1
- package/src/components/ui/menubar/MenubarCheckboxItem.vue +3 -3
- package/src/components/ui/menubar/MenubarContent.vue +1 -1
- package/src/components/ui/menubar/MenubarItem.vue +1 -1
- package/src/components/ui/menubar/MenubarLabel.vue +1 -1
- package/src/components/ui/menubar/MenubarRadioItem.vue +3 -3
- package/src/components/ui/menubar/MenubarSeparator.vue +1 -1
- package/src/components/ui/menubar/MenubarShortcut.vue +1 -1
- package/src/components/ui/menubar/MenubarSubContent.vue +1 -1
- package/src/components/ui/menubar/MenubarSubTrigger.vue +2 -2
- package/src/components/ui/menubar/MenubarTrigger.vue +1 -1
- package/src/components/ui/native-select/NativeSelect.vue +5 -5
- package/src/components/ui/native-select/NativeSelectOptGroup.vue +1 -1
- package/src/components/ui/native-select/NativeSelectOption.vue +1 -1
- package/src/components/ui/navigation-menu/NavigationMenu.vue +1 -1
- package/src/components/ui/navigation-menu/NavigationMenuContent.vue +2 -2
- package/src/components/ui/navigation-menu/NavigationMenuIndicator.vue +2 -2
- package/src/components/ui/navigation-menu/NavigationMenuItem.vue +1 -1
- package/src/components/ui/navigation-menu/NavigationMenuLink.vue +1 -1
- package/src/components/ui/navigation-menu/NavigationMenuList.vue +1 -1
- package/src/components/ui/navigation-menu/NavigationMenuTrigger.vue +2 -2
- package/src/components/ui/navigation-menu/NavigationMenuViewport.vue +2 -2
- package/src/components/ui/number-field/NumberField.vue +1 -1
- package/src/components/ui/number-field/NumberFieldContent.vue +1 -1
- package/src/components/ui/number-field/NumberFieldDecrement.vue +2 -2
- package/src/components/ui/number-field/NumberFieldIncrement.vue +2 -2
- package/src/components/ui/number-field/NumberFieldInput.vue +1 -1
- package/src/components/ui/pagination/Pagination.vue +1 -1
- package/src/components/ui/pagination/PaginationContent.vue +1 -1
- package/src/components/ui/pagination/PaginationEllipsis.vue +3 -3
- package/src/components/ui/pagination/PaginationFirst.vue +2 -2
- package/src/components/ui/pagination/PaginationLast.vue +2 -2
- package/src/components/ui/pagination/PaginationNext.vue +2 -2
- package/src/components/ui/pagination/PaginationPrevious.vue +2 -2
- package/src/components/ui/pin-input/PinInput.vue +1 -1
- package/src/components/ui/pin-input/PinInputGroup.vue +1 -1
- package/src/components/ui/pin-input/PinInputSlot.vue +1 -1
- package/src/components/ui/popover/PopoverContent.vue +1 -1
- package/src/components/ui/progress/Progress.vue +12 -9
- package/src/components/ui/radio-group/RadioGroup.vue +1 -1
- package/src/components/ui/radio-group/RadioGroupItem.vue +16 -16
- package/src/components/ui/range-calendar/RangeCalendar.vue +4 -4
- package/src/components/ui/range-calendar/RangeCalendarCell.vue +1 -1
- package/src/components/ui/range-calendar/RangeCalendarCellTrigger.vue +7 -7
- package/src/components/ui/range-calendar/RangeCalendarGrid.vue +1 -1
- package/src/components/ui/range-calendar/RangeCalendarGridRow.vue +1 -1
- package/src/components/ui/range-calendar/RangeCalendarHeadCell.vue +1 -1
- package/src/components/ui/range-calendar/RangeCalendarHeader.vue +1 -1
- package/src/components/ui/range-calendar/RangeCalendarHeading.vue +1 -1
- package/src/components/ui/range-calendar/RangeCalendarNextButton.vue +3 -3
- package/src/components/ui/range-calendar/RangeCalendarPrevButton.vue +3 -3
- package/src/components/ui/resizable/ResizableHandle.vue +3 -3
- package/src/components/ui/resizable/ResizablePanelGroup.vue +1 -1
- package/src/components/ui/scroll-area/ScrollArea.vue +2 -2
- package/src/components/ui/scroll-area/ScrollBar.vue +16 -22
- package/src/components/ui/select/SelectContent.vue +18 -27
- package/src/components/ui/select/SelectItem.vue +3 -3
- package/src/components/ui/select/SelectLabel.vue +1 -1
- package/src/components/ui/select/SelectScrollDownButton.vue +2 -2
- package/src/components/ui/select/SelectScrollUpButton.vue +2 -2
- package/src/components/ui/select/SelectSeparator.vue +1 -1
- package/src/components/ui/select/SelectTrigger.vue +2 -2
- package/src/components/ui/separator/Separator.vue +1 -1
- package/src/components/ui/sheet/SheetContent.vue +28 -31
- package/src/components/ui/sheet/SheetDescription.vue +1 -1
- package/src/components/ui/sheet/SheetFooter.vue +1 -1
- package/src/components/ui/sheet/SheetHeader.vue +1 -1
- package/src/components/ui/sheet/SheetOverlay.vue +1 -1
- package/src/components/ui/sheet/SheetTitle.vue +1 -1
- package/src/components/ui/sidebar/Sidebar.vue +16 -16
- package/src/components/ui/sidebar/SidebarContent.vue +1 -1
- package/src/components/ui/sidebar/SidebarFooter.vue +1 -1
- package/src/components/ui/sidebar/SidebarGroup.vue +1 -1
- package/src/components/ui/sidebar/SidebarGroupAction.vue +3 -3
- package/src/components/ui/sidebar/SidebarGroupContent.vue +1 -1
- package/src/components/ui/sidebar/SidebarGroupLabel.vue +2 -2
- package/src/components/ui/sidebar/SidebarHeader.vue +1 -1
- package/src/components/ui/sidebar/SidebarInput.vue +1 -1
- package/src/components/ui/sidebar/SidebarInset.vue +2 -2
- package/src/components/ui/sidebar/SidebarMenu.vue +1 -1
- package/src/components/ui/sidebar/SidebarMenuAction.vue +7 -7
- package/src/components/ui/sidebar/SidebarMenuBadge.vue +6 -6
- package/src/components/ui/sidebar/SidebarMenuItem.vue +1 -1
- package/src/components/ui/sidebar/SidebarMenuSkeleton.vue +3 -3
- package/src/components/ui/sidebar/SidebarMenuSub.vue +2 -2
- package/src/components/ui/sidebar/SidebarMenuSubButton.vue +5 -5
- package/src/components/ui/sidebar/SidebarMenuSubItem.vue +1 -1
- package/src/components/ui/sidebar/SidebarProvider.vue +1 -1
- package/src/components/ui/sidebar/SidebarRail.vue +6 -6
- package/src/components/ui/sidebar/SidebarSeparator.vue +1 -1
- package/src/components/ui/sidebar/SidebarTrigger.vue +2 -2
- package/src/components/ui/skeleton/Skeleton.vue +1 -1
- package/src/components/ui/slider/Slider.vue +4 -4
- package/src/components/ui/sonner/Sonner.vue +7 -7
- package/src/components/ui/spinner/Spinner.vue +1 -1
- package/src/components/ui/stepper/Stepper.vue +1 -1
- package/src/components/ui/stepper/StepperDescription.vue +1 -1
- package/src/components/ui/stepper/StepperIndicator.vue +4 -4
- package/src/components/ui/stepper/StepperItem.vue +1 -1
- package/src/components/ui/stepper/StepperSeparator.vue +3 -3
- package/src/components/ui/stepper/StepperTitle.vue +1 -1
- package/src/components/ui/stepper/StepperTrigger.vue +1 -1
- package/src/components/ui/switch/Switch.vue +2 -2
- package/src/components/ui/table/Table.vue +6 -12
- package/src/components/ui/table/TableBody.vue +1 -1
- package/src/components/ui/table/TableCaption.vue +1 -1
- package/src/components/ui/table/TableCell.vue +1 -1
- package/src/components/ui/table/TableEmpty.vue +14 -17
- package/src/components/ui/table/TableFooter.vue +1 -1
- package/src/components/ui/table/TableHead.vue +1 -1
- package/src/components/ui/table/TableHeader.vue +1 -1
- package/src/components/ui/table/TableRow.vue +1 -1
- package/src/components/ui/tabs/Tabs.vue +1 -1
- package/src/components/ui/tabs/TabsContent.vue +1 -1
- package/src/components/ui/tabs/TabsList.vue +1 -1
- package/src/components/ui/tabs/TabsTrigger.vue +1 -1
- package/src/components/ui/tags-input/TagsInput.vue +3 -3
- package/src/components/ui/tags-input/TagsInputInput.vue +1 -1
- package/src/components/ui/tags-input/TagsInputItem.vue +1 -1
- package/src/components/ui/tags-input/TagsInputItemDelete.vue +2 -2
- package/src/components/ui/tags-input/TagsInputItemText.vue +1 -1
- package/src/components/ui/textarea/Textarea.vue +1 -1
- package/src/components/ui/toggle-group/ToggleGroup.vue +1 -1
- package/src/components/ui/toggle-group/ToggleGroupItem.vue +2 -2
- package/src/components/ui/tooltip/TooltipContent.vue +2 -2
- package/src/components/ui/checkbox/NsCheckbox.vue +0 -123
- package/src/components/ui/empty-state/NsEmptyState.vue +0 -149
- package/src/components/ui/inline-notification/NsInlineNotification.vue +0 -163
- package/src/components/ui/tag/NsTag.vue +0 -114
- package/src/components/ui/text-input/NsTextInput.vue +0 -269
- package/src/components/ui/toggle/NsToggle.vue +0 -126
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geniusdynamics/ns8-ui-lib",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.7",
|
|
4
4
|
"description": "Vue 3 library for NethServer 8 UI with TailwindCSS and Shadcn Vue",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"nethserver",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"vue": "^3.5.30",
|
|
58
58
|
"vue-input-otp": "^0.3.2",
|
|
59
59
|
"vue-sonner": "^2.0.9",
|
|
60
|
-
"zod": "
|
|
60
|
+
"zod": "3.25.76"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@tailwindcss/vite": "^4.2.1",
|
package/src/App.vue
CHANGED
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import HelloWorld from "./components/HelloWorld.vue";
|
|
3
|
-
import { NSBackupCard,
|
|
3
|
+
import { NSBackupCard, NSProgressBar } from "./components/NS";
|
|
4
4
|
</script>
|
|
5
5
|
|
|
6
6
|
<template>
|
|
7
7
|
<div>
|
|
8
8
|
<a href="https://vite.dev" target="_blank">
|
|
9
|
-
<img src="/vite.svg" class="
|
|
9
|
+
<img src="/vite.svg" class="logo" alt="Vite logo" />
|
|
10
10
|
</a>
|
|
11
11
|
<a href="https://vuejs.org/" target="_blank">
|
|
12
|
-
<img src="./assets/vue.svg" class="
|
|
12
|
+
<img src="./assets/vue.svg" class="logo vue" alt="Vue logo" />
|
|
13
13
|
</a>
|
|
14
14
|
</div>
|
|
15
15
|
<HelloWorld msg="Vite + Vue" />
|
|
16
16
|
<NSBackupCard />
|
|
17
17
|
<NSProgressBar />
|
|
18
|
-
<NSBackupCardType />
|
|
19
18
|
</template>
|
|
20
19
|
|
|
21
20
|
<style scoped>
|
|
@@ -9,7 +9,7 @@ const count = ref(0)
|
|
|
9
9
|
<template>
|
|
10
10
|
<h1>{{ msg }}</h1>
|
|
11
11
|
|
|
12
|
-
<div class="
|
|
12
|
+
<div class="card">
|
|
13
13
|
<button type="button" @click="count++">count is {{ count }}</button>
|
|
14
14
|
<p>
|
|
15
15
|
Edit
|
|
@@ -31,7 +31,7 @@ const count = ref(0)
|
|
|
31
31
|
>Vue Docs Scaling up Guide</a
|
|
32
32
|
>.
|
|
33
33
|
</p>
|
|
34
|
-
<p class="
|
|
34
|
+
<p class="read-the-docs">Click on the Vite and Vue logos to learn more</p>
|
|
35
35
|
</template>
|
|
36
36
|
|
|
37
37
|
<style scoped>
|
|
@@ -149,16 +149,16 @@ const handleWizardFinish = (data: any) => {
|
|
|
149
149
|
</script>
|
|
150
150
|
|
|
151
151
|
<template>
|
|
152
|
-
<div class="
|
|
153
|
-
<h1 class="
|
|
152
|
+
<div class="p-8 space-y-12 max-w-7xl mx-auto">
|
|
153
|
+
<h1 class="text-3xl font-bold mb-8">NS Components - Complete Showcase</h1>
|
|
154
154
|
|
|
155
155
|
<!-- Basic Form Controls -->
|
|
156
|
-
<section class="
|
|
157
|
-
<h2 class="
|
|
158
|
-
<div class="
|
|
156
|
+
<section class="space-y-6">
|
|
157
|
+
<h2 class="text-2xl font-semibold">Basic Form Controls</h2>
|
|
158
|
+
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
|
159
159
|
<!-- NS Checkbox -->
|
|
160
|
-
<div class="
|
|
161
|
-
<h3 class="
|
|
160
|
+
<div class="space-y-4">
|
|
161
|
+
<h3 class="text-lg font-medium">NS Checkbox</h3>
|
|
162
162
|
<NSCheckbox
|
|
163
163
|
v-model:checked="checkboxValue"
|
|
164
164
|
label="Accept terms and conditions"
|
|
@@ -174,8 +174,8 @@ const handleWizardFinish = (data: any) => {
|
|
|
174
174
|
</div>
|
|
175
175
|
|
|
176
176
|
<!-- NS Text Input -->
|
|
177
|
-
<div class="
|
|
178
|
-
<h3 class="
|
|
177
|
+
<div class="space-y-4">
|
|
178
|
+
<h3 class="text-lg font-medium">NS Text Input</h3>
|
|
179
179
|
<NSTextInput
|
|
180
180
|
v-model="textValue"
|
|
181
181
|
label="Email"
|
|
@@ -194,8 +194,8 @@ const handleWizardFinish = (data: any) => {
|
|
|
194
194
|
</div>
|
|
195
195
|
|
|
196
196
|
<!-- NS Toggle -->
|
|
197
|
-
<div class="
|
|
198
|
-
<h3 class="
|
|
197
|
+
<div class="space-y-4">
|
|
198
|
+
<h3 class="text-lg font-medium">NS Toggle</h3>
|
|
199
199
|
<NSToggle
|
|
200
200
|
v-model:checked="toggleValue"
|
|
201
201
|
label="Dark Mode"
|
|
@@ -215,9 +215,9 @@ const handleWizardFinish = (data: any) => {
|
|
|
215
215
|
</section>
|
|
216
216
|
|
|
217
217
|
<!-- Tags and Badges -->
|
|
218
|
-
<section class="
|
|
219
|
-
<h2 class="
|
|
220
|
-
<div class="
|
|
218
|
+
<section class="space-y-6">
|
|
219
|
+
<h2 class="text-2xl font-semibold">NS Tag</h2>
|
|
220
|
+
<div class="flex flex-wrap gap-2">
|
|
221
221
|
<NSTag
|
|
222
222
|
v-for="(tag, index) in tags"
|
|
223
223
|
:key="index"
|
|
@@ -236,11 +236,11 @@ const handleWizardFinish = (data: any) => {
|
|
|
236
236
|
</section>
|
|
237
237
|
|
|
238
238
|
<!-- Progress and Sliders -->
|
|
239
|
-
<section class="
|
|
240
|
-
<h2 class="
|
|
241
|
-
<div class="
|
|
242
|
-
<div class="
|
|
243
|
-
<h3 class="
|
|
239
|
+
<section class="space-y-6">
|
|
240
|
+
<h2 class="text-2xl font-semibold">Progress & Sliders</h2>
|
|
241
|
+
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
|
242
|
+
<div class="space-y-4">
|
|
243
|
+
<h3 class="text-lg font-medium">Progress Components</h3>
|
|
244
244
|
<NSProgress
|
|
245
245
|
:value="progressValue"
|
|
246
246
|
show-label
|
|
@@ -255,8 +255,8 @@ const handleWizardFinish = (data: any) => {
|
|
|
255
255
|
/>
|
|
256
256
|
</div>
|
|
257
257
|
|
|
258
|
-
<div class="
|
|
259
|
-
<h3 class="
|
|
258
|
+
<div class="space-y-4">
|
|
259
|
+
<h3 class="text-lg font-medium">Slider Components</h3>
|
|
260
260
|
<NSSlider
|
|
261
261
|
v-model="sliderValue"
|
|
262
262
|
:max="100"
|
|
@@ -277,19 +277,19 @@ const handleWizardFinish = (data: any) => {
|
|
|
277
277
|
</section>
|
|
278
278
|
|
|
279
279
|
<!-- Empty State and Notifications -->
|
|
280
|
-
<section class="
|
|
281
|
-
<h2 class="
|
|
282
|
-
<div class="
|
|
283
|
-
<div class="
|
|
284
|
-
<h3 class="
|
|
280
|
+
<section class="space-y-6">
|
|
281
|
+
<h2 class="text-2xl font-semibold">Empty States & Notifications</h2>
|
|
282
|
+
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
|
283
|
+
<div class="space-y-4">
|
|
284
|
+
<h3 class="text-lg font-medium">Empty States</h3>
|
|
285
285
|
<NSEmptyState
|
|
286
286
|
title="No results found"
|
|
287
287
|
description="Try adjusting your search filters to find what you're looking for."
|
|
288
288
|
/>
|
|
289
289
|
</div>
|
|
290
290
|
|
|
291
|
-
<div class="
|
|
292
|
-
<h3 class="
|
|
291
|
+
<div class="space-y-4">
|
|
292
|
+
<h3 class="text-lg font-medium">Notifications</h3>
|
|
293
293
|
<NSInlineNotification
|
|
294
294
|
title="Success!"
|
|
295
295
|
description="Your changes have been saved successfully."
|
|
@@ -309,36 +309,36 @@ const handleWizardFinish = (data: any) => {
|
|
|
309
309
|
</section>
|
|
310
310
|
|
|
311
311
|
<!-- Modal -->
|
|
312
|
-
<section class="
|
|
313
|
-
<h2 class="
|
|
312
|
+
<section class="space-y-6">
|
|
313
|
+
<h2 class="text-2xl font-semibold">Modal</h2>
|
|
314
314
|
<NSModalTrigger
|
|
315
315
|
v-model="modalOpen"
|
|
316
316
|
title="Example Modal"
|
|
317
317
|
description="This is an example modal with rich content."
|
|
318
318
|
>
|
|
319
319
|
<template #trigger>
|
|
320
|
-
<button class="
|
|
320
|
+
<button class="px-4 py-2 bg-primary text-primary-foreground rounded-md hover:bg-primary/90">
|
|
321
321
|
Open Modal
|
|
322
322
|
</button>
|
|
323
323
|
</template>
|
|
324
324
|
|
|
325
|
-
<div class="
|
|
325
|
+
<div class="space-y-4">
|
|
326
326
|
<p>This modal demonstrates the NSModal component with:</p>
|
|
327
|
-
<ul class="
|
|
327
|
+
<ul class="list-disc list-inside space-y-1 text-sm text-muted-foreground">
|
|
328
328
|
<li>Customizable sizes</li>
|
|
329
329
|
<li>Fullscreen mode</li>
|
|
330
330
|
<li>Header and footer slots</li>
|
|
331
331
|
<li>Escape key and overlay click handling</li>
|
|
332
332
|
</ul>
|
|
333
|
-
<div class="
|
|
333
|
+
<div class="flex justify-end gap-2 pt-4">
|
|
334
334
|
<button
|
|
335
|
-
class="
|
|
335
|
+
class="px-3 py-2 border border-input bg-background hover:bg-accent rounded-md"
|
|
336
336
|
@click="modalOpen = false"
|
|
337
337
|
>
|
|
338
338
|
Cancel
|
|
339
339
|
</button>
|
|
340
340
|
<button
|
|
341
|
-
class="
|
|
341
|
+
class="px-3 py-2 bg-primary text-primary-foreground rounded-md hover:bg-primary/90"
|
|
342
342
|
@click="modalOpen = false"
|
|
343
343
|
>
|
|
344
344
|
Confirm
|
|
@@ -349,8 +349,8 @@ const handleWizardFinish = (data: any) => {
|
|
|
349
349
|
</section>
|
|
350
350
|
|
|
351
351
|
<!-- Data Table -->
|
|
352
|
-
<section class="
|
|
353
|
-
<h2 class="
|
|
352
|
+
<section class="space-y-6">
|
|
353
|
+
<h2 class="text-2xl font-semibold">Data Table</h2>
|
|
354
354
|
<NSDataTable
|
|
355
355
|
:data="tableData"
|
|
356
356
|
:columns="tableColumns"
|
|
@@ -367,8 +367,8 @@ const handleWizardFinish = (data: any) => {
|
|
|
367
367
|
</section>
|
|
368
368
|
|
|
369
369
|
<!-- Wizard -->
|
|
370
|
-
<section class="
|
|
371
|
-
<h2 class="
|
|
370
|
+
<section class="space-y-6">
|
|
371
|
+
<h2 class="text-2xl font-semibold">Wizard</h2>
|
|
372
372
|
<NSWizard
|
|
373
373
|
v-model="wizardStep"
|
|
374
374
|
:steps="wizardSteps"
|
|
@@ -379,7 +379,7 @@ const handleWizardFinish = (data: any) => {
|
|
|
379
379
|
@finish="handleWizardFinish"
|
|
380
380
|
>
|
|
381
381
|
<template #step-account>
|
|
382
|
-
<div class="
|
|
382
|
+
<div class="space-y-4">
|
|
383
383
|
<NSTextInput label="Username" placeholder="Choose a username" />
|
|
384
384
|
<NSTextInput label="Email" type="email" placeholder="your@email.com" />
|
|
385
385
|
<NSTextInput label="Password" type="password" :show-password-toggle="true" />
|
|
@@ -387,7 +387,7 @@ const handleWizardFinish = (data: any) => {
|
|
|
387
387
|
</template>
|
|
388
388
|
|
|
389
389
|
<template #step-profile>
|
|
390
|
-
<div class="
|
|
390
|
+
<div class="space-y-4">
|
|
391
391
|
<NSTextInput label="First Name" placeholder="John" />
|
|
392
392
|
<NSTextInput label="Last Name" placeholder="Doe" />
|
|
393
393
|
<NSTextInput label="Phone" placeholder="+1 234 567 8900" />
|
|
@@ -395,7 +395,7 @@ const handleWizardFinish = (data: any) => {
|
|
|
395
395
|
</template>
|
|
396
396
|
|
|
397
397
|
<template #step-preferences>
|
|
398
|
-
<div class="
|
|
398
|
+
<div class="space-y-4">
|
|
399
399
|
<NSToggle label="Email Notifications" description="Receive email updates" />
|
|
400
400
|
<NSToggle label="Push Notifications" description="Receive push notifications" />
|
|
401
401
|
<NSToggle label="Dark Mode" description="Use dark theme" />
|
|
@@ -403,7 +403,7 @@ const handleWizardFinish = (data: any) => {
|
|
|
403
403
|
</template>
|
|
404
404
|
|
|
405
405
|
<template #step-review>
|
|
406
|
-
<div class="
|
|
406
|
+
<div class="space-y-4">
|
|
407
407
|
<NSEmptyState
|
|
408
408
|
title="Review Your Information"
|
|
409
409
|
description="Please review all the information you've provided before completing the setup."
|
|
@@ -415,9 +415,9 @@ const handleWizardFinish = (data: any) => {
|
|
|
415
415
|
</section>
|
|
416
416
|
|
|
417
417
|
<!-- Specialized Cards -->
|
|
418
|
-
<section class="
|
|
419
|
-
<h2 class="
|
|
420
|
-
<div class="
|
|
418
|
+
<section class="space-y-6">
|
|
419
|
+
<h2 class="text-2xl font-semibold">Specialized Cards</h2>
|
|
420
|
+
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
|
421
421
|
<!-- Backup Card -->
|
|
422
422
|
<NSBackupCard
|
|
423
423
|
:backups="backupData"
|
|
@@ -459,8 +459,8 @@ const handleWizardFinish = (data: any) => {
|
|
|
459
459
|
</section>
|
|
460
460
|
|
|
461
461
|
<!-- Pagination -->
|
|
462
|
-
<section class="
|
|
463
|
-
<h2 class="
|
|
462
|
+
<section class="space-y-6">
|
|
463
|
+
<h2 class="text-2xl font-semibold">Pagination</h2>
|
|
464
464
|
<NSPagination
|
|
465
465
|
:current-page="currentPage"
|
|
466
466
|
:total-items="50"
|
|
@@ -28,13 +28,13 @@ const handleNotificationAction = () => {
|
|
|
28
28
|
</script>
|
|
29
29
|
|
|
30
30
|
<template>
|
|
31
|
-
<div class="
|
|
32
|
-
<h1 class="
|
|
31
|
+
<div class="p-8 space-y-8 max-w-4xl mx-auto">
|
|
32
|
+
<h1 class="text-2xl font-bold mb-6">NS Components Demo</h1>
|
|
33
33
|
|
|
34
34
|
<!-- NS Checkbox -->
|
|
35
|
-
<div class="
|
|
36
|
-
<h2 class="
|
|
37
|
-
<div class="
|
|
35
|
+
<div class="space-y-4">
|
|
36
|
+
<h2 class="text-xl font-semibold">NS Checkbox</h2>
|
|
37
|
+
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
38
38
|
<NSCheckbox
|
|
39
39
|
v-model:checked="checkboxValue"
|
|
40
40
|
label="Accept terms and conditions"
|
|
@@ -63,9 +63,9 @@ const handleNotificationAction = () => {
|
|
|
63
63
|
</div>
|
|
64
64
|
|
|
65
65
|
<!-- NS Text Input -->
|
|
66
|
-
<div class="
|
|
67
|
-
<h2 class="
|
|
68
|
-
<div class="
|
|
66
|
+
<div class="space-y-4">
|
|
67
|
+
<h2 class="text-xl font-semibold">NS Text Input</h2>
|
|
68
|
+
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
69
69
|
<NSTextInput
|
|
70
70
|
v-model="textValue"
|
|
71
71
|
label="Username"
|
|
@@ -97,9 +97,9 @@ const handleNotificationAction = () => {
|
|
|
97
97
|
</div>
|
|
98
98
|
|
|
99
99
|
<!-- NS Toggle -->
|
|
100
|
-
<div class="
|
|
101
|
-
<h2 class="
|
|
102
|
-
<div class="
|
|
100
|
+
<div class="space-y-4">
|
|
101
|
+
<h2 class="text-xl font-semibold">NS Toggle</h2>
|
|
102
|
+
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
103
103
|
<NSToggle
|
|
104
104
|
v-model:checked="toggleValue"
|
|
105
105
|
label="Dark Mode"
|
|
@@ -130,9 +130,9 @@ const handleNotificationAction = () => {
|
|
|
130
130
|
</div>
|
|
131
131
|
|
|
132
132
|
<!-- NS Tag -->
|
|
133
|
-
<div class="
|
|
134
|
-
<h2 class="
|
|
135
|
-
<div class="
|
|
133
|
+
<div class="space-y-4">
|
|
134
|
+
<h2 class="text-xl font-semibold">NS Tag</h2>
|
|
135
|
+
<div class="flex flex-wrap gap-2">
|
|
136
136
|
<NSTag v-for="(tag, index) in tags" :key="index" :label="tag" removable @remove="handleTagRemove(index)" />
|
|
137
137
|
<NSTag label="Default" />
|
|
138
138
|
<NSTag label="Secondary" variant="secondary" />
|
|
@@ -145,9 +145,9 @@ const handleNotificationAction = () => {
|
|
|
145
145
|
</div>
|
|
146
146
|
|
|
147
147
|
<!-- NS Empty State -->
|
|
148
|
-
<div class="
|
|
149
|
-
<h2 class="
|
|
150
|
-
<div class="
|
|
148
|
+
<div class="space-y-4">
|
|
149
|
+
<h2 class="text-xl font-semibold">NS Empty State</h2>
|
|
150
|
+
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
151
151
|
<NSEmptyState
|
|
152
152
|
title="No results found"
|
|
153
153
|
description="Try adjusting your search filters to find what you're looking for."
|
|
@@ -161,9 +161,9 @@ const handleNotificationAction = () => {
|
|
|
161
161
|
</div>
|
|
162
162
|
|
|
163
163
|
<!-- NS Inline Notification -->
|
|
164
|
-
<div class="
|
|
165
|
-
<h2 class="
|
|
166
|
-
<div class="
|
|
164
|
+
<div class="space-y-4">
|
|
165
|
+
<h2 class="text-xl font-semibold">NS Inline Notification</h2>
|
|
166
|
+
<div class="grid grid-cols-1 gap-4">
|
|
167
167
|
<NSInlineNotification
|
|
168
168
|
title="Success!"
|
|
169
169
|
description="Your changes have been saved successfully."
|
|
@@ -129,51 +129,51 @@ const tableClasses = computed(() => {
|
|
|
129
129
|
|
|
130
130
|
<template>
|
|
131
131
|
<Card :class="cardClasses">
|
|
132
|
-
<CardHeader class="
|
|
133
|
-
<CardTitle class="
|
|
134
|
-
<Save class="
|
|
132
|
+
<CardHeader class="pb-3">
|
|
133
|
+
<CardTitle class="flex items-center gap-2">
|
|
134
|
+
<Save class="h-5 w-5 text-primary" />
|
|
135
135
|
{{ title }}
|
|
136
136
|
</CardTitle>
|
|
137
137
|
</CardHeader>
|
|
138
138
|
|
|
139
|
-
<CardContent class="
|
|
139
|
+
<CardContent class="space-y-4">
|
|
140
140
|
<!-- Loading state -->
|
|
141
|
-
<div v-if="loading" class="
|
|
142
|
-
<Skeleton class="
|
|
143
|
-
<Skeleton class="
|
|
141
|
+
<div v-if="loading" class="space-y-2">
|
|
142
|
+
<Skeleton class="h-4 w-3/4" />
|
|
143
|
+
<Skeleton class="h-4 w-1/2" />
|
|
144
144
|
</div>
|
|
145
145
|
|
|
146
146
|
<!-- No backups state -->
|
|
147
147
|
<div
|
|
148
148
|
v-else-if="!hasBackups"
|
|
149
|
-
class="
|
|
149
|
+
class="flex items-center gap-3 text-muted-foreground"
|
|
150
150
|
>
|
|
151
|
-
<AlertCircle class="
|
|
151
|
+
<AlertCircle class="h-5 w-5" />
|
|
152
152
|
<span>{{ noBackupMessage }}</span>
|
|
153
153
|
</div>
|
|
154
154
|
|
|
155
155
|
<!-- Single backup state -->
|
|
156
|
-
<div v-else-if="singleBackup" class="
|
|
156
|
+
<div v-else-if="singleBackup" class="space-y-4">
|
|
157
157
|
<div :class="tableWrapperClasses">
|
|
158
158
|
<div :class="tableClasses">
|
|
159
159
|
<!-- Status row -->
|
|
160
160
|
<div
|
|
161
|
-
class="
|
|
161
|
+
class="flex items-center justify-between py-2 border-b"
|
|
162
162
|
>
|
|
163
|
-
<span class="
|
|
164
|
-
<div class="
|
|
165
|
-
<span v-if="!singleBackup.enabled" class="
|
|
163
|
+
<span class="text-sm font-medium">{{ statusLabel }}</span>
|
|
164
|
+
<div class="flex items-center gap-2">
|
|
165
|
+
<span v-if="!singleBackup.enabled" class="text-destructive">
|
|
166
166
|
{{ backupDisabledLabel }}
|
|
167
167
|
</span>
|
|
168
168
|
<span
|
|
169
169
|
v-else-if="status[singleBackup.id]?.success"
|
|
170
|
-
class="
|
|
170
|
+
class="text-green-600"
|
|
171
171
|
>
|
|
172
172
|
{{ statusSuccessLabel }}
|
|
173
173
|
</span>
|
|
174
174
|
<span
|
|
175
175
|
v-else-if="status[singleBackup.id]?.message"
|
|
176
|
-
class="
|
|
176
|
+
class="text-destructive"
|
|
177
177
|
>
|
|
178
178
|
{{ status[singleBackup.id].message }}
|
|
179
179
|
</span>
|
|
@@ -181,27 +181,27 @@ const tableClasses = computed(() => {
|
|
|
181
181
|
</div>
|
|
182
182
|
|
|
183
183
|
<!-- Backup details -->
|
|
184
|
-
<div class="
|
|
185
|
-
<div class="
|
|
186
|
-
<span class="
|
|
187
|
-
<span class="
|
|
184
|
+
<div class="space-y-2 py-2">
|
|
185
|
+
<div class="flex justify-between">
|
|
186
|
+
<span class="text-sm text-muted-foreground">Name:</span>
|
|
187
|
+
<span class="text-sm font-medium">{{
|
|
188
188
|
singleBackup.name
|
|
189
189
|
}}</span>
|
|
190
190
|
</div>
|
|
191
|
-
<div class="
|
|
192
|
-
<span class="
|
|
193
|
-
<span class="
|
|
191
|
+
<div class="flex justify-between">
|
|
192
|
+
<span class="text-sm text-muted-foreground">Date:</span>
|
|
193
|
+
<span class="text-sm">{{ singleBackup.date }}</span>
|
|
194
194
|
</div>
|
|
195
|
-
<div class="
|
|
196
|
-
<span class="
|
|
197
|
-
<span class="
|
|
195
|
+
<div class="flex justify-between">
|
|
196
|
+
<span class="text-sm text-muted-foreground">Size:</span>
|
|
197
|
+
<span class="text-sm">{{ singleBackup.size }}</span>
|
|
198
198
|
</div>
|
|
199
199
|
</div>
|
|
200
200
|
</div>
|
|
201
201
|
</div>
|
|
202
202
|
|
|
203
203
|
<!-- Action buttons -->
|
|
204
|
-
<div class="
|
|
204
|
+
<div class="flex gap-2 pt-2">
|
|
205
205
|
<Button
|
|
206
206
|
v-if="singleBackup.enabled"
|
|
207
207
|
variant="outline"
|
|
@@ -233,20 +233,20 @@ const tableClasses = computed(() => {
|
|
|
233
233
|
<div :class="tableWrapperClasses">
|
|
234
234
|
<table :class="tableClasses">
|
|
235
235
|
<thead>
|
|
236
|
-
<tr class="
|
|
237
|
-
<th class="
|
|
236
|
+
<tr class="border-b">
|
|
237
|
+
<th class="text-left p-2 text-sm font-medium">
|
|
238
238
|
Name
|
|
239
239
|
</th>
|
|
240
|
-
<th class="
|
|
240
|
+
<th class="text-left p-2 text-sm font-medium">
|
|
241
241
|
Date
|
|
242
242
|
</th>
|
|
243
|
-
<th class="
|
|
243
|
+
<th class="text-left p-2 text-sm font-medium">
|
|
244
244
|
Size
|
|
245
245
|
</th>
|
|
246
|
-
<th class="
|
|
246
|
+
<th class="text-left p-2 text-sm font-medium">
|
|
247
247
|
Status
|
|
248
248
|
</th>
|
|
249
|
-
<th class="
|
|
249
|
+
<th class="text-right p-2 text-sm font-medium">
|
|
250
250
|
Actions
|
|
251
251
|
</th>
|
|
252
252
|
</tr>
|
|
@@ -255,13 +255,13 @@ const tableClasses = computed(() => {
|
|
|
255
255
|
<tr
|
|
256
256
|
v-for="backup in backups"
|
|
257
257
|
:key="backup.id"
|
|
258
|
-
class="
|
|
258
|
+
class="border-b"
|
|
259
259
|
>
|
|
260
|
-
<td class="
|
|
261
|
-
<td class="
|
|
262
|
-
<td class="
|
|
263
|
-
<td class="
|
|
264
|
-
<div class="
|
|
260
|
+
<td class="p-2 text-sm">{{ backup.name }}</td>
|
|
261
|
+
<td class="p-2 text-sm">{{ backup.date }}</td>
|
|
262
|
+
<td class="p-2 text-sm">{{ backup.size }}</td>
|
|
263
|
+
<td class="p-2 text-sm">
|
|
264
|
+
<div class="flex items-center gap-2">
|
|
265
265
|
<component
|
|
266
266
|
v-if="getStatusIcon(backup)"
|
|
267
267
|
:is="getStatusIcon(backup)"
|
|
@@ -272,8 +272,8 @@ const tableClasses = computed(() => {
|
|
|
272
272
|
</span>
|
|
273
273
|
</div>
|
|
274
274
|
</td>
|
|
275
|
-
<td class="
|
|
276
|
-
<div class="
|
|
275
|
+
<td class="p-2 text-sm">
|
|
276
|
+
<div class="flex items-center justify-end gap-1">
|
|
277
277
|
<Button
|
|
278
278
|
variant="ghost"
|
|
279
279
|
size="sm"
|