mirror of
https://github.com/browseros-ai/BrowserOS.git
synced 2026-05-22 05:15:13 +00:00
git-subtree-dir: packages/browseros-agent git-subtree-mainline:8f148d0918git-subtree-split:90bd4be300
75 lines
1.6 KiB
TypeScript
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>
|
|
)
|