Command Palette

Search for a command to run...

Extends the Dialog component to display content that complements the main content of the screen.

Sheet

import { Button } from "@/components/optics/button";import { Input } from "@/components/optics/input";import { Label } from "@/components/optics/label";import { Sheet, SheetClose, SheetDescription, SheetFooter, SheetHeader, SheetPopup, SheetTitle, SheetTrigger } from "@/components/optics/sheet";<Sheet>  <SheetTrigger render={<Button size="lg" variant="raised">Open Sheet</Button>} />  <SheetPopup variant="rounded">    <SheetHeader>      <SheetTitle>        Edit profile      </SheetTitle>      <SheetDescription>        Make changes to your profile here. Click save when you're done.      </SheetDescription>    </SheetHeader>    <div className="grid gap-4 p-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>    <SheetFooter>      <SheetClose render={<Button type="submit">Save changes</Button>} />    </SheetFooter>  </SheetPopup></Sheet>

Installation

pnpm dlx shadcn@latest add @optics/sheet

Props

<Sheet />
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

<SheetTrigger />
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
<SheetClose />
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
<SheetPopup />
Name
Type
side
string(default: right)
variant
string(default: full)
showCloseButton
boolean(default: true)
reduceMotion
boolean(default: false)
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
<SheetHeader />
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
<SheetFooter />
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
<SheetTitle />
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
<SheetDescription />
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