{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "dropdown-17",
  "title": "With dialog",
  "description": "A menu item opens a controlled confirmation dialog.",
  "dependencies": [],
  "registryDependencies": [
    "dropdown-menu",
    "button",
    "dialog"
  ],
  "files": [
    {
      "path": "registry/patterns/dropdown/dropdown-17.tsx",
      "content": "'use client'\n\nimport { useState } from 'react'\n\nimport { Button } from '@/components/ui/button'\nimport {\n  Dialog,\n  DialogClose,\n  DialogContent,\n  DialogDescription,\n  DialogFooter,\n  DialogHeader,\n  DialogTitle,\n} from '@/components/ui/dialog'\nimport {\n  DropdownMenu,\n  DropdownMenuContent,\n  DropdownMenuItem,\n  DropdownMenuSeparator,\n  DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu'\nimport { MoreHorizontalIcon, PencilIcon, TrashIcon } from 'lucide-react'\n\nexport function Dropdown17() {\n  const [confirmOpen, setConfirmOpen] = useState(false)\n\n  return (\n    <>\n      <DropdownMenu>\n        <DropdownMenuTrigger\n          render={\n            <Button variant=\"outline\" size=\"icon-sm\" aria-label=\"Open actions\">\n              <MoreHorizontalIcon />\n            </Button>\n          }\n        />\n        <DropdownMenuContent align=\"end\" className=\"w-44\">\n          <DropdownMenuItem>\n            <PencilIcon />\n            Edit\n          </DropdownMenuItem>\n          <DropdownMenuSeparator />\n          <DropdownMenuItem\n            variant=\"destructive\"\n            onClick={() => setConfirmOpen(true)}\n          >\n            <TrashIcon />\n            Delete\n          </DropdownMenuItem>\n        </DropdownMenuContent>\n      </DropdownMenu>\n\n      <Dialog open={confirmOpen} onOpenChange={setConfirmOpen}>\n        <DialogContent className=\"sm:max-w-md\">\n          <DialogHeader>\n            <DialogTitle>Delete project?</DialogTitle>\n            <DialogDescription>\n              This permanently removes the project and all of its files. This\n              action cannot be undone.\n            </DialogDescription>\n          </DialogHeader>\n          <DialogFooter>\n            <DialogClose render={<Button variant=\"outline\">Cancel</Button>} />\n            <Button variant=\"destructive\" onClick={() => setConfirmOpen(false)}>\n              Delete\n            </Button>\n          </DialogFooter>\n        </DialogContent>\n      </Dialog>\n    </>\n  )\n}\n",
      "type": "registry:component",
      "target": "components/flx/patterns/dropdown/dropdown-17.tsx"
    }
  ],
  "type": "registry:block"
}