spb/vquant Public MIT
VibeQuant — AI-powered institutional-grade financial intelligence platform.
TypeScript 84.3%
Python 11.7%
JavaScript 1.6%
CSS 1.5%
HTML 0.7%
1/*2 * =============================================================================3 * VibeQuant (vquant) — AI-Powered Financial Intelligence Platform4 * -----------------------------------------------------------------------------5 * File: client/src/components/ui/accordion.tsx6 *7 * Author: Simon-Pierre Boucher8 * Contact: contact@spboucher.ai9 * Website: https://www.spboucher.ai10 * Demo: https://www.vquant.ai11 * License: MIT (see LICENSE)12 *13 * Copyright © 2026 Simon-Pierre Boucher. All rights reserved.14 * =============================================================================15 */1617import * as React from "react"18import * as AccordionPrimitive from "@radix-ui/react-accordion"19import { ChevronDown } from "lucide-react"2021import { cn } from "@/lib/utils"2223const Accordion = AccordionPrimitive.Root2425const AccordionItem = React.forwardRef<26 React.ElementRef<typeof AccordionPrimitive.Item>,27 React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>28>(({ className, ...props }, ref) => (29 <AccordionPrimitive.Item30 ref={ref}31 className={cn("border-b", className)}32 {...props}33 />34))35AccordionItem.displayName = "AccordionItem"3637const AccordionTrigger = React.forwardRef<38 React.ElementRef<typeof AccordionPrimitive.Trigger>,39 React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>40>(({ className, children, ...props }, ref) => (41 <AccordionPrimitive.Header className="flex">42 <AccordionPrimitive.Trigger43 ref={ref}44 className={cn(45 "flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",46 className47 )}48 {...props}49 >50 {children}51 <ChevronDown className="h-4 w-4 shrink-0 transition-transform duration-200" />52 </AccordionPrimitive.Trigger>53 </AccordionPrimitive.Header>54))55AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName5657const AccordionContent = React.forwardRef<58 React.ElementRef<typeof AccordionPrimitive.Content>,59 React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>60>(({ className, children, ...props }, ref) => (61 <AccordionPrimitive.Content62 ref={ref}63 className="overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down"64 {...props}65 >66 <div className={cn("pb-4 pt-0", className)}>{children}</div>67 </AccordionPrimitive.Content>68))6970AccordionContent.displayName = AccordionPrimitive.Content.displayName7172export { Accordion, AccordionItem, AccordionTrigger, AccordionContent }73