text: import { ref, computed, watchEffect, provide, openBlock, createBlock, resolveDynamicComponent, normalizeClass, withCtx, renderSlot } from 'vue';
  
  var script = {
    name: "Accordion",
    props: {
      tag: {
        type: String,
        default: "div",
      },
      modelValue: String,
      stayOpen: Boolean,
      flush: Boolean,
      classes: String,
    },
    setup(props, { emit }) {
      const accordionRef = ref(null);
      const className = computed(() => {
        return ["accordion", props.flush && "accordion-flush", props.classes];
      });
  
      const activeItem = ref(props.modelValue);
      const setActiveItem = (item) => {
        activeItem.value = item;
        emit("update:modelValue", item);
      };
  
      watchEffect(() => (activeItem.value = props.modelValue));
  
      provide("activeItem", activeItem);
      provide("stayOpen", props.stayOpen);
      provide("setActiveItem", setActiveItem);
  
      return {
        accordionRef,
        setActiveItem,
        className,
      };
    },
  };
  
  function render(_ctx, _cache, $props, $setup, $data, $options) {
    return (openBlock(), createBlock(resolveDynamicComponent($props.tag), {
      class: normalizeClass($setup.className),
      ref: "accordionRef"
    }, {
      default: withCtx(() => [
        renderSlot(_ctx.$slots, "default")
      ]),
      _: 3 /* FORWARDED */
    }, 8 /* PROPS */, ["class"]))
  }
  
  script.render = render;
  script.__file = "src/components/accordion/Accordion.vue";
  
  export { script as default };
  