import { ReactNode } from 'react' import { AlertTriangle, CircleCheck, CircleX, Info } from 'lucide-react' type TipType = 'info' | 'warning' | 'error' | 'success' interface TipProps { children: ReactNode type?: TipType title?: string } const typeStyles: Record = { info: { border: 'border-[var(--color-primary)]', iconBg: 'bg-[var(--color-primary-solid)]', icon: ( ), titleColor: 'text-[var(--color-primary-solid)]', }, warning: { border: 'border-[var(--color-amber)]', iconBg: 'bg-[var(--color-amber)]', icon: ( ), titleColor: 'text-[var(--color-amber)]', }, error: { border: 'border-[var(--color-red)]', iconBg: 'bg-[var(--color-red)]', icon: ( ), titleColor: 'text-[var(--color-red)]', }, success: { border: 'border-[var(--color-success)]', iconBg: 'bg-[var(--color-success)]', icon: ( ), titleColor: 'text-[var(--color-success)]', }, } export function Tip({ children, type = 'info', title }: TipProps) { const styles = typeStyles[type] return (
{/* 图标 */}
{styles.icon}
{/* 内容 */}
{title && (

{title}

)}
{children}
) }