{
  "$schema": "https://shadcn-vue.com/schema/registry-item.json",
  "name": "empty-state",
  "title": "Empty State",
  "type": "registry:ui",
  "files": [
    {
      "path": "packages/registry-vue/components/empty-state/EmptyState.vue",
      "content": "<script setup lang=\"ts\">\nimport type { Component } from 'vue'\nimport { cn } from '@/lib/utils'\n\nconst props = defineProps<{\n  icon?: Component\n  title?: string\n  description?: string\n  role?: 'status' | 'alert'\n  headingTag?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'\n  class?: string\n}>()\n</script>\n\n<template>\n  <div\n    :class=\"cn('flex flex-col items-center py-12 text-center', props.class)\"\n    :role=\"props.role ?? 'status'\"\n    aria-live=\"polite\"\n  >\n    <component :is=\"icon\" v-if=\"icon\" class=\"text-muted-foreground mx-auto mb-3 size-10\" aria-hidden=\"true\" />\n    <component :is=\"props.headingTag ?? 'h3'\" v-if=\"title\" class=\"text-foreground font-medium\">\n      {{ title }}\n    </component>\n    <p v-if=\"description\" class=\"text-muted-foreground mt-1 max-w-sm text-sm\">{{ description }}</p>\n    <slot />\n  </div>\n</template>\n",
      "type": "registry:ui",
      "target": "~/app/components/ui/empty-state/EmptyState.vue"
    },
    {
      "path": "packages/registry-vue/components/empty-state/index.ts",
      "content": "export { default as EmptyState } from './EmptyState.vue'\n",
      "type": "registry:ui",
      "target": "~/app/components/ui/empty-state/index.ts"
    }
  ],
  "dependencies": [],
  "devDependencies": [],
  "registryDependencies": [],
  "description": "Centered placeholder with icon, headline, supporting text, and one or two actions. Drop into empty lists, blank dashboards, and unauthenticated views — the standard \"nothing here yet\" pattern.",
  "categories": [
    "feedback"
  ]
}