hongluan-ui
Version:
Hongluan Component Library for Vue 3
70 lines (69 loc) • 2.11 kB
TypeScript
import type { Ref, ToRefs } from 'vue';
import type { Middleware, Placement, SideObject, Strategy, VirtualElement } from '@floating-ui/dom';
export declare const useFloatingProps: {};
export declare type UseFloatingProps = ToRefs<{
middleware: Array<Middleware>;
placement: Placement;
strategy: Strategy;
}>;
export declare const getPositionDataWithUnit: <T extends Record<string, number>>(record: T, key: keyof T) => string;
export declare const useFloating: ({ middleware, placement, strategy, }: UseFloatingProps) => {
update: () => Promise<void>;
referenceRef: Ref<HTMLElement | VirtualElement>;
contentRef: Ref<HTMLElement>;
x: Ref<number>;
y: Ref<number>;
placement: Ref<Placement>;
strategy: Ref<Strategy>;
middlewareData: Ref<{
[x: string]: any;
arrow?: {
x?: number;
y?: number;
centerOffset: number;
};
autoPlacement?: {
index?: number;
overflows: {
placement: Placement;
overflows: number[];
}[];
};
flip?: {
index?: number;
overflows: {
placement: Placement;
overflows: number[];
}[];
};
hide?: {
referenceHidden?: boolean;
escaped?: boolean;
referenceHiddenOffsets?: {
left: number;
right: number;
top: number;
bottom: number;
};
escapedOffsets?: {
left: number;
right: number;
top: number;
bottom: number;
};
};
offset?: {
x: number;
y: number;
};
shift?: {
x: number;
y: number;
};
}>;
};
export declare type ArrowMiddlewareProps = {
arrowRef: Ref<HTMLElement | null | undefined>;
padding?: number | SideObject;
};
export declare const arrowMiddleware: ({ arrowRef, padding, }: ArrowMiddlewareProps) => Middleware;