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.
Dialog
neobrutal-ui/dialogRemovedComponent
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/dialog.jsonSource
1"use client";23import * as React from "react";4import { Dialog as DialogPrimitive } from "@base-ui/react/dialog";56import { cn } from "@/lib/utils";7import { Button } from "@/components/ui/button";8import { XIcon } from "lucide-react";910type AutoFocusEventHandler = (event: Event) => void;11type FocusTarget = DialogPrimitive.Popup.Props["initialFocus"];12type PointerDownOutsideEvent = CustomEvent<{ originalEvent: PointerEvent }>;13type FocusOutsideEvent = CustomEvent<{ originalEvent: FocusEvent }>;14type DismissableLayerHandlers = {15 onEscapeKeyDown?: (event: KeyboardEvent) => void;16 onFocusOutside?: (event: FocusOutsideEvent) => void;17 onInteractOutside?: (event: FocusOutsideEvent | PointerDownOutsideEvent) => void;18 onPointerDownOutside?: (event: PointerDownOutsideEvent) => void;19};20type DialogPortalProps = DialogPrimitive.Portal.Props & {21 forceMount?: boolean;22};23type DialogOverlayProps = DialogPrimitive.Backdrop.Props & {24 asChild?: boolean;25 children?: React.ReactNode;26 forceMount?: boolean;27};28type DialogContentProps = DialogPrimitive.Popup.Props & {29 asChild?: boolean;30 children?: React.ReactNode;31 forceMount?: boolean;32 onCloseAutoFocus?: AutoFocusEventHandler;33 onOpenAutoFocus?: AutoFocusEventHandler;34 showCloseButton?: boolean;35} & DismissableLayerHandlers;36type DialogContextProps = {37 dismissableLayerHandlersRef: React.RefObject<DismissableLayerHandlers>;38 open: boolean;39};4041type PreventableBaseUIEvent = {42 readonly baseUIHandlerPrevented?: boolean;43 readonly defaultPrevented?: boolean;44 preventBaseUIHandler?: () => void;45};46type EventHandler = (...args: unknown[]) => unknown;47type RenderFunction = (props: Record<string, unknown>, state: unknown) => React.ReactElement;4849function adaptEventHandlers(props: Record<string, unknown>, beforeBaseUIHandler: boolean) {50 const eventHandlers: Record<string, EventHandler> = {};5152 for (const [name, handler] of Object.entries(props)) {53 if (!/^on[A-Z]/.test(name) || typeof handler !== "function") {54 continue;55 }5657 eventHandlers[name] = (...args) => {58 const event = args[0] as PreventableBaseUIEvent | undefined;59 if (beforeBaseUIHandler && event?.defaultPrevented) {60 event.preventBaseUIHandler?.();61 }62 if (beforeBaseUIHandler && event?.baseUIHandlerPrevented) {63 return undefined;64 }6566 const result = handler(...args);67 if (!beforeBaseUIHandler && event?.defaultPrevented) {68 event.preventBaseUIHandler?.();69 }70// … truncated
What it pulls in
npm packages
