Files
Aurora-SpotiRip/components/Collapsible.tsx
T

44 lines
1.3 KiB
TypeScript
Raw Normal View History

2026-09-25 23:20:57 -05:00
"use client";
import * as React from "react";
import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
import { ChevronDown } from "lucide-react";
import styles from "./Collapsible.module.css";
const Collapsible = CollapsiblePrimitive.Root;
interface CollapsibleTriggerProps
extends React.ComponentPropsWithoutRef<typeof CollapsiblePrimitive.Trigger> {
icon?: React.ReactNode;
}
const CollapsibleTrigger = React.forwardRef<
React.ElementRef<typeof CollapsiblePrimitive.Trigger>,
CollapsibleTriggerProps
>(({ className, children, ...props }, ref) => (
<CollapsiblePrimitive.Trigger
ref={ref}
className={`${styles.trigger} ${className || ""}`}
{...props}
>
{children}
</CollapsiblePrimitive.Trigger>
));
CollapsibleTrigger.displayName = CollapsiblePrimitive.Trigger.displayName;
const CollapsibleContent = React.forwardRef<
React.ElementRef<typeof CollapsiblePrimitive.Content>,
React.ComponentPropsWithoutRef<typeof CollapsiblePrimitive.Content>
>(({ className, children, ...props }, ref) => (
<CollapsiblePrimitive.Content
ref={ref}
className={`${styles.content} ${className || ""}`}
{...props}
>
{children}
</CollapsiblePrimitive.Content>
));
CollapsibleContent.displayName = CollapsiblePrimitive.Content.displayName;
export { Collapsible, CollapsibleTrigger, CollapsibleContent };