BlockDex

Components

Registries

Free blocks

Method

BlockDex

Components

Registries

Free blocks

Method

Open API

BlockDex

Components

Registries

Free blocks

Method

Open API

Components/octane/sheet

Sheet

octane/sheet
FreeComponent

octane publishes no description for this item.

Live preview

live · rendered by the registry
Rendered by octane on their own page — this is the component running, not a screenshot of it.

Install it

npx shadcn@latest add https://raw.githubusercontent.com/octanejs/octane/main/packages/shadcn/registry/sheet.json

Source

ui/sheet.tsrxraw.githubusercontent.com/octanejs/octane/main/packages/shadcn/registry/sheet.json
1// Base UI base sheet — TRANSCRIBED from upstream's `bases/base-ui/ui/sheet.tsx`
2// (maintainer-supplied), class strings verbatim. Runs on @octanejs/base-ui's Dialog:
3// Overlay -> Backdrop, Content -> Popup.
4//
5// UPSTREAM ANIMATES THIS WITH CSS TRANSITIONS, NOT KEYFRAMES, which is why the file is transcribed
6// rather than derived. Base UI publishes `data-starting-style` and `data-ending-style` (see
7// utils/popupStateMapping.ts) and this source drives motion off them with a plain `transition`,
8// where the radix base uses `animate-in` / `animate-out` keyframe utilities.
9//
10// A derived version of this file did jump visibly on close, which is what prompted the
11// transcription. Do NOT infer from that a general rule that keyframes cannot work on Base UI: the
12// same mapping also emits `data-open` and `data-closed`, so `data-closed:animate-out` does match,
13// and the precise cause of that jump was never isolated. What is established here is only what
14// upstream ships, which is this.
15//
16// So the motion here reads: `transition duration-200` plus per-side
17// `data-starting-style:translate-*` / `data-ending-style:translate-*` and an opacity pair —
18// the element sits offset-and-transparent before open and after close, and transitions to its
19// resting position in between.
20//
21// ONE DEPARTURE FROM THE SOURCE: upstream's title carries `cn-font-heading`, a semantic hook from
22// the pinned cn-* system. This package ships the utilities-inlined flavor, the react-aria base
23// drops the same class, and nothing defines it here (0 occurrences in the built CSS).
24//
25// Octane adaptations: no `"use client"`; refs are props.
26import { type OctaneNode } from 'octane';
27import { Dialog as SheetPrimitive } from '@octanejs/base-ui/dialog';
28import { XIcon } from '@octanejs/lucide';
29
30import { cn } from '@/lib/utils';
31import { Button } from '@/components/ui/button';
32
33type Props = { className?: string; children?: OctaneNode } & Record<string, unknown>;
34
35export function Sheet(props: Record<string, unknown>) @{
36 <SheetPrimitive.Root data-slot="sheet" {...props} />
37}
38
39export function SheetTrigger(props: Record<string, unknown>) @{
40 <SheetPrimitive.Trigger data-slot="sheet-trigger" {...props} />
41}
42
43export function SheetClose(props: Record<string, unknown>) @{
44 <SheetPrimitive.Close data-slot="sheet-close" {...props} />
45}
46
47export function SheetPortal(props: Record<string, unknown>) @{
48 <SheetPrimitive.Portal data-slot="sheet-portal" {...props} />
49}
50
51// … truncated

What it pulls in

npm packages

  • @octanejs/base-ui@0.1.28
  • @octanejs/lucide@0.1.25

Other registry items

  • @octane/button
  • @octane/utils

Files it writes

  • ui/sheet.tsrx

Facts

Registry
octane
Type
registry:ui
Access
Free
Files written
1
Licence
MIT
First indexed
2026-08-07
Last confirmed
2 days ago

Go to the source

Docs on octane octanejs.dev octanejs/octane on GitHub Raw registry item This item as JSON

More from octane

All 44 items
Same registry, same kind — the ones you would have found next
ComponentRegistryKindAccessInstallsCommand
AccordionaccordionoctaneComponentsFree2 deps
AlertalertoctaneComponentsFree1 dep
Alert Dialogalert-dialogoctaneComponentsFree1 dep
Aspect Ratioaspect-ratiooctaneComponentsFreeno deps
AvataravataroctaneComponentsFree1 dep
BadgebadgeoctaneComponentsFree1 dep
BreadcrumbbreadcrumboctaneComponentsFree1 dep
ButtonbuttonoctaneComponentsFree2 deps
BlockDex

Built by

Kynth Studios

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

BlockDex

BlockDex

Built by

Kynth Studios

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

BlockDex

BlockDex

Built by

Kynth Studios

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

BlockDex