flashpop 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +330 -0
- package/dist/index.cjs.js +807 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +125 -0
- package/dist/index.esm.js +795 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/toast.css +2 -0
- package/dist/toast.css.map +1 -0
- package/package.json +73 -0
- package/src/ToastContainer.jsx +83 -0
- package/src/ToastContext.jsx +262 -0
- package/src/ToastItem.jsx +343 -0
- package/src/icons.jsx +135 -0
- package/src/index.d.ts +125 -0
- package/src/index.js +13 -0
- package/src/toast.css +586 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../src/icons.jsx","../src/ToastItem.jsx","../src/ToastContainer.jsx","../src/ToastContext.jsx"],"sourcesContent":["import React from 'react';\n\n/**\n * Success Icon SVG\n */\nexport const SuccessIcon = ({ size = 20, className = '', ...props }) => (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={`easy-toast-icon easy-toast-icon--success ${className}`}\n aria-hidden=\"true\"\n {...props}\n >\n <path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\" />\n <polyline points=\"22 4 12 14.01 9 11.01\" />\n </svg>\n);\n\n/**\n * Error Icon SVG\n */\nexport const ErrorIcon = ({ size = 20, className = '', ...props }) => (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={`easy-toast-icon easy-toast-icon--error ${className}`}\n aria-hidden=\"true\"\n {...props}\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\" />\n <line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\" />\n </svg>\n);\n\n/**\n * Warning Icon SVG\n */\nexport const WarningIcon = ({ size = 20, className = '', ...props }) => (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={`easy-toast-icon easy-toast-icon--warning ${className}`}\n aria-hidden=\"true\"\n {...props}\n >\n <path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\" />\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </svg>\n);\n\n/**\n * Info Icon SVG\n */\nexport const InfoIcon = ({ size = 20, className = '', ...props }) => (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={`easy-toast-icon easy-toast-icon--info ${className}`}\n aria-hidden=\"true\"\n {...props}\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\" />\n <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\" />\n </svg>\n);\n\n/**\n * Loading Spinner SVG\n */\nexport const LoadingIcon = ({ size = 20, className = '', ...props }) => (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={`easy-toast-icon easy-toast-icon--loading ${className}`}\n aria-hidden=\"true\"\n {...props}\n >\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" />\n </svg>\n);\n\n/**\n * Close (Dismiss) Button Icon SVG\n */\nexport const CloseIcon = ({ size = 16, className = '', ...props }) => (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={`easy-toast-close-icon ${className}`}\n aria-hidden=\"true\"\n {...props}\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n);\n","import React, { useEffect, useRef, useState, useCallback } from 'react';\nimport {\n SuccessIcon,\n ErrorIcon,\n WarningIcon,\n InfoIcon,\n LoadingIcon,\n CloseIcon,\n} from './icons';\n\n/**\n * ToastItem Component\n * Renders an individual notification card with animations, timers, actions, and swipe to accept/cancel.\n */\nexport const ToastItem = ({\n id,\n type = 'default',\n title,\n message,\n duration = 3000,\n showProgressBar = true,\n pauseOnHover = true,\n closeButton = true,\n icon,\n action,\n onClose,\n onAccept,\n onCancel,\n acceptLabel,\n cancelLabel = 'Dismiss',\n swipeable = true,\n swipeThreshold = 70,\n theme = 'light',\n className = '',\n style = {},\n onDismiss,\n}) => {\n const [isExiting, setIsExiting] = useState(false);\n const [exitDirection, setExitDirection] = useState(null); // 'left' | 'right' | null\n const [isPaused, setIsPaused] = useState(false);\n\n // Swipe state\n const [isDragging, setIsDragging] = useState(false);\n const [dragOffset, setDragOffset] = useState(0);\n const startXRef = useRef(0);\n const isPointerDownRef = useRef(false);\n \n // Ref to track remaining duration when paused\n const remainingTimeRef = useRef(duration);\n const startTimeRef = useRef(null);\n const timerRef = useRef(null);\n\n // Check if this toast supports an \"accept\" action\n const hasAcceptAction = Boolean(onAccept || (action && action.onClick));\n const resolvedAcceptLabel = acceptLabel || (action && action.label) || 'Accept';\n\n // Trigger graceful exit animation before removal\n const handleDismiss = useCallback((direction = null) => {\n if (isExiting) return;\n setIsExiting(true);\n if (direction) {\n setExitDirection(direction);\n }\n if (onClose) {\n onClose(id);\n }\n // Match the CSS exit animation duration\n setTimeout(() => {\n onDismiss(id);\n }, 280);\n }, [id, isExiting, onClose, onDismiss]);\n\n // Trigger accept action\n const handleAccept = useCallback(() => {\n if (isExiting) return;\n if (onAccept) {\n onAccept(id);\n } else if (action && action.onClick) {\n action.onClick(id);\n }\n handleDismiss('right');\n }, [action, handleDismiss, id, isExiting, onAccept]);\n\n // Handle auto-dismiss timer\n useEffect(() => {\n if (duration === false || duration === Infinity || duration <= 0) {\n return;\n }\n\n const startTimer = (time) => {\n startTimeRef.current = Date.now();\n timerRef.current = setTimeout(() => {\n handleDismiss();\n }, time);\n };\n\n if (!isPaused && !isDragging) {\n startTimer(remainingTimeRef.current);\n }\n\n return () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n };\n }, [duration, isPaused, isDragging, handleDismiss]);\n\n // Pause on mouse enter\n const handleMouseEnter = () => {\n if (!pauseOnHover || duration === false || duration === Infinity || duration <= 0) {\n return;\n }\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n const elapsed = Date.now() - startTimeRef.current;\n remainingTimeRef.current = Math.max(0, remainingTimeRef.current - elapsed);\n }\n setIsPaused(true);\n };\n\n // Resume on mouse leave\n const handleMouseLeave = () => {\n if (!pauseOnHover || duration === false || duration === Infinity || duration <= 0 || isDragging) {\n return;\n }\n setIsPaused(false);\n };\n\n // --- Pointer Swipe Handlers ---\n const handlePointerDown = (e) => {\n if (!swipeable || isExiting) return;\n // Don't drag if clicking buttons or interactive elements\n if (e.target.closest('button') || e.target.closest('a')) return;\n if (e.button !== undefined && e.button !== 0) return; // Only primary mouse button\n\n isPointerDownRef.current = true;\n startXRef.current = e.clientX;\n setIsDragging(true);\n\n // Pause timer while swiping\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n const elapsed = Date.now() - (startTimeRef.current || Date.now());\n remainingTimeRef.current = Math.max(0, remainingTimeRef.current - elapsed);\n }\n\n try {\n e.currentTarget.setPointerCapture(e.pointerId);\n } catch (err) {\n // Ignore if setPointerCapture not supported\n }\n };\n\n const handlePointerMove = (e) => {\n if (!isPointerDownRef.current || !isDragging) return;\n const currentX = e.clientX;\n const diff = currentX - startXRef.current;\n setDragOffset(diff);\n };\n\n const handlePointerUp = (e) => {\n if (!isPointerDownRef.current) return;\n isPointerDownRef.current = false;\n setIsDragging(false);\n\n try {\n e.currentTarget.releasePointerCapture(e.pointerId);\n } catch (err) {\n // Ignore\n }\n\n // Check if swipe distance exceeded threshold\n if (dragOffset >= swipeThreshold) {\n // Swiped Right\n if (hasAcceptAction) {\n handleAccept();\n } else {\n if (onCancel) onCancel(id);\n handleDismiss('right');\n }\n } else if (dragOffset <= -swipeThreshold) {\n // Swiped Left\n if (onCancel) onCancel(id);\n handleDismiss('left');\n } else {\n // Reset back to center\n setDragOffset(0);\n setIsPaused(false);\n }\n };\n\n const handlePointerCancel = () => {\n isPointerDownRef.current = false;\n setIsDragging(false);\n setDragOffset(0);\n setIsPaused(false);\n };\n\n // Resolve appropriate icon\n const renderIcon = () => {\n if (icon === false) return null;\n if (icon && React.isValidElement(icon)) {\n return <span className=\"easy-toast-custom-icon\">{icon}</span>;\n }\n\n switch (type) {\n case 'success':\n return <SuccessIcon />;\n case 'error':\n return <ErrorIcon />;\n case 'warning':\n return <WarningIcon />;\n case 'info':\n return <InfoIcon />;\n case 'loading':\n return <LoadingIcon />;\n default:\n return null;\n }\n };\n\n const hasIcon = icon !== false && (icon || type !== 'default');\n const hasProgressBar = showProgressBar && duration && duration !== Infinity && duration > 0;\n\n // Compute inline drag transform\n const getDragStyle = () => {\n if (isDragging) {\n return {\n transform: `translateX(${dragOffset}px)`,\n transition: 'none',\n opacity: Math.max(0.45, 1 - Math.abs(dragOffset) / 280),\n };\n }\n if (exitDirection === 'left') {\n return {\n transform: 'translateX(-115%) scale(0.9)',\n opacity: 0,\n transition: 'transform 0.28s cubic-bezier(0.4, 0, 1, 1), opacity 0.28s ease',\n };\n }\n if (exitDirection === 'right') {\n return {\n transform: 'translateX(115%) scale(0.9)',\n opacity: 0,\n transition: 'transform 0.28s cubic-bezier(0.4, 0, 1, 1), opacity 0.28s ease',\n };\n }\n return {\n transition: 'transform 0.24s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.24s ease',\n };\n };\n\n // Visual cues during swipe\n const isSwipingAccept = dragOffset > 25 && hasAcceptAction;\n const isSwipingDismissRight = dragOffset > 25 && !hasAcceptAction;\n const isSwipingCancel = dragOffset < -25;\n\n return (\n <div\n role={type === 'error' ? 'alert' : 'status'}\n aria-live={type === 'error' ? 'assertive' : 'polite'}\n className={`easy-toast-item easy-toast--${type} easy-toast--theme-${theme} ${\n isExiting ? 'easy-toast--exit' : 'easy-toast--enter'\n } ${swipeable ? 'easy-toast--swipeable' : ''} ${\n isDragging ? 'easy-toast--dragging' : ''\n } ${isSwipingAccept ? 'easy-toast--swipe-accept' : ''} ${\n isSwipingCancel || isSwipingDismissRight ? 'easy-toast--swipe-cancel' : ''\n } ${className}`}\n style={{\n ...style,\n ...getDragStyle(),\n }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n onPointerCancel={handlePointerCancel}\n >\n {/* Swipe Badges/Hints */}\n {isSwipingAccept && (\n <div className=\"easy-toast-swipe-badge easy-toast-swipe-badge--accept\">\n ✓ {resolvedAcceptLabel}\n </div>\n )}\n\n {(isSwipingCancel || isSwipingDismissRight) && (\n <div className=\"easy-toast-swipe-badge easy-toast-swipe-badge--cancel\">\n ✕ {cancelLabel}\n </div>\n )}\n\n <div className=\"easy-toast-content-wrapper\">\n {hasIcon && <div className=\"easy-toast-icon-container\">{renderIcon()}</div>}\n\n <div className=\"easy-toast-text-container\">\n {title && <div className=\"easy-toast-title\">{title}</div>}\n <div className=\"easy-toast-message\">{message}</div>\n </div>\n\n {action && (\n <div className=\"easy-toast-action-container\">\n <button\n type=\"button\"\n className=\"easy-toast-action-button\"\n onClick={() => {\n action.onClick?.(id);\n if (action.dismissOnClick !== false) {\n handleDismiss('right');\n }\n }}\n >\n {action.label}\n </button>\n </div>\n )}\n\n {closeButton && (\n <button\n type=\"button\"\n className=\"easy-toast-close-button\"\n aria-label=\"Close notification\"\n onClick={() => handleDismiss()}\n >\n <CloseIcon />\n </button>\n )}\n </div>\n\n {hasProgressBar && (\n <div className=\"easy-toast-progress-bar-track\">\n <div\n className=\"easy-toast-progress-bar\"\n style={{\n animationDuration: `${duration}ms`,\n animationPlayState: isPaused || isDragging ? 'paused' : 'running',\n }}\n />\n </div>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { createPortal } from 'react-dom';\nimport { ToastItem } from './ToastItem';\n\nconst VALID_POSITIONS = [\n 'top-left',\n 'top-center',\n 'top-right',\n 'bottom-left',\n 'bottom-center',\n 'bottom-right',\n];\n\n/**\n * ToastContainer Component\n * Renders toast groups in their respective screen positions via a React Portal.\n */\nexport const ToastContainer = ({\n toasts = [],\n onDismiss,\n position: defaultPosition = 'top-right',\n theme: defaultTheme = 'light',\n newestOnTop = false,\n pauseOnHover = true,\n showProgressBar = true,\n swipeable = true,\n swipeThreshold = 70,\n limit,\n className = '',\n style = {},\n}) => {\n // Guard for SSR (Next.js, Gatsby, Remix)\n const isMounted = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n if (!isMounted) {\n return null;\n }\n\n // Filter toasts if limit is set\n const visibleToasts = limit && limit > 0 ? toasts.slice(-limit) : toasts;\n\n // Group toasts by position\n const groupedToasts = visibleToasts.reduce((acc, toast) => {\n const pos = toast.position || defaultPosition;\n const validPos = VALID_POSITIONS.includes(pos) ? pos : 'top-right';\n if (!acc[validPos]) {\n acc[validPos] = [];\n }\n acc[validPos].push(toast);\n return acc;\n }, {});\n\n const portalContent = (\n <div className={`easy-toast-portal ${className}`} style={style}>\n {Object.entries(groupedToasts).map(([pos, items]) => {\n const sortedItems = newestOnTop ? [...items].reverse() : items;\n\n return (\n <div\n key={pos}\n className={`easy-toast-container easy-toast-container--${pos}`}\n aria-live=\"polite\"\n >\n {sortedItems.map((toast) => (\n <ToastItem\n key={toast.id}\n {...toast}\n pauseOnHover={toast.pauseOnHover ?? pauseOnHover}\n showProgressBar={toast.showProgressBar ?? showProgressBar}\n swipeable={toast.swipeable ?? swipeable}\n swipeThreshold={toast.swipeThreshold ?? swipeThreshold}\n theme={toast.theme || defaultTheme}\n onDismiss={onDismiss}\n />\n ))}\n </div>\n );\n })}\n </div>\n );\n\n return createPortal(portalContent, document.body);\n};\n","import React, { createContext, useContext, useState, useCallback, useMemo, useRef } from 'react';\nimport { ToastContainer } from './ToastContainer';\n\n// Create Toast Context\nexport const ToastContext = createContext(null);\n\nlet toastCount = 0;\nconst generateId = () => {\n toastCount += 1;\n return `easy-toast-${Date.now()}-${toastCount}`;\n};\n\n/**\n * ToastProvider Component\n * Wraps your application to provide toast functionality anywhere in the component tree.\n */\nexport const ToastProvider = ({\n children,\n position = 'top-right',\n autoClose = 3000,\n pauseOnHover = true,\n showProgressBar = true,\n swipeable = true,\n swipeThreshold = 70,\n theme = 'light',\n limit,\n newestOnTop = false,\n containerClassName = '',\n containerStyle = {},\n}) => {\n const [toasts, setToasts] = useState([]);\n const toastsRef = useRef(toasts);\n toastsRef.current = toasts;\n\n // Add a new toast\n const addToast = useCallback(\n (messageOrOptions, maybeOptions = {}) => {\n let options = {};\n if (typeof messageOrOptions === 'object' && !React.isValidElement(messageOrOptions)) {\n options = { ...messageOrOptions };\n } else {\n options = { ...maybeOptions, message: messageOrOptions };\n }\n\n const id = options.id || generateId();\n const newToast = {\n id,\n type: options.type || 'default',\n message: options.message,\n title: options.title,\n duration: options.duration !== undefined ? options.duration : autoClose,\n showProgressBar: options.showProgressBar !== undefined ? options.showProgressBar : showProgressBar,\n pauseOnHover: options.pauseOnHover !== undefined ? options.pauseOnHover : pauseOnHover,\n swipeable: options.swipeable !== undefined ? options.swipeable : swipeable,\n swipeThreshold: options.swipeThreshold !== undefined ? options.swipeThreshold : swipeThreshold,\n closeButton: options.closeButton !== undefined ? options.closeButton : true,\n icon: options.icon,\n action: options.action,\n onClose: options.onClose,\n onAccept: options.onAccept,\n onCancel: options.onCancel,\n acceptLabel: options.acceptLabel,\n cancelLabel: options.cancelLabel,\n position: options.position || position,\n theme: options.theme || theme,\n className: options.className || '',\n style: options.style || {},\n };\n\n setToasts((prev) => {\n // If updating an existing toast with same id\n const existingIndex = prev.findIndex((t) => t.id === id);\n if (existingIndex > -1) {\n const updated = [...prev];\n updated[existingIndex] = { ...updated[existingIndex], ...newToast };\n return updated;\n }\n\n // Apply limit if specified\n if (limit && limit > 0 && prev.length >= limit) {\n return [...prev.slice(prev.length - limit + 1), newToast];\n }\n\n return [...prev, newToast];\n });\n\n return id;\n },\n [autoClose, showProgressBar, pauseOnHover, position, theme, limit]\n );\n\n // Update an existing toast (e.g. for promises)\n const updateToast = useCallback((id, updatedOptions) => {\n setToasts((prev) =>\n prev.map((t) => {\n if (t.id === id) {\n return {\n ...t,\n ...updatedOptions,\n id, // preserve id\n };\n }\n return t;\n })\n );\n }, []);\n\n // Dismiss a specific toast\n const dismissToast = useCallback((id) => {\n setToasts((prev) => prev.filter((t) => t.id !== id));\n }, []);\n\n // Dismiss all toasts\n const dismissAll = useCallback(() => {\n setToasts([]);\n }, []);\n\n // Context value with core functions\n const contextValue = useMemo(\n () => ({\n addToast,\n updateToast,\n dismissToast,\n dismissAll,\n toasts,\n }),\n [addToast, updateToast, dismissToast, dismissAll, toasts]\n );\n\n return (\n <ToastContext.Provider value={contextValue}>\n {children}\n <ToastContainer\n toasts={toasts}\n onDismiss={dismissToast}\n position={position}\n theme={theme}\n limit={limit}\n newestOnTop={newestOnTop}\n pauseOnHover={pauseOnHover}\n showProgressBar={showProgressBar}\n swipeable={swipeable}\n swipeThreshold={swipeThreshold}\n className={containerClassName}\n style={containerStyle}\n />\n </ToastContext.Provider>\n );\n};\n\n/**\n * Custom Hook: useToast\n * Exposes an intuitive API to trigger and manage toast notifications.\n *\n * Example:\n * const toast = useToast();\n * toast.success('Profile updated!');\n * toast.error('Something went wrong');\n */\nexport const useToast = () => {\n const context = useContext(ToastContext);\n\n if (!context) {\n throw new Error('useToast must be used within a <ToastProvider>. Please wrap your root component in <ToastProvider>.');\n }\n\n const { addToast, updateToast, dismissToast, dismissAll } = context;\n\n // Base callable toast function\n const toast = useCallback(\n (message, options) => {\n return addToast(message, options);\n },\n [addToast]\n );\n\n // Helper: toast.success\n toast.success = useCallback(\n (message, options = {}) => {\n return addToast(message, { ...options, type: 'success' });\n },\n [addToast]\n );\n\n // Helper: toast.error\n toast.error = useCallback(\n (message, options = {}) => {\n return addToast(message, { ...options, type: 'error' });\n },\n [addToast]\n );\n\n // Helper: toast.warning\n toast.warning = useCallback(\n (message, options = {}) => {\n return addToast(message, { ...options, type: 'warning' });\n },\n [addToast]\n );\n\n // Helper: toast.info\n toast.info = useCallback(\n (message, options = {}) => {\n return addToast(message, { ...options, type: 'info' });\n },\n [addToast]\n );\n\n // Helper: toast.loading\n toast.loading = useCallback(\n (message, options = {}) => {\n return addToast(message, {\n ...options,\n type: 'loading',\n duration: false, // does not auto-dismiss\n showProgressBar: false,\n });\n },\n [addToast]\n );\n\n // Helper: toast.promise\n toast.promise = useCallback(\n (promise, messages, options = {}) => {\n const id = toast.loading(messages.loading || 'Loading...', options);\n\n const p = promise instanceof Promise ? promise : Promise.resolve(promise);\n\n p.then((result) => {\n const successMsg =\n typeof messages.success === 'function' ? messages.success(result) : messages.success || 'Success!';\n updateToast(id, {\n type: 'success',\n message: successMsg,\n duration: options.duration !== undefined ? options.duration : 3000,\n showProgressBar: options.showProgressBar !== undefined ? options.showProgressBar : true,\n ...options.successOptions,\n });\n }).catch((err) => {\n const errorMsg =\n typeof messages.error === 'function' ? messages.error(err) : messages.error || 'Something went wrong';\n updateToast(id, {\n type: 'error',\n message: errorMsg,\n duration: options.duration !== undefined ? options.duration : 4000,\n showProgressBar: options.showProgressBar !== undefined ? options.showProgressBar : true,\n ...options.errorOptions,\n });\n });\n\n return p;\n },\n [toast, updateToast]\n );\n\n // Programmatic dismiss\n toast.dismiss = dismissToast;\n toast.dismissAll = dismissAll;\n toast.update = updateToast;\n\n return toast;\n};\n"],"names":["SuccessIcon","size","className","props","_jsxs","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","children","_jsx","d","points","ErrorIcon","cx","cy","r","x1","y1","x2","y2","WarningIcon","InfoIcon","LoadingIcon","CloseIcon","ToastItem","id","type","title","message","duration","showProgressBar","pauseOnHover","closeButton","icon","action","onClose","onAccept","onCancel","acceptLabel","cancelLabel","swipeable","swipeThreshold","theme","style","onDismiss","isExiting","setIsExiting","useState","exitDirection","setExitDirection","isPaused","setIsPaused","isDragging","setIsDragging","dragOffset","setDragOffset","startXRef","useRef","isPointerDownRef","remainingTimeRef","startTimeRef","timerRef","hasAcceptAction","Boolean","onClick","resolvedAcceptLabel","label","handleDismiss","useCallback","direction","setTimeout","handleAccept","useEffect","Infinity","startTimer","time","current","Date","now","clearTimeout","handleMouseEnter","elapsed","Math","max","handleMouseLeave","handlePointerDown","e","target","closest","button","undefined","clientX","currentTarget","setPointerCapture","pointerId","err","handlePointerMove","currentX","diff","handlePointerUp","releasePointerCapture","handlePointerCancel","renderIcon","React","isValidElement","hasIcon","hasProgressBar","getDragStyle","transform","transition","opacity","abs","isSwipingAccept","isSwipingDismissRight","isSwipingCancel","role","onMouseEnter","onMouseLeave","onPointerDown","onPointerMove","onPointerUp","onPointerCancel","dismissOnClick","animationDuration","animationPlayState","VALID_POSITIONS","ToastContainer","toasts","position","defaultPosition","defaultTheme","newestOnTop","limit","isMounted","window","document","visibleToasts","slice","groupedToasts","reduce","acc","toast","pos","validPos","includes","push","portalContent","Object","entries","map","items","sortedItems","reverse","createPortal","body","ToastContext","createContext","toastCount","generateId","ToastProvider","autoClose","containerClassName","containerStyle","setToasts","toastsRef","addToast","messageOrOptions","maybeOptions","options","newToast","prev","existingIndex","findIndex","t","updated","length","updateToast","updatedOptions","dismissToast","filter","dismissAll","contextValue","useMemo","Provider","value","useToast","context","useContext","Error","success","error","warning","info","loading","promise","messages","p","Promise","resolve","then","result","successMsg","successOptions","catch","errorMsg","errorOptions","dismiss","update"],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
export type ToastType = 'default' | 'success' | 'error' | 'warning' | 'info' | 'loading';
|
|
4
|
+
|
|
5
|
+
export type ToastPosition =
|
|
6
|
+
| 'top-left'
|
|
7
|
+
| 'top-center'
|
|
8
|
+
| 'top-right'
|
|
9
|
+
| 'bottom-left'
|
|
10
|
+
| 'bottom-center'
|
|
11
|
+
| 'bottom-right';
|
|
12
|
+
|
|
13
|
+
export type ToastTheme = 'light' | 'dark' | 'colored';
|
|
14
|
+
|
|
15
|
+
export interface ToastAction {
|
|
16
|
+
label: string;
|
|
17
|
+
onClick: (id: string) => void;
|
|
18
|
+
dismissOnClick?: boolean;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface ToastOptions {
|
|
22
|
+
id?: string;
|
|
23
|
+
type?: ToastType;
|
|
24
|
+
title?: React.ReactNode;
|
|
25
|
+
duration?: number | false;
|
|
26
|
+
showProgressBar?: boolean;
|
|
27
|
+
pauseOnHover?: boolean;
|
|
28
|
+
closeButton?: boolean;
|
|
29
|
+
icon?: React.ReactNode | false;
|
|
30
|
+
action?: ToastAction;
|
|
31
|
+
position?: ToastPosition;
|
|
32
|
+
theme?: ToastTheme;
|
|
33
|
+
className?: string;
|
|
34
|
+
style?: React.CSSProperties;
|
|
35
|
+
onClose?: (id: string) => void;
|
|
36
|
+
swipeable?: boolean;
|
|
37
|
+
swipeThreshold?: number;
|
|
38
|
+
onAccept?: (id: string) => void;
|
|
39
|
+
onCancel?: (id: string) => void;
|
|
40
|
+
acceptLabel?: string;
|
|
41
|
+
cancelLabel?: string;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface ToastItemProps extends ToastOptions {
|
|
45
|
+
id: string;
|
|
46
|
+
message: React.ReactNode;
|
|
47
|
+
onDismiss: (id: string) => void;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export interface ToastContainerProps {
|
|
51
|
+
toasts?: ToastItemProps[];
|
|
52
|
+
onDismiss?: (id: string) => void;
|
|
53
|
+
position?: ToastPosition;
|
|
54
|
+
theme?: ToastTheme;
|
|
55
|
+
newestOnTop?: boolean;
|
|
56
|
+
pauseOnHover?: boolean;
|
|
57
|
+
showProgressBar?: boolean;
|
|
58
|
+
swipeable?: boolean;
|
|
59
|
+
swipeThreshold?: number;
|
|
60
|
+
limit?: number;
|
|
61
|
+
className?: string;
|
|
62
|
+
style?: React.CSSProperties;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export interface ToastProviderProps {
|
|
66
|
+
children: React.ReactNode;
|
|
67
|
+
position?: ToastPosition;
|
|
68
|
+
autoClose?: number | false;
|
|
69
|
+
pauseOnHover?: boolean;
|
|
70
|
+
showProgressBar?: boolean;
|
|
71
|
+
swipeable?: boolean;
|
|
72
|
+
swipeThreshold?: number;
|
|
73
|
+
theme?: ToastTheme;
|
|
74
|
+
limit?: number;
|
|
75
|
+
newestOnTop?: boolean;
|
|
76
|
+
containerClassName?: string;
|
|
77
|
+
containerStyle?: React.CSSProperties;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export interface ToastPromiseOptions {
|
|
81
|
+
loading?: React.ReactNode;
|
|
82
|
+
success?: React.ReactNode | ((data: any) => React.ReactNode);
|
|
83
|
+
error?: React.ReactNode | ((err: any) => React.ReactNode);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export interface ToastPromiseExtraOptions {
|
|
87
|
+
duration?: number;
|
|
88
|
+
showProgressBar?: boolean;
|
|
89
|
+
successOptions?: Partial<ToastOptions>;
|
|
90
|
+
errorOptions?: Partial<ToastOptions>;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export interface ToastMethods {
|
|
94
|
+
(message: React.ReactNode, options?: ToastOptions): string;
|
|
95
|
+
success: (message: React.ReactNode, options?: ToastOptions) => string;
|
|
96
|
+
error: (message: React.ReactNode, options?: ToastOptions) => string;
|
|
97
|
+
warning: (message: React.ReactNode, options?: ToastOptions) => string;
|
|
98
|
+
info: (message: React.ReactNode, options?: ToastOptions) => string;
|
|
99
|
+
loading: (message: React.ReactNode, options?: ToastOptions) => string;
|
|
100
|
+
promise: <T>(
|
|
101
|
+
promise: Promise<T>,
|
|
102
|
+
messages: ToastPromiseOptions,
|
|
103
|
+
options?: ToastPromiseExtraOptions
|
|
104
|
+
) => Promise<T>;
|
|
105
|
+
dismiss: (id: string) => void;
|
|
106
|
+
dismissAll: () => void;
|
|
107
|
+
update: (id: string, options: Partial<ToastOptions> & { message?: React.ReactNode }) => void;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export declare const ToastContext: React.Context<any>;
|
|
111
|
+
|
|
112
|
+
export declare const ToastProvider: React.FC<ToastProviderProps>;
|
|
113
|
+
|
|
114
|
+
export declare const ToastContainer: React.FC<ToastContainerProps>;
|
|
115
|
+
|
|
116
|
+
export declare const ToastItem: React.FC<ToastItemProps>;
|
|
117
|
+
|
|
118
|
+
export declare const useToast: () => ToastMethods;
|
|
119
|
+
|
|
120
|
+
export declare const SuccessIcon: React.FC<React.SVGProps<SVGSVGElement> & { size?: number }>;
|
|
121
|
+
export declare const ErrorIcon: React.FC<React.SVGProps<SVGSVGElement> & { size?: number }>;
|
|
122
|
+
export declare const WarningIcon: React.FC<React.SVGProps<SVGSVGElement> & { size?: number }>;
|
|
123
|
+
export declare const InfoIcon: React.FC<React.SVGProps<SVGSVGElement> & { size?: number }>;
|
|
124
|
+
export declare const LoadingIcon: React.FC<React.SVGProps<SVGSVGElement> & { size?: number }>;
|
|
125
|
+
export declare const CloseIcon: React.FC<React.SVGProps<SVGSVGElement> & { size?: number }>;
|