dropdown-menu
ora-ui/dropdown-menuFreeComponent
ora-ui publishes no description for this item.
Live preview
live · rendered by the registry
Rendered by ora-ui on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://ora-ui.com/r/dropdown-menu.jsonSource
1'use client';23import * as React from 'react';4import { Menu as MenuPrimitive } from '@base-ui/react/menu';56import { cn } from '@/registry/lib/utils';7import { CheckIcon, CaretRightIcon as ChevronRightIcon } from '@phosphor-icons/react';89type DropdownVariant = 'soft' | 'solid';10type DropdownTheme = 'gray' | 'accent';1112interface DropdownMenuContextValue {13 variant: DropdownVariant;14 theme: DropdownTheme;15}1617const DropdownMenuContext = React.createContext<DropdownMenuContextValue>({18 variant: 'soft',19 theme: 'gray',20});2122function DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {23 return <MenuPrimitive.Root data-slot="dropdown-menu" {...props} />;24}25function DropdownMenuPortal({ ...props }: MenuPrimitive.Portal.Props) {26 return <MenuPrimitive.Portal data-slot="dropdown-menu-portal" {...props} />;27}28function DropdownMenuTrigger({ ...props }: MenuPrimitive.Trigger.Props) {29 return <MenuPrimitive.Trigger data-slot="dropdown-menu-trigger" {...props} />;30}31function DropdownMenuContent({32 align = 'start',33 alignOffset = 0,34 side = 'bottom',35 sideOffset = 4,36 variant = 'soft',37 theme = 'gray',38 className,39 ...props40}: MenuPrimitive.Popup.Props &41 Pick<MenuPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'> & {42 variant?: DropdownVariant;43 theme?: DropdownTheme;44 }) {45 return (46 <DropdownMenuContext.Provider value={{ variant, theme }}>47 <MenuPrimitive.Portal>48 <MenuPrimitive.Positioner49 className="isolate z-50 outline-none"50 align={align}51 alignOffset={alignOffset}52 side={side}53 sideOffset={sideOffset}54 >55 <MenuPrimitive.Popup56 data-slot="dropdown-menu-content"57 data-variant={variant}58 data-theme={theme !== 'gray' ? theme : undefined}59 className={cn(menuContentBaseStyles, className)}60 {...props}61 />62 </MenuPrimitive.Positioner>63 </MenuPrimitive.Portal>64 </DropdownMenuContext.Provider>65 );66}67function DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {68 return <MenuPrimitive.Group data-slot="dropdown-menu-group" {...props} />;69}70function DropdownMenuLabel({71 className,72 inset,73 ...props74}: MenuPrimitive.GroupLabel.Props & {75 inset?: boolean;76}) {77 return (78 <MenuPrimitive.GroupLabel79 data-slot="dropdown-menu-label"80 data-inset={inset}81 className={cn(82// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from ora-ui
All 31 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| accordionaccordion | ora-ui | Components | Free | 2 deps | |
| alert-dialogalert-dialog | ora-ui | Components | Free | 1 dep | |
| avataravatar | ora-ui | Components | Free | 1 dep | |
| avatar-groupavatar-group | ora-ui | Components | Free | no deps | |
| badgebadge | ora-ui | Components | Free | 2 deps | |
| buttonbutton | ora-ui | Components | Free | 2 deps | |
| button-groupbutton-group | ora-ui | Components | Free | 2 deps | |
| checkboxcheckbox | ora-ui | Components | Free | 3 deps |
