A quick vibe-coded site to test response times of PLC.directory mirrors (over 3 attempts)
at main 2.0 kB view raw
1import * as React from "react"; 2import * as AccordionPrimitive from "@radix-ui/react-accordion"; 3import { ChevronDown } from "lucide-react"; 4 5import { cn } from "@/lib/utils"; 6 7const Accordion = AccordionPrimitive.Root; 8 9const AccordionItem = React.forwardRef< 10 React.ElementRef<typeof AccordionPrimitive.Item>, 11 React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item> 12>(({ className, ...props }, ref) => ( 13 <AccordionPrimitive.Item ref={ref} className={cn("border-b", className)} {...props} /> 14)); 15AccordionItem.displayName = "AccordionItem"; 16 17const AccordionTrigger = React.forwardRef< 18 React.ElementRef<typeof AccordionPrimitive.Trigger>, 19 React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger> 20>(({ className, children, ...props }, ref) => ( 21 <AccordionPrimitive.Header className="flex"> 22 <AccordionPrimitive.Trigger 23 ref={ref} 24 className={cn( 25 "flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180", 26 className, 27 )} 28 {...props} 29 > 30 {children} 31 <ChevronDown className="h-4 w-4 shrink-0 transition-transform duration-200" /> 32 </AccordionPrimitive.Trigger> 33 </AccordionPrimitive.Header> 34)); 35AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName; 36 37const AccordionContent = React.forwardRef< 38 React.ElementRef<typeof AccordionPrimitive.Content>, 39 React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content> 40>(({ className, children, ...props }, ref) => ( 41 <AccordionPrimitive.Content 42 ref={ref} 43 className="overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" 44 {...props} 45 > 46 <div className={cn("pb-4 pt-0", className)}>{children}</div> 47 </AccordionPrimitive.Content> 48)); 49 50AccordionContent.displayName = AccordionPrimitive.Content.displayName; 51 52export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };