react-toast-msg 2.3.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -15,6 +15,7 @@ A lightweight and customizable React toast notification library.
15
15
  ```bash
16
16
  npm i react-toast-msg
17
17
  ```
18
+
18
19
  ---
19
20
 
20
21
  ## Usage
@@ -27,7 +28,7 @@ import { toast, ToastContainer } from 'react-toast-msg';
27
28
  export default function Example() {
28
29
  return (
29
30
  <>
30
- <ToastContainer autoClose={3000} position="top-right" />
31
+ <ToastContainer autoClose={3000} closeButton={true} />
31
32
 
32
33
  <button onClick={() => toast('Default toast')}>Default</button>
33
34
  <button onClick={() => toast.success('Success toast')}>Success</button>
@@ -71,15 +72,15 @@ You can now define a custom timeout per toast.
71
72
 
72
73
  ## ToastContainer Props
73
74
 
74
- | Prop | Type | Default | Description |
75
- | --------- | ------ | ----------- | ------------------------------------------------- |
76
- | autoClose | number | 3000 | Default close time in milliseconds for all toasts |
77
- | position | string | 'top-right' | Position of the toast container |
75
+ | Prop | Type | Default | Description |
76
+ | ----------- | ------- | ------- | ------------------------------------------------- |
77
+ | autoClose | number | 3000 | Default close time in milliseconds for all toasts |
78
+ | closeButton | boolean | false | Close button visibility for all toasts |
78
79
 
79
80
  Usage:
80
81
 
81
82
  ```jsx
82
- <ToastContainer autoClose={3000} position="top-right" /> // Default
83
+ <ToastContainer autoClose={3000} closeButton={false} /> // Default
83
84
  ```
84
85
 
85
86
  ---
package/dist/index.d.mts CHANGED
@@ -1,13 +1,12 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
 
3
3
  type ToastType = 'success' | 'error' | 'warning' | 'default';
4
- type ToastPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
5
4
  interface ToastContainerProps {
6
5
  autoClose?: number;
7
- position?: ToastPosition;
6
+ closeButton?: boolean;
8
7
  }
9
8
 
10
- declare function ToastContainer({ autoClose, position }: ToastContainerProps): react_jsx_runtime.JSX.Element;
9
+ declare function ToastContainer({ autoClose, closeButton }: ToastContainerProps): react_jsx_runtime.JSX.Element;
11
10
  declare function toast(message: string, type?: ToastType | number, duration?: number): void;
12
11
  declare namespace toast {
13
12
  var success: (message: string, duration?: number) => void;
package/dist/index.d.ts CHANGED
@@ -1,13 +1,12 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
 
3
3
  type ToastType = 'success' | 'error' | 'warning' | 'default';
4
- type ToastPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
5
4
  interface ToastContainerProps {
6
5
  autoClose?: number;
7
- position?: ToastPosition;
6
+ closeButton?: boolean;
8
7
  }
9
8
 
10
- declare function ToastContainer({ autoClose, position }: ToastContainerProps): react_jsx_runtime.JSX.Element;
9
+ declare function ToastContainer({ autoClose, closeButton }: ToastContainerProps): react_jsx_runtime.JSX.Element;
11
10
  declare function toast(message: string, type?: ToastType | number, duration?: number): void;
12
11
  declare namespace toast {
13
12
  var success: (message: string, duration?: number) => void;
package/dist/index.js CHANGED
@@ -1,3 +1,2 @@
1
1
  "use client";
2
- "use strict";var u=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var z=Object.prototype.hasOwnProperty;var C=(t,o)=>{for(var e in o)u(t,e,{get:o[e],enumerable:!0})},P=(t,o,e,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of B(o))!z.call(t,r)&&r!==e&&u(t,r,{get:()=>o[r],enumerable:!(n=L(o,r))||n.enumerable});return t};var S=t=>P(u({},"__esModule",{value:!0}),t);var N={};C(N,{ToastContainer:()=>k,toast:()=>s});module.exports=S(N);function F(t){if(!t||typeof document=="undefined"||document.getElementById("rtm-style"))return;let o=document.head||document.getElementsByTagName("head")[0],e=document.createElement("style");e.type="text/css",e.id="rtm-style",e.appendChild(document.createTextNode(t)),o.appendChild(e)}F(`:root{--white-color: #fff;--default-bg-color: #1e2939;--success-bg-color: #00c950;--error-bg-color: #fb2c36;--warning-bg-color: #f0b100}.rtm-toast-container{position:fixed;font-family:sans-serif;display:flex;flex-direction:column;gap:10px;z-index:9999;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.rtm-toast-container-top-right{top:1rem;right:1rem;align-items:flex-end}.rtm-toast-container-top-left{top:1rem;left:1rem;align-items:flex-start}.rtm-toast-container-bottom-right{bottom:1rem;right:1rem;align-items:flex-end;flex-direction:column-reverse}.rtm-toast-container-bottom-left{bottom:1rem;left:1rem;align-items:flex-start;flex-direction:column-reverse}.rtm-toast{display:flex;align-items:center;gap:8px;background:var(--default-bg-color);color:var(--white-color);padding:16px;min-height:44px;font-size:14px;border-radius:8px;font-weight:500;min-width:200px;max-width:320px;will-change:transform,opacity}.rtm-toast-success{background:var(--success-bg-color)}.rtm-toast-error{background:var(--error-bg-color)}.rtm-toast-warning{background:var(--warning-bg-color)}.rtm-toast svg{flex-shrink:0}@keyframes toastEnterRight{0%{opacity:0;transform:translate(20px)}60%{opacity:1;transform:translate(-2px)}to{opacity:1;transform:translate(0)}}@keyframes toastExitRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes toastEnterLeft{0%{opacity:0;transform:translate(-100%)}60%{opacity:1;transform:translate(2px)}to{opacity:1;transform:translate(0)}}@keyframes toastExitLeft{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-100%)}}.rtm-toast-enter-top-right{animation:toastEnterFromBottom .5s cubic-bezier(.21,1.02,.73,1) forwards}.rtm-toast-exit-top-right{animation:toastExitFromBottom .4s cubic-bezier(.06,.71,.55,1) forwards}.rtm-toast-enter-top-left{animation:toastEnterLeft .45s cubic-bezier(.21,1.02,.73,1) forwards}.rtm-toast-exit-top-left{animation:toastExitLeft .4s cubic-bezier(.06,.71,.55,1) forwards}.rtm-toast-enter-bottom-right{animation:toastEnterRight .45s cubic-bezier(.21,1.02,.73,1) forwards}.rtm-toast-exit-bottom-right{animation:toastExitRight .4s cubic-bezier(.06,.71,.55,1) forwards}.rtm-toast-enter-bottom-left{animation:toastEnterLeft .45s cubic-bezier(.21,1.02,.73,1) forwards}.rtm-toast-exit-bottom-left{animation:toastExitLeft .4s cubic-bezier(.06,.71,.55,1) forwards}@keyframes toastEnterFromBottom{0%{opacity:0;transform:translateY(-20px) scale(.98)}to{opacity:1;transform:translateY(-0) scale(1)}}@keyframes toastExitFromBottom{0%{opacity:1;transform:translateY(-0) scale(1)}to{opacity:0;transform:translateY(-100%) scale(.98)}}
3
- `);var f=require("react");function m(t){return t?t.split(" ").filter(Boolean).map(o=>`rtm-${o}`).join(" "):""}var h=require("react/jsx-runtime");function y({message:t,type:o="default",icon:e,leaving:n,position:r}){return(0,h.jsxs)("div",{className:m(`toast toast-${o} ${n?"toast-exit":"toast-enter"}-${r}`),children:[e,t]})}var a=require("react/jsx-runtime"),b=({size:t=24,strokeWidth:o=2})=>(0,a.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:o,strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("circle",{cx:12,cy:12,r:10}),(0,a.jsx)("path",{d:"m9 12 2 2 4-4"})]}),w=({size:t=24,strokeWidth:o=2})=>(0,a.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:o,strokeLinecap:"round",strokeLinejoin:"round",className:"lucide lucide-circle-x-icon lucide-circle-x",children:[(0,a.jsx)("circle",{cx:12,cy:12,r:10}),(0,a.jsx)("path",{d:"m15 9-6 6"}),(0,a.jsx)("path",{d:"m9 9 6 6"})]}),T=({size:t=24,strokeWidth:o=2})=>(0,a.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:o,strokeLinecap:"round",strokeLinejoin:"round",className:"lucide lucide-triangle-alert-icon lucide-triangle-alert",children:[(0,a.jsx)("path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"}),(0,a.jsx)("path",{d:"M12 9v4"}),(0,a.jsx)("path",{d:"M12 17h.01"})]});var l=require("react/jsx-runtime");function v(t){switch(t){case"success":return(0,l.jsx)(b,{size:20});case"error":return(0,l.jsx)(w,{size:20});case"warning":return(0,l.jsx)(T,{size:18});default:return null}}var g=require("react/jsx-runtime"),p=null;function k({autoClose:t=3e3,position:o="top-right"}){let[e,n]=(0,f.useState)([]);return(0,f.useEffect)(()=>{p=(r,x="default",E)=>{let d=Date.now(),I=E||t;n(i=>[...i,{id:d,message:r,type:x,leaving:!1}]),setTimeout(()=>{n(i=>i.map(c=>c.id===d?{...c,leaving:!0}:c)),setTimeout(()=>{n(i=>i.filter(c=>c.id!==d))},400)},I)}},[t,o]),(0,g.jsx)("div",{className:m(`toast-container toast-container-${o}`),children:e.map(r=>(0,g.jsx)(y,{message:r.message,type:r.type,icon:v(r.type),leaving:r.leaving,position:o},r.id))})}function s(t,o,e){p&&(typeof o=="number"?p(t,"default",o):p(t,o,e))}s.success=(t,o)=>s(t,"success",o);s.error=(t,o)=>s(t,"error",o);s.warning=(t,o)=>s(t,"warning",o);0&&(module.exports={ToastContainer,toast});
2
+ "use strict";var R=Object.create;var f=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var V=Object.getPrototypeOf,E=Object.prototype.hasOwnProperty;var k=(e,o)=>{for(var r in o)f(e,r,{get:o[r],enumerable:!0})},b=(e,o,r,s)=>{if(o&&typeof o=="object"||typeof o=="function")for(let t of B(o))!E.call(e,t)&&t!==r&&f(e,t,{get:()=>o[t],enumerable:!(s=S(o,t))||s.enumerable});return e};var F=(e,o,r)=>(r=e!=null?R(V(e)):{},b(o||!e||!e.__esModule?f(r,"default",{value:e,enumerable:!0}):r,e)),W=e=>b(f({},"__esModule",{value:!0}),e);var q={};k(q,{ToastContainer:()=>N,toast:()=>a});module.exports=W(q);var w=require("react");var d=require("react");var h=require("tailwind-merge"),I=F(require("clsx"));function n(...e){return(0,h.twMerge)((0,I.default)(e))}var p=require("react/jsx-runtime");function C({message:e,type:o="default",icon:r,leaving:s,setToasts:t,id:T,closeButton:x}){let[m,u]=(0,d.useState)(!1);(0,d.useEffect)(()=>{requestAnimationFrame(()=>u(!0))},[]);let i=()=>{u(!1),setTimeout(()=>{t==null||t(l=>l.filter(L=>L.id!==T))},300)};return(0,p.jsxs)("div",{className:n("pointer-events-auto relative flex min-w-62 max-w-80 items-center gap-1 rounded-lg border border-gray-200/70 bg-white py-3 text-zinc-800 transition-all duration-300 ease-out",m&&!s?"translate-y-0 opacity-100":"translate-y-10 opacity-0",o==="default"?"px-4":"px-3"),children:[r,e,x&&(0,p.jsx)("button",{onClick:i,className:"absolute -top-2 -right-2 cursor-pointer rounded-full border border-gray-200/70 bg-white p-px text-zinc-500",children:(0,p.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor",className:"size-3",children:(0,p.jsx)("path",{d:"M5.28 4.22a.75.75 0 0 0-1.06 1.06L6.94 8l-2.72 2.72a.75.75 0 1 0 1.06 1.06L8 9.06l2.72 2.72a.75.75 0 1 0 1.06-1.06L9.06 8l2.72-2.72a.75.75 0 0 0-1.06-1.06L8 6.94 5.28 4.22Z"})})})]})}var c=require("react/jsx-runtime"),Z=({className:e})=>(0,c.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:n("size-6",e),children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12Zm13.36-1.814a.75.75 0 1 0-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 0 0-1.06 1.06l2.25 2.25a.75.75 0 0 0 1.14-.094l3.75-5.25Z",clipRule:"evenodd"})}),P=({className:e})=>(0,c.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:n("size-6",e),children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12ZM12 8.25a.75.75 0 0 1 .75.75v3.75a.75.75 0 0 1-1.5 0V9a.75.75 0 0 1 .75-.75Zm0 8.25a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z",clipRule:"evenodd"})}),z=({className:e})=>(0,c.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:n("size-6",e),children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003ZM12 8.25a.75.75 0 0 1 .75.75v3.75a.75.75 0 0 1-1.5 0V9a.75.75 0 0 1 .75-.75Zm0 8.25a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z",clipRule:"evenodd"})});var g=require("react/jsx-runtime");function M(e){switch(e){case"success":return(0,g.jsx)(Z,{});case"error":return(0,g.jsx)(P,{});case"warning":return(0,g.jsx)(z,{});default:return null}}var y=require("react/jsx-runtime"),v=null;function N({autoClose:e=3e3,closeButton:o=!1}){let[r,s]=(0,w.useState)([]);return(0,w.useEffect)(()=>{v=(t,T="default",x)=>{let m=Date.now(),u=x||e;s(i=>[...i,{id:m,message:t,type:T,leaving:!1}]),setTimeout(()=>{s(i=>i.map(l=>l.id===m?{...l,leaving:!0}:l)),setTimeout(()=>{s(i=>i.filter(l=>l.id!==m))},300)},u)}},[e]),(0,y.jsx)("div",{className:n("pointer-events-none fixed inset-0 z-9999 flex flex-col items-end justify-end gap-2 p-4 text-sm"),children:r.map(t=>(0,y.jsx)(C,{id:t.id,message:t.message,setToasts:s,type:t.type,icon:M(t.type),leaving:t.leaving,closeButton:o},t.id))})}function a(e,o,r){v&&(typeof o=="number"?v(e,"default",o):v(e,o,r))}a.success=(e,o)=>a(e,"success",o);a.error=(e,o)=>a(e,"error",o);a.warning=(e,o)=>a(e,"warning",o);0&&(module.exports={ToastContainer,toast});
package/dist/index.mjs CHANGED
@@ -1,3 +1,2 @@
1
1
  "use client";
2
- function k(t){if(!t||typeof document=="undefined"||document.getElementById("rtm-style"))return;let o=document.head||document.getElementsByTagName("head")[0],e=document.createElement("style");e.type="text/css",e.id="rtm-style",e.appendChild(document.createTextNode(t)),o.appendChild(e)}k(`:root{--white-color: #fff;--default-bg-color: #1e2939;--success-bg-color: #00c950;--error-bg-color: #fb2c36;--warning-bg-color: #f0b100}.rtm-toast-container{position:fixed;font-family:sans-serif;display:flex;flex-direction:column;gap:10px;z-index:9999;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.rtm-toast-container-top-right{top:1rem;right:1rem;align-items:flex-end}.rtm-toast-container-top-left{top:1rem;left:1rem;align-items:flex-start}.rtm-toast-container-bottom-right{bottom:1rem;right:1rem;align-items:flex-end;flex-direction:column-reverse}.rtm-toast-container-bottom-left{bottom:1rem;left:1rem;align-items:flex-start;flex-direction:column-reverse}.rtm-toast{display:flex;align-items:center;gap:8px;background:var(--default-bg-color);color:var(--white-color);padding:16px;min-height:44px;font-size:14px;border-radius:8px;font-weight:500;min-width:200px;max-width:320px;will-change:transform,opacity}.rtm-toast-success{background:var(--success-bg-color)}.rtm-toast-error{background:var(--error-bg-color)}.rtm-toast-warning{background:var(--warning-bg-color)}.rtm-toast svg{flex-shrink:0}@keyframes toastEnterRight{0%{opacity:0;transform:translate(20px)}60%{opacity:1;transform:translate(-2px)}to{opacity:1;transform:translate(0)}}@keyframes toastExitRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes toastEnterLeft{0%{opacity:0;transform:translate(-100%)}60%{opacity:1;transform:translate(2px)}to{opacity:1;transform:translate(0)}}@keyframes toastExitLeft{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-100%)}}.rtm-toast-enter-top-right{animation:toastEnterFromBottom .5s cubic-bezier(.21,1.02,.73,1) forwards}.rtm-toast-exit-top-right{animation:toastExitFromBottom .4s cubic-bezier(.06,.71,.55,1) forwards}.rtm-toast-enter-top-left{animation:toastEnterLeft .45s cubic-bezier(.21,1.02,.73,1) forwards}.rtm-toast-exit-top-left{animation:toastExitLeft .4s cubic-bezier(.06,.71,.55,1) forwards}.rtm-toast-enter-bottom-right{animation:toastEnterRight .45s cubic-bezier(.21,1.02,.73,1) forwards}.rtm-toast-exit-bottom-right{animation:toastExitRight .4s cubic-bezier(.06,.71,.55,1) forwards}.rtm-toast-enter-bottom-left{animation:toastEnterLeft .45s cubic-bezier(.21,1.02,.73,1) forwards}.rtm-toast-exit-bottom-left{animation:toastExitLeft .4s cubic-bezier(.06,.71,.55,1) forwards}@keyframes toastEnterFromBottom{0%{opacity:0;transform:translateY(-20px) scale(.98)}to{opacity:1;transform:translateY(-0) scale(1)}}@keyframes toastExitFromBottom{0%{opacity:1;transform:translateY(-0) scale(1)}to{opacity:0;transform:translateY(-100%) scale(.98)}}
3
- `);import{useState as I,useEffect as L}from"react";function m(t){return t?t.split(" ").filter(Boolean).map(o=>`rtm-${o}`).join(" "):""}import{jsxs as E}from"react/jsx-runtime";function g({message:t,type:o="default",icon:e,leaving:s,position:r}){return E("div",{className:m(`toast toast-${o} ${s?"toast-exit":"toast-enter"}-${r}`),children:[e,t]})}import{jsx as a,jsxs as f}from"react/jsx-runtime";var x=({size:t=24,strokeWidth:o=2})=>f("svg",{xmlns:"http://www.w3.org/2000/svg",width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:o,strokeLinecap:"round",strokeLinejoin:"round",children:[a("circle",{cx:12,cy:12,r:10}),a("path",{d:"m9 12 2 2 4-4"})]}),y=({size:t=24,strokeWidth:o=2})=>f("svg",{xmlns:"http://www.w3.org/2000/svg",width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:o,strokeLinecap:"round",strokeLinejoin:"round",className:"lucide lucide-circle-x-icon lucide-circle-x",children:[a("circle",{cx:12,cy:12,r:10}),a("path",{d:"m15 9-6 6"}),a("path",{d:"m9 9 6 6"})]}),h=({size:t=24,strokeWidth:o=2})=>f("svg",{xmlns:"http://www.w3.org/2000/svg",width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:o,strokeLinecap:"round",strokeLinejoin:"round",className:"lucide lucide-triangle-alert-icon lucide-triangle-alert",children:[a("path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"}),a("path",{d:"M12 9v4"}),a("path",{d:"M12 17h.01"})]});import{jsx as d}from"react/jsx-runtime";function b(t){switch(t){case"success":return d(x,{size:20});case"error":return d(y,{size:20});case"warning":return d(h,{size:18});default:return null}}import{jsx as w}from"react/jsx-runtime";var l=null;function B({autoClose:t=3e3,position:o="top-right"}){let[e,s]=I([]);return L(()=>{l=(r,u="default",T)=>{let p=Date.now(),v=T||t;s(i=>[...i,{id:p,message:r,type:u,leaving:!1}]),setTimeout(()=>{s(i=>i.map(c=>c.id===p?{...c,leaving:!0}:c)),setTimeout(()=>{s(i=>i.filter(c=>c.id!==p))},400)},v)}},[t,o]),w("div",{className:m(`toast-container toast-container-${o}`),children:e.map(r=>w(g,{message:r.message,type:r.type,icon:b(r.type),leaving:r.leaving,position:o},r.id))})}function n(t,o,e){l&&(typeof o=="number"?l(t,"default",o):l(t,o,e))}n.success=(t,o)=>n(t,"success",o);n.error=(t,o)=>n(t,"error",o);n.warning=(t,o)=>n(t,"warning",o);export{B as ToastContainer,n as toast};
2
+ import{useState as N,useEffect as L}from"react";import{useEffect as P,useState as z}from"react";import{twMerge as C}from"tailwind-merge";import Z from"clsx";function r(...e){return C(Z(e))}import{jsx as g,jsxs as M}from"react/jsx-runtime";function w({message:e,type:o="default",icon:c,leaving:i,setToasts:t,id:f,closeButton:d}){let[p,m]=z(!1);P(()=>{requestAnimationFrame(()=>m(!0))},[]);let s=()=>{m(!1),setTimeout(()=>{t==null||t(n=>n.filter(I=>I.id!==f))},300)};return M("div",{className:r("pointer-events-auto relative flex min-w-62 max-w-80 items-center gap-1 rounded-lg border border-gray-200/70 bg-white py-3 text-zinc-800 transition-all duration-300 ease-out",p&&!i?"translate-y-0 opacity-100":"translate-y-10 opacity-0",o==="default"?"px-4":"px-3"),children:[c,e,d&&g("button",{onClick:s,className:"absolute -top-2 -right-2 cursor-pointer rounded-full border border-gray-200/70 bg-white p-px text-zinc-500",children:g("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor",className:"size-3",children:g("path",{d:"M5.28 4.22a.75.75 0 0 0-1.06 1.06L6.94 8l-2.72 2.72a.75.75 0 1 0 1.06 1.06L8 9.06l2.72 2.72a.75.75 0 1 0 1.06-1.06L9.06 8l2.72-2.72a.75.75 0 0 0-1.06-1.06L8 6.94 5.28 4.22Z"})})})]})}import{jsx as l}from"react/jsx-runtime";var T=({className:e})=>l("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:r("size-6",e),children:l("path",{fillRule:"evenodd",d:"M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12Zm13.36-1.814a.75.75 0 1 0-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 0 0-1.06 1.06l2.25 2.25a.75.75 0 0 0 1.14-.094l3.75-5.25Z",clipRule:"evenodd"})}),x=({className:e})=>l("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:r("size-6",e),children:l("path",{fillRule:"evenodd",d:"M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12ZM12 8.25a.75.75 0 0 1 .75.75v3.75a.75.75 0 0 1-1.5 0V9a.75.75 0 0 1 .75-.75Zm0 8.25a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z",clipRule:"evenodd"})}),y=({className:e})=>l("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:r("size-6",e),children:l("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003ZM12 8.25a.75.75 0 0 1 .75.75v3.75a.75.75 0 0 1-1.5 0V9a.75.75 0 0 1 .75-.75Zm0 8.25a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z",clipRule:"evenodd"})});import{jsx as v}from"react/jsx-runtime";function b(e){switch(e){case"success":return v(T,{});case"error":return v(x,{});case"warning":return v(y,{});default:return null}}import{jsx as h}from"react/jsx-runtime";var u=null;function R({autoClose:e=3e3,closeButton:o=!1}){let[c,i]=N([]);return L(()=>{u=(t,f="default",d)=>{let p=Date.now(),m=d||e;i(s=>[...s,{id:p,message:t,type:f,leaving:!1}]),setTimeout(()=>{i(s=>s.map(n=>n.id===p?{...n,leaving:!0}:n)),setTimeout(()=>{i(s=>s.filter(n=>n.id!==p))},300)},m)}},[e]),h("div",{className:r("pointer-events-none fixed inset-0 z-9999 flex flex-col items-end justify-end gap-2 p-4 text-sm"),children:c.map(t=>h(w,{id:t.id,message:t.message,setToasts:i,type:t.type,icon:b(t.type),leaving:t.leaving,closeButton:o},t.id))})}function a(e,o,c){u&&(typeof o=="number"?u(e,"default",o):u(e,o,c))}a.success=(e,o)=>a(e,"success",o);a.error=(e,o)=>a(e,"error",o);a.warning=(e,o)=>a(e,"warning",o);export{R as ToastContainer,a as toast};
package/dist/style.css ADDED
@@ -0,0 +1 @@
1
+ @source '.';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-toast-msg",
3
- "version": "2.3.0",
3
+ "version": "2.5.0",
4
4
  "description": "A lightweight, customizable React toast notification library with zero-config and fast setup.",
5
5
  "files": [
6
6
  "dist"
@@ -8,15 +8,9 @@
8
8
  "scripts": {
9
9
  "dev": "tsup --watch",
10
10
  "prettier": "prettier --write src",
11
- "build": "tsup"
12
- },
13
- "prettier": {
14
- "printWidth": 120,
15
- "semi": true,
16
- "tabWidth": 4,
17
- "singleQuote": true,
18
- "trailingComma": "none",
19
- "arrowParens": "avoid"
11
+ "build": "pnpm build:ts && pnpm build:css",
12
+ "build:ts": "tsup",
13
+ "build:css": "pnpx @tailwindcss/cli -i ./src/style.css -o ./dist/style.css"
20
14
  },
21
15
  "main": "dist/index.js",
22
16
  "module": "dist/index.mjs",
@@ -47,11 +41,18 @@
47
41
  "react-dom": "^18 || ^19"
48
42
  },
49
43
  "devDependencies": {
44
+ "@tailwindcss/cli": "^4.1.18",
50
45
  "@types/react": "^19.2.2",
51
46
  "@types/react-dom": "^19.2.2",
52
47
  "@vitejs/plugin-react": "^4.3.4",
53
48
  "prettier": "^3.6.2",
49
+ "prettier-plugin-tailwindcss": "^0.7.2",
50
+ "tailwindcss": "^4.1.18",
54
51
  "tsup": "^8.5.0",
55
52
  "typescript": "^5.9.3"
53
+ },
54
+ "dependencies": {
55
+ "clsx": "^2.1.1",
56
+ "tailwind-merge": "^3.4.0"
56
57
  }
57
58
  }