// AlignUI Notification v0.0.0 import * as React from 'react'; import * as Alert from '@/components/ui/alert'; import { cn } from '@/utils/cn'; import * as NotificationPrimitives from '@radix-ui/react-toast'; import { TriangleAlert, CircleCheck, CircleAlert, Info, Wand2, } from 'lucide-react'; const NotificationProvider = NotificationPrimitives.Provider; const NotificationAction = NotificationPrimitives.Action; const NotificationViewport = React.forwardRef< React.ComponentRef, React.ComponentPropsWithoutRef >(({ className, ...rest }, forwardedRef) => ( )); NotificationViewport.displayName = 'NotificationViewport'; type NotificationProps = React.ComponentPropsWithoutRef< typeof NotificationPrimitives.Root > & Pick< React.ComponentPropsWithoutRef, 'status' | 'variant' > & { title?: string; description?: React.ReactNode; action?: React.ReactNode; disableDismiss?: boolean; }; const Notification = React.forwardRef< React.ComponentRef, NotificationProps >( ( { className, status, variant = 'filled', title, description, action, disableDismiss = false, ...rest }: NotificationProps, forwardedRef, ) => { let Icon: React.ElementType; switch (status) { case 'success': Icon = CircleCheck; break; case 'warning': Icon = TriangleAlert; break; case 'error': Icon = CircleAlert; break; case 'information': Icon = Info; break; case 'feature': Icon = Wand2; break; default: Icon = CircleAlert; break; } return ( ); }, ); Notification.displayName = 'Notification'; export { Notification as Root, NotificationProvider as Provider, NotificationAction as Action, NotificationViewport as Viewport, type NotificationProps, };