diff --git a/packages/ui/src/components/primitives/tooltip_new.tsx b/packages/ui/src/components/primitives/tooltip_new.tsx new file mode 100644 index 0000000000..430ac262f4 --- /dev/null +++ b/packages/ui/src/components/primitives/tooltip_new.tsx @@ -0,0 +1,78 @@ +import { cn } from '@cherrystudio/ui/utils/index' +import * as TooltipPrimitive from '@radix-ui/react-tooltip' +import * as React from 'react' + +export type TooltipProps = React.ComponentProps +export type TooltipTriggerProps = React.ComponentProps +export type TooltipContentProps = React.ComponentProps + +function TooltipProvider({ delayDuration = 0, ...props }: React.ComponentProps) { + // eslint-disable-next-line + return +} + +function Tooltip({ delayDuration = 0, ...props }: TooltipProps) { + return ( + + + + ) +} + +function TooltipTrigger({ ...props }: TooltipTriggerProps) { + return +} + +function TooltipContent({ className, sideOffset = 0, children, ...props }: TooltipContentProps) { + return ( + + + {children} + + + + ) +} + +interface NormalTooltipProps extends TooltipProps { + content: React.ReactNode + side?: TooltipContentProps['side'] + align?: TooltipContentProps['align'] + sideOffset?: TooltipContentProps['sideOffset'] + className?: string + asChild?: boolean + triggerProps?: Omit + contentProps?: TooltipContentProps +} + +const NormalTooltip = ({ + children, + content, + side, + align, + sideOffset, + asChild = true, + triggerProps, + contentProps, + ...tooltipProps +}: NormalTooltipProps) => { + return ( + + + {children} + + + {content} + + + ) +} + +export { NormalTooltip, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger }