import * as React from 'react';
import { Dialog as SheetPrimitive } from '@base-ui/react/dialog';
import { XIcon } from 'lucide-react';
import { getPortalContainer } from '../../lib/portal';
import { classNames } from '../../lib/utils';
import { Button } from './button';
function Sheet({ ...props }: SheetPrimitive.Root.Props) {
return ;
}
const SheetTrigger = React.forwardRef<
HTMLButtonElement,
SheetPrimitive.Trigger.Props
>(function SheetTrigger({ ...props }, ref) {
return (
);
});
const SheetClose = React.forwardRef<
HTMLButtonElement,
SheetPrimitive.Close.Props
>(function SheetClose({ ...props }, ref) {
return ;
});
const SheetPortal = React.forwardRef<
HTMLDivElement,
SheetPrimitive.Portal.Props
>(function SheetPortal({ ...props }, ref) {
return (
);
});
const SheetOverlay = React.forwardRef<
HTMLDivElement,
SheetPrimitive.Backdrop.Props
>(function SheetOverlay({ className, ...props }, ref) {
return (
);
});
const SheetContent = React.forwardRef<
HTMLDivElement,
SheetPrimitive.Popup.Props & {
side?: 'top' | 'right' | 'bottom' | 'left';
showCloseButton?: boolean;
}
>(function SheetContent(
{ className, children, side = 'right', showCloseButton = true, ...props },
ref
) {
return (
{children}
{showCloseButton && (
}
>
Close
)}
);
});
const SheetHeader = React.forwardRef<
HTMLDivElement,
React.ComponentProps<'div'>
>(function SheetHeader({ className, ...props }, ref) {
return (
);
});
const SheetFooter = React.forwardRef<
HTMLDivElement,
React.ComponentProps<'div'>
>(function SheetFooter({ className, ...props }, ref) {
return (
);
});
const SheetTitle = React.forwardRef<
HTMLHeadingElement,
SheetPrimitive.Title.Props
>(function SheetTitle({ className, ...props }, ref) {
return (
);
});
const SheetDescription = React.forwardRef<
HTMLParagraphElement,
SheetPrimitive.Description.Props
>(function SheetDescription({ className, ...props }, ref) {
return (
);
});
export {
Sheet,
SheetTrigger,
SheetClose,
SheetContent,
SheetHeader,
SheetFooter,
SheetTitle,
SheetDescription,
};