UNPKG

radix-vue

Version:

Vue port for Radix UI Primitives.

151 lines (150 loc) 5.4 kB
import type { Ref } from 'vue'; import type { PopperContentProps } from '../Popper'; import type { PointerDownOutsideEvent } from '../DismissableLayer'; interface SelectContentContext { content?: Ref<HTMLElement | undefined>; viewport?: Ref<HTMLElement | undefined>; onViewportChange: (node: HTMLElement | undefined) => void; itemRefCallback: (node: HTMLElement | undefined, value: string, disabled: boolean) => void; selectedItem?: Ref<HTMLElement | undefined>; onItemLeave?: () => void; itemTextRefCallback: (node: HTMLElement | undefined, value: string, disabled: boolean) => void; focusSelectedItem?: () => void; selectedItemText?: Ref<HTMLElement | undefined>; position?: 'item-aligned' | 'popper'; isPositioned?: Ref<boolean>; searchRef?: Ref<string>; } export declare const SelectContentDefaultContextValue: SelectContentContext; export type SelectContentImplEmits = { closeAutoFocus: [event: Event]; /** * Event handler called when the escape key is down. * Can be prevented. */ escapeKeyDown: [event: KeyboardEvent]; /** * Event handler called when the a `pointerdown` event happens outside of the `DismissableLayer`. * Can be prevented. */ pointerDownOutside: [event: PointerDownOutsideEvent]; }; export interface SelectContentImplProps extends PopperContentProps { position?: 'item-aligned' | 'popper'; } export declare const injectSelectContentContext: <T extends SelectContentContext | null | undefined = SelectContentContext>(fallback?: T | undefined) => T extends null ? SelectContentContext | null : SelectContentContext, provideSelectContentContext: (contextValue: SelectContentContext) => SelectContentContext; declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{ position: { type: import("vue").PropType<"popper" | "item-aligned">; }; side: { type: import("vue").PropType<"right" | "left" | "bottom" | "top">; }; sideOffset: { type: import("vue").PropType<number>; }; align: { type: import("vue").PropType<"center" | "end" | "start">; }; alignOffset: { type: import("vue").PropType<number>; }; avoidCollisions: { type: import("vue").PropType<boolean>; }; collisionBoundary: { type: import("vue").PropType<Element | (Element | null)[] | null>; }; collisionPadding: { type: import("vue").PropType<number | Partial<Record<"right" | "left" | "bottom" | "top", number>>>; }; arrowPadding: { type: import("vue").PropType<number>; }; sticky: { type: import("vue").PropType<"partial" | "always">; }; hideWhenDetached: { type: import("vue").PropType<boolean>; }; updatePositionStrategy: { type: import("vue").PropType<"always" | "optimized">; }; onPlaced: { type: import("vue").PropType<() => void>; }; prioritizePosition: { type: import("vue").PropType<boolean>; }; asChild: { type: import("vue").PropType<boolean>; }; as: { type: import("vue").PropType<import("../Primitive").AsTag | import("vue").Component>; }; }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { escapeKeyDown: (event: KeyboardEvent) => void; pointerDownOutside: (event: PointerDownOutsideEvent) => void; closeAutoFocus: (event: Event) => void; }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{ position: { type: import("vue").PropType<"popper" | "item-aligned">; }; side: { type: import("vue").PropType<"right" | "left" | "bottom" | "top">; }; sideOffset: { type: import("vue").PropType<number>; }; align: { type: import("vue").PropType<"center" | "end" | "start">; }; alignOffset: { type: import("vue").PropType<number>; }; avoidCollisions: { type: import("vue").PropType<boolean>; }; collisionBoundary: { type: import("vue").PropType<Element | (Element | null)[] | null>; }; collisionPadding: { type: import("vue").PropType<number | Partial<Record<"right" | "left" | "bottom" | "top", number>>>; }; arrowPadding: { type: import("vue").PropType<number>; }; sticky: { type: import("vue").PropType<"partial" | "always">; }; hideWhenDetached: { type: import("vue").PropType<boolean>; }; updatePositionStrategy: { type: import("vue").PropType<"always" | "optimized">; }; onPlaced: { type: import("vue").PropType<() => void>; }; prioritizePosition: { type: import("vue").PropType<boolean>; }; asChild: { type: import("vue").PropType<boolean>; }; as: { type: import("vue").PropType<import("../Primitive").AsTag | import("vue").Component>; }; }>> & { onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined; onPointerDownOutside?: ((event: PointerDownOutsideEvent) => any) | undefined; onCloseAutoFocus?: ((event: Event) => any) | undefined; }, {}, {}>, { default?(_: {}): any; }>; export default _default; type __VLS_WithTemplateSlots<T, S> = T & { new (): { $slots: S; }; };