@geniusdynamics/ns8-ui-lib 1.0.4 → 1.0.6

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 (523) hide show
  1. package/dist/ns8-ui-lib.css +3 -1
  2. package/dist/ns8-ui-lib.es.js +36815 -19727
  3. package/dist/ns8-ui-lib.es.js.map +1 -1
  4. package/dist/ns8-ui-lib.umd.js +24 -11
  5. package/dist/ns8-ui-lib.umd.js.map +1 -1
  6. package/package.json +25 -19
  7. package/src/App.vue +7 -3
  8. package/src/components/HelloWorld.vue +2 -2
  9. package/src/components/NS/CompleteDemo.vue +49 -49
  10. package/src/components/NS/Demo.vue +20 -20
  11. package/src/components/NS/cards/NSBackupCard.vue +59 -41
  12. package/src/components/NS/cards/NSSystemInfoCard.vue +164 -136
  13. package/src/components/NS/cards/NSSystemdServiceCard.vue +27 -27
  14. package/src/components/NS/checkbox/NSCheckbox.vue +6 -8
  15. package/src/components/NS/data-table/NSDataTable.vue +34 -40
  16. package/src/components/NS/empty-state/NSEmptyState.vue +3 -3
  17. package/src/components/NS/inline-notification/NSInlineNotification.vue +9 -9
  18. package/src/components/NS/lottie-animation/NSLottieAnimation.vue +140 -116
  19. package/src/components/NS/modal/NSModal.vue +12 -14
  20. package/src/components/NS/modal/NSModalTrigger.vue +1 -1
  21. package/src/components/NS/pagination/NSPagination.vue +10 -10
  22. package/src/components/NS/progress/NSProgress.vue +3 -3
  23. package/src/components/NS/progress/NSProgressBar.vue +4 -4
  24. package/src/components/NS/slider/NSByteSlider.vue +3 -3
  25. package/src/components/NS/slider/NSSlider.vue +2 -2
  26. package/src/components/NS/tag/NSTag.vue +6 -7
  27. package/src/components/NS/text-input/NSTextInput.vue +9 -13
  28. package/src/components/NS/toast-notification/NSToastNotification.vue +9 -11
  29. package/src/components/NS/toggle/NSToggle.vue +5 -8
  30. package/src/components/NS/wizard/NSWizard.vue +21 -21
  31. package/src/components/ui/accordion/Accordion.vue +18 -0
  32. package/src/components/ui/accordion/AccordionContent.vue +23 -0
  33. package/src/components/ui/accordion/AccordionItem.vue +24 -0
  34. package/src/components/ui/accordion/AccordionTrigger.vue +37 -0
  35. package/src/components/ui/alert/Alert.vue +21 -0
  36. package/src/components/ui/alert/AlertDescription.vue +17 -0
  37. package/src/components/ui/alert/AlertTitle.vue +17 -0
  38. package/src/components/ui/alert-dialog/AlertDialog.vue +15 -0
  39. package/src/components/ui/alert-dialog/AlertDialogAction.vue +18 -0
  40. package/src/components/ui/alert-dialog/AlertDialogCancel.vue +25 -0
  41. package/src/components/ui/alert-dialog/AlertDialogContent.vue +44 -0
  42. package/src/components/ui/alert-dialog/AlertDialogDescription.vue +23 -0
  43. package/src/components/ui/alert-dialog/AlertDialogFooter.vue +22 -0
  44. package/src/components/ui/alert-dialog/AlertDialogHeader.vue +17 -0
  45. package/src/components/ui/alert-dialog/AlertDialogTitle.vue +21 -0
  46. package/src/components/ui/alert-dialog/AlertDialogTrigger.vue +12 -0
  47. package/src/components/ui/aspect-ratio/AspectRatio.vue +16 -0
  48. package/src/components/ui/avatar/Avatar.vue +18 -0
  49. package/src/components/ui/avatar/AvatarFallback.vue +21 -0
  50. package/src/components/ui/avatar/AvatarImage.vue +16 -0
  51. package/src/components/ui/breadcrumb/Breadcrumb.vue +17 -0
  52. package/src/components/ui/breadcrumb/BreadcrumbEllipsis.vue +23 -0
  53. package/src/components/ui/breadcrumb/BreadcrumbItem.vue +17 -0
  54. package/src/components/ui/breadcrumb/BreadcrumbLink.vue +21 -0
  55. package/src/components/ui/breadcrumb/BreadcrumbList.vue +17 -0
  56. package/src/components/ui/breadcrumb/BreadcrumbPage.vue +20 -0
  57. package/src/components/ui/breadcrumb/BreadcrumbSeparator.vue +22 -0
  58. package/src/components/ui/button/Button.vue +2 -0
  59. package/src/components/ui/button-group/ButtonGroup.vue +22 -0
  60. package/src/components/ui/button-group/ButtonGroupSeparator.vue +24 -0
  61. package/src/components/ui/button-group/ButtonGroupText.vue +29 -0
  62. package/src/components/ui/calendar/Calendar.vue +160 -0
  63. package/src/components/ui/calendar/CalendarCell.vue +23 -0
  64. package/src/components/ui/calendar/CalendarCellTrigger.vue +39 -0
  65. package/src/components/ui/calendar/CalendarGrid.vue +23 -0
  66. package/src/components/ui/calendar/CalendarGridBody.vue +15 -0
  67. package/src/components/ui/calendar/CalendarGridHead.vue +16 -0
  68. package/src/components/ui/calendar/CalendarGridRow.vue +22 -0
  69. package/src/components/ui/calendar/CalendarHeadCell.vue +23 -0
  70. package/src/components/ui/calendar/CalendarHeader.vue +23 -0
  71. package/src/components/ui/calendar/CalendarHeading.vue +30 -0
  72. package/src/components/ui/calendar/CalendarNextButton.vue +31 -0
  73. package/src/components/ui/calendar/CalendarPrevButton.vue +31 -0
  74. package/src/components/ui/card/Card.vue +1 -1
  75. package/src/components/ui/card/CardAction.vue +1 -1
  76. package/src/components/ui/card/CardContent.vue +1 -1
  77. package/src/components/ui/card/CardDescription.vue +1 -1
  78. package/src/components/ui/card/CardFooter.vue +1 -1
  79. package/src/components/ui/card/CardHeader.vue +1 -1
  80. package/src/components/ui/card/CardTitle.vue +1 -1
  81. package/src/components/ui/carousel/Carousel.vue +53 -0
  82. package/src/components/ui/carousel/CarouselContent.vue +33 -0
  83. package/src/components/ui/carousel/CarouselItem.vue +24 -0
  84. package/src/components/ui/carousel/CarouselNext.vue +41 -0
  85. package/src/components/ui/carousel/CarouselPrevious.vue +41 -0
  86. package/src/components/ui/checkbox/Checkbox.vue +35 -0
  87. package/src/components/ui/collapsible/Collapsible.vue +19 -0
  88. package/src/components/ui/collapsible/CollapsibleContent.vue +15 -0
  89. package/src/components/ui/collapsible/CollapsibleTrigger.vue +15 -0
  90. package/src/components/ui/combobox/Combobox.vue +19 -0
  91. package/src/components/ui/combobox/ComboboxAnchor.vue +23 -0
  92. package/src/components/ui/combobox/ComboboxEmpty.vue +21 -0
  93. package/src/components/ui/combobox/ComboboxGroup.vue +27 -0
  94. package/src/components/ui/combobox/ComboboxInput.vue +42 -0
  95. package/src/components/ui/combobox/ComboboxItem.vue +24 -0
  96. package/src/components/ui/combobox/ComboboxItemIndicator.vue +23 -0
  97. package/src/components/ui/combobox/ComboboxList.vue +33 -0
  98. package/src/components/ui/combobox/ComboboxSeparator.vue +21 -0
  99. package/src/components/ui/combobox/ComboboxTrigger.vue +24 -0
  100. package/src/components/ui/combobox/ComboboxViewport.vue +23 -0
  101. package/src/components/ui/command/Command.vue +87 -0
  102. package/src/components/ui/command/CommandDialog.vue +31 -0
  103. package/src/components/ui/command/CommandEmpty.vue +27 -0
  104. package/src/components/ui/command/CommandGroup.vue +45 -0
  105. package/src/components/ui/command/CommandInput.vue +39 -0
  106. package/src/components/ui/command/CommandItem.vue +76 -0
  107. package/src/components/ui/command/CommandList.vue +25 -0
  108. package/src/components/ui/command/CommandSeparator.vue +21 -0
  109. package/src/components/ui/command/CommandShortcut.vue +17 -0
  110. package/src/components/ui/context-menu/ContextMenu.vue +18 -0
  111. package/src/components/ui/context-menu/ContextMenuCheckboxItem.vue +39 -0
  112. package/src/components/ui/context-menu/ContextMenuContent.vue +37 -0
  113. package/src/components/ui/context-menu/ContextMenuGroup.vue +15 -0
  114. package/src/components/ui/context-menu/ContextMenuItem.vue +38 -0
  115. package/src/components/ui/context-menu/ContextMenuLabel.vue +22 -0
  116. package/src/components/ui/context-menu/ContextMenuPortal.vue +15 -0
  117. package/src/components/ui/context-menu/ContextMenuRadioGroup.vue +21 -0
  118. package/src/components/ui/context-menu/ContextMenuRadioItem.vue +39 -0
  119. package/src/components/ui/context-menu/ContextMenuSeparator.vue +21 -0
  120. package/src/components/ui/context-menu/ContextMenuShortcut.vue +17 -0
  121. package/src/components/ui/context-menu/ContextMenuSub.vue +21 -0
  122. package/src/components/ui/context-menu/ContextMenuSubContent.vue +32 -0
  123. package/src/components/ui/context-menu/ContextMenuSubTrigger.vue +32 -0
  124. package/src/components/ui/context-menu/ContextMenuTrigger.vue +17 -0
  125. package/src/components/ui/dialog/Dialog.vue +15 -64
  126. package/src/components/ui/dialog/DialogClose.vue +15 -0
  127. package/src/components/ui/dialog/DialogContent.vue +62 -0
  128. package/src/components/ui/dialog/DialogDescription.vue +23 -0
  129. package/src/components/ui/dialog/DialogFooter.vue +27 -0
  130. package/src/components/ui/dialog/DialogHeader.vue +17 -0
  131. package/src/components/ui/dialog/DialogOverlay.vue +21 -0
  132. package/src/components/ui/dialog/DialogScrollContent.vue +59 -0
  133. package/src/components/ui/dialog/DialogTitle.vue +23 -0
  134. package/src/components/ui/dialog/DialogTrigger.vue +15 -0
  135. package/src/components/ui/drawer/Drawer.vue +23 -0
  136. package/src/components/ui/drawer/DrawerClose.vue +15 -0
  137. package/src/components/ui/drawer/DrawerContent.vue +38 -0
  138. package/src/components/ui/drawer/DrawerDescription.vue +21 -0
  139. package/src/components/ui/drawer/DrawerFooter.vue +17 -0
  140. package/src/components/ui/drawer/DrawerHeader.vue +17 -0
  141. package/src/components/ui/drawer/DrawerOverlay.vue +19 -0
  142. package/src/components/ui/drawer/DrawerTitle.vue +21 -0
  143. package/src/components/ui/drawer/DrawerTrigger.vue +15 -0
  144. package/src/components/ui/dropdown-menu/DropdownMenu.vue +19 -0
  145. package/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -0
  146. package/src/components/ui/dropdown-menu/DropdownMenuContent.vue +39 -0
  147. package/src/components/ui/dropdown-menu/DropdownMenuGroup.vue +15 -0
  148. package/src/components/ui/dropdown-menu/DropdownMenuItem.vue +31 -0
  149. package/src/components/ui/dropdown-menu/DropdownMenuLabel.vue +23 -0
  150. package/src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -0
  151. package/src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -0
  152. package/src/components/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -0
  153. package/src/components/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -0
  154. package/src/components/ui/dropdown-menu/DropdownMenuSub.vue +18 -0
  155. package/src/components/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -0
  156. package/src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -0
  157. package/src/components/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -0
  158. package/src/components/ui/empty/Empty.vue +20 -0
  159. package/src/components/ui/empty/EmptyContent.vue +20 -0
  160. package/src/components/ui/empty/EmptyDescription.vue +20 -0
  161. package/src/components/ui/empty/EmptyHeader.vue +20 -0
  162. package/src/components/ui/empty/EmptyMedia.vue +21 -0
  163. package/src/components/ui/empty/EmptyTitle.vue +17 -0
  164. package/src/components/ui/field/Field.vue +25 -0
  165. package/src/components/ui/field/FieldContent.vue +20 -0
  166. package/src/components/ui/field/FieldDescription.vue +22 -0
  167. package/src/components/ui/field/FieldError.vue +53 -0
  168. package/src/components/ui/field/FieldGroup.vue +20 -0
  169. package/src/components/ui/field/FieldLabel.vue +23 -0
  170. package/src/components/ui/field/FieldLegend.vue +24 -0
  171. package/src/components/ui/field/FieldSeparator.vue +29 -0
  172. package/src/components/ui/field/FieldSet.vue +21 -0
  173. package/src/components/ui/field/FieldTitle.vue +20 -0
  174. package/src/components/ui/form/FormControl.vue +17 -0
  175. package/src/components/ui/form/FormDescription.vue +21 -0
  176. package/src/components/ui/form/FormItem.vue +23 -0
  177. package/src/components/ui/form/FormLabel.vue +25 -0
  178. package/src/components/ui/form/FormMessage.vue +23 -0
  179. package/src/components/ui/hover-card/HoverCard.vue +19 -0
  180. package/src/components/ui/hover-card/HoverCardContent.vue +43 -0
  181. package/src/components/ui/hover-card/HoverCardTrigger.vue +15 -0
  182. package/src/components/ui/input/Input.vue +3 -3
  183. package/src/components/ui/input-group/InputGroup.vue +8 -8
  184. package/src/components/ui/input-group/InputGroupButton.vue +9 -1
  185. package/src/components/ui/input-group/InputGroupInput.vue +1 -1
  186. package/src/components/ui/input-group/InputGroupText.vue +1 -1
  187. package/src/components/ui/input-group/InputGroupTextarea.vue +1 -1
  188. package/src/components/ui/input-otp/InputOTP.vue +28 -0
  189. package/src/components/ui/input-otp/InputOTPGroup.vue +22 -0
  190. package/src/components/ui/input-otp/InputOTPSeparator.vue +21 -0
  191. package/src/components/ui/input-otp/InputOTPSlot.vue +32 -0
  192. package/src/components/ui/item/Item.vue +2 -0
  193. package/src/components/ui/item/ItemActions.vue +1 -1
  194. package/src/components/ui/item/ItemContent.vue +1 -1
  195. package/src/components/ui/item/ItemDescription.vue +2 -2
  196. package/src/components/ui/item/ItemFooter.vue +1 -1
  197. package/src/components/ui/item/ItemGroup.vue +1 -1
  198. package/src/components/ui/item/ItemHeader.vue +1 -1
  199. package/src/components/ui/item/ItemSeparator.vue +1 -1
  200. package/src/components/ui/item/ItemTitle.vue +1 -1
  201. package/src/components/ui/kbd/Kbd.vue +21 -0
  202. package/src/components/ui/kbd/KbdGroup.vue +17 -0
  203. package/src/components/ui/label/Label.vue +1 -1
  204. package/src/components/ui/menubar/Menubar.vue +33 -0
  205. package/src/components/ui/menubar/MenubarCheckboxItem.vue +39 -0
  206. package/src/components/ui/menubar/MenubarContent.vue +45 -0
  207. package/src/components/ui/menubar/MenubarGroup.vue +15 -0
  208. package/src/components/ui/menubar/MenubarItem.vue +36 -0
  209. package/src/components/ui/menubar/MenubarLabel.vue +20 -0
  210. package/src/components/ui/menubar/MenubarMenu.vue +15 -0
  211. package/src/components/ui/menubar/MenubarRadioGroup.vue +21 -0
  212. package/src/components/ui/menubar/MenubarRadioItem.vue +39 -0
  213. package/src/components/ui/menubar/MenubarSeparator.vue +21 -0
  214. package/src/components/ui/menubar/MenubarShortcut.vue +17 -0
  215. package/src/components/ui/menubar/MenubarSub.vue +24 -0
  216. package/src/components/ui/menubar/MenubarSubContent.vue +39 -0
  217. package/src/components/ui/menubar/MenubarSubTrigger.vue +28 -0
  218. package/src/components/ui/menubar/MenubarTrigger.vue +28 -0
  219. package/src/components/ui/native-select/NativeSelect.vue +50 -0
  220. package/src/components/ui/native-select/NativeSelectOptGroup.vue +15 -0
  221. package/src/components/ui/native-select/NativeSelectOption.vue +15 -0
  222. package/src/components/ui/navigation-menu/NavigationMenu.vue +35 -0
  223. package/src/components/ui/navigation-menu/NavigationMenuContent.vue +31 -0
  224. package/src/components/ui/navigation-menu/NavigationMenuIndicator.vue +23 -0
  225. package/src/components/ui/navigation-menu/NavigationMenuItem.vue +21 -0
  226. package/src/components/ui/navigation-menu/NavigationMenuLink.vue +26 -0
  227. package/src/components/ui/navigation-menu/NavigationMenuList.vue +28 -0
  228. package/src/components/ui/navigation-menu/NavigationMenuTrigger.vue +32 -0
  229. package/src/components/ui/navigation-menu/NavigationMenuViewport.vue +31 -0
  230. package/src/components/ui/number-field/NumberField.vue +20 -0
  231. package/src/components/ui/number-field/NumberFieldContent.vue +14 -0
  232. package/src/components/ui/number-field/NumberFieldDecrement.vue +22 -0
  233. package/src/components/ui/number-field/NumberFieldIncrement.vue +22 -0
  234. package/src/components/ui/number-field/NumberFieldInput.vue +16 -0
  235. package/src/components/ui/pagination/Pagination.vue +26 -0
  236. package/src/components/ui/pagination/PaginationContent.vue +22 -0
  237. package/src/components/ui/pagination/PaginationEllipsis.vue +25 -0
  238. package/src/components/ui/pagination/PaginationFirst.vue +33 -0
  239. package/src/components/ui/pagination/PaginationItem.vue +34 -0
  240. package/src/components/ui/pagination/PaginationLast.vue +33 -0
  241. package/src/components/ui/pagination/PaginationNext.vue +33 -0
  242. package/src/components/ui/pagination/PaginationPrevious.vue +33 -0
  243. package/src/components/ui/pin-input/PinInput.vue +26 -0
  244. package/src/components/ui/pin-input/PinInputGroup.vue +21 -0
  245. package/src/components/ui/pin-input/PinInputSeparator.vue +19 -0
  246. package/src/components/ui/pin-input/PinInputSlot.vue +21 -0
  247. package/src/components/ui/popover/Popover.vue +19 -0
  248. package/src/components/ui/popover/PopoverAnchor.vue +15 -0
  249. package/src/components/ui/popover/PopoverContent.vue +45 -0
  250. package/src/components/ui/popover/PopoverTrigger.vue +15 -0
  251. package/src/components/ui/progress/Progress.vue +9 -12
  252. package/src/components/ui/radio-group/RadioGroup.vue +25 -0
  253. package/src/components/ui/radio-group/RadioGroupItem.vue +40 -0
  254. package/src/components/ui/range-calendar/RangeCalendar.vue +62 -0
  255. package/src/components/ui/range-calendar/RangeCalendarCell.vue +23 -0
  256. package/src/components/ui/range-calendar/RangeCalendarCellTrigger.vue +41 -0
  257. package/src/components/ui/range-calendar/RangeCalendarGrid.vue +23 -0
  258. package/src/components/ui/range-calendar/RangeCalendarGridBody.vue +15 -0
  259. package/src/components/ui/range-calendar/RangeCalendarGridHead.vue +15 -0
  260. package/src/components/ui/range-calendar/RangeCalendarGridRow.vue +22 -0
  261. package/src/components/ui/range-calendar/RangeCalendarHeadCell.vue +23 -0
  262. package/src/components/ui/range-calendar/RangeCalendarHeader.vue +23 -0
  263. package/src/components/ui/range-calendar/RangeCalendarHeading.vue +30 -0
  264. package/src/components/ui/range-calendar/RangeCalendarNextButton.vue +32 -0
  265. package/src/components/ui/range-calendar/RangeCalendarPrevButton.vue +32 -0
  266. package/src/components/ui/resizable/ResizableHandle.vue +30 -0
  267. package/src/components/ui/resizable/ResizablePanel.vue +21 -0
  268. package/src/components/ui/resizable/ResizablePanelGroup.vue +25 -0
  269. package/src/components/ui/scroll-area/ScrollArea.vue +2 -2
  270. package/src/components/ui/scroll-area/ScrollBar.vue +22 -16
  271. package/src/components/ui/select/SelectContent.vue +27 -18
  272. package/src/components/ui/select/SelectItem.vue +3 -3
  273. package/src/components/ui/select/SelectLabel.vue +1 -1
  274. package/src/components/ui/select/SelectScrollDownButton.vue +2 -2
  275. package/src/components/ui/select/SelectScrollUpButton.vue +2 -2
  276. package/src/components/ui/select/SelectSeparator.vue +1 -1
  277. package/src/components/ui/select/SelectTrigger.vue +2 -2
  278. package/src/components/ui/separator/Separator.vue +1 -1
  279. package/src/components/ui/sheet/SheetContent.vue +31 -28
  280. package/src/components/ui/sheet/SheetDescription.vue +1 -1
  281. package/src/components/ui/sheet/SheetFooter.vue +1 -1
  282. package/src/components/ui/sheet/SheetHeader.vue +1 -1
  283. package/src/components/ui/sheet/SheetOverlay.vue +1 -1
  284. package/src/components/ui/sheet/SheetTitle.vue +1 -1
  285. package/src/components/ui/sidebar/Sidebar.vue +16 -16
  286. package/src/components/ui/sidebar/SidebarContent.vue +1 -1
  287. package/src/components/ui/sidebar/SidebarFooter.vue +1 -1
  288. package/src/components/ui/sidebar/SidebarGroup.vue +1 -1
  289. package/src/components/ui/sidebar/SidebarGroupAction.vue +3 -3
  290. package/src/components/ui/sidebar/SidebarGroupContent.vue +1 -1
  291. package/src/components/ui/sidebar/SidebarGroupLabel.vue +2 -2
  292. package/src/components/ui/sidebar/SidebarHeader.vue +1 -1
  293. package/src/components/ui/sidebar/SidebarInput.vue +1 -1
  294. package/src/components/ui/sidebar/SidebarInset.vue +2 -2
  295. package/src/components/ui/sidebar/SidebarMenu.vue +1 -1
  296. package/src/components/ui/sidebar/SidebarMenuAction.vue +7 -7
  297. package/src/components/ui/sidebar/SidebarMenuBadge.vue +6 -6
  298. package/src/components/ui/sidebar/SidebarMenuItem.vue +1 -1
  299. package/src/components/ui/sidebar/SidebarMenuSkeleton.vue +3 -3
  300. package/src/components/ui/sidebar/SidebarMenuSub.vue +2 -2
  301. package/src/components/ui/sidebar/SidebarMenuSubButton.vue +5 -5
  302. package/src/components/ui/sidebar/SidebarMenuSubItem.vue +1 -1
  303. package/src/components/ui/sidebar/SidebarProvider.vue +1 -1
  304. package/src/components/ui/sidebar/SidebarRail.vue +6 -6
  305. package/src/components/ui/sidebar/SidebarSeparator.vue +1 -1
  306. package/src/components/ui/sidebar/SidebarTrigger.vue +2 -2
  307. package/src/components/ui/skeleton/Skeleton.vue +1 -1
  308. package/src/components/ui/slider/Slider.vue +43 -0
  309. package/src/components/ui/sonner/Sonner.vue +7 -7
  310. package/src/components/ui/spinner/Spinner.vue +17 -0
  311. package/src/components/ui/stepper/Stepper.vue +27 -0
  312. package/src/components/ui/stepper/StepperDescription.vue +19 -0
  313. package/src/components/ui/stepper/StepperIndicator.vue +32 -0
  314. package/src/components/ui/stepper/StepperItem.vue +23 -0
  315. package/src/components/ui/stepper/StepperSeparator.vue +27 -0
  316. package/src/components/ui/stepper/StepperTitle.vue +19 -0
  317. package/src/components/ui/stepper/StepperTrigger.vue +22 -0
  318. package/src/components/ui/switch/Switch.vue +2 -2
  319. package/src/components/ui/table/Table.vue +12 -6
  320. package/src/components/ui/table/TableBody.vue +1 -1
  321. package/src/components/ui/table/TableCaption.vue +1 -1
  322. package/src/components/ui/table/TableCell.vue +1 -1
  323. package/src/components/ui/table/TableEmpty.vue +17 -14
  324. package/src/components/ui/table/TableFooter.vue +1 -1
  325. package/src/components/ui/table/TableHead.vue +1 -1
  326. package/src/components/ui/table/TableHeader.vue +1 -1
  327. package/src/components/ui/table/TableRow.vue +1 -1
  328. package/src/components/ui/tabs/Tabs.vue +1 -1
  329. package/src/components/ui/tabs/TabsContent.vue +1 -1
  330. package/src/components/ui/tabs/TabsList.vue +1 -1
  331. package/src/components/ui/tabs/TabsTrigger.vue +1 -1
  332. package/src/components/ui/tags-input/TagsInput.vue +26 -0
  333. package/src/components/ui/tags-input/TagsInputInput.vue +17 -0
  334. package/src/components/ui/tags-input/TagsInputItem.vue +20 -0
  335. package/src/components/ui/tags-input/TagsInputItemDelete.vue +22 -0
  336. package/src/components/ui/tags-input/TagsInputItemText.vue +19 -0
  337. package/src/components/ui/textarea/Textarea.vue +1 -1
  338. package/src/components/ui/toggle/Toggle.vue +35 -0
  339. package/src/components/ui/toggle-group/ToggleGroup.vue +49 -0
  340. package/src/components/ui/toggle-group/ToggleGroupItem.vue +46 -0
  341. package/src/components/ui/tooltip/TooltipContent.vue +2 -2
  342. package/dist/index.d.ts +0 -23
  343. package/dist/src/App.vue.d.ts +0 -2
  344. package/dist/src/components/HelloWorld.vue.d.ts +0 -5
  345. package/dist/src/components/NS/cards/NSBackupCard.vue.d.ts +0 -51
  346. package/dist/src/components/NS/cards/NSSystemInfoCard.vue.d.ts +0 -58
  347. package/dist/src/components/NS/cards/NSSystemdServiceCard.vue.d.ts +0 -47
  348. package/dist/src/components/NS/cards/index.d.ts +0 -3
  349. package/dist/src/components/NS/checkbox/NSCheckbox.vue.d.ts +0 -37
  350. package/dist/src/components/NS/checkbox/index.d.ts +0 -1
  351. package/dist/src/components/NS/data-table/NSDataTable.vue.d.ts +0 -98
  352. package/dist/src/components/NS/data-table/index.d.ts +0 -1
  353. package/dist/src/components/NS/empty-state/NSEmptyState.vue.d.ts +0 -45
  354. package/dist/src/components/NS/empty-state/index.d.ts +0 -1
  355. package/dist/src/components/NS/index.d.ts +0 -35
  356. package/dist/src/components/NS/inline-notification/NSInlineNotification.vue.d.ts +0 -44
  357. package/dist/src/components/NS/inline-notification/index.d.ts +0 -1
  358. package/dist/src/components/NS/lottie-animation/NSLottieAnimation.vue.d.ts +0 -75
  359. package/dist/src/components/NS/lottie-animation/index.d.ts +0 -1
  360. package/dist/src/components/NS/modal/NSModal.vue.d.ts +0 -56
  361. package/dist/src/components/NS/modal/NSModalTrigger.vue.d.ts +0 -64
  362. package/dist/src/components/NS/modal/index.d.ts +0 -2
  363. package/dist/src/components/NS/pagination/NSPagination.vue.d.ts +0 -36
  364. package/dist/src/components/NS/pagination/index.d.ts +0 -1
  365. package/dist/src/components/NS/progress/NSProgress.vue.d.ts +0 -37
  366. package/dist/src/components/NS/progress/NSProgressBar.vue.d.ts +0 -39
  367. package/dist/src/components/NS/progress/index.d.ts +0 -2
  368. package/dist/src/components/NS/slider/NSByteSlider.vue.d.ts +0 -50
  369. package/dist/src/components/NS/slider/NSSlider.vue.d.ts +0 -49
  370. package/dist/src/components/NS/slider/index.d.ts +0 -2
  371. package/dist/src/components/NS/tag/NSTag.vue.d.ts +0 -41
  372. package/dist/src/components/NS/tag/index.d.ts +0 -1
  373. package/dist/src/components/NS/text-input/NSTextInput.vue.d.ts +0 -67
  374. package/dist/src/components/NS/text-input/index.d.ts +0 -1
  375. package/dist/src/components/NS/toast-notification/NSToastNotification.vue.d.ts +0 -44
  376. package/dist/src/components/NS/toast-notification/index.d.ts +0 -1
  377. package/dist/src/components/NS/toggle/NSToggle.vue.d.ts +0 -51
  378. package/dist/src/components/NS/toggle/index.d.ts +0 -1
  379. package/dist/src/components/NS/wizard/NSWizard.vue.d.ts +0 -86
  380. package/dist/src/components/NS/wizard/index.d.ts +0 -1
  381. package/dist/src/components/ui/badge/Badge.vue.d.ts +0 -24
  382. package/dist/src/components/ui/badge/index.d.ts +0 -6
  383. package/dist/src/components/ui/button/Button.vue.d.ts +0 -27
  384. package/dist/src/components/ui/button/index.d.ts +0 -7
  385. package/dist/src/components/ui/card/Card.vue.d.ts +0 -21
  386. package/dist/src/components/ui/card/CardAction.vue.d.ts +0 -21
  387. package/dist/src/components/ui/card/CardContent.vue.d.ts +0 -21
  388. package/dist/src/components/ui/card/CardDescription.vue.d.ts +0 -21
  389. package/dist/src/components/ui/card/CardFooter.vue.d.ts +0 -21
  390. package/dist/src/components/ui/card/CardHeader.vue.d.ts +0 -21
  391. package/dist/src/components/ui/card/CardTitle.vue.d.ts +0 -21
  392. package/dist/src/components/ui/card/index.d.ts +0 -7
  393. package/dist/src/components/ui/checkbox/NsCheckbox.vue.d.ts +0 -49
  394. package/dist/src/components/ui/checkbox/index.d.ts +0 -11
  395. package/dist/src/components/ui/dialog/Dialog.vue.d.ts +0 -28
  396. package/dist/src/components/ui/dialog/index.d.ts +0 -1
  397. package/dist/src/components/ui/empty-state/NsEmptyState.vue.d.ts +0 -45
  398. package/dist/src/components/ui/empty-state/index.d.ts +0 -11
  399. package/dist/src/components/ui/inline-notification/NsInlineNotification.vue.d.ts +0 -45
  400. package/dist/src/components/ui/inline-notification/index.d.ts +0 -6
  401. package/dist/src/components/ui/input/Input.vue.d.ts +0 -12
  402. package/dist/src/components/ui/input/index.d.ts +0 -1
  403. package/dist/src/components/ui/input-group/InputGroup.vue.d.ts +0 -21
  404. package/dist/src/components/ui/input-group/InputGroupAddon.vue.d.ts +0 -25
  405. package/dist/src/components/ui/input-group/InputGroupButton.vue.d.ts +0 -22
  406. package/dist/src/components/ui/input-group/InputGroupInput.vue.d.ts +0 -6
  407. package/dist/src/components/ui/input-group/InputGroupText.vue.d.ts +0 -21
  408. package/dist/src/components/ui/input-group/InputGroupTextarea.vue.d.ts +0 -6
  409. package/dist/src/components/ui/input-group/index.d.ts +0 -22
  410. package/dist/src/components/ui/item/Item.vue.d.ts +0 -27
  411. package/dist/src/components/ui/item/ItemActions.vue.d.ts +0 -21
  412. package/dist/src/components/ui/item/ItemContent.vue.d.ts +0 -21
  413. package/dist/src/components/ui/item/ItemDescription.vue.d.ts +0 -21
  414. package/dist/src/components/ui/item/ItemFooter.vue.d.ts +0 -21
  415. package/dist/src/components/ui/item/ItemGroup.vue.d.ts +0 -21
  416. package/dist/src/components/ui/item/ItemHeader.vue.d.ts +0 -21
  417. package/dist/src/components/ui/item/ItemMedia.vue.d.ts +0 -23
  418. package/dist/src/components/ui/item/ItemSeparator.vue.d.ts +0 -7
  419. package/dist/src/components/ui/item/ItemTitle.vue.d.ts +0 -21
  420. package/dist/src/components/ui/item/index.d.ts +0 -20
  421. package/dist/src/components/ui/label/Label.vue.d.ts +0 -22
  422. package/dist/src/components/ui/label/index.d.ts +0 -1
  423. package/dist/src/components/ui/progress/Progress.vue.d.ts +0 -9
  424. package/dist/src/components/ui/progress/index.d.ts +0 -1
  425. package/dist/src/components/ui/scroll-area/ScrollArea.vue.d.ts +0 -22
  426. package/dist/src/components/ui/scroll-area/ScrollBar.vue.d.ts +0 -9
  427. package/dist/src/components/ui/scroll-area/index.d.ts +0 -2
  428. package/dist/src/components/ui/select/Select.vue.d.ts +0 -28
  429. package/dist/src/components/ui/select/SelectContent.vue.d.ts +0 -32
  430. package/dist/src/components/ui/select/SelectGroup.vue.d.ts +0 -18
  431. package/dist/src/components/ui/select/SelectItem.vue.d.ts +0 -23
  432. package/dist/src/components/ui/select/SelectItemText.vue.d.ts +0 -18
  433. package/dist/src/components/ui/select/SelectLabel.vue.d.ts +0 -22
  434. package/dist/src/components/ui/select/SelectScrollDownButton.vue.d.ts +0 -22
  435. package/dist/src/components/ui/select/SelectScrollUpButton.vue.d.ts +0 -22
  436. package/dist/src/components/ui/select/SelectSeparator.vue.d.ts +0 -7
  437. package/dist/src/components/ui/select/SelectTrigger.vue.d.ts +0 -25
  438. package/dist/src/components/ui/select/SelectValue.vue.d.ts +0 -18
  439. package/dist/src/components/ui/select/index.d.ts +0 -11
  440. package/dist/src/components/ui/separator/Separator.vue.d.ts +0 -10
  441. package/dist/src/components/ui/separator/index.d.ts +0 -1
  442. package/dist/src/components/ui/sheet/Sheet.vue.d.ts +0 -25
  443. package/dist/src/components/ui/sheet/SheetClose.vue.d.ts +0 -18
  444. package/dist/src/components/ui/sheet/SheetContent.vue.d.ts +0 -39
  445. package/dist/src/components/ui/sheet/SheetDescription.vue.d.ts +0 -22
  446. package/dist/src/components/ui/sheet/SheetFooter.vue.d.ts +0 -21
  447. package/dist/src/components/ui/sheet/SheetHeader.vue.d.ts +0 -21
  448. package/dist/src/components/ui/sheet/SheetOverlay.vue.d.ts +0 -22
  449. package/dist/src/components/ui/sheet/SheetTitle.vue.d.ts +0 -22
  450. package/dist/src/components/ui/sheet/SheetTrigger.vue.d.ts +0 -18
  451. package/dist/src/components/ui/sheet/index.d.ts +0 -8
  452. package/dist/src/components/ui/sidebar/Sidebar.vue.d.ts +0 -24
  453. package/dist/src/components/ui/sidebar/SidebarContent.vue.d.ts +0 -21
  454. package/dist/src/components/ui/sidebar/SidebarFooter.vue.d.ts +0 -21
  455. package/dist/src/components/ui/sidebar/SidebarGroup.vue.d.ts +0 -21
  456. package/dist/src/components/ui/sidebar/SidebarGroupAction.vue.d.ts +0 -22
  457. package/dist/src/components/ui/sidebar/SidebarGroupContent.vue.d.ts +0 -21
  458. package/dist/src/components/ui/sidebar/SidebarGroupLabel.vue.d.ts +0 -22
  459. package/dist/src/components/ui/sidebar/SidebarHeader.vue.d.ts +0 -21
  460. package/dist/src/components/ui/sidebar/SidebarInput.vue.d.ts +0 -21
  461. package/dist/src/components/ui/sidebar/SidebarInset.vue.d.ts +0 -21
  462. package/dist/src/components/ui/sidebar/SidebarMenu.vue.d.ts +0 -21
  463. package/dist/src/components/ui/sidebar/SidebarMenuAction.vue.d.ts +0 -25
  464. package/dist/src/components/ui/sidebar/SidebarMenuBadge.vue.d.ts +0 -21
  465. package/dist/src/components/ui/sidebar/SidebarMenuButton.vue.d.ts +0 -27
  466. package/dist/src/components/ui/sidebar/SidebarMenuButtonChild.vue.d.ts +0 -30
  467. package/dist/src/components/ui/sidebar/SidebarMenuItem.vue.d.ts +0 -21
  468. package/dist/src/components/ui/sidebar/SidebarMenuSkeleton.vue.d.ts +0 -7
  469. package/dist/src/components/ui/sidebar/SidebarMenuSub.vue.d.ts +0 -21
  470. package/dist/src/components/ui/sidebar/SidebarMenuSubButton.vue.d.ts +0 -27
  471. package/dist/src/components/ui/sidebar/SidebarMenuSubItem.vue.d.ts +0 -21
  472. package/dist/src/components/ui/sidebar/SidebarProvider.vue.d.ts +0 -30
  473. package/dist/src/components/ui/sidebar/SidebarRail.vue.d.ts +0 -21
  474. package/dist/src/components/ui/sidebar/SidebarSeparator.vue.d.ts +0 -21
  475. package/dist/src/components/ui/sidebar/SidebarTrigger.vue.d.ts +0 -6
  476. package/dist/src/components/ui/sidebar/index.d.ts +0 -37
  477. package/dist/src/components/ui/sidebar/utils.d.ts +0 -56
  478. package/dist/src/components/ui/skeleton/Skeleton.vue.d.ts +0 -6
  479. package/dist/src/components/ui/skeleton/index.d.ts +0 -1
  480. package/dist/src/components/ui/sonner/Sonner.vue.d.ts +0 -3
  481. package/dist/src/components/ui/sonner/index.d.ts +0 -1
  482. package/dist/src/components/ui/switch/Switch.vue.d.ts +0 -28
  483. package/dist/src/components/ui/switch/index.d.ts +0 -1
  484. package/dist/src/components/ui/table/Table.vue.d.ts +0 -21
  485. package/dist/src/components/ui/table/TableBody.vue.d.ts +0 -21
  486. package/dist/src/components/ui/table/TableCaption.vue.d.ts +0 -21
  487. package/dist/src/components/ui/table/TableCell.vue.d.ts +0 -21
  488. package/dist/src/components/ui/table/TableEmpty.vue.d.ts +0 -24
  489. package/dist/src/components/ui/table/TableFooter.vue.d.ts +0 -21
  490. package/dist/src/components/ui/table/TableHead.vue.d.ts +0 -21
  491. package/dist/src/components/ui/table/TableHeader.vue.d.ts +0 -21
  492. package/dist/src/components/ui/table/TableRow.vue.d.ts +0 -21
  493. package/dist/src/components/ui/table/index.d.ts +0 -9
  494. package/dist/src/components/ui/table/utils.d.ts +0 -3
  495. package/dist/src/components/ui/tabs/Tabs.vue.d.ts +0 -28
  496. package/dist/src/components/ui/tabs/TabsContent.vue.d.ts +0 -22
  497. package/dist/src/components/ui/tabs/TabsList.vue.d.ts +0 -22
  498. package/dist/src/components/ui/tabs/TabsTrigger.vue.d.ts +0 -22
  499. package/dist/src/components/ui/tabs/index.d.ts +0 -4
  500. package/dist/src/components/ui/tag/NsTag.vue.d.ts +0 -42
  501. package/dist/src/components/ui/tag/index.d.ts +0 -8
  502. package/dist/src/components/ui/text-input/NsTextInput.vue.d.ts +0 -79
  503. package/dist/src/components/ui/text-input/index.d.ts +0 -15
  504. package/dist/src/components/ui/textarea/Textarea.vue.d.ts +0 -12
  505. package/dist/src/components/ui/textarea/index.d.ts +0 -1
  506. package/dist/src/components/ui/toggle/NsToggle.vue.d.ts +0 -54
  507. package/dist/src/components/ui/toggle/index.d.ts +0 -15
  508. package/dist/src/components/ui/tooltip/Tooltip.vue.d.ts +0 -24
  509. package/dist/src/components/ui/tooltip/TooltipContent.vue.d.ts +0 -30
  510. package/dist/src/components/ui/tooltip/TooltipProvider.vue.d.ts +0 -20
  511. package/dist/src/components/ui/tooltip/TooltipTrigger.vue.d.ts +0 -18
  512. package/dist/src/components/ui/tooltip/index.d.ts +0 -4
  513. package/dist/src/composables/index.d.ts +0 -8
  514. package/dist/src/composables/useDateTimeService.d.ts +0 -10
  515. package/dist/src/composables/useFilterService.d.ts +0 -8
  516. package/dist/src/composables/useIconService.d.ts +0 -153
  517. package/dist/src/composables/usePageTitleService.d.ts +0 -3
  518. package/dist/src/composables/useQueryParamService.d.ts +0 -13
  519. package/dist/src/composables/useStorageService.d.ts +0 -5
  520. package/dist/src/composables/useTaskService.d.ts +0 -18
  521. package/dist/src/composables/useUtilService.d.ts +0 -27
  522. package/dist/src/lib/utils.d.ts +0 -2
  523. package/dist/src/main.d.ts +0 -0
@@ -237,52 +237,52 @@ watch(() => props.currentPage, () => {
237
237
  <template>
238
238
  <div :class="containerClasses">
239
239
  <!-- Header with search and filters -->
240
- <div class="flex items-center justify-between gap-4 mb-4">
241
- <div class="flex items-center gap-2">
240
+ <div class="tw:flex tw:items-center tw:justify-between tw:gap-4 tw:mb-4">
241
+ <div class="tw:flex tw:items-center tw:gap-2">
242
242
  <!-- Search -->
243
- <div v-if="searchable" class="relative">
244
- <Search class="absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground" />
243
+ <div v-if="searchable" class="tw:relative">
244
+ <Search class="tw:absolute tw:left-3 tw:top-1/2 tw:transform tw:-translate-y-1/2 tw:h-4 tw:w-4 tw:text-muted-foreground" />
245
245
  <Input
246
246
  :model-value="searchQuery"
247
247
  @update:model-value="handleSearch"
248
248
  placeholder="Search..."
249
- class="pl-9 w-64"
249
+ class="tw:pl-9 tw:w-64"
250
250
  />
251
251
  </div>
252
252
 
253
253
  <!-- Filters -->
254
- <div v-if="filterable" class="flex items-center gap-2">
255
- <Filter class="h-4 w-4 text-muted-foreground" />
254
+ <div v-if="filterable" class="tw:flex tw:items-center tw:gap-2">
255
+ <Filter class="tw:h-4 tw:w-4 tw:text-muted-foreground" />
256
256
  <div v-for="column in columns.filter(c => c.filterable)" :key="column.key">
257
257
  <Input
258
258
  :model-value="filters[column.key]"
259
259
  @update:model-value="(value) => handleFilterChange(column.key, value)"
260
260
  :placeholder="`Filter ${column.label}...`"
261
- class="w-32"
261
+ class="tw:w-32"
262
262
  />
263
263
  </div>
264
264
  </div>
265
265
  </div>
266
266
 
267
267
  <!-- Total count -->
268
- <div v-if="showTotal" class="text-sm text-muted-foreground">
268
+ <div v-if="showTotal" class="tw:text-sm tw:text-muted-foreground">
269
269
  {{ processedData.length }} items total
270
270
  </div>
271
271
  </div>
272
272
 
273
273
  <!-- Table -->
274
- <div class="rounded-md border">
274
+ <div class="tw:rounded-md tw:border">
275
275
  <Table :class="tableClasses">
276
276
  <TableHeader :class="headerClasses">
277
277
  <TableRow>
278
278
  <!-- Select all checkbox -->
279
- <TableHead v-if="selectable" class="w-12">
279
+ <TableHead v-if="selectable" class="tw:w-12">
280
280
  <input
281
281
  type="checkbox"
282
282
  :checked="isAllSelected"
283
283
  :indeterminate="isIndeterminate"
284
284
  @change="toggleAllSelection"
285
- class="rounded border-gray-300"
285
+ class="tw:rounded tw:border-gray-300"
286
286
  />
287
287
  </TableHead>
288
288
 
@@ -290,8 +290,7 @@ watch(() => props.currentPage, () => {
290
290
  <TableHead
291
291
  v-for="column in columns"
292
292
  :key="column.key"
293
- :class="cn(
294
- 'relative',
293
+ :class="cn( 'relative',
295
294
  {
296
295
  'text-left': column.align === 'left' || !column.align,
297
296
  'text-center': column.align === 'center',
@@ -302,18 +301,16 @@ watch(() => props.currentPage, () => {
302
301
  :style="{ width: column.width }"
303
302
  @click="handleSort(column)"
304
303
  >
305
- <div class="flex items-center gap-1">
304
+ <div class="tw:flex tw:items-center tw:gap-1">
306
305
  {{ column.label }}
307
- <div v-if="column.sortable" class="flex flex-col">
306
+ <div v-if="column.sortable" class="tw:flex tw:flex-col">
308
307
  <ChevronUp
309
- :class="cn(
310
- 'h-3 w-3',
308
+ :class="cn( 'h-3 w-3',
311
309
  sortColumn === column.key && sortDirection === 'asc' ? 'text-primary' : 'text-muted-foreground'
312
310
  )"
313
311
  />
314
312
  <ChevronDown
315
- :class="cn(
316
- 'h-3 w-3 -mt-1',
313
+ :class="cn( 'h-3 w-3 -mt-1',
317
314
  sortColumn === column.key && sortDirection === 'desc' ? 'text-primary' : 'text-muted-foreground'
318
315
  )"
319
316
  />
@@ -322,8 +319,8 @@ watch(() => props.currentPage, () => {
322
319
  </TableHead>
323
320
 
324
321
  <!-- Actions column -->
325
- <TableHead v-if="actions.length > 0" class="w-16">
326
- <span class="sr-only">Actions</span>
322
+ <TableHead v-if="actions.length > 0" class="tw:w-16">
323
+ <span class="tw:sr-only">Actions</span>
327
324
  </TableHead>
328
325
  </TableRow>
329
326
  </TableHeader>
@@ -331,9 +328,9 @@ watch(() => props.currentPage, () => {
331
328
  <TableBody :class="bodyClasses">
332
329
  <!-- Loading state -->
333
330
  <TableRow v-if="loading">
334
- <TableCell :colspan="columns.length + (selectable ? 1 : 0) + (actions.length > 0 ? 1 : 0)" class="text-center py-8">
335
- <div class="flex items-center justify-center space-x-2">
336
- <div class="animate-spin rounded-full h-4 w-4 border-b-2 border-primary"></div>
331
+ <TableCell :colspan="columns.length + (selectable ? 1 : 0) + (actions.length > 0 ? 1 : 0)" class="tw:text-center tw:py-8">
332
+ <div class="tw:flex tw:items-center tw:justify-center tw:space-x-2">
333
+ <div class="tw:animate-spin tw:rounded-full tw:h-4 tw:w-4 tw:border-b-2 tw:border-primary"></div>
337
334
  <span>{{ loadingMessage }}</span>
338
335
  </div>
339
336
  </TableCell>
@@ -341,7 +338,7 @@ watch(() => props.currentPage, () => {
341
338
 
342
339
  <!-- Empty state -->
343
340
  <TableRow v-else-if="currentPageData.length === 0">
344
- <TableCell :colspan="columns.length + (selectable ? 1 : 0) + (actions.length > 0 ? 1 : 0)" class="text-center py-8">
341
+ <TableCell :colspan="columns.length + (selectable ? 1 : 0) + (actions.length > 0 ? 1 : 0)" class="tw:text-center tw:py-8">
345
342
  {{ emptyMessage }}
346
343
  </TableCell>
347
344
  </TableRow>
@@ -351,19 +348,18 @@ watch(() => props.currentPage, () => {
351
348
  v-else
352
349
  v-for="(row, index) in currentPageData"
353
350
  :key="`row-${index}`"
354
- :class="{
355
- 'selected': selectedRows.includes(row)
351
+ :class="{ 'selected': selectedRows.includes(row)
356
352
  }"
357
353
  @click="handleRowClick(row, index)"
358
- class="cursor-pointer"
354
+ class="tw:cursor-pointer"
359
355
  >
360
356
  <!-- Selection checkbox -->
361
- <TableCell v-if="selectable" class="w-12">
357
+ <TableCell v-if="selectable" class="tw:w-12">
362
358
  <input
363
359
  type="checkbox"
364
360
  :checked="selectedRows.includes(row)"
365
361
  @change="toggleSelection(row)"
366
- class="rounded border-gray-300"
362
+ class="tw:rounded tw:border-gray-300"
367
363
  />
368
364
  </TableCell>
369
365
 
@@ -371,9 +367,7 @@ watch(() => props.currentPage, () => {
371
367
  <TableCell
372
368
  v-for="column in columns"
373
369
  :key="column.key"
374
- :class="cn(
375
- {
376
- 'text-left': column.align === 'left' || !column.align,
370
+ :class="cn( { 'text-left': column.align === 'left' || !column.align,
377
371
  'text-center': column.align === 'center',
378
372
  'text-right': column.align === 'right'
379
373
  }
@@ -397,7 +391,7 @@ watch(() => props.currentPage, () => {
397
391
 
398
392
  <!-- Actions -->
399
393
  <TableCell v-if="actions.length > 0">
400
- <div class="flex items-center justify-end space-x-1">
394
+ <div class="tw:flex tw:items-center tw:justify-end tw:space-x-1">
401
395
  <Button
402
396
  v-for="action in actions"
403
397
  :key="action.key"
@@ -406,7 +400,7 @@ watch(() => props.currentPage, () => {
406
400
  :disabled="action.disabled ? action.disabled(row) : false"
407
401
  @click.stop="action.onClick(row, index)"
408
402
  >
409
- <component v-if="action.icon" :is="action.icon" class="h-4 w-4" />
403
+ <component v-if="action.icon" :is="action.icon" class="tw:h-4 tw:w-4" />
410
404
  {{ action.label }}
411
405
  </Button>
412
406
  </div>
@@ -417,14 +411,14 @@ watch(() => props.currentPage, () => {
417
411
  </div>
418
412
 
419
413
  <!-- Pagination -->
420
- <div v-if="pagination" class="mt-4">
414
+ <div v-if="pagination" class="tw:mt-4">
421
415
  <slot name="pagination" :current-page="currentPage" :total-items="processedData.length">
422
416
  <!-- Built-in pagination placeholder -->
423
- <div class="flex items-center justify-between">
424
- <div class="text-sm text-muted-foreground">
417
+ <div class="tw:flex tw:items-center tw:justify-between">
418
+ <div class="tw:text-sm tw:text-muted-foreground">
425
419
  Showing {{ (currentPage - 1) * itemsPerPage + 1 }} to {{ Math.min(currentPage * itemsPerPage, processedData.length) }} of {{ processedData.length }} items
426
420
  </div>
427
- <div class="text-sm text-muted-foreground">
421
+ <div class="tw:text-sm tw:text-muted-foreground">
428
422
  Page {{ currentPage }} of {{ Math.ceil(processedData.length / itemsPerPage) }}
429
423
  </div>
430
424
  </div>
@@ -148,7 +148,7 @@ const descriptionClasses = computed(() => {
148
148
  <template>
149
149
  <div :class="containerClasses">
150
150
  <!-- Icon section -->
151
- <div class="mb-4">
151
+ <div class="tw:mb-4">
152
152
  <slot name="icon">
153
153
  <!-- Lottie animation if provided -->
154
154
  <NSLottieAnimation
@@ -185,12 +185,12 @@ const descriptionClasses = computed(() => {
185
185
  </div>
186
186
 
187
187
  <!-- Actions section -->
188
- <div v-if="$slots.actions" class="mt-4">
188
+ <div v-if="$slots.actions" class="tw:mt-4">
189
189
  <slot name="actions" />
190
190
  </div>
191
191
 
192
192
  <!-- Extra content section -->
193
- <div v-if="$slots.extra" class="mt-6">
193
+ <div v-if="$slots.extra" class="tw:mt-6">
194
194
  <slot name="extra" />
195
195
  </div>
196
196
  </div>
@@ -96,30 +96,30 @@ const showCloseButtonVisible = computed(() => props.showCloseButton && !hasLoadi
96
96
  <!-- Icon -->
97
97
  <component
98
98
  :is="NotificationIcon"
99
- class="h-4 w-4"
99
+ class="tw:h-4 tw:w-4"
100
100
  />
101
101
 
102
102
  <!-- Loading spinner -->
103
103
  <Loader2
104
104
  v-if="loading"
105
- class="h-4 w-4 animate-spin absolute right-12 top-4"
105
+ class="tw:h-4 tw:w-4 tw:animate-spin tw:absolute tw:right-12 tw:top-4"
106
106
  />
107
107
 
108
108
  <!-- Timer circle -->
109
109
  <div
110
110
  v-if="timer"
111
- class="h-4 w-4 absolute right-12 top-4"
111
+ class="tw:h-4 tw:w-4 tw:absolute tw:right-12 tw:top-4"
112
112
  >
113
113
  <!-- You can integrate NSCircleTimer component here -->
114
- <div class="h-4 w-4 rounded-full border-2 border-current animate-pulse" />
114
+ <div class="tw:h-4 tw:w-4 tw:rounded-full tw:border-2 tw:border-current tw:animate-pulse" />
115
115
  </div>
116
116
 
117
117
  <!-- Content -->
118
- <div class="grid gap-1">
118
+ <div class="tw:grid tw:gap-1">
119
119
  <!-- Title -->
120
120
  <h4
121
121
  v-if="hasTitle"
122
- class="text-sm font-medium leading-none"
122
+ class="tw:text-sm tw:font-medium tw:leading-none"
123
123
  >
124
124
  <slot name="title">{{ title }}</slot>
125
125
  </h4>
@@ -138,7 +138,7 @@ const showCloseButtonVisible = computed(() => props.showCloseButton && !hasLoadi
138
138
  <button
139
139
  v-if="hasAction"
140
140
  type="button"
141
- class="inline-flex items-center text-sm font-medium underline underline-offset-2 hover:no-underline focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 rounded-sm"
141
+ class="tw:inline-flex tw:items-center tw:text-sm tw:font-medium tw:underline tw:underline-offset-2 hover:tw:no-underline focus:tw:outline-none focus:tw:ring-2 focus:tw:ring-ring focus:tw:ring-offset-2 tw:rounded-sm"
142
142
  @click="emit('action')"
143
143
  >
144
144
  {{ actionLabel }}
@@ -150,10 +150,10 @@ const showCloseButtonVisible = computed(() => props.showCloseButton && !hasLoadi
150
150
  v-if="showCloseButtonVisible"
151
151
  type="button"
152
152
  :aria-label="closeAriaLabel"
153
- class="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none"
153
+ class="tw:absolute tw:right-4 tw:top-4 tw:rounded-sm tw:opacity-70 tw:ring-offset-background tw:transition-opacity hover:tw:opacity-100 focus:tw:outline-none focus:tw:ring-2 focus:tw:ring-ring focus:tw:ring-offset-2 disabled:tw:pointer-events-none"
154
154
  @click="emit('close')"
155
155
  >
156
- <X class="h-4 w-4" />
156
+ <X class="tw:h-4 tw:w-4" />
157
157
  </button>
158
158
 
159
159
  <!-- Extra content -->
@@ -1,29 +1,29 @@
1
1
  <script setup lang="ts">
2
- import { computed, ref, watch } from 'vue'
3
- import LottieAnimation from 'lottie-web-vue'
4
- import { cn } from '@/lib/utils'
2
+ import { computed, ref, watch } from "vue";
3
+ import { LottieAnimation } from "lottie-web-vue";
4
+ import { cn } from "@/lib/utils";
5
5
 
6
6
  interface Props {
7
- path?: string // Path to Lottie JSON file
8
- animationData?: any // Direct animation data
9
- width?: number | string
10
- height?: number | string
11
- loop?: boolean
12
- autoplay?: boolean
13
- speed?: number
14
- playOnHover?: boolean
15
- stopOnHoverOut?: boolean
16
- direction?: number
17
- renderer?: 'svg' | 'canvas' | 'html'
18
- className?: string
19
- containerClassName?: string
20
- lazy?: boolean
21
- placeholder?: string
22
- responsive?: boolean
23
- preserveAspectRatio?: string
24
- title?: string
25
- ariaLabel?: string
26
- role?: string
7
+ path?: string; // Path to Lottie JSON file
8
+ animationData?: any; // Direct animation data
9
+ width?: number | string;
10
+ height?: number | string;
11
+ loop?: boolean;
12
+ autoplay?: boolean;
13
+ speed?: number;
14
+ playOnHover?: boolean;
15
+ stopOnHoverOut?: boolean;
16
+ direction?: number;
17
+ renderer?: "svg" | "canvas" | "html";
18
+ className?: string;
19
+ containerClassName?: string;
20
+ lazy?: boolean;
21
+ placeholder?: string;
22
+ responsive?: boolean;
23
+ preserveAspectRatio?: string;
24
+ title?: string;
25
+ ariaLabel?: string;
26
+ role?: string;
27
27
  }
28
28
 
29
29
  const props = withDefaults(defineProps<Props>(), {
@@ -35,34 +35,34 @@ const props = withDefaults(defineProps<Props>(), {
35
35
  playOnHover: false,
36
36
  stopOnHoverOut: false,
37
37
  direction: 1,
38
- renderer: 'svg',
38
+ renderer: "svg",
39
39
  lazy: false,
40
40
  responsive: true,
41
- preserveAspectRatio: 'xMidYMid meet',
42
- role: 'img',
43
- })
41
+ preserveAspectRatio: "xMidYMid meet",
42
+ role: "img",
43
+ });
44
44
 
45
45
  const emit = defineEmits<{
46
- load: []
47
- ready: []
48
- play: []
49
- pause: []
50
- stop: []
51
- complete: []
52
- loopComplete: []
53
- enterFrame: [event: any]
54
- error: [error: Error]
55
- mouseOver: []
56
- mouseOut: []
57
- }>()
46
+ load: [];
47
+ ready: [];
48
+ play: [];
49
+ pause: [];
50
+ stop: [];
51
+ complete: [];
52
+ loopComplete: [];
53
+ enterFrame: [event: any];
54
+ error: [error: Error];
55
+ mouseOver: [];
56
+ mouseOut: [];
57
+ }>();
58
58
 
59
59
  // State
60
- const isLoading = ref(false)
61
- const isError = ref(false)
62
- const isLoaded = ref(false)
63
- const isPlaying = ref(props.autoplay)
64
- const error = ref<string | null>(null)
65
- const lottieRef = ref<InstanceType<typeof LottieAnimation>>()
60
+ const isLoading = ref(false);
61
+ const isError = ref(false);
62
+ const isLoaded = ref(false);
63
+ const isPlaying = ref(props.autoplay);
64
+ const error = ref<string | null>(null);
65
+ const lottieRef = ref<InstanceType<typeof LottieAnimation>>();
66
66
 
67
67
  // Computed properties
68
68
  const lottieOptions = computed(() => ({
@@ -74,131 +74,145 @@ const lottieOptions = computed(() => ({
74
74
  rendererSettings: {
75
75
  preserveAspectRatio: props.preserveAspectRatio,
76
76
  },
77
- }))
77
+ }));
78
78
 
79
79
  const containerStyle = computed(() => ({
80
- width: props.width ? (typeof props.width === 'number' ? `${props.width}px` : props.width) : 'auto',
81
- height: props.height ? (typeof props.height === 'number' ? `${props.height}px` : props.height) : 'auto',
82
- maxWidth: props.responsive ? '100%' : undefined,
83
- }))
80
+ width: props.width
81
+ ? typeof props.width === "number"
82
+ ? `${props.width}px`
83
+ : props.width
84
+ : "auto",
85
+ height: props.height
86
+ ? typeof props.height === "number"
87
+ ? `${props.height}px`
88
+ : props.height
89
+ : "auto",
90
+ maxWidth: props.responsive ? "100%" : undefined,
91
+ }));
84
92
 
85
93
  const containerClasses = computed(() => {
86
94
  return cn(
87
- 'relative inline-block',
95
+ "relative inline-block",
88
96
  {
89
- 'opacity-50': isLoading.value,
90
- 'opacity-100': !isLoading.value,
97
+ "opacity-50": isLoading.value,
98
+ "opacity-100": !isLoading.value,
91
99
  },
92
- props.containerClassName
93
- )
94
- })
100
+ props.containerClassName,
101
+ );
102
+ });
95
103
 
96
104
  const playerClasses = computed(() => {
97
- return cn('w-full h-full', props.className)
98
- })
105
+ return cn("w-full h-full", props.className);
106
+ });
99
107
 
100
108
  // Player controls
101
109
  const play = () => {
102
110
  if (lottieRef.value && !isPlaying.value) {
103
- lottieRef.value.play()
104
- isPlaying.value = true
105
- emit('play')
111
+ lottieRef.value.play();
112
+ isPlaying.value = true;
113
+ emit("play");
106
114
  }
107
- }
115
+ };
108
116
 
109
117
  const pause = () => {
110
118
  if (lottieRef.value && isPlaying.value) {
111
- lottieRef.value.pause()
112
- isPlaying.value = false
113
- emit('pause')
119
+ lottieRef.value.pause();
120
+ isPlaying.value = false;
121
+ emit("pause");
114
122
  }
115
- }
123
+ };
116
124
 
117
125
  const stop = () => {
118
126
  if (lottieRef.value) {
119
- lottieRef.value.stop()
120
- isPlaying.value = false
121
- emit('stop')
127
+ lottieRef.value.stop();
128
+ isPlaying.value = false;
129
+ emit("stop");
122
130
  }
123
- }
131
+ };
124
132
 
125
133
  const goToAndStop = (frame?: number) => {
126
134
  if (lottieRef.value) {
127
- lottieRef.value.goToAndStop(frame || 0, true)
135
+ lottieRef.value.goToAndStop(frame || 0, true);
128
136
  }
129
- }
137
+ };
130
138
 
131
139
  const setDirection = (direction: number) => {
132
140
  if (lottieRef.value) {
133
- lottieRef.value.setDirection(direction)
141
+ lottieRef.value.setDirection(direction);
134
142
  }
135
- }
143
+ };
136
144
 
137
145
  const setSpeed = (speed: number) => {
138
146
  if (lottieRef.value) {
139
- lottieRef.value.setSpeed(speed)
147
+ lottieRef.value.setSpeed(speed);
140
148
  }
141
- }
149
+ };
142
150
 
143
151
  // Event handlers
144
152
  const handleDataReady = () => {
145
- isLoaded.value = true
146
- isLoading.value = false
147
- emit('ready')
148
- }
153
+ isLoaded.value = true;
154
+ isLoading.value = false;
155
+ emit("ready");
156
+ };
149
157
 
150
158
  const handleDataFailed = () => {
151
- isLoading.value = false
152
- isError.value = true
153
- error.value = 'Failed to load animation'
154
- emit('error', new Error('Animation data failed to load'))
155
- }
159
+ isLoading.value = false;
160
+ isError.value = true;
161
+ error.value = "Failed to load animation";
162
+ emit("error", new Error("Animation data failed to load"));
163
+ };
156
164
 
157
165
  const handleDOMLoaded = () => {
158
- emit('load')
159
- }
166
+ emit("load");
167
+ };
160
168
 
161
169
  const handleComplete = () => {
162
- emit('complete')
163
- }
170
+ emit("complete");
171
+ };
164
172
 
165
173
  const handleLoopComplete = () => {
166
- emit('loopComplete')
167
- }
174
+ emit("loopComplete");
175
+ };
168
176
 
169
177
  const handleEnterFrame = (event: any) => {
170
- emit('enterFrame', event)
171
- }
178
+ emit("enterFrame", event);
179
+ };
172
180
 
173
181
  // Hover handlers
174
182
  const handleMouseOver = () => {
175
183
  if (props.playOnHover && !isPlaying.value) {
176
- play()
184
+ play();
177
185
  }
178
- emit('mouseOver')
179
- }
186
+ emit("mouseOver");
187
+ };
180
188
 
181
189
  const handleMouseOut = () => {
182
190
  if (props.stopOnHoverOut && isPlaying.value) {
183
- pause()
191
+ pause();
184
192
  }
185
- emit('mouseOut')
186
- }
193
+ emit("mouseOut");
194
+ };
187
195
 
188
196
  // Watch for prop changes
189
197
  watch([() => props.path, () => props.animationData], () => {
190
- isLoading.value = true
191
- isLoaded.value = false
192
- isError.value = false
193
- })
198
+ isLoading.value = true;
199
+ isLoaded.value = false;
200
+ isError.value = false;
201
+ });
194
202
 
195
- watch(() => props.speed, (newSpeed) => {
196
- setSpeed(newSpeed)
197
- })
203
+ watch(
204
+ () => props.speed,
205
+ (newSpeed) => {
206
+ setSpeed(newSpeed);
207
+ },
208
+ );
198
209
 
199
- watch(() => props.direction, (newDirection) => {
200
- setDirection(newDirection)
201
- })
210
+ watch(
211
+ () => props.direction,
212
+ (newDirection) => {
213
+ setDirection(newDirection);
214
+ },
215
+ );
202
216
 
203
217
  // Expose methods
204
218
  defineExpose({
@@ -212,11 +226,11 @@ defineExpose({
212
226
  isPlaying,
213
227
  isLoading,
214
228
  isError,
215
- })
229
+ });
216
230
  </script>
217
231
 
218
232
  <template>
219
- <div
233
+ <div
220
234
  :class="containerClasses"
221
235
  :style="containerStyle"
222
236
  :title="title"
@@ -226,14 +240,24 @@ defineExpose({
226
240
  @mouseout="handleMouseOut"
227
241
  >
228
242
  <!-- Loading placeholder -->
229
- <div v-if="isLoading && !isLoaded" class="flex items-center justify-center h-full">
230
- <div class="animate-spin rounded-full h-8 w-8 border-b-2 border-primary"></div>
231
- <span v-if="placeholder" class="ml-2 text-sm text-muted-foreground">{{ placeholder }}</span>
243
+ <div
244
+ v-if="isLoading && !isLoaded"
245
+ class="tw:flex tw:items-center tw:justify-center tw:h-full"
246
+ >
247
+ <div
248
+ class="tw:animate-spin tw:rounded-full tw:h-8 tw:w-8 tw:border-b-2 tw:border-primary"
249
+ ></div>
250
+ <span v-if="placeholder" class="tw:ml-2 tw:text-sm tw:text-muted-foreground">{{
251
+ placeholder
252
+ }}</span>
232
253
  </div>
233
254
 
234
255
  <!-- Error state -->
235
- <div v-else-if="isError" class="flex items-center justify-center h-full text-destructive">
236
- <div class="text-sm">{{ error || 'Failed to load animation' }}</div>
256
+ <div
257
+ v-else-if="isError"
258
+ class="tw:flex tw:items-center tw:justify-center tw:h-full tw:text-destructive"
259
+ >
260
+ <div class="tw:text-sm">{{ error || "Failed to load animation" }}</div>
237
261
  </div>
238
262
 
239
263
  <!-- Lottie Animation -->