28 lines
		
	
	
		
			525 B
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			525 B
		
	
	
	
		
			Vue
		
	
	
	
	
	
<template>
 | 
						|
  <div v-if="show" class="popup-overlay" @click.self="show = false">
 | 
						|
    <div class="popup-container">
 | 
						|
      <slot />
 | 
						|
    </div>
 | 
						|
  </div>
 | 
						|
</template>
 | 
						|
 | 
						|
<script setup lang="ts">
 | 
						|
const show = defineModel("show", { type: Boolean, default: false });
 | 
						|
</script>
 | 
						|
 | 
						|
<style scoped>
 | 
						|
.popup-overlay {
 | 
						|
  position: fixed;
 | 
						|
  inset: 0;
 | 
						|
  background: rgba(0, 0, 0, 0.5);
 | 
						|
  display: flex;
 | 
						|
  align-items: center;
 | 
						|
  justify-content: center;
 | 
						|
}
 | 
						|
.popup-container {
 | 
						|
  background: #fff;
 | 
						|
  border-radius: 8px;
 | 
						|
  overflow: hidden;
 | 
						|
}
 | 
						|
</style>
 |