{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "extends": "none",
  "name": "sheet",
  "title": "sheet",
  "description": "sheet",
  "dependencies": [
    "react-aria-components"
  ],
  "registryDependencies": [
    "https://intentui.com/r/primitive",
    "https://intentui.com/r/dialog"
  ],
  "files": [
    {
      "path": "src/components/ui/sheet.tsx",
      "content": "'use client'\n\nimport {\n  type DialogProps,\n  DialogTrigger as DialogTriggerPrimitive,\n} from 'react-aria-components/Dialog'\nimport { Modal, ModalOverlay, type ModalOverlayProps } from 'react-aria-components/Modal'\nimport { cx } from '@/lib/primitive'\nimport {\n  Dialog,\n  DialogBody,\n  DialogClose,\n  DialogCloseIcon,\n  DialogDescription,\n  DialogFooter,\n  DialogHeader,\n  DialogTitle,\n  DialogTrigger,\n} from './dialog'\n\nconst Sheet = DialogTriggerPrimitive\n\ninterface SheetContentProps\n  extends\n    Omit<ModalOverlayProps, 'children'>,\n    Pick<DialogProps, 'aria-label' | 'role' | 'aria-labelledby' | 'children'> {\n  closeButton?: boolean\n  isFloat?: boolean\n  side?: 'top' | 'bottom' | 'left' | 'right'\n  overlay?: Omit<ModalOverlayProps, 'children'>\n}\n\nconst sideVariants: Record<string, string> = {\n  top: 'entering:slide-in-from-top exiting:slide-out-to-top inset-x-0 top-0 rounded-b-2xl border-b data-[float=true]:inset-x-2 data-[float=true]:top-2 data-[float=true]:border-b-0',\n  bottom:\n    'entering:slide-in-from-bottom exiting:slide-out-to-bottom inset-x-0 bottom-0 rounded-t-2xl border-t data-[float=true]:inset-x-2 data-[float=true]:bottom-2 data-[float=true]:border-t-0',\n  left: 'entering:slide-in-from-left exiting:slide-out-to-left-80 inset-y-0 left-0 h-auto w-3/4 overflow-y-auto border-r sm:max-w-80 data-[float=true]:inset-y-2 data-[float=true]:left-2 data-[float=true]:border-r-0',\n  right:\n    'entering:slide-in-from-right exiting:slide-out-to-right-80 inset-y-0 right-0 h-auto w-3/4 overflow-y-auto border-l sm:max-w-80 data-[float=true]:inset-y-2 data-[float=true]:right-2 data-[float=true]:border-l-0',\n}\n\nconst SheetContent = ({\n  className,\n  isDismissable: isDismissableInternal,\n  side = 'right',\n  role = 'dialog',\n  closeButton = true,\n  isFloat = true,\n  overlay,\n  children,\n  ...props\n}: SheetContentProps) => {\n  const isDismissable = isDismissableInternal ?? role !== 'alertdialog'\n  return (\n    <ModalOverlay\n      isDismissable={isDismissable}\n      className={cx(\n        'entering:fade-in exiting:fade-out fixed start-0 top-0 z-50 size-full entering:animate-in exiting:animate-out overflow-hidden bg-black/15 entering:duration-500 exiting:duration-300',\n        overlay?.className\n      )}\n      {...props}\n    >\n      <Modal\n        data-float={isFloat}\n        className={cx(\n          'fixed z-50 grid gap-4 border-muted-fg/20 bg-overlay text-overlay-fg shadow-lg dark:border-border',\n          'transform-gpu transition ease-in-out will-change-transform [--visual-viewport-vertical-padding:16px]',\n          'data-[float=true]:rounded-lg data-[float=true]:ring data-[float=true]:ring-fg/5 dark:data-[float=true]:ring-border',\n          'border-fg/20 dark:border-border',\n          'entering:fade-in entering:animate-in entering:duration-500',\n          'exiting:fade-in exiting:animate-out exiting:duration-300',\n          sideVariants[side],\n          className\n        )}\n      >\n        <Dialog className=\"sm:[--gutter:--spacing(6)]\" aria-label={props['aria-label']} role={role}>\n          {(values) => (\n            <>\n              {typeof children === 'function' ? children(values) : children}\n              {closeButton && (\n                <DialogCloseIcon className=\"end-2.5 top-2.5\" isDismissable={isDismissable} />\n              )}\n            </>\n          )}\n        </Dialog>\n      </Modal>\n    </ModalOverlay>\n  )\n}\n\nconst SheetTrigger = DialogTrigger\nconst SheetFooter = DialogFooter\nconst SheetHeader = DialogHeader\nconst SheetTitle = DialogTitle\nconst SheetDescription = DialogDescription\nconst SheetBody = DialogBody\nconst SheetClose = DialogClose\n\nexport type { SheetContentProps }\nexport {\n  Sheet,\n  SheetBody,\n  SheetClose,\n  SheetContent,\n  SheetDescription,\n  SheetFooter,\n  SheetHeader,\n  SheetTitle,\n  SheetTrigger,\n}\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}