{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "timeline",
"type": "registry:ui",
"title": "Timeline",
"description": "Vertical timeline with dots, connectors and per-item content.",
"registryDependencies": [
"https://raw.githubusercontent.com/truongnat/rnui/main/registry/dist/nativewind/utils.json",
"https://raw.githubusercontent.com/truongnat/rnui/main/registry/dist/nativewind/text.json",
"https://raw.githubusercontent.com/truongnat/rnui/main/registry/dist/nativewind/theme.json"
],
"files": [
{
"path": "registry/shared/ui/timeline.tsx",
"type": "registry:ui",
"target": "components/ui/timeline.tsx",
"content": "import type { ReactNode } from 'react';\nimport { View, type ViewProps } from 'react-native';\nimport { Text, type TextProps } from '@/components/ui/text';\nimport { cn } from '@/lib/utils';\n\nexport function Timeline({\n className,\n children,\n ...props\n}: ViewProps & { className?: string; children?: ReactNode }) {\n return (\n \n {children}\n \n );\n}\n\nexport interface TimelineItemProps extends ViewProps {\n /** Custom dot node — defaults to a themed bullet. */\n dot?: ReactNode;\n /** Set false on the last item to hide the connector line. */\n line?: boolean;\n className?: string;\n children?: ReactNode;\n}\n\nexport function TimelineItem({\n dot,\n line = true,\n className,\n children,\n ...props\n}: TimelineItemProps) {\n return (\n \n \n {dot ?? }\n {line && }\n \n {children}\n \n );\n}\n\nexport function TimelineTitle({ className, ...props }: TextProps) {\n return (\n \n );\n}\n\nexport function TimelineDescription({ className, ...props }: TextProps) {\n return (\n \n );\n}\n"
}
]
}