gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/components/ui/dropdown-menu.tsx · v0.3.0-alpha6
Source
1 88bd1b0 Mrdn 2y ago import * as React from "react"
2 88bd1b0 Mrdn 2y ago import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu"
3 88bd1b0 Mrdn 2y ago import { Check, ChevronRight, Circle } from "lucide-react"
4 88bd1b0 Mrdn 2y ago
5 88bd1b0 Mrdn 2y ago import { cn } from "@marzneshin/utils"
6 88bd1b0 Mrdn 2y ago
7 88bd1b0 Mrdn 2y ago const DropdownMenu = DropdownMenuPrimitive.Root
8 88bd1b0 Mrdn 2y ago
9 88bd1b0 Mrdn 2y ago const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger
10 88bd1b0 Mrdn 2y ago
11 88bd1b0 Mrdn 2y ago const DropdownMenuGroup = DropdownMenuPrimitive.Group
12 88bd1b0 Mrdn 2y ago
13 88bd1b0 Mrdn 2y ago const DropdownMenuPortal = DropdownMenuPrimitive.Portal
14 88bd1b0 Mrdn 2y ago
15 88bd1b0 Mrdn 2y ago const DropdownMenuSub = DropdownMenuPrimitive.Sub
16 88bd1b0 Mrdn 2y ago
17 88bd1b0 Mrdn 2y ago const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup
18 88bd1b0 Mrdn 2y ago
19 88bd1b0 Mrdn 2y ago const DropdownMenuSubTrigger = React.forwardRef<
20 88bd1b0 Mrdn 2y ago React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,
21 88bd1b0 Mrdn 2y ago React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {
22 88bd1b0 Mrdn 2y ago inset?: boolean
23 88bd1b0 Mrdn 2y ago }
24 88bd1b0 Mrdn 2y ago >(({ className, inset, children, ...props }, ref) => (
25 88bd1b0 Mrdn 2y ago <DropdownMenuPrimitive.SubTrigger
26 88bd1b0 Mrdn 2y ago ref={ref}
27 88bd1b0 Mrdn 2y ago className={cn(
28 88bd1b0 Mrdn 2y ago "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent",
29 88bd1b0 Mrdn 2y ago inset && "pl-8",
30 88bd1b0 Mrdn 2y ago className
31 88bd1b0 Mrdn 2y ago )}
32 88bd1b0 Mrdn 2y ago {...props}
33 88bd1b0 Mrdn 2y ago >
34 88bd1b0 Mrdn 2y ago {children}
35 88bd1b0 Mrdn 2y ago <ChevronRight className="ml-auto h-4 w-4" />
36 88bd1b0 Mrdn 2y ago </DropdownMenuPrimitive.SubTrigger>
37 88bd1b0 Mrdn 2y ago ))
38 88bd1b0 Mrdn 2y ago DropdownMenuSubTrigger.displayName =
39 88bd1b0 Mrdn 2y ago DropdownMenuPrimitive.SubTrigger.displayName
40 88bd1b0 Mrdn 2y ago
41 88bd1b0 Mrdn 2y ago const DropdownMenuSubContent = React.forwardRef<
42 88bd1b0 Mrdn 2y ago React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,
43 88bd1b0 Mrdn 2y ago React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>
44 88bd1b0 Mrdn 2y ago >(({ className, ...props }, ref) => (
45 88bd1b0 Mrdn 2y ago <DropdownMenuPrimitive.SubContent
46 88bd1b0 Mrdn 2y ago ref={ref}
47 88bd1b0 Mrdn 2y ago className={cn(
48 88bd1b0 Mrdn 2y ago "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
49 88bd1b0 Mrdn 2y ago className
50 88bd1b0 Mrdn 2y ago )}
51 88bd1b0 Mrdn 2y ago {...props}
52 88bd1b0 Mrdn 2y ago />
53 88bd1b0 Mrdn 2y ago ))
54 88bd1b0 Mrdn 2y ago DropdownMenuSubContent.displayName =
55 88bd1b0 Mrdn 2y ago DropdownMenuPrimitive.SubContent.displayName
56 88bd1b0 Mrdn 2y ago
57 88bd1b0 Mrdn 2y ago const DropdownMenuContent = React.forwardRef<
58 88bd1b0 Mrdn 2y ago React.ElementRef<typeof DropdownMenuPrimitive.Content>,
59 88bd1b0 Mrdn 2y ago React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>
60 88bd1b0 Mrdn 2y ago >(({ className, sideOffset = 4, ...props }, ref) => (
61 88bd1b0 Mrdn 2y ago <DropdownMenuPrimitive.Portal>
62 88bd1b0 Mrdn 2y ago <DropdownMenuPrimitive.Content
63 88bd1b0 Mrdn 2y ago ref={ref}
64 88bd1b0 Mrdn 2y ago sideOffset={sideOffset}
65 88bd1b0 Mrdn 2y ago className={cn(
66 88bd1b0 Mrdn 2y ago "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
67 88bd1b0 Mrdn 2y ago className
68 88bd1b0 Mrdn 2y ago )}
69 88bd1b0 Mrdn 2y ago {...props}
70 88bd1b0 Mrdn 2y ago />
71 88bd1b0 Mrdn 2y ago </DropdownMenuPrimitive.Portal>
72 88bd1b0 Mrdn 2y ago ))
73 88bd1b0 Mrdn 2y ago DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName
74 88bd1b0 Mrdn 2y ago
75 88bd1b0 Mrdn 2y ago const DropdownMenuItem = React.forwardRef<
76 88bd1b0 Mrdn 2y ago React.ElementRef<typeof DropdownMenuPrimitive.Item>,
77 88bd1b0 Mrdn 2y ago React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {
78 88bd1b0 Mrdn 2y ago inset?: boolean
79 88bd1b0 Mrdn 2y ago }
80 88bd1b0 Mrdn 2y ago >(({ className, inset, ...props }, ref) => (
81 88bd1b0 Mrdn 2y ago <DropdownMenuPrimitive.Item
82 88bd1b0 Mrdn 2y ago ref={ref}
83 88bd1b0 Mrdn 2y ago className={cn(
84 88bd1b0 Mrdn 2y ago "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
85 88bd1b0 Mrdn 2y ago inset && "pl-8",
86 88bd1b0 Mrdn 2y ago className
87 88bd1b0 Mrdn 2y ago )}
88 88bd1b0 Mrdn 2y ago {...props}
89 88bd1b0 Mrdn 2y ago />
90 88bd1b0 Mrdn 2y ago ))
91 88bd1b0 Mrdn 2y ago DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName
92 88bd1b0 Mrdn 2y ago
93 88bd1b0 Mrdn 2y ago const DropdownMenuCheckboxItem = React.forwardRef<
94 88bd1b0 Mrdn 2y ago React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,
95 88bd1b0 Mrdn 2y ago React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>
96 88bd1b0 Mrdn 2y ago >(({ className, children, checked, ...props }, ref) => (
97 88bd1b0 Mrdn 2y ago <DropdownMenuPrimitive.CheckboxItem
98 88bd1b0 Mrdn 2y ago ref={ref}
99 88bd1b0 Mrdn 2y ago className={cn(
100 88bd1b0 Mrdn 2y ago "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
101 88bd1b0 Mrdn 2y ago className
102 88bd1b0 Mrdn 2y ago )}
103 88bd1b0 Mrdn 2y ago checked={checked}
104 88bd1b0 Mrdn 2y ago {...props}
105 88bd1b0 Mrdn 2y ago >
106 88bd1b0 Mrdn 2y ago <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
107 88bd1b0 Mrdn 2y ago <DropdownMenuPrimitive.ItemIndicator>
108 88bd1b0 Mrdn 2y ago <Check className="h-4 w-4" />
109 88bd1b0 Mrdn 2y ago </DropdownMenuPrimitive.ItemIndicator>
110 88bd1b0 Mrdn 2y ago </span>
111 88bd1b0 Mrdn 2y ago {children}
112 88bd1b0 Mrdn 2y ago </DropdownMenuPrimitive.CheckboxItem>
113 88bd1b0 Mrdn 2y ago ))
114 88bd1b0 Mrdn 2y ago DropdownMenuCheckboxItem.displayName =
115 88bd1b0 Mrdn 2y ago DropdownMenuPrimitive.CheckboxItem.displayName
116 88bd1b0 Mrdn 2y ago
117 88bd1b0 Mrdn 2y ago const DropdownMenuRadioItem = React.forwardRef<
118 88bd1b0 Mrdn 2y ago React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,
119 88bd1b0 Mrdn 2y ago React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>
120 88bd1b0 Mrdn 2y ago >(({ className, children, ...props }, ref) => (
121 88bd1b0 Mrdn 2y ago <DropdownMenuPrimitive.RadioItem
122 88bd1b0 Mrdn 2y ago ref={ref}
123 88bd1b0 Mrdn 2y ago className={cn(
124 88bd1b0 Mrdn 2y ago "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
125 88bd1b0 Mrdn 2y ago className
126 88bd1b0 Mrdn 2y ago )}
127 88bd1b0 Mrdn 2y ago {...props}
128 88bd1b0 Mrdn 2y ago >
129 88bd1b0 Mrdn 2y ago <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
130 88bd1b0 Mrdn 2y ago <DropdownMenuPrimitive.ItemIndicator>
131 88bd1b0 Mrdn 2y ago <Circle className="h-2 w-2 fill-current" />
132 88bd1b0 Mrdn 2y ago </DropdownMenuPrimitive.ItemIndicator>
133 88bd1b0 Mrdn 2y ago </span>
134 88bd1b0 Mrdn 2y ago {children}
135 88bd1b0 Mrdn 2y ago </DropdownMenuPrimitive.RadioItem>
136 88bd1b0 Mrdn 2y ago ))
137 88bd1b0 Mrdn 2y ago DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName
138 88bd1b0 Mrdn 2y ago
139 88bd1b0 Mrdn 2y ago const DropdownMenuLabel = React.forwardRef<
140 88bd1b0 Mrdn 2y ago React.ElementRef<typeof DropdownMenuPrimitive.Label>,
141 88bd1b0 Mrdn 2y ago React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {
142 88bd1b0 Mrdn 2y ago inset?: boolean
143 88bd1b0 Mrdn 2y ago }
144 88bd1b0 Mrdn 2y ago >(({ className, inset, ...props }, ref) => (
145 88bd1b0 Mrdn 2y ago <DropdownMenuPrimitive.Label
146 88bd1b0 Mrdn 2y ago ref={ref}
147 88bd1b0 Mrdn 2y ago className={cn(
148 88bd1b0 Mrdn 2y ago "px-2 py-1.5 text-sm font-semibold",
149 88bd1b0 Mrdn 2y ago inset && "pl-8",
150 88bd1b0 Mrdn 2y ago className
151 88bd1b0 Mrdn 2y ago )}
152 88bd1b0 Mrdn 2y ago {...props}
153 88bd1b0 Mrdn 2y ago />
154 88bd1b0 Mrdn 2y ago ))
155 88bd1b0 Mrdn 2y ago DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName
156 88bd1b0 Mrdn 2y ago
157 88bd1b0 Mrdn 2y ago const DropdownMenuSeparator = React.forwardRef<
158 88bd1b0 Mrdn 2y ago React.ElementRef<typeof DropdownMenuPrimitive.Separator>,
159 88bd1b0 Mrdn 2y ago React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>
160 88bd1b0 Mrdn 2y ago >(({ className, ...props }, ref) => (
161 88bd1b0 Mrdn 2y ago <DropdownMenuPrimitive.Separator
162 88bd1b0 Mrdn 2y ago ref={ref}
163 88bd1b0 Mrdn 2y ago className={cn("-mx-1 my-1 h-px bg-muted", className)}
164 88bd1b0 Mrdn 2y ago {...props}
165 88bd1b0 Mrdn 2y ago />
166 88bd1b0 Mrdn 2y ago ))
167 88bd1b0 Mrdn 2y ago DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName
168 88bd1b0 Mrdn 2y ago
169 88bd1b0 Mrdn 2y ago const DropdownMenuShortcut = ({
170 88bd1b0 Mrdn 2y ago className,
171 88bd1b0 Mrdn 2y ago ...props
172 88bd1b0 Mrdn 2y ago }: React.HTMLAttributes<HTMLSpanElement>) => {
173 88bd1b0 Mrdn 2y ago return (
174 88bd1b0 Mrdn 2y ago <span
175 88bd1b0 Mrdn 2y ago className={cn("ml-auto text-xs tracking-widest opacity-60", className)}
176 88bd1b0 Mrdn 2y ago {...props}
177 88bd1b0 Mrdn 2y ago />
178 88bd1b0 Mrdn 2y ago )
179 88bd1b0 Mrdn 2y ago }
180 88bd1b0 Mrdn 2y ago DropdownMenuShortcut.displayName = "DropdownMenuShortcut"
181 88bd1b0 Mrdn 2y ago
182 88bd1b0 Mrdn 2y ago export {
183 88bd1b0 Mrdn 2y ago DropdownMenu,
184 88bd1b0 Mrdn 2y ago DropdownMenuTrigger,
185 88bd1b0 Mrdn 2y ago DropdownMenuContent,
186 88bd1b0 Mrdn 2y ago DropdownMenuItem,
187 88bd1b0 Mrdn 2y ago DropdownMenuCheckboxItem,
188 88bd1b0 Mrdn 2y ago DropdownMenuRadioItem,
189 88bd1b0 Mrdn 2y ago DropdownMenuLabel,
190 88bd1b0 Mrdn 2y ago DropdownMenuSeparator,
191 88bd1b0 Mrdn 2y ago DropdownMenuShortcut,
192 88bd1b0 Mrdn 2y ago DropdownMenuGroup,
193 88bd1b0 Mrdn 2y ago DropdownMenuPortal,
194 88bd1b0 Mrdn 2y ago DropdownMenuSub,
195 88bd1b0 Mrdn 2y ago DropdownMenuSubContent,
196 88bd1b0 Mrdn 2y ago DropdownMenuSubTrigger,
197 88bd1b0 Mrdn 2y ago DropdownMenuRadioGroup,
198 88bd1b0 Mrdn 2y ago }