import type { ReactNode } from "react"; import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from "~/components/ui/sheet.tsx"; import { cn } from "~/lib/utils.ts"; /** * 右侧详情抽屉(手机全宽)。内容区自带纵向滚动;footer 固定在底部放操作按钮。 * !o && setId(null)} title="详情" description="…"> * * */ export function DetailSheet({ open, onOpenChange, title, description, children, footer, width = "md", className, }: { open: boolean; onOpenChange: (open: boolean) => void; title: ReactNode; description?: ReactNode; children: ReactNode; footer?: ReactNode; /** 桌面宽度:md ≈ 32rem,lg ≈ 44rem */ width?: "md" | "lg"; className?: string; }) { return ( {title} {description ? {description} : null}
{children}
{footer ? (
{footer}
) : null}
); } /** 抽屉/卡片内的小节:大写小标签 + 内容 */ export function DetailSection({ title, children, actions, }: { title: string; children: ReactNode; actions?: ReactNode; }) { return (

{title}

{actions}
{children}
); }