{
  "$schema": "https://shadcn-vue.com/schema/registry-item.json",
  "name": "event-list",
  "title": "Event List",
  "type": "registry:block",
  "files": [
    {
      "path": "packages/registry-vue/blocks/event-list/EventList.vue",
      "content": "<script setup lang=\"ts\">\nimport { Clock } from 'lucide-vue-next'\nimport { SectionCard } from '@/components/ui/section-card'\nimport { DataList, DataListItem } from '@/components/ui/data-list'\nimport { Badge } from '@/components/ui/badge'\n\ninterface EventItem {\n  id: string | number\n  title: string\n  date: string\n  status?: string\n  statusVariant?: 'default' | 'secondary' | 'outline' | 'destructive'\n}\n\ndefineProps<{\n  title?: string\n  description?: string\n  events: EventItem[]\n  class?: string\n}>()\n</script>\n\n<template>\n  <SectionCard :title=\"title ?? 'Upcoming Events'\" :description=\"description\" :class=\"$props.class\">\n    <DataList>\n      <DataListItem v-for=\"event in events\" :key=\"event.id\" class=\"flex-col items-stretch\">\n        <div class=\"flex items-center justify-between\">\n          <p class=\"text-sm font-medium\">{{ event.title }}</p>\n          <Badge v-if=\"event.status\" :variant=\"event.statusVariant ?? 'secondary'\">{{ event.status }}</Badge>\n        </div>\n        <div class=\"text-muted-foreground mt-1 flex items-center gap-1.5 text-xs\">\n          <Clock class=\"size-3\" />\n          <span>{{ event.date }}</span>\n        </div>\n      </DataListItem>\n    </DataList>\n  </SectionCard>\n</template>\n",
      "type": "registry:block",
      "target": "~/app/components/blocks/EventList.vue"
    }
  ],
  "dependencies": [
    "lucide-vue-next"
  ],
  "devDependencies": [],
  "registryDependencies": [
    "https://uipkge.dev/r/vue/section-card.json",
    "https://uipkge.dev/r/vue/data-list.json",
    "https://uipkge.dev/r/vue/badge.json"
  ],
  "description": "List of upcoming events in a SectionCard. Each item shows title + date + optional status badge.",
  "categories": [
    "dashboard"
  ]
}