import { ReactNode } from 'react'; import { BaseTypeProps, TeleportType } from '../utils'; export type FloatingBubbleThemeVars = { floatingBubbleSize?: string; floatingBubbleInitialGap?: string; floatingBubbleIconSize?: string; floatingBubbleBackground?: string; floatingBubbleColor?: string; floatingBubbleZIndex?: number | string; }; export type FloatingBubbleAxis = 'x' | 'y' | 'xy' | 'lock'; export type FloatingBubbleMagnetic = 'x' | 'y'; export type FloatingBubbleOffset = { x: number; y: number; }; export type FloatingBubbleBoundary = { top: number; right: number; bottom: number; left: number; }; export interface FloatingBubbleProps extends BaseTypeProps { /** 气泡初始位置 */ offset?: FloatingBubbleOffset; /** 拖拽的方向 */ axis?: FloatingBubbleAxis; /** 自动磁吸的方向 */ magnetic?: FloatingBubbleMagnetic; /** 气泡图标名称或图片链接 */ icon?: string; /** 气泡与窗口的最小间距 */ gap?: number; /** 指定挂载的节点 */ teleport?: TeleportType; /** 点击组件时触发 */ onClick?: (event: React.MouseEvent) => void; /** 由用户拖拽结束导致位置改变后触发 */ onOffsetChange?: (offset: FloatingBubbleOffset) => void; /** 子元素 */ children?: ReactNode; }