SPB Git

spb/worthdoing Public

Autonomous investigation agent that discovers, challenges, and ranks things genuinely worth doing — Claude + Firecrawl, Next.js 16, PostgreSQL

TypeScript 91.5% SQL 5.8% CSS 2.2%
2.8 KB · 67 lines tsx
Raw Blame History
1"use client"23import { Tooltip as TooltipPrimitive } from "@base-ui/react/tooltip"45import { cn } from "@/lib/utils"67function TooltipProvider({8  delay = 0,9  ...props10}: TooltipPrimitive.Provider.Props) {11  return (12    <TooltipPrimitive.Provider13      data-slot="tooltip-provider"14      delay={delay}15      {...props}16    />17  )18}1920function Tooltip({ ...props }: TooltipPrimitive.Root.Props) {21  return <TooltipPrimitive.Root data-slot="tooltip" {...props} />22}2324function TooltipTrigger({ ...props }: TooltipPrimitive.Trigger.Props) {25  return <TooltipPrimitive.Trigger data-slot="tooltip-trigger" {...props} />26}2728function TooltipContent({29  className,30  side = "top",31  sideOffset = 4,32  align = "center",33  alignOffset = 0,34  children,35  ...props36}: TooltipPrimitive.Popup.Props &37  Pick<38    TooltipPrimitive.Positioner.Props,39    "align" | "alignOffset" | "side" | "sideOffset"40  >) {41  return (42    <TooltipPrimitive.Portal>43      <TooltipPrimitive.Positioner44        align={align}45        alignOffset={alignOffset}46        side={side}47        sideOffset={sideOffset}48        className="isolate z-50"49      >50        <TooltipPrimitive.Popup51          data-slot="tooltip-content"52          className={cn(53            "z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",54            className55          )}56          {...props}57        >58          {children}59          <TooltipPrimitive.Arrow className="z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5" />60        </TooltipPrimitive.Popup>61      </TooltipPrimitive.Positioner>62    </TooltipPrimitive.Portal>63  )64}6566export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }67