Sheet
blok/sheetFreeComponent
A side panel containing content or editable fields.
Install it
npx shadcn@latest add https://blok.sitecore.com/r/sheet.jsonSource
1"use client";23import { Icon } from "@/lib/icon";4import { mdiClose } from "@mdi/js";5import { Dialog as SheetPrimitive } from "radix-ui";6import type * as React from "react";78import { buttonVariants } from "@/components/ui/button";9import { cn } from "@/lib/utils";1011function Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {12 return <SheetPrimitive.Root data-slot="sheet" {...props} />;13}1415function SheetTrigger({16 ...props17}: React.ComponentProps<typeof SheetPrimitive.Trigger>) {18 return <SheetPrimitive.Trigger data-slot="sheet-trigger" {...props} />;19}2021function SheetClose({22 ...props23}: React.ComponentProps<typeof SheetPrimitive.Close>) {24 return <SheetPrimitive.Close data-slot="sheet-close" {...props} />;25}2627function SheetPortal({28 ...props29}: React.ComponentProps<typeof SheetPrimitive.Portal>) {30 return <SheetPrimitive.Portal data-slot="sheet-portal" {...props} />;31}3233function SheetOverlay({34 className,35 ...props36}: React.ComponentProps<typeof SheetPrimitive.Overlay>) {37 return (38 <SheetPrimitive.Overlay39 data-slot="sheet-overlay"40 className={cn(41 "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",42 className,43 )}44 {...props}45 />46 );47}4849function SheetContent({50 className,51 children,52 side = "right",53 ...props54}: React.ComponentProps<typeof SheetPrimitive.Content> & {55 side?: "top" | "right" | "bottom" | "left";56}) {57 return (58 <SheetPortal>59 <SheetOverlay />60 <SheetPrimitive.Content61 data-slot="sheet-content"62 className={cn(63 "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",64 side === "right" &&65 "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 sm:max-w-sm",66 side === "left" &&67 "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 sm:max-w-sm",68 side === "top" &&69 "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto",70 side === "bottom" &&71 "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto",72// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from blok
All 72 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | blok | Components | Free | 2 deps · 2 files | |
| Action baraction-bar | blok | Components | Free | 1 dep · 2 files | |
| Alertalert | blok | Components | Free | 2 deps · 2 files | |
| Alert dialogalert-dialog | blok | Components | Free | 2 deps | |
| Aspect ratioaspect-ratio | blok | Components | Free | 1 dep | |
| Avataravatar | blok | Components | Free | 1 dep | |
| Badgebadge | blok | Components | Free | 2 deps | |
| All componentsblok-components | blok | Components | Free | no deps |
