{"version":3,"file":"static/chunks/4648-1cdda5c23d306fea.js","mappings":"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","sources":["webpack://_N_E/../src/style.css","webpack://_N_E/../src/utils/propValidator.ts","webpack://_N_E/../src/utils/cssTransition.tsx","webpack://_N_E/../src/utils/collapseToast.ts","webpack://_N_E/../src/utils/mapper.ts","webpack://_N_E/../src/components/CloseButton.tsx","webpack://_N_E/../src/components/ProgressBar.tsx","webpack://_N_E/../src/components/ToastContainer.tsx","webpack://_N_E/../src/core/genToastId.ts","webpack://_N_E/../src/core/containerObserver.ts","webpack://_N_E/../src/core/store.ts","webpack://_N_E/../src/core/toast.ts","webpack://_N_E/../src/hooks/useToastContainer.ts","webpack://_N_E/../src/hooks/useToast.ts","webpack://_N_E/../src/hooks/useIsomorphicLayoutEffect.ts","webpack://_N_E/../src/components/Toast.tsx","webpack://_N_E/../src/components/Icons.tsx","webpack://_N_E/../src/components/Transitions.tsx"],"sourcesContent":["\nfunction injectStyle(css) {\n if (!css || typeof document === 'undefined') return\n\n const head = document.head || document.getElementsByTagName('head')[0]\n const style = document.createElement('style')\n style.type = 'text/css'\n \n if(head.firstChild) {\n head.insertBefore(style, head.firstChild)\n } else {\n head.appendChild(style)\n }\n\n if(style.styleSheet) {\n style.styleSheet.cssText = css\n } else {\n style.appendChild(document.createTextNode(css))\n }\n}\ninjectStyle(\":root{--toastify-color-light: #fff;--toastify-color-dark: #121212;--toastify-color-info: #3498db;--toastify-color-success: #07bc0c;--toastify-color-warning: #f1c40f;--toastify-color-error: hsl(6, 78%, 57%);--toastify-color-transparent: rgba(255, 255, 255, .7);--toastify-icon-color-info: var(--toastify-color-info);--toastify-icon-color-success: var(--toastify-color-success);--toastify-icon-color-warning: var(--toastify-color-warning);--toastify-icon-color-error: var(--toastify-color-error);--toastify-container-width: fit-content;--toastify-toast-width: 320px;--toastify-toast-offset: 16px;--toastify-toast-top: max(var(--toastify-toast-offset), env(safe-area-inset-top));--toastify-toast-right: max(var(--toastify-toast-offset), env(safe-area-inset-right));--toastify-toast-left: max(var(--toastify-toast-offset), env(safe-area-inset-left));--toastify-toast-bottom: max(var(--toastify-toast-offset), env(safe-area-inset-bottom));--toastify-toast-background: #fff;--toastify-toast-padding: 14px;--toastify-toast-min-height: 64px;--toastify-toast-max-height: 800px;--toastify-toast-bd-radius: 6px;--toastify-toast-shadow: 0px 4px 12px rgba(0, 0, 0, .1);--toastify-font-family: sans-serif;--toastify-z-index: 9999;--toastify-text-color-light: #757575;--toastify-text-color-dark: #fff;--toastify-text-color-info: #fff;--toastify-text-color-success: #fff;--toastify-text-color-warning: #fff;--toastify-text-color-error: #fff;--toastify-spinner-color: #616161;--toastify-spinner-color-empty-area: #e0e0e0;--toastify-color-progress-light: linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55);--toastify-color-progress-dark: #bb86fc;--toastify-color-progress-info: var(--toastify-color-info);--toastify-color-progress-success: var(--toastify-color-success);--toastify-color-progress-warning: var(--toastify-color-warning);--toastify-color-progress-error: var(--toastify-color-error);--toastify-color-progress-bgo: .2}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translate3d(0,0,var(--toastify-z-index));position:fixed;width:var(--toastify-container-width);box-sizing:border-box;color:#fff;display:flex;flex-direction:column}.Toastify__toast-container--top-left{top:var(--toastify-toast-top);left:var(--toastify-toast-left)}.Toastify__toast-container--top-center{top:var(--toastify-toast-top);left:50%;transform:translate(-50%);align-items:center}.Toastify__toast-container--top-right{top:var(--toastify-toast-top);right:var(--toastify-toast-right);align-items:end}.Toastify__toast-container--bottom-left{bottom:var(--toastify-toast-bottom);left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{bottom:var(--toastify-toast-bottom);left:50%;transform:translate(-50%);align-items:center}.Toastify__toast-container--bottom-right{bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right);align-items:end}.Toastify__toast{--y: 0;position:relative;touch-action:none;width:var(--toastify-toast-width);min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:var(--toastify-toast-padding);border-radius:var(--toastify-toast-bd-radius);box-shadow:var(--toastify-toast-shadow);max-height:var(--toastify-toast-max-height);font-family:var(--toastify-font-family);z-index:0;display:flex;flex:1 auto;align-items:center;word-break:break-word}@media only screen and (max-width: 480px){.Toastify__toast-container{width:100vw;left:env(safe-area-inset-left);margin:0}.Toastify__toast-container--top-left,.Toastify__toast-container--top-center,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translate(0)}.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translate(0)}.Toastify__toast-container--rtl{right:env(safe-area-inset-right);left:initial}.Toastify__toast{--toastify-toast-width: 100%;margin-bottom:0;border-radius:0}}.Toastify__toast-container[data-stacked=true]{width:var(--toastify-toast-width)}.Toastify__toast--stacked{position:absolute;width:100%;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s}.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body,.Toastify__toast--stacked[data-collapsed] .Toastify__close-button{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{content:\\\"\\\";position:absolute;left:0;right:0;height:calc(var(--g) * 1px);bottom:100%}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{content:\\\"\\\";position:absolute;left:0;right:0;bottom:0;height:100%;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-icon{margin-inline-end:10px;width:22px;flex-shrink:0;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.5s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--light,.Toastify__toast-theme--colored.Toastify__toast--default{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;position:absolute;top:6px;right:6px;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;z-index:1}.Toastify__toast--rtl .Toastify__close-button{left:6px;right:unset}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:hover,.Toastify__close-button:focus{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:100%;z-index:1;opacity:.7;transform-origin:left}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:initial;transform-origin:right;border-bottom-left-radius:initial}.Toastify__progress-bar--wrp{position:absolute;overflow:hidden;bottom:0;left:0;width:100%;height:5px;border-bottom-left-radius:var(--toastify-toast-bd-radius);border-bottom-right-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{opacity:var(--toastify-color-progress-bgo);width:100%;height:100%}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--top-left,.Toastify__bounce-enter--bottom-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--top-right,.Toastify__bounce-enter--bottom-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--top-left,.Toastify__bounce-exit--bottom-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--top-right,.Toastify__bounce-exit--bottom-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg);opacity:1}to{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(110%,var(--y),0)}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(-110%,var(--y),0)}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--top-left,.Toastify__slide-enter--bottom-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--top-right,.Toastify__slide-enter--bottom-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--top-left,.Toastify__slide-exit--bottom-left{animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-right,.Toastify__slide-exit--bottom-right{animation-name:Toastify__slideOutRight;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown;animation-timing-function:ease-in;animation-duration:.3s}@keyframes Toastify__spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\\n\");","import { isValidElement } from 'react';\nimport { Id } from '../types';\n\nexport const isNum = (v: any): v is Number => typeof v === 'number' && !isNaN(v);\n\nexport const isStr = (v: any): v is String => typeof v === 'string';\n\nexport const isFn = (v: any): v is Function => typeof v === 'function';\n\nexport const isId = (v: unknown): v is Id => isStr(v) || isNum(v);\n\nexport const parseClassName = (v: any) => (isStr(v) || isFn(v) ? v : null);\n\nexport const getAutoCloseDelay = (toastAutoClose?: false | number, containerAutoClose?: false | number) =>\n toastAutoClose === false || (isNum(toastAutoClose) && toastAutoClose > 0) ? toastAutoClose : containerAutoClose;\n\nexport const canBeRendered = (content: T): boolean =>\n isValidElement(content) || isStr(content) || isFn(content) || isNum(content);\n","import React, { useEffect, useLayoutEffect, useRef } from 'react';\nimport { collapseToast } from './collapseToast';\nimport { Default } from './constant';\n\nimport { ToastTransitionProps } from '../types';\n\nexport interface CSSTransitionProps {\n /**\n * Css class to apply when toast enter\n */\n enter: string;\n\n /**\n * Css class to apply when toast leave\n */\n exit: string;\n\n /**\n * Append current toast position to the classname.\n * If multiple classes are provided, only the last one will get the position\n * For instance `myclass--top-center`...\n * `Default: false`\n */\n appendPosition?: boolean;\n\n /**\n * Collapse toast smoothly when exit animation end\n * `Default: true`\n */\n collapse?: boolean;\n\n /**\n * Collapse transition duration\n * `Default: 300`\n */\n collapseDuration?: number;\n}\n\nconst enum AnimationStep {\n Enter,\n Exit\n}\n\n/**\n * Css animation that just work.\n * You could use animate.css for instance\n *\n *\n * ```\n * cssTransition({\n * enter: \"animate__animated animate__bounceIn\",\n * exit: \"animate__animated animate__bounceOut\"\n * })\n * ```\n *\n */\nexport function cssTransition({\n enter,\n exit,\n appendPosition = false,\n collapse = true,\n collapseDuration = Default.COLLAPSE_DURATION\n}: CSSTransitionProps) {\n return function ToastTransition({\n children,\n position,\n preventExitTransition,\n done,\n nodeRef,\n isIn,\n playToast\n }: ToastTransitionProps) {\n const enterClassName = appendPosition ? `${enter}--${position}` : enter;\n const exitClassName = appendPosition ? `${exit}--${position}` : exit;\n const animationStep = useRef(AnimationStep.Enter);\n\n useLayoutEffect(() => {\n const node = nodeRef.current!;\n const classToToken = enterClassName.split(' ');\n\n const onEntered = (e: AnimationEvent) => {\n if (e.target !== nodeRef.current) return;\n\n playToast();\n node.removeEventListener('animationend', onEntered);\n node.removeEventListener('animationcancel', onEntered);\n if (animationStep.current === AnimationStep.Enter && e.type !== 'animationcancel') {\n node.classList.remove(...classToToken);\n }\n };\n\n const onEnter = () => {\n node.classList.add(...classToToken);\n node.addEventListener('animationend', onEntered);\n node.addEventListener('animationcancel', onEntered);\n };\n\n onEnter();\n }, []);\n\n useEffect(() => {\n const node = nodeRef.current!;\n\n const onExited = () => {\n node.removeEventListener('animationend', onExited);\n collapse ? collapseToast(node, done, collapseDuration) : done();\n };\n\n const onExit = () => {\n animationStep.current = AnimationStep.Exit;\n node.className += ` ${exitClassName}`;\n node.addEventListener('animationend', onExited);\n };\n\n if (!isIn) preventExitTransition ? onExited() : onExit();\n }, [isIn]);\n\n return <>{children};\n };\n}\n","import { Default } from './constant';\n\n/**\n * Used to collapse toast after exit animation\n */\nexport function collapseToast(node: HTMLElement, done: () => void, duration = Default.COLLAPSE_DURATION) {\n const { scrollHeight, style } = node;\n\n requestAnimationFrame(() => {\n style.minHeight = 'initial';\n style.height = scrollHeight + 'px';\n style.transition = `all ${duration}ms`;\n\n requestAnimationFrame(() => {\n style.height = '0';\n style.padding = '0';\n style.margin = '0';\n setTimeout(done, duration as number);\n });\n });\n}\n","import { Toast, ToastContentProps, ToastItem, ToastItemStatus, ToastProps } from '../types';\nimport { cloneElement, isValidElement, ReactElement } from 'react';\nimport { isFn, isStr } from './propValidator';\n\nexport function toToastItem(toast: Toast, status: ToastItemStatus): ToastItem {\n return {\n content: renderContent(toast.content, toast.props),\n containerId: toast.props.containerId,\n id: toast.props.toastId,\n theme: toast.props.theme,\n type: toast.props.type,\n data: toast.props.data || {},\n isLoading: toast.props.isLoading,\n icon: toast.props.icon,\n reason: toast.removalReason,\n status\n };\n}\n\nexport function renderContent(content: unknown, props: ToastProps, isPaused: boolean = false) {\n if (isValidElement(content) && !isStr(content.type)) {\n return cloneElement(content as ReactElement, {\n closeToast: props.closeToast,\n toastProps: props,\n data: props.data,\n isPaused\n });\n } else if (isFn(content)) {\n return content({\n closeToast: props.closeToast,\n toastProps: props,\n data: props.data,\n isPaused\n });\n }\n\n return content;\n}\n","import React from 'react';\nimport { Default } from '../utils';\nimport { CloseToastFunc, Theme, TypeOptions } from '../types';\n\nexport interface CloseButtonProps {\n closeToast: CloseToastFunc;\n type: TypeOptions;\n ariaLabel?: string;\n theme: Theme;\n}\n\nexport function CloseButton({ closeToast, theme, ariaLabel = 'close' }: CloseButtonProps) {\n return (\n {\n e.stopPropagation();\n closeToast(true);\n }}\n aria-label={ariaLabel}\n >\n \n \n \n \n );\n}\n","import React from 'react';\nimport cx from 'clsx';\n\nimport { Default, isFn, Type } from '../utils';\nimport { Theme, ToastClassName, TypeOptions } from '../types';\n\nexport interface ProgressBarProps {\n /**\n * The animation delay which determine when to close the toast\n */\n delay: number;\n\n /**\n * The animation is running or paused\n */\n isRunning: boolean;\n\n /**\n * Func to close the current toast\n */\n closeToast: () => void;\n\n /**\n * Optional type : info, success ...\n */\n type?: TypeOptions;\n\n /**\n * The theme that is currently used\n */\n theme: Theme;\n\n /**\n * Hide or not the progress bar\n */\n hide?: boolean;\n\n /**\n * Optional className\n */\n className?: ToastClassName;\n\n /**\n * Tell whether a controlled progress bar is used\n */\n controlledProgress?: boolean;\n\n /**\n * Controlled progress value\n */\n progress?: number | string;\n\n /**\n * Support rtl content\n */\n rtl?: boolean;\n\n /**\n * Tell if the component is visible on screen or not\n */\n isIn?: boolean;\n}\n\nexport function ProgressBar({\n delay,\n isRunning,\n closeToast,\n type = Type.DEFAULT,\n hide,\n className,\n controlledProgress,\n progress,\n rtl,\n isIn,\n theme\n}: ProgressBarProps) {\n const isHidden = hide || (controlledProgress && progress === 0);\n const style: React.CSSProperties = {\n animationDuration: `${delay}ms`,\n animationPlayState: isRunning ? 'running' : 'paused'\n };\n\n if (controlledProgress) style.transform = `scaleX(${progress})`;\n const defaultClassName = cx(\n `${Default.CSS_NAMESPACE}__progress-bar`,\n controlledProgress\n ? `${Default.CSS_NAMESPACE}__progress-bar--controlled`\n : `${Default.CSS_NAMESPACE}__progress-bar--animated`,\n `${Default.CSS_NAMESPACE}__progress-bar-theme--${theme}`,\n `${Default.CSS_NAMESPACE}__progress-bar--${type}`,\n {\n [`${Default.CSS_NAMESPACE}__progress-bar--rtl`]: rtl\n }\n );\n const classNames = isFn(className)\n ? className({\n rtl,\n type,\n defaultClassName\n })\n : cx(defaultClassName, className);\n\n // 🧐 controlledProgress is derived from progress\n // so if controlledProgress is set\n // it means that this is also the case for progress\n const animationEvent = {\n [controlledProgress && (progress as number)! >= 1 ? 'onTransitionEnd' : 'onAnimationEnd']:\n controlledProgress && (progress as number)! < 1\n ? null\n : () => {\n isIn && closeToast();\n }\n };\n\n // TODO: add aria-valuenow, aria-valuemax, aria-valuemin\n\n return (\n
\n \n \n
\n );\n}\n","import cx from 'clsx';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { toast } from '../core';\nimport { useToastContainer } from '../hooks';\nimport { useIsomorphicLayoutEffect } from '../hooks/useIsomorphicLayoutEffect';\nimport { ToastContainerProps, ToastPosition } from '../types';\nimport { Default, Direction, isFn, parseClassName } from '../utils';\nimport { Toast } from './Toast';\nimport { Bounce } from './Transitions';\n\nexport const defaultProps: ToastContainerProps = {\n position: 'top-right',\n transition: Bounce,\n autoClose: 5000,\n closeButton: true,\n pauseOnHover: true,\n pauseOnFocusLoss: true,\n draggable: 'touch',\n draggablePercent: Default.DRAGGABLE_PERCENT as number,\n draggableDirection: Direction.X,\n role: 'alert',\n theme: 'light',\n 'aria-label': 'Notifications Alt+T',\n hotKeys: e => e.altKey && e.code === 'KeyT'\n};\n\nexport function ToastContainer(props: ToastContainerProps) {\n let containerProps: ToastContainerProps = {\n ...defaultProps,\n ...props\n };\n const stacked = props.stacked;\n const [collapsed, setIsCollapsed] = useState(true);\n const containerRef = useRef(null);\n const { getToastToRender, isToastActive, count } = useToastContainer(containerProps);\n const { className, style, rtl, containerId, hotKeys } = containerProps;\n\n function getClassName(position: ToastPosition) {\n const defaultClassName = cx(\n `${Default.CSS_NAMESPACE}__toast-container`,\n `${Default.CSS_NAMESPACE}__toast-container--${position}`,\n { [`${Default.CSS_NAMESPACE}__toast-container--rtl`]: rtl }\n );\n return isFn(className)\n ? className({\n position,\n rtl,\n defaultClassName\n })\n : cx(defaultClassName, parseClassName(className));\n }\n\n function collapseAll() {\n if (stacked) {\n setIsCollapsed(true);\n toast.play();\n }\n }\n\n useIsomorphicLayoutEffect(() => {\n if (stacked) {\n const nodes = containerRef.current!.querySelectorAll('[data-in=\"true\"]');\n const gap = 12;\n const isTop = containerProps.position?.includes('top');\n let usedHeight = 0;\n let prevS = 0;\n\n Array.from(nodes)\n .reverse()\n .forEach((n, i) => {\n const node = n as HTMLElement;\n node.classList.add(`${Default.CSS_NAMESPACE}__toast--stacked`);\n\n if (i > 0) node.dataset.collapsed = `${collapsed}`;\n\n if (!node.dataset.pos) node.dataset.pos = isTop ? 'top' : 'bot';\n\n const y = usedHeight * (collapsed ? 0.2 : 1) + (collapsed ? 0 : gap * i);\n\n node.style.setProperty('--y', `${isTop ? y : y * -1}px`);\n node.style.setProperty('--g', `${gap}`);\n node.style.setProperty('--s', `${1 - (collapsed ? prevS : 0)}`);\n\n usedHeight += node.offsetHeight;\n prevS += 0.025;\n });\n }\n }, [collapsed, count, stacked]);\n\n useEffect(() => {\n function focusFirst(e: KeyboardEvent) {\n const node = containerRef.current;\n if (hotKeys(e)) {\n (node.querySelector('[tabIndex=\"0\"]') as HTMLElement)?.focus();\n setIsCollapsed(false);\n toast.pause();\n }\n if (e.key === 'Escape' && (document.activeElement === node || node?.contains(document.activeElement))) {\n setIsCollapsed(true);\n toast.play();\n }\n }\n\n document.addEventListener('keydown', focusFirst);\n\n return () => {\n document.removeEventListener('keydown', focusFirst);\n };\n }, [hotKeys]);\n\n return (\n {\n if (stacked) {\n setIsCollapsed(false);\n toast.pause();\n }\n }}\n onMouseLeave={collapseAll}\n aria-live=\"polite\"\n aria-atomic=\"false\"\n aria-relevant=\"additions text\"\n aria-label={containerProps['aria-label']}\n >\n {getToastToRender((position, toastList) => {\n const containerStyle: React.CSSProperties = !toastList.length\n ? { ...style, pointerEvents: 'none' }\n : { ...style };\n\n return (\n \n {toastList.map(({ content, props: toastProps }) => {\n return (\n \n {content}\n \n );\n })}\n \n );\n })}\n \n );\n}\n","let TOAST_ID = 1;\n\nexport const genToastId = () => `${TOAST_ID++}`;\n","import {\n Id,\n NotValidatedToastProps,\n OnChangeCallback,\n Toast,\n ToastContainerProps,\n ToastContent,\n ToastProps\n} from '../types';\nimport { canBeRendered, getAutoCloseDelay, isNum, parseClassName, toToastItem } from '../utils';\n\ntype Notify = () => void;\n\nexport type ContainerObserver = ReturnType;\n\nexport function createContainerObserver(\n id: Id,\n containerProps: ToastContainerProps,\n dispatchChanges: OnChangeCallback\n) {\n let toastKey = 1;\n let toastCount = 0;\n let queue: Toast[] = [];\n let snapshot: Toast[] = [];\n let props = containerProps;\n const toasts = new Map();\n const listeners = new Set();\n\n const observe = (notify: Notify) => {\n listeners.add(notify);\n return () => listeners.delete(notify);\n };\n\n const notify = () => {\n snapshot = Array.from(toasts.values());\n listeners.forEach(cb => cb());\n };\n\n const shouldIgnoreToast = ({ containerId, toastId, updateId }: NotValidatedToastProps) => {\n const containerMismatch = containerId ? containerId !== id : id !== 1;\n const isDuplicate = toasts.has(toastId) && updateId == null;\n\n return containerMismatch || isDuplicate;\n };\n\n const toggle = (v: boolean, id?: Id) => {\n toasts.forEach(t => {\n if (id == null || id === t.props.toastId) t.toggle?.(v);\n });\n };\n\n const markAsRemoved = (v: Toast) => {\n v.props?.onClose?.(v.removalReason);\n v.isActive = false;\n };\n\n const removeToast = (id?: Id) => {\n if (id == null) {\n toasts.forEach(markAsRemoved);\n } else {\n const t = toasts.get(id);\n if (t) markAsRemoved(t);\n }\n notify();\n };\n\n const clearQueue = () => {\n toastCount -= queue.length;\n queue = [];\n };\n\n const addActiveToast = (toast: Toast) => {\n const { toastId, updateId } = toast.props;\n const isNew = updateId == null;\n\n if (toast.staleId) toasts.delete(toast.staleId);\n toast.isActive = true;\n\n toasts.set(toastId, toast);\n notify();\n dispatchChanges(toToastItem(toast, isNew ? 'added' : 'updated'));\n\n if (isNew) toast.props.onOpen?.();\n };\n\n const buildToast = (content: ToastContent, options: NotValidatedToastProps) => {\n if (shouldIgnoreToast(options)) return;\n\n const { toastId, updateId, data, staleId, delay } = options;\n\n const isNotAnUpdate = updateId == null;\n\n if (isNotAnUpdate) toastCount++;\n\n const toastProps = {\n ...props,\n style: props.toastStyle,\n key: toastKey++,\n ...Object.fromEntries(Object.entries(options).filter(([_, v]) => v != null)),\n toastId,\n updateId,\n data,\n isIn: false,\n className: parseClassName(options.className || props.toastClassName),\n progressClassName: parseClassName(options.progressClassName || props.progressClassName),\n autoClose: options.isLoading ? false : getAutoCloseDelay(options.autoClose, props.autoClose),\n closeToast(reason?: true) {\n toasts.get(toastId)!.removalReason = reason;\n removeToast(toastId);\n },\n deleteToast() {\n const toastToRemove = toasts.get(toastId);\n\n if (toastToRemove == null) return;\n\n dispatchChanges(toToastItem(toastToRemove, 'removed'));\n toasts.delete(toastId);\n\n toastCount--;\n if (toastCount < 0) toastCount = 0;\n\n if (queue.length > 0) {\n addActiveToast(queue.shift());\n return;\n }\n\n notify();\n }\n } as ToastProps;\n\n toastProps.closeButton = props.closeButton;\n\n if (options.closeButton === false || canBeRendered(options.closeButton)) {\n toastProps.closeButton = options.closeButton;\n } else if (options.closeButton === true) {\n toastProps.closeButton = canBeRendered(props.closeButton) ? props.closeButton : true;\n }\n\n const activeToast = {\n content,\n props: toastProps,\n staleId\n } as Toast;\n\n // not handling limit + delay by design. Waiting for user feedback first\n if (props.limit && props.limit > 0 && toastCount > props.limit && isNotAnUpdate) {\n queue.push(activeToast);\n } else if (isNum(delay)) {\n setTimeout(() => {\n addActiveToast(activeToast);\n }, delay);\n } else {\n addActiveToast(activeToast);\n }\n };\n\n return {\n id,\n props,\n observe,\n toggle,\n removeToast,\n toasts,\n clearQueue,\n buildToast,\n setProps(p: ToastContainerProps) {\n props = p;\n },\n setToggle: (id: Id, fn: (v: boolean) => void) => {\n const t = toasts.get(id);\n if (t) t.toggle = fn;\n },\n isToastActive: (id: Id) => toasts.get(id)?.isActive,\n getSnapshot: () => snapshot\n };\n}\n","import {\n ClearWaitingQueueParams,\n Id,\n NotValidatedToastProps,\n OnChangeCallback,\n ToastContainerProps,\n ToastContent,\n ToastItem,\n ToastOptions\n} from '../types';\nimport { Default, canBeRendered, isId } from '../utils';\nimport { ContainerObserver, createContainerObserver } from './containerObserver';\n\ninterface EnqueuedToast {\n content: ToastContent;\n options: NotValidatedToastProps;\n}\n\ninterface RemoveParams {\n id?: Id;\n containerId: Id;\n}\n\nconst containers = new Map();\nlet renderQueue: EnqueuedToast[] = [];\nconst listeners = new Set();\n\nconst dispatchChanges = (data: ToastItem) => listeners.forEach(cb => cb(data));\n\nconst hasContainers = () => containers.size > 0;\n\nfunction flushRenderQueue() {\n renderQueue.forEach(v => pushToast(v.content, v.options));\n renderQueue = [];\n}\n\nexport const getToast = (id: Id, { containerId }: ToastOptions) =>\n containers.get(containerId || Default.CONTAINER_ID)?.toasts.get(id);\n\nexport function isToastActive(id: Id, containerId?: Id) {\n if (containerId) return !!containers.get(containerId)?.isToastActive(id);\n\n let isActive = false;\n containers.forEach(c => {\n if (c.isToastActive(id)) isActive = true;\n });\n\n return isActive;\n}\n\nexport function removeToast(params?: Id | RemoveParams) {\n if (!hasContainers()) {\n renderQueue = renderQueue.filter(v => params != null && v.options.toastId !== params);\n return;\n }\n\n if (params == null || isId(params)) {\n containers.forEach(c => {\n c.removeToast(params as Id);\n });\n } else if (params && ('containerId' in params || 'id' in params)) {\n const container = containers.get(params.containerId);\n container\n ? container.removeToast(params.id)\n : containers.forEach(c => {\n c.removeToast(params.id);\n });\n }\n}\n\nexport const clearWaitingQueue = (p: ClearWaitingQueueParams = {}) => {\n containers.forEach(c => {\n if (c.props.limit && (!p.containerId || c.id === p.containerId)) {\n c.clearQueue();\n }\n });\n};\n\nexport function pushToast(content: ToastContent, options: NotValidatedToastProps) {\n if (!canBeRendered(content)) return;\n if (!hasContainers()) renderQueue.push({ content, options });\n\n containers.forEach(c => {\n c.buildToast(content, options);\n });\n}\n\ninterface ToggleToastParams {\n id?: Id;\n containerId?: Id;\n}\n\ntype RegisterToggleOpts = {\n id: Id;\n containerId?: Id;\n fn: (v: boolean) => void;\n};\n\nexport function registerToggle(opts: RegisterToggleOpts) {\n containers.get(opts.containerId || Default.CONTAINER_ID)?.setToggle(opts.id, opts.fn);\n}\n\nexport function toggleToast(v: boolean, opt?: ToggleToastParams) {\n containers.forEach(c => {\n if (opt == null || !opt?.containerId) {\n c.toggle(v, opt?.id);\n } else if (opt?.containerId === c.id) {\n c.toggle(v, opt?.id);\n }\n });\n}\n\nexport function registerContainer(props: ToastContainerProps) {\n const id = props.containerId || Default.CONTAINER_ID;\n return {\n subscribe(notify: () => void) {\n const container = createContainerObserver(id, props, dispatchChanges);\n\n containers.set(id, container);\n const unobserve = container.observe(notify);\n flushRenderQueue();\n\n return () => {\n unobserve();\n containers.delete(id);\n };\n },\n setProps(p: ToastContainerProps) {\n containers.get(id)?.setProps(p);\n },\n getSnapshot() {\n return containers.get(id)?.getSnapshot();\n }\n };\n}\n\nexport function onChange(cb: OnChangeCallback) {\n listeners.add(cb);\n\n return () => {\n listeners.delete(cb);\n };\n}\n","import {\n ClearWaitingQueueFunc,\n Id,\n IdOpts,\n NotValidatedToastProps,\n OnChangeCallback,\n ToastContent,\n ToastOptions,\n ToastProps,\n TypeOptions,\n UpdateOptions\n} from '../types';\nimport { isFn, isNum, isStr, Type } from '../utils';\nimport { genToastId } from './genToastId';\nimport { clearWaitingQueue, getToast, isToastActive, onChange, pushToast, removeToast, toggleToast } from './store';\n\n/**\n * Generate a toastId or use the one provided\n */\nfunction getToastId(options?: ToastOptions) {\n return options && (isStr(options.toastId) || isNum(options.toastId)) ? options.toastId : genToastId();\n}\n\n/**\n * If the container is not mounted, the toast is enqueued\n */\nfunction dispatchToast(content: ToastContent, options: NotValidatedToastProps): Id {\n pushToast(content, options);\n return options.toastId;\n}\n\n/**\n * Merge provided options with the defaults settings and generate the toastId\n */\nfunction mergeOptions(type: string, options?: ToastOptions) {\n return {\n ...options,\n type: (options && options.type) || type,\n toastId: getToastId(options)\n } as NotValidatedToastProps;\n}\n\nfunction createToastByType(type: string) {\n return (content: ToastContent, options?: ToastOptions) =>\n dispatchToast(content, mergeOptions(type, options));\n}\n\nfunction toast(content: ToastContent, options?: ToastOptions) {\n return dispatchToast(content, mergeOptions(Type.DEFAULT, options));\n}\n\ntoast.loading = (content: ToastContent, options?: ToastOptions) =>\n dispatchToast(\n content,\n mergeOptions(Type.DEFAULT, {\n isLoading: true,\n autoClose: false,\n closeOnClick: false,\n closeButton: false,\n draggable: false,\n ...options\n })\n );\n\nexport interface ToastPromiseParams {\n pending?: string | UpdateOptions;\n success?: string | UpdateOptions;\n error?: string | UpdateOptions;\n}\n\nfunction handlePromise(\n promise: Promise | (() => Promise),\n { pending, error, success }: ToastPromiseParams,\n options?: ToastOptions\n) {\n let id: Id;\n\n if (pending) {\n id = isStr(pending)\n ? toast.loading(pending, options)\n : toast.loading(pending.render, {\n ...options,\n ...(pending as ToastOptions)\n } as ToastOptions);\n }\n\n const resetParams = {\n isLoading: null,\n autoClose: null,\n closeOnClick: null,\n closeButton: null,\n draggable: null\n };\n\n const resolver = (type: TypeOptions, input: string | UpdateOptions | undefined, result: T) => {\n // Remove the toast if the input has not been provided. This prevents the toast from hanging\n // in the pending state if a success/error toast has not been provided.\n if (input == null) {\n toast.dismiss(id);\n return;\n }\n\n const baseParams = {\n type,\n ...resetParams,\n ...options,\n data: result\n };\n const params = isStr(input) ? { render: input } : input;\n\n // if the id is set we know that it's an update\n if (id) {\n toast.update(id, {\n ...baseParams,\n ...params\n } as UpdateOptions);\n } else {\n // using toast.promise without loading\n toast(params!.render, {\n ...baseParams,\n ...params\n } as ToastOptions);\n }\n\n return result;\n };\n\n const p = isFn(promise) ? promise() : promise;\n\n //call the resolvers only when needed\n p.then(result => resolver('success', success, result)).catch(err => resolver('error', error, err));\n\n return p;\n}\n\n/**\n * Supply a promise or a function that return a promise and the notification will be updated if it resolves or fails.\n * When the promise is pending a spinner is displayed by default.\n * `toast.promise` returns the provided promise so you can chain it.\n *\n * Simple example:\n *\n * ```\n * toast.promise(MyPromise,\n * {\n * pending: 'Promise is pending',\n * success: 'Promise resolved 👌',\n * error: 'Promise rejected 🤯'\n * }\n * )\n *\n * ```\n *\n * Advanced usage:\n * ```\n * toast.promise<{name: string}, {message: string}, undefined>(\n * resolveWithSomeData,\n * {\n * pending: {\n * render: () => \"I'm loading\",\n * icon: false,\n * },\n * success: {\n * render: ({data}) => `Hello ${data.name}`,\n * icon: \"🟢\",\n * },\n * error: {\n * render({data}){\n * // When the promise reject, data will contains the error\n * return \n * }\n * }\n * }\n * )\n * ```\n */\ntoast.promise = handlePromise;\ntoast.success = createToastByType(Type.SUCCESS);\ntoast.info = createToastByType(Type.INFO);\ntoast.error = createToastByType(Type.ERROR);\ntoast.warning = createToastByType(Type.WARNING);\ntoast.warn = toast.warning;\ntoast.dark = (content: ToastContent, options?: ToastOptions) =>\n dispatchToast(\n content,\n mergeOptions(Type.DEFAULT, {\n theme: 'dark',\n ...options\n })\n );\n\ninterface RemoveParams {\n id?: Id;\n containerId: Id;\n}\n\nfunction dismiss(params: RemoveParams): void;\nfunction dismiss(params?: Id): void;\nfunction dismiss(params?: Id | RemoveParams) {\n removeToast(params);\n}\n\n/**\n * Remove toast programmatically\n *\n * - Remove all toasts:\n * ```\n * toast.dismiss()\n * ```\n *\n * - Remove all toasts that belongs to a given container\n * ```\n * toast.dismiss({ container: \"123\" })\n * ```\n *\n * - Remove toast that has a given id regardless the container\n * ```\n * toast.dismiss({ id: \"123\" })\n * ```\n *\n * - Remove toast that has a given id for a specific container\n * ```\n * toast.dismiss({ id: \"123\", containerId: \"12\" })\n * ```\n */\ntoast.dismiss = dismiss;\n\n/**\n * Clear waiting queue when limit is used\n */\ntoast.clearWaitingQueue = clearWaitingQueue as ClearWaitingQueueFunc;\n\n/**\n * Check if a toast is active\n *\n * - Check regardless the container\n * ```\n * toast.isActive(\"123\")\n * ```\n *\n * - Check in a specific container\n * ```\n * toast.isActive(\"123\", \"containerId\")\n * ```\n */\ntoast.isActive = isToastActive;\n\n/**\n * Update a toast, see https://fkhadra.github.io/react-toastify/update-toast/ for more\n *\n * Example:\n * ```\n * // With a string\n * toast.update(toastId, {\n * render: \"New content\",\n * type: \"info\",\n * });\n *\n * // Or with a component\n * toast.update(toastId, {\n * render: MyComponent\n * });\n *\n * // Or a function\n * toast.update(toastId, {\n * render: () =>
New content
\n * });\n *\n * // Apply a transition\n * toast.update(toastId, {\n * render: \"New Content\",\n * type: toast.TYPE.INFO,\n * transition: Rotate\n * })\n * ```\n */\ntoast.update = (toastId: Id, options: UpdateOptions = {}) => {\n const toast = getToast(toastId, options as ToastOptions);\n\n if (toast) {\n const { props: oldOptions, content: oldContent } = toast;\n\n const nextOptions = {\n delay: 100,\n ...oldOptions,\n ...options,\n toastId: options.toastId || toastId,\n updateId: genToastId()\n } as ToastProps & UpdateOptions;\n\n if (nextOptions.toastId !== toastId) nextOptions.staleId = toastId;\n\n const content = nextOptions.render || oldContent;\n delete nextOptions.render;\n\n dispatchToast(content, nextOptions);\n }\n};\n\n/**\n * Used for controlled progress bar. It will automatically close the notification.\n *\n * If you don't want your notification to be clsoed when the timer is done you should use `toast.update` instead as follow instead:\n *\n * ```\n * toast.update(id, {\n * progress: null, // remove controlled progress bar\n * render: \"ok\",\n * type: \"success\",\n * autoClose: 5000 // set autoClose to the desired value\n * });\n * ```\n */\ntoast.done = (id: Id) => {\n toast.update(id, {\n progress: 1\n });\n};\n\n/**\n * Subscribe to change when a toast is added, removed and updated\n *\n * Usage:\n * ```\n * const unsubscribe = toast.onChange((payload) => {\n * switch (payload.status) {\n * case \"added\":\n * // new toast added\n * break;\n * case \"updated\":\n * // toast updated\n * break;\n * case \"removed\":\n * // toast has been removed\n * break;\n * }\n * })\n * ```\n */\ntoast.onChange = onChange as (cb: OnChangeCallback) => () => void;\n\n/**\n * Play a toast(s) timer progammatically\n *\n * Usage:\n *\n * - Play all toasts\n * ```\n * toast.play()\n * ```\n *\n * - Play all toasts for a given container\n * ```\n * toast.play({ containerId: \"123\" })\n * ```\n *\n * - Play toast that has a given id regardless the container\n * ```\n * toast.play({ id: \"123\" })\n * ```\n *\n * - Play toast that has a given id for a specific container\n * ```\n * toast.play({ id: \"123\", containerId: \"12\" })\n * ```\n */\ntoast.play = (opts?: IdOpts) => toggleToast(true, opts);\n\n/**\n * Pause a toast(s) timer progammatically\n *\n * Usage:\n *\n * - Pause all toasts\n * ```\n * toast.pause()\n * ```\n *\n * - Pause all toasts for a given container\n * ```\n * toast.pause({ containerId: \"123\" })\n * ```\n *\n * - Pause toast that has a given id regardless the container\n * ```\n * toast.pause({ id: \"123\" })\n * ```\n *\n * - Pause toast that has a given id for a specific container\n * ```\n * toast.pause({ id: \"123\", containerId: \"12\" })\n * ```\n */\ntoast.pause = (opts?: IdOpts) => toggleToast(false, opts);\n\nexport { toast };\n","import { useRef, useSyncExternalStore } from 'react';\nimport { isToastActive, registerContainer } from '../core/store';\nimport { Toast, ToastContainerProps, ToastPosition } from '../types';\n\nexport function useToastContainer(props: ToastContainerProps) {\n const { subscribe, getSnapshot, setProps } = useRef(registerContainer(props)).current;\n setProps(props);\n const snapshot = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)?.slice();\n\n function getToastToRender(cb: (position: ToastPosition, toastList: Toast[]) => T) {\n if (!snapshot) return [];\n\n const toRender = new Map();\n\n if (props.newestOnTop) snapshot.reverse();\n\n snapshot.forEach(toast => {\n const { position } = toast.props;\n toRender.has(position) || toRender.set(position, []);\n toRender.get(position)!.push(toast);\n });\n\n return Array.from(toRender, p => cb(p[0], p[1]));\n }\n\n return {\n getToastToRender,\n isToastActive,\n count: snapshot?.length\n };\n}\n","import { DOMAttributes, useEffect, useRef, useState } from 'react';\n\nimport { ToastProps } from '../types';\nimport { Default, Direction } from '../utils';\nimport { registerToggle } from '../core/store';\n\ninterface Draggable {\n start: number;\n delta: number;\n removalDistance: number;\n canCloseOnClick: boolean;\n canDrag: boolean;\n didMove: boolean;\n}\n\nexport function useToast(props: ToastProps) {\n const [isRunning, setIsRunning] = useState(false);\n const [preventExitTransition, setPreventExitTransition] = useState(false);\n const toastRef = useRef(null);\n const drag = useRef({\n start: 0,\n delta: 0,\n removalDistance: 0,\n canCloseOnClick: true,\n canDrag: false,\n didMove: false\n }).current;\n const { autoClose, pauseOnHover, closeToast, onClick, closeOnClick } = props;\n\n registerToggle({\n id: props.toastId,\n containerId: props.containerId,\n fn: setIsRunning\n });\n\n useEffect(() => {\n if (props.pauseOnFocusLoss) {\n bindFocusEvents();\n\n return () => {\n unbindFocusEvents();\n };\n }\n }, [props.pauseOnFocusLoss]);\n\n function bindFocusEvents() {\n if (!document.hasFocus()) pauseToast();\n\n window.addEventListener('focus', playToast);\n window.addEventListener('blur', pauseToast);\n }\n\n function unbindFocusEvents() {\n window.removeEventListener('focus', playToast);\n window.removeEventListener('blur', pauseToast);\n }\n\n function onDragStart(e: React.PointerEvent) {\n if (props.draggable === true || props.draggable === e.pointerType) {\n bindDragEvents();\n const toast = toastRef.current!;\n drag.canCloseOnClick = true;\n drag.canDrag = true;\n toast.style.transition = 'none';\n\n if (props.draggableDirection === Direction.X) {\n drag.start = e.clientX;\n drag.removalDistance = toast.offsetWidth * (props.draggablePercent / 100);\n } else {\n drag.start = e.clientY;\n drag.removalDistance =\n (toast.offsetHeight *\n (props.draggablePercent === Default.DRAGGABLE_PERCENT\n ? props.draggablePercent * 1.5\n : props.draggablePercent)) /\n 100;\n }\n }\n }\n\n function onDragTransitionEnd(e: React.PointerEvent) {\n const { top, bottom, left, right } = toastRef.current!.getBoundingClientRect();\n\n if (\n e.nativeEvent.type !== 'touchend' &&\n props.pauseOnHover &&\n e.clientX >= left &&\n e.clientX <= right &&\n e.clientY >= top &&\n e.clientY <= bottom\n ) {\n pauseToast();\n } else {\n playToast();\n }\n }\n\n function playToast() {\n setIsRunning(true);\n }\n\n function pauseToast() {\n setIsRunning(false);\n }\n\n function bindDragEvents() {\n drag.didMove = false;\n document.addEventListener('pointermove', onDragMove);\n document.addEventListener('pointerup', onDragEnd);\n }\n\n function unbindDragEvents() {\n document.removeEventListener('pointermove', onDragMove);\n document.removeEventListener('pointerup', onDragEnd);\n }\n\n function onDragMove(e: PointerEvent) {\n const toast = toastRef.current!;\n if (drag.canDrag && toast) {\n drag.didMove = true;\n if (isRunning) pauseToast();\n if (props.draggableDirection === Direction.X) {\n drag.delta = e.clientX - drag.start;\n } else {\n drag.delta = e.clientY - drag.start;\n }\n\n // prevent false positive during a toast click\n if (drag.start !== e.clientX) drag.canCloseOnClick = false;\n const translate =\n props.draggableDirection === 'x' ? `${drag.delta}px, var(--y)` : `0, calc(${drag.delta}px + var(--y))`;\n toast.style.transform = `translate3d(${translate},0)`;\n toast.style.opacity = `${1 - Math.abs(drag.delta / drag.removalDistance)}`;\n }\n }\n\n function onDragEnd() {\n unbindDragEvents();\n const toast = toastRef.current!;\n if (drag.canDrag && drag.didMove && toast) {\n drag.canDrag = false;\n if (Math.abs(drag.delta) > drag.removalDistance) {\n setPreventExitTransition(true);\n props.closeToast(true);\n props.collapseAll();\n return;\n }\n\n toast.style.transition = 'transform 0.2s, opacity 0.2s';\n toast.style.removeProperty('transform');\n toast.style.removeProperty('opacity');\n }\n }\n\n const eventHandlers: DOMAttributes = {\n onPointerDown: onDragStart,\n onPointerUp: onDragTransitionEnd\n };\n\n if (autoClose && pauseOnHover) {\n eventHandlers.onMouseEnter = pauseToast;\n\n // progress control is delegated to the container\n if (!props.stacked) eventHandlers.onMouseLeave = playToast;\n }\n\n // prevent toast from closing when user drags the toast\n if (closeOnClick) {\n eventHandlers.onClick = (e: React.MouseEvent) => {\n onClick && onClick(e);\n drag.canCloseOnClick && closeToast(true);\n };\n }\n\n return {\n playToast,\n pauseToast,\n isRunning,\n preventExitTransition,\n toastRef,\n eventHandlers\n };\n}\n","import { useEffect, useLayoutEffect } from 'react';\n\nexport const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n","import cx from 'clsx';\nimport React, { cloneElement, isValidElement } from 'react';\n\nimport { useToast } from '../hooks/useToast';\nimport { ToastProps } from '../types';\nimport { Default, isFn, renderContent } from '../utils';\nimport { CloseButton } from './CloseButton';\nimport { ProgressBar } from './ProgressBar';\nimport { getIcon } from './Icons';\n\nexport const Toast: React.FC = props => {\n const { isRunning, preventExitTransition, toastRef, eventHandlers, playToast } = useToast(props);\n const {\n closeButton,\n children,\n autoClose,\n onClick,\n type,\n hideProgressBar,\n closeToast,\n transition: Transition,\n position,\n className,\n style,\n progressClassName,\n updateId,\n role,\n progress,\n rtl,\n toastId,\n deleteToast,\n isIn,\n isLoading,\n closeOnClick,\n theme,\n ariaLabel\n } = props;\n const defaultClassName = cx(\n `${Default.CSS_NAMESPACE}__toast`,\n `${Default.CSS_NAMESPACE}__toast-theme--${theme}`,\n `${Default.CSS_NAMESPACE}__toast--${type}`,\n {\n [`${Default.CSS_NAMESPACE}__toast--rtl`]: rtl\n },\n {\n [`${Default.CSS_NAMESPACE}__toast--close-on-click`]: closeOnClick\n }\n );\n const cssClasses = isFn(className)\n ? className({\n rtl,\n position,\n type,\n defaultClassName\n })\n : cx(defaultClassName, className);\n const icon = getIcon(props);\n const isProgressControlled = !!progress || !autoClose;\n\n const closeButtonProps = { closeToast, type, theme };\n let Close: React.ReactNode = null;\n\n if (closeButton === false) {\n // hide\n } else if (isFn(closeButton)) {\n Close = closeButton(closeButtonProps);\n } else if (isValidElement(closeButton)) {\n Close = cloneElement(closeButton, closeButtonProps);\n } else {\n Close = CloseButton(closeButtonProps);\n }\n\n return (\n \n \n {icon != null && (\n \n {icon}\n \n )}\n {renderContent(children, props, !isRunning)}\n {Close}\n {!props.customProgressBar && (\n \n )}\n \n \n );\n};\n","import React, { cloneElement, isValidElement } from 'react';\n\nimport { Theme, ToastProps, TypeOptions } from '../types';\nimport { Default, isFn } from '../utils';\n\n/**\n * Used when providing custom icon\n */\nexport interface IconProps {\n theme: Theme;\n type: TypeOptions;\n isLoading?: boolean;\n}\n\nexport type BuiltInIconProps = React.SVGProps & IconProps;\n\nconst Svg: React.FC = ({ theme, type, isLoading, ...rest }) => (\n \n);\n\nfunction Warning(props: BuiltInIconProps) {\n return (\n \n \n \n );\n}\n\nfunction Info(props: BuiltInIconProps) {\n return (\n \n \n \n );\n}\n\nfunction Success(props: BuiltInIconProps) {\n return (\n \n \n \n );\n}\n\nfunction Error(props: BuiltInIconProps) {\n return (\n \n \n \n );\n}\n\nfunction Spinner() {\n return
;\n}\n\nexport const Icons = {\n info: Info,\n warning: Warning,\n success: Success,\n error: Error,\n spinner: Spinner\n};\n\nconst maybeIcon = (type: string): type is keyof typeof Icons => type in Icons;\n\nexport type IconParams = Pick;\n\nexport function getIcon({ theme, type, isLoading, icon }: IconParams) {\n let Icon: React.ReactNode = null;\n const iconProps = { theme, type };\n\n if (icon === false) {\n // hide\n } else if (isFn(icon)) {\n Icon = icon({ ...iconProps, isLoading });\n } else if (isValidElement(icon)) {\n Icon = cloneElement(icon, iconProps);\n } else if (isLoading) {\n Icon = Icons.spinner();\n } else if (maybeIcon(type)) {\n Icon = Icons[type](iconProps);\n }\n\n return Icon;\n}\n","import { cssTransition, Default } from '../utils';\n\nconst getConfig = (animationName: string, appendPosition = false) => ({\n enter: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__${animationName}-enter`,\n exit: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__${animationName}-exit`,\n appendPosition\n});\n\nconst Bounce = cssTransition(getConfig('bounce', true));\n\nconst Slide = cssTransition(getConfig('slide', true));\n\nconst Zoom = cssTransition(getConfig('zoom'));\n\nconst Flip = cssTransition(getConfig('flip'));\n\nexport { Bounce, Slide, Zoom, Flip };\n"],"names":["injectStyle","css","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","isNum","v","isNaN","isStr","isFn","isId","parseClassName","getAutoCloseDelay","toastAutoClose","containerAutoClose","canBeRendered","content","isValidElement","cssTransition","param","enter","exit","appendPosition","collapse","collapseDuration","children","position","preventExitTransition","done","nodeRef","isIn","playToast","enterClassName","concat","exitClassName","animationStep","useRef","useLayoutEffect","node","current","classToToken","split","onEntered","e","target","removeEventListener","classList","remove","add","addEventListener","useEffect","onExited","collapseToast","duration","scrollHeight","requestAnimationFrame","minHeight","height","transition","padding","margin","setTimeout","className","React","toToastItem","toast","status","renderContent","props","containerId","id","toastId","theme","data","isLoading","icon","reason","removalReason","isPaused","cloneElement","closeToast","toastProps","ProgressBar","delay","isRunning","hide","controlledProgress","progress","rtl","isHidden","animationDuration","animationPlayState","transform","defaultClassName","cx","classNames","role","animationEvent","TOAST_ID","genToastId","containers","Map","renderQueue","listeners","Set","dispatchChanges","forEach","cb","hasContainers","size","getToast","_a","get","toasts","isToastActive","isActive","c","pushToast","options","push","buildToast","toggleToast","opt","toggle","dispatchToast","mergeOptions","createToastByType","loading","autoClose","closeOnClick","closeButton","draggable","promise","pending","error","success","render","resetParams","resolver","input","result","dismiss","baseParams","params","update","p","then","catch","err","info","warning","warn","dark","removeToast","filter","container","clearWaitingQueue","limit","clearQueue","oldOptions","oldContent","nextOptions","updateId","staleId","onChange","delete","play","opts","pause","useIsomorphicLayoutEffect","window","Svg","rest","viewBox","width","fill","Icons","d","spinner","maybeIcon","Toast","toastRef","eventHandlers","useToast","setIsRunning","useState","setPreventExitTransition","drag","start","delta","removalDistance","canCloseOnClick","canDrag","didMove","pauseOnHover","onClick","pauseToast","onDragMove","draggableDirection","clientX","clientY","translate","opacity","Math","abs","onDragEnd","collapseAll","removeProperty","registerToggle","fn","setToggle","pauseOnFocusLoss","bindFocusEvents","hasFocus","onPointerDown","pointerType","offsetWidth","draggablePercent","offsetHeight","onPointerUp","top","bottom","left","right","getBoundingClientRect","nativeEvent","onMouseEnter","stacked","onMouseLeave","hideProgressBar","Transition","progressClassName","deleteToast","ariaLabel","cssClasses","getIcon","Icon","iconProps","isProgressControlled","closeButtonProps","Close","CloseButton","stopPropagation","fillRule","tabIndex","ref","customProgressBar","key","getConfig","animationName","Bounce","defaultProps","hotKeys","altKey","code","ToastContainer","containerProps","collapsed","setIsCollapsed","containerRef","getToastToRender","count","useToastContainer","subscribe","getSnapshot","setProps","notify","toastKey","toastCount","queue","snapshot","shouldIgnoreToast","markAsRemoved","addActiveToast","Array","from","values","isDuplicate","has","containerMismatch","_b","onClose","call","t","isNew","set","onOpen","observe","length","isNotAnUpdate","toastStyle","Object","fromEntries","entries","_","toastClassName","toastToRemove","shift","activeToast","unobserve","flushRenderQueue","useSyncExternalStore","slice","toRender","newestOnTop","reverse","nodes","querySelectorAll","isTop","includes","usedHeight","prevS","n","i","dataset","pos","y","gap","setProperty","focusFirst","querySelector","focus","activeElement","contains","toastList","containerStyle","pointerEvents","map"],"sourceRoot":""}