2021-09-04 20:24:32 -08:00
|
|
|
<template>
|
|
|
|
|
<component :is="tag">
|
2025-06-20 00:09:12 +07:00
|
|
|
<slot
|
|
|
|
|
name="activator"
|
2026-03-23 21:18:25 +01:00
|
|
|
v-bind="{ toggle, modelValue }"
|
2025-06-20 00:09:12 +07:00
|
|
|
/>
|
2026-03-23 21:18:25 +01:00
|
|
|
<slot v-bind="{ modelValue, toggle }" />
|
2021-09-04 20:24:32 -08:00
|
|
|
</component>
|
|
|
|
|
</template>
|
2022-05-25 10:14:24 -08:00
|
|
|
|
2026-03-23 21:18:25 +01:00
|
|
|
<script setup lang="ts">
|
|
|
|
|
const modelValue = defineModel({
|
|
|
|
|
type: Boolean,
|
|
|
|
|
default: false,
|
|
|
|
|
});
|
2021-11-20 14:30:38 -09:00
|
|
|
|
2026-03-23 21:18:25 +01:00
|
|
|
defineProps({
|
|
|
|
|
tag: {
|
|
|
|
|
type: String,
|
|
|
|
|
default: "div",
|
2021-09-04 20:24:32 -08:00
|
|
|
},
|
|
|
|
|
});
|
2026-03-23 21:18:25 +01:00
|
|
|
|
|
|
|
|
const toggle = () => {
|
|
|
|
|
modelValue.value = !modelValue.value;
|
|
|
|
|
};
|
2021-09-04 20:24:32 -08:00
|
|
|
</script>
|