<script setup lang="ts">
import AppIcon from '@/components/ui/AppIcon.vue'

defineProps<{
  icon?: string
  title?: string
  subtitle?: string
}>()
</script>

<template>
  <div class="empty-state">
    <AppIcon class="empty-icon" :icon="icon ?? 'inbox'" :size="52" />
    <div class="empty-title">{{ title ?? 'Ничего не найдено' }}</div>
    <div class="empty-sub">
      {{ subtitle ?? 'Попробуйте изменить фильтры или вернитесь позже.' }}
    </div>
    <slot />
  </div>
</template>

<style scoped>
.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 48px 24px;
  text-align: center;
  color: var(--color-text-secondary);
}
.empty-icon {
  color: var(--color-text-secondary);
}
.empty-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--color-text);
}
.empty-sub {
  font-size: 14px;
  max-width: 320px;
}
</style>
