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%
2.3 KB · 62 lines tsx
Raw Blame History
1/*2 * =============================================================================3 *  VibeQuant (vquant) — AI-Powered Financial Intelligence Platform4 * -----------------------------------------------------------------------------5 *  File:      client/src/components/ui/resizable.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 { GripVertical } from "lucide-react"20import * as ResizablePrimitive from "react-resizable-panels"2122import { cn } from "@/lib/utils"2324const ResizablePanelGroup = ({25  className,26  ...props27}: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>) => (28  <ResizablePrimitive.PanelGroup29    className={cn(30      "flex h-full w-full data-[panel-group-direction=vertical]:flex-col",31      className32    )}33    {...props}34  />35)3637const ResizablePanel = ResizablePrimitive.Panel3839const ResizableHandle = ({40  withHandle,41  className,42  ...props43}: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {44  withHandle?: boolean45}) => (46  <ResizablePrimitive.PanelResizeHandle47    className={cn(48      "relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90",49      className50    )}51    {...props}52  >53    {withHandle && (54      <div className="z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border">55        <GripVertical className="h-2.5 w-2.5" />56      </div>57    )}58  </ResizablePrimitive.PanelResizeHandle>59)6061export { ResizablePanelGroup, ResizablePanel, ResizableHandle }62