{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "bulk-user-import",
  "type": "registry:ui",
  "title": "Bulk user import",
  "description": "CSV user import panel with a format hint for email, name and role, a CSV-only dropzone and an Import users button that enables once a file is added.",
  "dependencies": [],
  "registryDependencies": [
    "https://ui.minidev.pro/r/button.json",
    "https://ui.minidev.pro/r/callout.json",
    "https://ui.minidev.pro/r/file-dropzone.json",
    "utils"
  ],
  "files": [
    {
      "path": "registry/ui/bulk-user-import.tsx",
      "type": "registry:ui",
      "target": "components/ui/bulk-user-import.tsx",
      "content": "\"use client\"\nimport * as React from \"react\"\nimport { cn } from \"@/lib/utils\"\nimport { FileDropzone } from \"@/components/ui/file-dropzone\"\nimport { Button } from \"@/components/ui/button\"\nimport { Callout } from \"@/components/ui/callout\"\n\nfunction BulkUserImport({\n  onImport,\n  className,\n}: {\n  onImport?: (files: FileList | File[]) => void\n  className?: string\n}) {\n  const [ready, setReady] = React.useState(false)\n  return (\n    <div data-slot=\"bulk-user-import\" className={cn(\"space-y-3\", className)}>\n      <Callout title=\"CSV format\" tone=\"info\">email, name, role. One user per row.</Callout>\n      <FileDropzone\n        accept=\".csv,text/csv\"\n        label=\"Drop CSV of users\"\n        hint=\"or click to browse\"\n        onFiles={(f) => { setReady(true); onImport?.(f) }}\n      />\n      <Button type=\"button\" disabled={!ready}>Import users</Button>\n    </div>\n  )\n}\nexport { BulkUserImport }\n"
    }
  ]
}
