mirror of
				https://github.com/crater-invoice/crater.git
				synced 2025-11-03 14:03:18 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			40 lines
		
	
	
		
			785 B
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			785 B
		
	
	
	
		
			Vue
		
	
	
	
	
	
<template>
 | 
						|
  <div class="bg-white rounded-lg shadow">
 | 
						|
    <div
 | 
						|
      v-if="hasHeaderSlot"
 | 
						|
      class="px-5 py-4 text-black border-b border-gray-100 border-solid"
 | 
						|
    >
 | 
						|
      <slot name="header" />
 | 
						|
    </div>
 | 
						|
    <div :class="containerClass">
 | 
						|
      <slot />
 | 
						|
    </div>
 | 
						|
    <div
 | 
						|
      v-if="hasFooterSlot"
 | 
						|
      class="px-5 py-4 border-t border-gray-100 border-solid sm:px-6"
 | 
						|
    >
 | 
						|
      <slot name="footer" />
 | 
						|
    </div>
 | 
						|
  </div>
 | 
						|
</template>
 | 
						|
 | 
						|
<script setup>
 | 
						|
import { computed, useSlots } from 'vue'
 | 
						|
 | 
						|
const props = defineProps({
 | 
						|
  containerClass: {
 | 
						|
    type: String,
 | 
						|
    default: 'px-4 py-5 sm:px-8 sm:py-8',
 | 
						|
  },
 | 
						|
})
 | 
						|
 | 
						|
const slots = useSlots()
 | 
						|
 | 
						|
const hasHeaderSlot = computed(() => {
 | 
						|
  return !!slots.header
 | 
						|
})
 | 
						|
const hasFooterSlot = computed(() => {
 | 
						|
  return !!slots.footer
 | 
						|
})
 | 
						|
</script>
 |