/** * Mobile DropdownMenu — styled wrapper around @rn-primitives/dropdown-menu. * * Follows the RNR / shadcn-style API: composable Root + Trigger + Portal + * Overlay + Content + Item. Defaults match shadcn (bg-popover, p-1, rounded, * border, shadow). Default open / close animation is the primitive's own * fade — no custom Reanimated layer. * * The Overlay is transparent + closeOnPress: tapping anywhere outside the * menu dismisses it (iOS/Android standard popover behaviour). */ import * as React from "react"; import { Platform, type StyleProp, type ViewStyle } from "react-native"; import * as DropdownMenuPrimitive from "@rn-primitives/dropdown-menu"; import { TextClassContext } from "@/components/ui/text"; import { cn } from "@/lib/utils"; const DropdownMenu = DropdownMenuPrimitive.Root; const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger; const DropdownMenuGroup = DropdownMenuPrimitive.Group; const DropdownMenuPortal = DropdownMenuPrimitive.Portal; const DropdownMenuSub = DropdownMenuPrimitive.Sub; const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup; function DropdownMenuOverlay({ className, ...props }: React.ComponentProps) { return ( ); } function DropdownMenuContent({ className, sideOffset = 4, side = "bottom", align = "end", portalHost, overlayClassName, ...props }: React.ComponentProps & { portalHost?: string; overlayClassName?: string; }) { return ( ); } function DropdownMenuItem({ className, inset, variant = "default", ...props }: React.ComponentProps & { inset?: boolean; variant?: "default" | "destructive"; }) { return ( ); } function DropdownMenuLabel({ className, inset, ...props }: React.ComponentProps & { inset?: boolean; }) { return ( ); } function DropdownMenuSeparator({ className, ...props }: React.ComponentProps) { return ( ); } const StyleSheetAbsoluteFill: StyleProp = { position: "absolute", top: 0, left: 0, right: 0, bottom: 0, }; export { DropdownMenu, DropdownMenuTrigger, DropdownMenuPortal, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuGroup, DropdownMenuSub, DropdownMenuRadioGroup, };