import React from 'react'; import { composeRenderProps } from 'react-aria-components/composeRenderProps'; import { Tooltip as AriaTooltip, OverlayArrow, type TooltipProps as AriaTooltipProps, } from 'react-aria-components/Tooltip'; import { tv } from 'tailwind-variants'; export interface TooltipProps extends Omit { children: React.ReactNode; } const styles = tv({ base: 'group rounded-lg border border-slate-800 bg-slate-700 px-3 py-1 text-sm text-white shadow-[inset_0_1px_0_0_var(--color-gray-600)] drop-shadow-lg will-change-transform dark:border-white/10 dark:bg-slate-600 dark:shadow-none', variants: { isEntering: { true: 'animate-in fade-in placement-left:slide-in-from-right-0.5 placement-right:slide-in-from-left-0.5 placement-top:slide-in-from-bottom-0.5 placement-bottom:slide-in-from-top-0.5 duration-200 ease-out', }, isExiting: { true: 'animate-out fade-out placement-left:slide-out-to-right-0.5 placement-right:slide-out-to-left-0.5 placement-top:slide-out-to-bottom-0.5 placement-bottom:slide-out-to-top-0.5 duration-150 ease-in', }, }, }); export function Tooltip({ children, ...props }: TooltipProps) { return ( styles({ ...renderProps, className }), )} > {children} ); }