{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "command",
  "title": "Command",
  "type": "registry:ui",
  "files": [
    {
      "path": "packages/registry-react/components/command/command.tsx",
      "content": "'use client'\n\nimport * as React from 'react'\nimport { Command as CommandPrimitive } from 'cmdk'\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { Search } from 'lucide-react'\nimport { cn } from '@/lib/utils'\n\nconst Command = React.forwardRef<\n  React.ElementRef<typeof CommandPrimitive>,\n  React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n  <CommandPrimitive\n    ref={ref}\n    data-uipkge=\"\"\n    data-slot=\"command\"\n    className={cn(\n      'bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md',\n      className,\n    )}\n    {...props}\n  />\n))\nCommand.displayName = CommandPrimitive.displayName\n\ninterface CommandDialogProps extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Root> {\n  title?: string\n  description?: string\n}\n\nconst CommandDialog = ({\n  title = 'Command Palette',\n  description = 'Search for a command to run...',\n  children,\n  ...props\n}: CommandDialogProps) => (\n  <DialogPrimitive.Root {...props}>\n    <DialogPrimitive.Portal>\n      <DialogPrimitive.Overlay\n        data-uipkge=\"\"\n        data-slot=\"command-dialog-overlay\"\n        className=\"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/50\"\n      />\n      <DialogPrimitive.Content\n        data-uipkge=\"\"\n        data-slot=\"command-dialog\"\n        className=\"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-lg translate-x-[-50%] translate-y-[-50%] gap-4 overflow-hidden rounded-lg border p-0 shadow-lg duration-200\"\n      >\n        <DialogPrimitive.Title className=\"sr-only\">{title}</DialogPrimitive.Title>\n        <DialogPrimitive.Description className=\"sr-only\">{description}</DialogPrimitive.Description>\n        <Command className=\"[&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-1 [&_[cmdk-input-wrapper]_svg]:size-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:size-5\">\n          {children}\n        </Command>\n      </DialogPrimitive.Content>\n    </DialogPrimitive.Portal>\n  </DialogPrimitive.Root>\n)\n\nconst CommandInput = React.forwardRef<\n  React.ElementRef<typeof CommandPrimitive.Input>,\n  React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n  <div data-uipkge=\"\" data-slot=\"command-input-wrapper\" cmdk-input-wrapper=\"\" className=\"flex h-9 items-center gap-2 border-b px-3\">\n    <Search className=\"text-muted-foreground size-4 shrink-0\" aria-hidden=\"true\" />\n    <CommandPrimitive.Input\n      ref={ref}\n      data-uipkge=\"\"\n      data-slot=\"command-input\"\n      className={cn(\n        'placeholder:text-muted-foreground focus-visible:ring-ring/40 flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden focus-visible:ring-2 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50',\n        className,\n      )}\n      {...props}\n    />\n  </div>\n))\nCommandInput.displayName = CommandPrimitive.Input.displayName\n\nconst CommandList = React.forwardRef<\n  React.ElementRef<typeof CommandPrimitive.List>,\n  React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n  <CommandPrimitive.List\n    ref={ref}\n    data-uipkge=\"\"\n    data-slot=\"command-list\"\n    className={cn('max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto', className)}\n    {...props}\n  />\n))\nCommandList.displayName = CommandPrimitive.List.displayName\n\nconst CommandEmpty = React.forwardRef<\n  React.ElementRef<typeof CommandPrimitive.Empty>,\n  React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>(({ className, ...props }, ref) => (\n  <CommandPrimitive.Empty\n    ref={ref}\n    data-uipkge=\"\"\n    data-slot=\"command-empty\"\n    className={cn('py-6 text-center text-sm', className)}\n    {...props}\n  />\n))\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName\n\nconst CommandGroup = React.forwardRef<\n  React.ElementRef<typeof CommandPrimitive.Group>,\n  React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n  <CommandPrimitive.Group\n    ref={ref}\n    data-uipkge=\"\"\n    data-slot=\"command-group\"\n    className={cn(\n      'text-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium',\n      className,\n    )}\n    {...props}\n  />\n))\nCommandGroup.displayName = CommandPrimitive.Group.displayName\n\nconst CommandSeparator = React.forwardRef<\n  React.ElementRef<typeof CommandPrimitive.Separator>,\n  React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n  <CommandPrimitive.Separator\n    ref={ref}\n    data-uipkge=\"\"\n    data-slot=\"command-separator\"\n    className={cn('bg-border -mx-1 h-px', className)}\n    {...props}\n  />\n))\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName\n\nconst CommandItem = React.forwardRef<\n  React.ElementRef<typeof CommandPrimitive.Item>,\n  React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n  <CommandPrimitive.Item\n    ref={ref}\n    data-uipkge=\"\"\n    data-slot=\"command-item\"\n    className={cn(\n      \"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n      className,\n    )}\n    {...props}\n  />\n))\nCommandItem.displayName = CommandPrimitive.Item.displayName\n\nconst CommandShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => (\n  <span\n    data-uipkge=\"\"\n    data-slot=\"command-shortcut\"\n    className={cn('text-muted-foreground ml-auto text-xs tracking-widest', className)}\n    {...props}\n  />\n)\nCommandShortcut.displayName = 'CommandShortcut'\n\nexport {\n  Command,\n  CommandDialog,\n  CommandInput,\n  CommandList,\n  CommandEmpty,\n  CommandGroup,\n  CommandItem,\n  CommandShortcut,\n  CommandSeparator,\n}\n",
      "type": "registry:ui",
      "target": "~/components/ui/command/command.tsx"
    },
    {
      "path": "packages/registry-react/components/command/index.ts",
      "content": "export {\n  Command,\n  CommandDialog,\n  CommandInput,\n  CommandList,\n  CommandEmpty,\n  CommandGroup,\n  CommandItem,\n  CommandShortcut,\n  CommandSeparator,\n} from './command'\n",
      "type": "registry:ui",
      "target": "~/components/ui/command/index.ts"
    }
  ],
  "dependencies": [
    "cmdk",
    "lucide-react",
    "@radix-ui/react-dialog"
  ],
  "devDependencies": [],
  "registryDependencies": [],
  "description": "Searchable command palette à la Cmd-K — keyboard-driven menu with grouped items, icons, shortcuts, and fuzzy filtering. Use as a global launcher (mounted in a Dialog) or inline as a typeahead select.",
  "categories": [
    "overlay"
  ]
}