Command Palette

Search for a command to run...

Dialog

shadcn/ui

A window overlaid on either the primary window or another dialog window, rendering the content underneath inert.

Dialog

import { Dialog, DialogDescription, DialogFooter, DialogHeader, DialogPopup, DialogTitle, DialogTrigger } from "@/components/optics/dialog";import { Button } from "@/components/optics/button";import { Input } from "@/components/optics/input";import { Label } from "@/components/optics/label";<Dialog>  <DialogTrigger render={<Button variant="raised">Edit Profile</Button>} />  <DialogPopup>    <DialogHeader>      <DialogTitle>        Edit profile      </DialogTitle>      <DialogDescription>        Make changes to your profile here. Click save when you're done.      </DialogDescription>    </DialogHeader>    <div className="grid gap-4 py-4">      <div className="grid grid-cols-4 items-center gap-4">        <Label          className="text-right"          htmlFor="name"        >          Name        </Label>        <Input          className="col-span-3"          defaultValue="Pedro Duarte"          id="name"        />      </div>      <div className="grid grid-cols-4 items-center gap-4">        <Label          className="text-right"          htmlFor="username"        >          Username        </Label>        <Input          className="col-span-3"          defaultValue="@peduarte"          id="username"        />      </div>    </div>    <DialogFooter>      <Button        type="submit"        variant="default"      >        Save changes      </Button>    </DialogFooter>  </DialogPopup></Dialog>

Installation

pnpm dlx shadcn@latest add @optics/dialog

Props

<Dialog />
Name
Type
modal
boolean(default: true)
open
boolean
defaultOpen
boolean
onOpenChange
(...args) => void
onOpenChangeComplete
((open: boolean) => void)
disablePointerDismissal
boolean
triggerId
string
defaultTriggerId
string
payload
object
nativeButton
boolean
render
React.ReactElement
keepMounted
boolean
container
HTMLElement | RefObject<HTMLElement>
initialFocus
boolean | HTMLElement
finalFocus
boolean | HTMLElement
forceRender
boolean

<DialogClose />
Name
Type
open
boolean
defaultOpen
boolean
modal
boolean | "trap-focus"
onOpenChange
(...args) => void
onOpenChangeComplete
((open: boolean) => void)
disablePointerDismissal
boolean
triggerId
string
defaultTriggerId
string
payload
object
nativeButton
boolean
render
React.ReactElement
keepMounted
boolean
container
HTMLElement | RefObject<HTMLElement>
initialFocus
boolean | HTMLElement
finalFocus
boolean | HTMLElement
forceRender
boolean
<DialogPopup />
Name
Type
animationPreset
string(default: scale)
transitionPreset
string(default: outCubic)
reduceMotion
boolean(default: false)
showCloseButton
boolean(default: true)
containerClassName
any
open
boolean
defaultOpen
boolean
modal
boolean | "trap-focus"
onOpenChange
(...args) => void
onOpenChangeComplete
((open: boolean) => void)
disablePointerDismissal
boolean
triggerId
string
defaultTriggerId
string
payload
object
nativeButton
boolean
render
React.ReactElement
keepMounted
boolean
container
HTMLElement | RefObject<HTMLElement>
initialFocus
boolean | HTMLElement
finalFocus
boolean | HTMLElement
forceRender
boolean
<DialogDescription />
Name
Type
open
boolean
defaultOpen
boolean
modal
boolean | "trap-focus"
onOpenChange
(...args) => void
onOpenChangeComplete
((open: boolean) => void)
disablePointerDismissal
boolean
triggerId
string
defaultTriggerId
string
payload
object
nativeButton
boolean
render
React.ReactElement
keepMounted
boolean
container
HTMLElement | RefObject<HTMLElement>
initialFocus
boolean | HTMLElement
finalFocus
boolean | HTMLElement
forceRender
boolean
<DialogFooter />
Name
Type
open
boolean
defaultOpen
boolean
modal
boolean | "trap-focus"
onOpenChange
(...args) => void
onOpenChangeComplete
((open: boolean) => void)
disablePointerDismissal
boolean
triggerId
string
defaultTriggerId
string
payload
object
nativeButton
boolean
render
React.ReactElement
keepMounted
boolean
container
HTMLElement | RefObject<HTMLElement>
initialFocus
boolean | HTMLElement
finalFocus
boolean | HTMLElement
forceRender
boolean
<DialogHeader />
Name
Type
open
boolean
defaultOpen
boolean
modal
boolean | "trap-focus"
onOpenChange
(...args) => void
onOpenChangeComplete
((open: boolean) => void)
disablePointerDismissal
boolean
triggerId
string
defaultTriggerId
string
payload
object
nativeButton
boolean
render
React.ReactElement
keepMounted
boolean
container
HTMLElement | RefObject<HTMLElement>
initialFocus
boolean | HTMLElement
finalFocus
boolean | HTMLElement
forceRender
boolean
<DialogBackdrop />
Name
Type
open
boolean
defaultOpen
boolean
modal
boolean | "trap-focus"
onOpenChange
(...args) => void
onOpenChangeComplete
((open: boolean) => void)
disablePointerDismissal
boolean
triggerId
string
defaultTriggerId
string
payload
object
nativeButton
boolean
render
React.ReactElement
keepMounted
boolean
container
HTMLElement | RefObject<HTMLElement>
initialFocus
boolean | HTMLElement
finalFocus
boolean | HTMLElement
forceRender
boolean
<DialogViewport />
Name
Type
open
boolean
defaultOpen
boolean
modal
boolean | "trap-focus"
onOpenChange
(...args) => void
onOpenChangeComplete
((open: boolean) => void)
disablePointerDismissal
boolean
triggerId
string
defaultTriggerId
string
payload
object
nativeButton
boolean
render
React.ReactElement
keepMounted
boolean
container
HTMLElement | RefObject<HTMLElement>
initialFocus
boolean | HTMLElement
finalFocus
boolean | HTMLElement
forceRender
boolean
<DialogPortal />
Name
Type
open
boolean
defaultOpen
boolean
modal
boolean | "trap-focus"
onOpenChange
(...args) => void
onOpenChangeComplete
((open: boolean) => void)
disablePointerDismissal
boolean
triggerId
string
defaultTriggerId
string
payload
object
nativeButton
boolean
render
React.ReactElement
keepMounted
boolean
container
HTMLElement | RefObject<HTMLElement>
initialFocus
boolean | HTMLElement
finalFocus
boolean | HTMLElement
forceRender
boolean
<DialogTitle />
Name
Type
open
boolean
defaultOpen
boolean
modal
boolean | "trap-focus"
onOpenChange
(...args) => void
onOpenChangeComplete
((open: boolean) => void)
disablePointerDismissal
boolean
triggerId
string
defaultTriggerId
string
payload
object
nativeButton
boolean
render
React.ReactElement
keepMounted
boolean
container
HTMLElement | RefObject<HTMLElement>
initialFocus
boolean | HTMLElement
finalFocus
boolean | HTMLElement
forceRender
boolean
<DialogTrigger />
Name
Type
open
boolean
defaultOpen
boolean
modal
boolean | "trap-focus"
onOpenChange
(...args) => void
onOpenChangeComplete
((open: boolean) => void)
disablePointerDismissal
boolean
triggerId
string
defaultTriggerId
string
payload
object
nativeButton
boolean
render
React.ReactElement
keepMounted
boolean
container
HTMLElement | RefObject<HTMLElement>
initialFocus
boolean | HTMLElement
finalFocus
boolean | HTMLElement
forceRender
boolean