27 lines
890 B
TypeScript
27 lines
890 B
TypeScript
|
|
import type { ReactNode } from 'react';
|
||
|
|
import type { BadgeVariant } from '@/components/ui/common/Badge';
|
||
|
|
|
||
|
|
interface ToastProps {
|
||
|
|
children: ReactNode;
|
||
|
|
variant?: BadgeVariant;
|
||
|
|
className?: string;
|
||
|
|
}
|
||
|
|
|
||
|
|
const variantStyles: Record<BadgeVariant, string> = {
|
||
|
|
success: 'bg-badge-success-bg text-badge-success-fg border-badge-success-border',
|
||
|
|
warning: 'bg-badge-warning-bg text-badge-warning-fg border-badge-warning-border',
|
||
|
|
danger: 'bg-badge-danger-bg text-badge-danger-fg border-badge-danger-border',
|
||
|
|
default: 'bg-badge-default-bg text-badge-default-fg border-badge-default-border',
|
||
|
|
};
|
||
|
|
|
||
|
|
export function Toast({ children, variant = 'default', className = '' }: ToastProps) {
|
||
|
|
return (
|
||
|
|
<div
|
||
|
|
role="status"
|
||
|
|
className={`w-full rounded-[var(--radius-md)] border px-4 py-3 text-sm shadow-lg ${variantStyles[variant]} ${className}`}
|
||
|
|
>
|
||
|
|
{children}
|
||
|
|
</div>
|
||
|
|
);
|
||
|
|
}
|