SPB Git forge

spb/polyllm

Public
15commits 1branches 0releases
2.2 MBsize
maindefault branch
13 days agolast push
TypeScript 97.4% SQL 1% JavaScript 0.9% CSS 0.6%
1.4 KB · 36 lines tsx
Raw Blame History
1"use client";2import * as React from "react";3import * as TooltipPrimitive from "@radix-ui/react-tooltip";4import { cn } from "@/lib/utils";56export const TooltipProvider = TooltipPrimitive.Provider;7export const TooltipRoot = TooltipPrimitive.Root;8export const TooltipTrigger = TooltipPrimitive.Trigger;910export const TooltipContent = React.forwardRef<React.ElementRef<typeof TooltipPrimitive.Content>, React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>>(11  function TooltipContent({ className, sideOffset = 6, ...props }, ref) {12    return (13      <TooltipPrimitive.Portal>14        <TooltipPrimitive.Content15          ref={ref}16          sideOffset={sideOffset}17          className={cn("z-50 max-w-xs rounded-md border border-border bg-bg-elevated px-2.5 py-1.5 text-xs text-fg shadow-md animate-scale-in", className)}18          {...props}19        />20      </TooltipPrimitive.Portal>21    );22  },23);2425export function Tooltip({ content, children, side, align, asChild = true }: { content: React.ReactNode; children: React.ReactNode; side?: "top" | "bottom" | "left" | "right"; align?: "start" | "center" | "end"; asChild?: boolean }) {26  if (!content) return <>{children}</>;27  return (28    <TooltipRoot>29      <TooltipTrigger asChild={asChild}>{children}</TooltipTrigger>30      <TooltipContent side={side} align={align}>31        {content}32      </TooltipContent>33    </TooltipRoot>34  );35}36