{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "rich-dropdown", "type": "registry:component", "title": "Rich Dropdown", "description": "A dropdown menu with rich content", "dependencies": [ "lucide-react", "next-themes" ], "registryDependencies": [ "dropdown-menu", "button", "select", "switch", "utils", "label" ], "files": [ { "path": "registry/default/components/dropdown-menu/rich-dropdown.tsx", "content": "'use client'\r\n\r\nimport { Button } from '@/registry/default/ui/button'\r\nimport {\r\n DropdownMenu,\r\n DropdownMenuContent,\r\n DropdownMenuItem,\r\n DropdownMenuSeparator,\r\n DropdownMenuTrigger,\r\n} from '@/registry/default/ui/dropdown-menu'\r\nimport { DropdownMenuItem as RadixDropdownMenuItem } from '@radix-ui/react-dropdown-menu'\r\nimport { Label } from '@/registry/default/ui/label'\r\nimport {\r\n ArrowDownAZIcon,\r\n ArrowUpAZIcon,\r\n ChevronDownIcon,\r\n XIcon,\r\n} from 'lucide-react'\r\nimport {\r\n Select,\r\n SelectContent,\r\n SelectItem,\r\n SelectTrigger,\r\n SelectValue,\r\n} from '@/registry/default/ui/select'\r\nimport { Switch } from '@/registry/default/ui/switch'\r\nimport React from 'react'\r\nimport { useTheme } from 'next-themes'\r\n\r\ntype Item = {\r\n label: string\r\n ItemComponent: React.ReactNode\r\n}\r\n\r\nconst items: Item[] = [\r\n {\r\n label: 'Filter',\r\n ItemComponent: ,\r\n },\r\n {\r\n label: 'Title',\r\n ItemComponent: ,\r\n },\r\n { label: 'Custom Config', ItemComponent: },\r\n { label: 'Dark Mode', ItemComponent: },\r\n]\r\n\r\nexport default function RichDropdown() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {items.map((item) => (\r\n \r\n \r\n\r\n {item.ItemComponent}\r\n \r\n ))}\r\n\r\n \r\n \r\n Clear all\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nfunction FilterItem() {\r\n return (\r\n \r\n )\r\n}\r\n\r\nfunction TitleComponent() {\r\n return (\r\n
\r\n e.preventDefault()}>\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nfunction CustomConfigComponent() {\r\n return (\r\n
\r\n e.preventDefault()}>\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nfunction DarkModeComponent() {\r\n const { resolvedTheme, setTheme } = useTheme()\r\n\r\n return (\r\n
\r\n e.preventDefault()}>\r\n \r\n setTheme(checked ? 'dark' : 'light')\r\n }\r\n />\r\n \r\n
\r\n )\r\n}\r\n", "type": "registry:component", "target": "components/rich-dropdown.tsx" } ] }