{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "textarea",
  "type": "registry:ui",
  "title": "Textarea",
  "description": "Multi-line text input with label and error state.",
  "dependencies": [],
  "registryDependencies": [
    "utils"
  ],
  "files": [
    {
      "path": "ui/textarea/textarea.tsx",
      "type": "registry:ui",
      "content": "import * as React from 'react'\nimport { cn } from '@/lib/utils'\n\nexport interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n  label?: string\n  error?: string\n}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n  ({ className, label, error, id, style, ...props }, ref) => {\n    const textareaId = id ?? label?.toLowerCase().replace(/\\s+/g, '-')\n\n    return (\n      <div style={{ display: 'flex', flexDirection: 'column', gap: '0.35rem', width: '100%' }}>\n        {label && (\n          <label\n            htmlFor={textareaId}\n            style={{\n              fontSize:      '0.65rem',\n              color:         error ? 'var(--color-amber)' : 'var(--text-muted)',\n              letterSpacing: '0.12em',\n              textTransform: 'uppercase',\n            }}\n          >\n            {label}\n          </label>\n        )}\n\n        <textarea\n          ref={ref}\n          id={textareaId}\n          className={cn(\n            'w-full bg-[var(--surface)] font-mono text-[0.8rem]',\n            'border border-[var(--border)]',\n            'text-[var(--text-secondary)]',\n            'placeholder:text-[var(--text-muted)]',\n            'outline-none rounded-none',\n            'transition-all duration-150',\n            'focus:border-[var(--border-active)] focus:shadow-[var(--glow-green)]',\n            'disabled:opacity-40 disabled:cursor-not-allowed',\n            error && 'border-[var(--color-amber)] focus:shadow-[var(--glow-amber)]',\n            className\n          )}\n          style={{\n            padding:    '0.5rem 0.75rem',\n            resize:     'none',\n            caretColor: 'var(--color-green)',\n            minHeight:  '80px',\n            ...style,\n          }}\n          {...props}\n        />\n\n        {error && (\n          <span\n            style={{\n              fontSize:      '0.65rem',\n              color:         'var(--color-amber)',\n              letterSpacing: '0.06em',\n            }}\n          >\n            ⚠ {error}\n          </span>\n        )}\n      </div>\n    )\n  }\n)\nTextarea.displayName = 'Textarea'\n\nexport { Textarea }\n"
    }
  ]
}