react-toastify-prim
Version:
React notification made easy
4 lines • 20.3 kB
JavaScript
"use client";
import{useState as mt,useEffect as ut,useRef as K}from"react";function j(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))}j(`: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:not(.Toastify__toast-container--stacked){gap:8px}.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}.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;pointer-events:none}.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}.Toastify__close-all-toast{cursor:pointer;margin-bottom:0;align-items:center;justify-content:center;padding:7px 14px;height:32px;min-height:32px}@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)}}.Toastify__no-animation-enter,.Toastify__no-animation-exit{animation:none}
`);import{isValidElement as Y}from"react";var E=t=>typeof t=="number"&&!isNaN(t),_=t=>typeof t=="string",T=t=>typeof t=="function",B=t=>_(t)||E(t);var k=t=>Y(t)||_(t)||T(t)||E(t);import F,{useEffect as Z,useLayoutEffect as J,useRef as tt}from"react";function D(t,o,e=300){let{scrollHeight:c,style:i}=t;requestAnimationFrame(()=>{i.minHeight="initial",i.height=c+"px",i.transition=`all ${e}ms`,requestAnimationFrame(()=>{i.height="0",i.padding="0",i.margin="0",setTimeout(o,e)})})}function b({enter:t,exit:o,appendPosition:e=!1,collapse:c=!0,collapseDuration:i=300}){return function({children:v,position:C,preventExitTransition:x,done:u,nodeRef:p,isIn:h,playToast:I}){let a=e?`${t}--${C}`:t,n=e?`${o}--${C}`:o,l=tt(0);return J(()=>{let s=p.current,d=a.split(" "),g=$=>{$.target===p.current&&(I(),s.removeEventListener("animationend",g),s.removeEventListener("animationcancel",g),l.current===0&&$.type!=="animationcancel"&&s.classList.remove(...d))};(()=>{s.classList.add(...d),s.addEventListener("animationend",g),s.addEventListener("animationcancel",g)})()},[]),Z(()=>{let s=p.current,d=()=>{s.removeEventListener("animationend",d),c?D(s,u,i):u()};h||(x?d():(()=>{l.current=1,s.className+=` ${n}`,s.addEventListener("animationend",d)})())},[h]),F.createElement(F.Fragment,null,v)}}import{cloneElement as Pt,isValidElement as St}from"react";import Bt from"react";import Ht from"react";import Vt from"clsx";import ie from"clsx";import ce,{useEffect as fe,useRef as de,useState as me}from"react";var et=1,O=()=>`${et++}`;var m=new Map,w=[],z=new Set;var U=()=>m.size>0;var H=(t,{containerId:o})=>{var e;return(e=m.get(o||1))==null?void 0:e.toasts.get(t)};function L(t,o){var c;if(o)return!!((c=m.get(o))!=null&&c.isToastActive(t));let e=!1;return m.forEach(i=>{i.isToastActive(t)&&(e=!0)}),e}function X(t){if(!U()){w=w.filter(o=>t!=null&&o.options.toastId!==t);return}if(t==null||B(t))m.forEach(o=>{o.removeToast(t)});else if(t&&("containerId"in t||"id"in t)){let o=m.get(t.containerId);o?o.removeToast(t.id):m.forEach(e=>{e.removeToast(t.id)})}}var V=(t={})=>{m.forEach(o=>{o.props.limit&&(!t.containerId||o.id===t.containerId)&&o.clearQueue()})};function Q(t,o){k(t)&&(U()||w.push({content:t,options:o}),m.forEach(e=>{e.buildToast(t,o)}))}function M(t,o){m.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 W(t){return z.add(t),()=>{z.delete(t)}}function st(t){return t&&(_(t.toastId)||E(t.toastId))?t.toastId:O()}function P(t,o){return Q(t,o),o.toastId}function A(t,o){return{...o,type:o&&o.type||t,toastId:st(o)}}function N(t){return(o,e)=>P(o,A(t,e))}function r(t,o){return P(t,A("default",o))}r.loading=(t,o)=>P(t,A("default",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...o}));function nt(t,{pending:o,error:e,success:c},i){let f;o&&(f=_(o)?r.loading(o,i):r.loading(o.render,{...i,...o}));let v={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},C=(u,p,h)=>{if(p==null){r.dismiss(f);return}let I={type:u,...v,...i,data:h},a=_(p)?{render:p}:p;return f?r.update(f,{...I,...a}):r(a.render,{...I,...a}),h},x=T(t)?t():t;return x.then(u=>C("success",c,u)).catch(u=>C("error",e,u)),x}r.promise=nt;r.success=N("success");r.info=N("info");r.error=N("error");r.warning=N("warning");r.warn=r.warning;r.dark=(t,o)=>P(t,A("default",{theme:"dark",...o}));function rt(t){X(t)}r.dismiss=rt;r.clearWaitingQueue=V;r.isActive=L;r.update=(t,o={})=>{let e=H(t,o);if(e){let{props:c,content:i}=e,f={delay:0,...c,...o,toastId:o.toastId||t,updateId:O()};f.toastId!==t&&(f.staleId=t);let v=f.render||i;delete f.render,P(v,f)}};r.done=t=>{r.update(t,{progress:1})};r.onChange=W;r.play=t=>M(!0,t);r.pause=t=>M(!1,t);import{useRef as mo,useSyncExternalStore as uo}from"react";import{useEffect as bo,useRef as vo,useState as Co}from"react";import{useEffect as No,useLayoutEffect as ko}from"react";import Vo from"clsx";import Wo,{cloneElement as Go,isValidElement as Ko}from"react";import wo,{cloneElement as Lo,isValidElement as Mo}from"react";var S=(t,o=!1)=>({enter:`Toastify--animate Toastify__${t}-enter`,exit:`Toastify--animate Toastify__${t}-exit`,appendPosition:o}),R=b(S("bounce",!0)),lt=b(S("slide",!0)),ct=b(S("zoom")),ft=b(S("flip")),G=b(S("no-animation"));var be={position:"top-right",transition:R,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 Be(t={}){let o=K(t.sort||pt),e=K(t.filter||null),[c,i]=mt(()=>t.data?e.current?t.data.filter(e.current).sort(o.current):[...t.data].sort(o.current):[]);return ut(()=>r.onChange(a=>{if(a.status==="added"||a.status==="updated"){let n=q(a);if(e.current&&!e.current(n))return;i(l=>{let s=[],d=l.findIndex(g=>g.id===n.id);return d!==-1?(s=l.slice(),Object.assign(s[d],n,{createdAt:Date.now()})):l.length===0?s=[n]:s=[n,...l],s.sort(o.current)})}}),[]),{notifications:c,clear:()=>{i([])},markAllAsRead:(a=!0)=>{i(n=>n.map(l=>(l.read=a,l)))},markAsRead:(a,n=!0)=>{let l=s=>(s.id===a&&(s.read=n),s);Array.isArray(a)&&(l=s=>(a.includes(s.id)&&(s.read=n),s)),i(s=>s.map(l))},add:a=>{if(c.find(l=>l.id===a.id))return null;let n=q(a);return i(l=>[...l,n].sort(o.current)),n.id},update:(a,n)=>{let l=c.findIndex(s=>s.id===a);return l!==-1?(i(s=>{let d=[...s];return Object.assign(d[l],n,{createdAt:n.createdAt||Date.now()}),d.sort(o.current)}),n.id):null},remove:a=>{i(n=>n.filter(Array.isArray(a)?l=>!a.includes(l.id):l=>l.id!==a))},find:a=>Array.isArray(a)?c.filter(n=>a.includes(n.id)):c.find(n=>n.id===a),sort:a=>{o.current=a,i(n=>n.slice().sort(a))},get unreadCount(){return c.reduce((a,n)=>n.read?a:a+1,0)}}}function q(t){return t.id==null&&(t.id=Date.now().toString(36).substring(2,9)),t.createdAt||(t.createdAt=Date.now()),t.read==null&&(t.read=!1),t}function pt(t,o){return o.createdAt-t.createdAt}export{q as decorate,Be as useNotificationCenter};
//# sourceMappingURL=index.mjs.map