import { Dialog as SheetPrimitive } from "bits-ui"; import { type VariantProps, tv } from "tailwind-variants"; import Portal from "./sheet-portal.svelte"; import Overlay from "./sheet-overlay.svelte"; import Content from "./sheet-content.svelte"; import Header from "./sheet-header.svelte"; import Footer from "./sheet-footer.svelte"; import Title from "./sheet-title.svelte"; import Description from "./sheet-description.svelte"; const Root = SheetPrimitive.Root; const Close = SheetPrimitive.Close; const Trigger = SheetPrimitive.Trigger; export { Root, Close, Trigger, Portal, Overlay, Content, Header, Footer, Title, Description, // Root as Sheet, Close as SheetClose, Trigger as SheetTrigger, Portal as SheetPortal, Overlay as SheetOverlay, Content as SheetContent, Header as SheetHeader, Footer as SheetFooter, Title as SheetTitle, Description as SheetDescription, }; export const sheetVariants = tv({ base: "fixed z-50 gap-4 bg-background p-6 shadow-lg", variants: { side: { top: "inset-x-0 top-0 border-b", bottom: "inset-x-0 bottom-0 border-t", left: "inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm", right: "inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm", }, }, defaultVariants: { side: "right", }, }); export const sheetTransitions = { top: { in: { y: "-100%", duration: 500, opacity: 1, }, out: { y: "-100%", duration: 300, opacity: 1, }, }, bottom: { in: { y: "100%", duration: 500, opacity: 1, }, out: { y: "100%", duration: 300, opacity: 1, }, }, left: { in: { x: "-100%", duration: 500, opacity: 1, }, out: { x: "-100%", duration: 300, opacity: 1, }, }, right: { in: { x: "100%", duration: 500, opacity: 1, }, out: { x: "100%", duration: 300, opacity: 1, }, }, }; export type Side = VariantProps["side"];