{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "notra-dropdown-menu",
  "title": "Dropdown Menu",
  "description": "A Base UI menu with Depth surfaces, squircle corners, submenus, checkbox and radio items.",
  "dependencies": [
    "@base-ui/react",
    "cn",
    "lucide-react"
  ],
  "registryDependencies": [
    "dropdown-menu"
  ],
  "files": [
    {
      "path": "registry/notra/dropdown-menu/components/dropdown-menu.tsx",
      "content": "\"use client\";\n\nimport { cn } from \"cn\";\nimport type { ComponentProps } from \"react\";\n\nimport {\n  DropdownMenu,\n  DropdownMenuCheckboxItem as ShadcnDropdownMenuCheckboxItem,\n  DropdownMenuContent as ShadcnDropdownMenuContent,\n  DropdownMenuGroup,\n  DropdownMenuItem as ShadcnDropdownMenuItem,\n  DropdownMenuLabel as ShadcnDropdownMenuLabel,\n  DropdownMenuPortal,\n  DropdownMenuRadioGroup,\n  DropdownMenuRadioItem as ShadcnDropdownMenuRadioItem,\n  DropdownMenuSeparator as ShadcnDropdownMenuSeparator,\n  DropdownMenuShortcut as ShadcnDropdownMenuShortcut,\n  DropdownMenuSub,\n  DropdownMenuSubContent as ShadcnDropdownMenuSubContent,\n  DropdownMenuSubTrigger as ShadcnDropdownMenuSubTrigger,\n  DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\";\n\nimport {\n  DROPDOWN_INDICATOR_ITEM_CLASS_NAME,\n  DROPDOWN_ITEM_CLASS_NAME,\n  DROPDOWN_POPUP_CLASS_NAME,\n} from \"../constants/dropdown-menu\";\n\nfunction DropdownMenuContent({\n  className,\n  ...props\n}: ComponentProps<typeof ShadcnDropdownMenuContent>) {\n  return (\n    <ShadcnDropdownMenuContent\n      className={cn(\n        DROPDOWN_POPUP_CLASS_NAME,\n        \"w-(--anchor-width) min-w-32\",\n        className\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction DropdownMenuSubContent({\n  className,\n  ...props\n}: ComponentProps<typeof ShadcnDropdownMenuSubContent>) {\n  return (\n    <ShadcnDropdownMenuSubContent\n      className={cn(DROPDOWN_POPUP_CLASS_NAME, \"w-auto min-w-40\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction DropdownMenuLabel({\n  className,\n  ...props\n}: ComponentProps<typeof ShadcnDropdownMenuLabel>) {\n  return (\n    <ShadcnDropdownMenuLabel\n      className={cn(\"px-2.5 py-1.5 data-inset:pl-8\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction DropdownMenuItem({\n  className,\n  ...props\n}: ComponentProps<typeof ShadcnDropdownMenuItem>) {\n  return (\n    <ShadcnDropdownMenuItem\n      className={cn(\n        DROPDOWN_ITEM_CLASS_NAME,\n        \"data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive\",\n        className\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction DropdownMenuSubTrigger({\n  className,\n  ...props\n}: ComponentProps<typeof ShadcnDropdownMenuSubTrigger>) {\n  return (\n    <ShadcnDropdownMenuSubTrigger\n      className={cn(DROPDOWN_ITEM_CLASS_NAME, className)}\n      {...props}\n    />\n  );\n}\n\nfunction DropdownMenuCheckboxItem({\n  className,\n  ...props\n}: ComponentProps<typeof ShadcnDropdownMenuCheckboxItem>) {\n  return (\n    <ShadcnDropdownMenuCheckboxItem\n      className={cn(\n        DROPDOWN_ITEM_CLASS_NAME,\n        DROPDOWN_INDICATOR_ITEM_CLASS_NAME,\n        className\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction DropdownMenuRadioItem({\n  className,\n  ...props\n}: ComponentProps<typeof ShadcnDropdownMenuRadioItem>) {\n  return (\n    <ShadcnDropdownMenuRadioItem\n      className={cn(\n        DROPDOWN_ITEM_CLASS_NAME,\n        DROPDOWN_INDICATOR_ITEM_CLASS_NAME,\n        className\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction DropdownMenuSeparator({\n  className,\n  ...props\n}: ComponentProps<typeof ShadcnDropdownMenuSeparator>) {\n  return (\n    <ShadcnDropdownMenuSeparator className={cn(\"mx-2\", className)} {...props} />\n  );\n}\n\nfunction DropdownMenuShortcut({\n  className,\n  ...props\n}: ComponentProps<typeof ShadcnDropdownMenuShortcut>) {\n  return (\n    <ShadcnDropdownMenuShortcut\n      className={cn(\n        \"group-focus/dropdown-menu-item:text-muted-foreground pl-4 font-mono tracking-normal\",\n        className\n      )}\n      {...props}\n    />\n  );\n}\n\nexport {\n  DropdownMenu,\n  DropdownMenuCheckboxItem,\n  DropdownMenuContent,\n  DropdownMenuGroup,\n  DropdownMenuItem,\n  DropdownMenuLabel,\n  DropdownMenuPortal,\n  DropdownMenuRadioGroup,\n  DropdownMenuRadioItem,\n  DropdownMenuSeparator,\n  DropdownMenuShortcut,\n  DropdownMenuSub,\n  DropdownMenuSubContent,\n  DropdownMenuSubTrigger,\n  DropdownMenuTrigger,\n};\n",
      "type": "registry:component",
      "target": "components/dropdown-menu/components/dropdown-menu.tsx"
    },
    {
      "path": "registry/notra/dropdown-menu/constants/dropdown-menu.ts",
      "content": "export const DROPDOWN_POPUP_CLASS_NAME =\n  \"ring-0 data-open:animate-none data-closed:animate-none rounded-[0.875rem] p-1 shadow-none z-50 max-h-(--available-height) origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-[0.875rem] border border-border bg-popover bg-linear-to-b from-background to-[color-mix(in_oklab,var(--color-background),var(--color-foreground)_2.5%)] text-popover-foreground shadow-[inset_0_1px_0_rgba(255,255,255,0.8),0_1px_2px_rgba(0,0,0,0.05),0_12px_32px_-8px_rgba(0,0,0,0.16)] outline-none transition-[opacity,scale] duration-150 ease-[cubic-bezier(0.23,1,0.32,1)] [corner-shape:squircle] data-ending-style:opacity-0 data-ending-style:duration-100 data-starting-style:opacity-0 motion-safe:data-ending-style:scale-[0.97] motion-safe:data-starting-style:scale-[0.97] motion-reduce:transition-none dark:border-input dark:from-muted dark:to-shell dark:shadow-[inset_0_1px_0_rgba(255,255,255,0.06),0_2px_4px_rgba(0,0,0,0.3),0_16px_32px_-8px_rgba(0,0,0,0.6)]\";\n\nexport const DROPDOWN_ITEM_CLASS_NAME =\n  \"focus:bg-foreground/[0.05] dark:focus:bg-foreground/[0.07] focus:text-foreground focus:**:text-foreground data-popup-open:bg-foreground/[0.05] dark:data-popup-open:bg-foreground/[0.07] data-popup-open:text-foreground data-open:bg-transparent data-open:text-foreground data-inset:pl-8 rounded-[0.625rem] gap-2 px-2.5 py-1.5 relative flex min-h-8 cursor-pointer select-none items-center gap-2 rounded-[0.625rem] px-2.5 py-1.5 text-sm outline-hidden transition-colors duration-75 [corner-shape:squircle] data-highlighted:bg-foreground/[0.05] data-highlighted:text-foreground dark:data-highlighted:bg-foreground/[0.07] dark:data-highlighted:shadow-[inset_0_1px_0_rgba(255,255,255,0.04)] data-disabled:pointer-events-none data-disabled:cursor-not-allowed data-disabled:opacity-50 *:[svg]:text-muted-foreground data-highlighted:*:[svg]:text-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\";\n\nexport const DROPDOWN_INDICATOR_ITEM_CLASS_NAME =\n  \"pr-8 *:data-[slot$=indicator]:right-2.5 *:data-[slot$=indicator]:size-4\";\n",
      "type": "registry:lib",
      "target": "components/dropdown-menu/constants/dropdown-menu.ts"
    }
  ],
  "type": "registry:component"
}