import type { FC, ReactElement, ReactNode } from 'react'; import { Tooltip as BaseTooltip } from '@base-ui-components/react'; import { cn } from '../utils/cn'; export namespace Tooltip { export type CompositeProps = { children: ReactElement; content?: ReactNode; portal?: boolean; placement?: 'top' | 'right' | 'bottom' | 'left'; className?: string; disabled?: boolean; delay?: number; }; type ProviderProps = BaseTooltip.Provider.Props; export const Provider: FC = BaseTooltip.Provider; export function Composite({ children, content, portal = false, placement = 'top', className, disabled = false, delay, }: CompositeProps) { // SSR 不支持 if (typeof window === 'undefined') return children; // 没有内容或禁用时直接返回子元素 if (!content || disabled) return children; return ( {content} ); } }