1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
"use client";
import { cn } from "@/lib/utils";
import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
import { ChevronRight, Triangle } from "lucide-react";
const Collapsible = CollapsiblePrimitive.Root;
const CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;
const CollapsibleContent = CollapsiblePrimitive.CollapsibleContent;
function CollapsibleTriggerTriangle({
open,
className,
}: {
open: boolean;
className?: string;
}) {
return (
<CollapsibleTrigger asChild>
<Triangle
className={cn(
"fill-foreground",
!open ? "rotate-90" : "rotate-180",
className,
)}
/>
</CollapsibleTrigger>
);
}
function CollapsibleTriggerChevron({
open,
className,
}: {
open: boolean;
className?: string;
}) {
return (
<CollapsibleTrigger asChild>
<ChevronRight
className={cn(!open ? "rotate-0" : "rotate-90", className)}
/>
</CollapsibleTrigger>
);
}
export {
Collapsible,
CollapsibleTrigger,
CollapsibleContent,
CollapsibleTriggerTriangle,
CollapsibleTriggerChevron,
};
|