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%
4.4 KB · 139 lines tsx
Raw Blame History
1/*2 * =============================================================================3 *  VibeQuant (vquant) — AI-Powered Financial Intelligence Platform4 * -----------------------------------------------------------------------------5 *  File:      client/src/components/ui/dialog.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 */1617"use client"1819import * as React from "react"20import * as DialogPrimitive from "@radix-ui/react-dialog"21import { X } from "lucide-react"2223import { cn } from "@/lib/utils"2425const Dialog = DialogPrimitive.Root2627const DialogTrigger = DialogPrimitive.Trigger2829const DialogPortal = DialogPrimitive.Portal3031const DialogClose = DialogPrimitive.Close3233const DialogOverlay = React.forwardRef<34  React.ElementRef<typeof DialogPrimitive.Overlay>,35  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>36>(({ className, ...props }, ref) => (37  <DialogPrimitive.Overlay38    ref={ref}39    className={cn(40      "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",41      className42    )}43    {...props}44  />45))46DialogOverlay.displayName = DialogPrimitive.Overlay.displayName4748const DialogContent = React.forwardRef<49  React.ElementRef<typeof DialogPrimitive.Content>,50  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>51>(({ className, children, ...props }, ref) => (52  <DialogPortal>53    <DialogOverlay />54    <DialogPrimitive.Content55      ref={ref}56      className={cn(57        "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",58        className59      )}60      {...props}61    >62      {children}63      <DialogPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground">64        <X className="h-4 w-4" />65        <span className="sr-only">Close</span>66      </DialogPrimitive.Close>67    </DialogPrimitive.Content>68  </DialogPortal>69))70DialogContent.displayName = DialogPrimitive.Content.displayName7172const DialogHeader = ({73  className,74  ...props75}: React.HTMLAttributes<HTMLDivElement>) => (76  <div77    className={cn(78      "flex flex-col space-y-1.5 text-center sm:text-left",79      className80    )}81    {...props}82  />83)84DialogHeader.displayName = "DialogHeader"8586const DialogFooter = ({87  className,88  ...props89}: React.HTMLAttributes<HTMLDivElement>) => (90  <div91    className={cn(92      "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",93      className94    )}95    {...props}96  />97)98DialogFooter.displayName = "DialogFooter"99100const DialogTitle = React.forwardRef<101  React.ElementRef<typeof DialogPrimitive.Title>,102  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>103>(({ className, ...props }, ref) => (104  <DialogPrimitive.Title105    ref={ref}106    className={cn(107      "text-lg font-semibold leading-none tracking-tight",108      className109    )}110    {...props}111  />112))113DialogTitle.displayName = DialogPrimitive.Title.displayName114115const DialogDescription = React.forwardRef<116  React.ElementRef<typeof DialogPrimitive.Description>,117  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>118>(({ className, ...props }, ref) => (119  <DialogPrimitive.Description120    ref={ref}121    className={cn("text-sm text-muted-foreground", className)}122    {...props}123  />124))125DialogDescription.displayName = DialogPrimitive.Description.displayName126127export {128  Dialog,129  DialogPortal,130  DialogOverlay,131  DialogClose,132  DialogTrigger,133  DialogContent,134  DialogHeader,135  DialogFooter,136  DialogTitle,137  DialogDescription,138}139