Dropdown
indiacn/dropdownFreeComponent
Dropdown menu with items, checkbox/radio items, sub-menus, separators, and shortcuts.
Install it
npx shadcn@latest add https://indiacn.in/r/dropdown.jsonSource
1'use client';23import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';4import { Check, ChevronRight, Circle } from 'lucide-react';5import { ComponentProps } from 'react';67import { Label2 } from '@/components/ui/typography';8import { cn } from '@/lib/utils';910/*11 * UX4G dropdown: min-width 10rem, border-radius 0.5rem, padding-y 0.5rem,12 * border 1px solid neutral-200, item padding 0.25rem 1rem,13 * item hover bg primary-50, active bg primary, header color secondary (neutral-500),14 * divider: border-top 1px neutral-200, margin-y 0.5rem.15 */1617/** Dropdown menu root component. */18function Dropdown(props: ComponentProps<typeof DropdownMenuPrimitive.Root>) {19 return <DropdownMenuPrimitive.Root {...props} />;20}2122/** Dropdown menu trigger button. */23function DropdownTrigger(props: ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {24 return <DropdownMenuPrimitive.Trigger {...props} />;25}2627/** Dropdown menu item group. */28function DropdownGroup(props: ComponentProps<typeof DropdownMenuPrimitive.Group>) {29 return <DropdownMenuPrimitive.Group {...props} />;30}3132/** Dropdown menu portal container. */33function DropdownPortal(props: ComponentProps<typeof DropdownMenuPrimitive.Portal>) {34 return <DropdownMenuPrimitive.Portal {...props} />;35}3637/** Dropdown submenu root. */38function DropdownSub(props: ComponentProps<typeof DropdownMenuPrimitive.Sub>) {39 return <DropdownMenuPrimitive.Sub {...props} />;40}4142/** Dropdown radio item group. */43function DropdownRadioGroup(props: ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {44 return <DropdownMenuPrimitive.RadioGroup {...props} />;45}4647/** Dropdown submenu trigger item. */48function DropdownSubTrigger({49 className,50 inset,51 children,52 ...props53}: ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & { inset?: boolean }) {54 return (55 <DropdownMenuPrimitive.SubTrigger56 className={cn(57 'hover:bg-primary-50 focus:bg-primary-50 data-[state=open]:bg-primary-50 flex cursor-default items-center px-4 py-1 outline-none select-none',58 inset && 'pl-8',59 className,60 )}61 {...props}62 >63 <Label2 className='text-sm'>{children}</Label2>64 <ChevronRight className='ml-auto size-4' />65 </DropdownMenuPrimitive.SubTrigger>66 );67}6869/** Dropdown submenu content panel. */70function DropdownSubContent({71 className,72 ...props73}: ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {74 return (75 <DropdownMenuPrimitive.SubContent76 className={cn(77// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from indiacn
All 26 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | indiacn | Components | Free | 2 deps | |
| Alertalert | indiacn | Components | Free | 2 deps | |
| Badgebadge | indiacn | Components | Free | 1 dep | |
| Breadcrumbbreadcrumb | indiacn | Components | Free | 1 dep | |
| Buttonbutton | indiacn | Components | Free | 3 deps | |
| Button Groupbutton-group | indiacn | Components | Free | no deps | |
| Cardcard | indiacn | Components | Free | 1 dep | |
| Chipchip | indiacn | Components | Free | 2 deps |
