import { inject, computed, isRef, provide, reactive } from "vue"; const LevelInjectionKey = Symbol("menuLevelKey"); function provideLevel(level) { const computedLevel = computed(() => isRef(level) ? level.value : level); provide( LevelInjectionKey, reactive({ level: computedLevel }) ); } function useLevel(props) { const { provideNextLevel } = props || {}; const levelContext = inject(LevelInjectionKey); const level = computed(() => levelContext.level || 1); if (provideNextLevel) { const nextLevel = computed(() => level.value + 1); provideLevel(nextLevel); } return { level }; } export { provideLevel as p, useLevel as u };