@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.
- package/dist/ns8-ui-lib.css +3 -1
- package/dist/ns8-ui-lib.es.js +36815 -19727
- package/dist/ns8-ui-lib.es.js.map +1 -1
- package/dist/ns8-ui-lib.umd.js +24 -11
- package/dist/ns8-ui-lib.umd.js.map +1 -1
- package/package.json +25 -19
- package/src/App.vue +7 -3
- package/src/components/HelloWorld.vue +2 -2
- package/src/components/NS/CompleteDemo.vue +49 -49
- package/src/components/NS/Demo.vue +20 -20
- package/src/components/NS/cards/NSBackupCard.vue +59 -41
- package/src/components/NS/cards/NSSystemInfoCard.vue +164 -136
- package/src/components/NS/cards/NSSystemdServiceCard.vue +27 -27
- package/src/components/NS/checkbox/NSCheckbox.vue +6 -8
- package/src/components/NS/data-table/NSDataTable.vue +34 -40
- package/src/components/NS/empty-state/NSEmptyState.vue +3 -3
- package/src/components/NS/inline-notification/NSInlineNotification.vue +9 -9
- package/src/components/NS/lottie-animation/NSLottieAnimation.vue +140 -116
- package/src/components/NS/modal/NSModal.vue +12 -14
- package/src/components/NS/modal/NSModalTrigger.vue +1 -1
- package/src/components/NS/pagination/NSPagination.vue +10 -10
- package/src/components/NS/progress/NSProgress.vue +3 -3
- package/src/components/NS/progress/NSProgressBar.vue +4 -4
- package/src/components/NS/slider/NSByteSlider.vue +3 -3
- package/src/components/NS/slider/NSSlider.vue +2 -2
- package/src/components/NS/tag/NSTag.vue +6 -7
- package/src/components/NS/text-input/NSTextInput.vue +9 -13
- package/src/components/NS/toast-notification/NSToastNotification.vue +9 -11
- package/src/components/NS/toggle/NSToggle.vue +5 -8
- package/src/components/NS/wizard/NSWizard.vue +21 -21
- package/src/components/ui/accordion/Accordion.vue +18 -0
- package/src/components/ui/accordion/AccordionContent.vue +23 -0
- package/src/components/ui/accordion/AccordionItem.vue +24 -0
- package/src/components/ui/accordion/AccordionTrigger.vue +37 -0
- package/src/components/ui/alert/Alert.vue +21 -0
- package/src/components/ui/alert/AlertDescription.vue +17 -0
- package/src/components/ui/alert/AlertTitle.vue +17 -0
- package/src/components/ui/alert-dialog/AlertDialog.vue +15 -0
- package/src/components/ui/alert-dialog/AlertDialogAction.vue +18 -0
- package/src/components/ui/alert-dialog/AlertDialogCancel.vue +25 -0
- package/src/components/ui/alert-dialog/AlertDialogContent.vue +44 -0
- package/src/components/ui/alert-dialog/AlertDialogDescription.vue +23 -0
- package/src/components/ui/alert-dialog/AlertDialogFooter.vue +22 -0
- package/src/components/ui/alert-dialog/AlertDialogHeader.vue +17 -0
- package/src/components/ui/alert-dialog/AlertDialogTitle.vue +21 -0
- package/src/components/ui/alert-dialog/AlertDialogTrigger.vue +12 -0
- package/src/components/ui/aspect-ratio/AspectRatio.vue +16 -0
- package/src/components/ui/avatar/Avatar.vue +18 -0
- package/src/components/ui/avatar/AvatarFallback.vue +21 -0
- package/src/components/ui/avatar/AvatarImage.vue +16 -0
- package/src/components/ui/breadcrumb/Breadcrumb.vue +17 -0
- package/src/components/ui/breadcrumb/BreadcrumbEllipsis.vue +23 -0
- package/src/components/ui/breadcrumb/BreadcrumbItem.vue +17 -0
- package/src/components/ui/breadcrumb/BreadcrumbLink.vue +21 -0
- package/src/components/ui/breadcrumb/BreadcrumbList.vue +17 -0
- package/src/components/ui/breadcrumb/BreadcrumbPage.vue +20 -0
- package/src/components/ui/breadcrumb/BreadcrumbSeparator.vue +22 -0
- package/src/components/ui/button/Button.vue +2 -0
- package/src/components/ui/button-group/ButtonGroup.vue +22 -0
- package/src/components/ui/button-group/ButtonGroupSeparator.vue +24 -0
- package/src/components/ui/button-group/ButtonGroupText.vue +29 -0
- package/src/components/ui/calendar/Calendar.vue +160 -0
- package/src/components/ui/calendar/CalendarCell.vue +23 -0
- package/src/components/ui/calendar/CalendarCellTrigger.vue +39 -0
- package/src/components/ui/calendar/CalendarGrid.vue +23 -0
- package/src/components/ui/calendar/CalendarGridBody.vue +15 -0
- package/src/components/ui/calendar/CalendarGridHead.vue +16 -0
- package/src/components/ui/calendar/CalendarGridRow.vue +22 -0
- package/src/components/ui/calendar/CalendarHeadCell.vue +23 -0
- package/src/components/ui/calendar/CalendarHeader.vue +23 -0
- package/src/components/ui/calendar/CalendarHeading.vue +30 -0
- package/src/components/ui/calendar/CalendarNextButton.vue +31 -0
- package/src/components/ui/calendar/CalendarPrevButton.vue +31 -0
- package/src/components/ui/card/Card.vue +1 -1
- package/src/components/ui/card/CardAction.vue +1 -1
- package/src/components/ui/card/CardContent.vue +1 -1
- package/src/components/ui/card/CardDescription.vue +1 -1
- package/src/components/ui/card/CardFooter.vue +1 -1
- package/src/components/ui/card/CardHeader.vue +1 -1
- package/src/components/ui/card/CardTitle.vue +1 -1
- package/src/components/ui/carousel/Carousel.vue +53 -0
- package/src/components/ui/carousel/CarouselContent.vue +33 -0
- package/src/components/ui/carousel/CarouselItem.vue +24 -0
- package/src/components/ui/carousel/CarouselNext.vue +41 -0
- package/src/components/ui/carousel/CarouselPrevious.vue +41 -0
- package/src/components/ui/checkbox/Checkbox.vue +35 -0
- package/src/components/ui/collapsible/Collapsible.vue +19 -0
- package/src/components/ui/collapsible/CollapsibleContent.vue +15 -0
- package/src/components/ui/collapsible/CollapsibleTrigger.vue +15 -0
- package/src/components/ui/combobox/Combobox.vue +19 -0
- package/src/components/ui/combobox/ComboboxAnchor.vue +23 -0
- package/src/components/ui/combobox/ComboboxEmpty.vue +21 -0
- package/src/components/ui/combobox/ComboboxGroup.vue +27 -0
- package/src/components/ui/combobox/ComboboxInput.vue +42 -0
- package/src/components/ui/combobox/ComboboxItem.vue +24 -0
- package/src/components/ui/combobox/ComboboxItemIndicator.vue +23 -0
- package/src/components/ui/combobox/ComboboxList.vue +33 -0
- package/src/components/ui/combobox/ComboboxSeparator.vue +21 -0
- package/src/components/ui/combobox/ComboboxTrigger.vue +24 -0
- package/src/components/ui/combobox/ComboboxViewport.vue +23 -0
- package/src/components/ui/command/Command.vue +87 -0
- package/src/components/ui/command/CommandDialog.vue +31 -0
- package/src/components/ui/command/CommandEmpty.vue +27 -0
- package/src/components/ui/command/CommandGroup.vue +45 -0
- package/src/components/ui/command/CommandInput.vue +39 -0
- package/src/components/ui/command/CommandItem.vue +76 -0
- package/src/components/ui/command/CommandList.vue +25 -0
- package/src/components/ui/command/CommandSeparator.vue +21 -0
- package/src/components/ui/command/CommandShortcut.vue +17 -0
- package/src/components/ui/context-menu/ContextMenu.vue +18 -0
- package/src/components/ui/context-menu/ContextMenuCheckboxItem.vue +39 -0
- package/src/components/ui/context-menu/ContextMenuContent.vue +37 -0
- package/src/components/ui/context-menu/ContextMenuGroup.vue +15 -0
- package/src/components/ui/context-menu/ContextMenuItem.vue +38 -0
- package/src/components/ui/context-menu/ContextMenuLabel.vue +22 -0
- package/src/components/ui/context-menu/ContextMenuPortal.vue +15 -0
- package/src/components/ui/context-menu/ContextMenuRadioGroup.vue +21 -0
- package/src/components/ui/context-menu/ContextMenuRadioItem.vue +39 -0
- package/src/components/ui/context-menu/ContextMenuSeparator.vue +21 -0
- package/src/components/ui/context-menu/ContextMenuShortcut.vue +17 -0
- package/src/components/ui/context-menu/ContextMenuSub.vue +21 -0
- package/src/components/ui/context-menu/ContextMenuSubContent.vue +32 -0
- package/src/components/ui/context-menu/ContextMenuSubTrigger.vue +32 -0
- package/src/components/ui/context-menu/ContextMenuTrigger.vue +17 -0
- package/src/components/ui/dialog/Dialog.vue +15 -64
- package/src/components/ui/dialog/DialogClose.vue +15 -0
- package/src/components/ui/dialog/DialogContent.vue +62 -0
- package/src/components/ui/dialog/DialogDescription.vue +23 -0
- package/src/components/ui/dialog/DialogFooter.vue +27 -0
- package/src/components/ui/dialog/DialogHeader.vue +17 -0
- package/src/components/ui/dialog/DialogOverlay.vue +21 -0
- package/src/components/ui/dialog/DialogScrollContent.vue +59 -0
- package/src/components/ui/dialog/DialogTitle.vue +23 -0
- package/src/components/ui/dialog/DialogTrigger.vue +15 -0
- package/src/components/ui/drawer/Drawer.vue +23 -0
- package/src/components/ui/drawer/DrawerClose.vue +15 -0
- package/src/components/ui/drawer/DrawerContent.vue +38 -0
- package/src/components/ui/drawer/DrawerDescription.vue +21 -0
- package/src/components/ui/drawer/DrawerFooter.vue +17 -0
- package/src/components/ui/drawer/DrawerHeader.vue +17 -0
- package/src/components/ui/drawer/DrawerOverlay.vue +19 -0
- package/src/components/ui/drawer/DrawerTitle.vue +21 -0
- package/src/components/ui/drawer/DrawerTrigger.vue +15 -0
- package/src/components/ui/dropdown-menu/DropdownMenu.vue +19 -0
- package/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -0
- package/src/components/ui/dropdown-menu/DropdownMenuContent.vue +39 -0
- package/src/components/ui/dropdown-menu/DropdownMenuGroup.vue +15 -0
- package/src/components/ui/dropdown-menu/DropdownMenuItem.vue +31 -0
- package/src/components/ui/dropdown-menu/DropdownMenuLabel.vue +23 -0
- package/src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -0
- package/src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -0
- package/src/components/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -0
- package/src/components/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -0
- package/src/components/ui/dropdown-menu/DropdownMenuSub.vue +18 -0
- package/src/components/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -0
- package/src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -0
- package/src/components/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -0
- package/src/components/ui/empty/Empty.vue +20 -0
- package/src/components/ui/empty/EmptyContent.vue +20 -0
- package/src/components/ui/empty/EmptyDescription.vue +20 -0
- package/src/components/ui/empty/EmptyHeader.vue +20 -0
- package/src/components/ui/empty/EmptyMedia.vue +21 -0
- package/src/components/ui/empty/EmptyTitle.vue +17 -0
- package/src/components/ui/field/Field.vue +25 -0
- package/src/components/ui/field/FieldContent.vue +20 -0
- package/src/components/ui/field/FieldDescription.vue +22 -0
- package/src/components/ui/field/FieldError.vue +53 -0
- package/src/components/ui/field/FieldGroup.vue +20 -0
- package/src/components/ui/field/FieldLabel.vue +23 -0
- package/src/components/ui/field/FieldLegend.vue +24 -0
- package/src/components/ui/field/FieldSeparator.vue +29 -0
- package/src/components/ui/field/FieldSet.vue +21 -0
- package/src/components/ui/field/FieldTitle.vue +20 -0
- package/src/components/ui/form/FormControl.vue +17 -0
- package/src/components/ui/form/FormDescription.vue +21 -0
- package/src/components/ui/form/FormItem.vue +23 -0
- package/src/components/ui/form/FormLabel.vue +25 -0
- package/src/components/ui/form/FormMessage.vue +23 -0
- package/src/components/ui/hover-card/HoverCard.vue +19 -0
- package/src/components/ui/hover-card/HoverCardContent.vue +43 -0
- package/src/components/ui/hover-card/HoverCardTrigger.vue +15 -0
- package/src/components/ui/input/Input.vue +3 -3
- package/src/components/ui/input-group/InputGroup.vue +8 -8
- package/src/components/ui/input-group/InputGroupButton.vue +9 -1
- package/src/components/ui/input-group/InputGroupInput.vue +1 -1
- package/src/components/ui/input-group/InputGroupText.vue +1 -1
- package/src/components/ui/input-group/InputGroupTextarea.vue +1 -1
- package/src/components/ui/input-otp/InputOTP.vue +28 -0
- package/src/components/ui/input-otp/InputOTPGroup.vue +22 -0
- package/src/components/ui/input-otp/InputOTPSeparator.vue +21 -0
- package/src/components/ui/input-otp/InputOTPSlot.vue +32 -0
- package/src/components/ui/item/Item.vue +2 -0
- package/src/components/ui/item/ItemActions.vue +1 -1
- package/src/components/ui/item/ItemContent.vue +1 -1
- package/src/components/ui/item/ItemDescription.vue +2 -2
- package/src/components/ui/item/ItemFooter.vue +1 -1
- package/src/components/ui/item/ItemGroup.vue +1 -1
- package/src/components/ui/item/ItemHeader.vue +1 -1
- package/src/components/ui/item/ItemSeparator.vue +1 -1
- package/src/components/ui/item/ItemTitle.vue +1 -1
- package/src/components/ui/kbd/Kbd.vue +21 -0
- package/src/components/ui/kbd/KbdGroup.vue +17 -0
- package/src/components/ui/label/Label.vue +1 -1
- package/src/components/ui/menubar/Menubar.vue +33 -0
- package/src/components/ui/menubar/MenubarCheckboxItem.vue +39 -0
- package/src/components/ui/menubar/MenubarContent.vue +45 -0
- package/src/components/ui/menubar/MenubarGroup.vue +15 -0
- package/src/components/ui/menubar/MenubarItem.vue +36 -0
- package/src/components/ui/menubar/MenubarLabel.vue +20 -0
- package/src/components/ui/menubar/MenubarMenu.vue +15 -0
- package/src/components/ui/menubar/MenubarRadioGroup.vue +21 -0
- package/src/components/ui/menubar/MenubarRadioItem.vue +39 -0
- package/src/components/ui/menubar/MenubarSeparator.vue +21 -0
- package/src/components/ui/menubar/MenubarShortcut.vue +17 -0
- package/src/components/ui/menubar/MenubarSub.vue +24 -0
- package/src/components/ui/menubar/MenubarSubContent.vue +39 -0
- package/src/components/ui/menubar/MenubarSubTrigger.vue +28 -0
- package/src/components/ui/menubar/MenubarTrigger.vue +28 -0
- package/src/components/ui/native-select/NativeSelect.vue +50 -0
- package/src/components/ui/native-select/NativeSelectOptGroup.vue +15 -0
- package/src/components/ui/native-select/NativeSelectOption.vue +15 -0
- package/src/components/ui/navigation-menu/NavigationMenu.vue +35 -0
- package/src/components/ui/navigation-menu/NavigationMenuContent.vue +31 -0
- package/src/components/ui/navigation-menu/NavigationMenuIndicator.vue +23 -0
- package/src/components/ui/navigation-menu/NavigationMenuItem.vue +21 -0
- package/src/components/ui/navigation-menu/NavigationMenuLink.vue +26 -0
- package/src/components/ui/navigation-menu/NavigationMenuList.vue +28 -0
- package/src/components/ui/navigation-menu/NavigationMenuTrigger.vue +32 -0
- package/src/components/ui/navigation-menu/NavigationMenuViewport.vue +31 -0
- package/src/components/ui/number-field/NumberField.vue +20 -0
- package/src/components/ui/number-field/NumberFieldContent.vue +14 -0
- package/src/components/ui/number-field/NumberFieldDecrement.vue +22 -0
- package/src/components/ui/number-field/NumberFieldIncrement.vue +22 -0
- package/src/components/ui/number-field/NumberFieldInput.vue +16 -0
- package/src/components/ui/pagination/Pagination.vue +26 -0
- package/src/components/ui/pagination/PaginationContent.vue +22 -0
- package/src/components/ui/pagination/PaginationEllipsis.vue +25 -0
- package/src/components/ui/pagination/PaginationFirst.vue +33 -0
- package/src/components/ui/pagination/PaginationItem.vue +34 -0
- package/src/components/ui/pagination/PaginationLast.vue +33 -0
- package/src/components/ui/pagination/PaginationNext.vue +33 -0
- package/src/components/ui/pagination/PaginationPrevious.vue +33 -0
- package/src/components/ui/pin-input/PinInput.vue +26 -0
- package/src/components/ui/pin-input/PinInputGroup.vue +21 -0
- package/src/components/ui/pin-input/PinInputSeparator.vue +19 -0
- package/src/components/ui/pin-input/PinInputSlot.vue +21 -0
- package/src/components/ui/popover/Popover.vue +19 -0
- package/src/components/ui/popover/PopoverAnchor.vue +15 -0
- package/src/components/ui/popover/PopoverContent.vue +45 -0
- package/src/components/ui/popover/PopoverTrigger.vue +15 -0
- package/src/components/ui/progress/Progress.vue +9 -12
- package/src/components/ui/radio-group/RadioGroup.vue +25 -0
- package/src/components/ui/radio-group/RadioGroupItem.vue +40 -0
- package/src/components/ui/range-calendar/RangeCalendar.vue +62 -0
- package/src/components/ui/range-calendar/RangeCalendarCell.vue +23 -0
- package/src/components/ui/range-calendar/RangeCalendarCellTrigger.vue +41 -0
- package/src/components/ui/range-calendar/RangeCalendarGrid.vue +23 -0
- package/src/components/ui/range-calendar/RangeCalendarGridBody.vue +15 -0
- package/src/components/ui/range-calendar/RangeCalendarGridHead.vue +15 -0
- package/src/components/ui/range-calendar/RangeCalendarGridRow.vue +22 -0
- package/src/components/ui/range-calendar/RangeCalendarHeadCell.vue +23 -0
- package/src/components/ui/range-calendar/RangeCalendarHeader.vue +23 -0
- package/src/components/ui/range-calendar/RangeCalendarHeading.vue +30 -0
- package/src/components/ui/range-calendar/RangeCalendarNextButton.vue +32 -0
- package/src/components/ui/range-calendar/RangeCalendarPrevButton.vue +32 -0
- package/src/components/ui/resizable/ResizableHandle.vue +30 -0
- package/src/components/ui/resizable/ResizablePanel.vue +21 -0
- package/src/components/ui/resizable/ResizablePanelGroup.vue +25 -0
- package/src/components/ui/scroll-area/ScrollArea.vue +2 -2
- package/src/components/ui/scroll-area/ScrollBar.vue +22 -16
- package/src/components/ui/select/SelectContent.vue +27 -18
- package/src/components/ui/select/SelectItem.vue +3 -3
- package/src/components/ui/select/SelectLabel.vue +1 -1
- package/src/components/ui/select/SelectScrollDownButton.vue +2 -2
- package/src/components/ui/select/SelectScrollUpButton.vue +2 -2
- package/src/components/ui/select/SelectSeparator.vue +1 -1
- package/src/components/ui/select/SelectTrigger.vue +2 -2
- package/src/components/ui/separator/Separator.vue +1 -1
- package/src/components/ui/sheet/SheetContent.vue +31 -28
- package/src/components/ui/sheet/SheetDescription.vue +1 -1
- package/src/components/ui/sheet/SheetFooter.vue +1 -1
- package/src/components/ui/sheet/SheetHeader.vue +1 -1
- package/src/components/ui/sheet/SheetOverlay.vue +1 -1
- package/src/components/ui/sheet/SheetTitle.vue +1 -1
- package/src/components/ui/sidebar/Sidebar.vue +16 -16
- package/src/components/ui/sidebar/SidebarContent.vue +1 -1
- package/src/components/ui/sidebar/SidebarFooter.vue +1 -1
- package/src/components/ui/sidebar/SidebarGroup.vue +1 -1
- package/src/components/ui/sidebar/SidebarGroupAction.vue +3 -3
- package/src/components/ui/sidebar/SidebarGroupContent.vue +1 -1
- package/src/components/ui/sidebar/SidebarGroupLabel.vue +2 -2
- package/src/components/ui/sidebar/SidebarHeader.vue +1 -1
- package/src/components/ui/sidebar/SidebarInput.vue +1 -1
- package/src/components/ui/sidebar/SidebarInset.vue +2 -2
- package/src/components/ui/sidebar/SidebarMenu.vue +1 -1
- package/src/components/ui/sidebar/SidebarMenuAction.vue +7 -7
- package/src/components/ui/sidebar/SidebarMenuBadge.vue +6 -6
- package/src/components/ui/sidebar/SidebarMenuItem.vue +1 -1
- package/src/components/ui/sidebar/SidebarMenuSkeleton.vue +3 -3
- package/src/components/ui/sidebar/SidebarMenuSub.vue +2 -2
- package/src/components/ui/sidebar/SidebarMenuSubButton.vue +5 -5
- package/src/components/ui/sidebar/SidebarMenuSubItem.vue +1 -1
- package/src/components/ui/sidebar/SidebarProvider.vue +1 -1
- package/src/components/ui/sidebar/SidebarRail.vue +6 -6
- package/src/components/ui/sidebar/SidebarSeparator.vue +1 -1
- package/src/components/ui/sidebar/SidebarTrigger.vue +2 -2
- package/src/components/ui/skeleton/Skeleton.vue +1 -1
- package/src/components/ui/slider/Slider.vue +43 -0
- package/src/components/ui/sonner/Sonner.vue +7 -7
- package/src/components/ui/spinner/Spinner.vue +17 -0
- package/src/components/ui/stepper/Stepper.vue +27 -0
- package/src/components/ui/stepper/StepperDescription.vue +19 -0
- package/src/components/ui/stepper/StepperIndicator.vue +32 -0
- package/src/components/ui/stepper/StepperItem.vue +23 -0
- package/src/components/ui/stepper/StepperSeparator.vue +27 -0
- package/src/components/ui/stepper/StepperTitle.vue +19 -0
- package/src/components/ui/stepper/StepperTrigger.vue +22 -0
- package/src/components/ui/switch/Switch.vue +2 -2
- package/src/components/ui/table/Table.vue +12 -6
- package/src/components/ui/table/TableBody.vue +1 -1
- package/src/components/ui/table/TableCaption.vue +1 -1
- package/src/components/ui/table/TableCell.vue +1 -1
- package/src/components/ui/table/TableEmpty.vue +17 -14
- package/src/components/ui/table/TableFooter.vue +1 -1
- package/src/components/ui/table/TableHead.vue +1 -1
- package/src/components/ui/table/TableHeader.vue +1 -1
- package/src/components/ui/table/TableRow.vue +1 -1
- package/src/components/ui/tabs/Tabs.vue +1 -1
- package/src/components/ui/tabs/TabsContent.vue +1 -1
- package/src/components/ui/tabs/TabsList.vue +1 -1
- package/src/components/ui/tabs/TabsTrigger.vue +1 -1
- package/src/components/ui/tags-input/TagsInput.vue +26 -0
- package/src/components/ui/tags-input/TagsInputInput.vue +17 -0
- package/src/components/ui/tags-input/TagsInputItem.vue +20 -0
- package/src/components/ui/tags-input/TagsInputItemDelete.vue +22 -0
- package/src/components/ui/tags-input/TagsInputItemText.vue +19 -0
- package/src/components/ui/textarea/Textarea.vue +1 -1
- package/src/components/ui/toggle/Toggle.vue +35 -0
- package/src/components/ui/toggle-group/ToggleGroup.vue +49 -0
- package/src/components/ui/toggle-group/ToggleGroupItem.vue +46 -0
- package/src/components/ui/tooltip/TooltipContent.vue +2 -2
- package/dist/index.d.ts +0 -23
- package/dist/src/App.vue.d.ts +0 -2
- package/dist/src/components/HelloWorld.vue.d.ts +0 -5
- package/dist/src/components/NS/cards/NSBackupCard.vue.d.ts +0 -51
- package/dist/src/components/NS/cards/NSSystemInfoCard.vue.d.ts +0 -58
- package/dist/src/components/NS/cards/NSSystemdServiceCard.vue.d.ts +0 -47
- package/dist/src/components/NS/cards/index.d.ts +0 -3
- package/dist/src/components/NS/checkbox/NSCheckbox.vue.d.ts +0 -37
- package/dist/src/components/NS/checkbox/index.d.ts +0 -1
- package/dist/src/components/NS/data-table/NSDataTable.vue.d.ts +0 -98
- package/dist/src/components/NS/data-table/index.d.ts +0 -1
- package/dist/src/components/NS/empty-state/NSEmptyState.vue.d.ts +0 -45
- package/dist/src/components/NS/empty-state/index.d.ts +0 -1
- package/dist/src/components/NS/index.d.ts +0 -35
- package/dist/src/components/NS/inline-notification/NSInlineNotification.vue.d.ts +0 -44
- package/dist/src/components/NS/inline-notification/index.d.ts +0 -1
- package/dist/src/components/NS/lottie-animation/NSLottieAnimation.vue.d.ts +0 -75
- package/dist/src/components/NS/lottie-animation/index.d.ts +0 -1
- package/dist/src/components/NS/modal/NSModal.vue.d.ts +0 -56
- package/dist/src/components/NS/modal/NSModalTrigger.vue.d.ts +0 -64
- package/dist/src/components/NS/modal/index.d.ts +0 -2
- package/dist/src/components/NS/pagination/NSPagination.vue.d.ts +0 -36
- package/dist/src/components/NS/pagination/index.d.ts +0 -1
- package/dist/src/components/NS/progress/NSProgress.vue.d.ts +0 -37
- package/dist/src/components/NS/progress/NSProgressBar.vue.d.ts +0 -39
- package/dist/src/components/NS/progress/index.d.ts +0 -2
- package/dist/src/components/NS/slider/NSByteSlider.vue.d.ts +0 -50
- package/dist/src/components/NS/slider/NSSlider.vue.d.ts +0 -49
- package/dist/src/components/NS/slider/index.d.ts +0 -2
- package/dist/src/components/NS/tag/NSTag.vue.d.ts +0 -41
- package/dist/src/components/NS/tag/index.d.ts +0 -1
- package/dist/src/components/NS/text-input/NSTextInput.vue.d.ts +0 -67
- package/dist/src/components/NS/text-input/index.d.ts +0 -1
- package/dist/src/components/NS/toast-notification/NSToastNotification.vue.d.ts +0 -44
- package/dist/src/components/NS/toast-notification/index.d.ts +0 -1
- package/dist/src/components/NS/toggle/NSToggle.vue.d.ts +0 -51
- package/dist/src/components/NS/toggle/index.d.ts +0 -1
- package/dist/src/components/NS/wizard/NSWizard.vue.d.ts +0 -86
- package/dist/src/components/NS/wizard/index.d.ts +0 -1
- package/dist/src/components/ui/badge/Badge.vue.d.ts +0 -24
- package/dist/src/components/ui/badge/index.d.ts +0 -6
- package/dist/src/components/ui/button/Button.vue.d.ts +0 -27
- package/dist/src/components/ui/button/index.d.ts +0 -7
- package/dist/src/components/ui/card/Card.vue.d.ts +0 -21
- package/dist/src/components/ui/card/CardAction.vue.d.ts +0 -21
- package/dist/src/components/ui/card/CardContent.vue.d.ts +0 -21
- package/dist/src/components/ui/card/CardDescription.vue.d.ts +0 -21
- package/dist/src/components/ui/card/CardFooter.vue.d.ts +0 -21
- package/dist/src/components/ui/card/CardHeader.vue.d.ts +0 -21
- package/dist/src/components/ui/card/CardTitle.vue.d.ts +0 -21
- package/dist/src/components/ui/card/index.d.ts +0 -7
- package/dist/src/components/ui/checkbox/NsCheckbox.vue.d.ts +0 -49
- package/dist/src/components/ui/checkbox/index.d.ts +0 -11
- package/dist/src/components/ui/dialog/Dialog.vue.d.ts +0 -28
- package/dist/src/components/ui/dialog/index.d.ts +0 -1
- package/dist/src/components/ui/empty-state/NsEmptyState.vue.d.ts +0 -45
- package/dist/src/components/ui/empty-state/index.d.ts +0 -11
- package/dist/src/components/ui/inline-notification/NsInlineNotification.vue.d.ts +0 -45
- package/dist/src/components/ui/inline-notification/index.d.ts +0 -6
- package/dist/src/components/ui/input/Input.vue.d.ts +0 -12
- package/dist/src/components/ui/input/index.d.ts +0 -1
- package/dist/src/components/ui/input-group/InputGroup.vue.d.ts +0 -21
- package/dist/src/components/ui/input-group/InputGroupAddon.vue.d.ts +0 -25
- package/dist/src/components/ui/input-group/InputGroupButton.vue.d.ts +0 -22
- package/dist/src/components/ui/input-group/InputGroupInput.vue.d.ts +0 -6
- package/dist/src/components/ui/input-group/InputGroupText.vue.d.ts +0 -21
- package/dist/src/components/ui/input-group/InputGroupTextarea.vue.d.ts +0 -6
- package/dist/src/components/ui/input-group/index.d.ts +0 -22
- package/dist/src/components/ui/item/Item.vue.d.ts +0 -27
- package/dist/src/components/ui/item/ItemActions.vue.d.ts +0 -21
- package/dist/src/components/ui/item/ItemContent.vue.d.ts +0 -21
- package/dist/src/components/ui/item/ItemDescription.vue.d.ts +0 -21
- package/dist/src/components/ui/item/ItemFooter.vue.d.ts +0 -21
- package/dist/src/components/ui/item/ItemGroup.vue.d.ts +0 -21
- package/dist/src/components/ui/item/ItemHeader.vue.d.ts +0 -21
- package/dist/src/components/ui/item/ItemMedia.vue.d.ts +0 -23
- package/dist/src/components/ui/item/ItemSeparator.vue.d.ts +0 -7
- package/dist/src/components/ui/item/ItemTitle.vue.d.ts +0 -21
- package/dist/src/components/ui/item/index.d.ts +0 -20
- package/dist/src/components/ui/label/Label.vue.d.ts +0 -22
- package/dist/src/components/ui/label/index.d.ts +0 -1
- package/dist/src/components/ui/progress/Progress.vue.d.ts +0 -9
- package/dist/src/components/ui/progress/index.d.ts +0 -1
- package/dist/src/components/ui/scroll-area/ScrollArea.vue.d.ts +0 -22
- package/dist/src/components/ui/scroll-area/ScrollBar.vue.d.ts +0 -9
- package/dist/src/components/ui/scroll-area/index.d.ts +0 -2
- package/dist/src/components/ui/select/Select.vue.d.ts +0 -28
- package/dist/src/components/ui/select/SelectContent.vue.d.ts +0 -32
- package/dist/src/components/ui/select/SelectGroup.vue.d.ts +0 -18
- package/dist/src/components/ui/select/SelectItem.vue.d.ts +0 -23
- package/dist/src/components/ui/select/SelectItemText.vue.d.ts +0 -18
- package/dist/src/components/ui/select/SelectLabel.vue.d.ts +0 -22
- package/dist/src/components/ui/select/SelectScrollDownButton.vue.d.ts +0 -22
- package/dist/src/components/ui/select/SelectScrollUpButton.vue.d.ts +0 -22
- package/dist/src/components/ui/select/SelectSeparator.vue.d.ts +0 -7
- package/dist/src/components/ui/select/SelectTrigger.vue.d.ts +0 -25
- package/dist/src/components/ui/select/SelectValue.vue.d.ts +0 -18
- package/dist/src/components/ui/select/index.d.ts +0 -11
- package/dist/src/components/ui/separator/Separator.vue.d.ts +0 -10
- package/dist/src/components/ui/separator/index.d.ts +0 -1
- package/dist/src/components/ui/sheet/Sheet.vue.d.ts +0 -25
- package/dist/src/components/ui/sheet/SheetClose.vue.d.ts +0 -18
- package/dist/src/components/ui/sheet/SheetContent.vue.d.ts +0 -39
- package/dist/src/components/ui/sheet/SheetDescription.vue.d.ts +0 -22
- package/dist/src/components/ui/sheet/SheetFooter.vue.d.ts +0 -21
- package/dist/src/components/ui/sheet/SheetHeader.vue.d.ts +0 -21
- package/dist/src/components/ui/sheet/SheetOverlay.vue.d.ts +0 -22
- package/dist/src/components/ui/sheet/SheetTitle.vue.d.ts +0 -22
- package/dist/src/components/ui/sheet/SheetTrigger.vue.d.ts +0 -18
- package/dist/src/components/ui/sheet/index.d.ts +0 -8
- package/dist/src/components/ui/sidebar/Sidebar.vue.d.ts +0 -24
- package/dist/src/components/ui/sidebar/SidebarContent.vue.d.ts +0 -21
- package/dist/src/components/ui/sidebar/SidebarFooter.vue.d.ts +0 -21
- package/dist/src/components/ui/sidebar/SidebarGroup.vue.d.ts +0 -21
- package/dist/src/components/ui/sidebar/SidebarGroupAction.vue.d.ts +0 -22
- package/dist/src/components/ui/sidebar/SidebarGroupContent.vue.d.ts +0 -21
- package/dist/src/components/ui/sidebar/SidebarGroupLabel.vue.d.ts +0 -22
- package/dist/src/components/ui/sidebar/SidebarHeader.vue.d.ts +0 -21
- package/dist/src/components/ui/sidebar/SidebarInput.vue.d.ts +0 -21
- package/dist/src/components/ui/sidebar/SidebarInset.vue.d.ts +0 -21
- package/dist/src/components/ui/sidebar/SidebarMenu.vue.d.ts +0 -21
- package/dist/src/components/ui/sidebar/SidebarMenuAction.vue.d.ts +0 -25
- package/dist/src/components/ui/sidebar/SidebarMenuBadge.vue.d.ts +0 -21
- package/dist/src/components/ui/sidebar/SidebarMenuButton.vue.d.ts +0 -27
- package/dist/src/components/ui/sidebar/SidebarMenuButtonChild.vue.d.ts +0 -30
- package/dist/src/components/ui/sidebar/SidebarMenuItem.vue.d.ts +0 -21
- package/dist/src/components/ui/sidebar/SidebarMenuSkeleton.vue.d.ts +0 -7
- package/dist/src/components/ui/sidebar/SidebarMenuSub.vue.d.ts +0 -21
- package/dist/src/components/ui/sidebar/SidebarMenuSubButton.vue.d.ts +0 -27
- package/dist/src/components/ui/sidebar/SidebarMenuSubItem.vue.d.ts +0 -21
- package/dist/src/components/ui/sidebar/SidebarProvider.vue.d.ts +0 -30
- package/dist/src/components/ui/sidebar/SidebarRail.vue.d.ts +0 -21
- package/dist/src/components/ui/sidebar/SidebarSeparator.vue.d.ts +0 -21
- package/dist/src/components/ui/sidebar/SidebarTrigger.vue.d.ts +0 -6
- package/dist/src/components/ui/sidebar/index.d.ts +0 -37
- package/dist/src/components/ui/sidebar/utils.d.ts +0 -56
- package/dist/src/components/ui/skeleton/Skeleton.vue.d.ts +0 -6
- package/dist/src/components/ui/skeleton/index.d.ts +0 -1
- package/dist/src/components/ui/sonner/Sonner.vue.d.ts +0 -3
- package/dist/src/components/ui/sonner/index.d.ts +0 -1
- package/dist/src/components/ui/switch/Switch.vue.d.ts +0 -28
- package/dist/src/components/ui/switch/index.d.ts +0 -1
- package/dist/src/components/ui/table/Table.vue.d.ts +0 -21
- package/dist/src/components/ui/table/TableBody.vue.d.ts +0 -21
- package/dist/src/components/ui/table/TableCaption.vue.d.ts +0 -21
- package/dist/src/components/ui/table/TableCell.vue.d.ts +0 -21
- package/dist/src/components/ui/table/TableEmpty.vue.d.ts +0 -24
- package/dist/src/components/ui/table/TableFooter.vue.d.ts +0 -21
- package/dist/src/components/ui/table/TableHead.vue.d.ts +0 -21
- package/dist/src/components/ui/table/TableHeader.vue.d.ts +0 -21
- package/dist/src/components/ui/table/TableRow.vue.d.ts +0 -21
- package/dist/src/components/ui/table/index.d.ts +0 -9
- package/dist/src/components/ui/table/utils.d.ts +0 -3
- package/dist/src/components/ui/tabs/Tabs.vue.d.ts +0 -28
- package/dist/src/components/ui/tabs/TabsContent.vue.d.ts +0 -22
- package/dist/src/components/ui/tabs/TabsList.vue.d.ts +0 -22
- package/dist/src/components/ui/tabs/TabsTrigger.vue.d.ts +0 -22
- package/dist/src/components/ui/tabs/index.d.ts +0 -4
- package/dist/src/components/ui/tag/NsTag.vue.d.ts +0 -42
- package/dist/src/components/ui/tag/index.d.ts +0 -8
- package/dist/src/components/ui/text-input/NsTextInput.vue.d.ts +0 -79
- package/dist/src/components/ui/text-input/index.d.ts +0 -15
- package/dist/src/components/ui/textarea/Textarea.vue.d.ts +0 -12
- package/dist/src/components/ui/textarea/index.d.ts +0 -1
- package/dist/src/components/ui/toggle/NsToggle.vue.d.ts +0 -54
- package/dist/src/components/ui/toggle/index.d.ts +0 -15
- package/dist/src/components/ui/tooltip/Tooltip.vue.d.ts +0 -24
- package/dist/src/components/ui/tooltip/TooltipContent.vue.d.ts +0 -30
- package/dist/src/components/ui/tooltip/TooltipProvider.vue.d.ts +0 -20
- package/dist/src/components/ui/tooltip/TooltipTrigger.vue.d.ts +0 -18
- package/dist/src/components/ui/tooltip/index.d.ts +0 -4
- package/dist/src/composables/index.d.ts +0 -8
- package/dist/src/composables/useDateTimeService.d.ts +0 -10
- package/dist/src/composables/useFilterService.d.ts +0 -8
- package/dist/src/composables/useIconService.d.ts +0 -153
- package/dist/src/composables/usePageTitleService.d.ts +0 -3
- package/dist/src/composables/useQueryParamService.d.ts +0 -13
- package/dist/src/composables/useStorageService.d.ts +0 -5
- package/dist/src/composables/useTaskService.d.ts +0 -18
- package/dist/src/composables/useUtilService.d.ts +0 -27
- package/dist/src/lib/utils.d.ts +0 -2
- package/dist/src/main.d.ts +0 -0
|
@@ -121,48 +121,47 @@ const handleClose = () => {
|
|
|
121
121
|
<!-- Header -->
|
|
122
122
|
<div
|
|
123
123
|
v-if="title || $slots.header || showCloseButton"
|
|
124
|
-
:class="cn(
|
|
125
|
-
'flex items-center justify-between',
|
|
124
|
+
:class="cn( 'flex items-center justify-between',
|
|
126
125
|
isFullscreen ? 'border-b p-6' : 'mb-4'
|
|
127
126
|
)"
|
|
128
127
|
>
|
|
129
128
|
<!-- Title and description -->
|
|
130
|
-
<div class="space-y-1">
|
|
129
|
+
<div class="tw:space-y-1">
|
|
131
130
|
<DialogTitle
|
|
132
131
|
v-if="title || $slots.title"
|
|
133
|
-
class="text-lg font-semibold leading-none tracking-tight"
|
|
132
|
+
class="tw:text-lg tw:font-semibold tw:leading-none tw:tracking-tight"
|
|
134
133
|
>
|
|
135
134
|
<slot name="title">{{ title }}</slot>
|
|
136
135
|
</DialogTitle>
|
|
137
136
|
<DialogDescription
|
|
138
137
|
v-if="description || $slots.description"
|
|
139
|
-
class="text-sm text-muted-foreground"
|
|
138
|
+
class="tw:text-sm tw:text-muted-foreground"
|
|
140
139
|
>
|
|
141
140
|
<slot name="description">{{ description }}</slot>
|
|
142
141
|
</DialogDescription>
|
|
143
142
|
</div>
|
|
144
143
|
|
|
145
144
|
<!-- Close button -->
|
|
146
|
-
<div class="flex items-center gap-2">
|
|
145
|
+
<div class="tw:flex tw:items-center tw:gap-2">
|
|
147
146
|
<!-- Fullscreen toggle -->
|
|
148
147
|
<button
|
|
149
148
|
v-if="!fullscreen"
|
|
150
149
|
type="button"
|
|
151
|
-
class="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"
|
|
150
|
+
class="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"
|
|
152
151
|
:title="isFullscreen ? 'Exit fullscreen' : 'Enter fullscreen'"
|
|
153
152
|
@click="isFullscreen = !isFullscreen"
|
|
154
153
|
>
|
|
155
|
-
<Maximize2 v-if="!isFullscreen" class="h-4 w-4" />
|
|
156
|
-
<Minimize2 v-else class="h-4 w-4" />
|
|
154
|
+
<Maximize2 v-if="!isFullscreen" class="tw:h-4 tw:w-4" />
|
|
155
|
+
<Minimize2 v-else class="tw:h-4 tw:w-4" />
|
|
157
156
|
</button>
|
|
158
157
|
|
|
159
158
|
<!-- Close button -->
|
|
160
159
|
<DialogClose
|
|
161
160
|
v-if="showCloseButton && !persistent"
|
|
162
|
-
class="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"
|
|
161
|
+
class="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"
|
|
163
162
|
>
|
|
164
|
-
<X class="h-4 w-4" />
|
|
165
|
-
<span class="sr-only">Close</span>
|
|
163
|
+
<X class="tw:h-4 tw:w-4" />
|
|
164
|
+
<span class="tw:sr-only">Close</span>
|
|
166
165
|
</DialogClose>
|
|
167
166
|
</div>
|
|
168
167
|
</div>
|
|
@@ -181,8 +180,7 @@ const handleClose = () => {
|
|
|
181
180
|
<!-- Default actions -->
|
|
182
181
|
<div
|
|
183
182
|
v-if="$slots.actions"
|
|
184
|
-
:class="cn(
|
|
185
|
-
'flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2',
|
|
183
|
+
:class="cn( 'flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2',
|
|
186
184
|
isFullscreen ? 'border-t p-6 mt-auto' : 'mt-6'
|
|
187
185
|
)"
|
|
188
186
|
>
|
|
@@ -59,7 +59,7 @@ const triggerRef = ref<HTMLElement>()
|
|
|
59
59
|
v-if="!$slots.trigger"
|
|
60
60
|
ref="triggerRef"
|
|
61
61
|
@click="isOpen = !isOpen"
|
|
62
|
-
class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90"
|
|
62
|
+
class="tw:inline-flex tw:items-center tw:justify-center tw:rounded-md tw:text-sm tw:font-medium tw:transition-colors focus-visible:tw:outline-none focus-visible:tw:ring-2 focus-visible:tw:ring-ring focus-visible:tw:ring-offset-2 disabled:tw:pointer-events-none disabled:tw:opacity-50 tw:bg-primary tw:text-primary-foreground hover:tw:bg-primary/90"
|
|
63
63
|
>
|
|
64
64
|
Open Modal
|
|
65
65
|
</button>
|
|
@@ -170,13 +170,13 @@ const handleJumperChange = (event: Event) => {
|
|
|
170
170
|
<template>
|
|
171
171
|
<div :class="containerClasses">
|
|
172
172
|
<!-- Total items display -->
|
|
173
|
-
<div v-if="showTotal && totalItems" class="text-sm text-muted-foreground">
|
|
173
|
+
<div v-if="showTotal && totalItems" class="tw:text-sm tw:text-muted-foreground">
|
|
174
174
|
Total: {{ totalItems }} items
|
|
175
175
|
</div>
|
|
176
176
|
|
|
177
177
|
<!-- Page size changer -->
|
|
178
|
-
<div v-if="showSizeChanger" class="flex items-center gap-2">
|
|
179
|
-
<span class="text-sm text-muted-foreground">Items per page:</span>
|
|
178
|
+
<div v-if="showSizeChanger" class="tw:flex tw:items-center tw:gap-2">
|
|
179
|
+
<span class="tw:text-sm tw:text-muted-foreground">Items per page:</span>
|
|
180
180
|
<select
|
|
181
181
|
v-model="itemsPerPageInternal"
|
|
182
182
|
:disabled="disabled"
|
|
@@ -189,7 +189,7 @@ const handleJumperChange = (event: Event) => {
|
|
|
189
189
|
</div>
|
|
190
190
|
|
|
191
191
|
<!-- Pagination buttons -->
|
|
192
|
-
<div class="flex items-center gap-1">
|
|
192
|
+
<div class="tw:flex tw:items-center tw:gap-1">
|
|
193
193
|
<!-- Previous button -->
|
|
194
194
|
<button
|
|
195
195
|
:class="buttonClasses"
|
|
@@ -197,7 +197,7 @@ const handleJumperChange = (event: Event) => {
|
|
|
197
197
|
@click="handlePrev"
|
|
198
198
|
aria-label="Previous page"
|
|
199
199
|
>
|
|
200
|
-
<ChevronLeft class="h-4 w-4" />
|
|
200
|
+
<ChevronLeft class="tw:h-4 tw:w-4" />
|
|
201
201
|
</button>
|
|
202
202
|
|
|
203
203
|
<!-- Page numbers -->
|
|
@@ -212,9 +212,9 @@ const handleJumperChange = (event: Event) => {
|
|
|
212
212
|
</button>
|
|
213
213
|
<span
|
|
214
214
|
v-else
|
|
215
|
-
class="flex items-center justify-center h-8 w-8 text-sm text-muted-foreground"
|
|
215
|
+
class="tw:flex tw:items-center tw:justify-center tw:h-8 tw:w-8 tw:text-sm tw:text-muted-foreground"
|
|
216
216
|
>
|
|
217
|
-
<MoreHorizontal class="h-4 w-4" />
|
|
217
|
+
<MoreHorizontal class="tw:h-4 tw:w-4" />
|
|
218
218
|
</span>
|
|
219
219
|
</template>
|
|
220
220
|
|
|
@@ -225,13 +225,13 @@ const handleJumperChange = (event: Event) => {
|
|
|
225
225
|
@click="handleNext"
|
|
226
226
|
aria-label="Next page"
|
|
227
227
|
>
|
|
228
|
-
<ChevronRight class="h-4 w-4" />
|
|
228
|
+
<ChevronRight class="tw:h-4 tw:w-4" />
|
|
229
229
|
</button>
|
|
230
230
|
</div>
|
|
231
231
|
|
|
232
232
|
<!-- Quick jumper -->
|
|
233
|
-
<div v-if="showQuickJumper" class="flex items-center gap-2">
|
|
234
|
-
<span class="text-sm text-muted-foreground">Go to page:</span>
|
|
233
|
+
<div v-if="showQuickJumper" class="tw:flex tw:items-center tw:gap-2">
|
|
234
|
+
<span class="tw:text-sm tw:text-muted-foreground">Go to page:</span>
|
|
235
235
|
<input
|
|
236
236
|
type="number"
|
|
237
237
|
:min="1"
|
|
@@ -71,9 +71,9 @@ const labelClasses = computed(() => {
|
|
|
71
71
|
</script>
|
|
72
72
|
|
|
73
73
|
<template>
|
|
74
|
-
<div class="space-y-2">
|
|
74
|
+
<div class="tw:space-y-2">
|
|
75
75
|
<!-- Label -->
|
|
76
|
-
<div v-if="showLabel && (label || $slots.label)" class="flex items-center justify-between">
|
|
76
|
+
<div v-if="showLabel && (label || $slots.label)" class="tw:flex tw:items-center tw:justify-between">
|
|
77
77
|
<div :class="labelClasses">
|
|
78
78
|
<slot name="label">{{ label }}</slot>
|
|
79
79
|
</div>
|
|
@@ -94,7 +94,7 @@ const labelClasses = computed(() => {
|
|
|
94
94
|
</div>
|
|
95
95
|
|
|
96
96
|
<!-- Value display -->
|
|
97
|
-
<div v-if="$slots.value" class="text-sm text-muted-foreground">
|
|
97
|
+
<div v-if="$slots.value" class="tw:text-sm tw:text-muted-foreground">
|
|
98
98
|
<slot name="value" :value="value" :percentage="percentage" />
|
|
99
99
|
</div>
|
|
100
100
|
</div>
|
|
@@ -78,9 +78,9 @@ const labelClasses = computed(() => {
|
|
|
78
78
|
</script>
|
|
79
79
|
|
|
80
80
|
<template>
|
|
81
|
-
<div class="space-y-2">
|
|
81
|
+
<div class="tw:space-y-2">
|
|
82
82
|
<!-- Label -->
|
|
83
|
-
<div v-if="showLabel && (label || $slots.label)" class="flex items-center justify-between">
|
|
83
|
+
<div v-if="showLabel && (label || $slots.label)" class="tw:flex tw:items-center tw:justify-between">
|
|
84
84
|
<div :class="labelClasses">
|
|
85
85
|
<slot name="label">{{ label }}</slot>
|
|
86
86
|
</div>
|
|
@@ -101,13 +101,13 @@ const labelClasses = computed(() => {
|
|
|
101
101
|
<!-- Animated shimmer effect -->
|
|
102
102
|
<div
|
|
103
103
|
v-if="animated && !indeterminate"
|
|
104
|
-
class="h-full w-full bg-gradient-to-r from-transparent via-white/20 to-transparent animate-[shimmer_2s_ease-in-out_infinite]"
|
|
104
|
+
class="tw:h-full tw:w-full tw:bg-gradient-to-r tw:from-transparent tw:via-white/20 tw:to-transparent tw:animate-[shimmer_2s_ease-in-out_infinite]"
|
|
105
105
|
/>
|
|
106
106
|
</div>
|
|
107
107
|
</div>
|
|
108
108
|
|
|
109
109
|
<!-- Value display -->
|
|
110
|
-
<div v-if="$slots.value" class="text-sm text-muted-foreground">
|
|
110
|
+
<div v-if="$slots.value" class="tw:text-sm tw:text-muted-foreground">
|
|
111
111
|
<slot name="value" :value="value" :percentage="percentage" />
|
|
112
112
|
</div>
|
|
113
113
|
</div>
|
|
@@ -105,7 +105,7 @@ const decimals = computed(() => {
|
|
|
105
105
|
<!-- Label -->
|
|
106
106
|
<div
|
|
107
107
|
v-if="showLabel && (label || $slots.label)"
|
|
108
|
-
class="flex items-center justify-between mb-2"
|
|
108
|
+
class="tw:flex tw:items-center tw:justify-between tw:mb-2"
|
|
109
109
|
>
|
|
110
110
|
<div :class="labelClasses">
|
|
111
111
|
<slot name="label">{{ label }}</slot>
|
|
@@ -131,13 +131,13 @@ const decimals = computed(() => {
|
|
|
131
131
|
</SliderRoot>
|
|
132
132
|
|
|
133
133
|
<!-- Scale markers for byte units -->
|
|
134
|
-
<div class="relative mt-2 flex justify-between text-xs text-muted-foreground">
|
|
134
|
+
<div class="tw:relative tw:mt-2 tw:flex tw:justify-between tw:text-xs tw:text-muted-foreground">
|
|
135
135
|
<span v-if="showByteUnits">{{ formatBytes(min) }}</span>
|
|
136
136
|
<span v-if="showByteUnits">{{ formatBytes(max) }}</span>
|
|
137
137
|
</div>
|
|
138
138
|
|
|
139
139
|
<!-- Custom value display -->
|
|
140
|
-
<div v-if="$slots.value" class="mt-2">
|
|
140
|
+
<div v-if="$slots.value" class="tw:mt-2">
|
|
141
141
|
<slot name="value" :value="value" :display-value="displayValue" />
|
|
142
142
|
</div>
|
|
143
143
|
</div>
|
|
@@ -104,7 +104,7 @@ const valueClasses = computed(() => {
|
|
|
104
104
|
<!-- Label -->
|
|
105
105
|
<div
|
|
106
106
|
v-if="showLabel && (label || $slots.label)"
|
|
107
|
-
class="flex items-center justify-between mb-2"
|
|
107
|
+
class="tw:flex tw:items-center tw:justify-between tw:mb-2"
|
|
108
108
|
>
|
|
109
109
|
<div :class="labelClasses">
|
|
110
110
|
<slot name="label">{{ label }}</slot>
|
|
@@ -135,7 +135,7 @@ const valueClasses = computed(() => {
|
|
|
135
135
|
</SliderRoot>
|
|
136
136
|
|
|
137
137
|
<!-- Custom value display -->
|
|
138
|
-
<div v-if="$slots.value" class="mt-2">
|
|
138
|
+
<div v-if="$slots.value" class="tw:mt-2">
|
|
139
139
|
<slot name="value" :value="value" :display-value="displayValue" />
|
|
140
140
|
</div>
|
|
141
141
|
</div>
|
|
@@ -99,21 +99,21 @@ const handleKeydown = (event: KeyboardEvent) => {
|
|
|
99
99
|
tabindex="0"
|
|
100
100
|
>
|
|
101
101
|
<!-- Icon slot/component -->
|
|
102
|
-
<div v-if="icon && !isFilter" class="flex items-center justify-center">
|
|
102
|
+
<div v-if="icon && !isFilter" class="tw:flex tw:items-center tw:justify-center">
|
|
103
103
|
<component
|
|
104
104
|
v-if="typeof icon === 'object'"
|
|
105
105
|
:is="icon"
|
|
106
|
-
class="h-3 w-3"
|
|
106
|
+
class="tw:h-3 tw:w-3"
|
|
107
107
|
/>
|
|
108
108
|
<div
|
|
109
109
|
v-else-if="typeof icon === 'string'"
|
|
110
110
|
v-html="icon"
|
|
111
|
-
class="h-3 w-3"
|
|
111
|
+
class="tw:h-3 tw:w-3"
|
|
112
112
|
/>
|
|
113
113
|
</div>
|
|
114
114
|
|
|
115
115
|
<!-- Label content -->
|
|
116
|
-
<span class="truncate max-w-[200px]">
|
|
116
|
+
<span class="tw:truncate tw:max-w-[200px]">
|
|
117
117
|
<slot>{{ label }}</slot>
|
|
118
118
|
</span>
|
|
119
119
|
|
|
@@ -121,8 +121,7 @@ const handleKeydown = (event: KeyboardEvent) => {
|
|
|
121
121
|
<button
|
|
122
122
|
v-if="isFilter"
|
|
123
123
|
type="button"
|
|
124
|
-
:class="cn(
|
|
125
|
-
'flex items-center justify-center rounded-full hover:bg-black/10 dark:hover:bg-white/10 transition-colors',
|
|
124
|
+
:class="cn( 'flex items-center justify-center rounded-full hover:bg-black/10 dark:hover:bg-white/10 transition-colors',
|
|
126
125
|
'ml-1 -mr-1 h-4 w-4 p-0',
|
|
127
126
|
{
|
|
128
127
|
'opacity-50 cursor-not-allowed': disabled,
|
|
@@ -133,7 +132,7 @@ const handleKeydown = (event: KeyboardEvent) => {
|
|
|
133
132
|
:title="clearAriaLabel"
|
|
134
133
|
@click="handleRemove"
|
|
135
134
|
>
|
|
136
|
-
<X class="h-3 w-3" />
|
|
135
|
+
<X class="tw:h-3 tw:w-3" />
|
|
137
136
|
</button>
|
|
138
137
|
</component>
|
|
139
138
|
</template>
|
|
@@ -129,8 +129,7 @@ defineExpose({
|
|
|
129
129
|
<label
|
|
130
130
|
v-if="label || $slots.label"
|
|
131
131
|
:for="inputId"
|
|
132
|
-
:class="cn(
|
|
133
|
-
'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70',
|
|
132
|
+
:class="cn( 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70',
|
|
134
133
|
{
|
|
135
134
|
'text-destructive': errorMessage,
|
|
136
135
|
'text-orange-600': warningMessage,
|
|
@@ -142,11 +141,10 @@ defineExpose({
|
|
|
142
141
|
<slot name="label">{{ label }}</slot>
|
|
143
142
|
</label>
|
|
144
143
|
|
|
145
|
-
<div class="relative">
|
|
144
|
+
<div class="tw:relative">
|
|
146
145
|
<span
|
|
147
146
|
v-if="prefix"
|
|
148
|
-
:class="cn(
|
|
149
|
-
'absolute left-3 top-1/2 transform -translate-y-1/2 text-sm text-muted-foreground',
|
|
147
|
+
:class="cn( 'absolute left-3 top-1/2 transform -translate-y-1/2 text-sm text-muted-foreground',
|
|
150
148
|
{
|
|
151
149
|
'text-destructive': errorMessage,
|
|
152
150
|
'text-orange-600': warningMessage,
|
|
@@ -161,8 +159,7 @@ defineExpose({
|
|
|
161
159
|
:id="inputId"
|
|
162
160
|
ref="inputRef"
|
|
163
161
|
:type="actualType"
|
|
164
|
-
:class="cn(
|
|
165
|
-
'flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50',
|
|
162
|
+
:class="cn( 'flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50',
|
|
166
163
|
{
|
|
167
164
|
'pl-8': prefix,
|
|
168
165
|
'pr-16': (isPassword && showPasswordToggle) || StatusIcon,
|
|
@@ -189,7 +186,7 @@ defineExpose({
|
|
|
189
186
|
|
|
190
187
|
<div
|
|
191
188
|
v-if="StatusIcon || (isPassword && showPasswordToggle)"
|
|
192
|
-
class="absolute right-0 top-1/2 transform
|
|
189
|
+
class="tw:absolute tw:right-0 tw:top-1/2 tw:transform tw:-translate-y-1/2 tw:flex tw:items-center tw:gap-1 tw:pr-3"
|
|
193
190
|
>
|
|
194
191
|
<component
|
|
195
192
|
v-if="StatusIcon"
|
|
@@ -204,8 +201,7 @@ defineExpose({
|
|
|
204
201
|
<button
|
|
205
202
|
v-if="isPassword && showPasswordToggle"
|
|
206
203
|
type="button"
|
|
207
|
-
:class="cn(
|
|
208
|
-
'text-muted-foreground hover:text-foreground transition-colors',
|
|
204
|
+
:class="cn( 'text-muted-foreground hover:text-foreground transition-colors',
|
|
209
205
|
{
|
|
210
206
|
'pointer-events-none': disabled
|
|
211
207
|
}
|
|
@@ -214,8 +210,8 @@ defineExpose({
|
|
|
214
210
|
@click="togglePasswordVisibility"
|
|
215
211
|
:title="isPasswordVisible ? 'Hide password' : 'Show password'"
|
|
216
212
|
>
|
|
217
|
-
<EyeOff v-if="isPasswordVisible" class="h-4 w-4" />
|
|
218
|
-
<Eye v-else class="h-4 w-4" />
|
|
213
|
+
<EyeOff v-if="isPasswordVisible" class="tw:h-4 tw:w-4" />
|
|
214
|
+
<Eye v-else class="tw:h-4 tw:w-4" />
|
|
219
215
|
</button>
|
|
220
216
|
</div>
|
|
221
217
|
</div>
|
|
@@ -232,7 +228,7 @@ defineExpose({
|
|
|
232
228
|
<component
|
|
233
229
|
v-if="StatusIcon"
|
|
234
230
|
:is="StatusIcon"
|
|
235
|
-
class="h-4 w-4 mt-0.5 flex-shrink-0"
|
|
231
|
+
class="tw:h-4 tw:w-4 tw:mt-0.5 tw:flex-shrink-0"
|
|
236
232
|
/>
|
|
237
233
|
<span>{{ displayMessage }}</span>
|
|
238
234
|
</p>
|
|
@@ -85,24 +85,24 @@ const positionClasses = computed(() => {
|
|
|
85
85
|
<!-- Icon -->
|
|
86
86
|
<component
|
|
87
87
|
:is="NotificationIcon"
|
|
88
|
-
class="h-5 w-5 shrink-0"
|
|
88
|
+
class="tw:h-5 tw:w-5 tw:shrink-0"
|
|
89
89
|
/>
|
|
90
90
|
|
|
91
91
|
<!-- Loading spinner -->
|
|
92
92
|
<Loader2
|
|
93
93
|
v-if="loading"
|
|
94
|
-
class="h-5 w-5 shrink-0 animate-spin"
|
|
94
|
+
class="tw:h-5 tw:w-5 tw:shrink-0 tw:animate-spin"
|
|
95
95
|
/>
|
|
96
96
|
|
|
97
97
|
<!-- Content -->
|
|
98
|
-
<div class="grid gap-1">
|
|
98
|
+
<div class="tw:grid tw:gap-1">
|
|
99
99
|
<!-- Title -->
|
|
100
|
-
<div v-if="title || $slots.title" class="text-sm font-semibold">
|
|
100
|
+
<div v-if="title || $slots.title" class="tw:text-sm tw:font-semibold">
|
|
101
101
|
<slot name="title">{{ title }}</slot>
|
|
102
102
|
</div>
|
|
103
103
|
|
|
104
104
|
<!-- Description -->
|
|
105
|
-
<div v-if="description || $slots.description" class="text-sm opacity-90">
|
|
105
|
+
<div v-if="description || $slots.description" class="tw:text-sm tw:opacity-90">
|
|
106
106
|
<slot name="description">{{ description }}</slot>
|
|
107
107
|
</div>
|
|
108
108
|
|
|
@@ -110,8 +110,7 @@ const positionClasses = computed(() => {
|
|
|
110
110
|
<button
|
|
111
111
|
v-if="actionLabel"
|
|
112
112
|
type="button"
|
|
113
|
-
:class="cn(
|
|
114
|
-
'inline-flex items-center text-sm font-medium underline underline-offset-2 hover:no-underline',
|
|
113
|
+
:class="cn( 'inline-flex items-center text-sm font-medium underline underline-offset-2 hover:no-underline',
|
|
115
114
|
{
|
|
116
115
|
'text-destructive-foreground': variant === 'destructive',
|
|
117
116
|
'text-white': ['warning', 'success', 'info'].includes(variant),
|
|
@@ -129,8 +128,7 @@ const positionClasses = computed(() => {
|
|
|
129
128
|
v-if="showCloseButton"
|
|
130
129
|
type="button"
|
|
131
130
|
:aria-label="closeAriaLabel"
|
|
132
|
-
:class="cn(
|
|
133
|
-
'absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100',
|
|
131
|
+
:class="cn( 'absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100',
|
|
134
132
|
{
|
|
135
133
|
'text-destructive-foreground/50 hover:text-destructive-foreground': variant === 'destructive',
|
|
136
134
|
'text-white/50 hover:text-white': ['warning', 'success', 'info'].includes(variant)
|
|
@@ -138,13 +136,13 @@ const positionClasses = computed(() => {
|
|
|
138
136
|
)"
|
|
139
137
|
@click="emit('close')"
|
|
140
138
|
>
|
|
141
|
-
<X class="h-4 w-4" />
|
|
139
|
+
<X class="tw:h-4 tw:w-4" />
|
|
142
140
|
</button>
|
|
143
141
|
|
|
144
142
|
<!-- Progress bar for auto-dismiss -->
|
|
145
143
|
<div
|
|
146
144
|
v-if="duration > 0"
|
|
147
|
-
class="absolute bottom-0 left-0 h-1 bg-black/20 dark:bg-white/20 animate-[shrink_x_var(--duration)_linear_forwards]"
|
|
145
|
+
class="tw:absolute tw:bottom-0 tw:left-0 tw:h-1 tw:bg-black/20 dark:tw:bg-white/20 tw:animate-[shrink_x_var(--duration)_linear_forwards]"
|
|
148
146
|
:style="{ '--duration': `${duration}ms` }"
|
|
149
147
|
/>
|
|
150
148
|
</div>
|
|
@@ -94,12 +94,11 @@ const thumbClasses = computed(() => {
|
|
|
94
94
|
<SwitchThumb :class="thumbClasses" />
|
|
95
95
|
</SwitchRoot>
|
|
96
96
|
|
|
97
|
-
<div class="grid gap-1.5">
|
|
97
|
+
<div class="tw:grid tw:gap-1.5">
|
|
98
98
|
<label
|
|
99
99
|
v-if="label || $slots.label"
|
|
100
100
|
:for="toggleId"
|
|
101
|
-
:class="cn(
|
|
102
|
-
'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer',
|
|
101
|
+
:class="cn( 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer',
|
|
103
102
|
{
|
|
104
103
|
'sr-only': hideLabel,
|
|
105
104
|
'cursor-not-allowed': disabled,
|
|
@@ -115,8 +114,7 @@ const thumbClasses = computed(() => {
|
|
|
115
114
|
|
|
116
115
|
<div
|
|
117
116
|
v-if="!hideLabel && (leftText || rightText || $slots['left-text'] || $slots['right-text'])"
|
|
118
|
-
:class="cn(
|
|
119
|
-
'flex items-center gap-2 text-xs font-medium',
|
|
117
|
+
:class="cn( 'flex items-center gap-2 text-xs font-medium',
|
|
120
118
|
{
|
|
121
119
|
'text-muted-foreground': !isChecked,
|
|
122
120
|
'text-primary': isChecked,
|
|
@@ -130,8 +128,7 @@ const thumbClasses = computed(() => {
|
|
|
130
128
|
<slot name="left-text">{{ leftText }}</slot>
|
|
131
129
|
</span>
|
|
132
130
|
|
|
133
|
-
<div :class="cn(
|
|
134
|
-
'w-8 h-px bg-current',
|
|
131
|
+
<div :class="cn( 'w-8 h-px bg-current',
|
|
135
132
|
{
|
|
136
133
|
'opacity-20': !isChecked,
|
|
137
134
|
'opacity-100': isChecked
|
|
@@ -145,7 +142,7 @@ const thumbClasses = computed(() => {
|
|
|
145
142
|
|
|
146
143
|
<p
|
|
147
144
|
v-if="description"
|
|
148
|
-
class="text-sm text-muted-foreground"
|
|
145
|
+
class="tw:text-sm tw:text-muted-foreground"
|
|
149
146
|
>
|
|
150
147
|
{{ description }}
|
|
151
148
|
</p>
|
|
@@ -281,14 +281,14 @@ watch(currentStep, (newStep, oldStep) => {
|
|
|
281
281
|
<template>
|
|
282
282
|
<div :class="containerClasses">
|
|
283
283
|
<!-- Progress bar -->
|
|
284
|
-
<div v-if="showProgressBar" class="mb-8">
|
|
285
|
-
<div class="relative h-2 w-full overflow-hidden rounded-full bg-secondary">
|
|
284
|
+
<div v-if="showProgressBar" class="tw:mb-8">
|
|
285
|
+
<div class="tw:relative tw:h-2 tw:w-full tw:overflow-hidden tw:rounded-full tw:bg-secondary">
|
|
286
286
|
<div
|
|
287
|
-
class="h-full w-full bg-primary transition-all duration-300 ease-in-out"
|
|
287
|
+
class="tw:h-full tw:w-full tw:bg-primary tw:transition-all tw:duration-300 tw:ease-in-out"
|
|
288
288
|
:style="{ width: `${progressPercentage}%` }"
|
|
289
289
|
/>
|
|
290
290
|
</div>
|
|
291
|
-
<div class="mt-2 text-sm text-muted-foreground">
|
|
291
|
+
<div class="tw:mt-2 tw:text-sm tw:text-muted-foreground">
|
|
292
292
|
Step {{ currentStep + 1 }} of {{ steps.length }}
|
|
293
293
|
</div>
|
|
294
294
|
</div>
|
|
@@ -303,16 +303,16 @@ watch(currentStep, (newStep, oldStep) => {
|
|
|
303
303
|
@click="goToStep(index)"
|
|
304
304
|
>
|
|
305
305
|
<!-- Step indicator -->
|
|
306
|
-
<div :class="getStepClasses(index)" class="w-8 h-8 text-sm font-medium">
|
|
307
|
-
<Check v-if="getStepState(index) === 'completed'" class="h-4 w-4" />
|
|
308
|
-
<component v-else-if="showStepIcons && step.icon" :is="step.icon" class="h-4 w-4" />
|
|
306
|
+
<div :class="getStepClasses(index)" class="tw:w-8 tw:h-8 tw:text-sm tw:font-medium">
|
|
307
|
+
<Check v-if="getStepState(index) === 'completed'" class="tw:h-4 tw:w-4" />
|
|
308
|
+
<component v-else-if="showStepIcons && step.icon" :is="step.icon" class="tw:h-4 tw:w-4" />
|
|
309
309
|
<span v-else-if="showStepNumbers">{{ index + 1 }}</span>
|
|
310
310
|
</div>
|
|
311
311
|
|
|
312
312
|
<!-- Step info -->
|
|
313
|
-
<div class="text-left">
|
|
314
|
-
<div class="font-medium text-sm">{{ step.title }}</div>
|
|
315
|
-
<div v-if="step.description" class="text-xs text-muted-foreground">
|
|
313
|
+
<div class="tw:text-left">
|
|
314
|
+
<div class="tw:font-medium tw:text-sm">{{ step.title }}</div>
|
|
315
|
+
<div v-if="step.description" class="tw:text-xs tw:text-muted-foreground">
|
|
316
316
|
{{ step.description }}
|
|
317
317
|
</div>
|
|
318
318
|
</div>
|
|
@@ -323,13 +323,13 @@ watch(currentStep, (newStep, oldStep) => {
|
|
|
323
323
|
<Separator
|
|
324
324
|
v-if="!vertical"
|
|
325
325
|
orientation="vertical"
|
|
326
|
-
class="hidden lg:block"
|
|
326
|
+
class="tw:hidden lg:tw:block"
|
|
327
327
|
/>
|
|
328
328
|
|
|
329
329
|
<!-- Content -->
|
|
330
330
|
<div :class="contentClasses">
|
|
331
331
|
<!-- Current step content -->
|
|
332
|
-
<div class="space-y-6">
|
|
332
|
+
<div class="tw:space-y-6">
|
|
333
333
|
<slot
|
|
334
334
|
:name="`step-${currentStepData.id}`"
|
|
335
335
|
:step="currentStepData"
|
|
@@ -344,12 +344,12 @@ watch(currentStep, (newStep, oldStep) => {
|
|
|
344
344
|
:canSkip="canSkip"
|
|
345
345
|
>
|
|
346
346
|
<!-- Default step content -->
|
|
347
|
-
<div class="space-y-4">
|
|
348
|
-
<h2 class="text-xl font-semibold">{{ currentStepData.title }}</h2>
|
|
349
|
-
<p v-if="currentStepData.description" class="text-muted-foreground">
|
|
347
|
+
<div class="tw:space-y-4">
|
|
348
|
+
<h2 class="tw:text-xl tw:font-semibold">{{ currentStepData.title }}</h2>
|
|
349
|
+
<p v-if="currentStepData.description" class="tw:text-muted-foreground">
|
|
350
350
|
{{ currentStepData.description }}
|
|
351
351
|
</p>
|
|
352
|
-
<div class="text-sm text-muted-foreground">
|
|
352
|
+
<div class="tw:text-sm tw:text-muted-foreground">
|
|
353
353
|
Step {{ currentStep + 1 }} of {{ steps.length }}
|
|
354
354
|
</div>
|
|
355
355
|
</div>
|
|
@@ -358,7 +358,7 @@ watch(currentStep, (newStep, oldStep) => {
|
|
|
358
358
|
|
|
359
359
|
<!-- Navigation buttons -->
|
|
360
360
|
<div v-if="showNavigation" :class="navigationClasses">
|
|
361
|
-
<div class="flex gap-2">
|
|
361
|
+
<div class="tw:flex tw:gap-2">
|
|
362
362
|
<!-- Previous button -->
|
|
363
363
|
<Button
|
|
364
364
|
v-if="!hidePreviousOnFirst || !isFirstStep"
|
|
@@ -366,7 +366,7 @@ watch(currentStep, (newStep, oldStep) => {
|
|
|
366
366
|
:disabled="!canGoPrevious"
|
|
367
367
|
@click="handlePrevious"
|
|
368
368
|
>
|
|
369
|
-
<ChevronLeft class="h-4 w-4" />
|
|
369
|
+
<ChevronLeft class="tw:h-4 tw:w-4" />
|
|
370
370
|
{{ previousButtonText }}
|
|
371
371
|
</Button>
|
|
372
372
|
|
|
@@ -381,15 +381,15 @@ watch(currentStep, (newStep, oldStep) => {
|
|
|
381
381
|
</Button>
|
|
382
382
|
</div>
|
|
383
383
|
|
|
384
|
-
<div class="flex gap-2">
|
|
384
|
+
<div class="tw:flex tw:gap-2">
|
|
385
385
|
<!-- Next/Finish button -->
|
|
386
386
|
<Button
|
|
387
387
|
:disabled="!canGoNext"
|
|
388
388
|
@click="handleNext"
|
|
389
389
|
>
|
|
390
390
|
{{ isLastStep ? finishButtonText : nextButtonText }}
|
|
391
|
-
<ChevronRight v-if="!isLastStep" class="h-4 w-4" />
|
|
392
|
-
<Check v-else class="h-4 w-4" />
|
|
391
|
+
<ChevronRight v-if="!isLastStep" class="tw:h-4 tw:w-4" />
|
|
392
|
+
<Check v-else class="tw:h-4 tw:w-4" />
|
|
393
393
|
</Button>
|
|
394
394
|
</div>
|
|
395
395
|
</div>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { AccordionRootEmits, AccordionRootProps } from "reka-ui"
|
|
3
|
+
import {
|
|
4
|
+
AccordionRoot,
|
|
5
|
+
useForwardPropsEmits,
|
|
6
|
+
} from "reka-ui"
|
|
7
|
+
|
|
8
|
+
const props = defineProps<AccordionRootProps>()
|
|
9
|
+
const emits = defineEmits<AccordionRootEmits>()
|
|
10
|
+
|
|
11
|
+
const forwarded = useForwardPropsEmits(props, emits)
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<template>
|
|
15
|
+
<AccordionRoot v-slot="slotProps" data-slot="accordion" v-bind="forwarded">
|
|
16
|
+
<slot v-bind="slotProps" />
|
|
17
|
+
</AccordionRoot>
|
|
18
|
+
</template>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { AccordionContentProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import { AccordionContent } from "reka-ui"
|
|
6
|
+
import { cn } from "@/lib/utils"
|
|
7
|
+
|
|
8
|
+
const props = defineProps<AccordionContentProps & { class?: HTMLAttributes["class"] }>()
|
|
9
|
+
|
|
10
|
+
const delegatedProps = reactiveOmit(props, "class")
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<template>
|
|
14
|
+
<AccordionContent
|
|
15
|
+
data-slot="accordion-content"
|
|
16
|
+
v-bind="delegatedProps"
|
|
17
|
+
class=""tw:data-[state=closed]:animate-accordion-up tw:data-[state=open]:animate-accordion-down tw:overflow-hidden tw:text-sm""
|
|
18
|
+
>
|
|
19
|
+
<div :class="cn('tw:pt-0 tw:pb-4', props.class)">
|
|
20
|
+
<slot />
|
|
21
|
+
</div>
|
|
22
|
+
</AccordionContent>
|
|
23
|
+
</template>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { AccordionItemProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import { AccordionItem, useForwardProps } from "reka-ui"
|
|
6
|
+
import { cn } from "@/lib/utils"
|
|
7
|
+
|
|
8
|
+
const props = defineProps<AccordionItemProps & { class?: HTMLAttributes["class"] }>()
|
|
9
|
+
|
|
10
|
+
const delegatedProps = reactiveOmit(props, "class")
|
|
11
|
+
|
|
12
|
+
const forwardedProps = useForwardProps(delegatedProps)
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<template>
|
|
16
|
+
<AccordionItem
|
|
17
|
+
v-slot="slotProps"
|
|
18
|
+
data-slot="accordion-item"
|
|
19
|
+
v-bind="forwardedProps"
|
|
20
|
+
:class="cn('tw:border-b tw:last:border-b-0', props.class)"
|
|
21
|
+
>
|
|
22
|
+
<slot v-bind="slotProps" />
|
|
23
|
+
</AccordionItem>
|
|
24
|
+
</template>
|