Spaces:
Sleeping
Sleeping
File size: 1,006 Bytes
f23825d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
import styled from "@emotion/styled"
import {
Content,
Portal,
Provider,
Root,
TooltipContentProps,
TooltipProviderProps,
Trigger,
} from "@radix-ui/react-tooltip"
import Color from "color"
import { FC, ReactNode } from "react"
export type TooltipProps = TooltipProviderProps & {
title: ReactNode
side?: TooltipContentProps["side"]
}
const StyledContent = styled(Content)`
background: ${({ theme }) => Color(theme.backgroundColor).darken(0.2).hex()};
color: ${({ theme }) => theme.secondaryTextColor};
padding: 0.5rem;
border-radius: 0.5rem;
box-shadow: 0 1rem 3rem ${({ theme }) => theme.shadowColor};
`
export const Tooltip: FC<TooltipProps> = ({
children,
title,
side = "bottom",
...props
}) => {
return (
<Provider {...props}>
<Root>
<Trigger asChild>{children}</Trigger>
<Portal>
<StyledContent side={side} sideOffset={5}>
{title}
</StyledContent>
</Portal>
</Root>
</Provider>
)
}
|