@datametria/vue-components
Version:
DATAMETRIA Vue.js 3 Component Library with Multi-Brand Theming - 51 components + 10 composables with theming support, WCAG 2.2 AA, dark mode, responsive system
72 lines (71 loc) • 2.12 kB
TypeScript
interface MenuItem {
key?: string;
label?: string;
description?: string;
icon?: any;
shortcut?: string;
disabled?: boolean;
divider?: boolean;
action?: () => void;
}
type Placement = 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end' | 'left' | 'right';
interface Props {
items?: MenuItem[];
triggerText?: string;
placement?: Placement;
disabled?: boolean;
fullWidth?: boolean;
showBackdrop?: boolean;
closeOnItemClick?: boolean;
offset?: number;
}
declare function __VLS_template(): {
attrs: Partial<{}>;
slots: {
trigger?(_: {
isOpen: boolean;
toggle: () => void;
}): any;
default?(_: {
close: () => void;
focusedIndex: number;
}): any;
};
refs: {
triggerRef: HTMLDivElement;
menuRef: HTMLDivElement;
};
rootEl: HTMLDivElement;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: import('vue').DefineComponent<Props, {
open: () => Promise<void>;
close: () => void;
toggle: () => void;
isOpen: import('vue').ComputedRef<boolean>;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
close: () => any;
open: () => any;
"item-click": (item: MenuItem, index: number) => any;
}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
onClose?: (() => any) | undefined;
onOpen?: (() => any) | undefined;
"onItem-click"?: ((item: MenuItem, index: number) => any) | undefined;
}>, {
offset: number;
placement: Placement;
items: MenuItem[];
triggerText: string;
showBackdrop: boolean;
closeOnItemClick: boolean;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
triggerRef: HTMLDivElement;
menuRef: HTMLDivElement;
}, HTMLDivElement>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
new (): {
$slots: S;
};
};