@edgedev/create-edge-app 1.1.4 → 1.1.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/assets/css/tailwind.css +12 -2
- package/components/ui/accordion/Accordion.vue +1 -1
- package/components/ui/accordion/AccordionContent.vue +3 -3
- package/components/ui/accordion/AccordionItem.vue +3 -3
- package/components/ui/accordion/AccordionTrigger.vue +4 -4
- package/components/ui/alert/Alert.vue +1 -1
- package/components/ui/alert/AlertDescription.vue +1 -1
- package/components/ui/alert/AlertTitle.vue +1 -1
- package/components/ui/alert/index.ts +2 -2
- package/components/ui/alert-dialog/AlertDialog.vue +1 -1
- package/components/ui/alert-dialog/AlertDialogAction.vue +4 -4
- package/components/ui/alert-dialog/AlertDialogCancel.vue +12 -5
- package/components/ui/alert-dialog/AlertDialogContent.vue +4 -4
- package/components/ui/alert-dialog/AlertDialogDescription.vue +3 -3
- package/components/ui/alert-dialog/AlertDialogFooter.vue +1 -1
- package/components/ui/alert-dialog/AlertDialogHeader.vue +1 -1
- package/components/ui/alert-dialog/AlertDialogTitle.vue +3 -3
- package/components/ui/alert-dialog/AlertDialogTrigger.vue +1 -1
- package/components/ui/alert-dialog/index.ts +5 -5
- package/components/ui/aspect-ratio/AspectRatio.vue +1 -1
- package/components/ui/auto-form/AutoForm.vue +8 -8
- package/components/ui/auto-form/AutoFormField.vue +1 -1
- package/components/ui/auto-form/AutoFormFieldArray.vue +9 -9
- package/components/ui/auto-form/AutoFormFieldBoolean.vue +9 -9
- package/components/ui/auto-form/AutoFormFieldDate.vue +9 -9
- package/components/ui/auto-form/AutoFormFieldEnum.vue +8 -8
- package/components/ui/auto-form/AutoFormFieldFile.vue +6 -6
- package/components/ui/auto-form/AutoFormFieldInput.vue +5 -5
- package/components/ui/auto-form/AutoFormFieldNumber.vue +4 -4
- package/components/ui/auto-form/AutoFormFieldObject.vue +5 -5
- package/components/ui/auto-form/AutoFormLabel.vue +1 -1
- package/components/ui/auto-form/constant.ts +2 -1
- package/components/ui/auto-form/dependencies.ts +4 -4
- package/components/ui/auto-form/index.ts +4 -4
- package/components/ui/auto-form/interface.ts +15 -1
- package/components/ui/auto-form/utils.ts +23 -6
- package/components/ui/avatar/Avatar.vue +3 -3
- package/components/ui/avatar/AvatarFallback.vue +1 -1
- package/components/ui/avatar/AvatarImage.vue +5 -2
- package/components/ui/avatar/index.ts +2 -2
- package/components/ui/badge/Badge.vue +1 -1
- package/components/ui/badge/index.ts +1 -1
- package/components/ui/breadcrumb/BreadcrumbEllipsis.vue +1 -1
- package/components/ui/breadcrumb/BreadcrumbItem.vue +1 -1
- package/components/ui/breadcrumb/BreadcrumbLink.vue +2 -2
- package/components/ui/breadcrumb/BreadcrumbList.vue +1 -1
- package/components/ui/breadcrumb/BreadcrumbPage.vue +1 -1
- package/components/ui/breadcrumb/BreadcrumbSeparator.vue +2 -2
- package/components/ui/button/Button.vue +2 -2
- package/components/ui/button/index.ts +3 -3
- package/components/ui/calendar/Calendar.vue +3 -3
- package/components/ui/calendar/CalendarCell.vue +4 -4
- package/components/ui/calendar/CalendarCellTrigger.vue +5 -5
- package/components/ui/calendar/CalendarGrid.vue +3 -3
- package/components/ui/calendar/CalendarGridBody.vue +1 -1
- package/components/ui/calendar/CalendarGridHead.vue +1 -1
- package/components/ui/calendar/CalendarGridRow.vue +3 -3
- package/components/ui/calendar/CalendarHeadCell.vue +3 -3
- package/components/ui/calendar/CalendarHeader.vue +3 -3
- package/components/ui/calendar/CalendarHeading.vue +7 -3
- package/components/ui/calendar/CalendarNextButton.vue +4 -4
- package/components/ui/calendar/CalendarPrevButton.vue +4 -4
- package/components/ui/card/Card.vue +1 -1
- package/components/ui/card/CardContent.vue +1 -1
- package/components/ui/card/CardDescription.vue +1 -1
- package/components/ui/card/CardFooter.vue +1 -1
- package/components/ui/card/CardHeader.vue +1 -1
- package/components/ui/card/CardTitle.vue +1 -1
- package/components/ui/card/index.ts +3 -3
- package/components/ui/carousel/Carousel.vue +15 -7
- package/components/ui/carousel/CarouselContent.vue +2 -2
- package/components/ui/carousel/CarouselItem.vue +2 -2
- package/components/ui/carousel/CarouselNext.vue +4 -3
- package/components/ui/carousel/CarouselPrevious.vue +4 -3
- package/components/ui/carousel/index.ts +5 -5
- package/components/ui/carousel/interface.ts +14 -8
- package/components/ui/carousel/useCarousel.ts +5 -8
- package/components/ui/chart/ChartCrosshair.vue +2 -2
- package/components/ui/chart/ChartLegend.vue +3 -3
- package/components/ui/chart/ChartSingleTooltip.vue +6 -7
- package/components/ui/chart/ChartTooltip.vue +1 -1
- package/components/ui/chart/index.ts +6 -6
- package/components/ui/chart-area/AreaChart.vue +10 -7
- package/components/ui/chart-bar/BarChart.vue +5 -5
- package/components/ui/chart-donut/DonutChart.vue +6 -6
- package/components/ui/chart-line/LineChart.vue +5 -5
- package/components/ui/checkbox/Checkbox.vue +4 -4
- package/components/ui/collapsible/Collapsible.vue +2 -2
- package/components/ui/collapsible/CollapsibleContent.vue +1 -1
- package/components/ui/collapsible/CollapsibleTrigger.vue +1 -1
- package/components/ui/collapsible/index.ts +1 -1
- package/components/ui/combobox/Combobox.vue +14 -0
- package/components/ui/combobox/ComboboxAnchor.vue +25 -0
- package/components/ui/combobox/ComboboxEmpty.vue +20 -0
- package/components/ui/combobox/ComboboxGroup.vue +29 -0
- package/components/ui/combobox/ComboboxInput.vue +28 -0
- package/components/ui/combobox/ComboboxItem.vue +26 -0
- package/components/ui/combobox/ComboboxList.vue +34 -0
- package/components/ui/combobox/ComboboxSeparator.vue +23 -0
- package/components/ui/combobox/ComboboxTrigger.vue +26 -0
- package/components/ui/combobox/index.ts +10 -0
- package/components/ui/command/Command.vue +71 -9
- package/components/ui/command/CommandDialog.vue +3 -3
- package/components/ui/command/CommandEmpty.vue +12 -7
- package/components/ui/command/CommandGroup.vue +26 -9
- package/components/ui/command/CommandInput.vue +10 -6
- package/components/ui/command/CommandItem.vue +61 -9
- package/components/ui/command/CommandList.vue +8 -11
- package/components/ui/command/CommandSeparator.vue +7 -7
- package/components/ui/command/CommandShortcut.vue +1 -1
- package/components/ui/command/index.ts +16 -0
- package/components/ui/context-menu/ContextMenu.vue +2 -2
- package/components/ui/context-menu/ContextMenuCheckboxItem.vue +4 -4
- package/components/ui/context-menu/ContextMenuContent.vue +3 -3
- package/components/ui/context-menu/ContextMenuGroup.vue +1 -1
- package/components/ui/context-menu/ContextMenuItem.vue +3 -3
- package/components/ui/context-menu/ContextMenuLabel.vue +3 -3
- package/components/ui/context-menu/ContextMenuPortal.vue +1 -1
- package/components/ui/context-menu/ContextMenuRadioGroup.vue +1 -1
- package/components/ui/context-menu/ContextMenuRadioItem.vue +4 -4
- package/components/ui/context-menu/ContextMenuSeparator.vue +3 -3
- package/components/ui/context-menu/ContextMenuShortcut.vue +1 -1
- package/components/ui/context-menu/ContextMenuSub.vue +1 -1
- package/components/ui/context-menu/ContextMenuSubContent.vue +3 -3
- package/components/ui/context-menu/ContextMenuSubTrigger.vue +4 -4
- package/components/ui/context-menu/ContextMenuTrigger.vue +1 -1
- package/components/ui/context-menu/index.ts +6 -6
- package/components/ui/dialog/Dialog.vue +1 -1
- package/components/ui/dialog/DialogClose.vue +1 -1
- package/components/ui/dialog/DialogContent.vue +5 -5
- package/components/ui/dialog/DialogDescription.vue +3 -3
- package/components/ui/dialog/DialogFooter.vue +1 -1
- package/components/ui/dialog/DialogHeader.vue +1 -1
- package/components/ui/dialog/DialogScrollContent.vue +5 -5
- package/components/ui/dialog/DialogTitle.vue +3 -3
- package/components/ui/dialog/DialogTrigger.vue +1 -1
- package/components/ui/dialog/index.ts +5 -5
- package/components/ui/drawer/Drawer.vue +1 -1
- package/components/ui/drawer/DrawerContent.vue +4 -4
- package/components/ui/drawer/DrawerDescription.vue +2 -2
- package/components/ui/drawer/DrawerFooter.vue +1 -1
- package/components/ui/drawer/DrawerHeader.vue +1 -1
- package/components/ui/drawer/DrawerOverlay.vue +3 -3
- package/components/ui/drawer/DrawerTitle.vue +2 -2
- package/components/ui/drawer/index.ts +4 -4
- package/components/ui/dropdown-menu/DropdownMenu.vue +1 -1
- package/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +4 -4
- package/components/ui/dropdown-menu/DropdownMenuContent.vue +3 -3
- package/components/ui/dropdown-menu/DropdownMenuGroup.vue +1 -1
- package/components/ui/dropdown-menu/DropdownMenuItem.vue +4 -4
- package/components/ui/dropdown-menu/DropdownMenuLabel.vue +3 -3
- package/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +1 -1
- package/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +4 -4
- package/components/ui/dropdown-menu/DropdownMenuSeparator.vue +3 -3
- package/components/ui/dropdown-menu/DropdownMenuShortcut.vue +1 -1
- package/components/ui/dropdown-menu/DropdownMenuSub.vue +1 -1
- package/components/ui/dropdown-menu/DropdownMenuSubContent.vue +3 -3
- package/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +4 -4
- package/components/ui/dropdown-menu/DropdownMenuTrigger.vue +1 -1
- package/components/ui/dropdown-menu/index.ts +8 -8
- package/components/ui/form/FormControl.vue +1 -1
- package/components/ui/form/FormDescription.vue +1 -1
- package/components/ui/form/FormItem.vue +2 -2
- package/components/ui/form/FormLabel.vue +3 -3
- package/components/ui/form/index.ts +3 -3
- package/components/ui/form/useFormField.ts +7 -7
- package/components/ui/hover-card/HoverCard.vue +1 -1
- package/components/ui/hover-card/HoverCardContent.vue +3 -3
- package/components/ui/hover-card/HoverCardTrigger.vue +1 -1
- package/components/ui/hover-card/index.ts +1 -1
- package/components/ui/input/Input.vue +1 -1
- package/components/ui/label/Label.vue +3 -3
- package/components/ui/menubar/Menubar.vue +3 -3
- package/components/ui/menubar/MenubarCheckboxItem.vue +4 -4
- package/components/ui/menubar/MenubarContent.vue +3 -3
- package/components/ui/menubar/MenubarGroup.vue +1 -1
- package/components/ui/menubar/MenubarItem.vue +3 -3
- package/components/ui/menubar/MenubarLabel.vue +2 -2
- package/components/ui/menubar/MenubarMenu.vue +1 -1
- package/components/ui/menubar/MenubarRadioGroup.vue +1 -1
- package/components/ui/menubar/MenubarRadioItem.vue +4 -4
- package/components/ui/menubar/MenubarSeparator.vue +3 -3
- package/components/ui/menubar/MenubarShortcut.vue +1 -1
- package/components/ui/menubar/MenubarSub.vue +1 -1
- package/components/ui/menubar/MenubarSubContent.vue +3 -3
- package/components/ui/menubar/MenubarSubTrigger.vue +3 -3
- package/components/ui/menubar/MenubarTrigger.vue +3 -3
- package/components/ui/menubar/index.ts +4 -4
- package/components/ui/navigation-menu/NavigationMenu.vue +3 -3
- package/components/ui/navigation-menu/NavigationMenuContent.vue +3 -3
- package/components/ui/navigation-menu/NavigationMenuIndicator.vue +3 -3
- package/components/ui/navigation-menu/NavigationMenuItem.vue +1 -1
- package/components/ui/navigation-menu/NavigationMenuLink.vue +1 -1
- package/components/ui/navigation-menu/NavigationMenuList.vue +3 -3
- package/components/ui/navigation-menu/NavigationMenuTrigger.vue +4 -4
- package/components/ui/navigation-menu/NavigationMenuViewport.vue +4 -4
- package/components/ui/navigation-menu/index.ts +5 -3
- package/components/ui/number-field/NumberField.vue +4 -4
- package/components/ui/number-field/NumberFieldContent.vue +2 -2
- package/components/ui/number-field/NumberFieldDecrement.vue +5 -5
- package/components/ui/number-field/NumberFieldIncrement.vue +5 -5
- package/components/ui/number-field/NumberFieldInput.vue +11 -3
- package/components/ui/number-field/index.ts +3 -3
- package/components/ui/pagination/PaginationEllipsis.vue +3 -3
- package/components/ui/pagination/PaginationFirst.vue +5 -5
- package/components/ui/pagination/PaginationLast.vue +5 -5
- package/components/ui/pagination/PaginationNext.vue +5 -5
- package/components/ui/pagination/PaginationPrev.vue +5 -5
- package/components/ui/pagination/index.ts +5 -5
- package/components/ui/pin-input/PinInput.vue +3 -3
- package/components/ui/pin-input/PinInputGroup.vue +3 -3
- package/components/ui/pin-input/PinInputInput.vue +3 -3
- package/components/ui/pin-input/PinInputSeparator.vue +1 -1
- package/components/ui/pin-input/index.ts +1 -1
- package/components/ui/popover/Popover.vue +2 -2
- package/components/ui/popover/PopoverContent.vue +3 -3
- package/components/ui/popover/PopoverTrigger.vue +1 -1
- package/components/ui/popover/index.ts +1 -1
- package/components/ui/progress/Progress.vue +3 -3
- package/components/ui/radio-group/RadioGroup.vue +3 -3
- package/components/ui/radio-group/RadioGroupItem.vue +8 -6
- package/components/ui/range-calendar/RangeCalendar.vue +3 -3
- package/components/ui/range-calendar/RangeCalendarCell.vue +4 -4
- package/components/ui/range-calendar/RangeCalendarCellTrigger.vue +5 -5
- package/components/ui/range-calendar/RangeCalendarGrid.vue +3 -3
- package/components/ui/range-calendar/RangeCalendarGridBody.vue +1 -1
- package/components/ui/range-calendar/RangeCalendarGridHead.vue +1 -1
- package/components/ui/range-calendar/RangeCalendarGridRow.vue +3 -3
- package/components/ui/range-calendar/RangeCalendarHeadCell.vue +4 -4
- package/components/ui/range-calendar/RangeCalendarHeader.vue +3 -3
- package/components/ui/range-calendar/RangeCalendarHeading.vue +7 -3
- package/components/ui/range-calendar/RangeCalendarNextButton.vue +4 -4
- package/components/ui/range-calendar/RangeCalendarPrevButton.vue +4 -4
- package/components/ui/resizable/ResizableHandle.vue +3 -3
- package/components/ui/resizable/ResizablePanelGroup.vue +3 -3
- package/components/ui/resizable/index.ts +2 -2
- package/components/ui/scroll-area/ScrollArea.vue +3 -3
- package/components/ui/scroll-area/ScrollBar.vue +3 -3
- package/components/ui/select/Select.vue +2 -2
- package/components/ui/select/SelectContent.vue +4 -4
- package/components/ui/select/SelectGroup.vue +3 -3
- package/components/ui/select/SelectItem.vue +4 -4
- package/components/ui/select/SelectItemText.vue +1 -1
- package/components/ui/select/SelectLabel.vue +2 -2
- package/components/ui/select/SelectScrollDownButton.vue +3 -3
- package/components/ui/select/SelectScrollUpButton.vue +3 -3
- package/components/ui/select/SelectSeparator.vue +3 -3
- package/components/ui/select/SelectTrigger.vue +5 -5
- package/components/ui/select/SelectValue.vue +1 -1
- package/components/ui/select/index.ts +4 -4
- package/components/ui/separator/Separator.vue +21 -6
- package/components/ui/sheet/Sheet.vue +1 -1
- package/components/ui/sheet/SheetClose.vue +1 -1
- package/components/ui/sheet/SheetContent.vue +5 -5
- package/components/ui/sheet/SheetDescription.vue +3 -3
- package/components/ui/sheet/SheetFooter.vue +1 -1
- package/components/ui/sheet/SheetHeader.vue +1 -1
- package/components/ui/sheet/SheetTitle.vue +3 -3
- package/components/ui/sheet/SheetTrigger.vue +1 -1
- package/components/ui/sheet/index.ts +4 -4
- package/components/ui/sidebar/Sidebar.vue +8 -8
- package/components/ui/sidebar/SidebarContent.vue +1 -1
- package/components/ui/sidebar/SidebarFooter.vue +1 -1
- package/components/ui/sidebar/SidebarGroup.vue +1 -1
- package/components/ui/sidebar/SidebarGroupAction.vue +3 -4
- package/components/ui/sidebar/SidebarGroupContent.vue +1 -1
- package/components/ui/sidebar/SidebarGroupLabel.vue +3 -3
- package/components/ui/sidebar/SidebarHeader.vue +1 -1
- package/components/ui/sidebar/SidebarInput.vue +2 -2
- package/components/ui/sidebar/SidebarInset.vue +1 -1
- package/components/ui/sidebar/SidebarMenu.vue +1 -1
- package/components/ui/sidebar/SidebarMenuAction.vue +2 -3
- package/components/ui/sidebar/SidebarMenuBadge.vue +1 -1
- package/components/ui/sidebar/SidebarMenuButton.vue +1 -1
- package/components/ui/sidebar/SidebarMenuButtonChild.vue +2 -2
- package/components/ui/sidebar/SidebarMenuItem.vue +1 -1
- package/components/ui/sidebar/SidebarMenuSkeleton.vue +2 -2
- package/components/ui/sidebar/SidebarMenuSub.vue +1 -1
- package/components/ui/sidebar/SidebarMenuSubButton.vue +3 -3
- package/components/ui/sidebar/SidebarProvider.vue +2 -2
- package/components/ui/sidebar/SidebarRail.vue +1 -1
- package/components/ui/sidebar/SidebarSeparator.vue +2 -2
- package/components/ui/sidebar/SidebarTrigger.vue +2 -2
- package/components/ui/sidebar/utils.ts +1 -1
- package/components/ui/skeleton/Skeleton.vue +1 -1
- package/components/ui/slider/Slider.vue +7 -7
- package/components/ui/stepper/Stepper.vue +31 -0
- package/components/ui/stepper/StepperDescription.vue +23 -0
- package/components/ui/stepper/StepperIndicator.vue +35 -0
- package/components/ui/stepper/StepperItem.vue +27 -0
- package/components/ui/stepper/StepperSeparator.vue +31 -0
- package/components/ui/stepper/StepperTitle.vue +23 -0
- package/components/ui/stepper/StepperTrigger.vue +26 -0
- package/components/ui/stepper/index.ts +7 -0
- package/components/ui/switch/Switch.vue +7 -5
- package/components/ui/table/Table.vue +1 -1
- package/components/ui/table/TableBody.vue +1 -1
- package/components/ui/table/TableCaption.vue +1 -1
- package/components/ui/table/TableCell.vue +1 -1
- package/components/ui/table/TableEmpty.vue +3 -3
- package/components/ui/table/TableFooter.vue +1 -1
- package/components/ui/table/TableHead.vue +1 -1
- package/components/ui/table/TableHeader.vue +1 -1
- package/components/ui/table/TableRow.vue +1 -1
- package/components/ui/table/index.ts +3 -2
- package/components/ui/tabs/Tabs.vue +2 -2
- package/components/ui/tabs/TabsContent.vue +3 -3
- package/components/ui/tabs/TabsList.vue +4 -4
- package/components/ui/tabs/TabsTrigger.vue +6 -4
- package/components/ui/tabs/index.ts +2 -2
- package/components/ui/tags-input/TagsInput.vue +3 -3
- package/components/ui/tags-input/TagsInputInput.vue +3 -3
- package/components/ui/tags-input/TagsInputItem.vue +3 -3
- package/components/ui/tags-input/TagsInputItemDelete.vue +3 -3
- package/components/ui/tags-input/TagsInputItemText.vue +3 -3
- package/components/ui/textarea/Textarea.vue +1 -1
- package/components/ui/toast/Toast.vue +2 -2
- package/components/ui/toast/ToastAction.vue +3 -3
- package/components/ui/toast/ToastClose.vue +3 -3
- package/components/ui/toast/ToastDescription.vue +3 -3
- package/components/ui/toast/ToastProvider.vue +1 -1
- package/components/ui/toast/ToastTitle.vue +3 -3
- package/components/ui/toast/ToastViewport.vue +3 -3
- package/components/ui/toast/Toaster.vue +1 -1
- package/components/ui/toast/index.ts +6 -6
- package/components/ui/toast/use-toast.ts +1 -1
- package/components/ui/toggle/Toggle.vue +3 -3
- package/components/ui/toggle/index.ts +5 -5
- package/components/ui/toggle-group/ToggleGroup.vue +4 -4
- package/components/ui/toggle-group/ToggleGroupItem.vue +4 -4
- package/components/ui/tooltip/Tooltip.vue +1 -1
- package/components/ui/tooltip/TooltipContent.vue +3 -3
- package/components/ui/tooltip/TooltipProvider.vue +1 -1
- package/components/ui/tooltip/TooltipTrigger.vue +1 -1
- package/components/ui/tooltip/index.ts +1 -1
- package/components.json +10 -7
- package/lib/utils.ts +9 -0
- package/nuxt.config.ts +1 -1
- package/package.json +13 -13
- package/tsconfig.json +1 -1
- package/components/ui/accordion/index.js +0 -4
- package/components/ui/alert/index.js +0 -21
- package/components/ui/button/index.js +0 -33
- package/components/ui/card/index.js +0 -6
- package/components/ui/command/index.js +0 -9
- package/components/ui/dialog/index.js +0 -9
- package/components/ui/form/index.js +0 -7
- package/components/ui/form/injectionKeys.js +0 -1
- package/components/ui/form/useFormField.js +0 -36
- package/components/ui/input/index.js +0 -1
- package/components/ui/label/index.js +0 -1
- package/components/ui/popover/index.js +0 -3
- package/components/ui/progress/index.js +0 -1
- package/components/ui/separator/index.js +0 -1
- package/components/ui/v-calendar/Calendar.vue +0 -331
- package/components/ui/v-calendar/index.ts +0 -22
- package/layouts/app.vue +0 -224
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import type { ListboxRootEmits, ListboxRootProps } from 'reka-ui'
|
|
3
|
+
import { cn } from '~/lib/utils'
|
|
4
|
+
import { ListboxRoot, useFilter, useForwardPropsEmits } from 'reka-ui'
|
|
5
|
+
import { computed, type HTMLAttributes, reactive, ref, watch } from 'vue'
|
|
6
|
+
import { provideCommandContext } from '.'
|
|
6
7
|
|
|
7
|
-
const props = withDefaults(defineProps<
|
|
8
|
-
open: true,
|
|
8
|
+
const props = withDefaults(defineProps<ListboxRootProps & { class?: HTMLAttributes['class'] }>(), {
|
|
9
9
|
modelValue: '',
|
|
10
10
|
})
|
|
11
11
|
|
|
12
|
-
const emits = defineEmits<
|
|
12
|
+
const emits = defineEmits<ListboxRootEmits>()
|
|
13
13
|
|
|
14
14
|
const delegatedProps = computed(() => {
|
|
15
15
|
const { class: _, ...delegated } = props
|
|
@@ -18,13 +18,75 @@ const delegatedProps = computed(() => {
|
|
|
18
18
|
})
|
|
19
19
|
|
|
20
20
|
const forwarded = useForwardPropsEmits(delegatedProps, emits)
|
|
21
|
+
|
|
22
|
+
const allItems = ref<Map<string, string>>(new Map())
|
|
23
|
+
const allGroups = ref<Map<string, Set<string>>>(new Map())
|
|
24
|
+
|
|
25
|
+
const { contains } = useFilter({ sensitivity: 'base' })
|
|
26
|
+
const filterState = reactive({
|
|
27
|
+
search: '',
|
|
28
|
+
filtered: {
|
|
29
|
+
/** The count of all visible items. */
|
|
30
|
+
count: 0,
|
|
31
|
+
/** Map from visible item id to its search score. */
|
|
32
|
+
items: new Map() as Map<string, number>,
|
|
33
|
+
/** Set of groups with at least one visible item. */
|
|
34
|
+
groups: new Set() as Set<string>,
|
|
35
|
+
},
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
function filterItems() {
|
|
39
|
+
if (!filterState.search) {
|
|
40
|
+
filterState.filtered.count = allItems.value.size
|
|
41
|
+
// Do nothing, each item will know to show itself because search is empty
|
|
42
|
+
return
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Reset the groups
|
|
46
|
+
filterState.filtered.groups = new Set()
|
|
47
|
+
let itemCount = 0
|
|
48
|
+
|
|
49
|
+
// Check which items should be included
|
|
50
|
+
for (const [id, value] of allItems.value) {
|
|
51
|
+
const score = contains(value, filterState.search)
|
|
52
|
+
filterState.filtered.items.set(id, score ? 1 : 0)
|
|
53
|
+
if (score)
|
|
54
|
+
itemCount++
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// Check which groups have at least 1 item shown
|
|
58
|
+
for (const [groupId, group] of allGroups.value) {
|
|
59
|
+
for (const itemId of group) {
|
|
60
|
+
if (filterState.filtered.items.get(itemId)! > 0) {
|
|
61
|
+
filterState.filtered.groups.add(groupId)
|
|
62
|
+
break
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
filterState.filtered.count = itemCount
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function handleSelect() {
|
|
71
|
+
filterState.search = ''
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
watch(() => filterState.search, () => {
|
|
75
|
+
filterItems()
|
|
76
|
+
})
|
|
77
|
+
|
|
78
|
+
provideCommandContext({
|
|
79
|
+
allItems,
|
|
80
|
+
allGroups,
|
|
81
|
+
filterState,
|
|
82
|
+
})
|
|
21
83
|
</script>
|
|
22
84
|
|
|
23
85
|
<template>
|
|
24
|
-
<
|
|
86
|
+
<ListboxRoot
|
|
25
87
|
v-bind="forwarded"
|
|
26
88
|
:class="cn('flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground', props.class)"
|
|
27
89
|
>
|
|
28
90
|
<slot />
|
|
29
|
-
</
|
|
91
|
+
</ListboxRoot>
|
|
30
92
|
</template>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
2
|
+
import type { DialogRootEmits, DialogRootProps } from 'reka-ui'
|
|
3
|
+
import { Dialog, DialogContent } from '~/components/ui/dialog'
|
|
4
|
+
import { useForwardPropsEmits } from 'reka-ui'
|
|
4
5
|
import Command from './Command.vue'
|
|
5
|
-
import { Dialog, DialogContent } from '@/components/ui/dialog'
|
|
6
6
|
|
|
7
7
|
const props = defineProps<DialogRootProps>()
|
|
8
8
|
const emits = defineEmits<DialogRootEmits>()
|
|
@@ -1,20 +1,25 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import type { PrimitiveProps } from 'reka-ui'
|
|
3
|
+
import { cn } from '~/lib/utils'
|
|
4
|
+
import { Primitive } from 'reka-ui'
|
|
5
|
+
import { computed, type HTMLAttributes } from 'vue'
|
|
6
|
+
import { useCommand } from '.'
|
|
6
7
|
|
|
7
|
-
const props = defineProps<
|
|
8
|
+
const props = defineProps<PrimitiveProps & { class?: HTMLAttributes['class'] }>()
|
|
8
9
|
|
|
9
10
|
const delegatedProps = computed(() => {
|
|
10
11
|
const { class: _, ...delegated } = props
|
|
11
12
|
|
|
12
13
|
return delegated
|
|
13
14
|
})
|
|
15
|
+
|
|
16
|
+
const { filterState } = useCommand()
|
|
17
|
+
const isRender = computed(() => !!filterState.search && filterState.filtered.count === 0,
|
|
18
|
+
)
|
|
14
19
|
</script>
|
|
15
20
|
|
|
16
21
|
<template>
|
|
17
|
-
<
|
|
22
|
+
<Primitive v-if="isRender" v-bind="delegatedProps" :class="cn('py-6 text-center text-sm', props.class)">
|
|
18
23
|
<slot />
|
|
19
|
-
</
|
|
24
|
+
</Primitive>
|
|
20
25
|
</template>
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import type { ListboxGroupProps } from 'reka-ui'
|
|
3
|
+
import { cn } from '~/lib/utils'
|
|
4
|
+
import { ListboxGroup, ListboxGroupLabel, useId } from 'reka-ui'
|
|
5
|
+
import { computed, type HTMLAttributes, onMounted, onUnmounted } from 'vue'
|
|
6
|
+
import { provideCommandGroupContext, useCommand } from '.'
|
|
6
7
|
|
|
7
|
-
const props = defineProps<
|
|
8
|
+
const props = defineProps<ListboxGroupProps & {
|
|
8
9
|
class?: HTMLAttributes['class']
|
|
9
10
|
heading?: string
|
|
10
11
|
}>()
|
|
@@ -14,16 +15,32 @@ const delegatedProps = computed(() => {
|
|
|
14
15
|
|
|
15
16
|
return delegated
|
|
16
17
|
})
|
|
18
|
+
|
|
19
|
+
const { allGroups, filterState } = useCommand()
|
|
20
|
+
const id = useId()
|
|
21
|
+
|
|
22
|
+
const isRender = computed(() => !filterState.search ? true : filterState.filtered.groups.has(id))
|
|
23
|
+
|
|
24
|
+
provideCommandGroupContext({ id })
|
|
25
|
+
onMounted(() => {
|
|
26
|
+
if (!allGroups.value.has(id))
|
|
27
|
+
allGroups.value.set(id, new Set())
|
|
28
|
+
})
|
|
29
|
+
onUnmounted(() => {
|
|
30
|
+
allGroups.value.delete(id)
|
|
31
|
+
})
|
|
17
32
|
</script>
|
|
18
33
|
|
|
19
34
|
<template>
|
|
20
|
-
<
|
|
35
|
+
<ListboxGroup
|
|
21
36
|
v-bind="delegatedProps"
|
|
37
|
+
:id="id"
|
|
22
38
|
:class="cn('overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground', props.class)"
|
|
39
|
+
:hidden="isRender ? undefined : true"
|
|
23
40
|
>
|
|
24
|
-
<
|
|
41
|
+
<ListboxGroupLabel v-if="heading" class="px-2 py-1.5 text-xs font-medium text-muted-foreground">
|
|
25
42
|
{{ heading }}
|
|
26
|
-
</
|
|
43
|
+
</ListboxGroupLabel>
|
|
27
44
|
<slot />
|
|
28
|
-
</
|
|
45
|
+
</ListboxGroup>
|
|
29
46
|
</template>
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { cn } from '~/lib/utils'
|
|
3
3
|
import { Search } from 'lucide-vue-next'
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { ListboxFilter, type ListboxFilterProps, useForwardProps } from 'reka-ui'
|
|
5
|
+
import { computed, type HTMLAttributes } from 'vue'
|
|
6
|
+
import { useCommand } from '.'
|
|
6
7
|
|
|
7
8
|
defineOptions({
|
|
8
9
|
inheritAttrs: false,
|
|
9
10
|
})
|
|
10
11
|
|
|
11
|
-
const props = defineProps<
|
|
12
|
+
const props = defineProps<ListboxFilterProps & {
|
|
12
13
|
class?: HTMLAttributes['class']
|
|
13
14
|
}>()
|
|
14
15
|
|
|
@@ -19,15 +20,18 @@ const delegatedProps = computed(() => {
|
|
|
19
20
|
})
|
|
20
21
|
|
|
21
22
|
const forwardedProps = useForwardProps(delegatedProps)
|
|
23
|
+
|
|
24
|
+
const { filterState } = useCommand()
|
|
22
25
|
</script>
|
|
23
26
|
|
|
24
27
|
<template>
|
|
25
28
|
<div class="flex items-center border-b px-3" cmdk-input-wrapper>
|
|
26
29
|
<Search class="mr-2 h-4 w-4 shrink-0 opacity-50" />
|
|
27
|
-
<
|
|
30
|
+
<ListboxFilter
|
|
28
31
|
v-bind="{ ...forwardedProps, ...$attrs }"
|
|
32
|
+
v-model="filterState.search"
|
|
29
33
|
auto-focus
|
|
30
|
-
:class="cn('flex h-
|
|
34
|
+
:class="cn('flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50', props.class)"
|
|
31
35
|
/>
|
|
32
36
|
</div>
|
|
33
37
|
</template>
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import type { ListboxItemEmits, ListboxItemProps } from 'reka-ui'
|
|
3
|
+
import { cn } from '~/lib/utils'
|
|
4
|
+
import { useCurrentElement } from '@vueuse/core'
|
|
5
|
+
import { ListboxItem, useForwardPropsEmits, useId } from 'reka-ui'
|
|
6
|
+
import { computed, type HTMLAttributes, onMounted, onUnmounted, ref } from 'vue'
|
|
7
|
+
import { useCommand, useCommandGroup } from '.'
|
|
6
8
|
|
|
7
|
-
const props = defineProps<
|
|
8
|
-
const emits = defineEmits<
|
|
9
|
+
const props = defineProps<ListboxItemProps & { class?: HTMLAttributes['class'] }>()
|
|
10
|
+
const emits = defineEmits<ListboxItemEmits>()
|
|
9
11
|
|
|
10
12
|
const delegatedProps = computed(() => {
|
|
11
13
|
const { class: _, ...delegated } = props
|
|
@@ -14,13 +16,63 @@ const delegatedProps = computed(() => {
|
|
|
14
16
|
})
|
|
15
17
|
|
|
16
18
|
const forwarded = useForwardPropsEmits(delegatedProps, emits)
|
|
19
|
+
|
|
20
|
+
const id = useId()
|
|
21
|
+
const { filterState, allItems, allGroups } = useCommand()
|
|
22
|
+
const groupContext = useCommandGroup()
|
|
23
|
+
|
|
24
|
+
const isRender = computed(() => {
|
|
25
|
+
if (!filterState.search) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
const filteredCurrentItem = filterState.filtered.items.get(id)
|
|
30
|
+
// If the filtered items is undefined means not in the all times map yet
|
|
31
|
+
// Do the first render to add into the map
|
|
32
|
+
if (filteredCurrentItem === undefined) {
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Check with filter
|
|
37
|
+
return filteredCurrentItem > 0;
|
|
38
|
+
}
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
const itemRef = ref()
|
|
42
|
+
const currentElement = useCurrentElement(itemRef)
|
|
43
|
+
onMounted(() => {
|
|
44
|
+
if (!(currentElement.value instanceof HTMLElement))
|
|
45
|
+
return
|
|
46
|
+
|
|
47
|
+
// textValue to perform filter
|
|
48
|
+
allItems.value.set(id, currentElement.value.textContent ?? props.value.toString())
|
|
49
|
+
|
|
50
|
+
const groupId = groupContext?.id
|
|
51
|
+
if (groupId) {
|
|
52
|
+
if (!allGroups.value.has(groupId)) {
|
|
53
|
+
allGroups.value.set(groupId, new Set([id]))
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
allGroups.value.get(groupId)?.add(id)
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
})
|
|
60
|
+
onUnmounted(() => {
|
|
61
|
+
allItems.value.delete(id)
|
|
62
|
+
})
|
|
17
63
|
</script>
|
|
18
64
|
|
|
19
65
|
<template>
|
|
20
|
-
<
|
|
66
|
+
<ListboxItem
|
|
67
|
+
v-if="isRender"
|
|
21
68
|
v-bind="forwarded"
|
|
22
|
-
:
|
|
69
|
+
:id="id"
|
|
70
|
+
ref="itemRef"
|
|
71
|
+
:class="cn('relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0', props.class)"
|
|
72
|
+
@select="() => {
|
|
73
|
+
filterState.search = ''
|
|
74
|
+
}"
|
|
23
75
|
>
|
|
24
76
|
<slot />
|
|
25
|
-
</
|
|
77
|
+
</ListboxItem>
|
|
26
78
|
</template>
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import type { ListboxContentProps } from 'reka-ui'
|
|
3
|
+
import { cn } from '~/lib/utils'
|
|
4
|
+
import { ListboxContent, useForwardProps } from 'reka-ui'
|
|
5
|
+
import { computed, type HTMLAttributes } from 'vue'
|
|
6
6
|
|
|
7
|
-
const props =
|
|
8
|
-
dismissable: false,
|
|
9
|
-
})
|
|
10
|
-
const emits = defineEmits<ComboboxContentEmits>()
|
|
7
|
+
const props = defineProps<ListboxContentProps & { class?: HTMLAttributes['class'] }>()
|
|
11
8
|
|
|
12
9
|
const delegatedProps = computed(() => {
|
|
13
10
|
const { class: _, ...delegated } = props
|
|
@@ -15,13 +12,13 @@ const delegatedProps = computed(() => {
|
|
|
15
12
|
return delegated
|
|
16
13
|
})
|
|
17
14
|
|
|
18
|
-
const forwarded =
|
|
15
|
+
const forwarded = useForwardProps(delegatedProps)
|
|
19
16
|
</script>
|
|
20
17
|
|
|
21
18
|
<template>
|
|
22
|
-
<
|
|
19
|
+
<ListboxContent v-bind="forwarded" :class="cn('max-h-[300px] overflow-y-auto overflow-x-hidden', props.class)">
|
|
23
20
|
<div role="presentation">
|
|
24
21
|
<slot />
|
|
25
22
|
</div>
|
|
26
|
-
</
|
|
23
|
+
</ListboxContent>
|
|
27
24
|
</template>
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import type { SeparatorProps } from 'reka-ui'
|
|
3
|
+
import { cn } from '~/lib/utils'
|
|
4
|
+
import { Separator } from 'reka-ui'
|
|
5
|
+
import { computed, type HTMLAttributes } from 'vue'
|
|
6
6
|
|
|
7
|
-
const props = defineProps<
|
|
7
|
+
const props = defineProps<SeparatorProps & { class?: HTMLAttributes['class'] }>()
|
|
8
8
|
|
|
9
9
|
const delegatedProps = computed(() => {
|
|
10
10
|
const { class: _, ...delegated } = props
|
|
@@ -14,10 +14,10 @@ const delegatedProps = computed(() => {
|
|
|
14
14
|
</script>
|
|
15
15
|
|
|
16
16
|
<template>
|
|
17
|
-
<
|
|
17
|
+
<Separator
|
|
18
18
|
v-bind="delegatedProps"
|
|
19
19
|
:class="cn('-mx-1 h-px bg-border', props.class)"
|
|
20
20
|
>
|
|
21
21
|
<slot />
|
|
22
|
-
</
|
|
22
|
+
</Separator>
|
|
23
23
|
</template>
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import type { Ref } from 'vue'
|
|
2
|
+
import { createContext } from 'reka-ui'
|
|
3
|
+
|
|
1
4
|
export { default as Command } from './Command.vue'
|
|
2
5
|
export { default as CommandDialog } from './CommandDialog.vue'
|
|
3
6
|
export { default as CommandEmpty } from './CommandEmpty.vue'
|
|
@@ -7,3 +10,16 @@ export { default as CommandItem } from './CommandItem.vue'
|
|
|
7
10
|
export { default as CommandList } from './CommandList.vue'
|
|
8
11
|
export { default as CommandSeparator } from './CommandSeparator.vue'
|
|
9
12
|
export { default as CommandShortcut } from './CommandShortcut.vue'
|
|
13
|
+
|
|
14
|
+
export const [useCommand, provideCommandContext] = createContext<{
|
|
15
|
+
allItems: Ref<Map<string, string>>
|
|
16
|
+
allGroups: Ref<Map<string, Set<string>>>
|
|
17
|
+
filterState: {
|
|
18
|
+
search: string
|
|
19
|
+
filtered: { count: number, items: Map<string, number>, groups: Set<string> }
|
|
20
|
+
}
|
|
21
|
+
}>('Command')
|
|
22
|
+
|
|
23
|
+
export const [useCommandGroup, provideCommandGroupContext] = createContext<{
|
|
24
|
+
id?: string
|
|
25
|
+
}>('CommandGroup')
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
2
|
+
import type { ContextMenuRootEmits, ContextMenuRootProps } from 'reka-ui'
|
|
3
|
+
import { ContextMenuRoot, useForwardPropsEmits } from 'reka-ui'
|
|
4
4
|
|
|
5
5
|
const props = defineProps<ContextMenuRootProps>()
|
|
6
6
|
const emits = defineEmits<ContextMenuRootEmits>()
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { cn } from '~/lib/utils'
|
|
3
|
+
import { Check } from 'lucide-vue-next'
|
|
3
4
|
import {
|
|
4
5
|
ContextMenuCheckboxItem,
|
|
5
6
|
type ContextMenuCheckboxItemEmits,
|
|
6
7
|
type ContextMenuCheckboxItemProps,
|
|
7
8
|
ContextMenuItemIndicator,
|
|
8
9
|
useForwardPropsEmits,
|
|
9
|
-
} from '
|
|
10
|
-
import {
|
|
11
|
-
import { cn } from '@/lib/utils'
|
|
10
|
+
} from 'reka-ui'
|
|
11
|
+
import { computed, type HTMLAttributes } from 'vue'
|
|
12
12
|
|
|
13
13
|
const props = defineProps<ContextMenuCheckboxItemProps & { class?: HTMLAttributes['class'] }>()
|
|
14
14
|
const emits = defineEmits<ContextMenuCheckboxItemEmits>()
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { cn } from '~/lib/utils'
|
|
3
3
|
import {
|
|
4
4
|
ContextMenuContent,
|
|
5
5
|
type ContextMenuContentEmits,
|
|
6
6
|
type ContextMenuContentProps,
|
|
7
7
|
ContextMenuPortal,
|
|
8
8
|
useForwardPropsEmits,
|
|
9
|
-
} from '
|
|
10
|
-
import {
|
|
9
|
+
} from 'reka-ui'
|
|
10
|
+
import { computed, type HTMLAttributes } from 'vue'
|
|
11
11
|
|
|
12
12
|
const props = defineProps<ContextMenuContentProps & { class?: HTMLAttributes['class'] }>()
|
|
13
13
|
const emits = defineEmits<ContextMenuContentEmits>()
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { cn } from '~/lib/utils'
|
|
3
3
|
import {
|
|
4
4
|
ContextMenuItem,
|
|
5
5
|
type ContextMenuItemEmits,
|
|
6
6
|
type ContextMenuItemProps,
|
|
7
7
|
useForwardPropsEmits,
|
|
8
|
-
} from '
|
|
9
|
-
import {
|
|
8
|
+
} from 'reka-ui'
|
|
9
|
+
import { computed, type HTMLAttributes } from 'vue'
|
|
10
10
|
|
|
11
11
|
const props = defineProps<ContextMenuItemProps & { class?: HTMLAttributes['class'], inset?: boolean }>()
|
|
12
12
|
const emits = defineEmits<ContextMenuItemEmits>()
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import {
|
|
3
|
-
import { ContextMenuLabel, type ContextMenuLabelProps } from '
|
|
4
|
-
import {
|
|
2
|
+
import { cn } from '~/lib/utils'
|
|
3
|
+
import { ContextMenuLabel, type ContextMenuLabelProps } from 'reka-ui'
|
|
4
|
+
import { computed, type HTMLAttributes } from 'vue'
|
|
5
5
|
|
|
6
6
|
const props = defineProps<ContextMenuLabelProps & { class?: HTMLAttributes['class'], inset?: boolean }>()
|
|
7
7
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { cn } from '~/lib/utils'
|
|
3
|
+
import { Circle } from 'lucide-vue-next'
|
|
3
4
|
import {
|
|
4
5
|
ContextMenuItemIndicator,
|
|
5
6
|
ContextMenuRadioItem,
|
|
6
7
|
type ContextMenuRadioItemEmits,
|
|
7
8
|
type ContextMenuRadioItemProps,
|
|
8
9
|
useForwardPropsEmits,
|
|
9
|
-
} from '
|
|
10
|
-
import {
|
|
11
|
-
import { cn } from '@/lib/utils'
|
|
10
|
+
} from 'reka-ui'
|
|
11
|
+
import { computed, type HTMLAttributes } from 'vue'
|
|
12
12
|
|
|
13
13
|
const props = defineProps<ContextMenuRadioItemProps & { class?: HTMLAttributes['class'] }>()
|
|
14
14
|
const emits = defineEmits<ContextMenuRadioItemEmits>()
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { cn } from '~/lib/utils'
|
|
3
3
|
import {
|
|
4
4
|
ContextMenuSeparator,
|
|
5
5
|
type ContextMenuSeparatorProps,
|
|
6
|
-
} from '
|
|
7
|
-
import {
|
|
6
|
+
} from 'reka-ui'
|
|
7
|
+
import { computed, type HTMLAttributes } from 'vue'
|
|
8
8
|
|
|
9
9
|
const props = defineProps<ContextMenuSeparatorProps & { class?: HTMLAttributes['class'] }>()
|
|
10
10
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { cn } from '~/lib/utils'
|
|
3
3
|
import {
|
|
4
4
|
ContextMenuSubContent,
|
|
5
5
|
type DropdownMenuSubContentEmits,
|
|
6
6
|
type DropdownMenuSubContentProps,
|
|
7
7
|
useForwardPropsEmits,
|
|
8
|
-
} from '
|
|
9
|
-
import {
|
|
8
|
+
} from 'reka-ui'
|
|
9
|
+
import { computed, type HTMLAttributes } from 'vue'
|
|
10
10
|
|
|
11
11
|
const props = defineProps<DropdownMenuSubContentProps & { class?: HTMLAttributes['class'] }>()
|
|
12
12
|
const emits = defineEmits<DropdownMenuSubContentEmits>()
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { cn } from '~/lib/utils'
|
|
3
|
+
import { ChevronRight } from 'lucide-vue-next'
|
|
3
4
|
import {
|
|
4
5
|
ContextMenuSubTrigger,
|
|
5
6
|
type ContextMenuSubTriggerProps,
|
|
6
7
|
useForwardProps,
|
|
7
|
-
} from '
|
|
8
|
-
import {
|
|
9
|
-
import { cn } from '@/lib/utils'
|
|
8
|
+
} from 'reka-ui'
|
|
9
|
+
import { computed, type HTMLAttributes } from 'vue'
|
|
10
10
|
|
|
11
11
|
const props = defineProps<ContextMenuSubTriggerProps & { class?: HTMLAttributes['class'], inset?: boolean }>()
|
|
12
12
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import { ContextMenuTrigger, type ContextMenuTriggerProps, useForwardProps } from '
|
|
2
|
+
import { ContextMenuTrigger, type ContextMenuTriggerProps, useForwardProps } from 'reka-ui'
|
|
3
3
|
|
|
4
4
|
const props = defineProps<ContextMenuTriggerProps>()
|
|
5
5
|
|