@sandlada/vue-mdc
Version:

35 lines • 1.15 kB
TypeScript
/**
* @license
* Copyright 2025 Sandlada & Kai Orion
* SPDX-License-Identifier: MIT
*/
import { type Component, type Ref } from 'vue';
import type { JSX } from 'vue/jsx-runtime';
export interface INavigation {
getTabElements(): Array<HTMLElement>;
getActiveTabElement(): HTMLElement | null;
setActiveTabByLabel: (label: string) => void;
setActiveTabByOrder: (order: number) => void;
setActiveTabByElement: (element: HTMLElement) => void;
}
export interface INavigationItem {
label: string;
href?: string;
disabled?: boolean;
hide?: boolean;
icon?: JSX.Element | Component;
hideInactiveLabel?: boolean;
}
interface IUseNavigableOptions {
tabs: Array<INavigationItem>;
hideInactiveLabel?: boolean;
defaultActiveTabOrder?: number;
handleChange?: (e: Event) => void;
}
export declare const SNavigableController: unique symbol;
export interface INavigableHost extends HTMLElement {
[SNavigableController]: INavigation;
}
export declare function useNavigable(hostRef: Ref<HTMLElement | null>, options: IUseNavigableOptions): INavigation;
export {};
//# sourceMappingURL=use-navigable.d.ts.map