@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.
Files changed (310) hide show
  1. package/README.md +167 -0
  2. package/dist/index.d.ts +14 -0
  3. package/dist/ns8-ui-lib.es.js +4278 -0
  4. package/dist/ns8-ui-lib.es.js.map +1 -0
  5. package/dist/ns8-ui-lib.umd.js +7 -0
  6. package/dist/ns8-ui-lib.umd.js.map +1 -0
  7. package/dist/src/App.vue.d.ts +2 -0
  8. package/dist/src/components/HelloWorld.vue.d.ts +5 -0
  9. package/dist/src/components/NS/cards/NSBackupCard.vue.d.ts +51 -0
  10. package/dist/src/components/NS/cards/NSSystemInfoCard.vue.d.ts +58 -0
  11. package/dist/src/components/NS/cards/NSSystemdServiceCard.vue.d.ts +47 -0
  12. package/dist/src/components/NS/cards/index.d.ts +3 -0
  13. package/dist/src/components/NS/checkbox/NSCheckbox.vue.d.ts +37 -0
  14. package/dist/src/components/NS/checkbox/index.d.ts +1 -0
  15. package/dist/src/components/NS/data-table/NSDataTable.vue.d.ts +98 -0
  16. package/dist/src/components/NS/data-table/index.d.ts +1 -0
  17. package/dist/src/components/NS/empty-state/NSEmptyState.vue.d.ts +45 -0
  18. package/dist/src/components/NS/empty-state/index.d.ts +1 -0
  19. package/dist/src/components/NS/index.d.ts +35 -0
  20. package/dist/src/components/NS/inline-notification/NSInlineNotification.vue.d.ts +44 -0
  21. package/dist/src/components/NS/inline-notification/index.d.ts +1 -0
  22. package/dist/src/components/NS/lottie-animation/NSLottieAnimation.vue.d.ts +75 -0
  23. package/dist/src/components/NS/lottie-animation/index.d.ts +1 -0
  24. package/dist/src/components/NS/modal/NSModal.vue.d.ts +56 -0
  25. package/dist/src/components/NS/modal/NSModalTrigger.vue.d.ts +64 -0
  26. package/dist/src/components/NS/modal/index.d.ts +2 -0
  27. package/dist/src/components/NS/pagination/NSPagination.vue.d.ts +36 -0
  28. package/dist/src/components/NS/pagination/index.d.ts +1 -0
  29. package/dist/src/components/NS/progress/NSProgress.vue.d.ts +37 -0
  30. package/dist/src/components/NS/progress/NSProgressBar.vue.d.ts +39 -0
  31. package/dist/src/components/NS/progress/index.d.ts +2 -0
  32. package/dist/src/components/NS/slider/NSByteSlider.vue.d.ts +50 -0
  33. package/dist/src/components/NS/slider/NSSlider.vue.d.ts +49 -0
  34. package/dist/src/components/NS/slider/index.d.ts +2 -0
  35. package/dist/src/components/NS/tag/NSTag.vue.d.ts +41 -0
  36. package/dist/src/components/NS/tag/index.d.ts +1 -0
  37. package/dist/src/components/NS/text-input/NSTextInput.vue.d.ts +67 -0
  38. package/dist/src/components/NS/text-input/index.d.ts +1 -0
  39. package/dist/src/components/NS/toast-notification/NSToastNotification.vue.d.ts +44 -0
  40. package/dist/src/components/NS/toast-notification/index.d.ts +1 -0
  41. package/dist/src/components/NS/toggle/NSToggle.vue.d.ts +51 -0
  42. package/dist/src/components/NS/toggle/index.d.ts +1 -0
  43. package/dist/src/components/NS/wizard/NSWizard.vue.d.ts +86 -0
  44. package/dist/src/components/NS/wizard/index.d.ts +1 -0
  45. package/dist/src/components/ui/button/Button.vue.d.ts +27 -0
  46. package/dist/src/components/ui/button/index.d.ts +7 -0
  47. package/dist/src/components/ui/card/Card.vue.d.ts +21 -0
  48. package/dist/src/components/ui/card/CardAction.vue.d.ts +21 -0
  49. package/dist/src/components/ui/card/CardContent.vue.d.ts +21 -0
  50. package/dist/src/components/ui/card/CardDescription.vue.d.ts +21 -0
  51. package/dist/src/components/ui/card/CardFooter.vue.d.ts +21 -0
  52. package/dist/src/components/ui/card/CardHeader.vue.d.ts +21 -0
  53. package/dist/src/components/ui/card/CardTitle.vue.d.ts +21 -0
  54. package/dist/src/components/ui/card/index.d.ts +7 -0
  55. package/dist/src/components/ui/checkbox/NsCheckbox.vue.d.ts +49 -0
  56. package/dist/src/components/ui/checkbox/index.d.ts +11 -0
  57. package/dist/src/components/ui/dialog/Dialog.vue.d.ts +28 -0
  58. package/dist/src/components/ui/dialog/index.d.ts +1 -0
  59. package/dist/src/components/ui/empty-state/NsEmptyState.vue.d.ts +45 -0
  60. package/dist/src/components/ui/empty-state/index.d.ts +11 -0
  61. package/dist/src/components/ui/inline-notification/NsInlineNotification.vue.d.ts +45 -0
  62. package/dist/src/components/ui/inline-notification/index.d.ts +6 -0
  63. package/dist/src/components/ui/input/Input.vue.d.ts +12 -0
  64. package/dist/src/components/ui/input/index.d.ts +1 -0
  65. package/dist/src/components/ui/input-group/InputGroup.vue.d.ts +21 -0
  66. package/dist/src/components/ui/input-group/InputGroupAddon.vue.d.ts +25 -0
  67. package/dist/src/components/ui/input-group/InputGroupButton.vue.d.ts +22 -0
  68. package/dist/src/components/ui/input-group/InputGroupInput.vue.d.ts +6 -0
  69. package/dist/src/components/ui/input-group/InputGroupText.vue.d.ts +21 -0
  70. package/dist/src/components/ui/input-group/InputGroupTextarea.vue.d.ts +6 -0
  71. package/dist/src/components/ui/input-group/index.d.ts +22 -0
  72. package/dist/src/components/ui/item/Item.vue.d.ts +27 -0
  73. package/dist/src/components/ui/item/ItemActions.vue.d.ts +21 -0
  74. package/dist/src/components/ui/item/ItemContent.vue.d.ts +21 -0
  75. package/dist/src/components/ui/item/ItemDescription.vue.d.ts +21 -0
  76. package/dist/src/components/ui/item/ItemFooter.vue.d.ts +21 -0
  77. package/dist/src/components/ui/item/ItemGroup.vue.d.ts +21 -0
  78. package/dist/src/components/ui/item/ItemHeader.vue.d.ts +21 -0
  79. package/dist/src/components/ui/item/ItemMedia.vue.d.ts +23 -0
  80. package/dist/src/components/ui/item/ItemSeparator.vue.d.ts +7 -0
  81. package/dist/src/components/ui/item/ItemTitle.vue.d.ts +21 -0
  82. package/dist/src/components/ui/item/index.d.ts +20 -0
  83. package/dist/src/components/ui/label/Label.vue.d.ts +22 -0
  84. package/dist/src/components/ui/label/index.d.ts +1 -0
  85. package/dist/src/components/ui/scroll-area/ScrollArea.vue.d.ts +22 -0
  86. package/dist/src/components/ui/scroll-area/ScrollBar.vue.d.ts +9 -0
  87. package/dist/src/components/ui/scroll-area/index.d.ts +2 -0
  88. package/dist/src/components/ui/select/Select.vue.d.ts +28 -0
  89. package/dist/src/components/ui/select/SelectContent.vue.d.ts +32 -0
  90. package/dist/src/components/ui/select/SelectGroup.vue.d.ts +18 -0
  91. package/dist/src/components/ui/select/SelectItem.vue.d.ts +23 -0
  92. package/dist/src/components/ui/select/SelectItemText.vue.d.ts +18 -0
  93. package/dist/src/components/ui/select/SelectLabel.vue.d.ts +22 -0
  94. package/dist/src/components/ui/select/SelectScrollDownButton.vue.d.ts +22 -0
  95. package/dist/src/components/ui/select/SelectScrollUpButton.vue.d.ts +22 -0
  96. package/dist/src/components/ui/select/SelectSeparator.vue.d.ts +7 -0
  97. package/dist/src/components/ui/select/SelectTrigger.vue.d.ts +25 -0
  98. package/dist/src/components/ui/select/SelectValue.vue.d.ts +18 -0
  99. package/dist/src/components/ui/select/index.d.ts +11 -0
  100. package/dist/src/components/ui/separator/Separator.vue.d.ts +10 -0
  101. package/dist/src/components/ui/separator/index.d.ts +1 -0
  102. package/dist/src/components/ui/sheet/Sheet.vue.d.ts +25 -0
  103. package/dist/src/components/ui/sheet/SheetClose.vue.d.ts +18 -0
  104. package/dist/src/components/ui/sheet/SheetContent.vue.d.ts +39 -0
  105. package/dist/src/components/ui/sheet/SheetDescription.vue.d.ts +22 -0
  106. package/dist/src/components/ui/sheet/SheetFooter.vue.d.ts +21 -0
  107. package/dist/src/components/ui/sheet/SheetHeader.vue.d.ts +21 -0
  108. package/dist/src/components/ui/sheet/SheetOverlay.vue.d.ts +22 -0
  109. package/dist/src/components/ui/sheet/SheetTitle.vue.d.ts +22 -0
  110. package/dist/src/components/ui/sheet/SheetTrigger.vue.d.ts +18 -0
  111. package/dist/src/components/ui/sheet/index.d.ts +8 -0
  112. package/dist/src/components/ui/sidebar/Sidebar.vue.d.ts +24 -0
  113. package/dist/src/components/ui/sidebar/SidebarContent.vue.d.ts +21 -0
  114. package/dist/src/components/ui/sidebar/SidebarFooter.vue.d.ts +21 -0
  115. package/dist/src/components/ui/sidebar/SidebarGroup.vue.d.ts +21 -0
  116. package/dist/src/components/ui/sidebar/SidebarGroupAction.vue.d.ts +22 -0
  117. package/dist/src/components/ui/sidebar/SidebarGroupContent.vue.d.ts +21 -0
  118. package/dist/src/components/ui/sidebar/SidebarGroupLabel.vue.d.ts +22 -0
  119. package/dist/src/components/ui/sidebar/SidebarHeader.vue.d.ts +21 -0
  120. package/dist/src/components/ui/sidebar/SidebarInput.vue.d.ts +21 -0
  121. package/dist/src/components/ui/sidebar/SidebarInset.vue.d.ts +21 -0
  122. package/dist/src/components/ui/sidebar/SidebarMenu.vue.d.ts +21 -0
  123. package/dist/src/components/ui/sidebar/SidebarMenuAction.vue.d.ts +25 -0
  124. package/dist/src/components/ui/sidebar/SidebarMenuBadge.vue.d.ts +21 -0
  125. package/dist/src/components/ui/sidebar/SidebarMenuButton.vue.d.ts +27 -0
  126. package/dist/src/components/ui/sidebar/SidebarMenuButtonChild.vue.d.ts +30 -0
  127. package/dist/src/components/ui/sidebar/SidebarMenuItem.vue.d.ts +21 -0
  128. package/dist/src/components/ui/sidebar/SidebarMenuSkeleton.vue.d.ts +7 -0
  129. package/dist/src/components/ui/sidebar/SidebarMenuSub.vue.d.ts +21 -0
  130. package/dist/src/components/ui/sidebar/SidebarMenuSubButton.vue.d.ts +27 -0
  131. package/dist/src/components/ui/sidebar/SidebarMenuSubItem.vue.d.ts +21 -0
  132. package/dist/src/components/ui/sidebar/SidebarProvider.vue.d.ts +30 -0
  133. package/dist/src/components/ui/sidebar/SidebarRail.vue.d.ts +21 -0
  134. package/dist/src/components/ui/sidebar/SidebarSeparator.vue.d.ts +21 -0
  135. package/dist/src/components/ui/sidebar/SidebarTrigger.vue.d.ts +6 -0
  136. package/dist/src/components/ui/sidebar/index.d.ts +37 -0
  137. package/dist/src/components/ui/sidebar/utils.d.ts +56 -0
  138. package/dist/src/components/ui/skeleton/Skeleton.vue.d.ts +6 -0
  139. package/dist/src/components/ui/skeleton/index.d.ts +1 -0
  140. package/dist/src/components/ui/sonner/Sonner.vue.d.ts +3 -0
  141. package/dist/src/components/ui/sonner/index.d.ts +1 -0
  142. package/dist/src/components/ui/switch/Switch.vue.d.ts +28 -0
  143. package/dist/src/components/ui/switch/index.d.ts +1 -0
  144. package/dist/src/components/ui/table/Table.vue.d.ts +21 -0
  145. package/dist/src/components/ui/table/TableBody.vue.d.ts +21 -0
  146. package/dist/src/components/ui/table/TableCaption.vue.d.ts +21 -0
  147. package/dist/src/components/ui/table/TableCell.vue.d.ts +21 -0
  148. package/dist/src/components/ui/table/TableEmpty.vue.d.ts +24 -0
  149. package/dist/src/components/ui/table/TableFooter.vue.d.ts +21 -0
  150. package/dist/src/components/ui/table/TableHead.vue.d.ts +21 -0
  151. package/dist/src/components/ui/table/TableHeader.vue.d.ts +21 -0
  152. package/dist/src/components/ui/table/TableRow.vue.d.ts +21 -0
  153. package/dist/src/components/ui/table/index.d.ts +9 -0
  154. package/dist/src/components/ui/table/utils.d.ts +3 -0
  155. package/dist/src/components/ui/tabs/Tabs.vue.d.ts +28 -0
  156. package/dist/src/components/ui/tabs/TabsContent.vue.d.ts +22 -0
  157. package/dist/src/components/ui/tabs/TabsList.vue.d.ts +22 -0
  158. package/dist/src/components/ui/tabs/TabsTrigger.vue.d.ts +22 -0
  159. package/dist/src/components/ui/tabs/index.d.ts +4 -0
  160. package/dist/src/components/ui/tag/NsTag.vue.d.ts +42 -0
  161. package/dist/src/components/ui/tag/index.d.ts +8 -0
  162. package/dist/src/components/ui/text-input/NsTextInput.vue.d.ts +79 -0
  163. package/dist/src/components/ui/text-input/index.d.ts +15 -0
  164. package/dist/src/components/ui/textarea/Textarea.vue.d.ts +12 -0
  165. package/dist/src/components/ui/textarea/index.d.ts +1 -0
  166. package/dist/src/components/ui/toggle/NsToggle.vue.d.ts +54 -0
  167. package/dist/src/components/ui/toggle/index.d.ts +15 -0
  168. package/dist/src/components/ui/tooltip/Tooltip.vue.d.ts +24 -0
  169. package/dist/src/components/ui/tooltip/TooltipContent.vue.d.ts +30 -0
  170. package/dist/src/components/ui/tooltip/TooltipProvider.vue.d.ts +20 -0
  171. package/dist/src/components/ui/tooltip/TooltipTrigger.vue.d.ts +18 -0
  172. package/dist/src/components/ui/tooltip/index.d.ts +4 -0
  173. package/dist/src/composables/index.d.ts +8 -0
  174. package/dist/src/composables/useDateTimeService.d.ts +10 -0
  175. package/dist/src/composables/useFilterService.d.ts +8 -0
  176. package/dist/src/composables/useIconService.d.ts +153 -0
  177. package/dist/src/composables/usePageTitleService.d.ts +3 -0
  178. package/dist/src/composables/useQueryParamService.d.ts +13 -0
  179. package/dist/src/composables/useStorageService.d.ts +5 -0
  180. package/dist/src/composables/useTaskService.d.ts +18 -0
  181. package/dist/src/composables/useUtilService.d.ts +27 -0
  182. package/dist/src/lib/utils.d.ts +2 -0
  183. package/dist/src/main.d.ts +0 -0
  184. package/dist/vite.svg +1 -0
  185. package/package.json +80 -0
  186. package/src/App.vue +30 -0
  187. package/src/components/HelloWorld.vue +41 -0
  188. package/src/components/NS/CompleteDemo.vue +475 -0
  189. package/src/components/NS/Demo.vue +191 -0
  190. package/src/components/NS/cards/NSBackupCard.vue +272 -0
  191. package/src/components/NS/cards/NSSystemInfoCard.vue +252 -0
  192. package/src/components/NS/cards/NSSystemdServiceCard.vue +250 -0
  193. package/src/components/NS/checkbox/NSCheckbox.vue +104 -0
  194. package/src/components/NS/data-table/NSDataTable.vue +434 -0
  195. package/src/components/NS/empty-state/NSEmptyState.vue +188 -0
  196. package/src/components/NS/inline-notification/NSInlineNotification.vue +162 -0
  197. package/src/components/NS/lottie-animation/NSLottieAnimation.vue +255 -0
  198. package/src/components/NS/modal/NSModal.vue +193 -0
  199. package/src/components/NS/modal/NSModalTrigger.vue +109 -0
  200. package/src/components/NS/pagination/NSPagination.vue +247 -0
  201. package/src/components/NS/progress/NSProgress.vue +115 -0
  202. package/src/components/NS/progress/NSProgressBar.vue +137 -0
  203. package/src/components/NS/slider/NSByteSlider.vue +144 -0
  204. package/src/components/NS/slider/NSSlider.vue +142 -0
  205. package/src/components/NS/tag/NSTag.vue +139 -0
  206. package/src/components/NS/text-input/NSTextInput.vue +242 -0
  207. package/src/components/NS/toast-notification/NSToastNotification.vue +163 -0
  208. package/src/components/NS/toggle/NSToggle.vue +156 -0
  209. package/src/components/NS/wizard/NSWizard.vue +399 -0
  210. package/src/components/ui/button/Button.vue +29 -0
  211. package/src/components/ui/card/Card.vue +22 -0
  212. package/src/components/ui/card/CardAction.vue +17 -0
  213. package/src/components/ui/card/CardContent.vue +17 -0
  214. package/src/components/ui/card/CardDescription.vue +17 -0
  215. package/src/components/ui/card/CardFooter.vue +17 -0
  216. package/src/components/ui/card/CardHeader.vue +17 -0
  217. package/src/components/ui/card/CardTitle.vue +17 -0
  218. package/src/components/ui/checkbox/NsCheckbox.vue +123 -0
  219. package/src/components/ui/dialog/Dialog.vue +68 -0
  220. package/src/components/ui/empty-state/NsEmptyState.vue +149 -0
  221. package/src/components/ui/inline-notification/NsInlineNotification.vue +163 -0
  222. package/src/components/ui/input/Input.vue +33 -0
  223. package/src/components/ui/input-group/InputGroup.vue +35 -0
  224. package/src/components/ui/input-group/InputGroupAddon.vue +36 -0
  225. package/src/components/ui/input-group/InputGroupButton.vue +21 -0
  226. package/src/components/ui/input-group/InputGroupInput.vue +19 -0
  227. package/src/components/ui/input-group/InputGroupText.vue +19 -0
  228. package/src/components/ui/input-group/InputGroupTextarea.vue +19 -0
  229. package/src/components/ui/item/Item.vue +27 -0
  230. package/src/components/ui/item/ItemActions.vue +17 -0
  231. package/src/components/ui/item/ItemContent.vue +17 -0
  232. package/src/components/ui/item/ItemDescription.vue +21 -0
  233. package/src/components/ui/item/ItemFooter.vue +17 -0
  234. package/src/components/ui/item/ItemGroup.vue +18 -0
  235. package/src/components/ui/item/ItemHeader.vue +17 -0
  236. package/src/components/ui/item/ItemMedia.vue +21 -0
  237. package/src/components/ui/item/ItemSeparator.vue +18 -0
  238. package/src/components/ui/item/ItemTitle.vue +17 -0
  239. package/src/components/ui/label/Label.vue +26 -0
  240. package/src/components/ui/scroll-area/ScrollArea.vue +33 -0
  241. package/src/components/ui/scroll-area/ScrollBar.vue +32 -0
  242. package/src/components/ui/select/Select.vue +19 -0
  243. package/src/components/ui/select/SelectContent.vue +51 -0
  244. package/src/components/ui/select/SelectGroup.vue +15 -0
  245. package/src/components/ui/select/SelectItem.vue +44 -0
  246. package/src/components/ui/select/SelectItemText.vue +15 -0
  247. package/src/components/ui/select/SelectLabel.vue +17 -0
  248. package/src/components/ui/select/SelectScrollDownButton.vue +26 -0
  249. package/src/components/ui/select/SelectScrollUpButton.vue +26 -0
  250. package/src/components/ui/select/SelectSeparator.vue +19 -0
  251. package/src/components/ui/select/SelectTrigger.vue +33 -0
  252. package/src/components/ui/select/SelectValue.vue +15 -0
  253. package/src/components/ui/separator/Separator.vue +29 -0
  254. package/src/components/ui/sheet/Sheet.vue +19 -0
  255. package/src/components/ui/sheet/SheetClose.vue +15 -0
  256. package/src/components/ui/sheet/SheetContent.vue +62 -0
  257. package/src/components/ui/sheet/SheetDescription.vue +21 -0
  258. package/src/components/ui/sheet/SheetFooter.vue +16 -0
  259. package/src/components/ui/sheet/SheetHeader.vue +15 -0
  260. package/src/components/ui/sheet/SheetOverlay.vue +21 -0
  261. package/src/components/ui/sheet/SheetTitle.vue +21 -0
  262. package/src/components/ui/sheet/SheetTrigger.vue +15 -0
  263. package/src/components/ui/sidebar/Sidebar.vue +96 -0
  264. package/src/components/ui/sidebar/SidebarContent.vue +18 -0
  265. package/src/components/ui/sidebar/SidebarFooter.vue +18 -0
  266. package/src/components/ui/sidebar/SidebarGroup.vue +18 -0
  267. package/src/components/ui/sidebar/SidebarGroupAction.vue +27 -0
  268. package/src/components/ui/sidebar/SidebarGroupContent.vue +18 -0
  269. package/src/components/ui/sidebar/SidebarGroupLabel.vue +25 -0
  270. package/src/components/ui/sidebar/SidebarHeader.vue +18 -0
  271. package/src/components/ui/sidebar/SidebarInput.vue +22 -0
  272. package/src/components/ui/sidebar/SidebarInset.vue +21 -0
  273. package/src/components/ui/sidebar/SidebarMenu.vue +18 -0
  274. package/src/components/ui/sidebar/SidebarMenuAction.vue +35 -0
  275. package/src/components/ui/sidebar/SidebarMenuBadge.vue +26 -0
  276. package/src/components/ui/sidebar/SidebarMenuButton.vue +48 -0
  277. package/src/components/ui/sidebar/SidebarMenuButtonChild.vue +36 -0
  278. package/src/components/ui/sidebar/SidebarMenuItem.vue +18 -0
  279. package/src/components/ui/sidebar/SidebarMenuSkeleton.vue +35 -0
  280. package/src/components/ui/sidebar/SidebarMenuSub.vue +22 -0
  281. package/src/components/ui/sidebar/SidebarMenuSubButton.vue +36 -0
  282. package/src/components/ui/sidebar/SidebarMenuSubItem.vue +18 -0
  283. package/src/components/ui/sidebar/SidebarProvider.vue +82 -0
  284. package/src/components/ui/sidebar/SidebarRail.vue +33 -0
  285. package/src/components/ui/sidebar/SidebarSeparator.vue +19 -0
  286. package/src/components/ui/sidebar/SidebarTrigger.vue +27 -0
  287. package/src/components/ui/skeleton/Skeleton.vue +17 -0
  288. package/src/components/ui/sonner/Sonner.vue +42 -0
  289. package/src/components/ui/switch/Switch.vue +38 -0
  290. package/src/components/ui/table/Table.vue +16 -0
  291. package/src/components/ui/table/TableBody.vue +17 -0
  292. package/src/components/ui/table/TableCaption.vue +17 -0
  293. package/src/components/ui/table/TableCell.vue +22 -0
  294. package/src/components/ui/table/TableEmpty.vue +34 -0
  295. package/src/components/ui/table/TableFooter.vue +17 -0
  296. package/src/components/ui/table/TableHead.vue +17 -0
  297. package/src/components/ui/table/TableHeader.vue +17 -0
  298. package/src/components/ui/table/TableRow.vue +17 -0
  299. package/src/components/ui/tabs/Tabs.vue +24 -0
  300. package/src/components/ui/tabs/TabsContent.vue +21 -0
  301. package/src/components/ui/tabs/TabsList.vue +24 -0
  302. package/src/components/ui/tabs/TabsTrigger.vue +26 -0
  303. package/src/components/ui/tag/NsTag.vue +114 -0
  304. package/src/components/ui/text-input/NsTextInput.vue +269 -0
  305. package/src/components/ui/textarea/Textarea.vue +28 -0
  306. package/src/components/ui/toggle/NsToggle.vue +126 -0
  307. package/src/components/ui/tooltip/Tooltip.vue +19 -0
  308. package/src/components/ui/tooltip/TooltipContent.vue +34 -0
  309. package/src/components/ui/tooltip/TooltipProvider.vue +14 -0
  310. 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>