headplane/app/components/Tooltip.tsx

38 lines
799 B
TypeScript
Raw Normal View History

2024-12-31 10:31:50 +05:30
import type { ReactNode } from 'react';
2024-05-21 17:21:14 -04:00
import {
Button as AriaButton,
Tooltip as AriaTooltip,
TooltipTrigger,
2024-12-31 10:30:14 +05:30
} from 'react-aria-components';
import { cn } from '~/utils/cn';
2024-05-21 17:21:14 -04:00
interface Props {
2024-12-31 10:30:14 +05:30
children: ReactNode;
className?: string;
2024-05-21 17:21:14 -04:00
}
function Tooltip({ children }: Props) {
2024-12-31 10:30:14 +05:30
return <TooltipTrigger delay={0}>{children}</TooltipTrigger>;
2024-05-21 17:21:14 -04:00
}
function Button(props: Parameters<typeof AriaButton>[0]) {
2024-12-31 10:30:14 +05:30
return <AriaButton {...props} />;
2024-05-21 17:21:14 -04:00
}
function Body({ children, className }: Props) {
return (
2024-12-31 10:30:14 +05:30
<AriaTooltip
className={cn(
'text-sm max-w-xs p-2 rounded-lg mb-2',
'bg-white dark:bg-ui-900 drop-shadow-sm',
'border border-gray-200 dark:border-zinc-700',
className,
)}
2024-05-21 17:21:14 -04:00
>
{children}
</AriaTooltip>
2024-12-31 10:30:14 +05:30
);
2024-05-21 17:21:14 -04:00
}
2024-12-31 10:30:14 +05:30
export default Object.assign(Tooltip, { Button, Body });