UNPKG

@lekseek/ui

Version:

Vue 3 components library

35 lines (30 loc) 829 B
import { App, inject } from 'vue'; import { Options, CustomOptions, BemItem, } from './models'; import ClickOutside from './directives/click-outside'; import { install, uiSymbol } from './core'; export * from './components'; export * from './directives'; export { useBem } from './helpers/bem'; export function createUI (options: CustomOptions): {install: (T: App) => void} { return { install: (app: App): void => { install(app, options); app.directive('click-outside', ClickOutside); }, }; } export function useUi () { const uiInstance = inject<Options>(uiSymbol); if (!uiSymbol || !uiInstance) throw new Error('No ui provided'); return uiInstance; } declare module '@vue/runtime-core' { interface ComponentCustomProperties { $bem: (T: BemItem) => string[]; $ui: Options; } }