react-strawberry-toast 1.0.0-alpha.3 → 1.1.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
@@ -24,7 +24,7 @@ pnpm i --save react-strawberry-toast
24
24
 
25
25
  ```jsx
26
26
  import { ToastContainer, toast } from 'react-strawberry-toast';
27
- import 'react-strawberry-toast/dist/index.css';
27
+ import 'react-strawberry-toast/dist/style.css';
28
28
 
29
29
  function App() {
30
30
  const click = () => {
package/dist/index.d.mts CHANGED
@@ -67,10 +67,10 @@ declare const toast: {
67
67
  warn: (data: ReactNode, options?: Options) => ToastState["toastId"];
68
68
  loading: (data: ReactNode, options?: Options) => ToastState["toastId"];
69
69
  custom: (data: ReactNode | ToastDataWithCallback, options?: Options) => ToastState["toastId"];
70
- promise(promise: Promise<any>, promiseOption: {
70
+ promise<T>(promise: Promise<T>, promiseOption: {
71
71
  loading: ReactNode;
72
- success: ReactNode;
73
- error: ReactNode;
72
+ success: ReactNode | ((response: T) => ReactNode);
73
+ error: ReactNode | ((err: any) => ReactNode);
74
74
  }, options?: Options): void;
75
75
  };
76
76
 
package/dist/index.d.ts CHANGED
@@ -67,10 +67,10 @@ declare const toast: {
67
67
  warn: (data: ReactNode, options?: Options) => ToastState["toastId"];
68
68
  loading: (data: ReactNode, options?: Options) => ToastState["toastId"];
69
69
  custom: (data: ReactNode | ToastDataWithCallback, options?: Options) => ToastState["toastId"];
70
- promise(promise: Promise<any>, promiseOption: {
70
+ promise<T>(promise: Promise<T>, promiseOption: {
71
71
  loading: ReactNode;
72
- success: ReactNode;
73
- error: ReactNode;
72
+ success: ReactNode | ((response: T) => ReactNode);
73
+ error: ReactNode | ((err: any) => ReactNode);
74
74
  }, options?: Options): void;
75
75
  };
76
76
 
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- "use strict";var $=Object.create;var _=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var F=Object.getPrototypeOf,G=Object.prototype.hasOwnProperty;var q=(t,e)=>{for(var o in e)_(t,o,{get:e[o],enumerable:!0})},P=(t,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let d of j(e))!G.call(t,d)&&d!==o&&_(t,d,{get:()=>e[d],enumerable:!(i=B(e,d))||i.enumerable});return t};var M=(t,e,o)=>(o=t!=null?$(F(t)):{},P(e||!t||!t.__esModule?_(o,"default",{value:t,enumerable:!0}):o,t)),J=t=>P(_({},"__esModule",{value:!0}),t);var ot={};q(ot,{ToastContainer:()=>et,toast:()=>a,toastStore:()=>l});module.exports=J(ot);var H=()=>{let t=0;return()=>String(t++)};var A=class{state=[];listeners=new Set;activatedToasts=new Set;toastTimers=new Map;constructor(){}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setState(e){this.state=typeof e=="function"?e(this.state):e,this.listeners.forEach(o=>o())}getSnapShot(){return this.state}};var g="react-strawberry-toast";var z=t=>{let e=s=>{let n=t.toastTimers.get(s);clearTimeout(n),t.toastTimers.delete(s)},o=s=>{t.activatedToasts.add(s)},i=s=>t.activatedToasts.has(s),d=(s,n=200)=>{i(s)&&(t.activatedToasts.delete(s),setTimeout(()=>{t.state=t.state.filter(f=>f.toastId!==s),t.setState([...t.state])},n),e(s))},y=(s,n,f)=>{t.state=t.state.map(b=>b.toastId===s?{...b,...f,updated:!0,data:n}:b),t.setState([...t.state])},r=s=>{let n=new Date().getTime();t.state=t.state.map(f=>f.toastId===s?{...f,pausedAt:n}:f),e(s),t.setState([...t.state])},c=(s,n)=>{let f=setTimeout(()=>{var W;t.state=t.state.map(w=>w.toastId===s?{...w,isVisible:!1}:w),t.setState([...t.state]);let b=(W=t.state.find(w=>w.toastId===s))==null?void 0:W.removeTimeOut;d(s,b)},n>2147483647?2147483647:n);t.toastTimers.set(s,f)};return{setActive:o,isActive:i,disappear:c,resume:s=>{if(t.toastTimers.has(s))return;let n=t.state.find(b=>b.toastId===s);if(!n)return;let f=n.createdAt+(n.timeOut||3e3)-(n.pausedAt||0);c(s,f)},pause:r,replace:y,remove:d}};var l=new A,K=H(),I=(t="default")=>(e,o={})=>{let{timeOut:i=3e3,removeTimeOut:d=200,pauseOnHover:y=!0,toastId:r}=o,c=r||K();if(a.isActive(c))throw new Error("A duplicate custom ID is not available.");let v=new Date().getTime(),s={...o,timeOut:i>2147483647?2147483647:i,toastId:c,data:e,createdAt:v,toastType:t,pauseOnHover:y,removeTimeOut:d,isVisible:!0};return l.state.push(s),l.setState([...l.state]),c},a=(t,e={})=>I()(t,e),S=z(l);a.setActive=S.setActive;a.isActive=S.isActive;a.disappear=S.disappear;a.resume=S.resume;a.pause=S.pause;a.replace=S.replace;a.remove=S.remove;a.success=I("success");a.error=I("error");a.warn=I("warn");a.loading=I("loading");a.custom=I("custom");a.promise=(t,e,o={})=>{let{loading:i,success:d,error:y}=e,r=a.loading(i,{...o,timeOut:2147483647});t.then(()=>{a.replace(r,d,{...o,toastType:"success"})}).catch(()=>{a.replace(r,y,{...o,toastType:"error"})})};var T=M(require("react")),X=require("react");var p=M(require("react"));var L=require("react");function O({condition:t,children:e}){let o=L.Children.toArray(e);if(o.length>2)throw new Error("The number of children exceeds two.");return o.find(i=>t?i.key===".0":i.key===".1")}function k({children:t}){return t}function C({children:t}){return t}var V=({isVisible:t,position:e})=>t?/top/i.test(e)?`${g}__fade-in`:`${g}__fade-in-reverse`:/bottom/i.test(e)?`${g}__fade-out-reverse`:`${g}__fade-out`;var u=M(require("react"));function Q(){return u.default.createElement("svg",{stroke:"none",fill:"none",strokeWidth:"2",viewBox:"0 0 24 24",strokeLinecap:"round",strokeLinejoin:"round",height:"22",width:"22",xmlns:"http://www.w3.org/2000/svg"},u.default.createElement("path",{stroke:"none",d:"M0 0h24v24H0z"}),u.default.createElement("path",{d:"M17 3.34a10 10 0 1 1 -14.995 8.984l-.005 -.324l.005 -.324a10 10 0 0 1 14.995 -8.336zm-1.293 5.953a1 1 0 0 0 -1.32 -.083l-.094 .083l-3.293 3.292l-1.293 -1.292l-.094 -.083a1 1 0 0 0 -1.403 1.403l.083 .094l2 2l.094 .083a1 1 0 0 0 1.226 0l.094 -.083l4 -4l.083 -.094a1 1 0 0 0 -.083 -1.32z",strokeWidth:"0",fill:"#1ab173"}))}function Z(){return u.default.createElement("svg",{stroke:"none",fill:"#eb2639",strokeWidth:"2",viewBox:"0 0 24 24",height:"22",width:"22",xmlns:"http://www.w3.org/2000/svg"},u.default.createElement("path",{d:"M11.953 2C6.465 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.493 2 11.953 2zM13 17h-2v-2h2v2zm0-4h-2V7h2v6z"}))}function R(){return u.default.createElement("svg",{stroke:"none",fill:"#fcba03",strokeWidth:"0",viewBox:"0 0 1024 1024",height:"22",width:"22",xmlns:"http://www.w3.org/2000/svg"},u.default.createElement("path",{d:"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zM480 416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416zm32 352a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"}))}var x={success:Q,error:Z,loading:()=>u.default.createElement("div",{className:`${g}__loading`}),warn:R};function U({status:t,children:e}){let o=t==="custom"||t==="default"?null:x[t];return u.default.createElement("div",{style:{boxSizing:"border-box",backgroundColor:"white",padding:"12px 14px 12px 12px",display:"flex",alignItems:"center",gap:5,borderRadius:8,boxShadow:"2px 4px 10px rgba(0, 0, 0, 0.1)"}},o&&u.default.createElement("span",{style:{minWidth:20,maxWidth:20}},u.default.createElement(o,null)),e)}function N({toastProps:t,...e}){let o=V({isVisible:t.isVisible,position:t.position}),i=typeof t.data=="function"?t.data({close:()=>a.disappear(t.toastId,0),immediatelyClose:()=>{a.disappear(t.toastId,0),a.remove(t.toastId,0)},icons:{success:p.default.createElement(x.success,null),error:p.default.createElement(x.error,null),warn:p.default.createElement(x.warn,null),loading:p.default.createElement(x.loading,null)},isVisible:t.isVisible}):t.data,d=()=>{t.pauseOnHover&&a.pause(t.toastId)},y=()=>{t.pauseOnHover&&a.resume(t.toastId)};return(0,p.useEffect)(()=>{a.isActive(t.toastId)||(a.setActive(t.toastId),a.disappear(t.toastId,t.timeOut))},[t.toastId]),(0,p.useEffect)(()=>{if(t.updated!==void 0){let r=t.timeOut>=2147483647?3e3:t.timeOut;a.disappear(t.toastId,r)}},[t.updated]),p.default.createElement("div",{role:"alert","data-testid":`container-${t.containerId}`,className:t.toastType==="custom"?"":o,onMouseEnter:d,onMouseLeave:y,...e},p.default.createElement(O,{condition:t.toastType!=="custom"},p.default.createElement(k,null,p.default.createElement(U,{status:t.toastType},i)),p.default.createElement(C,null,i)))}var Y=({position:t,reverse:e=!1})=>/top/i.test(t)?e?"column-reverse":"column":/bottom/i.test(t)?e?"column":"column-reverse":"column";var m=16,tt={"top-left":{top:m,left:m},"top-center":{top:m,left:"50%",transform:"translateX(-50%)"},"top-right":{top:m,right:m},"bottom-left":{bottom:m,left:m},"bottom-center":{bottom:m,left:"50%",transform:"translateX(-50%)"},"bottom-right":{bottom:m,right:m}};function et({position:t="top-center",containerId:e="",gap:o=9,reverse:i=!1}){let d=(0,X.useSyncExternalStore)(l.subscribe.bind(l),l.getSnapShot.bind(l),l.getSnapShot.bind(l)),y=d.filter(r=>r.containerId===void 0).reduce((r,c)=>{let v=c.position||t;return c.position=v,r[v]=r[v]||[],r[v].push(c),r},{});return T.default.createElement(O,{condition:!!e},T.default.createElement(k,null,T.default.createElement("div",{style:{position:"absolute",zIndex:9999,pointerEvents:"none"}},T.default.createElement("div",{style:{pointerEvents:"auto",display:"flex",flexDirection:i?"column-reverse":"column",gap:o}},d.filter(r=>r.containerId===e).map(r=>T.default.createElement(N,{key:r.toastId,toastProps:r,style:{display:"flex"}}))))),T.default.createElement(C,null,T.default.createElement("div",{style:{position:"fixed",zIndex:9999,top:m,left:m,right:m,bottom:m,pointerEvents:"none"}},Object.entries(y).map(([r,c])=>{let v=tt[r],s=Y({position:r,reverse:i});return T.default.createElement("div",{key:r,"data-testid":r,style:{pointerEvents:"auto",position:"fixed",display:"flex",flexDirection:s,gap:o,...v}},c.map(n=>T.default.createElement(N,{key:n.toastId,toastProps:n,style:{display:"flex",justifyContent:"center"}})))}))))}
2
+ "use strict";var $=Object.create;var _=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var F=Object.getPrototypeOf,G=Object.prototype.hasOwnProperty;var q=(t,e)=>{for(var o in e)_(t,o,{get:e[o],enumerable:!0})},P=(t,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of j(e))!G.call(t,n)&&n!==o&&_(t,n,{get:()=>e[n],enumerable:!(i=B(e,n))||i.enumerable});return t};var M=(t,e,o)=>(o=t!=null?$(F(t)):{},P(e||!t||!t.__esModule?_(o,"default",{value:t,enumerable:!0}):o,t)),J=t=>P(_({},"__esModule",{value:!0}),t);var ot={};q(ot,{ToastContainer:()=>et,toast:()=>r,toastStore:()=>l});module.exports=J(ot);var H=()=>{let t=0;return()=>String(t++)};var A=class{state=[];listeners=new Set;activatedToasts=new Set;toastTimers=new Map;constructor(){}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setState(e){this.state=typeof e=="function"?e(this.state):e,this.listeners.forEach(o=>o())}getSnapShot(){return this.state}};var g="react-strawberry-toast";var z=t=>{let e=a=>{let d=t.toastTimers.get(a);clearTimeout(d),t.toastTimers.delete(a)},o=a=>{t.activatedToasts.add(a)},i=a=>t.activatedToasts.has(a),n=(a,d=200)=>{i(a)&&(t.activatedToasts.delete(a),setTimeout(()=>{t.state=t.state.filter(T=>T.toastId!==a),t.setState([...t.state])},d),e(a))},f=(a,d,T)=>{t.state=t.state.map(b=>b.toastId===a?{...b,...T,updated:!0,data:d}:b),t.setState([...t.state])},s=a=>{let d=new Date().getTime();t.state=t.state.map(T=>T.toastId===a?{...T,pausedAt:d}:T),e(a),t.setState([...t.state])},m=(a,d)=>{let T=setTimeout(()=>{var W;t.state=t.state.map(E=>E.toastId===a?{...E,isVisible:!1}:E),t.setState([...t.state]);let b=(W=t.state.find(E=>E.toastId===a))==null?void 0:W.removeTimeOut;n(a,b)},d>2147483647?2147483647:d);t.toastTimers.set(a,T)};return{setActive:o,isActive:i,disappear:m,resume:a=>{if(t.toastTimers.has(a))return;let d=t.state.find(b=>b.toastId===a);if(!d)return;let T=d.createdAt+(d.timeOut||3e3)-(d.pausedAt||0);m(a,T)},pause:s,replace:f,remove:n}};var l=new A,K=H(),x=(t="default")=>(e,o={})=>{let{timeOut:i=3e3,removeTimeOut:n=200,pauseOnHover:f=!0,toastId:s}=o,m=s||K();if(r.isActive(m))throw new Error("A duplicate custom ID is not available.");let v=new Date().getTime(),a={...o,timeOut:i>2147483647?2147483647:i,toastId:m,data:e,createdAt:v,toastType:t,pauseOnHover:f,removeTimeOut:n,isVisible:!0};return l.state.push(a),l.setState([...l.state]),m},r=(t,e={})=>x()(t,e),I=z(l);r.setActive=I.setActive;r.isActive=I.isActive;r.disappear=I.disappear;r.resume=I.resume;r.pause=I.pause;r.replace=I.replace;r.remove=I.remove;r.success=x("success");r.error=x("error");r.warn=x("warn");r.loading=x("loading");r.custom=x("custom");r.promise=(t,e,o={})=>{let{loading:i,success:n,error:f}=e,s=r.loading(i,{...o,timeOut:2147483647});t.then(m=>{r.replace(s,typeof n=="function"?n(m):n,{...o,timeOut:o.timeOut||3e3,toastType:"success"})}).catch(m=>{r.replace(s,typeof f=="function"?f(m):f,{...o,timeOut:o.timeOut||3e3,toastType:"error"})})};var y=M(require("react")),X=require("react");var p=M(require("react"));var L=require("react");function O({condition:t,children:e}){let o=L.Children.toArray(e);if(o.length>2)throw new Error("The number of children exceeds two.");return o.find(i=>t?i.key===".0":i.key===".1")}function k({children:t}){return t}function C({children:t}){return t}var V=({isVisible:t,position:e})=>t?/top/i.test(e)?`${g}__fade-in`:`${g}__fade-in-reverse`:/bottom/i.test(e)?`${g}__fade-out-reverse`:`${g}__fade-out`;var u=M(require("react"));function Q(){return u.default.createElement("svg",{stroke:"none",fill:"none",strokeWidth:"2",viewBox:"0 0 24 24",strokeLinecap:"round",strokeLinejoin:"round",height:"22",width:"22",xmlns:"http://www.w3.org/2000/svg"},u.default.createElement("path",{stroke:"none",d:"M0 0h24v24H0z"}),u.default.createElement("path",{d:"M17 3.34a10 10 0 1 1 -14.995 8.984l-.005 -.324l.005 -.324a10 10 0 0 1 14.995 -8.336zm-1.293 5.953a1 1 0 0 0 -1.32 -.083l-.094 .083l-3.293 3.292l-1.293 -1.292l-.094 -.083a1 1 0 0 0 -1.403 1.403l.083 .094l2 2l.094 .083a1 1 0 0 0 1.226 0l.094 -.083l4 -4l.083 -.094a1 1 0 0 0 -.083 -1.32z",strokeWidth:"0",fill:"#1ab173"}))}function Z(){return u.default.createElement("svg",{stroke:"none",fill:"#eb2639",strokeWidth:"2",viewBox:"0 0 24 24",height:"22",width:"22",xmlns:"http://www.w3.org/2000/svg"},u.default.createElement("path",{d:"M11.953 2C6.465 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.493 2 11.953 2zM13 17h-2v-2h2v2zm0-4h-2V7h2v6z"}))}function R(){return u.default.createElement("svg",{stroke:"none",fill:"#fcba03",strokeWidth:"0",viewBox:"0 0 1024 1024",height:"22",width:"22",xmlns:"http://www.w3.org/2000/svg"},u.default.createElement("path",{d:"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zM480 416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416zm32 352a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"}))}var w={success:Q,error:Z,loading:()=>u.default.createElement("div",{className:`${g}__loading`}),warn:R};function U({status:t,children:e}){let o=t==="custom"||t==="default"?null:w[t];return u.default.createElement("div",{style:{boxSizing:"border-box",backgroundColor:"white",padding:"12px 14px 12px 12px",display:"flex",alignItems:"center",gap:5,borderRadius:8,boxShadow:"2px 4px 10px rgba(0, 0, 0, 0.1)"}},o&&u.default.createElement("span",{style:{minWidth:20,maxWidth:20}},u.default.createElement(o,null)),e)}function D({toastProps:t,...e}){let o=V({isVisible:t.isVisible,position:t.position}),i=typeof t.data=="function"?t.data({close:()=>r.disappear(t.toastId,0),immediatelyClose:()=>{r.disappear(t.toastId,0),r.remove(t.toastId,0)},icons:{success:p.default.createElement(w.success,null),error:p.default.createElement(w.error,null),warn:p.default.createElement(w.warn,null),loading:p.default.createElement(w.loading,null)},isVisible:t.isVisible}):t.data,n=()=>{t.pauseOnHover&&r.pause(t.toastId)},f=()=>{t.pauseOnHover&&r.resume(t.toastId)};return(0,p.useEffect)(()=>{r.isActive(t.toastId)||(r.setActive(t.toastId),r.disappear(t.toastId,t.timeOut))},[t.toastId]),(0,p.useEffect)(()=>{if(t.updated!==void 0){let s=t.timeOut>=2147483647?3e3:t.timeOut;r.disappear(t.toastId,s)}},[t.updated]),p.default.createElement("div",{role:"alert","data-testid":`container-${t.containerId}`,className:t.toastType==="custom"?"":o,onMouseEnter:n,onMouseLeave:f,...e},p.default.createElement(O,{condition:t.toastType!=="custom"},p.default.createElement(k,null,p.default.createElement(U,{status:t.toastType},i)),p.default.createElement(C,null,i)))}var Y=({position:t,reverse:e=!1})=>/top/i.test(t)?e?"column-reverse":"column":/bottom/i.test(t)?e?"column":"column-reverse":"column";var c=16,tt={"top-left":{top:c,left:c},"top-center":{top:c,left:"50%",transform:"translateX(-50%)"},"top-right":{top:c,right:c},"bottom-left":{bottom:c,left:c},"bottom-center":{bottom:c,left:"50%",transform:"translateX(-50%)"},"bottom-right":{bottom:c,right:c}};function et({position:t="top-center",containerId:e="",gap:o=9,reverse:i=!1}){let n=(0,X.useSyncExternalStore)(l.subscribe.bind(l),l.getSnapShot.bind(l),l.getSnapShot.bind(l)),f=n.filter(s=>s.containerId===void 0).reduce((s,m)=>{let v=m.position||t;return m.position=v,s[v]=s[v]||[],s[v].push(m),s},{});return y.default.createElement(O,{condition:!!e},y.default.createElement(k,null,y.default.createElement("div",{style:{position:"absolute",zIndex:9999,pointerEvents:"none"}},y.default.createElement("div",{style:{pointerEvents:"auto",display:"flex",flexDirection:i?"column-reverse":"column",gap:o}},n.filter(s=>s.containerId===e).map(s=>y.default.createElement(D,{key:s.toastId,toastProps:s,style:{display:"flex"}}))))),y.default.createElement(C,null,y.default.createElement("div",{style:{position:"fixed",zIndex:9999,top:c,left:c,right:c,bottom:c,pointerEvents:"none"}},Object.entries(f).map(([s,m])=>{let v=tt[s],a=Y({position:s,reverse:i});return y.default.createElement("div",{key:s,"data-testid":s,style:{pointerEvents:"auto",position:"fixed",display:"flex",flexDirection:a,gap:o,...v}},m.map(d=>y.default.createElement(D,{key:d.toastId,toastProps:d,style:{display:"flex",justifyContent:"center"}})))}))))}
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- var N=()=>{let t=0;return()=>String(t++)};var _=class{state=[];listeners=new Set;activatedToasts=new Set;toastTimers=new Map;constructor(){}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setState(e){this.state=typeof e=="function"?e(this.state):e,this.listeners.forEach(r=>r())}getSnapShot(){return this.state}};var g="react-strawberry-toast";var W=t=>{let e=o=>{let i=t.toastTimers.get(o);clearTimeout(i),t.toastTimers.delete(o)},r=o=>{t.activatedToasts.add(o)},n=o=>t.activatedToasts.has(o),p=(o,i=200)=>{n(o)&&(t.activatedToasts.delete(o),setTimeout(()=>{t.state=t.state.filter(c=>c.toastId!==o),t.setState([...t.state])},i),e(o))},f=(o,i,c)=>{t.state=t.state.map(b=>b.toastId===o?{...b,...c,updated:!0,data:i}:b),t.setState([...t.state])},a=o=>{let i=new Date().getTime();t.state=t.state.map(c=>c.toastId===o?{...c,pausedAt:i}:c),e(o),t.setState([...t.state])},m=(o,i)=>{let c=setTimeout(()=>{var D;t.state=t.state.map(w=>w.toastId===o?{...w,isVisible:!1}:w),t.setState([...t.state]);let b=(D=t.state.find(w=>w.toastId===o))==null?void 0:D.removeTimeOut;p(o,b)},i>2147483647?2147483647:i);t.toastTimers.set(o,c)};return{setActive:r,isActive:n,disappear:m,resume:o=>{if(t.toastTimers.has(o))return;let i=t.state.find(b=>b.toastId===o);if(!i)return;let c=i.createdAt+(i.timeOut||3e3)-(i.pausedAt||0);m(o,c)},pause:a,replace:f,remove:p}};var l=new _,V=N(),I=(t="default")=>(e,r={})=>{let{timeOut:n=3e3,removeTimeOut:p=200,pauseOnHover:f=!0,toastId:a}=r,m=a||V();if(s.isActive(m))throw new Error("A duplicate custom ID is not available.");let T=new Date().getTime(),o={...r,timeOut:n>2147483647?2147483647:n,toastId:m,data:e,createdAt:T,toastType:t,pauseOnHover:f,removeTimeOut:p,isVisible:!0};return l.state.push(o),l.setState([...l.state]),m},s=(t,e={})=>I()(t,e),S=W(l);s.setActive=S.setActive;s.isActive=S.isActive;s.disappear=S.disappear;s.resume=S.resume;s.pause=S.pause;s.replace=S.replace;s.remove=S.remove;s.success=I("success");s.error=I("error");s.warn=I("warn");s.loading=I("loading");s.custom=I("custom");s.promise=(t,e,r={})=>{let{loading:n,success:p,error:f}=e,a=s.loading(n,{...r,timeOut:2147483647});t.then(()=>{s.replace(a,p,{...r,toastType:"success"})}).catch(()=>{s.replace(a,f,{...r,toastType:"error"})})};import v from"react";import{useSyncExternalStore as B}from"react";import y,{useEffect as z}from"react";import{Children as U}from"react";function A({condition:t,children:e}){let r=U.toArray(e);if(r.length>2)throw new Error("The number of children exceeds two.");return r.find(n=>t?n.key===".0":n.key===".1")}function O({children:t}){return t}function k({children:t}){return t}var P=({isVisible:t,position:e})=>t?/top/i.test(e)?`${g}__fade-in`:`${g}__fade-in-reverse`:/bottom/i.test(e)?`${g}__fade-out-reverse`:`${g}__fade-out`;import u from"react";function Y(){return u.createElement("svg",{stroke:"none",fill:"none",strokeWidth:"2",viewBox:"0 0 24 24",strokeLinecap:"round",strokeLinejoin:"round",height:"22",width:"22",xmlns:"http://www.w3.org/2000/svg"},u.createElement("path",{stroke:"none",d:"M0 0h24v24H0z"}),u.createElement("path",{d:"M17 3.34a10 10 0 1 1 -14.995 8.984l-.005 -.324l.005 -.324a10 10 0 0 1 14.995 -8.336zm-1.293 5.953a1 1 0 0 0 -1.32 -.083l-.094 .083l-3.293 3.292l-1.293 -1.292l-.094 -.083a1 1 0 0 0 -1.403 1.403l.083 .094l2 2l.094 .083a1 1 0 0 0 1.226 0l.094 -.083l4 -4l.083 -.094a1 1 0 0 0 -.083 -1.32z",strokeWidth:"0",fill:"#1ab173"}))}function X(){return u.createElement("svg",{stroke:"none",fill:"#eb2639",strokeWidth:"2",viewBox:"0 0 24 24",height:"22",width:"22",xmlns:"http://www.w3.org/2000/svg"},u.createElement("path",{d:"M11.953 2C6.465 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.493 2 11.953 2zM13 17h-2v-2h2v2zm0-4h-2V7h2v6z"}))}function $(){return u.createElement("svg",{stroke:"none",fill:"#fcba03",strokeWidth:"0",viewBox:"0 0 1024 1024",height:"22",width:"22",xmlns:"http://www.w3.org/2000/svg"},u.createElement("path",{d:"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zM480 416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416zm32 352a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"}))}var x={success:Y,error:X,loading:()=>u.createElement("div",{className:`${g}__loading`}),warn:$};function H({status:t,children:e}){let r=t==="custom"||t==="default"?null:x[t];return u.createElement("div",{style:{boxSizing:"border-box",backgroundColor:"white",padding:"12px 14px 12px 12px",display:"flex",alignItems:"center",gap:5,borderRadius:8,boxShadow:"2px 4px 10px rgba(0, 0, 0, 0.1)"}},r&&u.createElement("span",{style:{minWidth:20,maxWidth:20}},u.createElement(r,null)),e)}function M({toastProps:t,...e}){let r=P({isVisible:t.isVisible,position:t.position}),n=typeof t.data=="function"?t.data({close:()=>s.disappear(t.toastId,0),immediatelyClose:()=>{s.disappear(t.toastId,0),s.remove(t.toastId,0)},icons:{success:y.createElement(x.success,null),error:y.createElement(x.error,null),warn:y.createElement(x.warn,null),loading:y.createElement(x.loading,null)},isVisible:t.isVisible}):t.data,p=()=>{t.pauseOnHover&&s.pause(t.toastId)},f=()=>{t.pauseOnHover&&s.resume(t.toastId)};return z(()=>{s.isActive(t.toastId)||(s.setActive(t.toastId),s.disappear(t.toastId,t.timeOut))},[t.toastId]),z(()=>{if(t.updated!==void 0){let a=t.timeOut>=2147483647?3e3:t.timeOut;s.disappear(t.toastId,a)}},[t.updated]),y.createElement("div",{role:"alert","data-testid":`container-${t.containerId}`,className:t.toastType==="custom"?"":r,onMouseEnter:p,onMouseLeave:f,...e},y.createElement(A,{condition:t.toastType!=="custom"},y.createElement(O,null,y.createElement(H,{status:t.toastType},n)),y.createElement(k,null,n)))}var L=({position:t,reverse:e=!1})=>/top/i.test(t)?e?"column-reverse":"column":/bottom/i.test(t)?e?"column":"column-reverse":"column";var d=16,j={"top-left":{top:d,left:d},"top-center":{top:d,left:"50%",transform:"translateX(-50%)"},"top-right":{top:d,right:d},"bottom-left":{bottom:d,left:d},"bottom-center":{bottom:d,left:"50%",transform:"translateX(-50%)"},"bottom-right":{bottom:d,right:d}};function _t({position:t="top-center",containerId:e="",gap:r=9,reverse:n=!1}){let p=B(l.subscribe.bind(l),l.getSnapShot.bind(l),l.getSnapShot.bind(l)),f=p.filter(a=>a.containerId===void 0).reduce((a,m)=>{let T=m.position||t;return m.position=T,a[T]=a[T]||[],a[T].push(m),a},{});return v.createElement(A,{condition:!!e},v.createElement(O,null,v.createElement("div",{style:{position:"absolute",zIndex:9999,pointerEvents:"none"}},v.createElement("div",{style:{pointerEvents:"auto",display:"flex",flexDirection:n?"column-reverse":"column",gap:r}},p.filter(a=>a.containerId===e).map(a=>v.createElement(M,{key:a.toastId,toastProps:a,style:{display:"flex"}}))))),v.createElement(k,null,v.createElement("div",{style:{position:"fixed",zIndex:9999,top:d,left:d,right:d,bottom:d,pointerEvents:"none"}},Object.entries(f).map(([a,m])=>{let T=j[a],o=L({position:a,reverse:n});return v.createElement("div",{key:a,"data-testid":a,style:{pointerEvents:"auto",position:"fixed",display:"flex",flexDirection:o,gap:r,...T}},m.map(i=>v.createElement(M,{key:i.toastId,toastProps:i,style:{display:"flex",justifyContent:"center"}})))}))))}export{_t as ToastContainer,s as toast,l as toastStore};
2
+ var D=()=>{let t=0;return()=>String(t++)};var _=class{state=[];listeners=new Set;activatedToasts=new Set;toastTimers=new Map;constructor(){}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setState(e){this.state=typeof e=="function"?e(this.state):e,this.listeners.forEach(s=>s())}getSnapShot(){return this.state}};var g="react-strawberry-toast";var W=t=>{let e=o=>{let i=t.toastTimers.get(o);clearTimeout(i),t.toastTimers.delete(o)},s=o=>{t.activatedToasts.add(o)},n=o=>t.activatedToasts.has(o),c=(o,i=200)=>{n(o)&&(t.activatedToasts.delete(o),setTimeout(()=>{t.state=t.state.filter(l=>l.toastId!==o),t.setState([...t.state])},i),e(o))},p=(o,i,l)=>{t.state=t.state.map(b=>b.toastId===o?{...b,...l,updated:!0,data:i}:b),t.setState([...t.state])},r=o=>{let i=new Date().getTime();t.state=t.state.map(l=>l.toastId===o?{...l,pausedAt:i}:l),e(o),t.setState([...t.state])},d=(o,i)=>{let l=setTimeout(()=>{var N;t.state=t.state.map(E=>E.toastId===o?{...E,isVisible:!1}:E),t.setState([...t.state]);let b=(N=t.state.find(E=>E.toastId===o))==null?void 0:N.removeTimeOut;c(o,b)},i>2147483647?2147483647:i);t.toastTimers.set(o,l)};return{setActive:s,isActive:n,disappear:d,resume:o=>{if(t.toastTimers.has(o))return;let i=t.state.find(b=>b.toastId===o);if(!i)return;let l=i.createdAt+(i.timeOut||3e3)-(i.pausedAt||0);d(o,l)},pause:r,replace:p,remove:c}};var u=new _,V=D(),x=(t="default")=>(e,s={})=>{let{timeOut:n=3e3,removeTimeOut:c=200,pauseOnHover:p=!0,toastId:r}=s,d=r||V();if(a.isActive(d))throw new Error("A duplicate custom ID is not available.");let T=new Date().getTime(),o={...s,timeOut:n>2147483647?2147483647:n,toastId:d,data:e,createdAt:T,toastType:t,pauseOnHover:p,removeTimeOut:c,isVisible:!0};return u.state.push(o),u.setState([...u.state]),d},a=(t,e={})=>x()(t,e),I=W(u);a.setActive=I.setActive;a.isActive=I.isActive;a.disappear=I.disappear;a.resume=I.resume;a.pause=I.pause;a.replace=I.replace;a.remove=I.remove;a.success=x("success");a.error=x("error");a.warn=x("warn");a.loading=x("loading");a.custom=x("custom");a.promise=(t,e,s={})=>{let{loading:n,success:c,error:p}=e,r=a.loading(n,{...s,timeOut:2147483647});t.then(d=>{a.replace(r,typeof c=="function"?c(d):c,{...s,timeOut:s.timeOut||3e3,toastType:"success"})}).catch(d=>{a.replace(r,typeof p=="function"?p(d):p,{...s,timeOut:s.timeOut||3e3,toastType:"error"})})};import v from"react";import{useSyncExternalStore as B}from"react";import y,{useEffect as z}from"react";import{Children as U}from"react";function A({condition:t,children:e}){let s=U.toArray(e);if(s.length>2)throw new Error("The number of children exceeds two.");return s.find(n=>t?n.key===".0":n.key===".1")}function O({children:t}){return t}function k({children:t}){return t}var P=({isVisible:t,position:e})=>t?/top/i.test(e)?`${g}__fade-in`:`${g}__fade-in-reverse`:/bottom/i.test(e)?`${g}__fade-out-reverse`:`${g}__fade-out`;import f from"react";function Y(){return f.createElement("svg",{stroke:"none",fill:"none",strokeWidth:"2",viewBox:"0 0 24 24",strokeLinecap:"round",strokeLinejoin:"round",height:"22",width:"22",xmlns:"http://www.w3.org/2000/svg"},f.createElement("path",{stroke:"none",d:"M0 0h24v24H0z"}),f.createElement("path",{d:"M17 3.34a10 10 0 1 1 -14.995 8.984l-.005 -.324l.005 -.324a10 10 0 0 1 14.995 -8.336zm-1.293 5.953a1 1 0 0 0 -1.32 -.083l-.094 .083l-3.293 3.292l-1.293 -1.292l-.094 -.083a1 1 0 0 0 -1.403 1.403l.083 .094l2 2l.094 .083a1 1 0 0 0 1.226 0l.094 -.083l4 -4l.083 -.094a1 1 0 0 0 -.083 -1.32z",strokeWidth:"0",fill:"#1ab173"}))}function X(){return f.createElement("svg",{stroke:"none",fill:"#eb2639",strokeWidth:"2",viewBox:"0 0 24 24",height:"22",width:"22",xmlns:"http://www.w3.org/2000/svg"},f.createElement("path",{d:"M11.953 2C6.465 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.493 2 11.953 2zM13 17h-2v-2h2v2zm0-4h-2V7h2v6z"}))}function $(){return f.createElement("svg",{stroke:"none",fill:"#fcba03",strokeWidth:"0",viewBox:"0 0 1024 1024",height:"22",width:"22",xmlns:"http://www.w3.org/2000/svg"},f.createElement("path",{d:"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zM480 416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416zm32 352a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"}))}var w={success:Y,error:X,loading:()=>f.createElement("div",{className:`${g}__loading`}),warn:$};function H({status:t,children:e}){let s=t==="custom"||t==="default"?null:w[t];return f.createElement("div",{style:{boxSizing:"border-box",backgroundColor:"white",padding:"12px 14px 12px 12px",display:"flex",alignItems:"center",gap:5,borderRadius:8,boxShadow:"2px 4px 10px rgba(0, 0, 0, 0.1)"}},s&&f.createElement("span",{style:{minWidth:20,maxWidth:20}},f.createElement(s,null)),e)}function M({toastProps:t,...e}){let s=P({isVisible:t.isVisible,position:t.position}),n=typeof t.data=="function"?t.data({close:()=>a.disappear(t.toastId,0),immediatelyClose:()=>{a.disappear(t.toastId,0),a.remove(t.toastId,0)},icons:{success:y.createElement(w.success,null),error:y.createElement(w.error,null),warn:y.createElement(w.warn,null),loading:y.createElement(w.loading,null)},isVisible:t.isVisible}):t.data,c=()=>{t.pauseOnHover&&a.pause(t.toastId)},p=()=>{t.pauseOnHover&&a.resume(t.toastId)};return z(()=>{a.isActive(t.toastId)||(a.setActive(t.toastId),a.disappear(t.toastId,t.timeOut))},[t.toastId]),z(()=>{if(t.updated!==void 0){let r=t.timeOut>=2147483647?3e3:t.timeOut;a.disappear(t.toastId,r)}},[t.updated]),y.createElement("div",{role:"alert","data-testid":`container-${t.containerId}`,className:t.toastType==="custom"?"":s,onMouseEnter:c,onMouseLeave:p,...e},y.createElement(A,{condition:t.toastType!=="custom"},y.createElement(O,null,y.createElement(H,{status:t.toastType},n)),y.createElement(k,null,n)))}var L=({position:t,reverse:e=!1})=>/top/i.test(t)?e?"column-reverse":"column":/bottom/i.test(t)?e?"column":"column-reverse":"column";var m=16,j={"top-left":{top:m,left:m},"top-center":{top:m,left:"50%",transform:"translateX(-50%)"},"top-right":{top:m,right:m},"bottom-left":{bottom:m,left:m},"bottom-center":{bottom:m,left:"50%",transform:"translateX(-50%)"},"bottom-right":{bottom:m,right:m}};function _t({position:t="top-center",containerId:e="",gap:s=9,reverse:n=!1}){let c=B(u.subscribe.bind(u),u.getSnapShot.bind(u),u.getSnapShot.bind(u)),p=c.filter(r=>r.containerId===void 0).reduce((r,d)=>{let T=d.position||t;return d.position=T,r[T]=r[T]||[],r[T].push(d),r},{});return v.createElement(A,{condition:!!e},v.createElement(O,null,v.createElement("div",{style:{position:"absolute",zIndex:9999,pointerEvents:"none"}},v.createElement("div",{style:{pointerEvents:"auto",display:"flex",flexDirection:n?"column-reverse":"column",gap:s}},c.filter(r=>r.containerId===e).map(r=>v.createElement(M,{key:r.toastId,toastProps:r,style:{display:"flex"}}))))),v.createElement(k,null,v.createElement("div",{style:{position:"fixed",zIndex:9999,top:m,left:m,right:m,bottom:m,pointerEvents:"none"}},Object.entries(p).map(([r,d])=>{let T=j[r],o=L({position:r,reverse:n});return v.createElement("div",{key:r,"data-testid":r,style:{pointerEvents:"auto",position:"fixed",display:"flex",flexDirection:o,gap:s,...T}},d.map(i=>v.createElement(M,{key:i.toastId,toastProps:i,style:{display:"flex",justifyContent:"center"}})))}))))}export{_t as ToastContainer,a as toast,u as toastStore};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-strawberry-toast",
3
3
  "description": "A simple and customizable React toast library",
4
- "version": "1.0.0-alpha.3",
4
+ "version": "1.1.0",
5
5
  "author": "dkpark10",
6
6
  "license": "MIT",
7
7
  "keywords": [
@@ -41,7 +41,7 @@
41
41
  "default": "./dist/headless.mjs"
42
42
  }
43
43
  },
44
- "./dist/index.css": "./dist/index.css"
44
+ "./dist/style.css": "./dist/style.css"
45
45
  },
46
46
  "files": [
47
47
  "dist"
@@ -54,15 +54,19 @@
54
54
  "test": "vitest",
55
55
  "test:watch": "vitest --watch",
56
56
  "test:ui": "vitest --ui",
57
- "test:coverage": "vitest --coverage"
57
+ "test:coverage": "vitest --coverage",
58
+ "prepare": "husky install"
58
59
  },
59
60
  "devDependencies": {
61
+ "@commitlint/cli": "^19.6.1",
62
+ "@commitlint/config-conventional": "^19.6.0",
60
63
  "@testing-library/jest-dom": "^6.6.3",
61
64
  "@testing-library/react": "^15.0.7",
62
65
  "@types/react": "^18.3.12",
63
66
  "@types/react-dom": "^18.3.1",
64
67
  "concurrently": "^9.1.0",
65
68
  "esbuild-sass-plugin": "^3.3.1",
69
+ "husky": "^8",
66
70
  "jsdom": "^24.0.0",
67
71
  "react": "^18.2.0",
68
72
  "react-dom": "^18.2.0",
@@ -71,8 +75,6 @@
71
75
  "tsup": "^8.3.5",
72
76
  "typescript": "^5.7.2",
73
77
  "vite": "^5.2.0",
74
- "vite-plugin-dts": "^4.3.0",
75
- "vite-plugin-svgr": "^4.3.0",
76
78
  "vitest": "^1.6.0"
77
79
  },
78
80
  "peerDependencies": {
File without changes