UNPKG

@extclp/vexip-ui

Version:

A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good

46 lines (45 loc) 1.42 kB
import { InjectionKey } from 'vue'; export type TabNavAlign = 'left' | 'center' | 'right'; export type TabNavPlacement = 'top' | 'right' | 'bottom' | 'left'; export interface TabNavItemOptions { label: string | number; content?: string; icon?: Record<string, any>; disabled?: boolean; closable?: boolean; onToggle?: (active: boolean) => void; } export type TabNavOptions = TabNavItemOptions | string | number; export interface ItemState { el?: HTMLElement | null; label: string | number; index: number; total: number; } export interface TabNavState { currentActive: string | number; closable: boolean; increaseItem: (item: ItemState) => void; decreaseItem: (item: ItemState) => void; handleActive: (label: string | number) => void; handleClose: (label: string | number) => void; refreshLabels: () => void; } export type ChangeEvent = (label: string | number) => void; export interface TabNavSlots { prefix?: () => any; suffix?: () => any; add?: () => any; marker?: () => any; /** * @internal */ default?: () => any; } export declare const TAB_NAV_STATE: InjectionKey<TabNavState>; export declare const trackStyleMap: Readonly<{ readonly top: readonly ["left", "width"]; readonly right: readonly ["top", "height"]; readonly bottom: readonly ["left", "width"]; readonly left: readonly ["top", "height"]; }>;