UNPKG

vueless

Version:

Vue Styleless UI Component Library, powered by Tailwind CSS.

56 lines (48 loc) 2.34 kB
/* eslint-disable prettier/prettier */ import { createLocale, LocaleSymbol } from "./composables/useLocale.ts"; import { createLoaderOverlay, LoaderOverlaySymbol } from "./ui.loader-overlay/useLoaderOverlay.ts"; import { createLoaderProgress, LoaderProgressSymbol } from "./ui.loader-progress/useLoaderProgress.ts"; import { setTheme } from "./utils/theme.ts"; import { setVuelessConfig } from "./utils/ui.ts"; import type { App } from "vue" import type { CreateVuelessOptions } from "./types.ts" export { setTheme, cssVar } from "./utils/theme.ts"; export { cx, cva, compose, getDefaults } from "./utils/ui.ts"; export { getArgTypes, getSlotNames, getSlotsFragment, getSource, getDocsDescription } from "./utils/storybook.ts"; export { isSSR, isCSR, getRandomId, setTitle, createDebounce, hasSlotContent } from "./utils/helper.ts"; export { isMac, isPWA, isIOS, isAndroid, isMobileApp, isWindows } from "./utils/platform.ts"; export { default as createVueI18nAdapter } from "./adapter.locale/vue-i18n.ts"; export { default as defaultEnLocale } from "./adapter.locale/locales/en.ts"; export { default as useUI } from "./composables/useUI.ts"; export { useLocale } from "./composables/useLocale.ts"; export { useLoaderProgress } from "./ui.loader-progress/useLoaderProgress.ts"; export { loaderProgressOn, loaderProgressOff } from "./ui.loader-progress/utilLoaderProgress.ts"; export { useLoaderOverlay } from "./ui.loader-overlay/useLoaderOverlay.ts"; export { loaderOverlayOn, loaderOverlayOff } from "./ui.loader-overlay/utilLoaderOverlay.ts"; export { notify, notifySuccess, notifyWarning, notifyError, clearNotifications, setDelayedNotify, getDelayedNotify, } from "./ui.text-notify/utilNotify.ts"; /* eslint-enable prettier/prettier */ export function createVueless(options: CreateVuelessOptions = {}) { const i18n = createLocale(options.i18n); const loaderOverlay = createLoaderOverlay(); const loaderProgress = createLoaderProgress(); const install = (app: App) => { app.provide(LocaleSymbol, i18n); app.provide(LoaderOverlaySymbol, loaderOverlay); app.provide(LoaderProgressSymbol, loaderProgress); }; /* set vueless config from a client (uses in Nuxt) */ setVuelessConfig(options.config); /* init theme after first render */ setTimeout(setTheme, 0); return { install, }; }