Files
BrowserOS/packages/browseros-agent/apps/agent/components/ai-elements/checkpoint.tsx
Dani Akash 290ee91a8b Add 'packages/browseros-agent/' from commit '90bd4be3008285bf3825aad3702aff98f872671a'
git-subtree-dir: packages/browseros-agent
git-subtree-mainline: 8f148d0918
git-subtree-split: 90bd4be300
2026-03-13 21:22:09 +05:30

75 lines
1.6 KiB
TypeScript

'use client'
import { BookmarkIcon, type LucideProps } from 'lucide-react'
import type { ComponentProps, HTMLAttributes } from 'react'
import { Button } from '@/components/ui/button'
import { Separator } from '@/components/ui/separator'
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from '@/components/ui/tooltip'
import { cn } from '@/lib/utils'
export type CheckpointProps = HTMLAttributes<HTMLDivElement>
/** @public */
export const Checkpoint = ({
className,
children,
...props
}: CheckpointProps) => (
<div
className={cn(
'flex items-center gap-0.5 overflow-hidden text-muted-foreground',
className,
)}
{...props}
>
{children}
<Separator />
</div>
)
export type CheckpointIconProps = LucideProps
/** @public */
export const CheckpointIcon = ({
className,
children,
...props
}: CheckpointIconProps) =>
children ?? (
<BookmarkIcon className={cn('size-4 shrink-0', className)} {...props} />
)
export type CheckpointTriggerProps = ComponentProps<typeof Button> & {
tooltip?: string
}
/** @public */
export const CheckpointTrigger = ({
children,
className,
variant = 'ghost',
size = 'sm',
tooltip,
...props
}: CheckpointTriggerProps) =>
tooltip ? (
<Tooltip>
<TooltipTrigger asChild>
<Button size={size} type="button" variant={variant} {...props}>
{children}
</Button>
</TooltipTrigger>
<TooltipContent align="start" side="bottom">
{tooltip}
</TooltipContent>
</Tooltip>
) : (
<Button size={size} type="button" variant={variant} {...props}>
{children}
</Button>
)