{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "command",
  "title": "Command",
  "description": "shadcn command reskinned for UI95.",
  "dependencies": [
    "cmdk",
    "cn"
  ],
  "registryDependencies": [
    "@ui95/theme",
    "@ui95/dialog",
    "@ui95/pixel-glyphs"
  ],
  "files": [
    {
      "path": "components/ui/command.tsx",
      "content": "\"use client\"\n\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { cn } from \"cn\"\nimport * as React from \"react\"\n\nimport {\n  Dialog,\n  DialogContent,\n  DialogDescription,\n  DialogHeader,\n  DialogTitle,\n} from \"@/components/ui/dialog\"\nimport { CheckGlyph, SearchGlyph } from \"@/components/ui/pixel-glyphs\"\n\nfunction Command({\n  className,\n  ...props\n}: React.ComponentProps<typeof CommandPrimitive>) {\n  return (\n    <CommandPrimitive\n      data-slot=\"command\"\n      className={cn(\n        \"flex size-full flex-col overflow-hidden pixel-border border-border bg-popover p-(--pixel) text-popover-foreground bevel-raised offset-shadow-none\",\n        className\n      )}\n      {...props}\n    />\n  )\n}\n\nfunction CommandDialog({\n  title = \"Command Palette\",\n  description = \"Search for a command to run...\",\n  children,\n  className,\n  showCloseButton = false,\n  ...props\n}: React.ComponentProps<typeof Dialog> & {\n  title?: string\n  description?: string\n  className?: string\n  showCloseButton?: boolean\n}) {\n  return (\n    <Dialog {...props}>\n      <DialogContent\n        className={cn(\"top-1/3 translate-y-0 overflow-hidden p-0\", className)}\n        showCloseButton={showCloseButton}\n      >\n        <DialogHeader className=\"sr-only\">\n          <DialogTitle>{title}</DialogTitle>\n          <DialogDescription>{description}</DialogDescription>\n        </DialogHeader>\n        {children}\n      </DialogContent>\n    </Dialog>\n  )\n}\n\nfunction CommandInput({\n  className,\n  ...props\n}: React.ComponentProps<typeof CommandPrimitive.Input>) {\n  return (\n    <div data-slot=\"command-input-wrapper\" className=\"p-1 pb-0\">\n      <div className=\"flex h-10 items-center gap-2 pixel-border border-border well bg-input text-foreground px-2\">\n        <SearchGlyph className=\"size-4 shrink-0 text-well-muted\" />\n        <CommandPrimitive.Input\n          data-slot=\"command-input\"\n          className={cn(\n            \"h-full w-full min-w-0 bg-transparent text-xl leading-none text-current outline-hidden placeholder:text-well-muted disabled:cursor-not-allowed disabled:text-muted-foreground\",\n            className\n          )}\n          {...props}\n        />\n      </div>\n    </div>\n  )\n}\n\nfunction CommandList({\n  className,\n  ...props\n}: React.ComponentProps<typeof CommandPrimitive.List>) {\n  return (\n    <CommandPrimitive.List\n      data-slot=\"command-list\"\n      className={cn(\n        \"no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none\",\n        className\n      )}\n      {...props}\n    />\n  )\n}\n\nfunction CommandEmpty({\n  className,\n  ...props\n}: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n  return (\n    <CommandPrimitive.Empty\n      data-slot=\"command-empty\"\n      className={cn(\n        \"py-6 text-center font-pixel text-[16px] leading-none text-muted-foreground uppercase\",\n        className\n      )}\n      {...props}\n    />\n  )\n}\n\nfunction CommandGroup({\n  className,\n  ...props\n}: React.ComponentProps<typeof CommandPrimitive.Group>) {\n  return (\n    <CommandPrimitive.Group\n      data-slot=\"command-group\"\n      className={cn(\n        \"overflow-hidden p-1 text-foreground **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:pt-2 **:[[cmdk-group-heading]]:pb-1 **:[[cmdk-group-heading]]:font-pixel **:[[cmdk-group-heading]]:text-[16px] **:[[cmdk-group-heading]]:leading-none **:[[cmdk-group-heading]]:text-muted-foreground **:[[cmdk-group-heading]]:uppercase\",\n        className\n      )}\n      {...props}\n    />\n  )\n}\n\nfunction CommandSeparator({\n  className,\n  ...props\n}: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n  return (\n    <CommandPrimitive.Separator\n      data-slot=\"command-separator\"\n      className={cn(\n        \"mx-1 my-1 border-t-(length:--pixel) border-b-(length:--pixel) border-t-bevel-lo border-b-bevel-hi\",\n        className\n      )}\n      {...props}\n    />\n  )\n}\n\nfunction CommandItem({\n  className,\n  children,\n  ...props\n}: React.ComponentProps<typeof CommandPrimitive.Item>) {\n  return (\n    <CommandPrimitive.Item\n      data-slot=\"command-item\"\n      className={cn(\n        \"group/command-item relative flex h-8 items-center gap-2 px-2 text-xl leading-none outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:text-muted-foreground data-[selected=true]:bg-foreground data-[selected=true]:text-popover [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-3.5\",\n        className\n      )}\n      {...props}\n    >\n      {children}\n      <CheckGlyph className=\"ml-auto hidden group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:block\" />\n    </CommandPrimitive.Item>\n  )\n}\n\nfunction CommandShortcut({\n  className,\n  ...props\n}: React.ComponentProps<\"span\">) {\n  return (\n    <span\n      data-slot=\"command-shortcut\"\n      className={cn(\n        \"ml-auto pl-4 text-lg leading-none text-muted-foreground group-data-[selected=true]/command-item:text-popover\",\n        className\n      )}\n      {...props}\n    />\n  )\n}\n\nexport {\n  Command,\n  CommandDialog,\n  CommandEmpty,\n  CommandGroup,\n  CommandInput,\n  CommandItem,\n  CommandList,\n  CommandSeparator,\n  CommandShortcut,\n}\n",
      "type": "registry:ui"
    }
  ],
  "meta": {
    "sounds": {
      "menu.select": {
        "note": "Light tactile on release, like letting go of a menu",
        "layers": [
          {
            "wave": "noise",
            "frequency": 0,
            "attack": 0.0003,
            "decay": 0.0035,
            "gain": 0.35,
            "filter": {
              "type": "bandpass",
              "frequency": 4500,
              "q": 2
            },
            "delay": 0
          },
          {
            "wave": "square",
            "frequency": 2210,
            "attack": 0.0003,
            "decay": 0.003,
            "gain": 0.1
          }
        ],
        "gain": 1.29,
        "crush": {}
      },
      "typewriter.key": {
        "note": "Typebar strike: sharp metal clack, then the platen thud just after",
        "layers": [
          {
            "wave": "sine",
            "frequency": 365,
            "attack": 0,
            "decay": 0.00239,
            "gain": 0.55,
            "filter": {
              "type": "highpass",
              "frequency": 240,
              "q": 0.972
            },
            "curve": 6
          }
        ],
        "jitter": {
          "cents": 97,
          "gainDb": 0,
          "decay": 0.08
        }
      },
      "typewriter.space": {
        "note": "Stabilized space bar: deeper plate ring and thock, with a faint stabilizer rattle",
        "layers": [
          {
            "wave": "square",
            "frequency": 40,
            "attack": 0.0001,
            "decay": 0.005,
            "curve": 5,
            "gain": 0.3,
            "delay": 0
          },
          {
            "wave": "square",
            "frequency": 1100,
            "attack": 0.0003,
            "decay": 0.00137,
            "curve": 1.4,
            "gain": 0.21,
            "filter": {
              "type": "bandpass",
              "frequency": 183,
              "q": 0.604
            },
            "delay": 0,
            "frequencyEnd": 348
          },
          {
            "wave": "sine",
            "frequency": 1390,
            "sineShare": 0.75,
            "attack": 0.0004,
            "decay": 0.00222,
            "curve": 5,
            "gain": 0.23,
            "delay": 0,
            "frequencyEnd": 173,
            "pitchTime": 0.124
          },
          {
            "wave": "noise",
            "frequency": 0,
            "attack": 0.0039,
            "decay": 0.00702,
            "curve": 2.2,
            "gain": 0.4,
            "delay": 0.111,
            "filter": {
              "type": "bandpass",
              "frequency": 420,
              "q": 3.15
            }
          }
        ],
        "jitter": {
          "cents": 45,
          "gainDb": 1.9,
          "decay": 0.1
        }
      },
      "typewriter.return": {
        "note": "Carriage return: lever clunk, then the end-of-line bell",
        "layers": [
          {
            "wave": "noise",
            "frequency": 0,
            "attack": 0.0021,
            "decay": 0.001,
            "gain": 0.43,
            "filter": {
              "type": "bandpass",
              "frequency": 415,
              "q": 1.34
            }
          },
          {
            "wave": "sine",
            "frequency": 159,
            "frequencyEnd": 80,
            "pitchTime": 0.037,
            "attack": 0.001,
            "decay": 0.001,
            "gain": 0.27,
            "delay": 0
          },
          {
            "wave": "sine",
            "frequency": 141,
            "attack": 0.0005,
            "decay": 0.00111,
            "gain": 0.07,
            "delay": 0.02
          },
          {
            "wave": "noise",
            "frequency": 0,
            "attack": 0.0005,
            "decay": 0.00135,
            "gain": 0,
            "delay": 0.02,
            "pitchTime": 0.027,
            "frequencyEnd": 40.7,
            "curve": 1,
            "pitchSteps": 2
          }
        ],
        "jitter": {
          "cents": 40,
          "gainDb": 2,
          "decay": 0.08
        }
      }
    }
  },
  "categories": [
    "ui"
  ],
  "type": "registry:ui"
}
