{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "learning-objectives",
  "type": "registry:component",
  "title": "Learning Objectives",
  "description": "Lists learning goals for educational content.",
  "dependencies": [
    "@vllnt/ui@^0.2.1"
  ],
  "registryDependencies": [],
  "files": [
    {
      "path": "registry/default/learning-objectives/learning-objectives.tsx",
      "content": "\"use client\";\n\nimport { CheckCircle2, Clock, GraduationCap, Target } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\n\nexport type LearningObjectivesProps = {\n  estimatedTime?: string;\n  objectives: string[];\n  title?: string;\n};\n\nexport function LearningObjectives({\n  estimatedTime,\n  objectives,\n  title = \"What you'll learn\",\n}: LearningObjectivesProps) {\n  return (\n    <div className=\"my-6 rounded-lg border bg-gradient-to-br from-primary/5 to-primary/10 p-6\">\n      <div className=\"flex items-center justify-between mb-4\">\n        <div className=\"flex items-center gap-2\">\n          <Target className=\"size-5 text-primary\" />\n          <h4 className=\"font-semibold text-foreground\">{title}</h4>\n        </div>\n        {estimatedTime ? (\n          <div className=\"flex items-center gap-1 text-sm text-muted-foreground\">\n            <Clock className=\"size-4\" />\n            <span>{estimatedTime}</span>\n          </div>\n        ) : null}\n      </div>\n      <ul className=\"space-y-2\">\n        {objectives.map((objective) => (\n          <li className=\"flex items-start gap-2\" key={objective}>\n            <CheckCircle2 className=\"size-4 text-primary flex-shrink-0 mt-0.5\" />\n            <span className=\"text-sm text-muted-foreground\">{objective}</span>\n          </li>\n        ))}\n      </ul>\n    </div>\n  );\n}\n\nexport type PrerequisitesProps = {\n  items: string[];\n  level?: \"advanced\" | \"beginner\" | \"intermediate\";\n  title?: string;\n};\n\nexport function Prerequisites({\n  items,\n  level,\n  title = \"Prerequisites\",\n}: PrerequisitesProps) {\n  return (\n    <div className=\"my-6 rounded-lg border bg-muted/30 p-6\">\n      <div className=\"flex items-center justify-between mb-4\">\n        <div className=\"flex items-center gap-2\">\n          <GraduationCap className=\"size-5 text-muted-foreground\" />\n          <h4 className=\"font-semibold text-foreground\">{title}</h4>\n        </div>\n        {level ? (\n          <span className=\"text-xs font-medium px-2 py-1 rounded-full bg-primary/10 text-primary capitalize\">\n            {level}\n          </span>\n        ) : null}\n      </div>\n      <ul className=\"space-y-2\">\n        {items.map((item) => (\n          <li\n            className=\"flex items-start gap-2 text-sm text-muted-foreground\"\n            key={item}\n          >\n            <span className=\"text-primary\">•</span>\n            {item}\n          </li>\n        ))}\n      </ul>\n    </div>\n  );\n}\n\nexport type SummaryProps = {\n  children: ReactNode;\n  keyTakeaways?: string[];\n  title?: string;\n};\n\nexport function Summary({\n  children,\n  keyTakeaways,\n  title = \"Summary\",\n}: SummaryProps) {\n  return (\n    <div className=\"my-6 rounded-lg border bg-muted/30 p-6\">\n      <h4 className=\"font-semibold text-foreground mb-3 flex items-center gap-2\">\n        <GraduationCap className=\"size-5\" />\n        {title}\n      </h4>\n      <div className=\"text-sm text-muted-foreground [&>p]:mb-2\">{children}</div>\n      {keyTakeaways && keyTakeaways.length > 0 ? (\n        <div className=\"mt-4 pt-4 border-t border-border\">\n          <p className=\"text-xs font-medium uppercase tracking-wider text-muted-foreground mb-2\">\n            Key Takeaways\n          </p>\n          <ul className=\"space-y-1\">\n            {keyTakeaways.map((takeaway) => (\n              <li className=\"flex items-start gap-2 text-sm\" key={takeaway}>\n                <CheckCircle2 className=\"size-4 text-green-500 flex-shrink-0 mt-0.5\" />\n                <span className=\"text-muted-foreground\">{takeaway}</span>\n              </li>\n            ))}\n          </ul>\n        </div>\n      ) : null}\n    </div>\n  );\n}\n",
      "type": "registry:component"
    }
  ],
  "version": "0.2.1",
  "stability": "stable"
}
