import * as React from 'react' import { cva, type VariantProps } from 'class-variance-authority' import { cn } from '@/lib/utils' /** * Alert / inline message — статусная карточка с border-left accent. * shadcn-style API: children может быть [Title, Description] или произвольный. */ const alertVariants = cva( 'relative w-full rounded-md border-l-4 px-4 py-3 text-body [&>svg]:text-ink-2 [&>svg]:size-4 [&>svg]:absolute [&>svg]:left-3 [&>svg]:top-3 [&>svg+*]:pl-6', { variants: { variant: { info: 'border-l-accent bg-accent-bg text-ink', success: 'border-l-green bg-green-bg text-ink', warning: 'border-l-warn bg-warn-bg text-ink', danger: 'border-l-pink bg-pink-bg text-ink', // Alias для nstart-compat: error === danger визуально. error: 'border-l-pink bg-pink-bg text-ink', neutral: 'border-l-line bg-surface-2 text-ink', }, }, defaultVariants: { variant: 'info' }, }, ) export type AlertProps = React.HTMLAttributes & VariantProps & { title?: React.ReactNode /** Right-aligned slot для action button(s) inside alert. */ action?: React.ReactNode } export const Alert = React.forwardRef( function Alert({ className, variant, title, action, children, ...props }, ref) { return (
{title &&
{title}
}
{children}
{action &&
{action}
}
) }, )