"use client"; import * as React from "react"; import { XIcon } from "lucide-react"; import { Dialog as SheetPrimitive } from "radix-ui"; import { cn } from "@/lib/utils"; import { useTranslations } from "@/lib/i18n/context"; function Sheet({ ...props }: React.ComponentProps) { return ; } function SheetTrigger({ ...props }: React.ComponentProps) { return ; } function SheetClose({ ...props }: React.ComponentProps) { return ; } function SheetPortal({ ...props }: React.ComponentProps) { return ; } function SheetOverlay({ className, ...props }: React.ComponentProps) { return ( ); } function SheetContent({ className, children, side = "right", showCloseButton = true, ...props }: React.ComponentProps & { side?: "top" | "right" | "bottom" | "left"; showCloseButton?: boolean; }) { const { t } = useTranslations(); return ( {children} {showCloseButton && ( // v1.4.27 R4 RC3 — widen the icon-only close-X tap target to // a 36 px floor, matching the Dialog close-X treatment from // MB2 (Decision I). 36 px (not 44 px) is the intentional // exception for fixed icon-only close affordances per the // dialog primitive's rationale: 44 px would crowd the sheet // header out of proportion on the bottom-sheet branch. {/* v1.4.34 IW-G — read `common.close` so screen readers hear the localised label instead of literal English. */} {t("common.close")} )} ); } function SheetHeader({ className, ...props }: React.ComponentProps<"div">) { return (
); } function SheetFooter({ className, ...props }: React.ComponentProps<"div">) { return (
); } function SheetTitle({ className, ...props }: React.ComponentProps) { return ( ); } function SheetDescription({ className, ...props }: React.ComponentProps) { return ( ); } export { Sheet, SheetTrigger, SheetClose, SheetContent, SheetHeader, SheetFooter, SheetTitle, SheetDescription, };