This component no longer exists. It was in neobrutal-ui’s manifest when we first indexed it and is not there now — the registry served its inventory on 2026-08-06 and this item was not on it. The install command below will fail. It is kept here because a tutorial somewhere still tells people to run it.
Popover
neobrutal-ui/popoverRemovedComponent
neobrutal-ui publishes no description for this item.
Live preview
live · rendered by the registry
Rendered by neobrutal-ui on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://neobrutal-ui.andongmin.com/r/popover.jsonSource
1"use client";23import * as React from "react";4import { Popover as PopoverPrimitive } from "@base-ui/react/popover";56import { cn } from "@/lib/utils";78type AutoFocusEventHandler = (event: Event) => void;9type FocusTarget = PopoverPrimitive.Popup.Props["initialFocus"];10type PointerDownOutsideEvent = CustomEvent<{ originalEvent: PointerEvent }>;11type FocusOutsideEvent = CustomEvent<{ originalEvent: FocusEvent }>;12type DismissableLayerHandlers = {13 onEscapeKeyDown?: (event: KeyboardEvent) => void;14 onFocusOutside?: (event: FocusOutsideEvent) => void;15 onInteractOutside?: (event: FocusOutsideEvent | PointerDownOutsideEvent) => void;16 onPointerDownOutside?: (event: PointerDownOutsideEvent) => void;17};18type CollisionBoundary =19 | PopoverPrimitive.Positioner.Props["collisionBoundary"]20 | null21 | Array<Element | null>;22type PopoverPortalProps = PopoverPrimitive.Portal.Props & {23 forceMount?: boolean;24};25type PopoverContentProps = PopoverPrimitive.Popup.Props &26 Pick<27 PopoverPrimitive.Positioner.Props,28 | "align"29 | "alignOffset"30 | "arrowPadding"31 | "collisionAvoidance"32 | "collisionPadding"33 | "disableAnchorTracking"34 | "positionMethod"35 | "side"36 | "sideOffset"37 > & {38 asChild?: boolean;39 avoidCollisions?: boolean;40 collisionBoundary?: CollisionBoundary;41 forceMount?: boolean;42 hideWhenDetached?: boolean;43 onCloseAutoFocus?: AutoFocusEventHandler;44 onOpenAutoFocus?: AutoFocusEventHandler;45 onPlaced?: () => void;46 sticky?: "partial" | "always";47 updatePositionStrategy?: "optimized" | "always";48 } & DismissableLayerHandlers;49type PopoverContextProps = {50 dismissableLayerHandlersRef: React.RefObject<DismissableLayerHandlers>;51 open: boolean;52};5354type PreventableBaseUIEvent = {55 readonly baseUIHandlerPrevented?: boolean;56 readonly defaultPrevented?: boolean;57 preventBaseUIHandler?: () => void;58};59type EventHandler = (...args: unknown[]) => unknown;60type RenderFunction = (props: Record<string, unknown>, state: unknown) => React.ReactElement;6162function adaptEventHandlers(props: Record<string, unknown>, beforeBaseUIHandler: boolean) {63 const eventHandlers: Record<string, EventHandler> = {};6465 for (const [name, handler] of Object.entries(props)) {66 if (!/^on[A-Z]/.test(name) || typeof handler !== "function") {67 continue;68 }6970 eventHandlers[name] = (...args) => {71 const event = args[0] as PreventableBaseUIEvent | undefined;72// … truncated
What it pulls in
npm packages
