Notifications
Choose which updates you receive.
Privacy
Manage who can see your activity.
~~~~
For the rendered reference, visit [/docs/components/separator](/docs/components/separator).
---
Source: http://sveltekit-prerender/docs/components/sheet.md
# Sheet
Side-anchored drawer overlay (left | right). Composes _internal/overlay for shared mechanics and Svelte transitions for motion.
- Package: `@mielui/svelte`
- Component version: `1.0.0`
- Depends on Mielui components: _internal/utils, button, _internal/overlay
- Shared utilities: components/_internal/surface, hugeicons-icon, utils.cn, utils.createContext, transition
## Install
~~~~sh
pnpm dlx @mielui/svelte add sheet
~~~~
## API
This reference is generated at build time from the component manifest, public `index.ts`, and documentation examples below. Changes to those source files are reflected here in the published Markdown. Standard Svelte and HTML attributes accepted by the exported prop types are supported.
### Close
| Prop | Type | Default | Required | Bindable |
| --- | --- | --- | --- | --- |
| disabled | boolean \| undefined | — | No | No |
| variant | ButtonVariant \| undefined | — | No | No |
| size | "sm" \| "md" \| "lg" \| "icon" \| undefined | — | No | No |
| children | Snippet<[]> \| undefined | — | No | No |
| element | HTMLButtonElement \| HTMLAnchorElement \| undefined | — | No | Yes |
| unstyled | boolean \| undefined | — | No | No |
| status | ButtonStatus \| undefined | — | No | No |
| loading | boolean \| undefined | — | No | No |
| loadingLabel | string \| undefined | — | No | No |
| successLabel | string \| undefined | — | No | No |
| errorLabel | string \| undefined | — | No | No |
| onclick | ((event: MouseEvent) => void) \| undefined | — | No | No |
| onkeydown | ((event: KeyboardEvent) => void) \| undefined | — | No | No |
| href | string \| undefined | — | No | No |
Also accepts the native HTML attributes and events listed in the rendered API reference.
### Content
| Prop | Type | Default | Required | Bindable |
| --- | --- | --- | --- | --- |
| surface | "solid" \| "glass" \| undefined | — | No | No |
| allowClickOutside | boolean \| undefined | true | No | No |
| side | "left" \| "right" \| undefined | 'right' | No | No |
| class | string \| undefined | — | No | No |
| children | Snippet<[]> \| undefined | — | No | No |
### Description
| Prop | Type | Default | Required | Bindable |
| --- | --- | --- | --- | --- |
| class | string \| undefined | — | No | No |
| children | Snippet<[]> \| undefined | — | No | No |
### Footer
| Prop | Type | Default | Required | Bindable |
| --- | --- | --- | --- | --- |
| class | string \| undefined | — | No | No |
| children | Snippet<[]> \| undefined | — | No | No |
### Header
| Prop | Type | Default | Required | Bindable |
| --- | --- | --- | --- | --- |
| class | string \| undefined | — | No | No |
| children | Snippet<[]> \| undefined | — | No | No |
| close | boolean \| undefined | true | No | No |
### Root
| Prop | Type | Default | Required | Bindable |
| --- | --- | --- | --- | --- |
| open | boolean \| undefined | false | No | Yes |
| onOpenChange | ((open: boolean) => void) \| undefined | — | No | No |
| children | Snippet<[]> \| undefined | — | No | No |
### Title
| Prop | Type | Default | Required | Bindable |
| --- | --- | --- | --- | --- |
| class | string \| undefined | — | No | No |
| children | Snippet<[]> \| undefined | — | No | No |
### Trigger
| Prop | Type | Default | Required | Bindable |
| --- | --- | --- | --- | --- |
| disabled | boolean \| undefined | — | No | No |
| variant | ButtonVariant \| undefined | — | No | No |
| size | "sm" \| "md" \| "lg" \| "icon" \| undefined | — | No | No |
| children | Snippet<[]> \| undefined | — | No | No |
| element | HTMLButtonElement \| HTMLAnchorElement \| undefined | — | No | Yes |
| unstyled | boolean \| undefined | — | No | No |
| status | ButtonStatus \| undefined | — | No | No |
| loading | boolean \| undefined | — | No | No |
| loadingLabel | string \| undefined | — | No | No |
| successLabel | string \| undefined | — | No | No |
| errorLabel | string \| undefined | — | No | No |
| onclick | ((event: MouseEvent) => void) \| undefined | — | No | No |
| onkeydown | ((event: KeyboardEvent) => void) \| undefined | — | No | No |
| href | string \| undefined | — | No | No |
Also accepts the native HTML attributes and events listed in the rendered API reference.
### Public types
~~~~ts
import type { DefaultProps } from '@mielui/svelte/utils';
import type { Snippet } from 'svelte';
import type { ButtonProps } from '../button';
import Root from './sheet.svelte';
import Close from './sheet-close.svelte';
import Content from './sheet-content.svelte';
import Description from './sheet-description.svelte';
import Footer from './sheet-footer.svelte';
import Header from './sheet-header.svelte';
import Title from './sheet-title.svelte';
import Trigger from './sheet-trigger.svelte';
export type SheetProps = {
open?: boolean;
onOpenChange?: (open: boolean) => void;
children?: Snippet;
};
export type SheetTriggerProps = ButtonProps;
export type SheetTitleProps = DefaultProps;
export type SheetHeaderProps = DefaultProps & { close?: boolean };
export type SheetFooterProps = DefaultProps;
export type SheetDescriptionProps = DefaultProps;
export type SheetContentProps = {
surface?: 'solid' | 'glass';
allowClickOutside?: boolean;
side?: 'left' | 'right';
} & DefaultProps;
export type SheetCloseProps = ButtonProps;
export type SheetState = {
open: boolean;
triggerRef?: HTMLElement | null;
};
export { Close, Content, Description, Footer, Header, Root, Title, Trigger };
~~~~
## Examples
### Glass
~~~~svelte