UNPKG

@poupe/vue

Version:

Vue component library for Poupe UI framework with theme customization and accessibility support

36 lines (27 loc) 972 B
import { defu } from "defu"; import { inject, provide, reactive } from "vue"; export const poupeInjectionKey = Symbol("poupe"); export function createPoupe(options = {}) { const poupe = reactive(options); return { install(app) { app.provide(poupeInjectionKey, poupe); } }; } export function usePoupe() { return inject(poupeInjectionKey); } export function usePoupeDefaults(component) { const poupe = usePoupe(); return poupe?.defaults?.[component]; } export function providePoupeOptions(options) { provide(poupeInjectionKey, reactive(options)); } export function usePoupeMergeProps(props, componentName, componentDefaults) { const globalDefaults = usePoupeDefaults(componentName); return defu(props, componentDefaults || {}, globalDefaults || {}); } export function usePoupeMergedProps(props, componentName, componentDefaults) { const globalDefaults = usePoupeDefaults(componentName); return defu(props, componentDefaults, globalDefaults || {}); }