@geniusdynamics/ns8-ui-lib 1.0.6 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ns8-ui-lib.css +1 -1
- package/dist/ns8-ui-lib.es.js +222 -222
- package/dist/ns8-ui-lib.es.js.map +1 -1
- package/dist/ns8-ui-lib.umd.js +3 -3
- package/dist/ns8-ui-lib.umd.js.map +1 -1
- package/package.json +2 -2
- package/src/App.vue +3 -4
- package/src/components/HelloWorld.vue +2 -2
- package/src/components/NS/CompleteDemo.vue +49 -49
- package/src/components/NS/Demo.vue +20 -20
- package/src/components/NS/cards/NSBackupCard.vue +41 -41
- package/src/components/NS/cards/NSSystemInfoCard.vue +37 -37
- package/src/components/NS/cards/NSSystemdServiceCard.vue +27 -27
- package/src/components/NS/checkbox/NSCheckbox.vue +4 -4
- package/src/components/NS/data-table/NSDataTable.vue +29 -29
- package/src/components/NS/empty-state/NSEmptyState.vue +3 -3
- package/src/components/NS/inline-notification/NSInlineNotification.vue +9 -9
- package/src/components/NS/lottie-animation/NSLottieAnimation.vue +5 -5
- package/src/components/NS/modal/NSModal.vue +10 -10
- package/src/components/NS/modal/NSModalTrigger.vue +1 -1
- package/src/components/NS/pagination/NSPagination.vue +10 -10
- package/src/components/NS/progress/NSProgress.vue +3 -3
- package/src/components/NS/progress/NSProgressBar.vue +4 -4
- package/src/components/NS/slider/NSByteSlider.vue +3 -3
- package/src/components/NS/slider/NSSlider.vue +2 -2
- package/src/components/NS/tag/NSTag.vue +5 -5
- package/src/components/NS/text-input/NSTextInput.vue +5 -5
- package/src/components/NS/toast-notification/NSToastNotification.vue +7 -7
- package/src/components/NS/toggle/NSToggle.vue +2 -2
- package/src/components/NS/wizard/NSWizard.vue +21 -21
- package/src/components/ui/accordion/AccordionContent.vue +2 -2
- package/src/components/ui/accordion/AccordionItem.vue +1 -1
- package/src/components/ui/accordion/AccordionTrigger.vue +3 -3
- package/src/components/ui/alert/AlertDescription.vue +1 -1
- package/src/components/ui/alert/AlertTitle.vue +1 -1
- package/src/components/ui/alert-dialog/AlertDialogCancel.vue +1 -1
- package/src/components/ui/alert-dialog/AlertDialogContent.vue +2 -2
- package/src/components/ui/alert-dialog/AlertDialogDescription.vue +1 -1
- package/src/components/ui/alert-dialog/AlertDialogFooter.vue +1 -1
- package/src/components/ui/alert-dialog/AlertDialogHeader.vue +1 -1
- package/src/components/ui/alert-dialog/AlertDialogTitle.vue +1 -1
- package/src/components/ui/avatar/Avatar.vue +1 -1
- package/src/components/ui/avatar/AvatarFallback.vue +1 -1
- package/src/components/ui/avatar/AvatarImage.vue +1 -1
- package/src/components/ui/breadcrumb/BreadcrumbEllipsis.vue +3 -3
- package/src/components/ui/breadcrumb/BreadcrumbItem.vue +1 -1
- package/src/components/ui/breadcrumb/BreadcrumbLink.vue +1 -1
- package/src/components/ui/breadcrumb/BreadcrumbList.vue +1 -1
- package/src/components/ui/breadcrumb/BreadcrumbPage.vue +1 -1
- package/src/components/ui/breadcrumb/BreadcrumbSeparator.vue +1 -1
- package/src/components/ui/button-group/ButtonGroupSeparator.vue +1 -1
- package/src/components/ui/button-group/ButtonGroupText.vue +1 -1
- package/src/components/ui/calendar/Calendar.vue +16 -16
- package/src/components/ui/calendar/CalendarCell.vue +1 -1
- package/src/components/ui/calendar/CalendarCellTrigger.vue +6 -6
- package/src/components/ui/calendar/CalendarGrid.vue +1 -1
- package/src/components/ui/calendar/CalendarGridRow.vue +1 -1
- package/src/components/ui/calendar/CalendarHeadCell.vue +1 -1
- package/src/components/ui/calendar/CalendarHeader.vue +1 -1
- package/src/components/ui/calendar/CalendarHeading.vue +1 -1
- package/src/components/ui/calendar/CalendarNextButton.vue +2 -2
- package/src/components/ui/calendar/CalendarPrevButton.vue +2 -2
- package/src/components/ui/card/Card.vue +1 -1
- package/src/components/ui/card/CardAction.vue +1 -1
- package/src/components/ui/card/CardContent.vue +1 -1
- package/src/components/ui/card/CardDescription.vue +1 -1
- package/src/components/ui/card/CardFooter.vue +1 -1
- package/src/components/ui/card/CardHeader.vue +1 -1
- package/src/components/ui/card/CardTitle.vue +1 -1
- package/src/components/ui/carousel/Carousel.vue +1 -1
- package/src/components/ui/carousel/CarouselContent.vue +3 -3
- package/src/components/ui/carousel/CarouselItem.vue +2 -2
- package/src/components/ui/carousel/CarouselNext.vue +4 -4
- package/src/components/ui/carousel/CarouselPrevious.vue +4 -4
- package/src/components/ui/checkbox/Checkbox.vue +3 -3
- package/src/components/ui/combobox/ComboboxAnchor.vue +1 -1
- package/src/components/ui/combobox/ComboboxEmpty.vue +1 -1
- package/src/components/ui/combobox/ComboboxGroup.vue +2 -2
- package/src/components/ui/combobox/ComboboxInput.vue +3 -3
- package/src/components/ui/combobox/ComboboxItem.vue +1 -1
- package/src/components/ui/combobox/ComboboxItemIndicator.vue +1 -1
- package/src/components/ui/combobox/ComboboxList.vue +1 -1
- package/src/components/ui/combobox/ComboboxSeparator.vue +1 -1
- package/src/components/ui/combobox/ComboboxTrigger.vue +1 -1
- package/src/components/ui/combobox/ComboboxViewport.vue +1 -1
- package/src/components/ui/command/Command.vue +1 -1
- package/src/components/ui/command/CommandDialog.vue +2 -2
- package/src/components/ui/command/CommandEmpty.vue +1 -1
- package/src/components/ui/command/CommandGroup.vue +2 -2
- package/src/components/ui/command/CommandInput.vue +3 -3
- package/src/components/ui/command/CommandItem.vue +1 -1
- package/src/components/ui/command/CommandList.vue +1 -1
- package/src/components/ui/command/CommandSeparator.vue +1 -1
- package/src/components/ui/command/CommandShortcut.vue +1 -1
- package/src/components/ui/context-menu/ContextMenuCheckboxItem.vue +3 -3
- package/src/components/ui/context-menu/ContextMenuContent.vue +1 -1
- package/src/components/ui/context-menu/ContextMenuItem.vue +1 -1
- package/src/components/ui/context-menu/ContextMenuLabel.vue +1 -1
- package/src/components/ui/context-menu/ContextMenuRadioItem.vue +3 -3
- package/src/components/ui/context-menu/ContextMenuSeparator.vue +1 -1
- package/src/components/ui/context-menu/ContextMenuShortcut.vue +1 -1
- package/src/components/ui/context-menu/ContextMenuSubContent.vue +1 -1
- package/src/components/ui/context-menu/ContextMenuSubTrigger.vue +2 -2
- package/src/components/ui/dialog/DialogContent.vue +18 -27
- package/src/components/ui/dialog/DialogDescription.vue +1 -1
- package/src/components/ui/dialog/DialogFooter.vue +1 -1
- package/src/components/ui/dialog/DialogHeader.vue +1 -1
- package/src/components/ui/dialog/DialogOverlay.vue +1 -1
- package/src/components/ui/dialog/DialogScrollContent.vue +5 -5
- package/src/components/ui/dialog/DialogTitle.vue +1 -1
- package/src/components/ui/drawer/DrawerContent.vue +6 -6
- package/src/components/ui/drawer/DrawerDescription.vue +1 -1
- package/src/components/ui/drawer/DrawerFooter.vue +1 -1
- package/src/components/ui/drawer/DrawerHeader.vue +1 -1
- package/src/components/ui/drawer/DrawerOverlay.vue +1 -1
- package/src/components/ui/drawer/DrawerTitle.vue +1 -1
- package/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +3 -3
- package/src/components/ui/dropdown-menu/DropdownMenuContent.vue +1 -1
- package/src/components/ui/dropdown-menu/DropdownMenuItem.vue +1 -1
- package/src/components/ui/dropdown-menu/DropdownMenuLabel.vue +1 -1
- package/src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +3 -3
- package/src/components/ui/dropdown-menu/DropdownMenuSeparator.vue +1 -1
- package/src/components/ui/dropdown-menu/DropdownMenuShortcut.vue +1 -1
- package/src/components/ui/dropdown-menu/DropdownMenuSubContent.vue +1 -1
- package/src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +2 -2
- package/src/components/ui/empty/Empty.vue +1 -1
- package/src/components/ui/empty/EmptyContent.vue +1 -1
- package/src/components/ui/empty/EmptyDescription.vue +2 -2
- package/src/components/ui/empty/EmptyHeader.vue +1 -1
- package/src/components/ui/empty/EmptyTitle.vue +1 -1
- package/src/components/ui/field/FieldContent.vue +1 -1
- package/src/components/ui/field/FieldDescription.vue +3 -3
- package/src/components/ui/field/FieldError.vue +2 -2
- package/src/components/ui/field/FieldGroup.vue +1 -1
- package/src/components/ui/field/FieldLabel.vue +3 -3
- package/src/components/ui/field/FieldLegend.vue +3 -3
- package/src/components/ui/field/FieldSeparator.vue +3 -3
- package/src/components/ui/field/FieldSet.vue +2 -2
- package/src/components/ui/field/FieldTitle.vue +1 -1
- package/src/components/ui/form/FormDescription.vue +1 -1
- package/src/components/ui/form/FormItem.vue +1 -1
- package/src/components/ui/form/FormLabel.vue +1 -1
- package/src/components/ui/form/FormMessage.vue +1 -1
- package/src/components/ui/hover-card/HoverCardContent.vue +1 -1
- package/src/components/ui/input/Input.vue +3 -3
- package/src/components/ui/input-group/InputGroup.vue +8 -8
- package/src/components/ui/input-group/InputGroupInput.vue +1 -1
- package/src/components/ui/input-group/InputGroupText.vue +1 -1
- package/src/components/ui/input-group/InputGroupTextarea.vue +1 -1
- package/src/components/ui/input-otp/InputOTP.vue +1 -1
- package/src/components/ui/input-otp/InputOTPGroup.vue +1 -1
- package/src/components/ui/input-otp/InputOTPSlot.vue +3 -3
- package/src/components/ui/item/ItemActions.vue +1 -1
- package/src/components/ui/item/ItemContent.vue +1 -1
- package/src/components/ui/item/ItemDescription.vue +2 -2
- package/src/components/ui/item/ItemFooter.vue +1 -1
- package/src/components/ui/item/ItemGroup.vue +1 -1
- package/src/components/ui/item/ItemHeader.vue +1 -1
- package/src/components/ui/item/ItemSeparator.vue +1 -1
- package/src/components/ui/item/ItemTitle.vue +1 -1
- package/src/components/ui/kbd/Kbd.vue +3 -3
- package/src/components/ui/kbd/KbdGroup.vue +1 -1
- package/src/components/ui/label/Label.vue +1 -1
- package/src/components/ui/menubar/Menubar.vue +1 -1
- package/src/components/ui/menubar/MenubarCheckboxItem.vue +3 -3
- package/src/components/ui/menubar/MenubarContent.vue +1 -1
- package/src/components/ui/menubar/MenubarItem.vue +1 -1
- package/src/components/ui/menubar/MenubarLabel.vue +1 -1
- package/src/components/ui/menubar/MenubarRadioItem.vue +3 -3
- package/src/components/ui/menubar/MenubarSeparator.vue +1 -1
- package/src/components/ui/menubar/MenubarShortcut.vue +1 -1
- package/src/components/ui/menubar/MenubarSubContent.vue +1 -1
- package/src/components/ui/menubar/MenubarSubTrigger.vue +2 -2
- package/src/components/ui/menubar/MenubarTrigger.vue +1 -1
- package/src/components/ui/native-select/NativeSelect.vue +5 -5
- package/src/components/ui/native-select/NativeSelectOptGroup.vue +1 -1
- package/src/components/ui/native-select/NativeSelectOption.vue +1 -1
- package/src/components/ui/navigation-menu/NavigationMenu.vue +1 -1
- package/src/components/ui/navigation-menu/NavigationMenuContent.vue +2 -2
- package/src/components/ui/navigation-menu/NavigationMenuIndicator.vue +2 -2
- package/src/components/ui/navigation-menu/NavigationMenuItem.vue +1 -1
- package/src/components/ui/navigation-menu/NavigationMenuLink.vue +1 -1
- package/src/components/ui/navigation-menu/NavigationMenuList.vue +1 -1
- package/src/components/ui/navigation-menu/NavigationMenuTrigger.vue +2 -2
- package/src/components/ui/navigation-menu/NavigationMenuViewport.vue +2 -2
- package/src/components/ui/number-field/NumberField.vue +1 -1
- package/src/components/ui/number-field/NumberFieldContent.vue +1 -1
- package/src/components/ui/number-field/NumberFieldDecrement.vue +2 -2
- package/src/components/ui/number-field/NumberFieldIncrement.vue +2 -2
- package/src/components/ui/number-field/NumberFieldInput.vue +1 -1
- package/src/components/ui/pagination/Pagination.vue +1 -1
- package/src/components/ui/pagination/PaginationContent.vue +1 -1
- package/src/components/ui/pagination/PaginationEllipsis.vue +3 -3
- package/src/components/ui/pagination/PaginationFirst.vue +2 -2
- package/src/components/ui/pagination/PaginationLast.vue +2 -2
- package/src/components/ui/pagination/PaginationNext.vue +2 -2
- package/src/components/ui/pagination/PaginationPrevious.vue +2 -2
- package/src/components/ui/pin-input/PinInput.vue +1 -1
- package/src/components/ui/pin-input/PinInputGroup.vue +1 -1
- package/src/components/ui/pin-input/PinInputSlot.vue +1 -1
- package/src/components/ui/popover/PopoverContent.vue +1 -1
- package/src/components/ui/progress/Progress.vue +12 -9
- package/src/components/ui/radio-group/RadioGroup.vue +1 -1
- package/src/components/ui/radio-group/RadioGroupItem.vue +16 -16
- package/src/components/ui/range-calendar/RangeCalendar.vue +4 -4
- package/src/components/ui/range-calendar/RangeCalendarCell.vue +1 -1
- package/src/components/ui/range-calendar/RangeCalendarCellTrigger.vue +7 -7
- package/src/components/ui/range-calendar/RangeCalendarGrid.vue +1 -1
- package/src/components/ui/range-calendar/RangeCalendarGridRow.vue +1 -1
- package/src/components/ui/range-calendar/RangeCalendarHeadCell.vue +1 -1
- package/src/components/ui/range-calendar/RangeCalendarHeader.vue +1 -1
- package/src/components/ui/range-calendar/RangeCalendarHeading.vue +1 -1
- package/src/components/ui/range-calendar/RangeCalendarNextButton.vue +3 -3
- package/src/components/ui/range-calendar/RangeCalendarPrevButton.vue +3 -3
- package/src/components/ui/resizable/ResizableHandle.vue +3 -3
- package/src/components/ui/resizable/ResizablePanelGroup.vue +1 -1
- package/src/components/ui/scroll-area/ScrollArea.vue +2 -2
- package/src/components/ui/scroll-area/ScrollBar.vue +16 -22
- package/src/components/ui/select/SelectContent.vue +18 -27
- package/src/components/ui/select/SelectItem.vue +3 -3
- package/src/components/ui/select/SelectLabel.vue +1 -1
- package/src/components/ui/select/SelectScrollDownButton.vue +2 -2
- package/src/components/ui/select/SelectScrollUpButton.vue +2 -2
- package/src/components/ui/select/SelectSeparator.vue +1 -1
- package/src/components/ui/select/SelectTrigger.vue +2 -2
- package/src/components/ui/separator/Separator.vue +1 -1
- package/src/components/ui/sheet/SheetContent.vue +28 -31
- package/src/components/ui/sheet/SheetDescription.vue +1 -1
- package/src/components/ui/sheet/SheetFooter.vue +1 -1
- package/src/components/ui/sheet/SheetHeader.vue +1 -1
- package/src/components/ui/sheet/SheetOverlay.vue +1 -1
- package/src/components/ui/sheet/SheetTitle.vue +1 -1
- package/src/components/ui/sidebar/Sidebar.vue +16 -16
- package/src/components/ui/sidebar/SidebarContent.vue +1 -1
- package/src/components/ui/sidebar/SidebarFooter.vue +1 -1
- package/src/components/ui/sidebar/SidebarGroup.vue +1 -1
- package/src/components/ui/sidebar/SidebarGroupAction.vue +3 -3
- package/src/components/ui/sidebar/SidebarGroupContent.vue +1 -1
- package/src/components/ui/sidebar/SidebarGroupLabel.vue +2 -2
- package/src/components/ui/sidebar/SidebarHeader.vue +1 -1
- package/src/components/ui/sidebar/SidebarInput.vue +1 -1
- package/src/components/ui/sidebar/SidebarInset.vue +2 -2
- package/src/components/ui/sidebar/SidebarMenu.vue +1 -1
- package/src/components/ui/sidebar/SidebarMenuAction.vue +7 -7
- package/src/components/ui/sidebar/SidebarMenuBadge.vue +6 -6
- package/src/components/ui/sidebar/SidebarMenuItem.vue +1 -1
- package/src/components/ui/sidebar/SidebarMenuSkeleton.vue +3 -3
- package/src/components/ui/sidebar/SidebarMenuSub.vue +2 -2
- package/src/components/ui/sidebar/SidebarMenuSubButton.vue +5 -5
- package/src/components/ui/sidebar/SidebarMenuSubItem.vue +1 -1
- package/src/components/ui/sidebar/SidebarProvider.vue +1 -1
- package/src/components/ui/sidebar/SidebarRail.vue +6 -6
- package/src/components/ui/sidebar/SidebarSeparator.vue +1 -1
- package/src/components/ui/sidebar/SidebarTrigger.vue +2 -2
- package/src/components/ui/skeleton/Skeleton.vue +1 -1
- package/src/components/ui/slider/Slider.vue +4 -4
- package/src/components/ui/sonner/Sonner.vue +7 -7
- package/src/components/ui/spinner/Spinner.vue +1 -1
- package/src/components/ui/stepper/Stepper.vue +1 -1
- package/src/components/ui/stepper/StepperDescription.vue +1 -1
- package/src/components/ui/stepper/StepperIndicator.vue +4 -4
- package/src/components/ui/stepper/StepperItem.vue +1 -1
- package/src/components/ui/stepper/StepperSeparator.vue +3 -3
- package/src/components/ui/stepper/StepperTitle.vue +1 -1
- package/src/components/ui/stepper/StepperTrigger.vue +1 -1
- package/src/components/ui/switch/Switch.vue +2 -2
- package/src/components/ui/table/Table.vue +6 -12
- package/src/components/ui/table/TableBody.vue +1 -1
- package/src/components/ui/table/TableCaption.vue +1 -1
- package/src/components/ui/table/TableCell.vue +1 -1
- package/src/components/ui/table/TableEmpty.vue +14 -17
- package/src/components/ui/table/TableFooter.vue +1 -1
- package/src/components/ui/table/TableHead.vue +1 -1
- package/src/components/ui/table/TableHeader.vue +1 -1
- package/src/components/ui/table/TableRow.vue +1 -1
- package/src/components/ui/tabs/Tabs.vue +1 -1
- package/src/components/ui/tabs/TabsContent.vue +1 -1
- package/src/components/ui/tabs/TabsList.vue +1 -1
- package/src/components/ui/tabs/TabsTrigger.vue +1 -1
- package/src/components/ui/tags-input/TagsInput.vue +3 -3
- package/src/components/ui/tags-input/TagsInputInput.vue +1 -1
- package/src/components/ui/tags-input/TagsInputItem.vue +1 -1
- package/src/components/ui/tags-input/TagsInputItemDelete.vue +2 -2
- package/src/components/ui/tags-input/TagsInputItemText.vue +1 -1
- package/src/components/ui/textarea/Textarea.vue +1 -1
- package/src/components/ui/toggle-group/ToggleGroup.vue +1 -1
- package/src/components/ui/toggle-group/ToggleGroupItem.vue +2 -2
- package/src/components/ui/tooltip/TooltipContent.vue +2 -2
- package/src/components/ui/checkbox/NsCheckbox.vue +0 -123
- package/src/components/ui/empty-state/NsEmptyState.vue +0 -149
- package/src/components/ui/inline-notification/NsInlineNotification.vue +0 -163
- package/src/components/ui/tag/NsTag.vue +0 -114
- package/src/components/ui/text-input/NsTextInput.vue +0 -269
- package/src/components/ui/toggle/NsToggle.vue +0 -126
|
@@ -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="
|
|
173
|
+
<div v-if="showTotal && totalItems" class="text-sm text-muted-foreground">
|
|
174
174
|
Total: {{ totalItems }} items
|
|
175
175
|
</div>
|
|
176
176
|
|
|
177
177
|
<!-- Page size changer -->
|
|
178
|
-
<div v-if="showSizeChanger" class="
|
|
179
|
-
<span class="
|
|
178
|
+
<div v-if="showSizeChanger" class="flex items-center gap-2">
|
|
179
|
+
<span class="text-sm 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="
|
|
192
|
+
<div class="flex items-center 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="
|
|
200
|
+
<ChevronLeft class="h-4 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="
|
|
215
|
+
class="flex items-center justify-center h-8 w-8 text-sm text-muted-foreground"
|
|
216
216
|
>
|
|
217
|
-
<MoreHorizontal class="
|
|
217
|
+
<MoreHorizontal class="h-4 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="
|
|
228
|
+
<ChevronRight class="h-4 w-4" />
|
|
229
229
|
</button>
|
|
230
230
|
</div>
|
|
231
231
|
|
|
232
232
|
<!-- Quick jumper -->
|
|
233
|
-
<div v-if="showQuickJumper" class="
|
|
234
|
-
<span class="
|
|
233
|
+
<div v-if="showQuickJumper" class="flex items-center gap-2">
|
|
234
|
+
<span class="text-sm 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="
|
|
74
|
+
<div class="space-y-2">
|
|
75
75
|
<!-- Label -->
|
|
76
|
-
<div v-if="showLabel && (label || $slots.label)" class="
|
|
76
|
+
<div v-if="showLabel && (label || $slots.label)" class="flex items-center 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="
|
|
97
|
+
<div v-if="$slots.value" class="text-sm 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="
|
|
81
|
+
<div class="space-y-2">
|
|
82
82
|
<!-- Label -->
|
|
83
|
-
<div v-if="showLabel && (label || $slots.label)" class="
|
|
83
|
+
<div v-if="showLabel && (label || $slots.label)" class="flex items-center 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="
|
|
104
|
+
class="h-full w-full bg-gradient-to-r from-transparent via-white/20 to-transparent 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="
|
|
110
|
+
<div v-if="$slots.value" class="text-sm 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="
|
|
108
|
+
class="flex items-center justify-between 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="
|
|
134
|
+
<div class="relative mt-2 flex justify-between text-xs 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="
|
|
140
|
+
<div v-if="$slots.value" class="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="
|
|
107
|
+
class="flex items-center justify-between 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="
|
|
138
|
+
<div v-if="$slots.value" class="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="
|
|
102
|
+
<div v-if="icon && !isFilter" class="flex items-center justify-center">
|
|
103
103
|
<component
|
|
104
104
|
v-if="typeof icon === 'object'"
|
|
105
105
|
:is="icon"
|
|
106
|
-
class="
|
|
106
|
+
class="h-3 w-3"
|
|
107
107
|
/>
|
|
108
108
|
<div
|
|
109
109
|
v-else-if="typeof icon === 'string'"
|
|
110
110
|
v-html="icon"
|
|
111
|
-
class="
|
|
111
|
+
class="h-3 w-3"
|
|
112
112
|
/>
|
|
113
113
|
</div>
|
|
114
114
|
|
|
115
115
|
<!-- Label content -->
|
|
116
|
-
<span class="
|
|
116
|
+
<span class="truncate max-w-[200px]">
|
|
117
117
|
<slot>{{ label }}</slot>
|
|
118
118
|
</span>
|
|
119
119
|
|
|
@@ -132,7 +132,7 @@ const handleKeydown = (event: KeyboardEvent) => {
|
|
|
132
132
|
:title="clearAriaLabel"
|
|
133
133
|
@click="handleRemove"
|
|
134
134
|
>
|
|
135
|
-
<X class="
|
|
135
|
+
<X class="h-3 w-3" />
|
|
136
136
|
</button>
|
|
137
137
|
</component>
|
|
138
138
|
</template>
|
|
@@ -141,7 +141,7 @@ defineExpose({
|
|
|
141
141
|
<slot name="label">{{ label }}</slot>
|
|
142
142
|
</label>
|
|
143
143
|
|
|
144
|
-
<div class="
|
|
144
|
+
<div class="relative">
|
|
145
145
|
<span
|
|
146
146
|
v-if="prefix"
|
|
147
147
|
:class="cn( 'absolute left-3 top-1/2 transform -translate-y-1/2 text-sm text-muted-foreground',
|
|
@@ -186,7 +186,7 @@ defineExpose({
|
|
|
186
186
|
|
|
187
187
|
<div
|
|
188
188
|
v-if="StatusIcon || (isPassword && showPasswordToggle)"
|
|
189
|
-
class="
|
|
189
|
+
class="absolute right-0 top-1/2 transform -translate-y-1/2 flex items-center gap-1 pr-3"
|
|
190
190
|
>
|
|
191
191
|
<component
|
|
192
192
|
v-if="StatusIcon"
|
|
@@ -210,8 +210,8 @@ defineExpose({
|
|
|
210
210
|
@click="togglePasswordVisibility"
|
|
211
211
|
:title="isPasswordVisible ? 'Hide password' : 'Show password'"
|
|
212
212
|
>
|
|
213
|
-
<EyeOff v-if="isPasswordVisible" class="
|
|
214
|
-
<Eye v-else class="
|
|
213
|
+
<EyeOff v-if="isPasswordVisible" class="h-4 w-4" />
|
|
214
|
+
<Eye v-else class="h-4 w-4" />
|
|
215
215
|
</button>
|
|
216
216
|
</div>
|
|
217
217
|
</div>
|
|
@@ -228,7 +228,7 @@ defineExpose({
|
|
|
228
228
|
<component
|
|
229
229
|
v-if="StatusIcon"
|
|
230
230
|
:is="StatusIcon"
|
|
231
|
-
class="
|
|
231
|
+
class="h-4 w-4 mt-0.5 flex-shrink-0"
|
|
232
232
|
/>
|
|
233
233
|
<span>{{ displayMessage }}</span>
|
|
234
234
|
</p>
|
|
@@ -85,24 +85,24 @@ const positionClasses = computed(() => {
|
|
|
85
85
|
<!-- Icon -->
|
|
86
86
|
<component
|
|
87
87
|
:is="NotificationIcon"
|
|
88
|
-
class="
|
|
88
|
+
class="h-5 w-5 shrink-0"
|
|
89
89
|
/>
|
|
90
90
|
|
|
91
91
|
<!-- Loading spinner -->
|
|
92
92
|
<Loader2
|
|
93
93
|
v-if="loading"
|
|
94
|
-
class="
|
|
94
|
+
class="h-5 w-5 shrink-0 animate-spin"
|
|
95
95
|
/>
|
|
96
96
|
|
|
97
97
|
<!-- Content -->
|
|
98
|
-
<div class="
|
|
98
|
+
<div class="grid gap-1">
|
|
99
99
|
<!-- Title -->
|
|
100
|
-
<div v-if="title || $slots.title" class="
|
|
100
|
+
<div v-if="title || $slots.title" class="text-sm 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="
|
|
105
|
+
<div v-if="description || $slots.description" class="text-sm opacity-90">
|
|
106
106
|
<slot name="description">{{ description }}</slot>
|
|
107
107
|
</div>
|
|
108
108
|
|
|
@@ -136,13 +136,13 @@ const positionClasses = computed(() => {
|
|
|
136
136
|
)"
|
|
137
137
|
@click="emit('close')"
|
|
138
138
|
>
|
|
139
|
-
<X class="
|
|
139
|
+
<X class="h-4 w-4" />
|
|
140
140
|
</button>
|
|
141
141
|
|
|
142
142
|
<!-- Progress bar for auto-dismiss -->
|
|
143
143
|
<div
|
|
144
144
|
v-if="duration > 0"
|
|
145
|
-
class="
|
|
145
|
+
class="absolute bottom-0 left-0 h-1 bg-black/20 dark:bg-white/20 animate-[shrink_x_var(--duration)_linear_forwards]"
|
|
146
146
|
:style="{ '--duration': `${duration}ms` }"
|
|
147
147
|
/>
|
|
148
148
|
</div>
|
|
@@ -94,7 +94,7 @@ const thumbClasses = computed(() => {
|
|
|
94
94
|
<SwitchThumb :class="thumbClasses" />
|
|
95
95
|
</SwitchRoot>
|
|
96
96
|
|
|
97
|
-
<div class="
|
|
97
|
+
<div class="grid gap-1.5">
|
|
98
98
|
<label
|
|
99
99
|
v-if="label || $slots.label"
|
|
100
100
|
:for="toggleId"
|
|
@@ -142,7 +142,7 @@ const thumbClasses = computed(() => {
|
|
|
142
142
|
|
|
143
143
|
<p
|
|
144
144
|
v-if="description"
|
|
145
|
-
class="
|
|
145
|
+
class="text-sm text-muted-foreground"
|
|
146
146
|
>
|
|
147
147
|
{{ description }}
|
|
148
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="
|
|
285
|
-
<div class="
|
|
284
|
+
<div v-if="showProgressBar" class="mb-8">
|
|
285
|
+
<div class="relative h-2 w-full overflow-hidden rounded-full bg-secondary">
|
|
286
286
|
<div
|
|
287
|
-
class="
|
|
287
|
+
class="h-full w-full bg-primary transition-all duration-300 ease-in-out"
|
|
288
288
|
:style="{ width: `${progressPercentage}%` }"
|
|
289
289
|
/>
|
|
290
290
|
</div>
|
|
291
|
-
<div class="
|
|
291
|
+
<div class="mt-2 text-sm 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="
|
|
307
|
-
<Check v-if="getStepState(index) === 'completed'" class="
|
|
308
|
-
<component v-else-if="showStepIcons && step.icon" :is="step.icon" class="
|
|
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" />
|
|
309
309
|
<span v-else-if="showStepNumbers">{{ index + 1 }}</span>
|
|
310
310
|
</div>
|
|
311
311
|
|
|
312
312
|
<!-- Step info -->
|
|
313
|
-
<div class="
|
|
314
|
-
<div class="
|
|
315
|
-
<div v-if="step.description" class="
|
|
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">
|
|
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="
|
|
326
|
+
class="hidden lg:block"
|
|
327
327
|
/>
|
|
328
328
|
|
|
329
329
|
<!-- Content -->
|
|
330
330
|
<div :class="contentClasses">
|
|
331
331
|
<!-- Current step content -->
|
|
332
|
-
<div class="
|
|
332
|
+
<div class="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="
|
|
348
|
-
<h2 class="
|
|
349
|
-
<p v-if="currentStepData.description" class="
|
|
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">
|
|
350
350
|
{{ currentStepData.description }}
|
|
351
351
|
</p>
|
|
352
|
-
<div class="
|
|
352
|
+
<div class="text-sm 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="
|
|
361
|
+
<div class="flex 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="
|
|
369
|
+
<ChevronLeft class="h-4 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="
|
|
384
|
+
<div class="flex 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="
|
|
392
|
-
<Check v-else class="
|
|
391
|
+
<ChevronRight v-if="!isLastStep" class="h-4 w-4" />
|
|
392
|
+
<Check v-else class="h-4 w-4" />
|
|
393
393
|
</Button>
|
|
394
394
|
</div>
|
|
395
395
|
</div>
|
|
@@ -14,9 +14,9 @@ const delegatedProps = reactiveOmit(props, "class")
|
|
|
14
14
|
<AccordionContent
|
|
15
15
|
data-slot="accordion-content"
|
|
16
16
|
v-bind="delegatedProps"
|
|
17
|
-
class="
|
|
17
|
+
class="data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm"
|
|
18
18
|
>
|
|
19
|
-
<div :class="cn('
|
|
19
|
+
<div :class="cn('pt-0 pb-4', props.class)">
|
|
20
20
|
<slot />
|
|
21
21
|
</div>
|
|
22
22
|
</AccordionContent>
|
|
@@ -17,7 +17,7 @@ const forwardedProps = useForwardProps(delegatedProps)
|
|
|
17
17
|
v-slot="slotProps"
|
|
18
18
|
data-slot="accordion-item"
|
|
19
19
|
v-bind="forwardedProps"
|
|
20
|
-
:class="cn('
|
|
20
|
+
:class="cn('border-b last:border-b-0', props.class)"
|
|
21
21
|
>
|
|
22
22
|
<slot v-bind="slotProps" />
|
|
23
23
|
</AccordionItem>
|
|
@@ -15,13 +15,13 @@ const delegatedProps = reactiveOmit(props, "class")
|
|
|
15
15
|
</script>
|
|
16
16
|
|
|
17
17
|
<template>
|
|
18
|
-
<AccordionHeader class="
|
|
18
|
+
<AccordionHeader class="flex">
|
|
19
19
|
<AccordionTrigger
|
|
20
20
|
data-slot="accordion-trigger"
|
|
21
21
|
v-bind="delegatedProps"
|
|
22
22
|
:class="
|
|
23
23
|
cn(
|
|
24
|
-
'
|
|
24
|
+
'focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180',
|
|
25
25
|
props.class,
|
|
26
26
|
)
|
|
27
27
|
"
|
|
@@ -29,7 +29,7 @@ const delegatedProps = reactiveOmit(props, "class")
|
|
|
29
29
|
<slot />
|
|
30
30
|
<slot name="icon">
|
|
31
31
|
<ChevronDown
|
|
32
|
-
class="
|
|
32
|
+
class="text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200"
|
|
33
33
|
/>
|
|
34
34
|
</slot>
|
|
35
35
|
</AccordionTrigger>
|
|
@@ -10,7 +10,7 @@ const props = defineProps<{
|
|
|
10
10
|
<template>
|
|
11
11
|
<div
|
|
12
12
|
data-slot="alert-description"
|
|
13
|
-
:class="cn('
|
|
13
|
+
:class="cn('text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed', props.class)"
|
|
14
14
|
>
|
|
15
15
|
<slot />
|
|
16
16
|
</div>
|
|
@@ -10,7 +10,7 @@ const props = defineProps<{
|
|
|
10
10
|
<template>
|
|
11
11
|
<div
|
|
12
12
|
data-slot="alert-title"
|
|
13
|
-
:class="cn('
|
|
13
|
+
:class="cn('col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight', props.class)"
|
|
14
14
|
>
|
|
15
15
|
<slot />
|
|
16
16
|
</div>
|
|
@@ -26,14 +26,14 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits)
|
|
|
26
26
|
<AlertDialogPortal>
|
|
27
27
|
<AlertDialogOverlay
|
|
28
28
|
data-slot="alert-dialog-overlay"
|
|
29
|
-
class="
|
|
29
|
+
class="data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80"
|
|
30
30
|
/>
|
|
31
31
|
<AlertDialogContent
|
|
32
32
|
data-slot="alert-dialog-content"
|
|
33
33
|
v-bind="{ ...$attrs, ...forwarded }"
|
|
34
34
|
:class="
|
|
35
35
|
cn(
|
|
36
|
-
'
|
|
36
|
+
'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg',
|
|
37
37
|
props.class,
|
|
38
38
|
)
|
|
39
39
|
"
|
|
@@ -16,7 +16,7 @@ const delegatedProps = reactiveOmit(props, "class")
|
|
|
16
16
|
<AlertDialogDescription
|
|
17
17
|
data-slot="alert-dialog-description"
|
|
18
18
|
v-bind="delegatedProps"
|
|
19
|
-
:class="cn('
|
|
19
|
+
:class="cn('text-muted-foreground text-sm', props.class)"
|
|
20
20
|
>
|
|
21
21
|
<slot />
|
|
22
22
|
</AlertDialogDescription>
|
|
@@ -10,7 +10,7 @@ const props = defineProps<{
|
|
|
10
10
|
<template>
|
|
11
11
|
<div
|
|
12
12
|
data-slot="alert-dialog-header"
|
|
13
|
-
:class="cn('
|
|
13
|
+
:class="cn('flex flex-col gap-2 text-center sm:text-left', props.class)"
|
|
14
14
|
>
|
|
15
15
|
<slot />
|
|
16
16
|
</div>
|
|
@@ -14,7 +14,7 @@ const delegatedProps = reactiveOmit(props, "class")
|
|
|
14
14
|
<AlertDialogTitle
|
|
15
15
|
data-slot="alert-dialog-title"
|
|
16
16
|
v-bind="delegatedProps"
|
|
17
|
-
:class="cn('
|
|
17
|
+
:class="cn('text-lg font-semibold', props.class)"
|
|
18
18
|
>
|
|
19
19
|
<slot />
|
|
20
20
|
</AlertDialogTitle>
|
|
@@ -11,7 +11,7 @@ const props = defineProps<{
|
|
|
11
11
|
<template>
|
|
12
12
|
<AvatarRoot
|
|
13
13
|
data-slot="avatar"
|
|
14
|
-
:class="cn('
|
|
14
|
+
:class="cn('relative flex size-8 shrink-0 overflow-hidden rounded-full', props.class)"
|
|
15
15
|
>
|
|
16
16
|
<slot />
|
|
17
17
|
</AvatarRoot>
|
|
@@ -14,7 +14,7 @@ const delegatedProps = reactiveOmit(props, "class")
|
|
|
14
14
|
<AvatarFallback
|
|
15
15
|
data-slot="avatar-fallback"
|
|
16
16
|
v-bind="delegatedProps"
|
|
17
|
-
:class="cn('
|
|
17
|
+
:class="cn('bg-muted flex size-full items-center justify-center rounded-full', props.class)"
|
|
18
18
|
>
|
|
19
19
|
<slot />
|
|
20
20
|
</AvatarFallback>
|
|
@@ -13,11 +13,11 @@ const props = defineProps<{
|
|
|
13
13
|
data-slot="breadcrumb-ellipsis"
|
|
14
14
|
role="presentation"
|
|
15
15
|
aria-hidden="true"
|
|
16
|
-
:class="cn('
|
|
16
|
+
:class="cn('flex size-9 items-center justify-center', props.class)"
|
|
17
17
|
>
|
|
18
18
|
<slot>
|
|
19
|
-
<MoreHorizontal class="
|
|
19
|
+
<MoreHorizontal class="size-4" />
|
|
20
20
|
</slot>
|
|
21
|
-
<span class="
|
|
21
|
+
<span class="sr-only">More</span>
|
|
22
22
|
</span>
|
|
23
23
|
</template>
|
|
@@ -14,7 +14,7 @@ const props = withDefaults(defineProps<PrimitiveProps & { class?: HTMLAttributes
|
|
|
14
14
|
data-slot="breadcrumb-link"
|
|
15
15
|
:as="as"
|
|
16
16
|
:as-child="asChild"
|
|
17
|
-
:class="cn('
|
|
17
|
+
:class="cn('hover:text-foreground transition-colors', props.class)"
|
|
18
18
|
>
|
|
19
19
|
<slot />
|
|
20
20
|
</Primitive>
|
|
@@ -10,7 +10,7 @@ const props = defineProps<{
|
|
|
10
10
|
<template>
|
|
11
11
|
<ol
|
|
12
12
|
data-slot="breadcrumb-list"
|
|
13
|
-
:class="cn('
|
|
13
|
+
:class="cn('text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5', props.class)"
|
|
14
14
|
>
|
|
15
15
|
<slot />
|
|
16
16
|
</ol>
|