Dialog
avail-widgets/dialogFreeComponent
UI primitive: Dialog
Install it
npx shadcn@latest add https://elements.nexus.availproject.org/r/dialog.jsonSource
1"use client"23import * as React from "react"4import * as DialogPrimitive from "@radix-ui/react-dialog"5import { XIcon } from "lucide-react"67import { cn } from "@/lib/utils"89function Dialog({10 ...props11}: React.ComponentProps<typeof DialogPrimitive.Root>) {12 return <DialogPrimitive.Root data-slot="dialog" {...props} />13}1415function DialogTrigger({16 ...props17}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {18 return <DialogPrimitive.Trigger data-slot="dialog-trigger" {...props} />19}2021function DialogPortal({22 ...props23}: React.ComponentProps<typeof DialogPrimitive.Portal>) {24 return <DialogPrimitive.Portal data-slot="dialog-portal" {...props} />25}2627function DialogClose({28 ...props29}: React.ComponentProps<typeof DialogPrimitive.Close>) {30 return <DialogPrimitive.Close data-slot="dialog-close" {...props} />31}3233function DialogOverlay({34 className,35 ...props36}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {37 return (38 <DialogPrimitive.Overlay39 data-slot="dialog-overlay"40 className={cn(41 "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",42 className43 )}44 {...props}45 />46 )47}4849function DialogContent({50 className,51 children,52 showCloseButton = true,53 dismissible = true,54 onInteractOutside,55 onEscapeKeyDown,56 ...props57}: React.ComponentProps<typeof DialogPrimitive.Content> & {58 showCloseButton?: boolean59 dismissible?: boolean60}) {61 return (62 <DialogPortal data-slot="dialog-portal">63 <DialogOverlay />64 <DialogPrimitive.Content65 data-slot="dialog-content"66 className={cn(67 "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",68 className69 )}70 onInteractOutside={(event) => {71 if (!dismissible) {72 event.preventDefault()73 }74 onInteractOutside?.(event)75 }}76 onEscapeKeyDown={(event) => {77 if (!dismissible) {78 event.preventDefault()79 }80 onEscapeKeyDown?.(event)81 }}82 {...props}83 >84 {children}85// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from avail-widgets
All 27 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | avail-widgets | Components | Free | 2 deps | |
| All Elementsall | avail-widgets | Components | Free | no deps | |
| Animated Spinneranimated-spinner | avail-widgets | Components | Free | no deps | |
| Badgebadge | avail-widgets | Components | Free | 2 deps | |
| Bridge Depositbridge-deposit | avail-widgets | Components | Free | 3 deps · 32 files | |
| Buttonbutton | avail-widgets | Components | Free | 2 deps | |
| Cardcard | avail-widgets | Components | Free | no deps | |
| Checkboxcheckbox | avail-widgets | Components | Free | 2 deps |
