UNPKG

ultra-design

Version:
123 lines (122 loc) 3.99 kB
import React from 'react'; import { Placement } from './placement'; export declare type PositionRect = Omit<DOMRect, 'toJSON'>; declare const defaultProps: { trigger: string; defaultVisible: boolean; placement: string; showDelay: number; hideDelay: number; offset: number; showArrow: boolean; transitionClassName: string; transitionTimeout: number; name: string; }; export interface TriggerProps { /** * @description.zh-CN 提示内容 * @description.en-US trigger content */ content?: React.ReactNode; /** * @description.zh-CN 触发提示框的方式 * @description.en-US trigger mode * @default 'hover' */ trigger?: 'hover' | 'click'; /** * @description.zh-CN 提示框出现的方位 * @description.en-US trigger position * @default 'bottom' */ placement?: Placement; /** * @description.zh-CN 是否默认显示 * @description.en-US position of the trigger relative to the target * @default true */ defaultVisible?: boolean; /** * @description.zh-CN 是否显示 * @description.en-US set visible as default * @default false */ visible?: boolean; /** * @description.zh-CN 当提示框状态改变时触发 * @description.en-US call when visibility of the trigger is changed */ onVisibleChange?: (visible: boolean) => void; /** * @description.zh-CN 在提示显示前的延迟 * @description.en-US delay before trigger is shown * @default 50 */ showDelay?: number; /** * @description.zh-CN 关闭提示前的延迟 * @description.en-US delay before trigger is hidden (only work in 'hover' mode) * @default 50 */ hideDelay?: number; /** * @description.zh-CN 是否显示箭头 * @description.en-US show arrow icon * @default true */ showArrow?: boolean; /** * @description.zh-CN 提示框与目标之间的偏移 * @description.en-US distance between pop-up and target * @default 'hover' */ offset?: number; /** * @description.zh-CN 浮层渲染父节点,默认渲染到 body 上 * @description.en-US layer parent node, render in body layerElement default * @default () => document.body; */ getLayerContainer?: (trigger?: HTMLElement | null) => HTMLElement; /** * @description.zh-CN 弹出框的类名 * @description.en-US tclassName of layer box */ layerClassName?: string; /** * @description.zh-CN 渐变的类名,提供后可以自定义渐变效果 * @description.en-US className of `CSSTransition`, for custom transition * @default 'ultra-trigger-layer-fade' */ transitionClassName?: string; /** * @description.zh-CN 渐变的持续的时间,尽量和 css 中的保持一致,此值将提供给 `CSSTransition` * @description.en-US timeout of `CSSTransition`, be best set to same as transition duration in css * @default 300 */ transitionTimeout?: number; name?: string; id?: string; children?: React.ReactNode; /** * @description.zh-CN 自定义触发元素,不仅仅是通过 children * @description.en-US custom trigger element, not only by children */ triggerRef?: React.RefObject<HTMLElement | null>; /** * @description.zh-CN 完全自定义 layer 位置等其他 css 信息 * @description.en-US fully customize the layer position and other CSS information */ layerStyle?: React.CSSProperties; } export interface TriggerRef { layerElement?: HTMLElement; update: () => void; visible: boolean; changeVisible: (visible: boolean) => void; } export declare type MergedTriggerProps = typeof defaultProps & TriggerProps; declare const Trigger: React.ForwardRefExoticComponent<TriggerProps & { children?: React.ReactNode; } & React.RefAttributes<TriggerRef>>; export default Trigger;