{ "name": "steps", "type": "registry:ui", "registryDependencies": [ "collapsible" ], "dependencies": [], "devDependencies": [], "tailwind": {}, "cssVars": { "light": {}, "dark": {} }, "description": "A component for displaying a sequence of operations in a collapsible layout. Each step can include details and an optional vertical bar. Useful for showing AI steps like reasoning traces, tool calls, or process logs.", "files": [ { "path": "steps.tsx", "content": "\"use client\"\n\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/components/ui/collapsible\"\nimport { cn } from \"@/lib/utils\"\nimport { ChevronDown } from \"lucide-react\"\n\nexport type StepsItemProps = React.ComponentProps<\"div\">\n\nexport const StepsItem = ({\n children,\n className,\n ...props\n}: StepsItemProps) => (\n
\n {children}\n
\n)\n\nexport type StepsTriggerProps = React.ComponentProps<\n typeof CollapsibleTrigger\n> & {\n leftIcon?: React.ReactNode\n swapIconOnHover?: boolean\n}\n\nexport const StepsTrigger = ({\n children,\n className,\n leftIcon,\n swapIconOnHover = true,\n ...props\n}: StepsTriggerProps) => (\n \n
\n {leftIcon ? (\n \n \n {leftIcon}\n \n {swapIconOnHover && (\n \n )}\n \n ) : null}\n {children}\n
\n {!leftIcon && (\n \n )}\n \n)\n\nexport type StepsContentProps = React.ComponentProps<\n typeof CollapsibleContent\n> & {\n bar?: React.ReactNode\n}\n\nexport const StepsContent = ({\n children,\n className,\n bar,\n ...props\n}: StepsContentProps) => {\n return (\n \n
\n
{bar ?? }
\n
{children}
\n
\n \n )\n}\n\nexport type StepsBarProps = React.HTMLAttributes\n\nexport const StepsBar = ({ className, ...props }: StepsBarProps) => (\n \n)\n\nexport type StepsProps = React.ComponentProps\n\nexport function Steps({ defaultOpen = true, className, ...props }: StepsProps) {\n return (\n \n )\n}\n", "type": "registry:ui" } ] }