Installation
Add Component
Copy the code snippet below into you components folder.
Integrate Recipe
Integrate this recipe in to your Panda config.
Usage
Examples
Sizes
Use the size prop to change the size of the drawer.
Placements
Use the placement prop to change the placement of the drawer.
Props
| Prop | Default | Type | 
|---|---|---|
| size | 'sm' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full' | 
| placement | 'end' | 'start' | 'end' | 'top' | 'bottom' | 
| closeOnEscape | true | booleanWhether to close the dialog when the escape key is pressed | 
| closeOnInteractOutside | true | booleanWhether to close the dialog when the outside is clicked | 
| defaultOpen | false | booleanThe initial open state of the dialog when rendered. Use when you don't need to control the open state of the dialog. | 
| lazyMount | false | booleanWhether to enable lazy mounting | 
| modal | true | booleanWhether to prevent pointer interaction outside the element and hide all content below it | 
| preventScroll | true | booleanWhether to prevent scrolling behind the dialog when it's opened | 
| role | \dialog\ | 'dialog' | 'alertdialog'The dialog's role | 
| skipAnimationOnMount | false | booleanWhether to allow the initial presence animation. | 
| trapFocus | true | booleanWhether to trap focus inside the dialog when it's opened | 
| unmountOnExit | false | booleanWhether to unmount on exit. | 
| aria-label | stringHuman readable label for the dialog, in event the dialog title is not rendered | |
| finalFocusEl | () => MaybeElementElement to receive focus when the dialog is closed | |
| id | stringThe unique identifier of the machine. | |
| ids | Partial<{
  trigger: string
  positioner: string
  backdrop: string
  content: string
  closeTrigger: string
  title: string
  description: string
}>The ids of the elements in the dialog. Useful for composition. | |
| immediate | booleanWhether to synchronize the present change immediately or defer it to the next frame | |
| initialFocusEl | () => MaybeElementElement to receive focus when the dialog is opened | |
| onEscapeKeyDown | (event: KeyboardEvent) => voidFunction called when the escape key is pressed | |
| onExitComplete | VoidFunctionFunction called when the animation ends in the closed state | |
| onFocusOutside | (event: FocusOutsideEvent) => voidFunction called when the focus is moved outside the component | |
| onInteractOutside | (event: InteractOutsideEvent) => voidFunction called when an interaction happens outside the component | |
| onOpenChange | (details: OpenChangeDetails) => voidFunction to call when the dialog's open state changes | |
| onPointerDownOutside | (event: PointerDownOutsideEvent) => voidFunction called when the pointer is pressed down outside the component | |
| onRequestDismiss | (event: LayerDismissEvent) => voidFunction called when this layer is closed due to a parent layer being closed | |
| open | booleanThe controlled open state of the dialog | |
| persistentElements | (() => Element | null)[]Returns the persistent elements that: - should not have pointer-events disabled - should not trigger the dismiss event | |
| present | booleanWhether the node is present (controlled by the user) | |
| restoreFocus | booleanWhether to restore focus to the element that had focus before the dialog was opened |