You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							261 lines
						
					
					
						
							6.9 KiB
						
					
					
				
			
		
		
	
	
							261 lines
						
					
					
						
							6.9 KiB
						
					
					
				| import * as Popper from '@popperjs/core';
 | |
| 
 | |
| export type BasePlacement = Popper.BasePlacement;
 | |
| 
 | |
| export type Placement = Popper.Placement;
 | |
| 
 | |
| export type Content =
 | |
|   | string
 | |
|   | Element
 | |
|   | DocumentFragment
 | |
|   | ((ref: Element) => string | Element | DocumentFragment);
 | |
| 
 | |
| export type SingleTarget = Element;
 | |
| 
 | |
| export type MultipleTargets = string | Element[] | NodeList;
 | |
| 
 | |
| export type Targets = SingleTarget | MultipleTargets;
 | |
| 
 | |
| export interface ReferenceElement<TProps = Props> extends Element {
 | |
|   _tippy?: Instance<TProps>;
 | |
| }
 | |
| 
 | |
| export interface PopperElement<TProps = Props> extends HTMLDivElement {
 | |
|   _tippy?: Instance<TProps>;
 | |
| }
 | |
| 
 | |
| export interface LifecycleHooks<TProps = Props> {
 | |
|   onAfterUpdate(
 | |
|     instance: Instance<TProps>,
 | |
|     partialProps: Partial<TProps>
 | |
|   ): void;
 | |
|   onBeforeUpdate(
 | |
|     instance: Instance<TProps>,
 | |
|     partialProps: Partial<TProps>
 | |
|   ): void;
 | |
|   onCreate(instance: Instance<TProps>): void;
 | |
|   onDestroy(instance: Instance<TProps>): void;
 | |
|   onHidden(instance: Instance<TProps>): void;
 | |
|   onHide(instance: Instance<TProps>): void | false;
 | |
|   onMount(instance: Instance<TProps>): void;
 | |
|   onShow(instance: Instance<TProps>): void | false;
 | |
|   onShown(instance: Instance<TProps>): void;
 | |
|   onTrigger(instance: Instance<TProps>, event: Event): void;
 | |
|   onUntrigger(instance: Instance<TProps>, event: Event): void;
 | |
|   onClickOutside(instance: Instance<TProps>, event: Event): void;
 | |
| }
 | |
| 
 | |
| export interface RenderProps {
 | |
|   allowHTML: boolean;
 | |
|   animation: string | boolean;
 | |
|   arrow: boolean | string | SVGElement | DocumentFragment;
 | |
|   content: Content;
 | |
|   inertia: boolean;
 | |
|   maxWidth: number | string;
 | |
|   role: string;
 | |
|   theme: string;
 | |
|   zIndex: number;
 | |
| }
 | |
| 
 | |
| export interface GetReferenceClientRect {
 | |
|   (): ClientRect | DOMRect;
 | |
|   contextElement?: Element;
 | |
| }
 | |
| 
 | |
| export interface Props extends LifecycleHooks, RenderProps {
 | |
|   animateFill: boolean;
 | |
|   appendTo: 'parent' | Element | ((ref: Element) => Element);
 | |
|   aria: {
 | |
|     content?: 'auto' | 'describedby' | 'labelledby' | null;
 | |
|     expanded?: 'auto' | boolean;
 | |
|   };
 | |
|   delay: number | [number | null, number | null];
 | |
|   duration: number | [number | null, number | null];
 | |
|   followCursor: boolean | 'horizontal' | 'vertical' | 'initial';
 | |
|   getReferenceClientRect: null | GetReferenceClientRect;
 | |
|   hideOnClick: boolean | 'toggle';
 | |
|   ignoreAttributes: boolean;
 | |
|   inlinePositioning: boolean;
 | |
|   interactive: boolean;
 | |
|   interactiveBorder: number;
 | |
|   interactiveDebounce: number;
 | |
|   moveTransition: string;
 | |
|   offset:
 | |
|     | [number, number]
 | |
|     | (({
 | |
|         placement,
 | |
|         popper,
 | |
|         reference,
 | |
|       }: {
 | |
|         placement: Placement;
 | |
|         popper: Popper.Rect;
 | |
|         reference: Popper.Rect;
 | |
|       }) => [number, number]);
 | |
|   placement: Placement;
 | |
|   plugins: Plugin<unknown>[];
 | |
|   popperOptions: Partial<Popper.Options>;
 | |
|   render:
 | |
|     | ((
 | |
|         instance: Instance
 | |
|       ) => {
 | |
|         popper: PopperElement;
 | |
|         onUpdate?: (prevProps: Props, nextProps: Props) => void;
 | |
|       })
 | |
|     | null;
 | |
|   showOnCreate: boolean;
 | |
|   sticky: boolean | 'reference' | 'popper';
 | |
|   touch: boolean | 'hold' | ['hold', number];
 | |
|   trigger: string;
 | |
|   triggerTarget: Element | Element[] | null;
 | |
| }
 | |
| 
 | |
| export interface DefaultProps extends Omit<Props, 'delay' | 'duration'> {
 | |
|   delay: number | [number, number];
 | |
|   duration: number | [number, number];
 | |
| }
 | |
| 
 | |
| export interface Instance<TProps = Props> {
 | |
|   clearDelayTimeouts(): void;
 | |
|   destroy(): void;
 | |
|   disable(): void;
 | |
|   enable(): void;
 | |
|   hide(): void;
 | |
|   hideWithInteractivity(event: MouseEvent): void;
 | |
|   id: number;
 | |
|   plugins: Plugin<TProps>[];
 | |
|   popper: PopperElement<TProps>;
 | |
|   popperInstance: Popper.Instance | null;
 | |
|   props: TProps;
 | |
|   reference: ReferenceElement<TProps>;
 | |
|   setContent(content: Content): void;
 | |
|   setProps(partialProps: Partial<TProps>): void;
 | |
|   show(): void;
 | |
|   state: {
 | |
|     isEnabled: boolean;
 | |
|     isVisible: boolean;
 | |
|     isDestroyed: boolean;
 | |
|     isMounted: boolean;
 | |
|     isShown: boolean;
 | |
|   };
 | |
|   unmount(): void;
 | |
| }
 | |
| 
 | |
| export interface TippyStatics {
 | |
|   readonly currentInput: {isTouch: boolean};
 | |
|   readonly defaultProps: DefaultProps;
 | |
|   setDefaultProps(partialProps: Partial<DefaultProps>): void;
 | |
| }
 | |
| 
 | |
| export interface Tippy<TProps = Props> extends TippyStatics {
 | |
|   (targets: SingleTarget, optionalProps?: Partial<TProps>): Instance<TProps>;
 | |
| }
 | |
| 
 | |
| export interface Tippy<TProps = Props> extends TippyStatics {
 | |
|   (targets: MultipleTargets, optionalProps?: Partial<TProps>): Instance<
 | |
|     TProps
 | |
|   >[];
 | |
| }
 | |
| 
 | |
| declare const tippy: Tippy;
 | |
| 
 | |
| // =============================================================================
 | |
| // Addon types
 | |
| // =============================================================================
 | |
| export interface DelegateInstance<TProps = Props> extends Instance<TProps> {
 | |
|   destroy(shouldDestroyTargetInstances?: boolean): void;
 | |
| }
 | |
| 
 | |
| export interface Delegate<TProps = Props> {
 | |
|   (
 | |
|     targets: SingleTarget,
 | |
|     props: Partial<TProps> & {target: string}
 | |
|   ): DelegateInstance<TProps>;
 | |
| }
 | |
| 
 | |
| export interface Delegate<TProps = Props> {
 | |
|   (
 | |
|     targets: MultipleTargets,
 | |
|     props: Partial<TProps> & {target: string}
 | |
|   ): DelegateInstance<TProps>[];
 | |
| }
 | |
| 
 | |
| export type CreateSingletonProps<TProps = Props> = TProps & {
 | |
|   overrides: Array<keyof TProps>;
 | |
| };
 | |
| 
 | |
| export type CreateSingletonInstance<TProps = CreateSingletonProps> = Instance<
 | |
|   TProps
 | |
| > & {
 | |
|   setInstances(instances: Instance<any>[]): void;
 | |
|   show(target?: ReferenceElement | Instance | number): void;
 | |
|   showNext(): void;
 | |
|   showPrevious(): void;
 | |
| };
 | |
| 
 | |
| export type CreateSingleton<TProps = Props> = (
 | |
|   tippyInstances: Instance<any>[],
 | |
|   optionalProps?: Partial<CreateSingletonProps<TProps>>
 | |
| ) => CreateSingletonInstance<CreateSingletonProps<TProps>>;
 | |
| 
 | |
| declare const delegate: Delegate;
 | |
| declare const createSingleton: CreateSingleton;
 | |
| 
 | |
| // =============================================================================
 | |
| // Plugin types
 | |
| // =============================================================================
 | |
| export interface Plugin<TProps = Props> {
 | |
|   name?: string;
 | |
|   defaultValue?: any;
 | |
|   fn(instance: Instance<TProps>): Partial<LifecycleHooks<TProps>>;
 | |
| }
 | |
| 
 | |
| export interface AnimateFill extends Plugin {
 | |
|   name: 'animateFill';
 | |
|   defaultValue: false;
 | |
| }
 | |
| 
 | |
| export interface FollowCursor extends Plugin {
 | |
|   name: 'followCursor';
 | |
|   defaultValue: false;
 | |
| }
 | |
| 
 | |
| export interface InlinePositioning extends Plugin {
 | |
|   name: 'inlinePositioning';
 | |
|   defaultValue: false;
 | |
| }
 | |
| 
 | |
| export interface Sticky extends Plugin {
 | |
|   name: 'sticky';
 | |
|   defaultValue: false;
 | |
| }
 | |
| 
 | |
| declare const animateFill: AnimateFill;
 | |
| declare const followCursor: FollowCursor;
 | |
| declare const inlinePositioning: InlinePositioning;
 | |
| declare const sticky: Sticky;
 | |
| 
 | |
| // =============================================================================
 | |
| // Misc types
 | |
| // =============================================================================
 | |
| export interface HideAllOptions {
 | |
|   duration?: number;
 | |
|   exclude?: Instance | ReferenceElement;
 | |
| }
 | |
| 
 | |
| export type HideAll = (options?: HideAllOptions) => void;
 | |
| 
 | |
| declare const hideAll: HideAll;
 | |
| declare const roundArrow: string;
 | |
| 
 | |
| export default tippy;
 | |
| export {
 | |
|   hideAll,
 | |
|   delegate,
 | |
|   createSingleton,
 | |
|   animateFill,
 | |
|   followCursor,
 | |
|   inlinePositioning,
 | |
|   sticky,
 | |
|   roundArrow,
 | |
| };
 |