Design System

Component usage guide template

Browse Components

ui

Sheet Panel

Wrapper cho Sheet với layout chuẩn hóa, có preset size và vẫn cho phép forward toàn bộ props của SheetContent.

1. Import
Import root, trigger và panel content.
import {
  SheetPanel,
  SheetPanelRoot,
  SheetPanelTrigger,
} from "@/design-system/components/ui/sheet-panel"
2. Props
SheetPanel kế thừa toàn bộ props của SheetContent.
PropTypeDefault
size"sm" | "md" | "lg" | "xl" | "auto""sm"
side"top" | "right" | "bottom" | "left""right"
titleReact.ReactNode--
descriptionReact.ReactNode--
footerReact.ReactNode--
showCloseButtonbooleantrue
3. Usages
Các pattern phổ biến cho side panel.
import {
  SheetPanel,
  SheetPanelRoot,
  SheetPanelTrigger,
} from "@/design-system/components/ui/sheet-panel";
import { Button } from "@/design-system/components/ui/button";
import { Input } from "@/design-system/components/ui/input";

export function Example() {
  return (
    <SheetPanelRoot>
      <SheetPanelTrigger render={<Button variant="outline">Mở panel</Button>} />
      <SheetPanel
        title="Cập nhật hồ sơ"
        description="Dùng layout thống nhất cho side panel."
        footer={
          <div className="flex flex-col gap-2 sm:flex-row sm:justify-end">
            <Button variant="outline">Hủy</Button>
            <Button>Lưu thay đổi</Button>
          </div>
        }
      >
        <div className="grid gap-3">
          <Input label="Họ và tên" placeholder="Nguyễn Văn A" />
          <Input label="Email" placeholder="name@company.vn" />
        </div>
      </SheetPanel>
    </SheetPanelRoot>
  );
}