react-toastify-v2 11.0.5 → 11.0.7

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/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  "use client";
2
2
  var Vt=Object.create;var Z=Object.defineProperty;var Qt=Object.getOwnPropertyDescriptor;var Wt=Object.getOwnPropertyNames;var Gt=Object.getPrototypeOf,qt=Object.prototype.hasOwnProperty;var Kt=(t,o)=>{for(var e in o)Z(t,e,{get:o[e],enumerable:!0})},xt=(t,o,e,i)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of Wt(o))!qt.call(t,a)&&a!==e&&Z(t,a,{get:()=>o[a],enumerable:!(i=Qt(o,a))||i.enumerable});return t};var $=(t,o,e)=>(e=t!=null?Vt(Gt(t)):{},xt(o||!t||!t.__esModule?Z(e,"default",{value:t,enumerable:!0}):e,t)),Yt=t=>xt(Z({},"__esModule",{value:!0}),t);var uo={};Kt(uo,{Bounce:()=>mt,Flip:()=>Xt,Icons:()=>K,Slide:()=>Ut,ToastContainer:()=>Ct,Zoom:()=>Ht,collapseToast:()=>J,cssTransition:()=>V,toast:()=>u,useToastContainer:()=>it});module.exports=Yt(uo);function jt(t){if(!t||typeof document=="undefined")return;let o=document.head||document.getElementsByTagName("head")[0],e=document.createElement("style");e.type="text/css",o.firstChild?o.insertBefore(e,o.firstChild):o.appendChild(e),e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}jt(`: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)}}
3
- `);var Et=require("react"),X=t=>typeof t=="number"&&!isNaN(t),R=t=>typeof t=="string",I=t=>typeof t=="function",Pt=t=>R(t)||X(t),Q=t=>R(t)||I(t)?t:null,It=(t,o)=>t===!1||X(t)&&t>0?t:o,W=t=>(0,Et.isValidElement)(t)||R(t)||I(t)||X(t);var z=$(require("react"));function J(t,o,e=300){let{scrollHeight:i,style:a}=t;requestAnimationFrame(()=>{a.minHeight="initial",a.height=i+"px",a.transition=`all ${e}ms`,requestAnimationFrame(()=>{a.height="0",a.padding="0",a.margin="0",setTimeout(o,e)})})}function V({enter:t,exit:o,appendPosition:e=!1,collapse:i=!0,collapseDuration:a=300}){return function({children:s,position:f,preventExitTransition:d,done:T,nodeRef:y,isIn:h,playToast:C}){let x=e?`${t}--${f}`:t,w=e?`${o}--${f}`:o,E=(0,z.useRef)(0);return(0,z.useLayoutEffect)(()=>{let _=y.current,b=x.split(" "),g=n=>{n.target===y.current&&(C(),_.removeEventListener("animationend",g),_.removeEventListener("animationcancel",g),E.current===0&&n.type!=="animationcancel"&&_.classList.remove(...b))};(()=>{_.classList.add(...b),_.addEventListener("animationend",g),_.addEventListener("animationcancel",g)})()},[]),(0,z.useEffect)(()=>{let _=y.current,b=()=>{_.removeEventListener("animationend",b),i?J(_,T,a):T()};h||(d?b():(()=>{E.current=1,_.className+=` ${w}`,_.addEventListener("animationend",b)})())},[h]),z.default.createElement(z.default.Fragment,null,s)}}var tt=require("react");function ut(t,o){return{content:yt(t.content,t.props),containerId:t.props.containerId,id:t.props.toastId,theme:t.props.theme,type:t.props.type,data:t.props.data||{},isLoading:t.props.isLoading,icon:t.props.icon,reason:t.removalReason,status:o}}function yt(t,o,e=!1){return(0,tt.isValidElement)(t)&&!R(t.type)?(0,tt.cloneElement)(t,{closeToast:o.closeToast,toastProps:o,data:o.data,isPaused:e}):I(t)?t({closeToast:o.closeToast,toastProps:o,data:o.data,isPaused:e}):t}var ot=$(require("react"));function St({closeToast:t,theme:o,ariaLabel:e="close"}){return ot.default.createElement("button",{className:`Toastify__close-button Toastify__close-button--${o}`,type:"button",onClick:i=>{i.stopPropagation(),t(!0)},"aria-label":e},ot.default.createElement("svg",{"aria-hidden":"true",viewBox:"0 0 14 16"},ot.default.createElement("path",{fillRule:"evenodd",d:"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z"})))}var et=$(require("react")),Tt=$(require("clsx"));function kt({delay:t,isRunning:o,closeToast:e,type:i="default",hide:a,className:l,controlledProgress:s,progress:f,rtl:d,isIn:T,theme:y}){let h=a||s&&f===0,C={animationDuration:`${t}ms`,animationPlayState:o?"running":"paused"};s&&(C.transform=`scaleX(${f})`);let x=(0,Tt.default)("Toastify__progress-bar",s?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated",`Toastify__progress-bar-theme--${y}`,`Toastify__progress-bar--${i}`,{["Toastify__progress-bar--rtl"]:d}),w=I(l)?l({rtl:d,type:i,defaultClassName:x}):(0,Tt.default)(x,l),E={[s&&f>=1?"onTransitionEnd":"onAnimationEnd"]:s&&f<1?null:()=>{T&&e()}};return et.default.createElement("div",{className:"Toastify__progress-bar--wrp","data-hidden":h},et.default.createElement("div",{className:`Toastify__progress-bar--bg Toastify__progress-bar-theme--${y} Toastify__progress-bar--${i}`}),et.default.createElement("div",{role:"progressbar","aria-hidden":h?"true":"false","aria-label":"notification timer",className:w,style:C,...E}))}var ht=$(require("clsx")),A=$(require("react"));var Jt=1,gt=()=>`${Jt++}`;function At(t,o,e){let i=1,a=0,l=[],s=[],f=o,d=new Map,T=new Set,y=r=>(T.add(r),()=>T.delete(r)),h=()=>{s=Array.from(d.values()),T.forEach(r=>r())},C=({containerId:r,toastId:n,updateId:c})=>{let p=r?r!==t:t!==1,m=d.has(n)&&c==null;return p||m},x=(r,n)=>{d.forEach(c=>{var p;(n==null||n===c.props.toastId)&&((p=c.toggle)==null||p.call(c,r))})},w=r=>{var n,c;(c=(n=r.props)==null?void 0:n.onClose)==null||c.call(n,r.removalReason),r.isActive=!1},E=r=>{if(r==null)d.forEach(w);else{let n=d.get(r);n&&w(n)}h()},_=()=>{a-=l.length,l=[]},b=r=>{var m,v;let{toastId:n,updateId:c}=r.props,p=c==null;r.staleId&&d.delete(r.staleId),r.isActive=!0,d.set(n,r),h(),e(ut(r,p?"added":"updated")),p&&((v=(m=r.props).onOpen)==null||v.call(m))};return{id:t,props:f,observe:y,toggle:x,removeToast:E,toasts:d,clearQueue:_,buildToast:(r,n)=>{if(C(n))return;let{toastId:c,updateId:p,data:m,staleId:v,delay:O}=n,M=p==null;M&&a++;let D={...f,style:f.toastStyle,key:i++,...Object.fromEntries(Object.entries(n).filter(([P,N])=>N!=null)),toastId:c,updateId:p,data:m,isIn:!1,className:Q(n.className||f.toastClassName),progressClassName:Q(n.progressClassName||f.progressClassName),autoClose:n.isLoading?!1:It(n.autoClose,f.autoClose),closeToast(P){d.get(c).removalReason=P,E(c)},deleteToast(){let P=d.get(c);if(P!=null){if(e(ut(P,"removed")),d.delete(c),a--,a<0&&(a=0),l.length>0){b(l.shift());return}h()}}};D.closeButton=f.closeButton,n.closeButton===!1||W(n.closeButton)?D.closeButton=n.closeButton:n.closeButton===!0&&(D.closeButton=W(f.closeButton)?f.closeButton:!0);let L={content:r,props:D,staleId:v};f.limit&&f.limit>0&&a>f.limit&&M?l.push(L):X(O)?setTimeout(()=>{b(L)},O):b(L)},setProps(r){f=r},setToggle:(r,n)=>{let c=d.get(r);c&&(c.toggle=n)},isToastActive:r=>{var n;return(n=d.get(r))==null?void 0:n.isActive},getSnapshot:()=>s}}var S=new Map,G=[],_t=new Set,to=t=>_t.forEach(o=>o(t)),Ot=()=>S.size>0;function oo(){G.forEach(t=>bt(t.content,t.options)),G=[]}var Nt=(t,{containerId:o})=>{var e;return(e=S.get(o||1))==null?void 0:e.toasts.get(t)};function at(t,o){var i;if(o)return!!((i=S.get(o))!=null&&i.isToastActive(t));let e=!1;return S.forEach(a=>{a.isToastActive(t)&&(e=!0)}),e}function wt(t){if(!Ot()){G=G.filter(o=>t!=null&&o.options.toastId!==t);return}if(t==null||Pt(t))S.forEach(o=>{o.removeToast(t)});else if(t&&("containerId"in t||"id"in t)){let o=S.get(t.containerId);o?o.removeToast(t.id):S.forEach(e=>{e.removeToast(t.id)})}}var Dt=(t={})=>{S.forEach(o=>{o.props.limit&&(!t.containerId||o.id===t.containerId)&&o.clearQueue()})};function bt(t,o){W(t)&&(Ot()||G.push({content:t,options:o}),S.forEach(e=>{e.buildToast(t,o)}))}function Lt(t){var o;(o=S.get(t.containerId||1))==null||o.setToggle(t.id,t.fn)}function vt(t,o){S.forEach(e=>{(o==null||!(o!=null&&o.containerId)||(o==null?void 0:o.containerId)===e.id)&&e.toggle(t,o==null?void 0:o.id)})}function Mt(t){let o=t.containerId||1;return{subscribe(e){let i=At(o,t,to);S.set(o,i);let a=i.observe(e);return oo(),()=>{a(),S.delete(o)}},setProps(e){var i;(i=S.get(o))==null||i.setProps(e)},getSnapshot(){var e;return(e=S.get(o))==null?void 0:e.getSnapshot()}}}function $t(t){return _t.add(t),()=>{_t.delete(t)}}function eo(t){return t&&(R(t.toastId)||X(t.toastId))?t.toastId:gt()}function q(t,o){return bt(t,o),o.toastId}function st(t,o){return{...o,type:o&&o.type||t,toastId:eo(o)}}function nt(t){return(o,e)=>q(o,st(t,e))}function u(t,o){return q(t,st("default",o))}u.loading=(t,o)=>q(t,st("default",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...o}));function ao(t,{pending:o,error:e,success:i},a){let l;o&&(l=R(o)?u.loading(o,a):u.loading(o.render,{...a,...o}));let s={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},f=(T,y,h)=>{if(y==null){u.dismiss(l);return}let C={type:T,...s,...a,data:h},x=R(y)?{render:y}:y;return l?u.update(l,{...C,...x}):u(x.render,{...C,...x}),h},d=I(t)?t():t;return d.then(T=>f("success",i,T)).catch(T=>f("error",e,T)),d}u.promise=ao;u.success=nt("success");u.info=nt("info");u.error=nt("error");u.warning=nt("warning");u.warn=u.warning;u.dark=(t,o)=>q(t,st("default",{theme:"dark",...o}));function so(t){wt(t)}u.dismiss=so;u.clearWaitingQueue=Dt;u.isActive=at;u.update=(t,o={})=>{let e=Nt(t,o);if(e){let{props:i,content:a}=e,l={delay:100,...i,...o,toastId:o.toastId||t,updateId:gt()};l.toastId!==t&&(l.staleId=t);let s=l.render||a;delete l.render,q(s,l)}};u.done=t=>{u.update(t,{progress:1})};u.onChange=$t;u.play=t=>vt(!0,t);u.pause=t=>vt(!1,t);var rt=require("react");function it(t){var s;let{subscribe:o,getSnapshot:e,setProps:i}=(0,rt.useRef)(Mt(t)).current;i(t);let a=(s=(0,rt.useSyncExternalStore)(o,e,e))==null?void 0:s.slice();function l(f){if(!a)return[];let d=new Map;return t.newestOnTop&&a.reverse(),a.forEach(T=>{let{position:y}=T.props;d.has(y)||d.set(y,[]),d.get(y).push(T)}),Array.from(d,T=>f(T[0],T[1]))}return{getToastToRender:l,isToastActive:at,count:a==null?void 0:a.length}}var U=require("react");function Rt(t){let[o,e]=(0,U.useState)(!1),[i,a]=(0,U.useState)(!1),l=(0,U.useRef)(null),s=(0,U.useRef)({start:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,didMove:!1}).current,{autoClose:f,pauseOnHover:d,closeToast:T,onClick:y,closeOnClick:h}=t;Lt({id:t.toastId,containerId:t.containerId,fn:e}),(0,U.useEffect)(()=>{if(t.pauseOnFocusLoss)return C(),()=>{x()}},[t.pauseOnFocusLoss]);function C(){document.hasFocus()||b(),window.addEventListener("focus",_),window.addEventListener("blur",b)}function x(){window.removeEventListener("focus",_),window.removeEventListener("blur",b)}function w(m){if(t.draggable===!0||t.draggable===m.pointerType){g();let v=l.current;s.canCloseOnClick=!0,s.canDrag=!0,v.style.transition="none",t.draggableDirection==="x"?(s.start=m.clientX,s.removalDistance=v.offsetWidth*(t.draggablePercent/100)):(s.start=m.clientY,s.removalDistance=v.offsetHeight*(t.draggablePercent===80?t.draggablePercent*1.5:t.draggablePercent)/100)}}function E(m){let{top:v,bottom:O,left:M,right:D}=l.current.getBoundingClientRect();m.nativeEvent.type!=="touchend"&&t.pauseOnHover&&m.clientX>=M&&m.clientX<=D&&m.clientY>=v&&m.clientY<=O?b():_()}function _(){e(!0)}function b(){e(!1)}function g(){s.didMove=!1,document.addEventListener("pointermove",n),document.addEventListener("pointerup",c)}function r(){document.removeEventListener("pointermove",n),document.removeEventListener("pointerup",c)}function n(m){let v=l.current;if(s.canDrag&&v){s.didMove=!0,o&&b(),t.draggableDirection==="x"?s.delta=m.clientX-s.start:s.delta=m.clientY-s.start,s.start!==m.clientX&&(s.canCloseOnClick=!1);let O=t.draggableDirection==="x"?`${s.delta}px, var(--y)`:`0, calc(${s.delta}px + var(--y))`;v.style.transform=`translate3d(${O},0)`,v.style.opacity=`${1-Math.abs(s.delta/s.removalDistance)}`}}function c(){r();let m=l.current;if(s.canDrag&&s.didMove&&m){if(s.canDrag=!1,Math.abs(s.delta)>s.removalDistance){a(!0),t.closeToast(!0),t.collapseAll();return}m.style.transition="transform 0.2s, opacity 0.2s",m.style.removeProperty("transform"),m.style.removeProperty("opacity")}}let p={onPointerDown:w,onPointerUp:E};return f&&d&&(p.onMouseEnter=b,t.stacked||(p.onMouseLeave=_)),h&&(p.onClick=m=>{y&&y(m),s.canCloseOnClick&&T(!0)}),{playToast:_,pauseToast:b,isRunning:o,preventExitTransition:i,toastRef:l,eventHandlers:p}}var lt=require("react"),Bt=typeof window!="undefined"?lt.useLayoutEffect:lt.useEffect;var ft=$(require("clsx")),F=$(require("react"));var k=$(require("react"));var ct=({theme:t,type:o,isLoading:e,...i})=>k.default.createElement("svg",{viewBox:"0 0 24 24",width:"100%",height:"100%",fill:t==="colored"?"currentColor":`var(--toastify-icon-color-${o})`,...i});function ro(t){return k.default.createElement(ct,{...t},k.default.createElement("path",{d:"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z"}))}function io(t){return k.default.createElement(ct,{...t},k.default.createElement("path",{d:"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z"}))}function lo(t){return k.default.createElement(ct,{...t},k.default.createElement("path",{d:"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z"}))}function co(t){return k.default.createElement(ct,{...t},k.default.createElement("path",{d:"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z"}))}function fo(){return k.default.createElement("div",{className:"Toastify__spinner"})}var K={info:io,warning:ro,success:lo,error:co,spinner:fo},mo=t=>t in K;function zt({theme:t,type:o,isLoading:e,icon:i}){let a=null,l={theme:t,type:o};return i===!1||(I(i)?a=i({...l,isLoading:e}):(0,k.isValidElement)(i)?a=(0,k.cloneElement)(i,l):e?a=K.spinner():mo(o)&&(a=K[o](l))),a}var Ft=t=>{let{isRunning:o,preventExitTransition:e,toastRef:i,eventHandlers:a,playToast:l}=Rt(t),{closeButton:s,children:f,autoClose:d,onClick:T,type:y,hideProgressBar:h,closeToast:C,transition:x,position:w,className:E,style:_,progressClassName:b,updateId:g,role:r,progress:n,rtl:c,toastId:p,deleteToast:m,isIn:v,isLoading:O,closeOnClick:M,theme:D,ariaLabel:L}=t,P=(0,ft.default)("Toastify__toast",`Toastify__toast-theme--${D}`,`Toastify__toast--${y}`,{["Toastify__toast--rtl"]:c},{["Toastify__toast--close-on-click"]:M}),N=I(E)?E({rtl:c,position:w,type:y,defaultClassName:P}):(0,ft.default)(P,E),H=zt(t),Y=!!n||!d,pt={closeToast:C,type:y,theme:D},j=null;return s===!1||(I(s)?j=s(pt):(0,F.isValidElement)(s)?j=(0,F.cloneElement)(s,pt):j=St(pt)),F.default.createElement(x,{isIn:v,done:m,position:w,preventExitTransition:e,nodeRef:i,playToast:l},F.default.createElement("div",{id:p,tabIndex:0,onClick:T,"data-in":v,className:N,...a,style:_,ref:i,...v&&{role:r,"aria-label":L}},H!=null&&F.default.createElement("div",{className:(0,ft.default)("Toastify__toast-icon",{["Toastify--animate-icon Toastify__zoom-enter"]:!O})},H),yt(f,t,!o),j,!t.customProgressBar&&F.default.createElement(kt,{...g&&!Y?{key:`p-${g}`}:{},rtl:c,theme:D,delay:d,isRunning:o,isIn:v,closeToast:C,hide:h,type:y,className:b,controlledProgress:Y,progress:n||0})))};var dt=(t,o=!1)=>({enter:`Toastify--animate Toastify__${t}-enter`,exit:`Toastify--animate Toastify__${t}-exit`,appendPosition:o}),mt=V(dt("bounce",!0)),Ut=V(dt("slide",!0)),Ht=V(dt("zoom")),Xt=V(dt("flip"));var po={position:"top-right",transition:mt,autoClose:5e3,closeButton:!0,pauseOnHover:!0,pauseOnFocusLoss:!0,draggable:"touch",draggablePercent:80,draggableDirection:"x",role:"alert",theme:"light","aria-label":"Notifications Alt+T",hotKeys:t=>t.altKey&&t.code==="KeyT"};function Ct(t){let o={...po,...t},e=t.underToastChildren||null,i=t.stacked,[a,l]=(0,A.useState)(!0),s=(0,A.useRef)(null),f=(0,A.useRef)(null),{getToastToRender:d,isToastActive:T,count:y}=it(o),{className:h,style:C,rtl:x,containerId:w,hotKeys:E}=o;function _(g){let r=(0,ht.default)("Toastify__toast-container",`Toastify__toast-container--${g}`,{["Toastify__toast-container--rtl"]:x});return I(h)?h({position:g,rtl:x,defaultClassName:r}):(0,ht.default)(r,Q(h))}function b(){i&&(l(!0),u.play())}return Bt(()=>{var g,r,n;if(i){let c=s.current.querySelectorAll('[data-in="true"]'),p=f==null?void 0:f.current,m=(p==null?void 0:p.getBoundingClientRect().height)||0,v=12,O=(g=o.position)==null?void 0:g.includes("top"),M=0,D=0;if(Array.from(c).reverse().forEach((L,P)=>{let N=L;N.classList.add("Toastify__toast--stacked"),P>0&&(N.dataset.collapsed=`${a}`),N.dataset.pos||(N.dataset.pos=O?"top":"bot");let H=M*(a?.2:1)+(a?0:v*P);!O&&c.length>1&&(H+=m),N.style.setProperty("--y",`${O?H:H*-1}px`),N.style.setProperty("--g",`${v}`),N.style.setProperty("--s",`${1-(a?D:0)}`),M+=N.offsetHeight,D+=.025}),p&&O&&a){let L=M*.2,P=((n=(r=c==null?void 0:c[0])==null?void 0:r.getBoundingClientRect())==null?void 0:n.height)||0;p.style.marginTop=`${L+P}px`}if(p&&O&&!a){let L=Array.from(c).reduce((P,N)=>{let Y=N.offsetHeight;return P+Y+v},0);p.style.marginTop=`${L}px`}}},[a,y,i]),(0,A.useEffect)(()=>{function g(r){var c;let n=s.current;E(r)&&((c=n.querySelector('[tabIndex="0"]'))==null||c.focus(),l(!1),u.pause()),r.key==="Escape"&&(document.activeElement===n||n!=null&&n.contains(document.activeElement))&&(l(!0),u.play())}return document.addEventListener("keydown",g),()=>{document.removeEventListener("keydown",g)}},[E]),A.default.createElement("section",{ref:s,className:"Toastify",id:w,onMouseEnter:()=>{i&&(l(!1),u.pause())},onMouseLeave:b,"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text","aria-label":o["aria-label"]},d((g,r)=>{let n=r.length?{...C}:{...C,pointerEvents:"none"};return A.default.createElement(A.Fragment,{key:`f-${g}`},A.default.createElement("div",{tabIndex:-1,className:_(g),"data-stacked":i,style:n,key:`c-${g}`},r.map(({content:c,props:p})=>A.default.createElement(Ft,{...p,stacked:i,collapseAll:b,isIn:T(p.toastId,p.containerId),key:`t-${p.key}`},c)),A.default.createElement("div",{ref:f,id:"underToastChildren",className:"Toastify__under-toast-children",style:{width:"100%",opacity:r.length>1?1:0,transition:"all 0.3s ease-in-out"}},e)))}))}0&&(module.exports={Bounce,Flip,Icons,Slide,ToastContainer,Zoom,collapseToast,cssTransition,toast,useToastContainer});
3
+ `);var Et=require("react"),X=t=>typeof t=="number"&&!isNaN(t),R=t=>typeof t=="string",I=t=>typeof t=="function",Pt=t=>R(t)||X(t),Q=t=>R(t)||I(t)?t:null,It=(t,o)=>t===!1||X(t)&&t>0?t:o,W=t=>(0,Et.isValidElement)(t)||R(t)||I(t)||X(t);var z=$(require("react"));function J(t,o,e=300){let{scrollHeight:i,style:a}=t;requestAnimationFrame(()=>{a.minHeight="initial",a.height=i+"px",a.transition=`all ${e}ms`,requestAnimationFrame(()=>{a.height="0",a.padding="0",a.margin="0",setTimeout(o,e)})})}function V({enter:t,exit:o,appendPosition:e=!1,collapse:i=!0,collapseDuration:a=300}){return function({children:s,position:c,preventExitTransition:d,done:T,nodeRef:y,isIn:h,playToast:C}){let x=e?`${t}--${c}`:t,w=e?`${o}--${c}`:o,E=(0,z.useRef)(0);return(0,z.useLayoutEffect)(()=>{let _=y.current,b=x.split(" "),g=n=>{n.target===y.current&&(C(),_.removeEventListener("animationend",g),_.removeEventListener("animationcancel",g),E.current===0&&n.type!=="animationcancel"&&_.classList.remove(...b))};(()=>{_.classList.add(...b),_.addEventListener("animationend",g),_.addEventListener("animationcancel",g)})()},[]),(0,z.useEffect)(()=>{let _=y.current,b=()=>{_.removeEventListener("animationend",b),i?J(_,T,a):T()};h||(d?b():(()=>{E.current=1,_.className+=` ${w}`,_.addEventListener("animationend",b)})())},[h]),z.default.createElement(z.default.Fragment,null,s)}}var tt=require("react");function ut(t,o){return{content:yt(t.content,t.props),containerId:t.props.containerId,id:t.props.toastId,theme:t.props.theme,type:t.props.type,data:t.props.data||{},isLoading:t.props.isLoading,icon:t.props.icon,reason:t.removalReason,status:o}}function yt(t,o,e=!1){return(0,tt.isValidElement)(t)&&!R(t.type)?(0,tt.cloneElement)(t,{closeToast:o.closeToast,toastProps:o,data:o.data,isPaused:e}):I(t)?t({closeToast:o.closeToast,toastProps:o,data:o.data,isPaused:e}):t}var ot=$(require("react"));function St({closeToast:t,theme:o,ariaLabel:e="close"}){return ot.default.createElement("button",{className:`Toastify__close-button Toastify__close-button--${o}`,type:"button",onClick:i=>{i.stopPropagation(),t(!0)},"aria-label":e},ot.default.createElement("svg",{"aria-hidden":"true",viewBox:"0 0 14 16"},ot.default.createElement("path",{fillRule:"evenodd",d:"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z"})))}var et=$(require("react")),Tt=$(require("clsx"));function kt({delay:t,isRunning:o,closeToast:e,type:i="default",hide:a,className:l,controlledProgress:s,progress:c,rtl:d,isIn:T,theme:y}){let h=a||s&&c===0,C={animationDuration:`${t}ms`,animationPlayState:o?"running":"paused"};s&&(C.transform=`scaleX(${c})`);let x=(0,Tt.default)("Toastify__progress-bar",s?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated",`Toastify__progress-bar-theme--${y}`,`Toastify__progress-bar--${i}`,{["Toastify__progress-bar--rtl"]:d}),w=I(l)?l({rtl:d,type:i,defaultClassName:x}):(0,Tt.default)(x,l),E={[s&&c>=1?"onTransitionEnd":"onAnimationEnd"]:s&&c<1?null:()=>{T&&e()}};return et.default.createElement("div",{className:"Toastify__progress-bar--wrp","data-hidden":h},et.default.createElement("div",{className:`Toastify__progress-bar--bg Toastify__progress-bar-theme--${y} Toastify__progress-bar--${i}`}),et.default.createElement("div",{role:"progressbar","aria-hidden":h?"true":"false","aria-label":"notification timer",className:w,style:C,...E}))}var ht=$(require("clsx")),A=$(require("react"));var Jt=1,gt=()=>`${Jt++}`;function At(t,o,e){let i=1,a=0,l=[],s=[],c=o,d=new Map,T=new Set,y=r=>(T.add(r),()=>T.delete(r)),h=()=>{s=Array.from(d.values()),T.forEach(r=>r())},C=({containerId:r,toastId:n,updateId:f})=>{let p=r?r!==t:t!==1,m=d.has(n)&&f==null;return p||m},x=(r,n)=>{d.forEach(f=>{var p;(n==null||n===f.props.toastId)&&((p=f.toggle)==null||p.call(f,r))})},w=r=>{var n,f;(f=(n=r.props)==null?void 0:n.onClose)==null||f.call(n,r.removalReason),r.isActive=!1},E=r=>{if(r==null)d.forEach(w);else{let n=d.get(r);n&&w(n)}h()},_=()=>{a-=l.length,l=[]},b=r=>{var m,v;let{toastId:n,updateId:f}=r.props,p=f==null;r.staleId&&d.delete(r.staleId),r.isActive=!0,d.set(n,r),h(),e(ut(r,p?"added":"updated")),p&&((v=(m=r.props).onOpen)==null||v.call(m))};return{id:t,props:c,observe:y,toggle:x,removeToast:E,toasts:d,clearQueue:_,buildToast:(r,n)=>{if(C(n))return;let{toastId:f,updateId:p,data:m,staleId:v,delay:O}=n,M=p==null;M&&a++;let D={...c,style:c.toastStyle,key:i++,...Object.fromEntries(Object.entries(n).filter(([P,N])=>N!=null)),toastId:f,updateId:p,data:m,isIn:!1,className:Q(n.className||c.toastClassName),progressClassName:Q(n.progressClassName||c.progressClassName),autoClose:n.isLoading?!1:It(n.autoClose,c.autoClose),closeToast(P){d.get(f).removalReason=P,E(f)},deleteToast(){let P=d.get(f);if(P!=null){if(e(ut(P,"removed")),d.delete(f),a--,a<0&&(a=0),l.length>0){b(l.shift());return}h()}}};D.closeButton=c.closeButton,n.closeButton===!1||W(n.closeButton)?D.closeButton=n.closeButton:n.closeButton===!0&&(D.closeButton=W(c.closeButton)?c.closeButton:!0);let L={content:r,props:D,staleId:v};c.limit&&c.limit>0&&a>c.limit&&M?l.push(L):X(O)?setTimeout(()=>{b(L)},O):b(L)},setProps(r){c=r},setToggle:(r,n)=>{let f=d.get(r);f&&(f.toggle=n)},isToastActive:r=>{var n;return(n=d.get(r))==null?void 0:n.isActive},getSnapshot:()=>s}}var S=new Map,G=[],_t=new Set,to=t=>_t.forEach(o=>o(t)),Ot=()=>S.size>0;function oo(){G.forEach(t=>bt(t.content,t.options)),G=[]}var Nt=(t,{containerId:o})=>{var e;return(e=S.get(o||1))==null?void 0:e.toasts.get(t)};function at(t,o){var i;if(o)return!!((i=S.get(o))!=null&&i.isToastActive(t));let e=!1;return S.forEach(a=>{a.isToastActive(t)&&(e=!0)}),e}function wt(t){if(!Ot()){G=G.filter(o=>t!=null&&o.options.toastId!==t);return}if(t==null||Pt(t))S.forEach(o=>{o.removeToast(t)});else if(t&&("containerId"in t||"id"in t)){let o=S.get(t.containerId);o?o.removeToast(t.id):S.forEach(e=>{e.removeToast(t.id)})}}var Dt=(t={})=>{S.forEach(o=>{o.props.limit&&(!t.containerId||o.id===t.containerId)&&o.clearQueue()})};function bt(t,o){W(t)&&(Ot()||G.push({content:t,options:o}),S.forEach(e=>{e.buildToast(t,o)}))}function Lt(t){var o;(o=S.get(t.containerId||1))==null||o.setToggle(t.id,t.fn)}function vt(t,o){S.forEach(e=>{(o==null||!(o!=null&&o.containerId)||(o==null?void 0:o.containerId)===e.id)&&e.toggle(t,o==null?void 0:o.id)})}function Mt(t){let o=t.containerId||1;return{subscribe(e){let i=At(o,t,to);S.set(o,i);let a=i.observe(e);return oo(),()=>{a(),S.delete(o)}},setProps(e){var i;(i=S.get(o))==null||i.setProps(e)},getSnapshot(){var e;return(e=S.get(o))==null?void 0:e.getSnapshot()}}}function $t(t){return _t.add(t),()=>{_t.delete(t)}}function eo(t){return t&&(R(t.toastId)||X(t.toastId))?t.toastId:gt()}function q(t,o){return bt(t,o),o.toastId}function st(t,o){return{...o,type:o&&o.type||t,toastId:eo(o)}}function nt(t){return(o,e)=>q(o,st(t,e))}function u(t,o){return q(t,st("default",o))}u.loading=(t,o)=>q(t,st("default",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...o}));function ao(t,{pending:o,error:e,success:i},a){let l;o&&(l=R(o)?u.loading(o,a):u.loading(o.render,{...a,...o}));let s={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},c=(T,y,h)=>{if(y==null){u.dismiss(l);return}let C={type:T,...s,...a,data:h},x=R(y)?{render:y}:y;return l?u.update(l,{...C,...x}):u(x.render,{...C,...x}),h},d=I(t)?t():t;return d.then(T=>c("success",i,T)).catch(T=>c("error",e,T)),d}u.promise=ao;u.success=nt("success");u.info=nt("info");u.error=nt("error");u.warning=nt("warning");u.warn=u.warning;u.dark=(t,o)=>q(t,st("default",{theme:"dark",...o}));function so(t){wt(t)}u.dismiss=so;u.clearWaitingQueue=Dt;u.isActive=at;u.update=(t,o={})=>{let e=Nt(t,o);if(e){let{props:i,content:a}=e,l={delay:100,...i,...o,toastId:o.toastId||t,updateId:gt()};l.toastId!==t&&(l.staleId=t);let s=l.render||a;delete l.render,q(s,l)}};u.done=t=>{u.update(t,{progress:1})};u.onChange=$t;u.play=t=>vt(!0,t);u.pause=t=>vt(!1,t);var rt=require("react");function it(t){var s;let{subscribe:o,getSnapshot:e,setProps:i}=(0,rt.useRef)(Mt(t)).current;i(t);let a=(s=(0,rt.useSyncExternalStore)(o,e,e))==null?void 0:s.slice();function l(c){if(!a)return[];let d=new Map;return t.newestOnTop&&a.reverse(),a.forEach(T=>{let{position:y}=T.props;d.has(y)||d.set(y,[]),d.get(y).push(T)}),Array.from(d,T=>c(T[0],T[1]))}return{getToastToRender:l,isToastActive:at,count:a==null?void 0:a.length}}var U=require("react");function Rt(t){let[o,e]=(0,U.useState)(!1),[i,a]=(0,U.useState)(!1),l=(0,U.useRef)(null),s=(0,U.useRef)({start:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,didMove:!1}).current,{autoClose:c,pauseOnHover:d,closeToast:T,onClick:y,closeOnClick:h}=t;Lt({id:t.toastId,containerId:t.containerId,fn:e}),(0,U.useEffect)(()=>{if(t.pauseOnFocusLoss)return C(),()=>{x()}},[t.pauseOnFocusLoss]);function C(){document.hasFocus()||b(),window.addEventListener("focus",_),window.addEventListener("blur",b)}function x(){window.removeEventListener("focus",_),window.removeEventListener("blur",b)}function w(m){if(t.draggable===!0||t.draggable===m.pointerType){g();let v=l.current;s.canCloseOnClick=!0,s.canDrag=!0,v.style.transition="none",t.draggableDirection==="x"?(s.start=m.clientX,s.removalDistance=v.offsetWidth*(t.draggablePercent/100)):(s.start=m.clientY,s.removalDistance=v.offsetHeight*(t.draggablePercent===80?t.draggablePercent*1.5:t.draggablePercent)/100)}}function E(m){let{top:v,bottom:O,left:M,right:D}=l.current.getBoundingClientRect();m.nativeEvent.type!=="touchend"&&t.pauseOnHover&&m.clientX>=M&&m.clientX<=D&&m.clientY>=v&&m.clientY<=O?b():_()}function _(){e(!0)}function b(){e(!1)}function g(){s.didMove=!1,document.addEventListener("pointermove",n),document.addEventListener("pointerup",f)}function r(){document.removeEventListener("pointermove",n),document.removeEventListener("pointerup",f)}function n(m){let v=l.current;if(s.canDrag&&v){s.didMove=!0,o&&b(),t.draggableDirection==="x"?s.delta=m.clientX-s.start:s.delta=m.clientY-s.start,s.start!==m.clientX&&(s.canCloseOnClick=!1);let O=t.draggableDirection==="x"?`${s.delta}px, var(--y)`:`0, calc(${s.delta}px + var(--y))`;v.style.transform=`translate3d(${O},0)`,v.style.opacity=`${1-Math.abs(s.delta/s.removalDistance)}`}}function f(){r();let m=l.current;if(s.canDrag&&s.didMove&&m){if(s.canDrag=!1,Math.abs(s.delta)>s.removalDistance){a(!0),t.closeToast(!0),t.collapseAll();return}m.style.transition="transform 0.2s, opacity 0.2s",m.style.removeProperty("transform"),m.style.removeProperty("opacity")}}let p={onPointerDown:w,onPointerUp:E};return c&&d&&(p.onMouseEnter=b,t.stacked||(p.onMouseLeave=_)),h&&(p.onClick=m=>{y&&y(m),s.canCloseOnClick&&T(!0)}),{playToast:_,pauseToast:b,isRunning:o,preventExitTransition:i,toastRef:l,eventHandlers:p}}var lt=require("react"),Bt=typeof window!="undefined"?lt.useLayoutEffect:lt.useEffect;var ft=$(require("clsx")),F=$(require("react"));var k=$(require("react"));var ct=({theme:t,type:o,isLoading:e,...i})=>k.default.createElement("svg",{viewBox:"0 0 24 24",width:"100%",height:"100%",fill:t==="colored"?"currentColor":`var(--toastify-icon-color-${o})`,...i});function ro(t){return k.default.createElement(ct,{...t},k.default.createElement("path",{d:"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z"}))}function io(t){return k.default.createElement(ct,{...t},k.default.createElement("path",{d:"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z"}))}function lo(t){return k.default.createElement(ct,{...t},k.default.createElement("path",{d:"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z"}))}function co(t){return k.default.createElement(ct,{...t},k.default.createElement("path",{d:"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z"}))}function fo(){return k.default.createElement("div",{className:"Toastify__spinner"})}var K={info:io,warning:ro,success:lo,error:co,spinner:fo},mo=t=>t in K;function zt({theme:t,type:o,isLoading:e,icon:i}){let a=null,l={theme:t,type:o};return i===!1||(I(i)?a=i({...l,isLoading:e}):(0,k.isValidElement)(i)?a=(0,k.cloneElement)(i,l):e?a=K.spinner():mo(o)&&(a=K[o](l))),a}var Ft=t=>{let{isRunning:o,preventExitTransition:e,toastRef:i,eventHandlers:a,playToast:l}=Rt(t),{closeButton:s,children:c,autoClose:d,onClick:T,type:y,hideProgressBar:h,closeToast:C,transition:x,position:w,className:E,style:_,progressClassName:b,updateId:g,role:r,progress:n,rtl:f,toastId:p,deleteToast:m,isIn:v,isLoading:O,closeOnClick:M,theme:D,ariaLabel:L}=t,P=(0,ft.default)("Toastify__toast",`Toastify__toast-theme--${D}`,`Toastify__toast--${y}`,{["Toastify__toast--rtl"]:f},{["Toastify__toast--close-on-click"]:M}),N=I(E)?E({rtl:f,position:w,type:y,defaultClassName:P}):(0,ft.default)(P,E),H=zt(t),Y=!!n||!d,pt={closeToast:C,type:y,theme:D},j=null;return s===!1||(I(s)?j=s(pt):(0,F.isValidElement)(s)?j=(0,F.cloneElement)(s,pt):j=St(pt)),F.default.createElement(x,{isIn:v,done:m,position:w,preventExitTransition:e,nodeRef:i,playToast:l},F.default.createElement("div",{id:p,tabIndex:0,onClick:T,"data-in":v,className:N,...a,style:_,ref:i,...v&&{role:r,"aria-label":L}},H!=null&&F.default.createElement("div",{className:(0,ft.default)("Toastify__toast-icon",{["Toastify--animate-icon Toastify__zoom-enter"]:!O})},H),yt(c,t,!o),j,!t.customProgressBar&&F.default.createElement(kt,{...g&&!Y?{key:`p-${g}`}:{},rtl:f,theme:D,delay:d,isRunning:o,isIn:v,closeToast:C,hide:h,type:y,className:b,controlledProgress:Y,progress:n||0})))};var dt=(t,o=!1)=>({enter:`Toastify--animate Toastify__${t}-enter`,exit:`Toastify--animate Toastify__${t}-exit`,appendPosition:o}),mt=V(dt("bounce",!0)),Ut=V(dt("slide",!0)),Ht=V(dt("zoom")),Xt=V(dt("flip"));var po={position:"top-right",transition:mt,autoClose:5e3,closeButton:!0,pauseOnHover:!0,pauseOnFocusLoss:!0,draggable:"touch",draggablePercent:80,draggableDirection:"x",role:"alert",theme:"light","aria-label":"Notifications Alt+T",hotKeys:t=>t.altKey&&t.code==="KeyT"};function Ct(t){let o={...po,...t},e=t.underToastChildren||null,i=t.stacked,[a,l]=(0,A.useState)(!0),s=(0,A.useRef)(null),c=(0,A.useRef)(null),{getToastToRender:d,isToastActive:T,count:y}=it(o),{className:h,style:C,rtl:x,containerId:w,hotKeys:E}=o;function _(g){let r=(0,ht.default)("Toastify__toast-container",`Toastify__toast-container--${g}`,{["Toastify__toast-container--rtl"]:x});return I(h)?h({position:g,rtl:x,defaultClassName:r}):(0,ht.default)(r,Q(h))}function b(){i&&(l(!0),u.play())}return Bt(()=>{var g,r,n;if(i){let f=s.current.querySelectorAll('[data-in="true"]'),p=c==null?void 0:c.current,m=(p==null?void 0:p.getBoundingClientRect().height)||0,v=12,O=(g=o.position)==null?void 0:g.includes("top"),M=0,D=0;if(Array.from(f).reverse().forEach((L,P)=>{let N=L;N.classList.add("Toastify__toast--stacked"),P>0&&(N.dataset.collapsed=`${a}`),N.dataset.pos||(N.dataset.pos=O?"top":"bot");let H=M*(a?.2:1)+(a?0:v*P);!O&&f.length>1&&(H+=m),N.style.setProperty("--y",`${O?H:H*-1}px`),N.style.setProperty("--g",`${v}`),N.style.setProperty("--s",`${1-(a?D:0)}`),M+=N.offsetHeight,D+=.025}),p&&O&&a){let L=M*.2,P=((n=(r=f==null?void 0:f[0])==null?void 0:r.getBoundingClientRect())==null?void 0:n.height)||0;p.style.marginTop=`${L+P}px`}if(p&&O&&!a){let L=Array.from(f).reduce((P,N)=>{let Y=N.offsetHeight;return P+Y+v},0);p.style.marginTop=`${L}px`}}},[a,y,i]),(0,A.useEffect)(()=>{function g(r){var f;let n=s.current;E(r)&&((f=n.querySelector('[tabIndex="0"]'))==null||f.focus(),l(!1),u.pause()),r.key==="Escape"&&(document.activeElement===n||n!=null&&n.contains(document.activeElement))&&(l(!0),u.play())}return document.addEventListener("keydown",g),()=>{document.removeEventListener("keydown",g)}},[E]),A.default.createElement("section",{ref:s,className:"Toastify",id:w,onMouseEnter:g=>{c!=null&&c.current&&c.current.contains(g.target)||i&&(l(!1),u.pause())},onMouseLeave:b,"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text","aria-label":o["aria-label"]},d((g,r)=>{let n=r.length?{...C}:{...C,pointerEvents:"none"};return A.default.createElement(A.Fragment,{key:`f-${g}`},A.default.createElement("div",{tabIndex:-1,className:_(g),"data-stacked":i,style:n,key:`c-${g}`},r.map(({content:f,props:p})=>A.default.createElement(Ft,{...p,stacked:i,collapseAll:b,isIn:T(p.toastId,p.containerId),key:`t-${p.key}`},f)),A.default.createElement("div",{ref:c,id:"underToastChildren",className:"Toastify__under-toast-children",style:{width:"100%",opacity:r.length>1?1:0,transition:"all 0.3s ease-in-out"}},e)))}))}0&&(module.exports={Bounce,Flip,Icons,Slide,ToastContainer,Zoom,collapseToast,cssTransition,toast,useToastContainer});
4
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/style.css","../src/utils/propValidator.ts","../src/utils/cssTransition.tsx","../src/utils/collapseToast.ts","../src/utils/mapper.ts","../src/components/CloseButton.tsx","../src/components/ProgressBar.tsx","../src/components/ToastContainer.tsx","../src/core/genToastId.ts","../src/core/containerObserver.ts","../src/core/store.ts","../src/core/toast.ts","../src/hooks/useToastContainer.ts","../src/hooks/useToast.ts","../src/hooks/useIsomorphicLayoutEffect.ts","../src/components/Toast.tsx","../src/components/Icons.tsx","../src/components/Transitions.tsx"],"sourcesContent":["import './style.css';\n\nexport { cssTransition, collapseToast } from './utils';\nexport { ToastContainer, Bounce, Flip, Slide, Zoom, Icons } from './components';\nexport type { IconProps, CloseButton } from './components';\nexport type { ToastPromiseParams } from './core';\nexport { toast } from './core';\nexport { useToastContainer } from './hooks';\nexport type {\n TypeOptions,\n Theme,\n ToastPosition,\n ToastContentProps,\n ToastContent,\n ToastTransition,\n ToastClassName,\n ClearWaitingQueueParams,\n DraggableDirection,\n ToastOptions,\n UpdateOptions,\n ToastContainerProps,\n ToastTransitionProps,\n Id,\n ToastItem,\n ClearWaitingQueueFunc,\n OnChangeCallback,\n ToastIcon\n} from './types';\nexport type { CloseButtonProps } from './components/CloseButton';\n","\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 = <T>(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<ToastContentProps>(content as ReactElement<any>, {\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 <button\n className={`${Default.CSS_NAMESPACE}__close-button ${Default.CSS_NAMESPACE}__close-button--${theme}`}\n type=\"button\"\n onClick={e => {\n e.stopPropagation();\n closeToast(true);\n }}\n aria-label={ariaLabel}\n >\n <svg aria-hidden=\"true\" viewBox=\"0 0 14 16\">\n <path\n fillRule=\"evenodd\"\n d=\"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z\"\n />\n </svg>\n </button>\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 <div className={`${Default.CSS_NAMESPACE}__progress-bar--wrp`} data-hidden={isHidden}>\n <div\n className={`${Default.CSS_NAMESPACE}__progress-bar--bg ${Default.CSS_NAMESPACE}__progress-bar-theme--${theme} ${Default.CSS_NAMESPACE}__progress-bar--${type}`}\n />\n <div\n role=\"progressbar\"\n aria-hidden={isHidden ? 'true' : 'false'}\n aria-label=\"notification timer\"\n className={classNames}\n style={style}\n {...animationEvent}\n />\n </div>\n );\n}\n","import cx from 'clsx';\nimport React, { Fragment, 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 underToastChildren = props.underToastChildren || null;\n const stacked = props.stacked;\n const [collapsed, setIsCollapsed] = useState(true);\n const containerRef = useRef<HTMLDivElement>(null);\n const underToastChildrenRef = useRef<HTMLDivElement>(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 underToastChildren = underToastChildrenRef?.current;\n const heightOffset = underToastChildren?.getBoundingClientRect().height || 0;\n\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 let y = usedHeight * (collapsed ? 0.2 : 1) + (collapsed ? 0 : gap * i);\n if (!isTop && nodes.length > 1) {\n y += heightOffset;\n }\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 if (underToastChildren && isTop && collapsed) {\n const nodeOffset = usedHeight * 0.2;\n\n const firstNodeheight = nodes?.[0]?.getBoundingClientRect()?.height || 0;\n underToastChildren.style.marginTop = `${nodeOffset + firstNodeheight}px`;\n }\n\n if (underToastChildren && isTop && !collapsed) {\n const heightOfAllNodes = Array.from(nodes).reduce((acc, n) => {\n const node = n as HTMLElement;\n const nodeHeight = node.offsetHeight;\n return acc + nodeHeight + gap;\n }, 0);\n underToastChildren.style.marginTop = `${heightOfAllNodes}px`;\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 <section\n ref={containerRef}\n className={Default.CSS_NAMESPACE as string}\n id={containerId as string}\n onMouseEnter={() => {\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 <Fragment key={`f-${position}`}>\n <div\n tabIndex={-1}\n className={getClassName(position)}\n data-stacked={stacked}\n style={containerStyle}\n key={`c-${position}`}\n >\n {toastList.map(({ content, props: toastProps }) => {\n return (\n <Toast\n {...toastProps}\n stacked={stacked}\n collapseAll={collapseAll}\n isIn={isToastActive(toastProps.toastId, toastProps.containerId)}\n key={`t-${toastProps.key}`}\n >\n {content}\n </Toast>\n );\n })}\n\n <div\n ref={underToastChildrenRef}\n id=\"underToastChildren\"\n className={`${Default.CSS_NAMESPACE}__under-toast-children`}\n style={{\n width: '100%',\n opacity: toastList.length > 1 ? 1 : 0,\n transition: 'all 0.3s ease-in-out'\n }}\n >\n {underToastChildren}\n </div>\n </div>\n </Fragment>\n );\n })}\n </section>\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<typeof createContainerObserver>;\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<Id, Toast>();\n const listeners = new Set<Notify>();\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 = <TData = unknown>(content: ToastContent<TData>, 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<any>;\n options: NotValidatedToastProps;\n}\n\ninterface RemoveParams {\n id?: Id;\n containerId: Id;\n}\n\nconst containers = new Map<Id, ContainerObserver>();\nlet renderQueue: EnqueuedToast[] = [];\nconst listeners = new Set<OnChangeCallback>();\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<TData>(content: ToastContent<TData>, 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<TData>(options?: ToastOptions<TData>) {\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<TData>(content: ToastContent<TData>, 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<TData>(type: string, options?: ToastOptions<TData>) {\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 <TData = unknown>(content: ToastContent<TData>, options?: ToastOptions<TData>) =>\n dispatchToast(content, mergeOptions(type, options));\n}\n\nfunction toast<TData = unknown>(content: ToastContent<TData>, options?: ToastOptions<TData>) {\n return dispatchToast(content, mergeOptions(Type.DEFAULT, options));\n}\n\ntoast.loading = <TData = unknown>(content: ToastContent<TData>, options?: ToastOptions<TData>) =>\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<TData = unknown, TError = unknown, TPending = unknown> {\n pending?: string | UpdateOptions<TPending>;\n success?: string | UpdateOptions<TData>;\n error?: string | UpdateOptions<TError>;\n}\n\nfunction handlePromise<TData = unknown, TError = unknown, TPending = unknown>(\n promise: Promise<TData> | (() => Promise<TData>),\n { pending, error, success }: ToastPromiseParams<TData, TError, TPending>,\n options?: ToastOptions<TData>\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<TPending>);\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 = <T>(type: TypeOptions, input: string | UpdateOptions<T> | 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<T>);\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 <MyErrorComponent message={data.message} />\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-v2/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: () => <div>New content</div>\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 = <TData = unknown>(toastId: Id, options: UpdateOptions<TData> = {}) => {\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<T>(cb: (position: ToastPosition, toastList: Toast[]) => T) {\n if (!snapshot) return [];\n\n const toRender = new Map<ToastPosition, Toast[]>();\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<HTMLDivElement>(null);\n const drag = useRef<Draggable>({\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<HTMLElement>) {\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<HTMLElement>) {\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<HTMLElement> = {\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<ToastProps> = 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 <Transition\n isIn={isIn}\n done={deleteToast}\n position={position}\n preventExitTransition={preventExitTransition}\n nodeRef={toastRef}\n playToast={playToast}\n >\n <div\n id={toastId as string}\n tabIndex={0}\n onClick={onClick}\n data-in={isIn}\n className={cssClasses}\n {...eventHandlers}\n style={style}\n ref={toastRef}\n {...(isIn && { role: role, 'aria-label': ariaLabel })}\n >\n {icon != null && (\n <div\n className={cx(`${Default.CSS_NAMESPACE}__toast-icon`, {\n [`${Default.CSS_NAMESPACE}--animate-icon ${Default.CSS_NAMESPACE}__zoom-enter`]: !isLoading\n })}\n >\n {icon}\n </div>\n )}\n {renderContent(children, props, !isRunning)}\n {Close}\n {!props.customProgressBar && (\n <ProgressBar\n {...(updateId && !isProgressControlled ? { key: `p-${updateId}` } : {})}\n rtl={rtl}\n theme={theme}\n delay={autoClose as number}\n isRunning={isRunning}\n isIn={isIn}\n closeToast={closeToast}\n hide={hideProgressBar}\n type={type}\n className={progressClassName}\n controlledProgress={isProgressControlled}\n progress={progress || 0}\n />\n )}\n </div>\n </Transition>\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<SVGSVGElement> & IconProps;\n\nconst Svg: React.FC<BuiltInIconProps> = ({ theme, type, isLoading, ...rest }) => (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"100%\"\n height=\"100%\"\n fill={theme === 'colored' ? 'currentColor' : `var(--toastify-icon-color-${type})`}\n {...rest}\n />\n);\n\nfunction Warning(props: BuiltInIconProps) {\n return (\n <Svg {...props}>\n <path d=\"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z\" />\n </Svg>\n );\n}\n\nfunction Info(props: BuiltInIconProps) {\n return (\n <Svg {...props}>\n <path d=\"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z\" />\n </Svg>\n );\n}\n\nfunction Success(props: BuiltInIconProps) {\n return (\n <Svg {...props}>\n <path d=\"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z\" />\n </Svg>\n );\n}\n\nfunction Error(props: BuiltInIconProps) {\n return (\n <Svg {...props}>\n <path d=\"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z\" />\n </Svg>\n );\n}\n\nfunction Spinner() {\n return <div className={`${Default.CSS_NAMESPACE}__spinner`} />;\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<ToastProps, 'theme' | 'icon' | 'type' | 'isLoading'>;\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"],"mappings":";4jBAAA,IAAAA,GAAA,GAAAC,GAAAD,GAAA,YAAAE,GAAA,SAAAC,GAAA,UAAAC,EAAA,UAAAC,GAAA,mBAAAC,GAAA,SAAAC,GAAA,kBAAAC,EAAA,kBAAAC,EAAA,UAAAC,EAAA,sBAAAC,KAAA,eAAAC,GAAAZ,ICCA,SAASa,GAAYC,EAAK,CACxB,GAAI,CAACA,GAAO,OAAO,UAAa,YAAa,OAE7C,IAAMC,EAAO,SAAS,MAAQ,SAAS,qBAAqB,MAAM,EAAE,CAAC,EAC/DC,EAAQ,SAAS,cAAc,OAAO,EAC5CA,EAAM,KAAO,WAEVD,EAAK,WACNA,EAAK,aAAaC,EAAOD,EAAK,UAAU,EAExCA,EAAK,YAAYC,CAAK,EAGrBA,EAAM,WACPA,EAAM,WAAW,QAAUF,EAE3BE,EAAM,YAAY,SAAS,eAAeF,CAAG,CAAC,CAElD,CACAD,GAAY;AAAA,CAAk1b,ECpB91b,IAAAI,GAA+B,iBAGlBC,EAASC,GAAwB,OAAOA,GAAM,UAAY,CAAC,MAAMA,CAAC,EAElEC,EAASD,GAAwB,OAAOA,GAAM,SAE9CE,EAAQF,GAA0B,OAAOA,GAAM,WAE/CG,GAAQH,GAAwBC,EAAMD,CAAC,GAAKD,EAAMC,CAAC,EAEnDI,EAAkBJ,GAAYC,EAAMD,CAAC,GAAKE,EAAKF,CAAC,EAAIA,EAAI,KAExDK,GAAoB,CAACC,EAAiCC,IACjED,IAAmB,IAAUP,EAAMO,CAAc,GAAKA,EAAiB,EAAKA,EAAiBC,EAElFC,EAAoBC,MAC/B,mBAAeA,CAAO,GAAKR,EAAMQ,CAAO,GAAKP,EAAKO,CAAO,GAAKV,EAAMU,CAAO,ECjB7E,IAAAC,EAA0D,oBCKnD,SAASC,EAAcC,EAAmBC,EAAkBC,MAAsC,CACvG,GAAM,CAAE,aAAAC,EAAc,MAAAC,CAAM,EAAIJ,EAEhC,sBAAsB,IAAM,CAC1BI,EAAM,UAAY,UAClBA,EAAM,OAASD,EAAe,KAC9BC,EAAM,WAAa,OAAOF,CAAQ,KAElC,sBAAsB,IAAM,CAC1BE,EAAM,OAAS,IACfA,EAAM,QAAU,IAChBA,EAAM,OAAS,IACf,WAAWH,EAAMC,CAAkB,CACrC,CAAC,CACH,CAAC,CACH,CDoCO,SAASG,EAAc,CAC5B,MAAAC,EACA,KAAAC,EACA,eAAAC,EAAiB,GACjB,SAAAC,EAAW,GACX,iBAAAC,KACF,EAAuB,CACrB,OAAO,SAAyB,CAC9B,SAAAC,EACA,SAAAC,EACA,sBAAAC,EACA,KAAAC,EACA,QAAAC,EACA,KAAAC,EACA,UAAAC,CACF,EAAyB,CACvB,IAAMC,EAAiBV,EAAiB,GAAGF,CAAK,KAAKM,CAAQ,GAAKN,EAC5Da,EAAgBX,EAAiB,GAAGD,CAAI,KAAKK,CAAQ,GAAKL,EAC1Da,KAAgB,UAAO,CAAmB,EAEhD,4BAAgB,IAAM,CACpB,IAAMC,EAAON,EAAQ,QACfO,EAAeJ,EAAe,MAAM,GAAG,EAEvCK,EAAaC,GAAsB,CACnCA,EAAE,SAAWT,EAAQ,UAEzBE,EAAU,EACVI,EAAK,oBAAoB,eAAgBE,CAAS,EAClDF,EAAK,oBAAoB,kBAAmBE,CAAS,EACjDH,EAAc,UAAY,GAAuBI,EAAE,OAAS,mBAC9DH,EAAK,UAAU,OAAO,GAAGC,CAAY,EAEzC,GAEgB,IAAM,CACpBD,EAAK,UAAU,IAAI,GAAGC,CAAY,EAClCD,EAAK,iBAAiB,eAAgBE,CAAS,EAC/CF,EAAK,iBAAiB,kBAAmBE,CAAS,CACpD,GAEQ,CACV,EAAG,CAAC,CAAC,KAEL,aAAU,IAAM,CACd,IAAMF,EAAON,EAAQ,QAEfU,EAAW,IAAM,CACrBJ,EAAK,oBAAoB,eAAgBI,CAAQ,EACjDhB,EAAWiB,EAAcL,EAAMP,EAAMJ,CAAgB,EAAII,EAAK,CAChE,EAQKE,IAAMH,EAAwBY,EAAS,GAN7B,IAAM,CACnBL,EAAc,QAAU,EACxBC,EAAK,WAAa,IAAIF,CAAa,GACnCE,EAAK,iBAAiB,eAAgBI,CAAQ,CAChD,GAEuD,EACzD,EAAG,CAACT,CAAI,CAAC,EAEF,EAAAW,QAAA,gBAAAA,QAAA,cAAGhB,CAAS,CACrB,CACF,CEtHA,IAAAiB,GAA2D,iBAGpD,SAASC,GAAYC,EAAcC,EAAoC,CAC5E,MAAO,CACL,QAASC,GAAcF,EAAM,QAASA,EAAM,KAAK,EACjD,YAAaA,EAAM,MAAM,YACzB,GAAIA,EAAM,MAAM,QAChB,MAAOA,EAAM,MAAM,MACnB,KAAMA,EAAM,MAAM,KAClB,KAAMA,EAAM,MAAM,MAAQ,CAAC,EAC3B,UAAWA,EAAM,MAAM,UACvB,KAAMA,EAAM,MAAM,KAClB,OAAQA,EAAM,cACd,OAAAC,CACF,CACF,CAEO,SAASC,GAAcC,EAAkBC,EAAmBC,EAAoB,GAAO,CAC5F,SAAI,mBAAeF,CAAO,GAAK,CAACG,EAAMH,EAAQ,IAAI,KACzC,iBAAgCA,EAA8B,CACnE,WAAYC,EAAM,WAClB,WAAYA,EACZ,KAAMA,EAAM,KACZ,SAAAC,CACF,CAAC,EACQE,EAAKJ,CAAO,EACdA,EAAQ,CACb,WAAYC,EAAM,WAClB,WAAYA,EACZ,KAAMA,EAAM,KACZ,SAAAC,CACF,CAAC,EAGIF,CACT,CCrCA,IAAAK,GAAkB,oBAWX,SAASC,GAAY,CAAE,WAAAC,EAAY,MAAAC,EAAO,UAAAC,EAAY,OAAQ,EAAqB,CACxF,OACE,GAAAC,QAAA,cAAC,UACC,UAAW,kDAAkFF,CAAK,GAClG,KAAK,SACL,QAASG,GAAK,CACZA,EAAE,gBAAgB,EAClBJ,EAAW,EAAI,CACjB,EACA,aAAYE,GAEZ,GAAAC,QAAA,cAAC,OAAI,cAAY,OAAO,QAAQ,aAC9B,GAAAA,QAAA,cAAC,QACC,SAAS,UACT,EAAE,2HACJ,CACF,CACF,CAEJ,CC9BA,IAAAE,GAAkB,oBAClBC,GAAe,mBA8DR,SAASC,GAAY,CAC1B,MAAAC,EACA,UAAAC,EACA,WAAAC,EACA,KAAAC,YACA,KAAAC,EACA,UAAAC,EACA,mBAAAC,EACA,SAAAC,EACA,IAAAC,EACA,KAAAC,EACA,MAAAC,CACF,EAAqB,CACnB,IAAMC,EAAWP,GAASE,GAAsBC,IAAa,EACvDK,EAA6B,CACjC,kBAAmB,GAAGZ,CAAK,KAC3B,mBAAoBC,EAAY,UAAY,QAC9C,EAEIK,IAAoBM,EAAM,UAAY,UAAUL,CAAQ,KAC5D,IAAMM,KAAmB,GAAAC,kCAEvBR,0EAGA,iCAAiDI,CAAK,GACtD,2BAA2CP,CAAI,GAC/C,CACE,8BAA8C,EAAGK,CACnD,CACF,EACMO,EAAaC,EAAKX,CAAS,EAC7BA,EAAU,CACR,IAAAG,EACA,KAAAL,EACA,iBAAAU,CACF,CAAC,KACD,GAAAC,SAAGD,EAAkBR,CAAS,EAK5BY,EAAiB,CACrB,CAACX,GAAuBC,GAAwB,EAAI,kBAAoB,gBAAgB,EACtFD,GAAuBC,EAAuB,EAC1C,KACA,IAAM,CACJE,GAAQP,EAAW,CACrB,CACR,EAIA,OACE,GAAAgB,QAAA,cAAC,OAAI,wCAA0D,cAAaP,GAC1E,GAAAO,QAAA,cAAC,OACC,UAAW,4DAA4FR,CAAK,4BAA4CP,CAAI,GAC9J,EACA,GAAAe,QAAA,cAAC,OACC,KAAK,cACL,cAAaP,EAAW,OAAS,QACjC,aAAW,qBACX,UAAWI,EACX,MAAOH,EACN,GAAGK,EACN,CACF,CAEJ,CCnIA,IAAAE,GAAe,mBACfC,EAA6D,oBCD7D,IAAIC,GAAW,EAEFC,GAAa,IAAM,GAAGD,IAAU,GCatC,SAASE,GACdC,EACAC,EACAC,EACA,CACA,IAAIC,EAAW,EACXC,EAAa,EACbC,EAAiB,CAAC,EAClBC,EAAoB,CAAC,EACrBC,EAAQN,EACNO,EAAS,IAAI,IACbC,EAAY,IAAI,IAEhBC,EAAWC,IACfF,EAAU,IAAIE,CAAM,EACb,IAAMF,EAAU,OAAOE,CAAM,GAGhCA,EAAS,IAAM,CACnBL,EAAW,MAAM,KAAKE,EAAO,OAAO,CAAC,EACrCC,EAAU,QAAQG,GAAMA,EAAG,CAAC,CAC9B,EAEMC,EAAoB,CAAC,CAAE,YAAAC,EAAa,QAAAC,EAAS,SAAAC,CAAS,IAA8B,CACxF,IAAMC,EAAoBH,EAAcA,IAAgBd,EAAKA,IAAO,EAC9DkB,EAAcV,EAAO,IAAIO,CAAO,GAAKC,GAAY,KAEvD,OAAOC,GAAqBC,CAC9B,EAEMC,EAAS,CAACC,EAAYpB,IAAY,CACtCQ,EAAO,QAAQa,GAAK,CA9CxB,IAAAC,GA+CUtB,GAAM,MAAQA,IAAOqB,EAAE,MAAM,YAASC,EAAAD,EAAE,SAAF,MAAAC,EAAA,KAAAD,EAAWD,GACvD,CAAC,CACH,EAEMG,EAAiBH,GAAa,CAnDtC,IAAAE,EAAAE,GAoDIA,GAAAF,EAAAF,EAAE,QAAF,YAAAE,EAAS,UAAT,MAAAE,EAAA,KAAAF,EAAmBF,EAAE,eACrBA,EAAE,SAAW,EACf,EAEMK,EAAezB,GAAY,CAC/B,GAAIA,GAAM,KACRQ,EAAO,QAAQe,CAAa,MACvB,CACL,IAAMF,EAAIb,EAAO,IAAIR,CAAE,EACnBqB,GAAGE,EAAcF,CAAC,CACxB,CACAV,EAAO,CACT,EAEMe,EAAa,IAAM,CACvBtB,GAAcC,EAAM,OACpBA,EAAQ,CAAC,CACX,EAEMsB,EAAkBC,GAAiB,CAvE3C,IAAAN,EAAAE,EAwEI,GAAM,CAAE,QAAAT,EAAS,SAAAC,CAAS,EAAIY,EAAM,MAC9BC,EAAQb,GAAY,KAEtBY,EAAM,SAASpB,EAAO,OAAOoB,EAAM,OAAO,EAC9CA,EAAM,SAAW,GAEjBpB,EAAO,IAAIO,EAASa,CAAK,EACzBjB,EAAO,EACPT,EAAgB4B,GAAYF,EAAOC,EAAQ,QAAU,SAAS,CAAC,EAE3DA,KAAOL,GAAAF,EAAAM,EAAM,OAAM,SAAZ,MAAAJ,EAAA,KAAAF,GACb,EAyEA,MAAO,CACL,GAAAtB,EACA,MAAAO,EACA,QAAAG,EACA,OAAAS,EACA,YAAAM,EACA,OAAAjB,EACA,WAAAkB,EACA,WA/EiB,CAAkBK,EAA8BC,IAAoC,CACrG,GAAInB,EAAkBmB,CAAO,EAAG,OAEhC,GAAM,CAAE,QAAAjB,EAAS,SAAAC,EAAU,KAAAiB,EAAM,QAAAC,EAAS,MAAAC,CAAM,EAAIH,EAE9CI,EAAgBpB,GAAY,KAE9BoB,GAAehC,IAEnB,IAAMiC,EAAa,CACjB,GAAG9B,EACH,MAAOA,EAAM,WACb,IAAKJ,IACL,GAAG,OAAO,YAAY,OAAO,QAAQ6B,CAAO,EAAE,OAAO,CAAC,CAACM,EAAGlB,CAAC,IAAMA,GAAK,IAAI,CAAC,EAC3E,QAAAL,EACA,SAAAC,EACA,KAAAiB,EACA,KAAM,GACN,UAAWM,EAAeP,EAAQ,WAAazB,EAAM,cAAc,EACnE,kBAAmBgC,EAAeP,EAAQ,mBAAqBzB,EAAM,iBAAiB,EACtF,UAAWyB,EAAQ,UAAY,GAAQQ,GAAkBR,EAAQ,UAAWzB,EAAM,SAAS,EAC3F,WAAWkC,EAAe,CACxBjC,EAAO,IAAIO,CAAO,EAAG,cAAgB0B,EACrChB,EAAYV,CAAO,CACrB,EACA,aAAc,CACZ,IAAM2B,EAAgBlC,EAAO,IAAIO,CAAO,EAExC,GAAI2B,GAAiB,KAQrB,IANAxC,EAAgB4B,GAAYY,EAAe,SAAS,CAAC,EACrDlC,EAAO,OAAOO,CAAO,EAErBX,IACIA,EAAa,IAAGA,EAAa,GAE7BC,EAAM,OAAS,EAAG,CACpBsB,EAAetB,EAAM,MAAM,CAAC,EAC5B,MACF,CAEAM,EAAO,EACT,CACF,EAEA0B,EAAW,YAAc9B,EAAM,YAE3ByB,EAAQ,cAAgB,IAASW,EAAcX,EAAQ,WAAW,EACpEK,EAAW,YAAcL,EAAQ,YACxBA,EAAQ,cAAgB,KACjCK,EAAW,YAAcM,EAAcpC,EAAM,WAAW,EAAIA,EAAM,YAAc,IAGlF,IAAMqC,EAAc,CAClB,QAAAb,EACA,MAAOM,EACP,QAAAH,CACF,EAGI3B,EAAM,OAASA,EAAM,MAAQ,GAAKH,EAAaG,EAAM,OAAS6B,EAChE/B,EAAM,KAAKuC,CAAW,EACbC,EAAMV,CAAK,EACpB,WAAW,IAAM,CACfR,EAAeiB,CAAW,CAC5B,EAAGT,CAAK,EAERR,EAAeiB,CAAW,CAE9B,EAWE,SAASE,EAAwB,CAC/BvC,EAAQuC,CACV,EACA,UAAW,CAAC9C,EAAQ+C,IAA6B,CAC/C,IAAM1B,EAAIb,EAAO,IAAIR,CAAE,EACnBqB,IAAGA,EAAE,OAAS0B,EACpB,EACA,cAAgB/C,GAAQ,CA5K5B,IAAAsB,EA4K+B,OAAAA,EAAAd,EAAO,IAAIR,CAAE,IAAb,YAAAsB,EAAgB,UAC3C,YAAa,IAAMhB,CACrB,CACF,CCxJA,IAAM0C,EAAa,IAAI,IACnBC,EAA+B,CAAC,EAC9BC,GAAY,IAAI,IAEhBC,GAAmBC,GAAoBF,GAAU,QAAQG,GAAMA,EAAGD,CAAI,CAAC,EAEvEE,GAAgB,IAAMN,EAAW,KAAO,EAE9C,SAASO,IAAmB,CAC1BN,EAAY,QAAQO,GAAKC,GAAUD,EAAE,QAASA,EAAE,OAAO,CAAC,EACxDP,EAAc,CAAC,CACjB,CAEO,IAAMS,GAAW,CAACC,EAAQ,CAAE,YAAAC,CAAY,IAAiB,CApChE,IAAAC,EAqCE,OAAAA,EAAAb,EAAW,IAAIY,GAAe,CAAoB,IAAlD,YAAAC,EAAqD,OAAO,IAAIF,IAE3D,SAASG,GAAcH,EAAQC,EAAkB,CAvCxD,IAAAC,EAwCE,GAAID,EAAa,MAAO,CAAC,GAACC,EAAAb,EAAW,IAAIY,CAAW,IAA1B,MAAAC,EAA6B,cAAcF,IAErE,IAAII,EAAW,GACf,OAAAf,EAAW,QAAQgB,GAAK,CAClBA,EAAE,cAAcL,CAAE,IAAGI,EAAW,GACtC,CAAC,EAEMA,CACT,CAEO,SAASE,GAAYC,EAA4B,CACtD,GAAI,CAACZ,GAAc,EAAG,CACpBL,EAAcA,EAAY,OAAOO,GAAKU,GAAU,MAAQV,EAAE,QAAQ,UAAYU,CAAM,EACpF,MACF,CAEA,GAAIA,GAAU,MAAQC,GAAKD,CAAM,EAC/BlB,EAAW,QAAQgB,GAAK,CACtBA,EAAE,YAAYE,CAAY,CAC5B,CAAC,UACQA,IAAW,gBAAiBA,GAAU,OAAQA,GAAS,CAChE,IAAME,EAAYpB,EAAW,IAAIkB,EAAO,WAAW,EACnDE,EACIA,EAAU,YAAYF,EAAO,EAAE,EAC/BlB,EAAW,QAAQgB,GAAK,CACtBA,EAAE,YAAYE,EAAO,EAAE,CACzB,CAAC,CACP,CACF,CAEO,IAAMG,GAAoB,CAACC,EAA6B,CAAC,IAAM,CACpEtB,EAAW,QAAQgB,GAAK,CAClBA,EAAE,MAAM,QAAU,CAACM,EAAE,aAAeN,EAAE,KAAOM,EAAE,cACjDN,EAAE,WAAW,CAEjB,CAAC,CACH,EAEO,SAASP,GAAiBc,EAA8BC,EAAiC,CACzFC,EAAcF,CAAO,IACrBjB,GAAc,GAAGL,EAAY,KAAK,CAAE,QAAAsB,EAAS,QAAAC,CAAQ,CAAC,EAE3DxB,EAAW,QAAQgB,GAAK,CACtBA,EAAE,WAAWO,EAASC,CAAO,CAC/B,CAAC,EACH,CAaO,SAASE,GAAeC,EAA0B,CAlGzD,IAAAd,GAmGEA,EAAAb,EAAW,IAAI2B,EAAK,aAAe,CAAoB,IAAvD,MAAAd,EAA0D,UAAUc,EAAK,GAAIA,EAAK,GACpF,CAEO,SAASC,GAAYpB,EAAYqB,EAAyB,CAC/D7B,EAAW,QAAQgB,GAAK,EAClBa,GAAO,MAAQ,EAACA,GAAA,MAAAA,EAAK,eAEdA,GAAA,YAAAA,EAAK,eAAgBb,EAAE,KAChCA,EAAE,OAAOR,EAAGqB,GAAA,YAAAA,EAAK,EAAE,CAEvB,CAAC,CACH,CAEO,SAASC,GAAkBC,EAA4B,CAC5D,IAAMpB,EAAKoB,EAAM,aAAe,EAChC,MAAO,CACL,UAAUC,EAAoB,CAC5B,IAAMZ,EAAYa,GAAwBtB,EAAIoB,EAAO5B,EAAe,EAEpEH,EAAW,IAAIW,EAAIS,CAAS,EAC5B,IAAMc,EAAYd,EAAU,QAAQY,CAAM,EAC1C,OAAAzB,GAAiB,EAEV,IAAM,CACX2B,EAAU,EACVlC,EAAW,OAAOW,CAAE,CACtB,CACF,EACA,SAASW,EAAwB,CA/HrC,IAAAT,GAgIMA,EAAAb,EAAW,IAAIW,CAAE,IAAjB,MAAAE,EAAoB,SAASS,EAC/B,EACA,aAAc,CAlIlB,IAAAT,EAmIM,OAAOA,EAAAb,EAAW,IAAIW,CAAE,IAAjB,YAAAE,EAAoB,aAC7B,CACF,CACF,CAEO,SAASsB,GAAS9B,EAAsB,CAC7C,OAAAH,GAAU,IAAIG,CAAE,EAET,IAAM,CACXH,GAAU,OAAOG,CAAE,CACrB,CACF,CC3HA,SAAS+B,GAAkBC,EAA+B,CACxD,OAAOA,IAAYC,EAAMD,EAAQ,OAAO,GAAKE,EAAMF,EAAQ,OAAO,GAAKA,EAAQ,QAAUG,GAAW,CACtG,CAKA,SAASC,EAAqBC,EAA8BL,EAAqC,CAC/F,OAAAM,GAAUD,EAASL,CAAO,EACnBA,EAAQ,OACjB,CAKA,SAASO,GAAoBC,EAAcR,EAA+B,CACxE,MAAO,CACL,GAAGA,EACH,KAAOA,GAAWA,EAAQ,MAASQ,EACnC,QAAST,GAAWC,CAAO,CAC7B,CACF,CAEA,SAASS,GAAkBD,EAAc,CACvC,MAAO,CAAkBH,EAA8BL,IACrDI,EAAcC,EAASE,GAAaC,EAAMR,CAAO,CAAC,CACtD,CAEA,SAASU,EAAuBL,EAA8BL,EAA+B,CAC3F,OAAOI,EAAcC,EAASE,aAA2BP,CAAO,CAAC,CACnE,CAEAU,EAAM,QAAU,CAAkBL,EAA8BL,IAC9DI,EACEC,EACAE,aAA2B,CACzB,UAAW,GACX,UAAW,GACX,aAAc,GACd,YAAa,GACb,UAAW,GACX,GAAGP,CACL,CAAC,CACH,EAQF,SAASW,GACPC,EACA,CAAE,QAAAC,EAAS,MAAAC,EAAO,QAAAC,CAAQ,EAC1Bf,EACA,CACA,IAAIgB,EAEAH,IACFG,EAAKf,EAAMY,CAAO,EACdH,EAAM,QAAQG,EAASb,CAAO,EAC9BU,EAAM,QAAQG,EAAQ,OAAQ,CAC5B,GAAGb,EACH,GAAIa,CACN,CAA2B,GAGjC,IAAMI,EAAc,CAClB,UAAW,KACX,UAAW,KACX,aAAc,KACd,YAAa,KACb,UAAW,IACb,EAEMC,EAAW,CAAIV,EAAmBW,EAA8CC,IAAc,CAGlG,GAAID,GAAS,KAAM,CACjBT,EAAM,QAAQM,CAAE,EAChB,MACF,CAEA,IAAMK,EAAa,CACjB,KAAAb,EACA,GAAGS,EACH,GAAGjB,EACH,KAAMoB,CACR,EACME,EAASrB,EAAMkB,CAAK,EAAI,CAAE,OAAQA,CAAM,EAAIA,EAGlD,OAAIH,EACFN,EAAM,OAAOM,EAAI,CACf,GAAGK,EACH,GAAGC,CACL,CAAkB,EAGlBZ,EAAMY,EAAQ,OAAQ,CACpB,GAAGD,EACH,GAAGC,CACL,CAAoB,EAGfF,CACT,EAEMG,EAAIC,EAAKZ,CAAO,EAAIA,EAAQ,EAAIA,EAGtC,OAAAW,EAAE,KAAKH,GAAUF,EAAS,UAAWH,EAASK,CAAM,CAAC,EAAE,MAAMK,GAAOP,EAAS,QAASJ,EAAOW,CAAG,CAAC,EAE1FF,CACT,CA2CAb,EAAM,QAAUC,GAChBD,EAAM,QAAUD,YAA8B,EAC9CC,EAAM,KAAOD,SAA2B,EACxCC,EAAM,MAAQD,UAA4B,EAC1CC,EAAM,QAAUD,YAA8B,EAC9CC,EAAM,KAAOA,EAAM,QACnBA,EAAM,KAAO,CAACL,EAAuBL,IACnCI,EACEC,EACAE,aAA2B,CACzB,MAAO,OACP,GAAGP,CACL,CAAC,CACH,EASF,SAAS0B,GAAQJ,EAA4B,CAC3CK,GAAYL,CAAM,CACpB,CAyBAZ,EAAM,QAAUgB,GAKhBhB,EAAM,kBAAoBkB,GAe1BlB,EAAM,SAAWmB,GA+BjBnB,EAAM,OAAS,CAAkBoB,EAAa9B,EAAgC,CAAC,IAAM,CACnF,IAAMU,EAAQqB,GAASD,EAAS9B,CAAuB,EAEvD,GAAIU,EAAO,CACT,GAAM,CAAE,MAAOsB,EAAY,QAASC,CAAW,EAAIvB,EAE7CwB,EAAc,CAClB,MAAO,IACP,GAAGF,EACH,GAAGhC,EACH,QAASA,EAAQ,SAAW8B,EAC5B,SAAU3B,GAAW,CACvB,EAEI+B,EAAY,UAAYJ,IAASI,EAAY,QAAUJ,GAE3D,IAAMzB,EAAU6B,EAAY,QAAUD,EACtC,OAAOC,EAAY,OAEnB9B,EAAcC,EAAS6B,CAAW,CACpC,CACF,EAgBAxB,EAAM,KAAQM,GAAW,CACvBN,EAAM,OAAOM,EAAI,CACf,SAAU,CACZ,CAAC,CACH,EAsBAN,EAAM,SAAWyB,GA2BjBzB,EAAM,KAAQ0B,GAAkBC,GAAY,GAAMD,CAAI,EA2BtD1B,EAAM,MAAS0B,GAAkBC,GAAY,GAAOD,CAAI,ECzYxD,IAAAE,GAA6C,iBAItC,SAASC,GAAkBC,EAA4B,CAJ9D,IAAAC,EAKE,GAAM,CAAE,UAAAC,EAAW,YAAAC,EAAa,SAAAC,CAAS,KAAI,WAAOC,GAAkBL,CAAK,CAAC,EAAE,QAC9EI,EAASJ,CAAK,EACd,IAAMM,GAAWL,KAAA,yBAAqBC,EAAWC,EAAaA,CAAW,IAAxD,YAAAF,EAA2D,QAE5E,SAASM,EAAoBC,EAAwD,CACnF,GAAI,CAACF,EAAU,MAAO,CAAC,EAEvB,IAAMG,EAAW,IAAI,IAErB,OAAIT,EAAM,aAAaM,EAAS,QAAQ,EAExCA,EAAS,QAAQI,GAAS,CACxB,GAAM,CAAE,SAAAC,CAAS,EAAID,EAAM,MAC3BD,EAAS,IAAIE,CAAQ,GAAKF,EAAS,IAAIE,EAAU,CAAC,CAAC,EACnDF,EAAS,IAAIE,CAAQ,EAAG,KAAKD,CAAK,CACpC,CAAC,EAEM,MAAM,KAAKD,EAAUG,GAAKJ,EAAGI,EAAE,CAAC,EAAGA,EAAE,CAAC,CAAC,CAAC,CACjD,CAEA,MAAO,CACL,iBAAAL,EACA,cAAAM,GACA,MAAOP,GAAA,YAAAA,EAAU,MACnB,CACF,CC9BA,IAAAQ,EAA2D,iBAepD,SAASC,GAASC,EAAmB,CAC1C,GAAM,CAACC,EAAWC,CAAY,KAAI,YAAS,EAAK,EAC1C,CAACC,EAAuBC,CAAwB,KAAI,YAAS,EAAK,EAClEC,KAAW,UAAuB,IAAI,EACtCC,KAAO,UAAkB,CAC7B,MAAO,EACP,MAAO,EACP,gBAAiB,EACjB,gBAAiB,GACjB,QAAS,GACT,QAAS,EACX,CAAC,EAAE,QACG,CAAE,UAAAC,EAAW,aAAAC,EAAc,WAAAC,EAAY,QAAAC,EAAS,aAAAC,CAAa,EAAIX,EAEvEY,GAAe,CACb,GAAIZ,EAAM,QACV,YAAaA,EAAM,YACnB,GAAIE,CACN,CAAC,KAED,aAAU,IAAM,CACd,GAAIF,EAAM,iBACR,OAAAa,EAAgB,EAET,IAAM,CACXC,EAAkB,CACpB,CAEJ,EAAG,CAACd,EAAM,gBAAgB,CAAC,EAE3B,SAASa,GAAkB,CACpB,SAAS,SAAS,GAAGE,EAAW,EAErC,OAAO,iBAAiB,QAASC,CAAS,EAC1C,OAAO,iBAAiB,OAAQD,CAAU,CAC5C,CAEA,SAASD,GAAoB,CAC3B,OAAO,oBAAoB,QAASE,CAAS,EAC7C,OAAO,oBAAoB,OAAQD,CAAU,CAC/C,CAEA,SAASE,EAAYC,EAAoC,CACvD,GAAIlB,EAAM,YAAc,IAAQA,EAAM,YAAckB,EAAE,YAAa,CACjEC,EAAe,EACf,IAAMC,EAAQf,EAAS,QACvBC,EAAK,gBAAkB,GACvBA,EAAK,QAAU,GACfc,EAAM,MAAM,WAAa,OAErBpB,EAAM,qBAAuB,KAC/BM,EAAK,MAAQY,EAAE,QACfZ,EAAK,gBAAkBc,EAAM,aAAepB,EAAM,iBAAmB,OAErEM,EAAK,MAAQY,EAAE,QACfZ,EAAK,gBACFc,EAAM,cACJpB,EAAM,mBAAqB,GACxBA,EAAM,iBAAmB,IACzBA,EAAM,kBACZ,IAEN,CACF,CAEA,SAASqB,EAAoBH,EAAoC,CAC/D,GAAM,CAAE,IAAAI,EAAK,OAAAC,EAAQ,KAAAC,EAAM,MAAAC,CAAM,EAAIpB,EAAS,QAAS,sBAAsB,EAG3Ea,EAAE,YAAY,OAAS,YACvBlB,EAAM,cACNkB,EAAE,SAAWM,GACbN,EAAE,SAAWO,GACbP,EAAE,SAAWI,GACbJ,EAAE,SAAWK,EAEbR,EAAW,EAEXC,EAAU,CAEd,CAEA,SAASA,GAAY,CACnBd,EAAa,EAAI,CACnB,CAEA,SAASa,GAAa,CACpBb,EAAa,EAAK,CACpB,CAEA,SAASiB,GAAiB,CACxBb,EAAK,QAAU,GACf,SAAS,iBAAiB,cAAeoB,CAAU,EACnD,SAAS,iBAAiB,YAAaC,CAAS,CAClD,CAEA,SAASC,GAAmB,CAC1B,SAAS,oBAAoB,cAAeF,CAAU,EACtD,SAAS,oBAAoB,YAAaC,CAAS,CACrD,CAEA,SAASD,EAAWR,EAAiB,CACnC,IAAME,EAAQf,EAAS,QACvB,GAAIC,EAAK,SAAWc,EAAO,CACzBd,EAAK,QAAU,GACXL,GAAWc,EAAW,EACtBf,EAAM,qBAAuB,IAC/BM,EAAK,MAAQY,EAAE,QAAUZ,EAAK,MAE9BA,EAAK,MAAQY,EAAE,QAAUZ,EAAK,MAI5BA,EAAK,QAAUY,EAAE,UAASZ,EAAK,gBAAkB,IACrD,IAAMuB,EACJ7B,EAAM,qBAAuB,IAAM,GAAGM,EAAK,KAAK,eAAiB,WAAWA,EAAK,KAAK,iBACxFc,EAAM,MAAM,UAAY,eAAeS,CAAS,MAChDT,EAAM,MAAM,QAAU,GAAG,EAAI,KAAK,IAAId,EAAK,MAAQA,EAAK,eAAe,CAAC,EAC1E,CACF,CAEA,SAASqB,GAAY,CACnBC,EAAiB,EACjB,IAAMR,EAAQf,EAAS,QACvB,GAAIC,EAAK,SAAWA,EAAK,SAAWc,EAAO,CAEzC,GADAd,EAAK,QAAU,GACX,KAAK,IAAIA,EAAK,KAAK,EAAIA,EAAK,gBAAiB,CAC/CF,EAAyB,EAAI,EAC7BJ,EAAM,WAAW,EAAI,EACrBA,EAAM,YAAY,EAClB,MACF,CAEAoB,EAAM,MAAM,WAAa,+BACzBA,EAAM,MAAM,eAAe,WAAW,EACtCA,EAAM,MAAM,eAAe,SAAS,CACtC,CACF,CAEA,IAAMU,EAA4C,CAChD,cAAeb,EACf,YAAaI,CACf,EAEA,OAAId,GAAaC,IACfsB,EAAc,aAAef,EAGxBf,EAAM,UAAS8B,EAAc,aAAed,IAI/CL,IACFmB,EAAc,QAAWZ,GAAwB,CAC/CR,GAAWA,EAAQQ,CAAC,EACpBZ,EAAK,iBAAmBG,EAAW,EAAI,CACzC,GAGK,CACL,UAAAO,EACA,WAAAD,EACA,UAAAd,EACA,sBAAAE,EACA,SAAAE,EACA,cAAAyB,CACF,CACF,CCtLA,IAAAC,GAA2C,iBAE9BC,GAA4B,OAAO,QAAW,YAAc,mBAAkB,aCF3F,IAAAC,GAAe,mBACfC,EAAoD,oBCDpD,IAAAC,EAAoD,oBAgBpD,IAAMC,GAAkC,CAAC,CAAE,MAAAC,EAAO,KAAAC,EAAM,UAAAC,EAAW,GAAGC,CAAK,IACzE,EAAAC,QAAA,cAAC,OACC,QAAQ,YACR,MAAM,OACN,OAAO,OACP,KAAMJ,IAAU,UAAY,eAAiB,6BAA6BC,CAAI,IAC7E,GAAGE,EACN,EAGF,SAASE,GAAQC,EAAyB,CACxC,OACE,EAAAF,QAAA,cAACL,GAAA,CAAK,GAAGO,GACP,EAAAF,QAAA,cAAC,QAAK,EAAE,6eAA6e,CACvf,CAEJ,CAEA,SAASG,GAAKD,EAAyB,CACrC,OACE,EAAAF,QAAA,cAACL,GAAA,CAAK,GAAGO,GACP,EAAAF,QAAA,cAAC,QAAK,EAAE,gPAAgP,CAC1P,CAEJ,CAEA,SAASI,GAAQF,EAAyB,CACxC,OACE,EAAAF,QAAA,cAACL,GAAA,CAAK,GAAGO,GACP,EAAAF,QAAA,cAAC,QAAK,EAAE,6KAA6K,CACvL,CAEJ,CAEA,SAASK,GAAMH,EAAyB,CACtC,OACE,EAAAF,QAAA,cAACL,GAAA,CAAK,GAAGO,GACP,EAAAF,QAAA,cAAC,QAAK,EAAE,qUAAqU,CAC/U,CAEJ,CAEA,SAASM,IAAU,CACjB,OAAO,EAAAN,QAAA,cAAC,OAAI,8BAAgD,CAC9D,CAEO,IAAMO,EAAQ,CACnB,KAAMJ,GACN,QAASF,GACT,QAASG,GACT,MAAOC,GACP,QAASC,EACX,EAEME,GAAaX,GAA6CA,KAAQU,EAIjE,SAASE,GAAQ,CAAE,MAAAb,EAAO,KAAAC,EAAM,UAAAC,EAAW,KAAAY,CAAK,EAAe,CACpE,IAAIC,EAAwB,KACtBC,EAAY,CAAE,MAAAhB,EAAO,KAAAC,CAAK,EAEhC,OAAIa,IAAS,KAEFG,EAAKH,CAAI,EAClBC,EAAOD,EAAK,CAAE,GAAGE,EAAW,UAAAd,CAAU,CAAC,KAC9B,kBAAeY,CAAI,EAC5BC,KAAO,gBAAaD,EAAME,CAAS,EAC1Bd,EACTa,EAAOJ,EAAM,QAAQ,EACZC,GAAUX,CAAI,IACvBc,EAAOJ,EAAMV,CAAI,EAAEe,CAAS,IAGvBD,CACT,CDjFO,IAAMG,GAA8BC,GAAS,CAClD,GAAM,CAAE,UAAAC,EAAW,sBAAAC,EAAuB,SAAAC,EAAU,cAAAC,EAAe,UAAAC,CAAU,EAAIC,GAASN,CAAK,EACzF,CACJ,YAAAO,EACA,SAAAC,EACA,UAAAC,EACA,QAAAC,EACA,KAAAC,EACA,gBAAAC,EACA,WAAAC,EACA,WAAYC,EACZ,SAAAC,EACA,UAAAC,EACA,MAAAC,EACA,kBAAAC,EACA,SAAAC,EACA,KAAAC,EACA,SAAAC,EACA,IAAAC,EACA,QAAAC,EACA,YAAAC,EACA,KAAAC,EACA,UAAAC,EACA,aAAAC,EACA,MAAAC,EACA,UAAAC,CACF,EAAI7B,EACE8B,KAAmB,GAAAC,2BAEvB,0BAA0CH,CAAK,GAC/C,oBAAoCjB,CAAI,GACxC,CACE,uBAAuC,EAAGW,CAC5C,EACA,CACE,kCAAkD,EAAGK,CACvD,CACF,EACMK,EAAaC,EAAKjB,CAAS,EAC7BA,EAAU,CACR,IAAAM,EACA,SAAAP,EACA,KAAAJ,EACA,iBAAAmB,CACF,CAAC,KACD,GAAAC,SAAGD,EAAkBd,CAAS,EAC5BkB,EAAOC,GAAQnC,CAAK,EACpBoC,EAAuB,CAAC,CAACf,GAAY,CAACZ,EAEtC4B,GAAmB,CAAE,WAAAxB,EAAY,KAAAF,EAAM,MAAAiB,CAAM,EAC/CU,EAAyB,KAE7B,OAAI/B,IAAgB,KAET0B,EAAK1B,CAAW,EACzB+B,EAAQ/B,EAAY8B,EAAgB,KAC3B,kBAAe9B,CAAW,EACnC+B,KAAQ,gBAAa/B,EAAa8B,EAAgB,EAElDC,EAAQC,GAAYF,EAAgB,GAIpC,EAAAG,QAAA,cAAC1B,EAAA,CACC,KAAMW,EACN,KAAMD,EACN,SAAUT,EACV,sBAAuBb,EACvB,QAASC,EACT,UAAWE,GAEX,EAAAmC,QAAA,cAAC,OACC,GAAIjB,EACJ,SAAU,EACV,QAASb,EACT,UAASe,EACT,UAAWO,EACV,GAAG5B,EACJ,MAAOa,EACP,IAAKd,EACJ,GAAIsB,GAAQ,CAAE,KAAML,EAAM,aAAcS,CAAU,GAElDK,GAAQ,MACP,EAAAM,QAAA,cAAC,OACC,aAAW,GAAAT,gCAA2C,CACpD,8CAA8E,EAAG,CAACL,CACpF,CAAC,GAEAQ,CACH,EAEDO,GAAcjC,EAAUR,EAAO,CAACC,CAAS,EACzCqC,EACA,CAACtC,EAAM,mBACN,EAAAwC,QAAA,cAACE,GAAA,CACE,GAAIvB,GAAY,CAACiB,EAAuB,CAAE,IAAK,KAAKjB,CAAQ,EAAG,EAAI,CAAC,EACrE,IAAKG,EACL,MAAOM,EACP,MAAOnB,EACP,UAAWR,EACX,KAAMwB,EACN,WAAYZ,EACZ,KAAMD,EACN,KAAMD,EACN,UAAWO,EACX,mBAAoBkB,EACpB,SAAUf,GAAY,EACxB,CAEJ,CACF,CAEJ,EExHA,IAAMsB,GAAY,CAACC,EAAuBC,EAAiB,MAAW,CACpE,MAAO,+BAA+DD,CAAa,SACnF,KAAM,+BAA+DA,CAAa,QAClF,eAAAC,CACF,GAEMC,GAASC,EAAcJ,GAAU,SAAU,EAAI,CAAC,EAEhDK,GAAQD,EAAcJ,GAAU,QAAS,EAAI,CAAC,EAE9CM,GAAOF,EAAcJ,GAAU,MAAM,CAAC,EAEtCO,GAAOH,EAAcJ,GAAU,MAAM,CAAC,EVHrC,IAAMQ,GAAoC,CAC/C,SAAU,YACV,WAAYC,GACZ,UAAW,IACX,YAAa,GACb,aAAc,GACd,iBAAkB,GAClB,UAAW,QACX,oBACA,uBACA,KAAM,QACN,MAAO,QACP,aAAc,sBACd,QAASC,GAAKA,EAAE,QAAUA,EAAE,OAAS,MACvC,EAEO,SAASC,GAAeC,EAA4B,CACzD,IAAIC,EAAsC,CACxC,GAAGL,GACH,GAAGI,CACL,EACME,EAAqBF,EAAM,oBAAsB,KACjDG,EAAUH,EAAM,QAChB,CAACI,EAAWC,CAAc,KAAI,YAAS,EAAI,EAC3CC,KAAe,UAAuB,IAAI,EAC1CC,KAAwB,UAAuB,IAAI,EACnD,CAAE,iBAAAC,EAAkB,cAAAC,EAAe,MAAAC,CAAM,EAAIC,GAAkBV,CAAc,EAC7E,CAAE,UAAAW,EAAW,MAAAC,EAAO,IAAAC,EAAK,YAAAC,EAAa,QAAAC,CAAQ,EAAIf,EAExD,SAASgB,EAAaC,EAAyB,CAC7C,IAAMC,KAAmB,GAAAC,qCAEvB,8BAA8CF,CAAQ,GACtD,CAAE,iCAAiD,EAAGJ,CAAI,CAC5D,EACA,OAAOO,EAAKT,CAAS,EACjBA,EAAU,CACR,SAAAM,EACA,IAAAJ,EACA,iBAAAK,CACF,CAAC,KACD,GAAAC,SAAGD,EAAkBG,EAAeV,CAAS,CAAC,CACpD,CAEA,SAASW,GAAc,CACjBpB,IACFE,EAAe,EAAI,EACnBmB,EAAM,KAAK,EAEf,CAEA,OAAAC,GAA0B,IAAM,CA9DlC,IAAAC,EAAAC,EAAAC,EA+DI,GAAIzB,EAAS,CACX,IAAM0B,EAAQvB,EAAa,QAAS,iBAAiB,kBAAkB,EACjEJ,EAAqBK,GAAA,YAAAA,EAAuB,QAC5CuB,GAAe5B,GAAA,YAAAA,EAAoB,wBAAwB,SAAU,EAErE6B,EAAM,GACNC,GAAQN,EAAAzB,EAAe,WAAf,YAAAyB,EAAyB,SAAS,OAC5CO,EAAa,EACbC,EAAQ,EAyBZ,GAvBA,MAAM,KAAKL,CAAK,EACb,QAAQ,EACR,QAAQ,CAACM,EAAGC,IAAM,CACjB,IAAMC,EAAOF,EACbE,EAAK,UAAU,8BAA8C,EAEzDD,EAAI,IAAGC,EAAK,QAAQ,UAAY,GAAGjC,CAAS,IAE3CiC,EAAK,QAAQ,MAAKA,EAAK,QAAQ,IAAML,EAAQ,MAAQ,OAE1D,IAAIM,EAAIL,GAAc7B,EAAY,GAAM,IAAMA,EAAY,EAAI2B,EAAMK,GAChE,CAACJ,GAASH,EAAM,OAAS,IAC3BS,GAAKR,GAGPO,EAAK,MAAM,YAAY,MAAO,GAAGL,EAAQM,EAAIA,EAAI,EAAE,IAAI,EACvDD,EAAK,MAAM,YAAY,MAAO,GAAGN,CAAG,EAAE,EACtCM,EAAK,MAAM,YAAY,MAAO,GAAG,GAAKjC,EAAY8B,EAAQ,EAAE,EAAE,EAE9DD,GAAcI,EAAK,aACnBH,GAAS,IACX,CAAC,EAEChC,GAAsB8B,GAAS5B,EAAW,CAC5C,IAAMmC,EAAaN,EAAa,GAE1BO,IAAkBZ,GAAAD,EAAAE,GAAA,YAAAA,EAAQ,KAAR,YAAAF,EAAY,0BAAZ,YAAAC,EAAqC,SAAU,EACvE1B,EAAmB,MAAM,UAAY,GAAGqC,EAAaC,CAAe,IACtE,CAEA,GAAItC,GAAsB8B,GAAS,CAAC5B,EAAW,CAC7C,IAAMqC,EAAmB,MAAM,KAAKZ,CAAK,EAAE,OAAO,CAACa,EAAKP,IAAM,CAE5D,IAAMQ,EADOR,EACW,aACxB,OAAOO,EAAMC,EAAaZ,CAC5B,EAAG,CAAC,EACJ7B,EAAmB,MAAM,UAAY,GAAGuC,CAAgB,IAC1D,CACF,CACF,EAAG,CAACrC,EAAWM,EAAOP,CAAO,CAAC,KAE9B,aAAU,IAAM,CACd,SAASyC,EAAW9C,EAAkB,CAnH1C,IAAA4B,EAoHM,IAAMW,EAAO/B,EAAa,QACtBU,EAAQlB,CAAC,KACV4B,EAAAW,EAAK,cAAc,gBAAgB,IAAnC,MAAAX,EAAsD,QACvDrB,EAAe,EAAK,EACpBmB,EAAM,MAAM,GAEV1B,EAAE,MAAQ,WAAa,SAAS,gBAAkBuC,GAAQA,GAAA,MAAAA,EAAM,SAAS,SAAS,kBACpFhC,EAAe,EAAI,EACnBmB,EAAM,KAAK,EAEf,CAEA,gBAAS,iBAAiB,UAAWoB,CAAU,EAExC,IAAM,CACX,SAAS,oBAAoB,UAAWA,CAAU,CACpD,CACF,EAAG,CAAC5B,CAAO,CAAC,EAGV,EAAA6B,QAAA,cAAC,WACC,IAAKvC,EACL,qBACA,GAAIS,EACJ,aAAc,IAAM,CACdZ,IACFE,EAAe,EAAK,EACpBmB,EAAM,MAAM,EAEhB,EACA,aAAcD,EACd,YAAU,SACV,cAAY,QACZ,gBAAc,iBACd,aAAYtB,EAAe,YAAY,GAEtCO,EAAiB,CAACU,EAAU4B,IAAc,CACzC,IAAMC,EAAuCD,EAAU,OAEnD,CAAE,GAAGjC,CAAM,EADX,CAAE,GAAGA,EAAO,cAAe,MAAO,EAGtC,OACE,EAAAgC,QAAA,cAAC,YAAS,IAAK,KAAK3B,CAAQ,IAC1B,EAAA2B,QAAA,cAAC,OACC,SAAU,GACV,UAAW5B,EAAaC,CAAQ,EAChC,eAAcf,EACd,MAAO4C,EACP,IAAK,KAAK7B,CAAQ,IAEjB4B,EAAU,IAAI,CAAC,CAAE,QAAAE,EAAS,MAAOC,CAAW,IAEzC,EAAAJ,QAAA,cAACK,GAAA,CACE,GAAGD,EACJ,QAAS9C,EACT,YAAaoB,EACb,KAAMd,EAAcwC,EAAW,QAASA,EAAW,WAAW,EAC9D,IAAK,KAAKA,EAAW,GAAG,IAEvBD,CACH,CAEH,EAED,EAAAH,QAAA,cAAC,OACC,IAAKtC,EACL,GAAG,qBACH,2CACA,MAAO,CACL,MAAO,OACP,QAASuC,EAAU,OAAS,EAAI,EAAI,EACpC,WAAY,sBACd,GAEC5C,CACH,CACF,CACF,CAEJ,CAAC,CACH,CAEJ","names":["src_exports","__export","Bounce","Flip","Icons","Slide","ToastContainer","Zoom","collapseToast","cssTransition","toast","useToastContainer","__toCommonJS","injectStyle","css","head","style","import_react","isNum","v","isStr","isFn","isId","parseClassName","getAutoCloseDelay","toastAutoClose","containerAutoClose","canBeRendered","content","import_react","collapseToast","node","done","duration","scrollHeight","style","cssTransition","enter","exit","appendPosition","collapse","collapseDuration","children","position","preventExitTransition","done","nodeRef","isIn","playToast","enterClassName","exitClassName","animationStep","node","classToToken","onEntered","e","onExited","collapseToast","React","import_react","toToastItem","toast","status","renderContent","content","props","isPaused","isStr","isFn","import_react","CloseButton","closeToast","theme","ariaLabel","React","e","import_react","import_clsx","ProgressBar","delay","isRunning","closeToast","type","hide","className","controlledProgress","progress","rtl","isIn","theme","isHidden","style","defaultClassName","cx","classNames","isFn","animationEvent","React","import_clsx","import_react","TOAST_ID","genToastId","createContainerObserver","id","containerProps","dispatchChanges","toastKey","toastCount","queue","snapshot","props","toasts","listeners","observe","notify","cb","shouldIgnoreToast","containerId","toastId","updateId","containerMismatch","isDuplicate","toggle","v","t","_a","markAsRemoved","_b","removeToast","clearQueue","addActiveToast","toast","isNew","toToastItem","content","options","data","staleId","delay","isNotAnUpdate","toastProps","_","parseClassName","getAutoCloseDelay","reason","toastToRemove","canBeRendered","activeToast","isNum","p","fn","containers","renderQueue","listeners","dispatchChanges","data","cb","hasContainers","flushRenderQueue","v","pushToast","getToast","id","containerId","_a","isToastActive","isActive","c","removeToast","params","isId","container","clearWaitingQueue","p","content","options","canBeRendered","registerToggle","opts","toggleToast","opt","registerContainer","props","notify","createContainerObserver","unobserve","onChange","getToastId","options","isStr","isNum","genToastId","dispatchToast","content","pushToast","mergeOptions","type","createToastByType","toast","handlePromise","promise","pending","error","success","id","resetParams","resolver","input","result","baseParams","params","p","isFn","err","dismiss","removeToast","clearWaitingQueue","isToastActive","toastId","getToast","oldOptions","oldContent","nextOptions","onChange","opts","toggleToast","import_react","useToastContainer","props","_a","subscribe","getSnapshot","setProps","registerContainer","snapshot","getToastToRender","cb","toRender","toast","position","p","isToastActive","import_react","useToast","props","isRunning","setIsRunning","preventExitTransition","setPreventExitTransition","toastRef","drag","autoClose","pauseOnHover","closeToast","onClick","closeOnClick","registerToggle","bindFocusEvents","unbindFocusEvents","pauseToast","playToast","onDragStart","e","bindDragEvents","toast","onDragTransitionEnd","top","bottom","left","right","onDragMove","onDragEnd","unbindDragEvents","translate","eventHandlers","import_react","useIsomorphicLayoutEffect","import_clsx","import_react","import_react","Svg","theme","type","isLoading","rest","React","Warning","props","Info","Success","Error","Spinner","Icons","maybeIcon","getIcon","icon","Icon","iconProps","isFn","Toast","props","isRunning","preventExitTransition","toastRef","eventHandlers","playToast","useToast","closeButton","children","autoClose","onClick","type","hideProgressBar","closeToast","Transition","position","className","style","progressClassName","updateId","role","progress","rtl","toastId","deleteToast","isIn","isLoading","closeOnClick","theme","ariaLabel","defaultClassName","cx","cssClasses","isFn","icon","getIcon","isProgressControlled","closeButtonProps","Close","CloseButton","React","renderContent","ProgressBar","getConfig","animationName","appendPosition","Bounce","cssTransition","Slide","Zoom","Flip","defaultProps","Bounce","e","ToastContainer","props","containerProps","underToastChildren","stacked","collapsed","setIsCollapsed","containerRef","underToastChildrenRef","getToastToRender","isToastActive","count","useToastContainer","className","style","rtl","containerId","hotKeys","getClassName","position","defaultClassName","cx","isFn","parseClassName","collapseAll","toast","useIsomorphicLayoutEffect","_a","_b","_c","nodes","heightOffset","gap","isTop","usedHeight","prevS","n","i","node","y","nodeOffset","firstNodeheight","heightOfAllNodes","acc","nodeHeight","focusFirst","React","toastList","containerStyle","content","toastProps","Toast"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/style.css","../src/utils/propValidator.ts","../src/utils/cssTransition.tsx","../src/utils/collapseToast.ts","../src/utils/mapper.ts","../src/components/CloseButton.tsx","../src/components/ProgressBar.tsx","../src/components/ToastContainer.tsx","../src/core/genToastId.ts","../src/core/containerObserver.ts","../src/core/store.ts","../src/core/toast.ts","../src/hooks/useToastContainer.ts","../src/hooks/useToast.ts","../src/hooks/useIsomorphicLayoutEffect.ts","../src/components/Toast.tsx","../src/components/Icons.tsx","../src/components/Transitions.tsx"],"sourcesContent":["import './style.css';\n\nexport { cssTransition, collapseToast } from './utils';\nexport { ToastContainer, Bounce, Flip, Slide, Zoom, Icons } from './components';\nexport type { IconProps, CloseButton } from './components';\nexport type { ToastPromiseParams } from './core';\nexport { toast } from './core';\nexport { useToastContainer } from './hooks';\nexport type {\n TypeOptions,\n Theme,\n ToastPosition,\n ToastContentProps,\n ToastContent,\n ToastTransition,\n ToastClassName,\n ClearWaitingQueueParams,\n DraggableDirection,\n ToastOptions,\n UpdateOptions,\n ToastContainerProps,\n ToastTransitionProps,\n Id,\n ToastItem,\n ClearWaitingQueueFunc,\n OnChangeCallback,\n ToastIcon\n} from './types';\nexport type { CloseButtonProps } from './components/CloseButton';\n","\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 = <T>(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<ToastContentProps>(content as ReactElement<any>, {\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 <button\n className={`${Default.CSS_NAMESPACE}__close-button ${Default.CSS_NAMESPACE}__close-button--${theme}`}\n type=\"button\"\n onClick={e => {\n e.stopPropagation();\n closeToast(true);\n }}\n aria-label={ariaLabel}\n >\n <svg aria-hidden=\"true\" viewBox=\"0 0 14 16\">\n <path\n fillRule=\"evenodd\"\n d=\"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z\"\n />\n </svg>\n </button>\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 <div className={`${Default.CSS_NAMESPACE}__progress-bar--wrp`} data-hidden={isHidden}>\n <div\n className={`${Default.CSS_NAMESPACE}__progress-bar--bg ${Default.CSS_NAMESPACE}__progress-bar-theme--${theme} ${Default.CSS_NAMESPACE}__progress-bar--${type}`}\n />\n <div\n role=\"progressbar\"\n aria-hidden={isHidden ? 'true' : 'false'}\n aria-label=\"notification timer\"\n className={classNames}\n style={style}\n {...animationEvent}\n />\n </div>\n );\n}\n","import cx from 'clsx';\nimport React, { Fragment, 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 underToastChildren = props.underToastChildren || null;\n const stacked = props.stacked;\n const [collapsed, setIsCollapsed] = useState(true);\n const containerRef = useRef<HTMLDivElement>(null);\n const underToastChildrenRef = useRef<HTMLDivElement>(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 underToastChildren = underToastChildrenRef?.current;\n const heightOffset = underToastChildren?.getBoundingClientRect().height || 0;\n\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 let y = usedHeight * (collapsed ? 0.2 : 1) + (collapsed ? 0 : gap * i);\n if (!isTop && nodes.length > 1) {\n y += heightOffset;\n }\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 if (underToastChildren && isTop && collapsed) {\n const nodeOffset = usedHeight * 0.2;\n\n const firstNodeheight = nodes?.[0]?.getBoundingClientRect()?.height || 0;\n underToastChildren.style.marginTop = `${nodeOffset + firstNodeheight}px`;\n }\n\n if (underToastChildren && isTop && !collapsed) {\n const heightOfAllNodes = Array.from(nodes).reduce((acc, n) => {\n const node = n as HTMLElement;\n const nodeHeight = node.offsetHeight;\n return acc + nodeHeight + gap;\n }, 0);\n underToastChildren.style.marginTop = `${heightOfAllNodes}px`;\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 <section\n ref={containerRef}\n className={Default.CSS_NAMESPACE as string}\n id={containerId as string}\n onMouseEnter={e => {\n if (underToastChildrenRef?.current && underToastChildrenRef.current.contains(e.target as Node)) {\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 <Fragment key={`f-${position}`}>\n <div\n tabIndex={-1}\n className={getClassName(position)}\n data-stacked={stacked}\n style={containerStyle}\n key={`c-${position}`}\n >\n {toastList.map(({ content, props: toastProps }) => {\n return (\n <Toast\n {...toastProps}\n stacked={stacked}\n collapseAll={collapseAll}\n isIn={isToastActive(toastProps.toastId, toastProps.containerId)}\n key={`t-${toastProps.key}`}\n >\n {content}\n </Toast>\n );\n })}\n\n <div\n ref={underToastChildrenRef}\n id=\"underToastChildren\"\n className={`${Default.CSS_NAMESPACE}__under-toast-children`}\n style={{\n width: '100%',\n opacity: toastList.length > 1 ? 1 : 0,\n transition: 'all 0.3s ease-in-out'\n }}\n >\n {underToastChildren}\n </div>\n </div>\n </Fragment>\n );\n })}\n </section>\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<typeof createContainerObserver>;\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<Id, Toast>();\n const listeners = new Set<Notify>();\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 = <TData = unknown>(content: ToastContent<TData>, 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<any>;\n options: NotValidatedToastProps;\n}\n\ninterface RemoveParams {\n id?: Id;\n containerId: Id;\n}\n\nconst containers = new Map<Id, ContainerObserver>();\nlet renderQueue: EnqueuedToast[] = [];\nconst listeners = new Set<OnChangeCallback>();\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<TData>(content: ToastContent<TData>, 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<TData>(options?: ToastOptions<TData>) {\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<TData>(content: ToastContent<TData>, 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<TData>(type: string, options?: ToastOptions<TData>) {\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 <TData = unknown>(content: ToastContent<TData>, options?: ToastOptions<TData>) =>\n dispatchToast(content, mergeOptions(type, options));\n}\n\nfunction toast<TData = unknown>(content: ToastContent<TData>, options?: ToastOptions<TData>) {\n return dispatchToast(content, mergeOptions(Type.DEFAULT, options));\n}\n\ntoast.loading = <TData = unknown>(content: ToastContent<TData>, options?: ToastOptions<TData>) =>\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<TData = unknown, TError = unknown, TPending = unknown> {\n pending?: string | UpdateOptions<TPending>;\n success?: string | UpdateOptions<TData>;\n error?: string | UpdateOptions<TError>;\n}\n\nfunction handlePromise<TData = unknown, TError = unknown, TPending = unknown>(\n promise: Promise<TData> | (() => Promise<TData>),\n { pending, error, success }: ToastPromiseParams<TData, TError, TPending>,\n options?: ToastOptions<TData>\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<TPending>);\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 = <T>(type: TypeOptions, input: string | UpdateOptions<T> | 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<T>);\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 <MyErrorComponent message={data.message} />\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-v2/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: () => <div>New content</div>\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 = <TData = unknown>(toastId: Id, options: UpdateOptions<TData> = {}) => {\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<T>(cb: (position: ToastPosition, toastList: Toast[]) => T) {\n if (!snapshot) return [];\n\n const toRender = new Map<ToastPosition, Toast[]>();\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<HTMLDivElement>(null);\n const drag = useRef<Draggable>({\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<HTMLElement>) {\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<HTMLElement>) {\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<HTMLElement> = {\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<ToastProps> = 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 <Transition\n isIn={isIn}\n done={deleteToast}\n position={position}\n preventExitTransition={preventExitTransition}\n nodeRef={toastRef}\n playToast={playToast}\n >\n <div\n id={toastId as string}\n tabIndex={0}\n onClick={onClick}\n data-in={isIn}\n className={cssClasses}\n {...eventHandlers}\n style={style}\n ref={toastRef}\n {...(isIn && { role: role, 'aria-label': ariaLabel })}\n >\n {icon != null && (\n <div\n className={cx(`${Default.CSS_NAMESPACE}__toast-icon`, {\n [`${Default.CSS_NAMESPACE}--animate-icon ${Default.CSS_NAMESPACE}__zoom-enter`]: !isLoading\n })}\n >\n {icon}\n </div>\n )}\n {renderContent(children, props, !isRunning)}\n {Close}\n {!props.customProgressBar && (\n <ProgressBar\n {...(updateId && !isProgressControlled ? { key: `p-${updateId}` } : {})}\n rtl={rtl}\n theme={theme}\n delay={autoClose as number}\n isRunning={isRunning}\n isIn={isIn}\n closeToast={closeToast}\n hide={hideProgressBar}\n type={type}\n className={progressClassName}\n controlledProgress={isProgressControlled}\n progress={progress || 0}\n />\n )}\n </div>\n </Transition>\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<SVGSVGElement> & IconProps;\n\nconst Svg: React.FC<BuiltInIconProps> = ({ theme, type, isLoading, ...rest }) => (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"100%\"\n height=\"100%\"\n fill={theme === 'colored' ? 'currentColor' : `var(--toastify-icon-color-${type})`}\n {...rest}\n />\n);\n\nfunction Warning(props: BuiltInIconProps) {\n return (\n <Svg {...props}>\n <path d=\"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z\" />\n </Svg>\n );\n}\n\nfunction Info(props: BuiltInIconProps) {\n return (\n <Svg {...props}>\n <path d=\"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z\" />\n </Svg>\n );\n}\n\nfunction Success(props: BuiltInIconProps) {\n return (\n <Svg {...props}>\n <path d=\"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z\" />\n </Svg>\n );\n}\n\nfunction Error(props: BuiltInIconProps) {\n return (\n <Svg {...props}>\n <path d=\"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z\" />\n </Svg>\n );\n}\n\nfunction Spinner() {\n return <div className={`${Default.CSS_NAMESPACE}__spinner`} />;\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<ToastProps, 'theme' | 'icon' | 'type' | 'isLoading'>;\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"],"mappings":"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","names":["src_exports","__export","Bounce","Flip","Icons","Slide","ToastContainer","Zoom","collapseToast","cssTransition","toast","useToastContainer","__toCommonJS","injectStyle","css","head","style","import_react","isNum","v","isStr","isFn","isId","parseClassName","getAutoCloseDelay","toastAutoClose","containerAutoClose","canBeRendered","content","import_react","collapseToast","node","done","duration","scrollHeight","style","cssTransition","enter","exit","appendPosition","collapse","collapseDuration","children","position","preventExitTransition","done","nodeRef","isIn","playToast","enterClassName","exitClassName","animationStep","node","classToToken","onEntered","e","onExited","collapseToast","React","import_react","toToastItem","toast","status","renderContent","content","props","isPaused","isStr","isFn","import_react","CloseButton","closeToast","theme","ariaLabel","React","e","import_react","import_clsx","ProgressBar","delay","isRunning","closeToast","type","hide","className","controlledProgress","progress","rtl","isIn","theme","isHidden","style","defaultClassName","cx","classNames","isFn","animationEvent","React","import_clsx","import_react","TOAST_ID","genToastId","createContainerObserver","id","containerProps","dispatchChanges","toastKey","toastCount","queue","snapshot","props","toasts","listeners","observe","notify","cb","shouldIgnoreToast","containerId","toastId","updateId","containerMismatch","isDuplicate","toggle","v","t","_a","markAsRemoved","_b","removeToast","clearQueue","addActiveToast","toast","isNew","toToastItem","content","options","data","staleId","delay","isNotAnUpdate","toastProps","_","parseClassName","getAutoCloseDelay","reason","toastToRemove","canBeRendered","activeToast","isNum","p","fn","containers","renderQueue","listeners","dispatchChanges","data","cb","hasContainers","flushRenderQueue","v","pushToast","getToast","id","containerId","_a","isToastActive","isActive","c","removeToast","params","isId","container","clearWaitingQueue","p","content","options","canBeRendered","registerToggle","opts","toggleToast","opt","registerContainer","props","notify","createContainerObserver","unobserve","onChange","getToastId","options","isStr","isNum","genToastId","dispatchToast","content","pushToast","mergeOptions","type","createToastByType","toast","handlePromise","promise","pending","error","success","id","resetParams","resolver","input","result","baseParams","params","p","isFn","err","dismiss","removeToast","clearWaitingQueue","isToastActive","toastId","getToast","oldOptions","oldContent","nextOptions","onChange","opts","toggleToast","import_react","useToastContainer","props","_a","subscribe","getSnapshot","setProps","registerContainer","snapshot","getToastToRender","cb","toRender","toast","position","p","isToastActive","import_react","useToast","props","isRunning","setIsRunning","preventExitTransition","setPreventExitTransition","toastRef","drag","autoClose","pauseOnHover","closeToast","onClick","closeOnClick","registerToggle","bindFocusEvents","unbindFocusEvents","pauseToast","playToast","onDragStart","e","bindDragEvents","toast","onDragTransitionEnd","top","bottom","left","right","onDragMove","onDragEnd","unbindDragEvents","translate","eventHandlers","import_react","useIsomorphicLayoutEffect","import_clsx","import_react","import_react","Svg","theme","type","isLoading","rest","React","Warning","props","Info","Success","Error","Spinner","Icons","maybeIcon","getIcon","icon","Icon","iconProps","isFn","Toast","props","isRunning","preventExitTransition","toastRef","eventHandlers","playToast","useToast","closeButton","children","autoClose","onClick","type","hideProgressBar","closeToast","Transition","position","className","style","progressClassName","updateId","role","progress","rtl","toastId","deleteToast","isIn","isLoading","closeOnClick","theme","ariaLabel","defaultClassName","cx","cssClasses","isFn","icon","getIcon","isProgressControlled","closeButtonProps","Close","CloseButton","React","renderContent","ProgressBar","getConfig","animationName","appendPosition","Bounce","cssTransition","Slide","Zoom","Flip","defaultProps","Bounce","e","ToastContainer","props","containerProps","underToastChildren","stacked","collapsed","setIsCollapsed","containerRef","underToastChildrenRef","getToastToRender","isToastActive","count","useToastContainer","className","style","rtl","containerId","hotKeys","getClassName","position","defaultClassName","cx","isFn","parseClassName","collapseAll","toast","useIsomorphicLayoutEffect","_a","_b","_c","nodes","heightOffset","gap","isTop","usedHeight","prevS","n","i","node","y","nodeOffset","firstNodeheight","heightOfAllNodes","acc","nodeHeight","focusFirst","React","toastList","containerStyle","content","toastProps","Toast"]}