1
1
import React from "react"
2
- import { MdChevronRight } from "react-icons/md"
3
2
import * as AccordionPrimitive from "@radix-ui/react-accordion"
4
3
5
- import { cn } from "@/lib/utils/cn"
4
+ import {
5
+ Accordion ,
6
+ AccordionContent ,
7
+ AccordionItem ,
8
+ AccordionTrigger ,
9
+ } from "@/components/ui/accordion"
6
10
7
- import * as RootAccordion from "../../../tailwind/ui/accordion "
11
+ import { cn } from "@/lib/utils/cn "
8
12
9
- const FaqAccordionTrigger = React . forwardRef <
13
+ const FaqTrigger = React . forwardRef <
10
14
React . ElementRef < typeof AccordionPrimitive . Trigger > ,
11
15
React . ComponentPropsWithoutRef < typeof AccordionPrimitive . Trigger >
12
16
> ( ( { className, children, ...props } , ref ) => (
13
- < AccordionPrimitive . Header >
14
- < AccordionPrimitive . Trigger
15
- ref = { ref }
16
- className = { cn (
17
- "w-full px-4 py-3 md:px-8 md:py-6" ,
18
- "flex flex-1 items-center justify-between gap-2" ,
19
- "border-t border-body-light" ,
20
- "focus-visible:outline-1 focus-visible:-outline-offset-1 focus-visible:outline-primary-hover" ,
21
- "group cursor-pointer text-start font-medium" ,
22
- "transition-all [&[data-state=open]>svg]:-rotate-90" ,
23
- className
24
- ) }
25
- { ...props }
26
- >
27
- { children }
28
-
29
- < MdChevronRight
30
- className = { cn (
31
- "size-[1em] shrink-0 p-1 text-2xl md:size-[1.25em]" ,
32
- "rounded-full border" ,
33
- "group-hover:border-primary group-hover:text-primary group-hover:shadow-md group-hover:shadow-primary-low-contrast" ,
34
- "transition-transform duration-200"
35
- ) }
36
- />
37
- </ AccordionPrimitive . Trigger >
38
- </ AccordionPrimitive . Header >
17
+ < AccordionTrigger
18
+ ref = { ref }
19
+ className = { cn (
20
+ "w-full px-4 py-3 md:px-8 md:py-6" ,
21
+ "border-t border-body-light" ,
22
+ "text-start font-medium" ,
23
+ className
24
+ ) }
25
+ { ...props }
26
+ >
27
+ { children }
28
+ </ AccordionTrigger >
39
29
) )
40
- FaqAccordionTrigger . displayName = AccordionPrimitive . Trigger . displayName
30
+ FaqTrigger . displayName = AccordionPrimitive . Trigger . displayName
41
31
42
- const FaqAccordion = ( {
32
+ const Faq = ( {
43
33
children,
44
34
type,
45
35
...props
46
36
} : AccordionPrimitive . AccordionSingleProps ) => {
47
37
return (
48
- < RootAccordion . Accordion
38
+ < Accordion
49
39
type = { type }
50
40
collapsible
51
41
className = { cn (
@@ -56,26 +46,27 @@ const FaqAccordion = ({
56
46
{ ...props }
57
47
>
58
48
{ children }
59
- </ RootAccordion . Accordion >
49
+ </ Accordion >
60
50
)
61
51
}
62
- const FaqAccordionItem = React . forwardRef <
52
+
53
+ const FaqItem = React . forwardRef <
63
54
React . ElementRef < typeof AccordionPrimitive . Item > ,
64
55
React . ComponentPropsWithoutRef < typeof AccordionPrimitive . Item >
65
56
> ( ( { className, ...props } , ref ) => (
66
- < AccordionPrimitive . Item
57
+ < AccordionItem
67
58
ref = { ref }
68
59
className = { cn ( "hover:bg-background-highlight" , className ) }
69
60
{ ...props }
70
61
/>
71
62
) )
72
- FaqAccordionItem . displayName = "AccordionItem"
63
+ FaqItem . displayName = "AccordionItem"
73
64
74
- const FaqAccordionContent = React . forwardRef <
65
+ const FaqContent = React . forwardRef <
75
66
React . ElementRef < typeof AccordionPrimitive . Content > ,
76
67
React . ComponentPropsWithoutRef < typeof AccordionPrimitive . Content >
77
68
> ( ( { className, children, ...props } , ref ) => (
78
- < AccordionPrimitive . Content
69
+ < AccordionContent
79
70
ref = { ref }
80
71
className = { cn (
81
72
"w-full overflow-hidden px-4 text-sm md:px-8" ,
@@ -86,14 +77,9 @@ const FaqAccordionContent = React.forwardRef<
86
77
< div className = { cn ( "border-t border-body-light py-3 md:py-6" , className ) } >
87
78
{ children }
88
79
</ div >
89
- </ AccordionPrimitive . Content >
80
+ </ AccordionContent >
90
81
) )
91
82
92
- FaqAccordionContent . displayName = AccordionPrimitive . Content . displayName
83
+ FaqContent . displayName = AccordionPrimitive . Content . displayName
93
84
94
- export {
95
- FaqAccordion ,
96
- FaqAccordionContent ,
97
- FaqAccordionItem ,
98
- FaqAccordionTrigger ,
99
- }
85
+ export { Faq , FaqContent , FaqItem , FaqTrigger }
0 commit comments