Sheet
poyraz/sheetFreeComponent
Poyraz Soft Glass sheet component with standardized floating and overlay behavior.
Install it
npx shadcn@latest add https://ui.poyrazavsever.com/r/sheet.jsonSource
1"use client";23import * as React from "react";4import * as DialogPrimitive from "@radix-ui/react-dialog";5import { cva, type VariantProps } from "class-variance-authority";6import { X } from "lucide-react";78import { cn } from "@/lib/utils";9import {10 overlaySurfaceVariants,11 overlayVariants,12 type OverlayProps,13 type OverlaySurfaceProps,14} from "@/components/ui/recipes";1516/* ================================================================== */17/* SHEET — Full-height side panel (left / right / top / bottom) */18/* ================================================================== */1920const Sheet = DialogPrimitive.Root;2122const SheetTrigger = DialogPrimitive.Trigger;2324const SheetClose = DialogPrimitive.Close;2526const SheetPortal = DialogPrimitive.Portal;2728/* ── Overlay ──────────────────────────────────────────────────────── */2930const SheetOverlay = React.forwardRef<31 React.ElementRef<typeof DialogPrimitive.Overlay>,32 React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay> & OverlayProps33>(({ className, tone, ...props }, ref) => (34 <DialogPrimitive.Overlay35 ref={ref}36 className={cn(overlayVariants({ tone }), className)}37 {...props}38 />39));40SheetOverlay.displayName = "SheetOverlay";4142/* ── Content ──────────────────────────────────────────────────────── */4344const sheetContentVariants = cva(45 [46 "fixed z-50 gap-4 p-6",47 "data-[state=open]:animate-in data-[state=closed]:animate-out",48 "motion-reduce:duration-100",49 ].join(" "),50 {51 variants: {52 side: {53 top: "inset-x-0 top-0 border-t-0 data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",54 bottom:55 "inset-x-0 bottom-0 border-b-0 data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",56 left: "inset-y-0 left-0 h-full w-3/4 sm:max-w-sm border-l-0 data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left",57 right:58 "inset-y-0 right-0 h-full w-3/4 sm:max-w-sm border-r-0 data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right",59 },60 },61 defaultVariants: {62 side: "right",63 },64 },65);6667export interface SheetContentProps68 extends69// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from poyraz
All 71 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | poyraz | Components | Free | 2 deps | |
| Alertalert | poyraz | Components | Free | 2 deps | |
| Announcement Barannouncement-bar | poyraz | Components | Free | 2 deps | |
| Autocompleteautocomplete | poyraz | Components | Free | 1 dep | |
| Avataravatar | poyraz | Components | Free | 2 deps | |
| Badgebadge | poyraz | Components | Free | 1 dep | |
| Bg Patternbg-pattern | poyraz | Components | Free | no deps | |
| Breadcrumbbreadcrumb | poyraz | Components | Free | 1 dep |
