gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/components/ui/accordion.tsx · v0.5.0
Source
1 0b152b5 Mrdn 2y ago import * as React from "react"
2 0b152b5 Mrdn 2y ago import * as AccordionPrimitive from "@radix-ui/react-accordion"
3 0b152b5 Mrdn 2y ago import { ChevronDown } from "lucide-react"
4 0b152b5 Mrdn 2y ago
5 0b152b5 Mrdn 2y ago import { cn } from "@marzneshin/utils"
6 0b152b5 Mrdn 2y ago
7 0b152b5 Mrdn 2y ago const Accordion = AccordionPrimitive.Root
8 0b152b5 Mrdn 2y ago
9 0b152b5 Mrdn 2y ago const AccordionItem = React.forwardRef<
10 0b152b5 Mrdn 2y ago React.ElementRef<typeof AccordionPrimitive.Item>,
11 0b152b5 Mrdn 2y ago React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>
12 0b152b5 Mrdn 2y ago >(({ className, ...props }, ref) => (
13 0b152b5 Mrdn 2y ago <AccordionPrimitive.Item
14 0b152b5 Mrdn 2y ago ref={ref}
15 0b152b5 Mrdn 2y ago className={cn("border-b", className)}
16 0b152b5 Mrdn 2y ago {...props}
17 0b152b5 Mrdn 2y ago />
18 0b152b5 Mrdn 2y ago ))
19 0b152b5 Mrdn 2y ago AccordionItem.displayName = "AccordionItem"
20 0b152b5 Mrdn 2y ago
21 0b152b5 Mrdn 2y ago const AccordionTrigger = React.forwardRef<
22 0b152b5 Mrdn 2y ago React.ElementRef<typeof AccordionPrimitive.Trigger>,
23 0b152b5 Mrdn 2y ago React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>
24 0b152b5 Mrdn 2y ago >(({ className, children, ...props }, ref) => (
25 0b152b5 Mrdn 2y ago <AccordionPrimitive.Header className="flex">
26 0b152b5 Mrdn 2y ago <AccordionPrimitive.Trigger
27 0b152b5 Mrdn 2y ago ref={ref}
28 0b152b5 Mrdn 2y ago className={cn(
29 0b152b5 Mrdn 2y ago "flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
30 0b152b5 Mrdn 2y ago className
31 0b152b5 Mrdn 2y ago )}
32 0b152b5 Mrdn 2y ago {...props}
33 0b152b5 Mrdn 2y ago >
34 0b152b5 Mrdn 2y ago {children}
35 0b152b5 Mrdn 2y ago <ChevronDown className="h-4 w-4 shrink-0 transition-transform duration-200" />
36 0b152b5 Mrdn 2y ago </AccordionPrimitive.Trigger>
37 0b152b5 Mrdn 2y ago </AccordionPrimitive.Header>
38 0b152b5 Mrdn 2y ago ))
39 0b152b5 Mrdn 2y ago AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName
40 0b152b5 Mrdn 2y ago
41 0b152b5 Mrdn 2y ago const AccordionContent = React.forwardRef<
42 0b152b5 Mrdn 2y ago React.ElementRef<typeof AccordionPrimitive.Content>,
43 0b152b5 Mrdn 2y ago React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>
44 0b152b5 Mrdn 2y ago >(({ className, children, ...props }, ref) => (
45 0b152b5 Mrdn 2y ago <AccordionPrimitive.Content
46 0b152b5 Mrdn 2y ago ref={ref}
47 0b152b5 Mrdn 2y ago className="overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down"
48 0b152b5 Mrdn 2y ago {...props}
49 0b152b5 Mrdn 2y ago >
50 0b152b5 Mrdn 2y ago <div className={cn("pb-4 pt-0", className)}>{children}</div>
51 0b152b5 Mrdn 2y ago </AccordionPrimitive.Content>
52 0b152b5 Mrdn 2y ago ))
53 0b152b5 Mrdn 2y ago
54 0b152b5 Mrdn 2y ago AccordionContent.displayName = AccordionPrimitive.Content.displayName
55 0b152b5 Mrdn 2y ago
56 0b152b5 Mrdn 2y ago export { Accordion, AccordionItem, AccordionTrigger, AccordionContent }