react-toastify
Version:
React notification made easy
3 lines • 16.7 kB
JavaScript
"use client";
import{isValidElement as kt}from"react";var $=t=>typeof t=="number"&&!isNaN(t),D=t=>typeof t=="string",A=t=>typeof t=="function",mt=t=>D(t)||$(t),F=t=>D(t)||A(t)?t:null,ft=(t,e)=>t===!1||$(t)&&t>0?t:e,U=t=>kt(t)||D(t)||A(t)||$(t);import pt,{useEffect as Rt,useLayoutEffect as Bt,useRef as wt}from"react";function Z(t,e,o=300){let{scrollHeight:i,style:s}=t;requestAnimationFrame(()=>{s.minHeight="initial",s.height=i+"px",s.transition=`all ${o}ms`,requestAnimationFrame(()=>{s.height="0",s.padding="0",s.margin="0",setTimeout(e,o)})})}function B({enter:t,exit:e,appendPosition:o=!1,collapse:i=!0,collapseDuration:s=300}){return function({children:n,position:c,preventExitTransition:u,done:g,nodeRef:C,isIn:v,playToast:b}){let I=o?`${t}--${c}`:t,N=o?`${e}--${c}`:e,y=wt(0);return Bt(()=>{let d=C.current,f=I.split(" "),P=a=>{a.target===C.current&&(b(),d.removeEventListener("animationend",P),d.removeEventListener("animationcancel",P),y.current===0&&a.type!=="animationcancel"&&d.classList.remove(...f))};d.classList.add(...f),d.addEventListener("animationend",P),d.addEventListener("animationcancel",P)},[]),Rt(()=>{let d=C.current,f=()=>{d.removeEventListener("animationend",f),i?Z(d,g,s):g()};v||(u?f():(y.current=1,d.className+=` ${N}`,d.addEventListener("animationend",f)))},[v]),pt.createElement(pt.Fragment,null,n)}}import{cloneElement as Ft,isValidElement as Ut}from"react";function J(t,e){return{content:tt(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:e}}function tt(t,e,o=!1){return Ut(t)&&!D(t.type)?Ft(t,{closeToast:e.closeToast,toastProps:e,data:e.data,isPaused:o}):A(t)?t({closeToast:e.closeToast,toastProps:e,data:e.data,isPaused:o}):t}import et from"react";function Tt({closeToast:t,theme:e,ariaLabel:o="close"}){return et.createElement("button",{className:`Toastify__close-button Toastify__close-button--${e}`,type:"button",onClick:i=>{i.stopPropagation(),t(!0)},"aria-label":o},et.createElement("svg",{"aria-hidden":"true",viewBox:"0 0 14 16"},et.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"})))}import ot from"react";import gt from"clsx";function Ct({delay:t,isRunning:e,closeToast:o,type:i="default",hide:s,className:l,controlledProgress:n,progress:c,rtl:u,isIn:g,theme:C}){let v=s||n&&c===0,b={animationDuration:`${t}ms`,animationPlayState:e?"running":"paused"};n&&(b.transform=`scaleX(${c})`);let I=gt("Toastify__progress-bar",n?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated",`Toastify__progress-bar-theme--${C}`,`Toastify__progress-bar--${i}`,{["Toastify__progress-bar--rtl"]:u}),N=A(l)?l({rtl:u,type:i,defaultClassName:I}):gt(I,l),y={[n&&c>=1?"onTransitionEnd":"onAnimationEnd"]:n&&c<1?null:()=>{g&&o()}};return ot.createElement("div",{className:"Toastify__progress-bar--wrp","data-hidden":v},ot.createElement("div",{className:`Toastify__progress-bar--bg Toastify__progress-bar-theme--${C} Toastify__progress-bar--${i}`}),ot.createElement("div",{role:"progressbar","aria-hidden":v?"true":"false","aria-label":"notification timer","aria-valuenow":n?Math.round(c*100):void 0,"aria-valuemin":0,"aria-valuemax":100,className:N,style:b,...y}))}import Lt from"clsx";import ct,{useEffect as fe,useRef as pe,useState as Te}from"react";var Vt=1,nt=()=>`${Vt++}`;function Et(t,e,o){let i=1,s=0,l=[],n=[],c=e,u=new Map,g=new Set,C=r=>(g.add(r),()=>g.delete(r)),v=()=>{n=Array.from(u.values()),g.forEach(r=>r())},b=({containerId:r,toastId:a,updateId:p})=>{let S=r?r!==t:t!==1,m=u.has(a)&&p==null;return S||m},I=(r,a)=>{u.forEach(p=>{var S;(a==null||a===p.props.toastId)&&((S=p.toggle)==null||S.call(p,r))})},N=r=>{var a,p;r.isActive&&((p=(a=r.props)==null?void 0:a.onClose)==null||p.call(a,r.removalReason),r.isActive=!1,o(J(r,"removed")))},y=r=>{if(r==null)u.forEach(N);else{let a=u.get(r);a&&N(a)}v()},d=()=>{s-=l.length,l=[]},f=r=>{var m,E;let{toastId:a,updateId:p}=r.props,S=p==null;r.staleId&&u.delete(r.staleId),r.isActive=!0,u.set(a,r),v(),o(J(r,S?"added":"updated")),S&&((E=(m=r.props).onOpen)==null||E.call(m))};return{id:t,props:c,observe:C,toggle:I,removeToast:y,toasts:u,clearQueue:d,buildToast:(r,a)=>{if(b(a))return;let{toastId:p,updateId:S,data:m,staleId:E,delay:x}=a,L=S==null;L&&s++;let _={...c,style:c.toastStyle,key:i++,...Object.fromEntries(Object.entries(a).filter(([k,R])=>R!=null)),toastId:p,updateId:S,data:m,isIn:!1,className:F(a.className||c.toastClassName),progressClassName:F(a.progressClassName||c.progressClassName),autoClose:a.isLoading?!1:ft(a.autoClose,c.autoClose),closeToast(k){let R=u.get(p);R&&(R.removalReason=k,y(p))},deleteToast(){if(u.get(p)!=null){if(u.delete(p),s--,s<0&&(s=0),l.length>0){f(l.shift());return}v()}}};_.closeButton=c.closeButton,a.closeButton===!1||U(a.closeButton)?_.closeButton=a.closeButton:a.closeButton===!0&&(_.closeButton=U(c.closeButton)?c.closeButton:!0);let w={content:r,props:_,staleId:E};c.limit&&c.limit>0&&s>c.limit&&L?l.push(w):$(x)?setTimeout(()=>{f(w)},x):f(w)},setProps(r){c=r},setToggle:(r,a)=>{let p=u.get(r);p&&(p.toggle=a)},isToastActive:r=>{var a;return(a=u.get(r))==null?void 0:a.isActive},getSnapshot:()=>n}}var h=new Map,H=[],st=new Set,zt=t=>st.forEach(e=>e(t)),Pt=()=>h.size>0;function Qt(){H.forEach(t=>at(t.content,t.options)),H=[]}var vt=(t,{containerId:e})=>{var o;return(o=h.get(e||1))==null?void 0:o.toasts.get(t)};function Q(t,e){var i;if(e)return!!((i=h.get(e))!=null&&i.isToastActive(t));let o=!1;return h.forEach(s=>{s.isToastActive(t)&&(o=!0)}),o}function St(t){if(!Pt()){H=H.filter(e=>t!=null&&e.options.toastId!==t);return}if(t==null||mt(t))h.forEach(e=>{e.removeToast(t)});else if(t&&("containerId"in t||"id"in t)){let e=h.get(t.containerId);e?e.removeToast(t.id):h.forEach(o=>{o.removeToast(t.id)})}}var It=(t={})=>{h.forEach(e=>{e.props.limit&&(!t.containerId||e.id===t.containerId)&&e.clearQueue()})};function at(t,e){U(t)&&(Pt()||H.push({content:t,options:e}),h.forEach(o=>{o.buildToast(t,e)}))}function bt(t){var e;(e=h.get(t.containerId||1))==null||e.setToggle(t.id,t.fn)}function rt(t,e){h.forEach(o=>{(e==null||!(e!=null&&e.containerId)||(e==null?void 0:e.containerId)===o.id)&&o.toggle(t,e==null?void 0:e.id)})}function yt(t){let e=t.containerId||1;return{subscribe(o){let i=Et(e,t,zt);h.set(e,i);let s=i.observe(o);return Qt(),()=>{s(),h.delete(e)}},setProps(o){var i;(i=h.get(e))==null||i.setProps(o)},getSnapshot(){var o;return(o=h.get(e))==null?void 0:o.getSnapshot()}}}function At(t){return st.add(t),()=>{st.delete(t)}}function Wt(t){return t&&(D(t.toastId)||$(t.toastId))?t.toastId:nt()}function V(t,e){return at(t,e),e.toastId}function W(t,e){return{...e,type:e&&e.type||t,toastId:Wt(e)}}function G(t){return(e,o)=>V(e,W(t,o))}function T(t,e){return V(t,W("default",e))}T.loading=(t,e)=>V(t,W("default",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...e}));function Gt(t,{pending:e,error:o,success:i},s){let l;e&&(l=D(e)?T.loading(e,s):T.loading(e.render,{...s,...e}));let n={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},c=(g,C,v)=>{if(C==null){T.dismiss(l);return}let b={type:g,...n,...s,data:v},I=D(C)?{render:C}:C;return l?T.update(l,{...b,...I}):T(I.render,{...b,...I}),v},u=A(t)?t():t;return u.then(g=>c("success",i,g)).catch(g=>c("error",o,g)),u}T.promise=Gt;T.success=G("success");T.info=G("info");T.error=G("error");T.warning=G("warning");T.warn=T.warning;T.dark=(t,e)=>V(t,W("default",{theme:"dark",...e}));function Xt(t){St(t)}T.dismiss=Xt;T.clearWaitingQueue=It;T.isActive=Q;T.update=(t,e={})=>{let o=vt(t,e);if(o){let{props:i,content:s}=o,l={delay:100,...i,...e,toastId:e.toastId||t,updateId:nt()};l.toastId!==t&&(l.staleId=t);let n=l.render||s;delete l.render,V(n,l)}};T.done=t=>{T.update(t,{progress:1})};T.onChange=At;T.play=t=>rt(!0,t);T.pause=t=>rt(!1,t);import{useRef as qt,useSyncExternalStore as Kt}from"react";function ht(t){var n;let{subscribe:e,getSnapshot:o,setProps:i}=qt(yt(t)).current;i(t);let s=(n=Kt(e,o,o))==null?void 0:n.slice();function l(c){if(!s)return[];let u=new Map;return t.newestOnTop&&s.reverse(),s.forEach(g=>{let{position:C}=g.props;u.has(C)||u.set(C,[]),u.get(C).push(g)}),Array.from(u,g=>c(g[0],g[1]))}return{getToastToRender:l,isToastActive:Q,count:s==null?void 0:s.length}}import{useEffect as jt,useRef as Nt,useState as xt}from"react";function _t(t){let[e,o]=xt(!1),[i,s]=xt(!1),l=Nt(null),n=Nt({start:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,didMove:!1}).current,{autoClose:c,pauseOnHover:u,closeToast:g,onClick:C,closeOnClick:v}=t;bt({id:t.toastId,containerId:t.containerId,fn:o}),jt(()=>{if(t.pauseOnFocusLoss)return b(),()=>{I()}},[t.pauseOnFocusLoss]);function b(){document.hasFocus()||f(),window.addEventListener("focus",d),window.addEventListener("blur",f)}function I(){window.removeEventListener("focus",d),window.removeEventListener("blur",f)}function N(m){if(t.draggable===!0||t.draggable===m.pointerType){P();let E=l.current;n.canCloseOnClick=!0,n.canDrag=!0,E.style.transition="none",t.draggableDirection==="x"?(n.start=m.clientX,n.removalDistance=E.offsetWidth*(t.draggablePercent/100)):(n.start=m.clientY,n.removalDistance=E.offsetHeight*(t.draggablePercent===80?t.draggablePercent*1.5:t.draggablePercent)/100)}}function y(m){let{top:E,bottom:x,left:L,right:_}=l.current.getBoundingClientRect();m.pointerType==="mouse"&&t.pauseOnHover&&m.clientX>=L&&m.clientX<=_&&m.clientY>=E&&m.clientY<=x?f():d()}function d(){o(!0)}function f(){o(!1)}function P(){n.didMove=!1,document.addEventListener("pointermove",a),document.addEventListener("pointerup",p)}function r(){document.removeEventListener("pointermove",a),document.removeEventListener("pointerup",p)}function a(m){let E=l.current;if(n.canDrag&&E){n.didMove=!0,e&&f(),t.draggableDirection==="x"?n.delta=m.clientX-n.start:n.delta=m.clientY-n.start,n.start!==m.clientX&&(n.canCloseOnClick=!1);let x=t.draggableDirection==="x"?`${n.delta}px, var(--y)`:`0, calc(${n.delta}px + var(--y))`;E.style.transform=`translate3d(${x},0)`,E.style.opacity=`${1-Math.abs(n.delta/n.removalDistance)}`}}function p(){r();let m=l.current;if(n.canDrag&&n.didMove&&m){if(n.canDrag=!1,Math.abs(n.delta)>n.removalDistance){s(!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 S={onPointerDown:N,onPointerUp:y};return c&&u&&(S.onMouseEnter=f,t.stacked||(S.onMouseLeave=d)),v&&(S.onClick=m=>{C&&C(m),n.canCloseOnClick&&g(!0)}),{playToast:d,pauseToast:f,isRunning:e,preventExitTransition:i,toastRef:l,eventHandlers:S}}import{useEffect as Zt,useLayoutEffect as Jt}from"react";var Ot=typeof window!="undefined"?Jt:Zt;import it from"clsx";import K,{cloneElement as le,isValidElement as ce}from"react";import O,{cloneElement as te,isValidElement as ee}from"react";var q=({theme:t,type:e,isLoading:o,...i})=>O.createElement("svg",{viewBox:"0 0 24 24",width:"100%",height:"100%",fill:t==="colored"?"currentColor":`var(--toastify-icon-color-${e})`,...i});function oe(t){return O.createElement(q,{...t},O.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 ne(t){return O.createElement(q,{...t},O.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 se(t){return O.createElement(q,{...t},O.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 ae(t){return O.createElement(q,{...t},O.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 re(){return O.createElement("div",{className:"Toastify__spinner"})}var X={info:ne,warning:oe,success:se,error:ae,spinner:re},ie=t=>t in X;function Dt({theme:t,type:e,isLoading:o,icon:i}){let s=null,l={theme:t,type:e};return i===!1||(A(i)?s=i({...l,isLoading:o}):ee(i)?s=te(i,l):o?s=X.spinner():ie(e)&&(s=X[e](l))),s}var Mt=t=>{let{isRunning:e,preventExitTransition:o,toastRef:i,eventHandlers:s,playToast:l}=_t(t),{closeButton:n,children:c,autoClose:u,onClick:g,type:C,hideProgressBar:v,closeToast:b,transition:I,position:N,className:y,style:d,progressClassName:f,updateId:P,role:r,progress:a,rtl:p,toastId:S,deleteToast:m,isIn:E,isLoading:x,closeOnClick:L,theme:_,ariaLabel:w}=t,k=it("Toastify__toast",`Toastify__toast-theme--${_}`,`Toastify__toast--${C}`,{["Toastify__toast--rtl"]:p},{["Toastify__toast--close-on-click"]:L}),R=A(y)?y({rtl:p,position:N,type:C,defaultClassName:k}):it(k,y),ut=Dt(t),dt=!!a||!u,j={closeToast:b,type:C,theme:_},z=null;return n===!1||(A(n)?z=n(j):ce(n)?z=le(n,j):z=Tt(j)),K.createElement(I,{isIn:E,done:m,position:N,preventExitTransition:o,nodeRef:i,playToast:l},K.createElement("div",{id:S,tabIndex:0,onClick:g,"data-in":E,className:R,...s,style:d,ref:i,...E&&{role:r,"aria-label":w}},ut!=null&&K.createElement("div",{className:it("Toastify__toast-icon",{["Toastify--animate-icon Toastify__zoom-enter"]:!x})},ut),tt(c,t,!e),z,!t.customProgressBar&&K.createElement(Ct,{...P&&!dt?{key:`p-${P}`}:{},rtl:p,theme:_,delay:u,isRunning:e,isIn:E,closeToast:b,hide:v,type:C,className:f,controlledProgress:dt,progress:a||0})))};var Y=(t,e=!1)=>({enter:`Toastify--animate Toastify__${t}-enter`,exit:`Toastify--animate Toastify__${t}-exit`,appendPosition:e}),lt=B(Y("bounce",!0)),ue=B(Y("slide",!0)),de=B(Y("zoom")),me=B(Y("flip"));var ge={position:"top-right",transition:lt,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 $t(t){let e={...ge,...t},o=t.stacked,[i,s]=Te(!0),l=pe(null),{getToastToRender:n,isToastActive:c,count:u}=ht(e),{className:g,style:C,rtl:v,containerId:b,hotKeys:I}=e;function N(d){let f=Lt("Toastify__toast-container",`Toastify__toast-container--${d}`,{["Toastify__toast-container--rtl"]:v});return A(g)?g({position:d,rtl:v,defaultClassName:f}):Lt(f,F(g))}function y(){o&&(s(!0),T.play())}return Ot(()=>{var d;if(o){let f=l.current.querySelectorAll('[data-in="true"]'),P=12,r=(d=e.position)==null?void 0:d.includes("top"),a=0,p=0;Array.from(f).reverse().forEach((S,m)=>{let E=S;E.classList.add("Toastify__toast--stacked"),m>0&&(E.dataset.collapsed=`${i}`),E.dataset.pos||(E.dataset.pos=r?"top":"bot");let x=a*(i?.2:1)+(i?0:P*m),L=Math.max(.5,1-(i?p:0));E.style.setProperty("--y",`${r?x:x*-1}px`),E.style.setProperty("--g",`${P}`),E.style.setProperty("--s",`${L}`),a+=E.offsetHeight,p+=.025})}},[i,u,o]),fe(()=>{function d(f){var r;let P=l.current;I(f)&&((r=P==null?void 0:P.querySelector('[tabIndex="0"]'))==null||r.focus(),s(!1),T.pause()),f.key==="Escape"&&(document.activeElement===P||P!=null&&P.contains(document.activeElement))&&(s(!0),T.play())}return document.addEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)}},[I]),ct.createElement("section",{ref:l,className:"Toastify",id:b,onMouseEnter:()=>{o&&(s(!1),T.pause())},onMouseLeave:y,"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text","aria-label":e["aria-label"]},n((d,f)=>{let P=f.length?{...C}:{...C,pointerEvents:"none"};return ct.createElement("div",{tabIndex:-1,className:N(d),"data-stacked":o,style:P,key:`c-${d}`},f.map(({content:r,props:a})=>ct.createElement(Mt,{...a,stacked:o,collapseAll:y,isIn:c(a.toastId,a.containerId),key:`t-${a.key}`},r)))}))}export{lt as Bounce,me as Flip,X as Icons,ue as Slide,$t as ToastContainer,de as Zoom,Z as collapseToast,B as cssTransition,T as toast};
//# sourceMappingURL=unstyled.mjs.map