mirror of
https://github.com/siteboon/claudecodeui.git
synced 2026-05-01 02:08:43 +00:00
42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
import type { ReactNode } from 'react';
|
|
import { cn } from '../../../lib/utils';
|
|
|
|
/* ── Container ─────────────────────────────────────────────────── */
|
|
type PillBarProps = {
|
|
children: ReactNode;
|
|
className?: string;
|
|
};
|
|
|
|
export function PillBar({ children, className }: PillBarProps) {
|
|
return (
|
|
<div className={cn('inline-flex items-center gap-[2px] rounded-lg bg-muted/60 p-[3px]', className)}>
|
|
{children}
|
|
</div>
|
|
);
|
|
}
|
|
|
|
/* ── Individual pill button ────────────────────────────────────── */
|
|
type PillProps = {
|
|
isActive: boolean;
|
|
onClick: () => void;
|
|
children: ReactNode;
|
|
className?: string;
|
|
};
|
|
|
|
export function Pill({ isActive, onClick, children, className }: PillProps) {
|
|
return (
|
|
<button
|
|
onClick={onClick}
|
|
className={cn(
|
|
'flex touch-manipulation items-center gap-1.5 rounded-md px-3 py-2 text-sm font-medium transition-all duration-150',
|
|
isActive
|
|
? 'bg-background text-foreground shadow-sm'
|
|
: 'text-muted-foreground active:bg-background/50',
|
|
className,
|
|
)}
|
|
>
|
|
{children}
|
|
</button>
|
|
);
|
|
}
|