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 };
