@ -1,11 +1,11 @@
import * as React from "react"
import * as ToastPrimitives from "@radix-ui/react-toast"
import { cva , type VariantProps } from "class-variance-authority"
import { X } from 'lucide-react'
import * as ToastPrimitives from "@radix-ui/ react-toast " ;
import { type VariantProps , cva } from "class-variance-authority" ;
import { X } from "lucide-react" ;
import * as React from "react" ;
import { cn } from "@core/utils/cn"
import { cn } from "@core/utils/cn" ;
const ToastProvider = ToastPrimitives . Provider
const ToastProvider = ToastPrimitives . Provider ;
const ToastViewport = React . forwardRef <
React . ElementRef < typeof ToastPrimitives.Viewport > ,
@ -15,33 +15,34 @@ const ToastViewport = React.forwardRef<
ref = { ref }
className = { cn (
"fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-24 sm:right-6 sm:top-auto sm:flex-col md:max-w-[420px]" ,
className
className ,
) }
{ . . . props }
/ >
) )
ToastViewport . displayName = ToastPrimitives . Viewport . displayName
) ) ;
ToastViewport . displayName = ToastPrimitives . Viewport . displayName ;
const toastVariants = cva (
"group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full" ,
{
variants : {
variant : {
default : "border bg-background text-foreground dark:bg-slate-700 dark:border-slate-600 dark:text-slate-50" ,
default :
"border bg-background text-foreground dark:bg-slate-700 dark:border-slate-600 dark:text-slate-50" ,
destructive :
"group destructive bg-red-600 text-white dark:border-red-900 dark:bg-red-900 dark:text-red-50"
"group destructive bg-red-600 text-white dark:border-red-900 dark:bg-red-900 dark:text-red-50" ,
} ,
} ,
defaultVariants : {
variant : "default" ,
} ,
}
)
} ,
) ;
const Toast = React . forwardRef <
React . ElementRef < typeof ToastPrimitives.Root > ,
React . ComponentPropsWithoutRef < typeof ToastPrimitives.Root > &
VariantProps < typeof toastVariants >
VariantProps < typeof toastVariants >
> ( ( { className , variant , . . . props } , ref ) = > {
return (
< ToastPrimitives.Root
@ -49,9 +50,9 @@ const Toast = React.forwardRef<
className = { cn ( toastVariants ( { variant } ) , className ) }
{ . . . props }
/ >
)
} )
Toast . displayName = ToastPrimitives . Root . displayName
) ;
} ) ;
Toast . displayName = ToastPrimitives . Root . displayName ;
const ToastAction = React . forwardRef <
React . ElementRef < typeof ToastPrimitives.Action > ,
@ -61,12 +62,12 @@ const ToastAction = React.forwardRef<
ref = { ref }
className = { cn (
"inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive" ,
className
className ,
) }
{ . . . props }
/ >
) )
ToastAction . displayName = ToastPrimitives . Action . displayName
) ) ;
ToastAction . displayName = ToastPrimitives . Action . displayName ;
const ToastClose = React . forwardRef <
React . ElementRef < typeof ToastPrimitives.Close > ,
@ -76,15 +77,15 @@ const ToastClose = React.forwardRef<
ref = { ref }
className = { cn (
"absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600 dark:text-slate-400 dark:hover:text-slate-50" ,
className
className ,
) }
toast - close = ""
{ . . . props }
>
< X className = "h-4 w-4" / >
< / ToastPrimitives.Close >
) )
ToastClose . displayName = ToastPrimitives . Close . displayName
) ) ;
ToastClose . displayName = ToastPrimitives . Close . displayName ;
const ToastTitle = React . forwardRef <
React . ElementRef < typeof ToastPrimitives.Title > ,
@ -95,8 +96,8 @@ const ToastTitle = React.forwardRef<
className = { cn ( "text-sm font-semibold" , className ) }
{ . . . props }
/ >
) )
ToastTitle . displayName = ToastPrimitives . Title . displayName
) ) ;
ToastTitle . displayName = ToastPrimitives . Title . displayName ;
const ToastDescription = React . forwardRef <
React . ElementRef < typeof ToastPrimitives.Description > ,
@ -107,12 +108,12 @@ const ToastDescription = React.forwardRef<
className = { cn ( "text-sm opacity-90" , className ) }
{ . . . props }
/ >
) )
ToastDescription . displayName = ToastPrimitives . Description . displayName
) ) ;
ToastDescription . displayName = ToastPrimitives . Description . displayName ;
type ToastProps = React . ComponentPropsWithoutRef < typeof Toast >
type ToastProps = React . ComponentPropsWithoutRef < typeof Toast > ;
type ToastActionElement = React . ReactElement < typeof ToastAction >
type ToastActionElement = React . ReactElement < typeof ToastAction > ;
export {
type ToastProps ,
@ -124,5 +125,4 @@ export {
ToastDescription ,
ToastClose ,
ToastAction ,
}
} ;