import * as React from "react"; import { DropdownMenu as BaseDropdownMenu, DropdownMenuContent, DropdownMenuItem as BaseDropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger as BaseDropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { cn } from "@/lib/utils"; type Placement = "bottom-start" | "bottom-end" | "top-start" | "top-end"; interface DropdownContextValue { align: "start" | "end"; } const DropdownContext = React.createContext({ align: "start", }); export interface DropdownProps { children: React.ReactNode; placement?: Placement; } export function Dropdown({ children, placement = "bottom-start", }: DropdownProps) { const align = placement.endsWith("end") ? "end" : "start"; return ( {children} ); } export function DropdownTrigger({ children }: { children: React.ReactNode }) { return {children}; } export interface DropdownMenuProps { "aria-label"?: string; children: React.ReactNode; } export function DropdownMenu({ children }: DropdownMenuProps) { const { align } = React.useContext(DropdownContext); return {children}; } export interface DropdownItemProps { children: React.ReactNode; className?: string; color?: "default" | "danger"; onPress?: () => void; startContent?: React.ReactNode; } export function DropdownItem({ children, className, color = "default", onPress, startContent, }: DropdownItemProps) { return ( { event.preventDefault(); onPress?.(); }} > {startContent} {children} ); } export { DropdownMenuLabel, DropdownMenuSeparator };