import React from 'react'; import { LuFileText, LuLightbulb, LuTrash2 } from 'react-icons/lu'; import { cn } from '../copilot/cn'; interface ContentCardProps { title: string; preview: React.ReactNode; lead?: React.ReactNode; meta?: React.ReactNode; actions?: React.ReactNode; children?: React.ReactNode; idea?: boolean; className?: string; selectable?: boolean; selected?: boolean; onToggleSelect?: () => void; } function ContentCard({ title, preview, lead, meta, actions, children, idea = false, className, selectable = false, selected = false, onToggleSelect, }: ContentCardProps): JSX.Element { const Glyph = idea ? LuLightbulb : LuFileText; return (
{ if (event.key === 'Enter' || event.key === ' ') { event.preventDefault(); onToggleSelect?.(); } } : undefined } className={cn( 'flex flex-col overflow-hidden rounded-[14px] border border-gray-200 bg-white transition-colors', selectable ? 'cursor-pointer' : 'hover:border-gray-300', selected && 'ring-2 ring-pink-500', className )} >
{preview} {selectable && ( )}
{lead && (
{lead}
)}

{title}

{meta && (
{meta}
)} {children} {actions && (
{actions}
)}
); } export const CARD_ACTION = 'inline-flex h-8 flex-1 items-center justify-center rounded-lg bg-primary px-3 text-[13px] font-semibold text-white transition-opacity hover:opacity-90 disabled:pointer-events-none disabled:opacity-50'; export const CARD_ACTION_QUIET = 'inline-flex h-8 flex-1 items-center justify-center rounded-lg border border-gray-200 px-3 text-[13px] font-medium text-gray-500'; interface CardIconButtonProps { label: string; onClick: () => void; disabled?: boolean; busy?: boolean; } export function CardIconButton({ label, onClick, disabled = false, busy = false, }: CardIconButtonProps): JSX.Element { return ( ); } interface CardOpenButtonProps { onClick: () => void; children?: React.ReactNode; } export function CardOpenButton({ onClick, children = 'Open content', }: CardOpenButtonProps): JSX.Element { return ( ); } export default ContentCard;