{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "interactive-timeline-shadcnui", "type": "registry:component", "title": "Interactive Timeline", "description": "Vertical timeline where elements animate and connect with lines on scroll", "registryDependencies": [ "button" ], "dependencies": [ "framer-motion", "react" ], "files": [ { "path": "@uitripled/react-shadcn/src/components/motion-core/interactive-timeline.tsx", "content": "\"use client\";\n\nimport { motion, useInView } from \"framer-motion\";\nimport { useRef } from \"react\";\n\ntype TimelineItem = {\n id: string;\n title: string;\n description: string;\n date?: string;\n};\n\ntype InteractiveTimelineProps = {\n items?: TimelineItem[];\n};\n\nfunction TimelineItemComponent({\n item,\n index,\n}: {\n item: TimelineItem;\n index: number;\n}) {\n const itemRef = useRef(null);\n const itemInView = useInView(itemRef, {\n once: true,\n margin: \"-100px\",\n });\n\n return (\n
{item.description}
\n