{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "notification-list", "type": "registry:ui", "title": "Notification List", "description": "Notification List Component", "dependencies": [ "motion", "lucide-react" ], "registryDependencies": [], "files": [ { "path": "registry/ui-elements/notification-list/index.tsx", "content": "'use client';\n\nimport * as React from 'react';\nimport { RotateCcw, ArrowUpRight } from 'lucide-react';\nimport { motion, type Transition } from 'motion/react';\n\nconst notifications = [\n {\n id: 1,\n title: 'NPM Install Complete',\n subtitle: '1,227 packages added!',\n time: 'just now',\n count: 2,\n },\n {\n id: 2,\n title: 'Build Succeeded',\n subtitle: 'Build finished in 12.34s',\n time: '1m 11s',\n },\n {\n id: 3,\n title: 'Lint Passed',\n subtitle: 'No problems found',\n time: '5m',\n },\n];\n\nconst transition: Transition = {\n type: 'spring',\n stiffness: 300,\n damping: 26,\n};\n\nconst getCardVariants = (i: number) => ({\n collapsed: {\n marginTop: i === 0 ? 0 : -44,\n scaleX: 1 - i * 0.05,\n },\n expanded: {\n marginTop: i === 0 ? 0 : 4,\n scaleX: 1,\n },\n});\n\nconst textSwitchTransition: Transition = {\n duration: 0.22,\n ease: 'easeInOut',\n};\n\nconst notificationTextVariants = {\n collapsed: { opacity: 1, y: 0, pointerEvents: 'auto' },\n expanded: { opacity: 0, y: -16, pointerEvents: 'none' },\n};\n\nconst viewAllTextVariants = {\n collapsed: { opacity: 0, y: 16, pointerEvents: 'none' },\n expanded: { opacity: 1, y: 0, pointerEvents: 'auto' },\n};\n\nfunction NotificationList() {\n return (\n \n
\n {notifications.map((notification, i) => (\n \n
\n

{notification.title}

\n {notification.count && (\n
\n \n {notification.count}\n
\n )}\n
\n
\n {notification.time}\n  • \n {notification.subtitle}\n
\n \n ))}\n
\n\n
\n
\n {notifications.length}\n
\n \n \n Notifications\n \n \n View all \n \n \n
\n \n );\n}\n\nexport { NotificationList };\n", "type": "registry:ui", "target": "components/animate-ui/ui-elements/notification-list.tsx" } ] }