@headlessui-float/vue
Version:
Easily use Headless UI for Vue 3 with Floating UI (Popper.js)
1,136 lines • 67.2 kB
TypeScript
import type { ComputedRef, FunctionalComponent, PropType, Ref, SetupContext, VNode } from 'vue';
import type { AutoPlacementOptions, FlipOptions, HideOptions, OffsetOptions, ShiftOptions } from '@floating-ui/core';
import type { AutoUpdateOptions, DetectOverflowOptions, Middleware, Placement, Strategy, VirtualElement } from '@floating-ui/dom';
import type { ClassResolver } from './class-resolvers';
import type { FloatingElement, ReferenceElement, __VLS_WithTemplateSlots } from './types';
interface ReferenceState {
referenceRef: Ref<ReferenceElement | null>;
placement: Readonly<Ref<Placement>>;
}
interface FloatingState {
floatingRef: Ref<FloatingElement | null>;
props: FloatProps;
mounted: Ref<boolean>;
show: Ref<boolean>;
referenceHidden: Ref<boolean | undefined>;
escaped: Ref<boolean | undefined>;
placement: Readonly<Ref<Placement>>;
floatingStyles: Ref<{
position: Strategy;
top: string;
left: string;
transform?: string;
willChange?: string;
}>;
referenceElWidth: Ref<number | null>;
updateFloating: () => void;
}
interface ArrowState {
ref: Ref<HTMLElement | null>;
placement: Ref<Placement>;
x: Ref<number | undefined>;
y: Ref<number | undefined>;
}
export interface FloatProps {
as?: string | FunctionalComponent;
floatingAs?: string | FunctionalComponent;
show?: boolean;
placement?: Placement;
strategy?: Strategy;
offset?: OffsetOptions;
shift?: boolean | number | Partial<ShiftOptions & DetectOverflowOptions>;
flip?: boolean | number | Partial<FlipOptions & DetectOverflowOptions>;
arrow?: boolean | number;
autoPlacement?: boolean | Partial<AutoPlacementOptions & DetectOverflowOptions>;
hide?: boolean | Partial<HideOptions & DetectOverflowOptions> | Partial<HideOptions & DetectOverflowOptions>[];
referenceHiddenClass?: string;
escapedClass?: string;
autoUpdate?: boolean | Partial<AutoUpdateOptions>;
zIndex?: number | string;
vueTransition?: boolean;
transitionName?: string;
transitionType?: 'transition' | 'animation';
enter?: string;
enterFrom?: string;
enterTo?: string;
leave?: string;
leaveFrom?: string;
leaveTo?: string;
originClass?: string | ClassResolver;
tailwindcssOriginClass?: boolean;
portal?: boolean;
transform?: boolean;
adaptiveWidth?: boolean | {
attribute?: string;
};
composable?: boolean;
dialog?: boolean;
middleware?: Middleware[] | ((refs: {
referenceEl: ComputedRef<ReferenceElement | null>;
floatingEl: ComputedRef<FloatingElement | null>;
}) => Middleware[]);
onShow?: () => any;
onHide?: () => any;
onUpdate?: () => any;
}
export declare const FloatPropsValidators: {
as: {
type: PropType<string | FunctionalComponent<{}, {}, any, {}>>;
default: string;
};
floatingAs: {
type: PropType<string | FunctionalComponent<{}, {}, any, {}>>;
default: string;
};
show: {
type: BooleanConstructor;
default: null;
};
placement: {
type: PropType<Placement>;
default: Placement;
};
strategy: {
type: PropType<Strategy>;
default: Strategy;
};
offset: PropType<OffsetOptions>;
shift: {
type: PropType<number | boolean | Partial<ShiftOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}>>;
default: boolean;
};
flip: {
type: PropType<number | boolean | Partial<FlipOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}>>;
default: boolean;
};
arrow: {
type: (NumberConstructor | BooleanConstructor)[];
default: boolean;
};
autoPlacement: {
type: PropType<boolean | Partial<AutoPlacementOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}>>;
default: boolean;
};
hide: {
type: PropType<boolean | Partial<HideOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}> | Partial<HideOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}>[]>;
default: boolean;
};
referenceHiddenClass: StringConstructor;
escapedClass: StringConstructor;
autoUpdate: {
type: PropType<boolean | Partial<AutoUpdateOptions>>;
default: boolean;
};
zIndex: {
type: (NumberConstructor | StringConstructor)[];
default: number;
};
vueTransition: {
type: BooleanConstructor;
default: boolean;
};
transitionName: StringConstructor;
transitionType: PropType<"transition" | "animation">;
enter: StringConstructor;
enterFrom: StringConstructor;
enterTo: StringConstructor;
leave: StringConstructor;
leaveFrom: StringConstructor;
leaveTo: StringConstructor;
originClass: PropType<string | ClassResolver>;
tailwindcssOriginClass: {
type: BooleanConstructor;
default: boolean;
};
portal: {
type: BooleanConstructor;
default: boolean;
};
transform: {
type: BooleanConstructor;
default: boolean;
};
adaptiveWidth: {
type: PropType<boolean | {
attribute?: string | undefined;
}>;
default: boolean;
};
composable: {
type: BooleanConstructor;
default: boolean;
};
dialog: {
type: BooleanConstructor;
default: boolean;
};
middleware: {
type: PropType<{
name: string;
options?: any;
fn: (state: {
x: number;
y: number;
strategy: Strategy;
initialPlacement: Placement;
placement: Placement;
middlewareData: import("@floating-ui/core").MiddlewareData;
rects: import("@floating-ui/utils").ElementRects;
platform: import("@floating-ui/core").Platform;
elements: import("@floating-ui/dom").Elements;
}) => import("@floating-ui/core").MiddlewareReturn | Promise<import("@floating-ui/core").MiddlewareReturn>;
}[] | ((refs: {
referenceEl: ComputedRef<ReferenceElement | null>;
floatingEl: ComputedRef<FloatingElement | null>;
}) => Middleware[])>;
default: () => never[];
};
};
export interface FloatSlotProps {
placement: Placement;
}
export type RenderReferenceElementProps = FloatReferenceProps & Required<Pick<FloatReferenceProps, 'as'>>;
export declare function renderReferenceElement(referenceNode: VNode, componentProps: RenderReferenceElementProps, attrs: SetupContext['attrs'], context: ReferenceState): VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>;
export type RenderFloatingElementProps = FloatContentProps & Required<Pick<FloatContentProps, 'as'>> & {
show?: boolean | null;
};
export declare function renderFloatingElement(floatingNode: VNode, componentProps: RenderFloatingElementProps, attrs: SetupContext['attrs'], context: FloatingState): VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>;
export declare function useFloat<T extends ReferenceElement>(show: Ref<boolean>, reference: Ref<T | null>, floating: Ref<FloatingElement | null>, props: FloatProps, emit: (event: 'show' | 'hide' | 'update', ...args: any[]) => void): {
referenceApi: ReferenceState;
floatingApi: FloatingState;
arrowApi: ArrowState;
placement: Readonly<Ref<Placement, Placement>>;
referenceEl: ComputedRef<T | null>;
floatingEl: ComputedRef<HTMLElement | null>;
middlewareData: Readonly<Ref<import("@floating-ui/core").MiddlewareData, import("@floating-ui/core").MiddlewareData>>;
update: () => void;
};
export declare const Float: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
as?: string | FunctionalComponent<{}, {}, any, {}> | undefined;
floatingAs?: string | FunctionalComponent<{}, {}, any, {}> | undefined;
show?: boolean | undefined;
placement?: Placement | undefined;
strategy?: Strategy | undefined;
offset?: OffsetOptions | undefined;
shift?: number | boolean | Partial<ShiftOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}> | undefined;
flip?: number | boolean | Partial<FlipOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}> | undefined;
arrow?: number | boolean | undefined;
autoPlacement?: boolean | Partial<AutoPlacementOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}> | undefined;
hide?: boolean | Partial<HideOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}> | Partial<HideOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}>[] | undefined;
referenceHiddenClass?: string | undefined;
escapedClass?: string | undefined;
autoUpdate?: boolean | Partial<AutoUpdateOptions> | undefined;
zIndex?: string | number | undefined;
vueTransition?: boolean | undefined;
transitionName?: string | undefined;
transitionType?: "transition" | "animation" | undefined;
enter?: string | undefined;
enterFrom?: string | undefined;
enterTo?: string | undefined;
leave?: string | undefined;
leaveFrom?: string | undefined;
leaveTo?: string | undefined;
originClass?: string | ClassResolver | undefined;
tailwindcssOriginClass?: boolean | undefined;
portal?: boolean | undefined;
transform?: boolean | undefined;
adaptiveWidth?: boolean | {
attribute?: string | undefined;
} | undefined;
composable?: boolean | undefined;
dialog?: boolean | undefined;
middleware?: {
name: string;
options?: any;
fn: (state: {
x: number;
y: number;
strategy: Strategy;
initialPlacement: Placement;
placement: Placement;
middlewareData: import("@floating-ui/core").MiddlewareData;
rects: import("@floating-ui/utils").ElementRects;
platform: import("@floating-ui/core").Platform;
elements: import("@floating-ui/dom").Elements;
}) => import("@floating-ui/core").MiddlewareReturn | Promise<import("@floating-ui/core").MiddlewareReturn>;
}[] | ((refs: {
referenceEl: ComputedRef<ReferenceElement | null>;
floatingEl: ComputedRef<FloatingElement | null>;
}) => Middleware[]) | undefined;
onShow?: (() => any) | undefined;
onHide?: (() => any) | undefined;
onUpdate?: (() => any) | undefined;
}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}> | VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>[] | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("show" | "hide" | "update")[], "show" | "hide" | "update", import("vue").PublicProps, Readonly<{
as?: string | FunctionalComponent<{}, {}, any, {}> | undefined;
floatingAs?: string | FunctionalComponent<{}, {}, any, {}> | undefined;
show?: boolean | undefined;
placement?: Placement | undefined;
strategy?: Strategy | undefined;
offset?: OffsetOptions | undefined;
shift?: number | boolean | Partial<ShiftOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}> | undefined;
flip?: number | boolean | Partial<FlipOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}> | undefined;
arrow?: number | boolean | undefined;
autoPlacement?: boolean | Partial<AutoPlacementOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}> | undefined;
hide?: boolean | Partial<HideOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}> | Partial<HideOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}>[] | undefined;
referenceHiddenClass?: string | undefined;
escapedClass?: string | undefined;
autoUpdate?: boolean | Partial<AutoUpdateOptions> | undefined;
zIndex?: string | number | undefined;
vueTransition?: boolean | undefined;
transitionName?: string | undefined;
transitionType?: "transition" | "animation" | undefined;
enter?: string | undefined;
enterFrom?: string | undefined;
enterTo?: string | undefined;
leave?: string | undefined;
leaveFrom?: string | undefined;
leaveTo?: string | undefined;
originClass?: string | ClassResolver | undefined;
tailwindcssOriginClass?: boolean | undefined;
portal?: boolean | undefined;
transform?: boolean | undefined;
adaptiveWidth?: boolean | {
attribute?: string | undefined;
} | undefined;
composable?: boolean | undefined;
dialog?: boolean | undefined;
middleware?: {
name: string;
options?: any;
fn: (state: {
x: number;
y: number;
strategy: Strategy;
initialPlacement: Placement;
placement: Placement;
middlewareData: import("@floating-ui/core").MiddlewareData;
rects: import("@floating-ui/utils").ElementRects;
platform: import("@floating-ui/core").Platform;
elements: import("@floating-ui/dom").Elements;
}) => import("@floating-ui/core").MiddlewareReturn | Promise<import("@floating-ui/core").MiddlewareReturn>;
}[] | ((refs: {
referenceEl: ComputedRef<ReferenceElement | null>;
floatingEl: ComputedRef<FloatingElement | null>;
}) => Middleware[]) | undefined;
onShow?: (() => any) | undefined;
onHide?: (() => any) | undefined;
onUpdate?: (() => any) | undefined;
}> & Readonly<{
onShow?: ((...args: any[]) => any) | undefined;
onHide?: ((...args: any[]) => any) | undefined;
onUpdate?: ((...args: any[]) => any) | undefined;
}>, {
shift: number | boolean | Partial<ShiftOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}>;
strategy: Strategy;
placement: Placement;
dialog: boolean;
as: string | FunctionalComponent<{}, {}, any, {}>;
vueTransition: boolean;
tailwindcssOriginClass: boolean;
show: boolean;
floatingAs: string | FunctionalComponent<{}, {}, any, {}>;
flip: number | boolean | Partial<FlipOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}>;
arrow: number | boolean;
autoPlacement: boolean | Partial<AutoPlacementOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}>;
hide: boolean | Partial<HideOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}> | Partial<HideOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}>[];
autoUpdate: boolean | Partial<AutoUpdateOptions>;
zIndex: string | number;
portal: boolean;
transform: boolean;
adaptiveWidth: boolean | {
attribute?: string | undefined;
};
composable: boolean;
middleware: {
name: string;
options?: any;
fn: (state: {
x: number;
y: number;
strategy: Strategy;
initialPlacement: Placement;
placement: Placement;
middlewareData: import("@floating-ui/core").MiddlewareData;
rects: import("@floating-ui/utils").ElementRects;
platform: import("@floating-ui/core").Platform;
elements: import("@floating-ui/dom").Elements;
}) => import("@floating-ui/core").MiddlewareReturn | Promise<import("@floating-ui/core").MiddlewareReturn>;
}[] | ((refs: {
referenceEl: ComputedRef<ReferenceElement | null>;
floatingEl: ComputedRef<FloatingElement | null>;
}) => Middleware[]);
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<{
default: (props: FloatSlotProps) => any;
}> & {
default: (props: FloatSlotProps) => any;
}>;
export interface FloatReferenceProps extends Pick<FloatProps, 'as'> {
}
export declare const FloatReferencePropsValidators: {
as: {
type: PropType<string | FunctionalComponent<{}, {}, any, {}>>;
default: string;
};
};
export interface FloatReferenceSlotProps {
placement: Placement;
}
export declare const FloatReference: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
as?: string | FunctionalComponent<{}, {}, any, {}> | undefined;
}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}> | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
as?: string | FunctionalComponent<{}, {}, any, {}> | undefined;
}> & Readonly<{}>, {
as: string | FunctionalComponent<{}, {}, any, {}>;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<{
default: (props: FloatReferenceSlotProps) => any;
}> & {
default: (props: FloatReferenceSlotProps) => any;
}>;
export interface FloatContentProps extends Pick<FloatProps, 'as' | 'vueTransition' | 'transitionName' | 'transitionType' | 'enter' | 'enterFrom' | 'enterTo' | 'leave' | 'leaveFrom' | 'leaveTo' | 'originClass' | 'tailwindcssOriginClass'> {
transitionChild?: boolean;
}
export declare const FloatContentPropsValidators: {
as: {
type: PropType<string | FunctionalComponent<{}, {}, any, {}>>;
default: string;
};
vueTransition: {
type: BooleanConstructor;
default: boolean;
};
transitionName: StringConstructor;
transitionType: PropType<"transition" | "animation">;
enter: StringConstructor;
enterFrom: StringConstructor;
enterTo: StringConstructor;
leave: StringConstructor;
leaveFrom: StringConstructor;
leaveTo: StringConstructor;
originClass: PropType<string | ClassResolver>;
tailwindcssOriginClass: {
type: BooleanConstructor;
default: boolean;
};
transitionChild: {
type: BooleanConstructor;
default: boolean;
};
};
export interface FloatContentSlotProps {
placement: Placement;
}
export declare const FloatContent: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
transitionChild?: boolean | undefined;
as?: string | FunctionalComponent<{}, {}, any, {}> | undefined;
vueTransition?: boolean | undefined;
transitionName?: string | undefined;
transitionType?: "transition" | "animation" | undefined;
enter?: string | undefined;
enterFrom?: string | undefined;
enterTo?: string | undefined;
leave?: string | undefined;
leaveFrom?: string | undefined;
leaveTo?: string | undefined;
originClass?: string | ClassResolver | undefined;
tailwindcssOriginClass?: boolean | undefined;
}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}> | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
transitionChild?: boolean | undefined;
as?: string | FunctionalComponent<{}, {}, any, {}> | undefined;
vueTransition?: boolean | undefined;
transitionName?: string | undefined;
transitionType?: "transition" | "animation" | undefined;
enter?: string | undefined;
enterFrom?: string | undefined;
enterTo?: string | undefined;
leave?: string | undefined;
leaveFrom?: string | undefined;
leaveTo?: string | undefined;
originClass?: string | ClassResolver | undefined;
tailwindcssOriginClass?: boolean | undefined;
}> & Readonly<{}>, {
as: string | FunctionalComponent<{}, {}, any, {}>;
vueTransition: boolean;
tailwindcssOriginClass: boolean;
transitionChild: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<{
default: (props: FloatContentSlotProps) => any;
}> & {
default: (props: FloatContentSlotProps) => any;
}>;
export interface FloatArrowProps extends Pick<FloatProps, 'as'> {
offset?: number;
}
export declare const FloatArrowPropsValidators: {
as: {
default: string;
type: PropType<string | FunctionalComponent<{}, {}, any, {}>>;
};
offset: {
type: NumberConstructor;
default: number;
};
};
export interface FloatArrowSlotProps {
placement: Placement;
}
export declare const FloatArrow: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
offset?: number | undefined;
as?: string | FunctionalComponent<{}, {}, any, {}> | undefined;
}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}> | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
offset?: number | undefined;
as?: string | FunctionalComponent<{}, {}, any, {}> | undefined;
}> & Readonly<{}>, {
as: string | FunctionalComponent<{}, {}, any, {}>;
offset: number;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<{
default: (props: FloatArrowSlotProps) => any;
}> & {
default: (props: FloatArrowSlotProps) => any;
}>;
export interface FloatVirtualProps<FloatingElement = HTMLElement> extends Pick<FloatProps, 'as' | 'show' | 'placement' | 'strategy' | 'offset' | 'shift' | 'flip' | 'arrow' | 'autoPlacement' | 'autoUpdate' | 'zIndex' | 'vueTransition' | 'transitionName' | 'transitionType' | 'enter' | 'enterFrom' | 'enterTo' | 'leave' | 'leaveFrom' | 'leaveTo' | 'originClass' | 'tailwindcssOriginClass' | 'portal' | 'transform' | 'middleware' | 'onShow' | 'onHide' | 'onUpdate'> {
onInitial?: (props: FloatVirtualInitialProps<FloatingElement>) => any;
}
export declare const FloatVirtualPropsValidators: {
as: {
type: PropType<string | FunctionalComponent<{}, {}, any, {}>>;
default: string;
};
show: {
type: BooleanConstructor;
default: null;
};
placement: {
type: PropType<Placement>;
default: Placement;
};
strategy: {
type: PropType<Strategy>;
default: Strategy;
};
offset: PropType<OffsetOptions>;
shift: {
type: PropType<number | boolean | Partial<ShiftOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}>>;
default: boolean;
};
flip: {
type: PropType<number | boolean | Partial<FlipOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}>>;
default: boolean;
};
arrow: {
type: (NumberConstructor | BooleanConstructor)[];
default: boolean;
};
autoPlacement: {
type: PropType<boolean | Partial<AutoPlacementOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}>>;
default: boolean;
};
autoUpdate: {
type: PropType<boolean | Partial<AutoUpdateOptions>>;
default: boolean;
};
zIndex: {
type: (NumberConstructor | StringConstructor)[];
default: number;
};
vueTransition: {
type: BooleanConstructor;
default: boolean;
};
transitionName: StringConstructor;
transitionType: PropType<"transition" | "animation">;
enter: StringConstructor;
enterFrom: StringConstructor;
enterTo: StringConstructor;
leave: StringConstructor;
leaveFrom: StringConstructor;
leaveTo: StringConstructor;
originClass: PropType<string | ClassResolver>;
tailwindcssOriginClass: {
type: BooleanConstructor;
default: boolean;
};
portal: {
type: BooleanConstructor;
default: boolean;
};
transform: {
type: BooleanConstructor;
default: boolean;
};
middleware: {
type: PropType<{
name: string;
options?: any;
fn: (state: {
x: number;
y: number;
strategy: Strategy;
initialPlacement: Placement;
placement: Placement;
middlewareData: import("@floating-ui/core").MiddlewareData;
rects: import("@floating-ui/utils").ElementRects;
platform: import("@floating-ui/core").Platform;
elements: import("@floating-ui/dom").Elements;
}) => import("@floating-ui/core").MiddlewareReturn | Promise<import("@floating-ui/core").MiddlewareReturn>;
}[] | ((refs: {
referenceEl: ComputedRef<ReferenceElement | null>;
floatingEl: ComputedRef<FloatingElement | null>;
}) => Middleware[])>;
default: () => never[];
};
};
export interface FloatVirtualSlotProps {
placement: Placement;
close: () => void;
}
export interface FloatVirtualInitialProps<FloatingElement = HTMLElement> {
show: Ref<boolean>;
placement: Readonly<Ref<Placement>>;
reference: Ref<VirtualElement>;
floating: Ref<FloatingElement | null>;
}
export declare const FloatVirtual: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
onInitial?: ((props: FloatVirtualInitialProps<HTMLElement>) => any) | undefined;
shift?: number | boolean | Partial<ShiftOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}> | undefined;
strategy?: Strategy | undefined;
placement?: Placement | undefined;
as?: string | FunctionalComponent<{}, {}, any, {}> | undefined;
vueTransition?: boolean | undefined;
transitionName?: string | undefined;
transitionType?: "transition" | "animation" | undefined;
enter?: string | undefined;
enterFrom?: string | undefined;
enterTo?: string | undefined;
leave?: string | undefined;
leaveFrom?: string | undefined;
leaveTo?: string | undefined;
originClass?: string | ClassResolver | undefined;
tailwindcssOriginClass?: boolean | undefined;
show?: boolean | undefined;
offset?: OffsetOptions | undefined;
flip?: number | boolean | Partial<FlipOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}> | undefined;
arrow?: number | boolean | undefined;
autoPlacement?: boolean | Partial<AutoPlacementOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}> | undefined;
autoUpdate?: boolean | Partial<AutoUpdateOptions> | undefined;
zIndex?: string | number | undefined;
portal?: boolean | undefined;
transform?: boolean | undefined;
middleware?: {
name: string;
options?: any;
fn: (state: {
x: number;
y: number;
strategy: Strategy;
initialPlacement: Placement;
placement: Placement;
middlewareData: import("@floating-ui/core").MiddlewareData;
rects: import("@floating-ui/utils").ElementRects;
platform: import("@floating-ui/core").Platform;
elements: import("@floating-ui/dom").Elements;
}) => import("@floating-ui/core").MiddlewareReturn | Promise<import("@floating-ui/core").MiddlewareReturn>;
}[] | ((refs: {
referenceEl: ComputedRef<ReferenceElement | null>;
floatingEl: ComputedRef<FloatingElement | null>;
}) => Middleware[]) | undefined;
onShow?: (() => any) | undefined;
onHide?: (() => any) | undefined;
onUpdate?: (() => any) | undefined;
}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}> | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("show" | "hide" | "update" | "initial")[], "show" | "hide" | "update" | "initial", import("vue").PublicProps, Readonly<{
onInitial?: ((props: FloatVirtualInitialProps<HTMLElement>) => any) | undefined;
shift?: number | boolean | Partial<ShiftOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}> | undefined;
strategy?: Strategy | undefined;
placement?: Placement | undefined;
as?: string | FunctionalComponent<{}, {}, any, {}> | undefined;
vueTransition?: boolean | undefined;
transitionName?: string | undefined;
transitionType?: "transition" | "animation" | undefined;
enter?: string | undefined;
enterFrom?: string | undefined;
enterTo?: string | undefined;
leave?: string | undefined;
leaveFrom?: string | undefined;
leaveTo?: string | undefined;
originClass?: string | ClassResolver | undefined;
tailwindcssOriginClass?: boolean | undefined;
show?: boolean | undefined;
offset?: OffsetOptions | undefined;
flip?: number | boolean | Partial<FlipOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}> | undefined;
arrow?: number | boolean | undefined;
autoPlacement?: boolean | Partial<AutoPlacementOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}> | undefined;
autoUpdate?: boolean | Partial<AutoUpdateOptions> | undefined;
zIndex?: string | number | undefined;
portal?: boolean | undefined;
transform?: boolean | undefined;
middleware?: {
name: string;
options?: any;
fn: (state: {
x: number;
y: number;
strategy: Strategy;
initialPlacement: Placement;
placement: Placement;
middlewareData: import("@floating-ui/core").MiddlewareData;
rects: import("@floating-ui/utils").ElementRects;
platform: import("@floating-ui/core").Platform;
elements: import("@floating-ui/dom").Elements;
}) => import("@floating-ui/core").MiddlewareReturn | Promise<import("@floating-ui/core").MiddlewareReturn>;
}[] | ((refs: {
referenceEl: ComputedRef<ReferenceElement | null>;
floatingEl: ComputedRef<FloatingElement | null>;
}) => Middleware[]) | undefined;
onShow?: (() => any) | undefined;
onHide?: (() => any) | undefined;
onUpdate?: (() => any) | undefined;
}> & Readonly<{
onShow?: ((...args: any[]) => any) | undefined;
onHide?: ((...args: any[]) => any) | undefined;
onUpdate?: ((...args: any[]) => any) | undefined;
onInitial?: ((...args: any[]) => any) | undefined;
}>, {
shift: number | boolean | Partial<ShiftOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}>;
strategy: Strategy;
placement: Placement;
as: string | FunctionalComponent<{}, {}, any, {}>;
vueTransition: boolean;
tailwindcssOriginClass: boolean;
show: boolean;
flip: number | boolean | Partial<FlipOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}>;
arrow: number | boolean;
autoPlacement: boolean | Partial<AutoPlacementOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}>;
autoUpdate: boolean | Partial<AutoUpdateOptions>;
zIndex: string | number;
portal: boolean;
transform: boolean;
middleware: {
name: string;
options?: any;
fn: (state: {
x: number;
y: number;
strategy: Strategy;
initialPlacement: Placement;
placement: Placement;
middlewareData: import("@floating-ui/core").MiddlewareData;
rects: import("@floating-ui/utils").ElementRects;
platform: import("@floating-ui/core").Platform;
elements: import("@floating-ui/dom").Elements;
}) => import("@floating-ui/core").MiddlewareReturn | Promise<import("@floating-ui/core").MiddlewareReturn>;
}[] | ((refs: {
referenceEl: ComputedRef<ReferenceElement | null>;
floatingEl: ComputedRef<FloatingElement | null>;
}) => Middleware[]);
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<{
default: (props: FloatVirtualSlotProps) => any;
}> & {
default: (props: FloatVirtualSlotProps) => any;
}>;
export interface FloatContextMenuProps extends Omit<FloatVirtualProps, 'show' | 'portal'> {
}
export declare const FloatContextMenuPropsValidators: {
as: {
type: PropType<string | FunctionalComponent<{}, {}, any, {}>>;
default: string;
};
placement: {
type: PropType<Placement>;
default: Placement;
};
strategy: {
type: PropType<Strategy>;
default: Strategy;
};
offset: PropType<OffsetOptions>;
shift: {
type: PropType<number | boolean | Partial<ShiftOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}>>;
default: boolean;
};
flip: {
default: boolean;
type: PropType<number | boolean | Partial<FlipOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}>>;
};
arrow: {
type: (NumberConstructor | BooleanConstructor)[];
default: boolean;
};
autoPlacement: {
type: PropType<boolean | Partial<AutoPlacementOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}>>;
default: boolean;
};
autoUpdate: {
type: PropType<boolean | Partial<AutoUpdateOptions>>;
default: boolean;
};
zIndex: {
type: (NumberConstructor | StringConstructor)[];
default: number;
};
vueTransition: {
type: BooleanConstructor;
default: boolean;
};
transitionName: StringConstructor;
transitionType: PropType<"transition" | "animation">;
enter: StringConstructor;
enterFrom: StringConstructor;
enterTo: StringConstructor;
leave: StringConstructor;
leaveFrom: StringConstructor;
leaveTo: StringConstructor;
originClass: PropType<string | ClassResolver>;
tailwindcssOriginClass: {
type: BooleanConstructor;
default: boolean;
};
transform: {
type: BooleanConstructor;
default: boolean;
};
middleware: {
type: PropType<{
name: string;
options?: any;
fn: (state: {
x: number;
y: number;
strategy: Strategy;
initialPlacement: Placement;
placement: Placement;
middlewareData: import("@floating-ui/core").MiddlewareData;
rects: import("@floating-ui/utils").ElementRects;
platform: import("@floating-ui/core").Platform;
elements: import("@floating-ui/dom").Elements;
}) => import("@floating-ui/core").MiddlewareReturn | Promise<import("@floating-ui/core").MiddlewareReturn>;
}[] | ((refs: {
referenceEl: ComputedRef<ReferenceElement | null>;
floatingEl: ComputedRef<FloatingElement | null>;
}) => Middleware[])>;
default: () => never[];
};
};
export declare const FloatContextMenu: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
shift?: number | boolean | Partial<ShiftOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}> | undefined;
strategy?: Strategy | undefined;
placement?: Placement | undefined;
as?: string | FunctionalComponent<{}, {}, any, {}> | undefined;
vueTransition?: boolean | undefined;
transitionName?: string | undefined;
transitionType?: "transition" | "animation" | undefined;
enter?: string | undefined;
enterFrom?: string | undefined;
enterTo?: string | undefined;
leave?: string | undefined;
leaveFrom?: string | undefined;
leaveTo?: string | undefined;
originClass?: string | ClassResolver | undefined;
tailwindcssOriginClass?: boolean | undefined;
offset?: OffsetOptions | undefined;
flip?: number | boolean | Partial<FlipOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}> | undefined;
arrow?: number | boolean | undefined;
autoPlacement?: boolean | Partial<AutoPlacementOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}> | undefined;
autoUpdate?: boolean | Partial<AutoUpdateOptions> | undefined;
zIndex?: string | number | undefined;
transform?: boolean | undefined;
middleware?: {
name: string;
options?: any;
fn: (state: {
x: number;
y: number;
strategy: Strategy;
initialPlacement: Placement;
placement: Placement;
middlewareData: import("@floating-ui/core").MiddlewareData;
rects: import("@floating-ui/utils").ElementRects;
platform: import("@floating-ui/core").Platform;
elements: import("@floating-ui/dom").Elements;
}) => import("@floating-ui/core").MiddlewareReturn | Promise<import("@floating-ui/core").MiddlewareReturn>;
}[] | ((refs: {
referenceEl: ComputedRef<ReferenceElement | null>;
floatingEl: ComputedRef<FloatingElement | null>;
}) => Middleware[]) | undefined;
onShow?: (() => any) | undefined;
onHide?: (() => any) | undefined;
onUpdate?: (() => any) | undefined;
onInitial?: ((props: FloatVirtualInitialProps<HTMLElement>) => any) | undefined;
}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}> | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("show" | "hide" | "update")[], "show" | "hide" | "update", import("vue").PublicProps, Readonly<{
shift?: number | boolean | Partial<ShiftOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}> | undefined;
strategy?: Strategy | undefined;
placement?: Placement | undefined;
as?: string | FunctionalComponent<{}, {}, any, {}> | undefined;
vueTransition?: boolean | undefined;
transitionName?: string | undefined;
transitionType?: "transition" | "animation" | undefined;
enter?: string | undefined;
enterFrom?: string | undefined;
enterTo?: string | undefined;
leave?: string | undefined;
leaveFrom?: string | undefined;
leaveTo?: string | undefined;
originClass?: string | ClassResolver | undefined;
tailwindcssOriginClass?: boolean | undefined;
offset?: OffsetOptions | undefined;
flip?: number | boolean | Partial<FlipOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementContext?: import("@floating-ui/core").ElementContext | undefined;
altBoundary?: boolean | undefined;
padding?: import("@floating-ui/utils").Padding | undefined;
boundary?: import("@floating-ui/dom").Boundary | undefined;
}> | undefined;
arrow?: number | boolean | undefined;
autoPlacement?: boolean | Partial<AutoPlacementOptions & {
rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
elementCo