import * as React from "react"
import { cn } from "cn"
import {
Collapsible,
CollapsibleContent,
CollapsibleTrigger,
} from "@/components/ui/collapsible"
import { ChevronRightIcon } from "lucide-react"
function Trace({ className, ...props }: React.ComponentProps<"div">) {
return (
[data-slot=trace-line]]:flex *:has-[>[data-slot=trace-line]]:w-fit *:has-[>[data-slot=trace-line]]:max-w-full *:has-[>[data-slot=trace-line]]:min-w-0 *:has-[>[data-slot=trace-line]]:rounded-lg *:has-[>[data-slot=trace-line]]:text-left *:has-[>[data-slot=trace-line]]:outline-none *:has-[>[data-slot=trace-line]]:focus-visible:ring-3 *:has-[>[data-slot=trace-line]]:focus-visible:ring-ring/30",
className
)}
{...props}
/>
)
}
function TraceLine({
className,
status,
...props
}: React.ComponentProps<"span"> & {
status?: "running" | "error" | "pending"
}) {
return (
)
}
function TraceIcon({ className, ...props }: React.ComponentProps<"span">) {
return (
)
}
function TraceTitle({ className, ...props }: React.ComponentProps<"span">) {
return (
)
}
function TraceDescription({
className,
...props
}: React.ComponentProps<"span">) {
return (
)
}
function TraceCollapsible({
className,
...props
}: Omit
, "open"> &
(
| { open?: undefined }
| {
open: boolean
onOpenChange: NonNullable<
React.ComponentProps["onOpenChange"]
>
}
)) {
return (
)
}
function TraceCollapsibleTrigger({
className,
children,
...props
}: React.ComponentProps) {
return (
{children}
)
}
function TraceCollapsibleContent({
className,
children,
...props
}: React.ComponentProps) {
return (
{children}
)
}
export {
Trace,
TraceLine,
TraceIcon,
TraceTitle,
TraceDescription,
TraceCollapsible,
TraceCollapsibleTrigger,
TraceCollapsibleContent,
}