@geniusdynamics/ns8-ui-lib 1.0.0
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/README.md +167 -0
- package/dist/index.d.ts +14 -0
- package/dist/ns8-ui-lib.es.js +4278 -0
- package/dist/ns8-ui-lib.es.js.map +1 -0
- package/dist/ns8-ui-lib.umd.js +7 -0
- package/dist/ns8-ui-lib.umd.js.map +1 -0
- package/dist/src/App.vue.d.ts +2 -0
- package/dist/src/components/HelloWorld.vue.d.ts +5 -0
- package/dist/src/components/NS/cards/NSBackupCard.vue.d.ts +51 -0
- package/dist/src/components/NS/cards/NSSystemInfoCard.vue.d.ts +58 -0
- package/dist/src/components/NS/cards/NSSystemdServiceCard.vue.d.ts +47 -0
- package/dist/src/components/NS/cards/index.d.ts +3 -0
- package/dist/src/components/NS/checkbox/NSCheckbox.vue.d.ts +37 -0
- package/dist/src/components/NS/checkbox/index.d.ts +1 -0
- package/dist/src/components/NS/data-table/NSDataTable.vue.d.ts +98 -0
- package/dist/src/components/NS/data-table/index.d.ts +1 -0
- package/dist/src/components/NS/empty-state/NSEmptyState.vue.d.ts +45 -0
- package/dist/src/components/NS/empty-state/index.d.ts +1 -0
- package/dist/src/components/NS/index.d.ts +35 -0
- package/dist/src/components/NS/inline-notification/NSInlineNotification.vue.d.ts +44 -0
- package/dist/src/components/NS/inline-notification/index.d.ts +1 -0
- package/dist/src/components/NS/lottie-animation/NSLottieAnimation.vue.d.ts +75 -0
- package/dist/src/components/NS/lottie-animation/index.d.ts +1 -0
- package/dist/src/components/NS/modal/NSModal.vue.d.ts +56 -0
- package/dist/src/components/NS/modal/NSModalTrigger.vue.d.ts +64 -0
- package/dist/src/components/NS/modal/index.d.ts +2 -0
- package/dist/src/components/NS/pagination/NSPagination.vue.d.ts +36 -0
- package/dist/src/components/NS/pagination/index.d.ts +1 -0
- package/dist/src/components/NS/progress/NSProgress.vue.d.ts +37 -0
- package/dist/src/components/NS/progress/NSProgressBar.vue.d.ts +39 -0
- package/dist/src/components/NS/progress/index.d.ts +2 -0
- package/dist/src/components/NS/slider/NSByteSlider.vue.d.ts +50 -0
- package/dist/src/components/NS/slider/NSSlider.vue.d.ts +49 -0
- package/dist/src/components/NS/slider/index.d.ts +2 -0
- package/dist/src/components/NS/tag/NSTag.vue.d.ts +41 -0
- package/dist/src/components/NS/tag/index.d.ts +1 -0
- package/dist/src/components/NS/text-input/NSTextInput.vue.d.ts +67 -0
- package/dist/src/components/NS/text-input/index.d.ts +1 -0
- package/dist/src/components/NS/toast-notification/NSToastNotification.vue.d.ts +44 -0
- package/dist/src/components/NS/toast-notification/index.d.ts +1 -0
- package/dist/src/components/NS/toggle/NSToggle.vue.d.ts +51 -0
- package/dist/src/components/NS/toggle/index.d.ts +1 -0
- package/dist/src/components/NS/wizard/NSWizard.vue.d.ts +86 -0
- package/dist/src/components/NS/wizard/index.d.ts +1 -0
- package/dist/src/components/ui/button/Button.vue.d.ts +27 -0
- package/dist/src/components/ui/button/index.d.ts +7 -0
- package/dist/src/components/ui/card/Card.vue.d.ts +21 -0
- package/dist/src/components/ui/card/CardAction.vue.d.ts +21 -0
- package/dist/src/components/ui/card/CardContent.vue.d.ts +21 -0
- package/dist/src/components/ui/card/CardDescription.vue.d.ts +21 -0
- package/dist/src/components/ui/card/CardFooter.vue.d.ts +21 -0
- package/dist/src/components/ui/card/CardHeader.vue.d.ts +21 -0
- package/dist/src/components/ui/card/CardTitle.vue.d.ts +21 -0
- package/dist/src/components/ui/card/index.d.ts +7 -0
- package/dist/src/components/ui/checkbox/NsCheckbox.vue.d.ts +49 -0
- package/dist/src/components/ui/checkbox/index.d.ts +11 -0
- package/dist/src/components/ui/dialog/Dialog.vue.d.ts +28 -0
- package/dist/src/components/ui/dialog/index.d.ts +1 -0
- package/dist/src/components/ui/empty-state/NsEmptyState.vue.d.ts +45 -0
- package/dist/src/components/ui/empty-state/index.d.ts +11 -0
- package/dist/src/components/ui/inline-notification/NsInlineNotification.vue.d.ts +45 -0
- package/dist/src/components/ui/inline-notification/index.d.ts +6 -0
- package/dist/src/components/ui/input/Input.vue.d.ts +12 -0
- package/dist/src/components/ui/input/index.d.ts +1 -0
- package/dist/src/components/ui/input-group/InputGroup.vue.d.ts +21 -0
- package/dist/src/components/ui/input-group/InputGroupAddon.vue.d.ts +25 -0
- package/dist/src/components/ui/input-group/InputGroupButton.vue.d.ts +22 -0
- package/dist/src/components/ui/input-group/InputGroupInput.vue.d.ts +6 -0
- package/dist/src/components/ui/input-group/InputGroupText.vue.d.ts +21 -0
- package/dist/src/components/ui/input-group/InputGroupTextarea.vue.d.ts +6 -0
- package/dist/src/components/ui/input-group/index.d.ts +22 -0
- package/dist/src/components/ui/item/Item.vue.d.ts +27 -0
- package/dist/src/components/ui/item/ItemActions.vue.d.ts +21 -0
- package/dist/src/components/ui/item/ItemContent.vue.d.ts +21 -0
- package/dist/src/components/ui/item/ItemDescription.vue.d.ts +21 -0
- package/dist/src/components/ui/item/ItemFooter.vue.d.ts +21 -0
- package/dist/src/components/ui/item/ItemGroup.vue.d.ts +21 -0
- package/dist/src/components/ui/item/ItemHeader.vue.d.ts +21 -0
- package/dist/src/components/ui/item/ItemMedia.vue.d.ts +23 -0
- package/dist/src/components/ui/item/ItemSeparator.vue.d.ts +7 -0
- package/dist/src/components/ui/item/ItemTitle.vue.d.ts +21 -0
- package/dist/src/components/ui/item/index.d.ts +20 -0
- package/dist/src/components/ui/label/Label.vue.d.ts +22 -0
- package/dist/src/components/ui/label/index.d.ts +1 -0
- package/dist/src/components/ui/scroll-area/ScrollArea.vue.d.ts +22 -0
- package/dist/src/components/ui/scroll-area/ScrollBar.vue.d.ts +9 -0
- package/dist/src/components/ui/scroll-area/index.d.ts +2 -0
- package/dist/src/components/ui/select/Select.vue.d.ts +28 -0
- package/dist/src/components/ui/select/SelectContent.vue.d.ts +32 -0
- package/dist/src/components/ui/select/SelectGroup.vue.d.ts +18 -0
- package/dist/src/components/ui/select/SelectItem.vue.d.ts +23 -0
- package/dist/src/components/ui/select/SelectItemText.vue.d.ts +18 -0
- package/dist/src/components/ui/select/SelectLabel.vue.d.ts +22 -0
- package/dist/src/components/ui/select/SelectScrollDownButton.vue.d.ts +22 -0
- package/dist/src/components/ui/select/SelectScrollUpButton.vue.d.ts +22 -0
- package/dist/src/components/ui/select/SelectSeparator.vue.d.ts +7 -0
- package/dist/src/components/ui/select/SelectTrigger.vue.d.ts +25 -0
- package/dist/src/components/ui/select/SelectValue.vue.d.ts +18 -0
- package/dist/src/components/ui/select/index.d.ts +11 -0
- package/dist/src/components/ui/separator/Separator.vue.d.ts +10 -0
- package/dist/src/components/ui/separator/index.d.ts +1 -0
- package/dist/src/components/ui/sheet/Sheet.vue.d.ts +25 -0
- package/dist/src/components/ui/sheet/SheetClose.vue.d.ts +18 -0
- package/dist/src/components/ui/sheet/SheetContent.vue.d.ts +39 -0
- package/dist/src/components/ui/sheet/SheetDescription.vue.d.ts +22 -0
- package/dist/src/components/ui/sheet/SheetFooter.vue.d.ts +21 -0
- package/dist/src/components/ui/sheet/SheetHeader.vue.d.ts +21 -0
- package/dist/src/components/ui/sheet/SheetOverlay.vue.d.ts +22 -0
- package/dist/src/components/ui/sheet/SheetTitle.vue.d.ts +22 -0
- package/dist/src/components/ui/sheet/SheetTrigger.vue.d.ts +18 -0
- package/dist/src/components/ui/sheet/index.d.ts +8 -0
- package/dist/src/components/ui/sidebar/Sidebar.vue.d.ts +24 -0
- package/dist/src/components/ui/sidebar/SidebarContent.vue.d.ts +21 -0
- package/dist/src/components/ui/sidebar/SidebarFooter.vue.d.ts +21 -0
- package/dist/src/components/ui/sidebar/SidebarGroup.vue.d.ts +21 -0
- package/dist/src/components/ui/sidebar/SidebarGroupAction.vue.d.ts +22 -0
- package/dist/src/components/ui/sidebar/SidebarGroupContent.vue.d.ts +21 -0
- package/dist/src/components/ui/sidebar/SidebarGroupLabel.vue.d.ts +22 -0
- package/dist/src/components/ui/sidebar/SidebarHeader.vue.d.ts +21 -0
- package/dist/src/components/ui/sidebar/SidebarInput.vue.d.ts +21 -0
- package/dist/src/components/ui/sidebar/SidebarInset.vue.d.ts +21 -0
- package/dist/src/components/ui/sidebar/SidebarMenu.vue.d.ts +21 -0
- package/dist/src/components/ui/sidebar/SidebarMenuAction.vue.d.ts +25 -0
- package/dist/src/components/ui/sidebar/SidebarMenuBadge.vue.d.ts +21 -0
- package/dist/src/components/ui/sidebar/SidebarMenuButton.vue.d.ts +27 -0
- package/dist/src/components/ui/sidebar/SidebarMenuButtonChild.vue.d.ts +30 -0
- package/dist/src/components/ui/sidebar/SidebarMenuItem.vue.d.ts +21 -0
- package/dist/src/components/ui/sidebar/SidebarMenuSkeleton.vue.d.ts +7 -0
- package/dist/src/components/ui/sidebar/SidebarMenuSub.vue.d.ts +21 -0
- package/dist/src/components/ui/sidebar/SidebarMenuSubButton.vue.d.ts +27 -0
- package/dist/src/components/ui/sidebar/SidebarMenuSubItem.vue.d.ts +21 -0
- package/dist/src/components/ui/sidebar/SidebarProvider.vue.d.ts +30 -0
- package/dist/src/components/ui/sidebar/SidebarRail.vue.d.ts +21 -0
- package/dist/src/components/ui/sidebar/SidebarSeparator.vue.d.ts +21 -0
- package/dist/src/components/ui/sidebar/SidebarTrigger.vue.d.ts +6 -0
- package/dist/src/components/ui/sidebar/index.d.ts +37 -0
- package/dist/src/components/ui/sidebar/utils.d.ts +56 -0
- package/dist/src/components/ui/skeleton/Skeleton.vue.d.ts +6 -0
- package/dist/src/components/ui/skeleton/index.d.ts +1 -0
- package/dist/src/components/ui/sonner/Sonner.vue.d.ts +3 -0
- package/dist/src/components/ui/sonner/index.d.ts +1 -0
- package/dist/src/components/ui/switch/Switch.vue.d.ts +28 -0
- package/dist/src/components/ui/switch/index.d.ts +1 -0
- package/dist/src/components/ui/table/Table.vue.d.ts +21 -0
- package/dist/src/components/ui/table/TableBody.vue.d.ts +21 -0
- package/dist/src/components/ui/table/TableCaption.vue.d.ts +21 -0
- package/dist/src/components/ui/table/TableCell.vue.d.ts +21 -0
- package/dist/src/components/ui/table/TableEmpty.vue.d.ts +24 -0
- package/dist/src/components/ui/table/TableFooter.vue.d.ts +21 -0
- package/dist/src/components/ui/table/TableHead.vue.d.ts +21 -0
- package/dist/src/components/ui/table/TableHeader.vue.d.ts +21 -0
- package/dist/src/components/ui/table/TableRow.vue.d.ts +21 -0
- package/dist/src/components/ui/table/index.d.ts +9 -0
- package/dist/src/components/ui/table/utils.d.ts +3 -0
- package/dist/src/components/ui/tabs/Tabs.vue.d.ts +28 -0
- package/dist/src/components/ui/tabs/TabsContent.vue.d.ts +22 -0
- package/dist/src/components/ui/tabs/TabsList.vue.d.ts +22 -0
- package/dist/src/components/ui/tabs/TabsTrigger.vue.d.ts +22 -0
- package/dist/src/components/ui/tabs/index.d.ts +4 -0
- package/dist/src/components/ui/tag/NsTag.vue.d.ts +42 -0
- package/dist/src/components/ui/tag/index.d.ts +8 -0
- package/dist/src/components/ui/text-input/NsTextInput.vue.d.ts +79 -0
- package/dist/src/components/ui/text-input/index.d.ts +15 -0
- package/dist/src/components/ui/textarea/Textarea.vue.d.ts +12 -0
- package/dist/src/components/ui/textarea/index.d.ts +1 -0
- package/dist/src/components/ui/toggle/NsToggle.vue.d.ts +54 -0
- package/dist/src/components/ui/toggle/index.d.ts +15 -0
- package/dist/src/components/ui/tooltip/Tooltip.vue.d.ts +24 -0
- package/dist/src/components/ui/tooltip/TooltipContent.vue.d.ts +30 -0
- package/dist/src/components/ui/tooltip/TooltipProvider.vue.d.ts +20 -0
- package/dist/src/components/ui/tooltip/TooltipTrigger.vue.d.ts +18 -0
- package/dist/src/components/ui/tooltip/index.d.ts +4 -0
- package/dist/src/composables/index.d.ts +8 -0
- package/dist/src/composables/useDateTimeService.d.ts +10 -0
- package/dist/src/composables/useFilterService.d.ts +8 -0
- package/dist/src/composables/useIconService.d.ts +153 -0
- package/dist/src/composables/usePageTitleService.d.ts +3 -0
- package/dist/src/composables/useQueryParamService.d.ts +13 -0
- package/dist/src/composables/useStorageService.d.ts +5 -0
- package/dist/src/composables/useTaskService.d.ts +18 -0
- package/dist/src/composables/useUtilService.d.ts +27 -0
- package/dist/src/lib/utils.d.ts +2 -0
- package/dist/src/main.d.ts +0 -0
- package/dist/vite.svg +1 -0
- package/package.json +80 -0
- package/src/App.vue +30 -0
- package/src/components/HelloWorld.vue +41 -0
- package/src/components/NS/CompleteDemo.vue +475 -0
- package/src/components/NS/Demo.vue +191 -0
- package/src/components/NS/cards/NSBackupCard.vue +272 -0
- package/src/components/NS/cards/NSSystemInfoCard.vue +252 -0
- package/src/components/NS/cards/NSSystemdServiceCard.vue +250 -0
- package/src/components/NS/checkbox/NSCheckbox.vue +104 -0
- package/src/components/NS/data-table/NSDataTable.vue +434 -0
- package/src/components/NS/empty-state/NSEmptyState.vue +188 -0
- package/src/components/NS/inline-notification/NSInlineNotification.vue +162 -0
- package/src/components/NS/lottie-animation/NSLottieAnimation.vue +255 -0
- package/src/components/NS/modal/NSModal.vue +193 -0
- package/src/components/NS/modal/NSModalTrigger.vue +109 -0
- package/src/components/NS/pagination/NSPagination.vue +247 -0
- package/src/components/NS/progress/NSProgress.vue +115 -0
- package/src/components/NS/progress/NSProgressBar.vue +137 -0
- package/src/components/NS/slider/NSByteSlider.vue +144 -0
- package/src/components/NS/slider/NSSlider.vue +142 -0
- package/src/components/NS/tag/NSTag.vue +139 -0
- package/src/components/NS/text-input/NSTextInput.vue +242 -0
- package/src/components/NS/toast-notification/NSToastNotification.vue +163 -0
- package/src/components/NS/toggle/NSToggle.vue +156 -0
- package/src/components/NS/wizard/NSWizard.vue +399 -0
- package/src/components/ui/button/Button.vue +29 -0
- package/src/components/ui/card/Card.vue +22 -0
- package/src/components/ui/card/CardAction.vue +17 -0
- package/src/components/ui/card/CardContent.vue +17 -0
- package/src/components/ui/card/CardDescription.vue +17 -0
- package/src/components/ui/card/CardFooter.vue +17 -0
- package/src/components/ui/card/CardHeader.vue +17 -0
- package/src/components/ui/card/CardTitle.vue +17 -0
- package/src/components/ui/checkbox/NsCheckbox.vue +123 -0
- package/src/components/ui/dialog/Dialog.vue +68 -0
- package/src/components/ui/empty-state/NsEmptyState.vue +149 -0
- package/src/components/ui/inline-notification/NsInlineNotification.vue +163 -0
- package/src/components/ui/input/Input.vue +33 -0
- package/src/components/ui/input-group/InputGroup.vue +35 -0
- package/src/components/ui/input-group/InputGroupAddon.vue +36 -0
- package/src/components/ui/input-group/InputGroupButton.vue +21 -0
- package/src/components/ui/input-group/InputGroupInput.vue +19 -0
- package/src/components/ui/input-group/InputGroupText.vue +19 -0
- package/src/components/ui/input-group/InputGroupTextarea.vue +19 -0
- package/src/components/ui/item/Item.vue +27 -0
- package/src/components/ui/item/ItemActions.vue +17 -0
- package/src/components/ui/item/ItemContent.vue +17 -0
- package/src/components/ui/item/ItemDescription.vue +21 -0
- package/src/components/ui/item/ItemFooter.vue +17 -0
- package/src/components/ui/item/ItemGroup.vue +18 -0
- package/src/components/ui/item/ItemHeader.vue +17 -0
- package/src/components/ui/item/ItemMedia.vue +21 -0
- package/src/components/ui/item/ItemSeparator.vue +18 -0
- package/src/components/ui/item/ItemTitle.vue +17 -0
- package/src/components/ui/label/Label.vue +26 -0
- package/src/components/ui/scroll-area/ScrollArea.vue +33 -0
- package/src/components/ui/scroll-area/ScrollBar.vue +32 -0
- package/src/components/ui/select/Select.vue +19 -0
- package/src/components/ui/select/SelectContent.vue +51 -0
- package/src/components/ui/select/SelectGroup.vue +15 -0
- package/src/components/ui/select/SelectItem.vue +44 -0
- package/src/components/ui/select/SelectItemText.vue +15 -0
- package/src/components/ui/select/SelectLabel.vue +17 -0
- package/src/components/ui/select/SelectScrollDownButton.vue +26 -0
- package/src/components/ui/select/SelectScrollUpButton.vue +26 -0
- package/src/components/ui/select/SelectSeparator.vue +19 -0
- package/src/components/ui/select/SelectTrigger.vue +33 -0
- package/src/components/ui/select/SelectValue.vue +15 -0
- package/src/components/ui/separator/Separator.vue +29 -0
- package/src/components/ui/sheet/Sheet.vue +19 -0
- package/src/components/ui/sheet/SheetClose.vue +15 -0
- package/src/components/ui/sheet/SheetContent.vue +62 -0
- package/src/components/ui/sheet/SheetDescription.vue +21 -0
- package/src/components/ui/sheet/SheetFooter.vue +16 -0
- package/src/components/ui/sheet/SheetHeader.vue +15 -0
- package/src/components/ui/sheet/SheetOverlay.vue +21 -0
- package/src/components/ui/sheet/SheetTitle.vue +21 -0
- package/src/components/ui/sheet/SheetTrigger.vue +15 -0
- package/src/components/ui/sidebar/Sidebar.vue +96 -0
- package/src/components/ui/sidebar/SidebarContent.vue +18 -0
- package/src/components/ui/sidebar/SidebarFooter.vue +18 -0
- package/src/components/ui/sidebar/SidebarGroup.vue +18 -0
- package/src/components/ui/sidebar/SidebarGroupAction.vue +27 -0
- package/src/components/ui/sidebar/SidebarGroupContent.vue +18 -0
- package/src/components/ui/sidebar/SidebarGroupLabel.vue +25 -0
- package/src/components/ui/sidebar/SidebarHeader.vue +18 -0
- package/src/components/ui/sidebar/SidebarInput.vue +22 -0
- package/src/components/ui/sidebar/SidebarInset.vue +21 -0
- package/src/components/ui/sidebar/SidebarMenu.vue +18 -0
- package/src/components/ui/sidebar/SidebarMenuAction.vue +35 -0
- package/src/components/ui/sidebar/SidebarMenuBadge.vue +26 -0
- package/src/components/ui/sidebar/SidebarMenuButton.vue +48 -0
- package/src/components/ui/sidebar/SidebarMenuButtonChild.vue +36 -0
- package/src/components/ui/sidebar/SidebarMenuItem.vue +18 -0
- package/src/components/ui/sidebar/SidebarMenuSkeleton.vue +35 -0
- package/src/components/ui/sidebar/SidebarMenuSub.vue +22 -0
- package/src/components/ui/sidebar/SidebarMenuSubButton.vue +36 -0
- package/src/components/ui/sidebar/SidebarMenuSubItem.vue +18 -0
- package/src/components/ui/sidebar/SidebarProvider.vue +82 -0
- package/src/components/ui/sidebar/SidebarRail.vue +33 -0
- package/src/components/ui/sidebar/SidebarSeparator.vue +19 -0
- package/src/components/ui/sidebar/SidebarTrigger.vue +27 -0
- package/src/components/ui/skeleton/Skeleton.vue +17 -0
- package/src/components/ui/sonner/Sonner.vue +42 -0
- package/src/components/ui/switch/Switch.vue +38 -0
- package/src/components/ui/table/Table.vue +16 -0
- package/src/components/ui/table/TableBody.vue +17 -0
- package/src/components/ui/table/TableCaption.vue +17 -0
- package/src/components/ui/table/TableCell.vue +22 -0
- package/src/components/ui/table/TableEmpty.vue +34 -0
- package/src/components/ui/table/TableFooter.vue +17 -0
- package/src/components/ui/table/TableHead.vue +17 -0
- package/src/components/ui/table/TableHeader.vue +17 -0
- package/src/components/ui/table/TableRow.vue +17 -0
- package/src/components/ui/tabs/Tabs.vue +24 -0
- package/src/components/ui/tabs/TabsContent.vue +21 -0
- package/src/components/ui/tabs/TabsList.vue +24 -0
- package/src/components/ui/tabs/TabsTrigger.vue +26 -0
- package/src/components/ui/tag/NsTag.vue +114 -0
- package/src/components/ui/text-input/NsTextInput.vue +269 -0
- package/src/components/ui/textarea/Textarea.vue +28 -0
- package/src/components/ui/toggle/NsToggle.vue +126 -0
- package/src/components/ui/tooltip/Tooltip.vue +19 -0
- package/src/components/ui/tooltip/TooltipContent.vue +34 -0
- package/src/components/ui/tooltip/TooltipProvider.vue +14 -0
- package/src/components/ui/tooltip/TooltipTrigger.vue +15 -0
|
@@ -0,0 +1,475 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { ref } from 'vue'
|
|
3
|
+
import {
|
|
4
|
+
NSCheckbox,
|
|
5
|
+
NSTextInput,
|
|
6
|
+
NSToggle,
|
|
7
|
+
NSTag,
|
|
8
|
+
NSEmptyState,
|
|
9
|
+
NSInlineNotification,
|
|
10
|
+
NSToastNotification,
|
|
11
|
+
NSProgress,
|
|
12
|
+
NSProgressBar,
|
|
13
|
+
NSModal,
|
|
14
|
+
NSModalTrigger,
|
|
15
|
+
NSSlider,
|
|
16
|
+
NSByteSlider,
|
|
17
|
+
NSPagination,
|
|
18
|
+
NSDataTable,
|
|
19
|
+
NSWizard,
|
|
20
|
+
NSBackupCard,
|
|
21
|
+
NSSystemdServiceCard,
|
|
22
|
+
NSSystemInfoCard
|
|
23
|
+
} from '@/components/NS'
|
|
24
|
+
|
|
25
|
+
// Basic component states
|
|
26
|
+
const checkboxValue = ref(false)
|
|
27
|
+
const textValue = ref('')
|
|
28
|
+
const toggleValue = ref(false)
|
|
29
|
+
const tags = ref(['Development', 'Vue.js', 'TypeScript'])
|
|
30
|
+
const sliderValue = ref(50)
|
|
31
|
+
const byteSliderValue = ref(512)
|
|
32
|
+
const progressValue = ref(65)
|
|
33
|
+
const modalOpen = ref(false)
|
|
34
|
+
const currentPage = ref(1)
|
|
35
|
+
const wizardStep = ref(0)
|
|
36
|
+
|
|
37
|
+
// Data table states
|
|
38
|
+
const tableData = ref([
|
|
39
|
+
{ id: 1, name: 'John Doe', email: 'john@example.com', role: 'Admin', status: 'Active' },
|
|
40
|
+
{ id: 2, name: 'Jane Smith', email: 'jane@example.com', role: 'User', status: 'Active' },
|
|
41
|
+
{ id: 3, name: 'Bob Johnson', email: 'bob@example.com', role: 'User', status: 'Inactive' },
|
|
42
|
+
{ id: 4, name: 'Alice Brown', email: 'alice@example.com', role: 'Moderator', status: 'Active' },
|
|
43
|
+
])
|
|
44
|
+
|
|
45
|
+
const tableColumns = ref([
|
|
46
|
+
{ key: 'name', label: 'Name', sortable: true },
|
|
47
|
+
{ key: 'email', label: 'Email', sortable: true },
|
|
48
|
+
{ key: 'role', label: 'Role', sortable: true },
|
|
49
|
+
{ key: 'status', label: 'Status', sortable: true },
|
|
50
|
+
])
|
|
51
|
+
|
|
52
|
+
// Wizard steps
|
|
53
|
+
const wizardSteps = ref([
|
|
54
|
+
{
|
|
55
|
+
id: 'account',
|
|
56
|
+
title: 'Account Setup',
|
|
57
|
+
description: 'Configure your account settings',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
id: 'profile',
|
|
61
|
+
title: 'Profile Information',
|
|
62
|
+
description: 'Provide your personal details',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
id: 'preferences',
|
|
66
|
+
title: 'Preferences',
|
|
67
|
+
description: 'Set your application preferences',
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
id: 'review',
|
|
71
|
+
title: 'Review',
|
|
72
|
+
description: 'Review your information before submission',
|
|
73
|
+
},
|
|
74
|
+
])
|
|
75
|
+
|
|
76
|
+
// Backup data
|
|
77
|
+
const backupData = ref([
|
|
78
|
+
{
|
|
79
|
+
id: 'backup-1',
|
|
80
|
+
name: 'Daily Backup',
|
|
81
|
+
date: '2024-01-15 02:00',
|
|
82
|
+
size: '2.3 GB',
|
|
83
|
+
enabled: true,
|
|
84
|
+
status: 'success' as const,
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
id: 'backup-2',
|
|
88
|
+
name: 'Weekly Backup',
|
|
89
|
+
date: '2024-01-14 02:00',
|
|
90
|
+
size: '1.8 GB',
|
|
91
|
+
enabled: true,
|
|
92
|
+
status: 'success' as const,
|
|
93
|
+
},
|
|
94
|
+
])
|
|
95
|
+
|
|
96
|
+
// System metrics
|
|
97
|
+
const systemMetrics = ref({
|
|
98
|
+
totalSpace: '100 GB',
|
|
99
|
+
usedSpace: '65 GB',
|
|
100
|
+
freeSpace: '35 GB',
|
|
101
|
+
usagePercentage: 65,
|
|
102
|
+
temperature: '42°C',
|
|
103
|
+
loadAverage: ['1.2', '1.5', '1.8'],
|
|
104
|
+
uptime: '15 days, 7 hours',
|
|
105
|
+
processes: 156,
|
|
106
|
+
memory: {
|
|
107
|
+
total: '16 GB',
|
|
108
|
+
used: '8.2 GB',
|
|
109
|
+
free: '7.8 GB',
|
|
110
|
+
percentage: 51,
|
|
111
|
+
},
|
|
112
|
+
cpu: {
|
|
113
|
+
cores: 8,
|
|
114
|
+
usage: 23,
|
|
115
|
+
frequency: '2.4 GHz',
|
|
116
|
+
},
|
|
117
|
+
})
|
|
118
|
+
|
|
119
|
+
// Service status
|
|
120
|
+
const serviceStatus = ref({
|
|
121
|
+
running: true,
|
|
122
|
+
enabled: true,
|
|
123
|
+
status: 'Running',
|
|
124
|
+
uptime: '5 days, 12 hours',
|
|
125
|
+
lastRestart: '2024-01-10 08:30',
|
|
126
|
+
memory: '256 MB',
|
|
127
|
+
cpu: '5%',
|
|
128
|
+
})
|
|
129
|
+
|
|
130
|
+
const handleTagRemove = (index: number) => {
|
|
131
|
+
tags.value.splice(index, 1)
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
const handleNotificationClose = () => {
|
|
135
|
+
console.log('Notification closed')
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
const handleNotificationAction = () => {
|
|
139
|
+
console.log('Notification action triggered')
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
const handlePageChange = (page: number) => {
|
|
143
|
+
currentPage.value = page
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
const handleWizardFinish = (data: any) => {
|
|
147
|
+
console.log('Wizard finished:', data)
|
|
148
|
+
}
|
|
149
|
+
</script>
|
|
150
|
+
|
|
151
|
+
<template>
|
|
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
|
+
|
|
155
|
+
<!-- Basic Form Controls -->
|
|
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
|
+
<!-- NS Checkbox -->
|
|
160
|
+
<div class="space-y-4">
|
|
161
|
+
<h3 class="text-lg font-medium">NS Checkbox</h3>
|
|
162
|
+
<NSCheckbox
|
|
163
|
+
v-model:checked="checkboxValue"
|
|
164
|
+
label="Accept terms and conditions"
|
|
165
|
+
description="By checking this box, you agree to our terms"
|
|
166
|
+
/>
|
|
167
|
+
<NSCheckbox
|
|
168
|
+
v-model:checked="checkboxValue"
|
|
169
|
+
label="Required field"
|
|
170
|
+
description="This checkbox is required"
|
|
171
|
+
error-message="This field is required"
|
|
172
|
+
:checked="false"
|
|
173
|
+
/>
|
|
174
|
+
</div>
|
|
175
|
+
|
|
176
|
+
<!-- NS Text Input -->
|
|
177
|
+
<div class="space-y-4">
|
|
178
|
+
<h3 class="text-lg font-medium">NS Text Input</h3>
|
|
179
|
+
<NSTextInput
|
|
180
|
+
v-model="textValue"
|
|
181
|
+
label="Email"
|
|
182
|
+
type="email"
|
|
183
|
+
placeholder="email@example.com"
|
|
184
|
+
prefix="📧"
|
|
185
|
+
success-message="Email format is valid"
|
|
186
|
+
/>
|
|
187
|
+
<NSTextInput
|
|
188
|
+
v-model="textValue"
|
|
189
|
+
label="Password"
|
|
190
|
+
type="password"
|
|
191
|
+
placeholder="Enter your password"
|
|
192
|
+
:show-password-toggle="true"
|
|
193
|
+
/>
|
|
194
|
+
</div>
|
|
195
|
+
|
|
196
|
+
<!-- NS Toggle -->
|
|
197
|
+
<div class="space-y-4">
|
|
198
|
+
<h3 class="text-lg font-medium">NS Toggle</h3>
|
|
199
|
+
<NSToggle
|
|
200
|
+
v-model:checked="toggleValue"
|
|
201
|
+
label="Dark Mode"
|
|
202
|
+
description="Enable dark theme"
|
|
203
|
+
left-text="Light"
|
|
204
|
+
right-text="Dark"
|
|
205
|
+
/>
|
|
206
|
+
<NSToggle
|
|
207
|
+
v-model:checked="toggleValue"
|
|
208
|
+
label="Notifications"
|
|
209
|
+
description="Enable notifications"
|
|
210
|
+
variant="success"
|
|
211
|
+
:checked="true"
|
|
212
|
+
/>
|
|
213
|
+
</div>
|
|
214
|
+
</div>
|
|
215
|
+
</section>
|
|
216
|
+
|
|
217
|
+
<!-- Tags and Badges -->
|
|
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
|
+
<NSTag
|
|
222
|
+
v-for="(tag, index) in tags"
|
|
223
|
+
:key="index"
|
|
224
|
+
:label="tag"
|
|
225
|
+
removable
|
|
226
|
+
@remove="handleTagRemove(index)"
|
|
227
|
+
/>
|
|
228
|
+
<NSTag label="Default" />
|
|
229
|
+
<NSTag label="Secondary" variant="secondary" />
|
|
230
|
+
<NSTag label="Destructive" variant="destructive" />
|
|
231
|
+
<NSTag label="Success" variant="success" />
|
|
232
|
+
<NSTag label="Warning" variant="warning" />
|
|
233
|
+
<NSTag label="Info" variant="info" />
|
|
234
|
+
<NSTag label="Large" size="lg" />
|
|
235
|
+
</div>
|
|
236
|
+
</section>
|
|
237
|
+
|
|
238
|
+
<!-- Progress and Sliders -->
|
|
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
|
+
<NSProgress
|
|
245
|
+
:value="progressValue"
|
|
246
|
+
show-label
|
|
247
|
+
label="Upload Progress"
|
|
248
|
+
description="File upload in progress..."
|
|
249
|
+
/>
|
|
250
|
+
<NSProgressBar
|
|
251
|
+
:value="progressValue"
|
|
252
|
+
show-label
|
|
253
|
+
label="Processing"
|
|
254
|
+
description="Background task running..."
|
|
255
|
+
/>
|
|
256
|
+
</div>
|
|
257
|
+
|
|
258
|
+
<div class="space-y-4">
|
|
259
|
+
<h3 class="text-lg font-medium">Slider Components</h3>
|
|
260
|
+
<NSSlider
|
|
261
|
+
v-model="sliderValue"
|
|
262
|
+
:max="100"
|
|
263
|
+
show-label
|
|
264
|
+
label="Volume Control"
|
|
265
|
+
show-value
|
|
266
|
+
format-value="(val) => `${val}%`"
|
|
267
|
+
/>
|
|
268
|
+
<NSByteSlider
|
|
269
|
+
v-model="byteSliderValue"
|
|
270
|
+
:max="1024"
|
|
271
|
+
show-label
|
|
272
|
+
label="Memory Limit"
|
|
273
|
+
show-value
|
|
274
|
+
/>
|
|
275
|
+
</div>
|
|
276
|
+
</div>
|
|
277
|
+
</section>
|
|
278
|
+
|
|
279
|
+
<!-- Empty State and Notifications -->
|
|
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
|
+
<NSEmptyState
|
|
286
|
+
title="No results found"
|
|
287
|
+
description="Try adjusting your search filters to find what you're looking for."
|
|
288
|
+
/>
|
|
289
|
+
</div>
|
|
290
|
+
|
|
291
|
+
<div class="space-y-4">
|
|
292
|
+
<h3 class="text-lg font-medium">Notifications</h3>
|
|
293
|
+
<NSInlineNotification
|
|
294
|
+
title="Success!"
|
|
295
|
+
description="Your changes have been saved successfully."
|
|
296
|
+
variant="success"
|
|
297
|
+
:show-close-button="true"
|
|
298
|
+
@close="handleNotificationClose"
|
|
299
|
+
/>
|
|
300
|
+
<NSInlineNotification
|
|
301
|
+
title="Warning"
|
|
302
|
+
description="Please review your input before proceeding."
|
|
303
|
+
variant="warning"
|
|
304
|
+
action-label="Review"
|
|
305
|
+
@action="handleNotificationAction"
|
|
306
|
+
/>
|
|
307
|
+
</div>
|
|
308
|
+
</div>
|
|
309
|
+
</section>
|
|
310
|
+
|
|
311
|
+
<!-- Modal -->
|
|
312
|
+
<section class="space-y-6">
|
|
313
|
+
<h2 class="text-2xl font-semibold">Modal</h2>
|
|
314
|
+
<NSModalTrigger
|
|
315
|
+
v-model="modalOpen"
|
|
316
|
+
title="Example Modal"
|
|
317
|
+
description="This is an example modal with rich content."
|
|
318
|
+
>
|
|
319
|
+
<template #trigger>
|
|
320
|
+
<button class="px-4 py-2 bg-primary text-primary-foreground rounded-md hover:bg-primary/90">
|
|
321
|
+
Open Modal
|
|
322
|
+
</button>
|
|
323
|
+
</template>
|
|
324
|
+
|
|
325
|
+
<div class="space-y-4">
|
|
326
|
+
<p>This modal demonstrates the NSModal component with:</p>
|
|
327
|
+
<ul class="list-disc list-inside space-y-1 text-sm text-muted-foreground">
|
|
328
|
+
<li>Customizable sizes</li>
|
|
329
|
+
<li>Fullscreen mode</li>
|
|
330
|
+
<li>Header and footer slots</li>
|
|
331
|
+
<li>Escape key and overlay click handling</li>
|
|
332
|
+
</ul>
|
|
333
|
+
<div class="flex justify-end gap-2 pt-4">
|
|
334
|
+
<button
|
|
335
|
+
class="px-3 py-2 border border-input bg-background hover:bg-accent rounded-md"
|
|
336
|
+
@click="modalOpen = false"
|
|
337
|
+
>
|
|
338
|
+
Cancel
|
|
339
|
+
</button>
|
|
340
|
+
<button
|
|
341
|
+
class="px-3 py-2 bg-primary text-primary-foreground rounded-md hover:bg-primary/90"
|
|
342
|
+
@click="modalOpen = false"
|
|
343
|
+
>
|
|
344
|
+
Confirm
|
|
345
|
+
</button>
|
|
346
|
+
</div>
|
|
347
|
+
</div>
|
|
348
|
+
</NSModalTrigger>
|
|
349
|
+
</section>
|
|
350
|
+
|
|
351
|
+
<!-- Data Table -->
|
|
352
|
+
<section class="space-y-6">
|
|
353
|
+
<h2 class="text-2xl font-semibold">Data Table</h2>
|
|
354
|
+
<NSDataTable
|
|
355
|
+
:data="tableData"
|
|
356
|
+
:columns="tableColumns"
|
|
357
|
+
:current-page="currentPage"
|
|
358
|
+
:items-per-page="2"
|
|
359
|
+
:pagination="true"
|
|
360
|
+
:searchable="true"
|
|
361
|
+
:selectable="true"
|
|
362
|
+
:striped="true"
|
|
363
|
+
:hover="true"
|
|
364
|
+
show-total
|
|
365
|
+
@page-change="handlePageChange"
|
|
366
|
+
/>
|
|
367
|
+
</section>
|
|
368
|
+
|
|
369
|
+
<!-- Wizard -->
|
|
370
|
+
<section class="space-y-6">
|
|
371
|
+
<h2 class="text-2xl font-semibold">Wizard</h2>
|
|
372
|
+
<NSWizard
|
|
373
|
+
v-model="wizardStep"
|
|
374
|
+
:steps="wizardSteps"
|
|
375
|
+
:show-progress-bar="true"
|
|
376
|
+
:show-navigation="true"
|
|
377
|
+
:allow-skip="true"
|
|
378
|
+
finish-text="Complete Setup"
|
|
379
|
+
@finish="handleWizardFinish"
|
|
380
|
+
>
|
|
381
|
+
<template #step-account>
|
|
382
|
+
<div class="space-y-4">
|
|
383
|
+
<NSTextInput label="Username" placeholder="Choose a username" />
|
|
384
|
+
<NSTextInput label="Email" type="email" placeholder="your@email.com" />
|
|
385
|
+
<NSTextInput label="Password" type="password" :show-password-toggle="true" />
|
|
386
|
+
</div>
|
|
387
|
+
</template>
|
|
388
|
+
|
|
389
|
+
<template #step-profile>
|
|
390
|
+
<div class="space-y-4">
|
|
391
|
+
<NSTextInput label="First Name" placeholder="John" />
|
|
392
|
+
<NSTextInput label="Last Name" placeholder="Doe" />
|
|
393
|
+
<NSTextInput label="Phone" placeholder="+1 234 567 8900" />
|
|
394
|
+
</div>
|
|
395
|
+
</template>
|
|
396
|
+
|
|
397
|
+
<template #step-preferences>
|
|
398
|
+
<div class="space-y-4">
|
|
399
|
+
<NSToggle label="Email Notifications" description="Receive email updates" />
|
|
400
|
+
<NSToggle label="Push Notifications" description="Receive push notifications" />
|
|
401
|
+
<NSToggle label="Dark Mode" description="Use dark theme" />
|
|
402
|
+
</div>
|
|
403
|
+
</template>
|
|
404
|
+
|
|
405
|
+
<template #step-review>
|
|
406
|
+
<div class="space-y-4">
|
|
407
|
+
<NSEmptyState
|
|
408
|
+
title="Review Your Information"
|
|
409
|
+
description="Please review all the information you've provided before completing the setup."
|
|
410
|
+
icon="search"
|
|
411
|
+
/>
|
|
412
|
+
</div>
|
|
413
|
+
</template>
|
|
414
|
+
</NSWizard>
|
|
415
|
+
</section>
|
|
416
|
+
|
|
417
|
+
<!-- Specialized Cards -->
|
|
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
|
+
<!-- Backup Card -->
|
|
422
|
+
<NSBackupCard
|
|
423
|
+
:backups="backupData"
|
|
424
|
+
:loading="false"
|
|
425
|
+
title="Backup Management"
|
|
426
|
+
no-backup-message="No backups configured"
|
|
427
|
+
@backup="(id) => console.log('Backup:', id)"
|
|
428
|
+
@restore="(id) => console.log('Restore:', id)"
|
|
429
|
+
@delete="(id) => console.log('Delete:', id)"
|
|
430
|
+
/>
|
|
431
|
+
|
|
432
|
+
<!-- Systemd Service Card -->
|
|
433
|
+
<NSSystemdServiceCard
|
|
434
|
+
title="Web Server"
|
|
435
|
+
description="Apache HTTP Server"
|
|
436
|
+
:status="serviceStatus"
|
|
437
|
+
service-name="apache2"
|
|
438
|
+
:show-uptime="true"
|
|
439
|
+
:show-metrics="true"
|
|
440
|
+
@start="(name) => console.log('Start:', name)"
|
|
441
|
+
@stop="(name) => console.log('Stop:', name)"
|
|
442
|
+
@restart="(name) => console.log('Restart:', name)"
|
|
443
|
+
/>
|
|
444
|
+
|
|
445
|
+
<!-- System Info Card -->
|
|
446
|
+
<NSSystemInfoCard
|
|
447
|
+
title="System Overview"
|
|
448
|
+
description="Current system status and resource usage"
|
|
449
|
+
:metrics="systemMetrics"
|
|
450
|
+
:show-storage="true"
|
|
451
|
+
:show-memory="true"
|
|
452
|
+
:show-cpu="true"
|
|
453
|
+
:show-uptime="true"
|
|
454
|
+
:show-temperature="true"
|
|
455
|
+
:refreshable="true"
|
|
456
|
+
@refresh="() => console.log('Refresh metrics')"
|
|
457
|
+
/>
|
|
458
|
+
</div>
|
|
459
|
+
</section>
|
|
460
|
+
|
|
461
|
+
<!-- Pagination -->
|
|
462
|
+
<section class="space-y-6">
|
|
463
|
+
<h2 class="text-2xl font-semibold">Pagination</h2>
|
|
464
|
+
<NSPagination
|
|
465
|
+
:current-page="currentPage"
|
|
466
|
+
:total-items="50"
|
|
467
|
+
:items-per-page="10"
|
|
468
|
+
:show-size-changer="true"
|
|
469
|
+
:show-quick-jumper="true"
|
|
470
|
+
:page-size-options="[5, 10, 20, 50]"
|
|
471
|
+
@page-change="handlePageChange"
|
|
472
|
+
/>
|
|
473
|
+
</section>
|
|
474
|
+
</div>
|
|
475
|
+
</template>
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { ref } from 'vue'
|
|
3
|
+
import {
|
|
4
|
+
NSCheckbox,
|
|
5
|
+
NSTextInput,
|
|
6
|
+
NSToggle,
|
|
7
|
+
NSTag,
|
|
8
|
+
NSEmptyState,
|
|
9
|
+
NSInlineNotification
|
|
10
|
+
} from '@/components/NS'
|
|
11
|
+
|
|
12
|
+
const checkboxValue = ref(false)
|
|
13
|
+
const textValue = ref('')
|
|
14
|
+
const toggleValue = ref(false)
|
|
15
|
+
const tags = ref(['Development', 'Vue.js', 'TypeScript'])
|
|
16
|
+
|
|
17
|
+
const handleTagRemove = (index: number) => {
|
|
18
|
+
tags.value.splice(index, 1)
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const handleNotificationClose = () => {
|
|
22
|
+
console.log('Notification closed')
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const handleNotificationAction = () => {
|
|
26
|
+
console.log('Notification action triggered')
|
|
27
|
+
}
|
|
28
|
+
</script>
|
|
29
|
+
|
|
30
|
+
<template>
|
|
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
|
+
|
|
34
|
+
<!-- NS Checkbox -->
|
|
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
|
+
<NSCheckbox
|
|
39
|
+
v-model:checked="checkboxValue"
|
|
40
|
+
label="Accept terms and conditions"
|
|
41
|
+
description="By checking this box, you agree to our terms"
|
|
42
|
+
/>
|
|
43
|
+
<NSCheckbox
|
|
44
|
+
v-model:checked="checkboxValue"
|
|
45
|
+
label="Enable notifications"
|
|
46
|
+
description="Receive updates about your account"
|
|
47
|
+
:checked="true"
|
|
48
|
+
/>
|
|
49
|
+
<NSCheckbox
|
|
50
|
+
v-model:checked="checkboxValue"
|
|
51
|
+
label="Required field"
|
|
52
|
+
description="This checkbox is required"
|
|
53
|
+
error-message="This field is required"
|
|
54
|
+
:checked="false"
|
|
55
|
+
/>
|
|
56
|
+
<NSCheckbox
|
|
57
|
+
v-model:checked="checkboxValue"
|
|
58
|
+
label="Indeterminate state"
|
|
59
|
+
description="Showing indeterminate state"
|
|
60
|
+
:indeterminate="true"
|
|
61
|
+
/>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
|
|
65
|
+
<!-- NS Text Input -->
|
|
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
|
+
<NSTextInput
|
|
70
|
+
v-model="textValue"
|
|
71
|
+
label="Username"
|
|
72
|
+
placeholder="Enter your username"
|
|
73
|
+
description="Choose a unique username"
|
|
74
|
+
/>
|
|
75
|
+
<NSTextInput
|
|
76
|
+
v-model="textValue"
|
|
77
|
+
label="Password"
|
|
78
|
+
type="password"
|
|
79
|
+
placeholder="Enter your password"
|
|
80
|
+
:show-password-toggle="true"
|
|
81
|
+
/>
|
|
82
|
+
<NSTextInput
|
|
83
|
+
v-model="textValue"
|
|
84
|
+
label="Email"
|
|
85
|
+
type="email"
|
|
86
|
+
placeholder="email@example.com"
|
|
87
|
+
prefix="📧"
|
|
88
|
+
success-message="Email format is valid"
|
|
89
|
+
/>
|
|
90
|
+
<NSTextInput
|
|
91
|
+
v-model="textValue"
|
|
92
|
+
label="Invalid Input"
|
|
93
|
+
placeholder="Type something invalid"
|
|
94
|
+
error-message="This field has an error"
|
|
95
|
+
/>
|
|
96
|
+
</div>
|
|
97
|
+
</div>
|
|
98
|
+
|
|
99
|
+
<!-- NS Toggle -->
|
|
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
|
+
<NSToggle
|
|
104
|
+
v-model:checked="toggleValue"
|
|
105
|
+
label="Dark Mode"
|
|
106
|
+
description="Enable dark theme"
|
|
107
|
+
left-text="Light"
|
|
108
|
+
right-text="Dark"
|
|
109
|
+
/>
|
|
110
|
+
<NSToggle
|
|
111
|
+
v-model:checked="toggleValue"
|
|
112
|
+
label="Notifications"
|
|
113
|
+
description="Enable notifications"
|
|
114
|
+
variant="success"
|
|
115
|
+
:checked="true"
|
|
116
|
+
/>
|
|
117
|
+
<NSToggle
|
|
118
|
+
v-model:checked="toggleValue"
|
|
119
|
+
label="Maintenance Mode"
|
|
120
|
+
description="Site under maintenance"
|
|
121
|
+
variant="warning"
|
|
122
|
+
/>
|
|
123
|
+
<NSToggle
|
|
124
|
+
v-model:checked="toggleValue"
|
|
125
|
+
label="Delete Mode"
|
|
126
|
+
description="Dangerous operation"
|
|
127
|
+
variant="destructive"
|
|
128
|
+
/>
|
|
129
|
+
</div>
|
|
130
|
+
</div>
|
|
131
|
+
|
|
132
|
+
<!-- NS Tag -->
|
|
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
|
+
<NSTag v-for="(tag, index) in tags" :key="index" :label="tag" removable @remove="handleTagRemove(index)" />
|
|
137
|
+
<NSTag label="Default" />
|
|
138
|
+
<NSTag label="Secondary" variant="secondary" />
|
|
139
|
+
<NSTag label="Destructive" variant="destructive" />
|
|
140
|
+
<NSTag label="Success" variant="success" />
|
|
141
|
+
<NSTag label="Warning" variant="warning" />
|
|
142
|
+
<NSTag label="Info" variant="info" />
|
|
143
|
+
<NSTag label="Large" size="lg" />
|
|
144
|
+
</div>
|
|
145
|
+
</div>
|
|
146
|
+
|
|
147
|
+
<!-- NS Empty State -->
|
|
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
|
+
<NSEmptyState
|
|
152
|
+
title="No results found"
|
|
153
|
+
description="Try adjusting your search filters to find what you're looking for."
|
|
154
|
+
/>
|
|
155
|
+
<NSEmptyState
|
|
156
|
+
title="No files uploaded"
|
|
157
|
+
description="Upload your first file to get started."
|
|
158
|
+
icon="search"
|
|
159
|
+
/>
|
|
160
|
+
</div>
|
|
161
|
+
</div>
|
|
162
|
+
|
|
163
|
+
<!-- NS Inline Notification -->
|
|
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
|
+
<NSInlineNotification
|
|
168
|
+
title="Success!"
|
|
169
|
+
description="Your changes have been saved successfully."
|
|
170
|
+
variant="success"
|
|
171
|
+
:show-close-button="true"
|
|
172
|
+
@close="handleNotificationClose"
|
|
173
|
+
/>
|
|
174
|
+
<NSInlineNotification
|
|
175
|
+
title="Warning"
|
|
176
|
+
description="Please review your input before proceeding."
|
|
177
|
+
variant="warning"
|
|
178
|
+
action-label="Review"
|
|
179
|
+
@action="handleNotificationAction"
|
|
180
|
+
/>
|
|
181
|
+
<NSInlineNotification
|
|
182
|
+
title="Error"
|
|
183
|
+
description="Failed to save your changes. Please try again."
|
|
184
|
+
variant="destructive"
|
|
185
|
+
:show-close-button="true"
|
|
186
|
+
:loading="false"
|
|
187
|
+
/>
|
|
188
|
+
</div>
|
|
189
|
+
</div>
|
|
190
|
+
</div>
|
|
191
|
+
</template>
|