返回 presentation-ai
collapsible.tsx
根目录 / src / components / ui / collapsible.tsx
1 "use client";
2
3 import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
4 import { cn } from "@/lib/utils";
5 import { forwardRef, type ComponentPropsWithoutRef, type ElementRef } from "react";
6
7 const Collapsible = CollapsiblePrimitive.Root;
8
9 const CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;
10
11 const CollapsibleContent = forwardRef<
12 ElementRef<typeof CollapsiblePrimitive.CollapsibleContent>,
13 ComponentPropsWithoutRef<typeof CollapsiblePrimitive.CollapsibleContent>
14 >(({ className, ...props }, ref) => (
15 <CollapsiblePrimitive.CollapsibleContent
16 ref={ref}
17 className={cn(
18 "overflow-hidden",
19 "data-[state=closed]:animate-collapsible-up data-[state=open]:animate-collapsible-down",
20 className,
21 )}
22 {...props}
23 />
24 ));
25 CollapsibleContent.displayName = "CollapsibleContent";
26
27 export { Collapsible, CollapsibleContent, CollapsibleTrigger };
28
28 lines Plain Text