| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221 | import * as React from 'react'import * as ContextMenuPrimitive from '@radix-ui/react-context-menu'import { Check, ChevronRight, Circle } from 'lucide-react'// @ts-ignoreimport { cn } from '@/lib/utils'const ContextMenu = ContextMenuPrimitive.Rootconst ContextMenuTrigger = ContextMenuPrimitive.Triggerconst ContextMenuGroup = ContextMenuPrimitive.Groupconst ContextMenuPortal = ContextMenuPrimitive.Portalconst ContextMenuSub = ContextMenuPrimitive.Subconst ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroupconst ContextMenuSubTrigger = React.forwardRef<  React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>,  React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> & {  inset?: boolean}>(({ className, inset, children, ...props }, ref) => (  <ContextMenuPrimitive.SubTrigger    ref={ref}    className={cn(      'ui__context-menu-sub-trigger',      'flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm ' +      'outline-none focus:bg-accent focus:text-accent-foreground ' +      'data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',      inset && 'pl-8',      className    )}    {...props}  >    {children}    <ChevronRight className="ml-auto h-4 w-4"/>  </ContextMenuPrimitive.SubTrigger>))ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayNameconst ContextMenuSubContent = React.forwardRef<  React.ElementRef<typeof ContextMenuPrimitive.SubContent>,  React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent>>(({ className, ...props }, ref) => (  <ContextMenuPrimitive.SubContent    ref={ref}    className={cn(      'ui__context-menu-sub-content',      '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',      className    )}    {...props}  />))ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayNameconst ContextMenuContent = React.forwardRef<  React.ElementRef<typeof ContextMenuPrimitive.Content>,  React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content>>(({ className, ...props }, ref) => (  <ContextMenuPrimitive.Portal>    <ContextMenuPrimitive.Content      ref={ref}      className={cn(        'ui__context-menu-content',        'z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 ' +        'text-popover-foreground shadow-md animate-in fade-in-80 ' +        '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',        className      )}      {...props}    />  </ContextMenuPrimitive.Portal>))ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayNameconst ContextMenuItem = React.forwardRef<  React.ElementRef<typeof ContextMenuPrimitive.Item>,  React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> & {  inset?: boolean}>(({ className, inset, ...props }, ref) => (  <ContextMenuPrimitive.Item    ref={ref}    className={cn(      'relative flex cursor-default select-none items-center rounded-sm px-2 ' +      'text-popover-foreground/75 hover:text-popover-foreground/100 py-1.5 text-sm ' +      'outline-none focus:bg-accent focus:text-accent-foreground ' +      'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',      inset && 'pl-8',      className    )}    {...props}  />))ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayNameconst ContextMenuCheckboxItem = React.forwardRef<  React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>,  React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem>>(({ className, children, checked, ...props }, ref) => (  <ContextMenuPrimitive.CheckboxItem    ref={ref}    className={cn(      'relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm ' +      'text-popover-foreground/75 hover:text-popover-foreground/100 ' +      'outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none ' +      'data-[disabled]:opacity-50',      className    )}    checked={checked}    {...props}  >    <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">      <ContextMenuPrimitive.ItemIndicator>        <Check className="h-4 w-4"/>      </ContextMenuPrimitive.ItemIndicator>    </span>    {children}  </ContextMenuPrimitive.CheckboxItem>))ContextMenuCheckboxItem.displayName =  ContextMenuPrimitive.CheckboxItem.displayNameconst ContextMenuRadioItem = React.forwardRef<  React.ElementRef<typeof ContextMenuPrimitive.RadioItem>,  React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem>>(({ className, children, ...props }, ref) => (  <ContextMenuPrimitive.RadioItem    ref={ref}    className={cn(      'relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 ' +      'text-popover-foreground/75 hover:text-popover-foreground/100 ' +      'pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground ' +      'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',      className    )}    {...props}  >    <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">      <ContextMenuPrimitive.ItemIndicator>        <Circle className="h-2 w-2 fill-current"/>      </ContextMenuPrimitive.ItemIndicator>    </span>    {children}  </ContextMenuPrimitive.RadioItem>))ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayNameconst ContextMenuLabel = React.forwardRef<  React.ElementRef<typeof ContextMenuPrimitive.Label>,  React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> & {  inset?: boolean}>(({ className, inset, ...props }, ref) => (  <ContextMenuPrimitive.Label    ref={ref}    className={cn(      'px-2 py-1.5 text-sm font-semibold text-foreground',      inset && 'pl-8',      className    )}    {...props}  />))ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayNameconst ContextMenuSeparator = React.forwardRef<  React.ElementRef<typeof ContextMenuPrimitive.Separator>,  React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator>>(({ className, ...props }, ref) => (  <ContextMenuPrimitive.Separator    ref={ref}    className={cn('-mx-1 my-1 h-px bg-border', className)}    {...props}  />))ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayNameconst ContextMenuShortcut = ({  className,  ...props}: React.HTMLAttributes<HTMLSpanElement>) => {  return (    <span      className={cn(        'ml-auto text-xs tracking-widest text-muted-foreground',        className      )}      {...props}    />  )}ContextMenuShortcut.displayName = 'ContextMenuShortcut'export {  ContextMenu,  ContextMenuTrigger,  ContextMenuContent,  ContextMenuItem,  ContextMenuCheckboxItem,  ContextMenuRadioItem,  ContextMenuLabel,  ContextMenuSeparator,  ContextMenuShortcut,  ContextMenuGroup,  ContextMenuPortal,  ContextMenuSub,  ContextMenuSubContent,  ContextMenuSubTrigger,  ContextMenuRadioGroup,}
 |