SPB Git

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%
3.3 KB · 132 lines tsx
Raw Blame History
1/*2 * =============================================================================3 *  VibeQuant (vquant) — AI-Powered Financial Intelligence Platform4 * -----------------------------------------------------------------------------5 *  File:      client/src/components/ui/breadcrumb.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 { Slot } from "@radix-ui/react-slot"19import { ChevronRight, MoreHorizontal } from "lucide-react"2021import { cn } from "@/lib/utils"2223const Breadcrumb = React.forwardRef<24  HTMLElement,25  React.ComponentPropsWithoutRef<"nav"> & {26    separator?: React.ReactNode27  }28>(({ ...props }, ref) => <nav ref={ref} aria-label="breadcrumb" {...props} />)29Breadcrumb.displayName = "Breadcrumb"3031const BreadcrumbList = React.forwardRef<32  HTMLOListElement,33  React.ComponentPropsWithoutRef<"ol">34>(({ className, ...props }, ref) => (35  <ol36    ref={ref}37    className={cn(38      "flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5",39      className40    )}41    {...props}42  />43))44BreadcrumbList.displayName = "BreadcrumbList"4546const BreadcrumbItem = React.forwardRef<47  HTMLLIElement,48  React.ComponentPropsWithoutRef<"li">49>(({ className, ...props }, ref) => (50  <li51    ref={ref}52    className={cn("inline-flex items-center gap-1.5", className)}53    {...props}54  />55))56BreadcrumbItem.displayName = "BreadcrumbItem"5758const BreadcrumbLink = React.forwardRef<59  HTMLAnchorElement,60  React.ComponentPropsWithoutRef<"a"> & {61    asChild?: boolean62  }63>(({ asChild, className, ...props }, ref) => {64  const Comp = asChild ? Slot : "a"6566  return (67    <Comp68      ref={ref}69      className={cn("transition-colors hover:text-foreground", className)}70      {...props}71    />72  )73})74BreadcrumbLink.displayName = "BreadcrumbLink"7576const BreadcrumbPage = React.forwardRef<77  HTMLSpanElement,78  React.ComponentPropsWithoutRef<"span">79>(({ className, ...props }, ref) => (80  <span81    ref={ref}82    role="link"83    aria-disabled="true"84    aria-current="page"85    className={cn("font-normal text-foreground", className)}86    {...props}87  />88))89BreadcrumbPage.displayName = "BreadcrumbPage"9091const BreadcrumbSeparator = ({92  children,93  className,94  ...props95}: React.ComponentProps<"li">) => (96  <li97    role="presentation"98    aria-hidden="true"99    className={cn("[&>svg]:w-3.5 [&>svg]:h-3.5", className)}100    {...props}101  >102    {children ?? <ChevronRight />}103  </li>104)105BreadcrumbSeparator.displayName = "BreadcrumbSeparator"106107const BreadcrumbEllipsis = ({108  className,109  ...props110}: React.ComponentProps<"span">) => (111  <span112    role="presentation"113    aria-hidden="true"114    className={cn("flex h-9 w-9 items-center justify-center", className)}115    {...props}116  >117    <MoreHorizontal className="h-4 w-4" />118    <span className="sr-only">More</span>119  </span>120)121BreadcrumbEllipsis.displayName = "BreadcrumbElipssis"122123export {124  Breadcrumb,125  BreadcrumbList,126  BreadcrumbItem,127  BreadcrumbLink,128  BreadcrumbPage,129  BreadcrumbSeparator,130  BreadcrumbEllipsis,131}132