{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "select",
  "type": "registry:ui",
  "title": "Select",
  "description": "Accessible dropdown select with terminal styling.",
  "dependencies": [
    "@radix-ui/react-select"
  ],
  "registryDependencies": [
    "utils"
  ],
  "files": [
    {
      "path": "ui/select/select.tsx",
      "type": "registry:ui",
      "content": "import * as React from 'react'\nimport * as SelectPrimitive from '@radix-ui/react-select'\nimport { cn } from '@/lib/utils'\n\nconst Select       = SelectPrimitive.Root\nconst SelectGroup  = SelectPrimitive.Group\nconst SelectValue  = SelectPrimitive.Value\n\n/* ── Trigger ── */\nconst SelectTrigger = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.Trigger>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n  <SelectPrimitive.Trigger\n    ref={ref}\n    className={cn(\n      'flex h-9 w-full items-center justify-between',\n      'border border-[var(--border)] bg-[var(--surface)]',\n      'px-3 py-0',\n      'text-[0.8rem] font-mono text-[var(--text-secondary)]',\n      'rounded-none',\n      'outline-none',\n      'focus:border-[var(--border-active)] focus:shadow-[var(--glow-green)]',\n      'disabled:cursor-not-allowed disabled:opacity-40',\n      'data-[placeholder]:text-[var(--text-muted)]',\n      'transition-all duration-150',\n      '[&>span]:pointer-events-none',\n      className\n    )}\n    {...props}\n  >\n    {children}\n    <SelectPrimitive.Icon asChild>\n      <span style={{ color: 'var(--text-muted)', fontSize: '0.6rem', marginLeft: '0.5rem' }}>▼</span>\n    </SelectPrimitive.Icon>\n  </SelectPrimitive.Trigger>\n))\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName\n\n/* ── Content ── */\nconst SelectContent = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = 'popper', ...props }, ref) => (\n  <SelectPrimitive.Portal>\n    <SelectPrimitive.Content\n      ref={ref}\n      className={cn(\n        'relative z-50 min-w-[8rem] overflow-hidden',\n        'border border-[var(--border)] bg-[var(--surface-raised)]',\n        'rounded-none',\n        'shadow-[0_8px_24px_#07050F99]',\n        position === 'popper' && 'w-[var(--radix-select-trigger-width)]',\n        className\n      )}\n      position={position}\n      sideOffset={4}\n      {...props}\n    >\n      <SelectPrimitive.Viewport style={{ padding: '4px 0' }}>\n        {children}\n      </SelectPrimitive.Viewport>\n    </SelectPrimitive.Content>\n  </SelectPrimitive.Portal>\n))\nSelectContent.displayName = SelectPrimitive.Content.displayName\n\n/* ── Label ── */\nconst SelectLabel = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.Label>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n  <SelectPrimitive.Label\n    ref={ref}\n    className={cn(className)}\n    style={{\n      padding:       '0.25rem 0.75rem',\n      fontSize:      '0.6rem',\n      color:         'var(--text-muted)',\n      letterSpacing: '0.12em',\n      textTransform: 'uppercase',\n    }}\n    {...props}\n  />\n))\nSelectLabel.displayName = SelectPrimitive.Label.displayName\n\n/* ── Item ── */\nconst SelectItem = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.Item>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n  <SelectPrimitive.Item\n    ref={ref}\n    className={cn(\n      'relative flex w-full cursor-pointer select-none items-center',\n      'py-1.5 pl-3 pr-8',\n      'text-[0.8rem] font-mono text-[var(--text-secondary)]',\n      'outline-none rounded-none',\n      'data-[highlighted]:bg-[var(--surface)] data-[highlighted]:text-[var(--color-green)]',\n      'data-[highlighted]:shadow-[inset_2px_0_0_var(--color-green)]',\n      'data-[disabled]:pointer-events-none data-[disabled]:opacity-40',\n      'transition-all duration-100',\n      className\n    )}\n    {...props}\n  >\n    <span style={{ position: 'absolute', right: '0.5rem' }}>\n      <SelectPrimitive.ItemIndicator>\n        <span style={{ color: 'var(--color-green)', fontSize: '0.6rem' }}>■</span>\n      </SelectPrimitive.ItemIndicator>\n    </span>\n    <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n  </SelectPrimitive.Item>\n))\nSelectItem.displayName = SelectPrimitive.Item.displayName\n\n/* ── Separator ── */\nconst SelectSeparator = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.Separator>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n  <SelectPrimitive.Separator\n    ref={ref}\n    className={cn('-mx-1 my-1 h-px', className)}\n    style={{ background: 'var(--border)' }}\n    {...props}\n  />\n))\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName\n\nexport {\n  Select,\n  SelectGroup,\n  SelectValue,\n  SelectTrigger,\n  SelectContent,\n  SelectLabel,\n  SelectItem,\n  SelectSeparator,\n}\n"
    }
  ]
}