rSheet
A flexible sheet (sliding panel) component built on top of reka-ui's dialog system.
Props
| Name | Type | Required | Description |
|---|---|---|---|
open | boolean | ❌ | Controls the open state (controlled mode). |
defaultOpen | boolean | ❌ | Initial open state (uncontrolled mode). |
modal | boolean | ❌ | Whether to trap focus and disable background interaction. |
overlay | boolean | ❌ | Controls whether a background overlay is shown. |
portal | DialogPortalProps | ❌ | Props forwarded to the DialogPortal. |
content | Omit<DialogContentProps, "as" | "asChild" | "forceMount"> | ❌ | Props forwarded to the DialogContent. |
position | 'top' | 'bottom' | 'left' | 'right' | ❌ | Position of the sheet on screen. Defaults to 'right'. |
ui | Partial<ComponentSlots<typeof rSheetStyles.slots>> | ❌ | Optional class overrides for styling individual sheet sections. |
Slots
| Name | Description | Slot Props |
|---|---|---|
default | Trigger element for opening the sheet. | { open: boolean } |
title | Title displayed at the top of the sheet. | – |
description | Optional text under the title for additional context. | – |
content | Rendered outside DialogContent, if needed. | – |
main | Main body content of the sheet. | – |
footer | Section for footer actions (e.g. buttons). | – |
close | Custom close button. Defaults to an RButton with an X icon. | – |
Emits
This component supports all native dialog emits via reka-ui:
update:open— Emits when the sheet is opened or closed.open— Fires when the sheet opens.close— Fires when the sheet closes.