radix-vue
Version:
Vue port for Radix UI Primitives.
88 lines (87 loc) • 3.42 kB
TypeScript
import type { PrimitiveProps } from '../Primitive';
import type { FocusOutsideEvent, PointerDownOutsideEvent } from './utils';
export interface DismissableLayerProps extends PrimitiveProps {
/**
* When `true`, hover/focus/click interactions will be disabled on elements outside
* the `DismissableLayer`. Users will need to click twice on outside elements to
* interact with them: once to close the `DismissableLayer`, and again to trigger the element.
*/
disableOutsidePointerEvents?: boolean;
}
export type DismissableLayerEmits = {
/**
* 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];
/**
* Event handler called when the focus moves outside of the `DismissableLayer`.
* Can be prevented.
*/
'focusOutside': [event: FocusOutsideEvent];
/**
* Event handler called when an interaction happens outside the `DismissableLayer`.
* Specifically, when a `pointerdown` event happens outside or focus moves outside of it.
* Can be prevented.
*/
'interactOutside': [event: PointerDownOutsideEvent | FocusOutsideEvent];
/**
* Handler called when the `DismissableLayer` should be dismissed
*/
'dismiss': [];
};
export declare const context: {
layersRoot: Set<HTMLElement>;
layersWithOutsidePointerEventsDisabled: Set<HTMLElement>;
branches: Set<HTMLElement>;
};
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
asChild: {
type: import("vue").PropType<boolean>;
};
as: {
type: import("vue").PropType<import('../Primitive').AsTag | import("vue").Component>;
};
disableOutsidePointerEvents: {
type: import("vue").PropType<boolean>;
default: boolean;
};
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
escapeKeyDown: (event: KeyboardEvent) => void;
pointerDownOutside: (event: PointerDownOutsideEvent) => void;
focusOutside: (event: FocusOutsideEvent) => void;
interactOutside: (event: PointerDownOutsideEvent | FocusOutsideEvent) => void;
dismiss: () => void;
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: import("vue").PropType<boolean>;
};
as: {
type: import("vue").PropType<import('../Primitive').AsTag | import("vue").Component>;
};
disableOutsidePointerEvents: {
type: import("vue").PropType<boolean>;
default: boolean;
};
}>> & {
onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined;
onPointerDownOutside?: ((event: PointerDownOutsideEvent) => any) | undefined;
onFocusOutside?: ((event: FocusOutsideEvent) => any) | undefined;
onInteractOutside?: ((event: PointerDownOutsideEvent | FocusOutsideEvent) => any) | undefined;
onDismiss?: (() => any) | undefined;
}, {
disableOutsidePointerEvents: boolean;
}, {}>, {
default?(_: {}): any;
}>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
new (): {
$slots: S;
};
};