customizable-toast-notification 3.11.5 → 3.12.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/CHANGELOG.md +7 -0
- package/README.md +106 -12
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +36 -106
- package/dist/index.esm.mjs +3 -3
- package/dist/index.esm.mjs.map +1 -1
- package/dist/index.umd.js +4 -4
- package/dist/index.umd.js.map +1 -1
- package/package.json +7 -5
package/dist/index.d.ts
CHANGED
|
@@ -1,122 +1,52 @@
|
|
|
1
|
-
type
|
|
1
|
+
type ToastHandle = {
|
|
2
2
|
/**
|
|
3
|
-
* -
|
|
3
|
+
* - Dismisses this specific toast. Safe to call even if the toast already closed itself (e.g. its duration expired) — no-ops rather than throwing.
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* - Called on click. If it returns a Promise, autoClose waits for it to resolve first.
|
|
8
|
-
*/
|
|
9
|
-
onClick?: () => void | Promise<void>;
|
|
10
|
-
/**
|
|
11
|
-
* - If set together with variant:"link", renders an <a> instead of a <button>.
|
|
12
|
-
*/
|
|
13
|
-
href?: string;
|
|
14
|
-
/**
|
|
15
|
-
* - "link" only takes effect when href is also set.
|
|
16
|
-
*/
|
|
17
|
-
variant?: "button" | "link";
|
|
18
|
-
/**
|
|
19
|
-
* - Anchor target, e.g. "_blank". Automatically gets rel="noopener noreferrer" unless you set rel yourself.
|
|
20
|
-
*/
|
|
21
|
-
target?: string;
|
|
22
|
-
rel?: string;
|
|
23
|
-
/**
|
|
24
|
-
* - Falls back to label if omitted.
|
|
25
|
-
*/
|
|
26
|
-
ariaLabel?: string;
|
|
27
|
-
/**
|
|
28
|
-
* - Defaults to true: the toast closes after onClick resolves. Set false to keep it open.
|
|
29
|
-
*/
|
|
30
|
-
autoClose?: boolean;
|
|
5
|
+
dismiss: () => Promise<void>;
|
|
31
6
|
};
|
|
32
|
-
type
|
|
33
|
-
|
|
34
|
-
* - Toast body text. Falls back to a per-type default (see setDefaultMessages) if omitted.
|
|
35
|
-
*/
|
|
36
|
-
message?: string;
|
|
37
|
-
type?: "success" | "error" | "warning" | "info";
|
|
38
|
-
/**
|
|
39
|
-
* - If true, message is sanitized (see sanitizeHtml) and rendered as HTML instead of plain text.
|
|
40
|
-
*/
|
|
41
|
-
allowHtml?: boolean;
|
|
42
|
-
/**
|
|
43
|
-
* - Set false only if you've already fully sanitized message yourself.
|
|
44
|
-
*/
|
|
45
|
-
sanitizeHtml?: boolean;
|
|
46
|
-
/**
|
|
47
|
-
* - Defaults to true automatically whenever cta is set; otherwise false unless explicitly set true.
|
|
48
|
-
*/
|
|
49
|
-
pauseOnHover?: boolean;
|
|
50
|
-
/**
|
|
51
|
-
* - Milliseconds before auto-dismiss.
|
|
52
|
-
*/
|
|
53
|
-
duration?: number;
|
|
54
|
-
/**
|
|
55
|
-
* - e.g. "top-left", "bottom-right", "top-center", "bottom-center", "left-center", "right-center", "top-full-width", "bottom-full-width", "center".
|
|
56
|
-
*/
|
|
57
|
-
position?: string;
|
|
58
|
-
borderRadius?: string;
|
|
59
|
-
/**
|
|
60
|
-
* - Auto-computed per type if omitted.
|
|
61
|
-
*/
|
|
62
|
-
backgroundColor?: string;
|
|
7
|
+
type ToastPromiseMessages = {
|
|
8
|
+
loading?: string;
|
|
63
9
|
/**
|
|
64
|
-
* -
|
|
10
|
+
* - Either a fixed string, or a function that receives the resolved value and returns the message.
|
|
65
11
|
*/
|
|
66
|
-
|
|
67
|
-
showCloseButton?: boolean;
|
|
68
|
-
animationDuration?: string;
|
|
69
|
-
animationEasing?: string;
|
|
70
|
-
showProgressBar?: boolean;
|
|
12
|
+
success?: string | ((value: any) => string);
|
|
71
13
|
/**
|
|
72
|
-
* -
|
|
14
|
+
* - Either a fixed string, or a function that receives the caught error and returns the message.
|
|
73
15
|
*/
|
|
74
|
-
|
|
75
|
-
progressHeight?: string;
|
|
76
|
-
progressPosition?: "top" | "bottom";
|
|
77
|
-
fontPadding?: string;
|
|
78
|
-
fontBorderRadius?: string;
|
|
79
|
-
fontBackgroundColor?: string;
|
|
80
|
-
fontFamily?: string;
|
|
81
|
-
fontSize?: string;
|
|
82
|
-
fontWeight?: string;
|
|
83
|
-
fontLineHeight?: string;
|
|
84
|
-
fontDirection?: string;
|
|
85
|
-
/**
|
|
86
|
-
* - "normal" wraps naturally; falsy truncates to 3 lines with an ellipsis.
|
|
87
|
-
*/
|
|
88
|
-
wrapText?: "normal" | false;
|
|
89
|
-
/**
|
|
90
|
-
* - Auto-set to "100vw" for the two full-width positions, "400px" otherwise, unless overridden.
|
|
91
|
-
*/
|
|
92
|
-
maxWidth?: string;
|
|
93
|
-
/**
|
|
94
|
-
* - Adds a button or link. Setting this also defaults pauseOnHover to true.
|
|
95
|
-
*/
|
|
96
|
-
cta?: ToastCTAConfig;
|
|
16
|
+
error?: string | ((error: any) => string);
|
|
97
17
|
};
|
|
98
18
|
/**
|
|
99
|
-
*
|
|
19
|
+
* @typedef {Object} ToastHandle
|
|
20
|
+
* @property {() => Promise<void>} dismiss - Dismisses this specific toast. Safe to call even if the toast already closed itself (e.g. its duration expired) — no-ops rather than throwing.
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
100
23
|
* @param {ToastOptions} [options]
|
|
101
|
-
* @returns {Promise<
|
|
24
|
+
* @returns {Promise<ToastHandle>}
|
|
102
25
|
*/
|
|
103
|
-
declare function createToastWithPriority(options?: ToastOptions): Promise<
|
|
26
|
+
declare function createToastWithPriority(options?: ToastOptions): Promise<ToastHandle>;
|
|
27
|
+
declare function setDefaultColors(colors: any): void;
|
|
28
|
+
declare function setDefaultMessages(messages: any): void;
|
|
29
|
+
declare function dismissToast(): Promise<void>;
|
|
30
|
+
declare function noopAll(): Promise<void>;
|
|
104
31
|
/**
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
* @
|
|
32
|
+
* @typedef {Object} ToastPromiseMessages
|
|
33
|
+
* @property {string} [loading="Loading..."]
|
|
34
|
+
* @property {string | ((value: any) => string)} [success="Done!"] - Either a fixed string, or a function that receives the resolved value and returns the message.
|
|
35
|
+
* @property {string | ((error: any) => string)} [error="Something went wrong."] - Either a fixed string, or a function that receives the caught error and returns the message.
|
|
108
36
|
*/
|
|
109
|
-
declare function setDefaultColors(colors: Partial<Record<"success" | "error" | "warning" | "info", string>>): void;
|
|
110
37
|
/**
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
*
|
|
38
|
+
* Shows a loading toast, then swaps it for a success or error toast once
|
|
39
|
+
* the given promise settles. The original promise's resolution/rejection
|
|
40
|
+
* is passed through unchanged, so `await toastPromise(fetchData(), {...})`
|
|
41
|
+
* still gives you the real result (or throws the real error) — this is
|
|
42
|
+
* purely a UI layer on top of a promise you're already awaiting.
|
|
43
|
+
*
|
|
44
|
+
* @param {Promise<any> | (() => Promise<any>)} promiseOrFn - A promise, or a function that returns one (called immediately).
|
|
45
|
+
* @param {ToastPromiseMessages} [messages]
|
|
46
|
+
* @param {Omit<ToastOptions, "message" | "type">} [options] - Applied to all three toasts (loading/success/error). type and message are controlled by this function.
|
|
47
|
+
* @returns {Promise<any>} Resolves/rejects with whatever the original promise did.
|
|
114
48
|
*/
|
|
115
|
-
declare function
|
|
116
|
-
/** @type {() => Promise<void>} */
|
|
117
|
-
declare const dismissToast: () => Promise<void>;
|
|
118
|
-
/** @type {() => Promise<void>} */
|
|
119
|
-
declare const noopAll: () => Promise<void>;
|
|
49
|
+
declare function toastPromise(promiseOrFn: Promise<any> | (() => Promise<any>), messages?: ToastPromiseMessages, options?: Omit<ToastOptions, "message" | "type">): Promise<any>;
|
|
120
50
|
|
|
121
|
-
export { createToastWithPriority as createToast, dismissToast as dismiss, noopAll as noop, setDefaultColors, setDefaultMessages };
|
|
122
|
-
export type {
|
|
51
|
+
export { createToastWithPriority as createToast, dismissToast as dismiss, noopAll as noop, setDefaultColors, setDefaultMessages, toastPromise };
|
|
52
|
+
export type { ToastHandle, ToastPromiseMessages };
|
package/dist/index.esm.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Customizable Toast Notifications
|
|
3
|
-
* Build: 2026-08-
|
|
4
|
-
* Cache-Buster:
|
|
3
|
+
* Build: 2026-08-31 06:37:33
|
|
4
|
+
* Cache-Buster: 1788158253006
|
|
5
5
|
* Author: Priyanshu Patel
|
|
6
6
|
* Email: priyanshu.alt191@gmail.com
|
|
7
7
|
* License: Apache-2.0
|
|
@@ -12,5 +12,5 @@
|
|
|
12
12
|
* Supports flexible positioning, theming, icons, animations, and timing options
|
|
13
13
|
* out of the box — with CTA support and zero dependencies.
|
|
14
14
|
*/
|
|
15
|
-
async function t(t,e){const n=document.createElement(t);return n.id=function(t){return`${t}-${Date.now().toString(36)}-${Math.floor(1048575*Math.random()).toString(36)}`}(e),n}const e=new class{constructor(t=200){this.maxSize=t,this.map=new Map}get(t){if(!this.map.has(t))return;const e=this.map.get(t);return this.map.delete(t),this.map.set(t,e),e}set(t,e){if(this.map.has(t))this.map.delete(t);else if(this.map.size>=this.maxSize){const t=this.map.keys().next().value;this.map.delete(t)}this.map.set(t,e)}}(200),n={};function o(t,o=1){if(!t)return"snow";const r=`${t}|${o}`,i=e.get(r);if(i)return i;if(n[null==t?void 0:t.toLowerCase()]){const o=n[t.toLowerCase()];return e.set(r,o),o}let a,s,l;try{const e=function(t){const e=null==t?void 0:t.match(/^#([0-9a-f]{3,8})$/i);if(e){let t=e[1];return 3===t.length&&(t=t.split("").map(t=>t+t).join("")),{r:parseInt(t.slice(0,2),16),g:parseInt(t.slice(2,4),16),b:parseInt(t.slice(4,6),16)}}const n=null==t?void 0:t.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*[\d.]+)?\)/i);if(n)return{r:Number(n[1]),g:Number(n[2]),b:Number(n[3])};const o=null==t?void 0:t.match(/hsla?\(\s*([\d.]+)(?:deg)?\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%(?:\s*,\s*[\d.]+)?\)/i);if(o){const t=Number(o[1])/360,e=Number(o[2])/100,n=Number(o[3])/100;if(0===e){const t=Math.round(255*n);return{r:t,g:t,b:t}}const r=(t,e,n)=>(n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t),i=n<.5?n*(1+e):n+e-n*e,a=2*n-i;return{r:Math.round(255*r(a,i,t+1/3)),g:Math.round(255*r(a,i,t)),b:Math.round(255*r(a,i,t-1/3))}}return null}(function(t){var e;const n=null==t?void 0:t.match(/^var\((--[\w-]+)(?:\s*,\s*(.+))?\)$/i);if(!n)return t;try{if("undefined"!=typeof document&&"function"==typeof getComputedStyle){const t=getComputedStyle(document.documentElement).getPropertyValue(n[1]).trim();if(t)return t}}catch(t){}return(null===(e=n[2])||void 0===e?void 0:e.trim())||t}(t));if(!e)throw new Error("Unknown color");({r:a,g:s,b:l}=e)}catch(t){a=s=l=128}a=Math.round(a*o+255*(1-o)),s=Math.round(s*o+255*(1-o)),l=Math.round(l*o+255*(1-o));const c=(t,e,n)=>{const o=[t,e,n].map(t=>(t/=255)<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4));return.2126*o[0]+.7152*o[1]+.0722*o[2]},u=(t,e)=>{const n=c(...t),o=c(...e);return(Math.max(n,o)+.05)/(Math.min(n,o)+.05)};let[d,m,f]=((t,e,n)=>{t/=255,e/=255,n/=255;const o=Math.max(t,e,n),r=Math.min(t,e,n);let i,a,s=(o+r)/2;if(o===r)i=a=0;else{const l=o-r;switch(a=s>.5?l/(2-o-r):l/(o+r),o){case t:i=(e-n)/l+(e<n?6:0);break;case e:i=(n-t)/l+2;break;case n:i=(t-e)/l+4}i/=6}return[360*i,a,s]})(a,s,l);let p=f<.5?Math.min(f+.5,1):Math.max(f-.5,0),[h,y,g]=((t,e,n)=>{let o,r,i;if(t/=360,0===e)o=r=i=n;else{const a=(t,e,n)=>(n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t),s=n<.5?n*(1+e):n+e-n*e,l=2*n-s;o=a(l,s,t+1/3),r=a(l,s,t),i=a(l,s,t-1/3)}return[Math.round(255*o),Math.round(255*r),Math.round(255*i)]})(d,m,p);if(u([a,s,l],[h,y,g])<4.5){const t=u([a,s,l],[0,0,0]),e=u([a,s,l],[255,255,255]);[h,y,g]=t>=e?[0,0,0]:[255,255,255]}const b=((t,e,n)=>`#${t.toString(16).padStart(2,"0")}${e.toString(16).padStart(2,"0")}${n.toString(16).padStart(2,"0")}`)(h,y,g);return e.set(r,b),b}Object.entries({aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}).forEach(([t,[e,o,r]])=>{const i=t=>{const e=t/255;return e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)},a=.2126*i(e)+.7152*i(o)+.0722*i(r),s=(a+.05)/.05,l=1.05/(a+.05);n[t.toLowerCase()]=s>=l?"#000000":"#ffffff"});const r=new Set(["DIV","SPAN","P","BR","STRONG","B","EM","I","U","SMALL","UL","OL","LI","A","IMG","PRE","CODE","MARK"]),i=new Set(["href","src","alt","title","class","target","rel"]);function a(t){if(!t||"string"!=typeof t)return"";let e=t.replace(/<\/?(script|iframe|object|embed|link|meta|style|form|input|button)[^>]*>/gi,"");e=e.replace(/\s(on\w+)\s*=\s*(['"])[\s\S]*?\2/gi,""),e=e.replace(/(href|src)\s*=\s*(['"])\s*javascript:[^'"]*\2/gi,"$1=$2#$2");const n=document.createElement("div");function o(t){if(t.nodeType===Node.TEXT_NODE)return document.createTextNode(t.nodeValue);if(t.nodeType!==Node.ELEMENT_NODE)return null;const e=t.tagName.toUpperCase();if(!r.has(e)){const e=document.createDocumentFragment();return Array.from(t.childNodes).forEach(t=>{const n=o(t);n&&e.appendChild(n)}),e}const n=document.createElement(t.tagName);return Array.from(t.attributes||[]).forEach(e=>{const o=e.name.toLowerCase(),r=e.value;i.has(o)&&("href"!==o&&"src"!==o||!/^\s*javascript:/i.test(r))&&("src"!==o||/^\s*(https?:|data:image\/)/i.test(r))&&("target"===o&&"_blank"===r&&n.setAttribute("rel",(t.getAttribute("rel")||"")+" noopener noreferrer"),n.setAttribute(o,r))}),Array.from(t.childNodes).forEach(t=>{const e=o(t);e&&n.appendChild(e)}),n}n.innerHTML=e;const a=document.createDocumentFragment();Array.from(n.childNodes).forEach(t=>{const e=o(t);e&&a.appendChild(e)});const s=document.createElement("div");return s.appendChild(a),s.innerHTML}function s(t,e={}){if(!t)return"";try{if(!e.forceFallback&&function(){try{if("undefined"!=typeof window&&window.DOMPurify)return!0}catch(t){}return!1}()){const e=window.DOMPurify.sanitize(t,{ALLOWED_TAGS:Array.from(r),ALLOWED_ATTR:Array.from(i),ALLOWED_URI_REGEXP:/^(?:(?:https?|mailto|ftp|tel|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i}),n=document.createElement("div");return n.innerHTML=e,n.querySelectorAll('a[target="_blank"]').forEach(t=>{const e=(t.getAttribute("rel")||"").split(/\s+/).filter(Boolean);e.includes("noopener")||e.push("noopener"),e.includes("noreferrer")||e.push("noreferrer"),t.setAttribute("rel",e.join(" "))}),n.innerHTML}}catch(t){}return a(t)}async function l(t,e,n){var o,r;const i=await async function(t){if("number"==typeof t&&t>0)return t;if("string"==typeof t){if(t.endsWith("s")&&!t.endsWith("ms")){const e=1e3*parseFloat(t);return e>0?e:500}const e=parseFloat(t);return e>0?e:500}return 500}(null==e?void 0:e.animationDuration);t.className=`toast toast-${null!==(o=null==e?void 0:e.type)&&void 0!==o?o:"info"}`,Object.assign(t.style,{background:null==e?void 0:e.backgroundColor,padding:"12px 16px",marginBottom:"10px",borderRadius:null==e?void 0:e.borderRadius,overflow:"hidden",display:"flex",alignItems:"center",justifyContent:"space-between",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)",minWidth:"250px",maxWidth:null==e?void 0:e.maxWidth,opacity:"0",position:"relative",cursor:"default",boxSizing:"border-box",userSelect:"text",transition:`opacity ${null==e?void 0:e.animationDuration} ${null==e?void 0:e.animationEasing}, transform ${null==e?void 0:e.animationDuration} ${null==e?void 0:e.animationEasing}`,transform:"translateY(20px)",zIndex:"9999"}),t.setAttribute("role","alert"),t.setAttribute("aria-live","polite"),t.tabIndex=0,t._animationDuration=i;const a=document.createElement("span");null!=e&&e.wrapText?Object.assign(a.style,{display:"block",whiteSpace:"normal"}):Object.assign(a.style,{display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:"3",whiteSpace:"nowrap"}),Object.assign(a.style,{flex:"1",padding:null==e?void 0:e.fontPadding,fontFamily:null==e?void 0:e.fontFamily,fontSize:null==e?void 0:e.fontSize,fontWeight:null==e?void 0:e.fontWeight,lineHeight:null==e?void 0:e.fontLineHeight,color:null==e?void 0:e.textColor,userSelect:"text",wordBreak:"break-word",overflow:"hidden",textOverflow:"ellipsis"});const l=!!e.allowHtml,c=null!==(r=e.message)&&void 0!==r?r:"";if(e.loader||e.showLoader){const t=function(t={}){const e=t.size||14,n=t.color||"currentColor",o=t.text||"",r=document.createElement("span");r.className="toast-loader",r.style.display="inline-flex",r.style.alignItems="center",r.style.gap="8px";const i="http://www.w3.org/2000/svg",a=document.createElementNS(i,"svg");a.setAttribute("width",String(e)),a.setAttribute("height",String(e)),a.setAttribute("viewBox","0 0 50 50"),a.setAttribute("aria-hidden","true");const s=document.createElementNS(i,"circle");if(s.setAttribute("cx","25"),s.setAttribute("cy","25"),s.setAttribute("r","20"),s.setAttribute("fill","none"),s.setAttribute("stroke",n),s.setAttribute("stroke-width","4"),s.setAttribute("stroke-linecap","round"),s.style.opacity="0.85",s.style.strokeDasharray="90",s.style.strokeDashoffset="60",s.style.transformOrigin="center",s.style.animation="toast-spinner 1s linear infinite",a.appendChild(s),r.appendChild(a),o){const t=document.createElement("span");t.style.fontSize="13px",t.textContent=o,r.appendChild(t)}if(!document.getElementById("toast-spinner-styles")){const t=document.createElement("style");t.id="toast-spinner-styles",t.innerHTML="@keyframes toast-spinner { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }",document.head.appendChild(t)}return r}(e.loader||{});a.appendChild(t);const n=document.createElement("span");n.style.display="inline-block",n.style.width="8px",a.appendChild(n)}if(l&&"string"==typeof c&&c.trim().length>0)try{const t=s(c),e=document.createElement("div");for(e.innerHTML=t;e.firstChild;)a.appendChild(e.firstChild)}catch(t){console.warn("HTML message sanitization failed, falling back to text:",t),a.textContent=c}else a.textContent=String(c);a.setAttribute("aria-label","Toast Notification Center"),a.setAttribute("title","string"==typeof c?c.replace(/<[^>]+>/g,""):String(c)),t.appendChild(a),null!=e&&e.cta&&0!==Object.keys(e.cta).length&&function(t,e,n){const o=null==e?void 0:e.cta;if(!o)return;const r={...o};r.label||(r.label="CTA Label Missing!");const i=!!r.href&&"link"===r.variant,a=document.createElement(i?"a":"button");i?(a.href=r.href,r.target&&(a.target=r.target),a.rel=r.rel||("_blank"===r.target?"noopener noreferrer":"")):a.type="button",a.setAttribute("aria-label",r.ariaLabel||r.label),Object.assign(a.style,{marginLeft:"10px",padding:"6px 10px",borderRadius:"6px",fontSize:"12px",fontWeight:"600",lineHeight:"1",border:"1px solid rgba(255,255,255,0.35)",color:e.textColor||"#fff",background:"rgba(255,255,255,0.15)",cursor:"pointer",whiteSpace:"nowrap",flexShrink:"0"}),a.textContent=r.label;const s=async e=>{try{if("function"==typeof r.onClick){const t=r.onClick(e);null!=t&&t.then&&await t}}finally{!1!==r.autoClose&&n(t)}};a.addEventListener("click",s),a._cleanup=()=>a.removeEventListener("click",s),t.appendChild(a)}(t,e,n),null!=e&&e.showCloseButton&&function(t,e,n){const o=document.createElement("button");o.setAttribute("aria-label","Close notification"),o.setAttribute("title","Close"),o.textContent="×",Object.assign(o.style,{background:"none",border:"none",color:e.textColor||"white",fontSize:"18px",marginLeft:"10px",cursor:"pointer"});const r=()=>n(t);o.addEventListener("click",r),t._cleanupCloseButton=()=>{o.removeEventListener("click",r)},t.appendChild(o)}(t,e,n),null!=e&&e.showProgressBar&&function(t,e){const n=document.createElement("div"),o=e.borderRadius||0,r=parseInt(o,10),i=r?"12px":"0",a=r?12:0,s=Math.max(r-10,a),l=r?`calc(100% - ${s}px)`:"100%";Object.assign(n.style,{position:"absolute",left:`${i}`,height:e.progressHeight||"4px",background:e.progressColor||"rgba(255, 255, 255, 0.3)",width:`${l}`,transition:`width ${e.duration||1800}ms linear`,["top"===e.progressPosition?"top":"bottom"]:"0",borderRadius:e.borderRadius||"4px"}),t.appendChild(n),"function"==typeof n.animate?t._progressAnimation=n.animate([{width:l},{width:"0%"}],{duration:Number(e.duration)||1800,easing:"linear",fill:"forwards",delay:50}):(n.style.transition=`width ${e.duration||1800}ms linear`,setTimeout(()=>{n.offsetWidth,n.style.width="0%"},50))}(t,e),function(t){setTimeout(()=>{requestAnimationFrame(()=>{t.style.opacity="1",t.style.transform="translateY(0)"})},50)}(t)}async function c(t,e){try{const n=document.createElement("div");Object.assign(n.style,{background:"#333",color:"white",padding:"10px 15px",position:"fixed",top:"20px",right:"20px",zIndex:"99999",borderRadius:"3px",maxWidth:"250px",wordWrap:"break-word",boxShadow:"0 2px 10px rgba(0,0,0,0.3)",cursor:"pointer"});const o=document.createElement("div"),r=document.createElement("span");r.style.display="inline-block",t.allowHtml?r.innerHTML=s(String(t.message||"Emergency Toast Showing!")):r.textContent=String(t.message||"Emergency Toast Creation Showing!"),o.appendChild(r);const i=document.createElement("span");for(i.style.cssText="float: right; margin-left: 10px; font-weight: bold;",i.textContent="×",o.appendChild(i);n.firstChild;)n.removeChild(n.firstChild);return n.appendChild(o),i.onclick=()=>{n.remove(),e(n)},document.body.appendChild(n),setTimeout(()=>{n.remove(),e(n)},null==t?void 0:t.duration),n}catch(n){return console.error("Emergency toast creation failed:",n),setTimeout(()=>{alert((null==t?void 0:t.message)||"Emergency Toast Creation Showing!"),e(null)},100),null}}const u=new Map,d=new Map;function m(t){return`toast-container-${function(t){return String(t).toLowerCase().trim().replace(/\bbelow\b/g,"bottom").replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"-").replace(/-{2,}/g,"-")}(t)}`}async function f(t,e){const n=m(t.position);if(d.has(n))return d.get(n);const o=(async()=>{const o=u.get(n);if(null!=o&&o.isConnected)return o;let r=document.getElementById(n);r&&!r.isConnected&&document.body.appendChild(r),r?(r.style.position=r.style.position||"fixed",r.style.zIndex=r.style.zIndex||"9999","function"==typeof e&&await e(r,t)):(r=document.createElement("div"),r.id=n,r.setAttribute("role","status"),r.setAttribute("aria-atomic","true"),r.style.position="fixed",r.style.zIndex="9999",r.style.inset="auto 10px 10px auto",r.style.display="flex",r.style.justifyContent="space-between",r.style.alignItems="center",r.style.flexDirection="column",r.style.overflow="hidden","function"==typeof e&&await e(r,t),document.body.appendChild(r));const i=document.querySelectorAll(`#${n}`);if(i.length>1)for(let t=1;t<i.length;t++)try{i[t].remove()}catch(t){}return u.set(n,r),r})();d.set(n,o);try{return await o}finally{d.delete(m(t.position))}}async function p(t,e){if(!t||!e.position)throw new Error("Invalid container or position!");!function(t){t.style.top="auto",t.style.bottom="auto",t.style.left="auto",t.style.right="auto",t.style.transform="none"}(t);const n=function(t){const e=t.toLowerCase().trim();return{hasTop:e.includes("top"),hasBottom:e.includes("bottom")||e.includes("below"),hasLeft:e.includes("left"),hasRight:e.includes("right"),hasCenter:e.includes("center"),hasFullWidth:e.includes("top-full-width")||e.includes("bottom-full-width")||e.includes("fullwidth")}}(e.position);(function(t,e,n){if(!n.hasFullWidth)return!1;if(n.hasTop)return e.maxWidth="100vw",t.style.top="10px",t.style.left="10px",t.style.right="10px",!0;if(n.hasBottom)return e.maxWidth="100vw",t.style.bottom="10px",t.style.left="10px",t.style.right="10px",!0;return!1})(t,e,n)||function(t,e){if(!e.hasCenter)return!1;if(e.hasTop&&!e.hasLeft&&!e.hasRight)return t.style.top="10px",t.style.left="50%",t.style.transform="translateX(-50%)",!0;if(e.hasBottom&&!e.hasLeft&&!e.hasRight)return t.style.bottom="10px",t.style.left="50%",t.style.transform="translateX(-50%)",!0;if(e.hasLeft&&!e.hasTop&&!e.hasBottom)return t.style.left="10px",t.style.top="50%",t.style.transform="translateY(-50%)",!0;if(e.hasRight&&!e.hasTop&&!e.hasBottom)return t.style.right="10px",t.style.top="50%",t.style.transform="translateY(-50%)",!0;if(!(e.hasLeft||e.hasRight||e.hasTop||e.hasBottom))return t.style.top="50%",t.style.left="50%",t.style.transform="translate(-50%, -50%)",!0;return!1}(t,n)||function(t,e){e.hasBottom?t.style.bottom="10px":e.hasTop&&(t.style.top="10px");e.hasRight?t.style.right="10px":e.hasLeft?t.style.left="10px":(e.hasBottom||e.hasTop||(t.style.bottom="10px"),t.style.left="50%",t.style.transform="translateX(-50%)")}(t,n)}class h{constructor(t,e){this.callback=t,this.delay=e,this.remaining=e,this.startTime=null,this.timeoutId=null,this.isPaused=!1,this.isCompleted=!1}start(){return this.isCompleted||this.timeoutId||(this.startTime=Date.now(),this.timeoutId=setTimeout(()=>{this.isCompleted=!0,this.timeoutId=null,this.callback()},this.remaining)),this}pause(){return this.isPaused||!this.timeoutId||this.isCompleted||(clearTimeout(this.timeoutId),this.timeoutId=null,this.remaining-=Date.now()-this.startTime,this.remaining=Math.max(0,this.remaining),this.isPaused=!0),this}resume(){return!this.isPaused||this.isCompleted||(this.isPaused=!1,this.start()),this}clear(){return this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null),this.isCompleted=!0,this}getRemainingTime(){return this.isCompleted?0:this.isPaused?this.remaining:this.timeoutId?Math.max(0,this.remaining-(Date.now()-this.startTime)):this.delay}}const y=new Map,g=new Map,b=[];let w=0;async function v(t={}){try{const e=function(t={}){return`${String(t.type).trim().toLowerCase()}|${function(t){let e=5381;for(let n=0;n<t.length;n++)e=(e<<5)+e+t.charCodeAt(n);return e>>>0}(String(t.message||"")).toString(16)}|${String(t.position).trim().toLowerCase()}`}(t);if(y.has(e)){const n=y.get(e);if(!n)throw new Error(`Active toast with key ${e} not found`);return n.count++,n.timer.clear(),n.timer=E(n.toast,t),await S(n),void await L(n)}if(g.has(e)){const t=g.get(e);if(!t)throw new Error(`Pending toast with key ${e} not found`);return void t.count++}const n={options:t,count:1,rafId:0};g.set(e,n),n.rafId=requestAnimationFrame(async()=>{const t=g.get(e);if(t){if(g.delete(e),w>=3)return b.push({options:t.options,key:e,count:t.count}),void await A();try{await x(t.options,e,t.count)}catch(t){console.error("showToast failed:",t)}}})}catch(t){console.error("showToast failed:",t)}}async function x(e,n,o){try{if(!e||"object"!=typeof e)throw new TypeError("options must be an object");w++;const r=await f(e,p);if(!r)throw new Error("Failed to create toast container");const i=await async function(e,n){if(!document.querySelector('[id^="toast-container-"]'))return null;let o;try{return o=await t("div","toast"),await l(o,e,n),o}catch(t){return console.warn("toast creation failed with error showing fallback one: ",t),o=await c(e,n),o}}(e,T);if(!i)throw new Error("Toast element creation failed");const a=document.createElement("div");Object.assign(a.style,{position:"relative",display:"inline-block",overflow:"visible",marginBottom:"10px",zIndex:"0",width:"100%"});const s=document.createElement("div");Object.assign(s.style,{position:"relative",overflow:"hidden",zIndex:"1"}),s.appendChild(i),a.appendChild(s),r.id.includes("toast-container-")&&r.appendChild(a);const u=!1!==e.pauseOnHover&&(!0===e.pauseOnHover||!!e.cta),d={outer:a,toast:i,count:Math.max(1,Math.floor(null!=o?o:0)),timeout:null,pauseOnHover:u};y.set(n,d),i._key=n,d.count>1&&await L(d),d.timer=E(i,e),await S(d)}catch(t){console.error("Something went wrong: ",t),w=Math.max(0,w-1);(document.querySelector('[id^="toast-container-"]')||document.body).appendChild(await c(e,T))}}const C=async function(){try{if(0===y.size)return;let t=null;if(document.querySelectorAll('[id^="toast-container-"]').forEach(e=>{const n=Array.from(e.children||[]);if(0===n.length)return;const o=n.at(-1);o&&(t=o.querySelector('[id^="toast-"]')||o)}),!t){const e=Array.from(y.entries());if(e.length>0){const[,n]=e.at(-1);t=n.toast||n.outer&&n.outer.querySelector('[id^="toast-"]')}}if(!t)return;const e=t._key?t:t.querySelector('[id^="toast-"]')||t;await T(e)}catch(t){console.error("dismissMostRecent failed:",t)}},k=async function(){try{const t=Array.from(y.values()).map(t=>t.toast).filter(Boolean);b.length=0,g.clear();for(const e of t)try{await T(e)}catch(t){console.warn("closeAllToasts: failed to close one toast:",t)}}catch(t){console.error("closeAllToasts failed:",t)}};function E(t,e){var n;const o=Number(null!==(n=e.duration)&&void 0!==n?n:1800)+5,r=new h(async()=>await T(t),o);return r.start(),r}async function S(t){if(!t.pauseOnHover||!t.outer||!t.timer)return;const{outer:e,timer:n,toast:o}=t,r=()=>{var t;n.pause(),null==o||null===(t=o._progressAnimation)||void 0===t||t.pause()},i=()=>{var t;n.resume(),null==o||null===(t=o._progressAnimation)||void 0===t||t.play()},a=t=>{var e;t.target.matches("[tabindex], div, span, button, a")&&(n.pause(),null==o||null===(e=o._progressAnimation)||void 0===e||e.pause())},s=t=>{var r;e.contains(t.relatedTarget)||(n.resume(),null==o||null===(r=o._progressAnimation)||void 0===r||r.play())};e.addEventListener("mouseenter",r),e.addEventListener("mouseleave",i),e.addEventListener("focusin",a),e.addEventListener("focusout",s),e._pauseCleanup=()=>{e.removeEventListener("mouseenter",r),e.removeEventListener("mouseleave",i),e.removeEventListener("focusin",a),e.removeEventListener("focusout",s)}}async function T(t){try{var e,n,o;if(null==t||!t._key)return;const r=y.get(t._key);if(!r)return;null===(e=r.timer)||void 0===e||e.clear(),null===(n=r.outer)||void 0===n||null===(o=n._pauseCleanup)||void 0===o||o.call(n),y.delete(t._key),w=Math.max(0,w-1);const i=r.outer.querySelector(".toast-count-badge");i&&i.remove(),await async function(t){return t?new Promise(e=>{let n=!1;const o=()=>{n||(n=!0,async function(t){if(!t)return!0;try{var e;if(null!=t&&null!==(e=t.parentNode)&&void 0!==e&&e.id.includes("toast-container-"))return t.parentNode.removeChild(t),!0}catch(t){}try{if(t.remove)return t.remove(),!0}catch(t){}try{return Object.assign(t.style,{display:"none",opacity:"0",pointerEvents:"none",position:"absolute",left:"-9999px"}),!0}catch(t){}}(t),e())},r=t.firstElementChild||t;if(!r)return e();const i=t=>{try{if(t.target!==r)return;r.removeEventListener("transitionend",i,!0),o()}catch(t){console.error("removeWithTransition error:",t)}};try{r.addEventListener("transitionend",i,!0)}catch(t){console.error("removeWithTransition error:",t)}setTimeout(()=>{try{r.removeEventListener("transitionend",i,!0),o()}catch(t){console.error("removeWithTransition error:",t)}},700)}):Promise.resolve()}(r.outer),await A()}catch(t){console.error("Closing Toast failed!: ",t)}}async function A(){for(;w<3&&b.length;){const t=b.shift();if(y.has(t.key)){const e=y.get(t.key);e.count+=t.count,await L(e);continue}x(t.options,t.key,t.count)}}async function L({outer:t,count:e}){if(!(t&&t instanceof HTMLElement))throw new Error("updateBadge: outer must be a valid HTMLElement");if(e<2){const e=t.querySelector(".toast-count-badge");return void(e&&e.remove())}let n=t.querySelector(".toast-count-badge");n||(n=document.createElement("span"),n.className="toast-count-badge",n.setAttribute("aria-label",`${e} identical notifications`),Object.assign(n.style,{position:"absolute",top:"6px",right:"6px",backgroundColor:"#f44336",color:"#fff",borderRadius:"50%",minWidth:"20px",height:"20px",fontSize:"12px",fontWeight:"600",display:"flex",alignItems:"center",justifyContent:"center",border:"2px solid #fff",boxShadow:"0 2px 6px rgba(0,0,0,0.3)",zIndex:"2",pointerEvents:"none",transition:"transform 150ms ease"}),t.appendChild(n)),n.textContent=e>99?"99+":String(e);try{n.style.transform="scale(1.2)",setTimeout(()=>n.style.transform="scale(1)",150)}catch(t){console.error("updateBadge animation error:",t)}}let M={success:"#28a745",error:"#dc3545",warning:"#ffc107",info:"#17a2b8"},I={success:"Operation completed successfully!",error:"Something went wrong!",warning:"Warning message!",info:"Information message!"};const O=[];let $=!1;async function N(t={}){try{const e=await async function(t){var e,n;const r=null==t||null===(e=t.position)||void 0===e||null===(e=e.toLowerCase())||void 0===e?void 0:e.trim(),i=null!=r&&r.includes("top-full-width")||null!=r&&r.includes("bottom-full-width")?"100vw":"400px",a={allowHtml:!1,sanitizeHtml:!0,pauseOnHover:void 0,duration:2500,position:"bottom-right",type:"info",borderRadius:"50px",backgroundColor:void 0,textColor:void 0,showCloseButton:!0,animationDuration:"0.4s",animationEasing:"ease",showProgressBar:!0,progressColor:void 0,progressHeight:"4px",progressPosition:"bottom",fontPosition:"relative",fontPadding:void 0,fontBorderRadius:void 0,fontBackgroundColor:void 0,fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',fontSize:"14px",fontWeight:"400",fontLineHeight:"1.4",fontDirection:"auto",wrapText:"normal",maxWidth:i,..."object"!=typeof t||Array.isArray(t)?{}:t};a.message=null!==(n=null==t?void 0:t.message)&&void 0!==n?n:a.message;try{var s,l;if(!a.backgroundColor)a.backgroundColor=null!==(s=null===(l=M)||void 0===l?void 0:l[a.type])&&void 0!==s?s:window.matchMedia("(prefers-color-scheme: dark)").matches?"#f5f5f5":"#111111"}catch(t){console.warn("Background color resolution failed:",t)}try{var c;a.message=a.message||(null===(c=I)||void 0===c?void 0:c[a.type])||"No Message Provided!"}catch(t){console.warn("Default message resolution failed:",t)}try{!a.textColor&&a.backgroundColor&&(a.textColor=o(a.backgroundColor))}catch(t){console.warn("Text color resolution failed:",t)}try{!a.progressColor&&a.backgroundColor&&(a.progressColor=a.textColor||o(a.backgroundColor))}catch(t){console.warn("Progress bar color resolution failed:",t)}"string"!=typeof a.message&&(a.message="No Message Provided!");return a}(t);await async function(t){try{return await f(t,p)}catch(t){return console.error("Failed to create toast container:",t),document.body}}(e),await v(e)}catch(e){console.error("CreateToast failed:",e);const n="string"==typeof(null==t?void 0:t.message)&&null!==(null==t?void 0:t.message)?`${t.message.substring(0,200)} toast creation failed!`:"Toast creation failed!";alert(n)}}function D(t){try{t&&"object"==typeof t&&!Array.isArray(t)&&(M={...M,...t})}catch(t){console.error("setDefaultColors failed:",t)}}function j(t){try{t&&"object"==typeof t&&!Array.isArray(t)&&(I={...I,...t})}catch(t){console.error("setDefaultMessages failed:",t)}}let z=!1,B=null;const W=async function(t={}){"undefined"!=typeof window&&"undefined"!=typeof document?(await async function(){if($)return;"undefined"!=typeof window&&"undefined"!=typeof document&&("complete"===document.readyState||"interactive"===document.readyState?($=!0,O.forEach(t=>setTimeout(()=>N(t),200)),O.length=0):document.addEventListener("DOMContentLoaded",()=>{$=!0,O.forEach(t=>setTimeout(()=>N(t),200)),O.length=0},{once:!0}))}(),$?await N(t):O.push(t)):console.warn("ToastNotification: running in non-browser environment, no DOM available.")};async function P(t={}){return async function(t){if(z&&B)try{await B}catch(t){console.warn("Previous close operation failed (continuing anyway):",t)}return t()}(()=>W(t))}const H=async()=>{z=!0,B=(async()=>{try{await C()}finally{z=!1,B=null}})(),await B},R=async()=>{z=!0,B=(async()=>{try{await k()}finally{z=!1,B=null}})(),await B};if("undefined"!=typeof window&&"undefined"!=typeof document){const t=t=>{"Escape"!==t.key&&"Esc"!==t.key||(async()=>{z=!0,B=(async()=>{try{await C()}finally{z=!1,B=null}})(),await B})()};window.addEventListener("keydown",t,{passive:!0})}try{"undefined"!=typeof window&&(window.customizableToast={createToast:P,setDefaultColors:D,setDefaultMessages:j,noop:R,dismiss:H})}catch(t){console.error("Global assignment failed:",t)}export{P as createToast,H as dismiss,R as noop,D as setDefaultColors,j as setDefaultMessages};
|
|
15
|
+
async function t(t,e){const n=document.createElement(t);return n.id=function(t){return`${t}-${Date.now().toString(36)}-${Math.floor(1048575*Math.random()).toString(36)}`}(e),n}const e=new class{constructor(t=200){this.maxSize=t,this.map=new Map}get(t){if(!this.map.has(t))return;const e=this.map.get(t);return this.map.delete(t),this.map.set(t,e),e}set(t,e){if(this.map.has(t))this.map.delete(t);else if(this.map.size>=this.maxSize){const t=this.map.keys().next().value;this.map.delete(t)}this.map.set(t,e)}}(200),n={};function o(t,o=1){if(!t)return"snow";const r=`${t}|${o}`,i=e.get(r);if(i)return i;if(n[null==t?void 0:t.toLowerCase()]){const o=n[t.toLowerCase()];return e.set(r,o),o}let a,s,l;try{const e=function(t){const e=null==t?void 0:t.match(/^#([0-9a-f]{3,8})$/i);if(e){let t=e[1];return 3===t.length&&(t=t.split("").map(t=>t+t).join("")),{r:parseInt(t.slice(0,2),16),g:parseInt(t.slice(2,4),16),b:parseInt(t.slice(4,6),16)}}const n=null==t?void 0:t.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*[\d.]+)?\)/i);if(n)return{r:Number(n[1]),g:Number(n[2]),b:Number(n[3])};const o=null==t?void 0:t.match(/hsla?\(\s*([\d.]+)(?:deg)?\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%(?:\s*,\s*[\d.]+)?\)/i);if(o){const t=Number(o[1])/360,e=Number(o[2])/100,n=Number(o[3])/100;if(0===e){const t=Math.round(255*n);return{r:t,g:t,b:t}}const r=(t,e,n)=>(n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t),i=n<.5?n*(1+e):n+e-n*e,a=2*n-i;return{r:Math.round(255*r(a,i,t+1/3)),g:Math.round(255*r(a,i,t)),b:Math.round(255*r(a,i,t-1/3))}}return null}(function(t){var e;const n=null==t?void 0:t.match(/^var\((--[\w-]+)(?:\s*,\s*(.+))?\)$/i);if(!n)return t;try{if("undefined"!=typeof document&&"function"==typeof getComputedStyle){const t=getComputedStyle(document.documentElement).getPropertyValue(n[1]).trim();if(t)return t}}catch(t){}return(null===(e=n[2])||void 0===e?void 0:e.trim())||t}(t));if(!e)throw new Error("Unknown color");({r:a,g:s,b:l}=e)}catch(t){a=s=l=128}a=Math.round(a*o+255*(1-o)),s=Math.round(s*o+255*(1-o)),l=Math.round(l*o+255*(1-o));const c=(t,e,n)=>{const o=[t,e,n].map(t=>(t/=255)<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4));return.2126*o[0]+.7152*o[1]+.0722*o[2]},u=(t,e)=>{const n=c(...t),o=c(...e);return(Math.max(n,o)+.05)/(Math.min(n,o)+.05)};let[d,m,f]=((t,e,n)=>{t/=255,e/=255,n/=255;const o=Math.max(t,e,n),r=Math.min(t,e,n);let i,a,s=(o+r)/2;if(o===r)i=a=0;else{const l=o-r;switch(a=s>.5?l/(2-o-r):l/(o+r),o){case t:i=(e-n)/l+(e<n?6:0);break;case e:i=(n-t)/l+2;break;case n:i=(t-e)/l+4}i/=6}return[360*i,a,s]})(a,s,l);let p=f<.5?Math.min(f+.5,1):Math.max(f-.5,0),[h,y,g]=((t,e,n)=>{let o,r,i;if(t/=360,0===e)o=r=i=n;else{const a=(t,e,n)=>(n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t),s=n<.5?n*(1+e):n+e-n*e,l=2*n-s;o=a(l,s,t+1/3),r=a(l,s,t),i=a(l,s,t-1/3)}return[Math.round(255*o),Math.round(255*r),Math.round(255*i)]})(d,m,p);if(u([a,s,l],[h,y,g])<4.5){const t=u([a,s,l],[0,0,0]),e=u([a,s,l],[255,255,255]);[h,y,g]=t>=e?[0,0,0]:[255,255,255]}const w=((t,e,n)=>`#${t.toString(16).padStart(2,"0")}${e.toString(16).padStart(2,"0")}${n.toString(16).padStart(2,"0")}`)(h,y,g);return e.set(r,w),w}Object.entries({aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}).forEach(([t,[e,o,r]])=>{const i=t=>{const e=t/255;return e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)},a=.2126*i(e)+.7152*i(o)+.0722*i(r),s=(a+.05)/.05,l=1.05/(a+.05);n[t.toLowerCase()]=s>=l?"#000000":"#ffffff"});const r=new Set(["DIV","SPAN","P","BR","STRONG","B","EM","I","U","SMALL","UL","OL","LI","A","IMG","PRE","CODE","MARK"]),i=new Set(["href","src","alt","title","class","target","rel"]);function a(t){if(!t||"string"!=typeof t)return"";let e=t.replace(/<\/?(script|iframe|object|embed|link|meta|style|form|input|button)[^>]*>/gi,"");e=e.replace(/\s(on\w+)\s*=\s*(['"])[\s\S]*?\2/gi,""),e=e.replace(/(href|src)\s*=\s*(['"])\s*javascript:[^'"]*\2/gi,"$1=$2#$2");const n=document.createElement("div");function o(t){if(t.nodeType===Node.TEXT_NODE)return document.createTextNode(t.nodeValue);if(t.nodeType!==Node.ELEMENT_NODE)return null;const e=t.tagName.toUpperCase();if(!r.has(e)){const e=document.createDocumentFragment();return Array.from(t.childNodes).forEach(t=>{const n=o(t);n&&e.appendChild(n)}),e}const n=document.createElement(t.tagName);return Array.from(t.attributes||[]).forEach(e=>{const o=e.name.toLowerCase(),r=e.value;i.has(o)&&("href"!==o&&"src"!==o||!/^\s*javascript:/i.test(r))&&("src"!==o||/^\s*(https?:|data:image\/)/i.test(r))&&("target"===o&&"_blank"===r&&n.setAttribute("rel",(t.getAttribute("rel")||"")+" noopener noreferrer"),n.setAttribute(o,r))}),Array.from(t.childNodes).forEach(t=>{const e=o(t);e&&n.appendChild(e)}),n}n.innerHTML=e;const a=document.createDocumentFragment();Array.from(n.childNodes).forEach(t=>{const e=o(t);e&&a.appendChild(e)});const s=document.createElement("div");return s.appendChild(a),s.innerHTML}function s(t,e={}){if(!t)return"";try{if(!e.forceFallback&&function(){try{if("undefined"!=typeof window&&window.DOMPurify)return!0}catch(t){}return!1}()){const e=window.DOMPurify.sanitize(t,{ALLOWED_TAGS:Array.from(r),ALLOWED_ATTR:Array.from(i),ALLOWED_URI_REGEXP:/^(?:(?:https?|mailto|ftp|tel|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i}),n=document.createElement("div");return n.innerHTML=e,n.querySelectorAll('a[target="_blank"]').forEach(t=>{const e=(t.getAttribute("rel")||"").split(/\s+/).filter(Boolean);e.includes("noopener")||e.push("noopener"),e.includes("noreferrer")||e.push("noreferrer"),t.setAttribute("rel",e.join(" "))}),n.innerHTML}}catch(t){}return a(t)}async function l(t,e,n){var o,r;const i=await async function(t){if("number"==typeof t&&t>0)return t;if("string"==typeof t){if(t.endsWith("s")&&!t.endsWith("ms")){const e=1e3*parseFloat(t);return e>0?e:500}const e=parseFloat(t);return e>0?e:500}return 500}(null==e?void 0:e.animationDuration);t.className=`toast toast-${null!==(o=null==e?void 0:e.type)&&void 0!==o?o:"info"}`,Object.assign(t.style,{background:null==e?void 0:e.backgroundColor,padding:"12px 16px",marginBottom:"10px",borderRadius:null==e?void 0:e.borderRadius,overflow:"hidden",display:"flex",alignItems:"center",justifyContent:"space-between",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)",minWidth:"250px",maxWidth:null==e?void 0:e.maxWidth,opacity:"0",position:"relative",cursor:"default",boxSizing:"border-box",userSelect:"text",transition:`opacity ${null==e?void 0:e.animationDuration} ${null==e?void 0:e.animationEasing}, transform ${null==e?void 0:e.animationDuration} ${null==e?void 0:e.animationEasing}`,transform:"translateY(20px)",zIndex:"9999"}),t.setAttribute("role","alert"),t.setAttribute("aria-live","polite"),t.tabIndex=0,t._animationDuration=i;const a=document.createElement("span");null!=e&&e.wrapText?Object.assign(a.style,{display:"block",whiteSpace:"normal"}):Object.assign(a.style,{display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:"3",whiteSpace:"nowrap"}),Object.assign(a.style,{flex:"1",padding:null==e?void 0:e.fontPadding,fontFamily:null==e?void 0:e.fontFamily,fontSize:null==e?void 0:e.fontSize,fontWeight:null==e?void 0:e.fontWeight,lineHeight:null==e?void 0:e.fontLineHeight,color:null==e?void 0:e.textColor,userSelect:"text",wordBreak:"break-word",overflow:"hidden",textOverflow:"ellipsis"});const l=!!e.allowHtml,c=null!==(r=e.message)&&void 0!==r?r:"";if(e.loader||e.showLoader){const t=function(t={}){const e=t.size||14,n=t.color||"currentColor",o=t.text||"",r=document.createElement("span");r.className="toast-loader",r.style.display="inline-flex",r.style.alignItems="center",r.style.gap="8px";const i="http://www.w3.org/2000/svg",a=document.createElementNS(i,"svg");a.setAttribute("width",String(e)),a.setAttribute("height",String(e)),a.setAttribute("viewBox","0 0 50 50"),a.setAttribute("aria-hidden","true");const s=document.createElementNS(i,"circle");if(s.setAttribute("cx","25"),s.setAttribute("cy","25"),s.setAttribute("r","20"),s.setAttribute("fill","none"),s.setAttribute("stroke",n),s.setAttribute("stroke-width","4"),s.setAttribute("stroke-linecap","round"),s.style.opacity="0.85",s.style.strokeDasharray="90",s.style.strokeDashoffset="60",s.style.transformOrigin="center",s.style.animation="toast-spinner 1s linear infinite",a.appendChild(s),r.appendChild(a),o){const t=document.createElement("span");t.style.fontSize="13px",t.textContent=o,r.appendChild(t)}if(!document.getElementById("toast-spinner-styles")){const t=document.createElement("style");t.id="toast-spinner-styles",t.innerHTML="@keyframes toast-spinner { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }",document.head.appendChild(t)}return r}(e.loader||{});a.appendChild(t);const n=document.createElement("span");n.style.display="inline-block",n.style.width="8px",a.appendChild(n)}if(l&&"string"==typeof c&&c.trim().length>0)try{const t=s(c),e=document.createElement("div");for(e.innerHTML=t;e.firstChild;)a.appendChild(e.firstChild)}catch(t){console.warn("HTML message sanitization failed, falling back to text:",t),a.textContent=c}else a.textContent=String(c);a.setAttribute("aria-label","Toast Notification Center"),a.setAttribute("title","string"==typeof c?c.replace(/<[^>]+>/g,""):String(c)),t.appendChild(a),null!=e&&e.cta&&0!==Object.keys(e.cta).length&&function(t,e,n){const o=null==e?void 0:e.cta;if(!o)return;const r={...o};r.label||(r.label="CTA Label Missing!");const i=!!r.href&&"link"===r.variant,a=document.createElement(i?"a":"button");i?(a.href=r.href,r.target&&(a.target=r.target),a.rel=r.rel||("_blank"===r.target?"noopener noreferrer":"")):a.type="button",a.setAttribute("aria-label",r.ariaLabel||r.label),Object.assign(a.style,{marginLeft:"10px",padding:"6px 10px",borderRadius:"6px",fontSize:"12px",fontWeight:"600",lineHeight:"1",border:"1px solid rgba(255,255,255,0.35)",color:e.textColor||"#fff",background:"rgba(255,255,255,0.15)",cursor:"pointer",whiteSpace:"nowrap",flexShrink:"0"}),a.textContent=r.label;const s=async e=>{try{if("function"==typeof r.onClick){const t=r.onClick(e);null!=t&&t.then&&await t}}finally{!1!==r.autoClose&&n(t)}};a.addEventListener("click",s),a._cleanup=()=>a.removeEventListener("click",s),t.appendChild(a)}(t,e,n),null!=e&&e.showCloseButton&&function(t,e,n){const o=document.createElement("button");o.setAttribute("aria-label","Close notification"),o.setAttribute("title","Close"),o.textContent="×",Object.assign(o.style,{background:"none",border:"none",color:e.textColor||"white",fontSize:"18px",marginLeft:"10px",cursor:"pointer"});const r=()=>n(t);o.addEventListener("click",r),t._cleanupCloseButton=()=>{o.removeEventListener("click",r)},t.appendChild(o)}(t,e,n),null!=e&&e.showProgressBar&&function(t,e){const n=document.createElement("div"),o=e.borderRadius||0,r=parseInt(o,10),i=r?"12px":"0",a=r?12:0,s=Math.max(r-10,a),l=r?`calc(100% - ${s}px)`:"100%";Object.assign(n.style,{position:"absolute",left:`${i}`,height:e.progressHeight||"4px",background:e.progressColor||"rgba(255, 255, 255, 0.3)",width:`${l}`,transition:`width ${e.duration||1800}ms linear`,["top"===e.progressPosition?"top":"bottom"]:"0",borderRadius:e.borderRadius||"4px"}),t.appendChild(n),"function"==typeof n.animate?t._progressAnimation=n.animate([{width:l},{width:"0%"}],{duration:Number(e.duration)||1800,easing:"linear",fill:"forwards",delay:50}):(n.style.transition=`width ${e.duration||1800}ms linear`,setTimeout(()=>{n.offsetWidth,n.style.width="0%"},50))}(t,e),function(t){setTimeout(()=>{requestAnimationFrame(()=>{t.style.opacity="1",t.style.transform="translateY(0)"})},50)}(t)}async function c(t,e){try{const n=document.createElement("div");Object.assign(n.style,{background:"#333",color:"white",padding:"10px 15px",position:"fixed",top:"20px",right:"20px",zIndex:"99999",borderRadius:"3px",maxWidth:"250px",wordWrap:"break-word",boxShadow:"0 2px 10px rgba(0,0,0,0.3)",cursor:"pointer"});const o=document.createElement("div"),r=document.createElement("span");r.style.display="inline-block",t.allowHtml?r.innerHTML=s(String(t.message||"Emergency Toast Showing!")):r.textContent=String(t.message||"Emergency Toast Creation Showing!"),o.appendChild(r);const i=document.createElement("span");for(i.style.cssText="float: right; margin-left: 10px; font-weight: bold;",i.textContent="×",o.appendChild(i);n.firstChild;)n.removeChild(n.firstChild);return n.appendChild(o),i.onclick=()=>{n.remove(),e(n)},document.body.appendChild(n),setTimeout(()=>{n.remove(),e(n)},null==t?void 0:t.duration),n}catch(n){return console.error("Emergency toast creation failed:",n),setTimeout(()=>{alert((null==t?void 0:t.message)||"Emergency Toast Creation Showing!"),e(null)},100),null}}const u=new Map,d=new Map;function m(t){return`toast-container-${function(t){return String(t).toLowerCase().trim().replace(/\bbelow\b/g,"bottom").replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"-").replace(/-{2,}/g,"-")}(t)}`}async function f(t,e){const n=m(t.position);if(d.has(n))return d.get(n);const o=(async()=>{const o=u.get(n);if(null!=o&&o.isConnected)return o;let r=document.getElementById(n);r&&!r.isConnected&&document.body.appendChild(r),r?(r.style.position=r.style.position||"fixed",r.style.zIndex=r.style.zIndex||"9999","function"==typeof e&&await e(r,t)):(r=document.createElement("div"),r.id=n,r.setAttribute("role","status"),r.setAttribute("aria-atomic","true"),r.style.position="fixed",r.style.zIndex="9999",r.style.inset="auto 10px 10px auto",r.style.display="flex",r.style.justifyContent="space-between",r.style.alignItems="center",r.style.flexDirection="column",r.style.overflow="hidden","function"==typeof e&&await e(r,t),document.body.appendChild(r));const i=document.querySelectorAll(`#${n}`);if(i.length>1)for(let t=1;t<i.length;t++)try{i[t].remove()}catch(t){}return u.set(n,r),r})();d.set(n,o);try{return await o}finally{d.delete(m(t.position))}}async function p(t,e){if(!t||!e.position)throw new Error("Invalid container or position!");!function(t){t.style.top="auto",t.style.bottom="auto",t.style.left="auto",t.style.right="auto",t.style.transform="none"}(t);const n=function(t){const e=t.toLowerCase().trim();return{hasTop:e.includes("top"),hasBottom:e.includes("bottom")||e.includes("below"),hasLeft:e.includes("left"),hasRight:e.includes("right"),hasCenter:e.includes("center"),hasFullWidth:e.includes("top-full-width")||e.includes("bottom-full-width")||e.includes("fullwidth")}}(e.position);(function(t,e,n){if(!n.hasFullWidth)return!1;if(n.hasTop)return e.maxWidth="100vw",t.style.top="10px",t.style.left="10px",t.style.right="10px",!0;if(n.hasBottom)return e.maxWidth="100vw",t.style.bottom="10px",t.style.left="10px",t.style.right="10px",!0;return!1})(t,e,n)||function(t,e){if(!e.hasCenter)return!1;if(e.hasTop&&!e.hasLeft&&!e.hasRight)return t.style.top="10px",t.style.left="50%",t.style.transform="translateX(-50%)",!0;if(e.hasBottom&&!e.hasLeft&&!e.hasRight)return t.style.bottom="10px",t.style.left="50%",t.style.transform="translateX(-50%)",!0;if(e.hasLeft&&!e.hasTop&&!e.hasBottom)return t.style.left="10px",t.style.top="50%",t.style.transform="translateY(-50%)",!0;if(e.hasRight&&!e.hasTop&&!e.hasBottom)return t.style.right="10px",t.style.top="50%",t.style.transform="translateY(-50%)",!0;if(!(e.hasLeft||e.hasRight||e.hasTop||e.hasBottom))return t.style.top="50%",t.style.left="50%",t.style.transform="translate(-50%, -50%)",!0;return!1}(t,n)||function(t,e){e.hasBottom?t.style.bottom="10px":e.hasTop&&(t.style.top="10px");e.hasRight?t.style.right="10px":e.hasLeft?t.style.left="10px":(e.hasBottom||e.hasTop||(t.style.bottom="10px"),t.style.left="50%",t.style.transform="translateX(-50%)")}(t,n)}class h{constructor(t,e){this.callback=t,this.delay=e,this.remaining=e,this.startTime=null,this.timeoutId=null,this.isPaused=!1,this.isCompleted=!1}start(){return this.isCompleted||this.timeoutId||(this.startTime=Date.now(),this.timeoutId=setTimeout(()=>{this.isCompleted=!0,this.timeoutId=null,this.callback()},this.remaining)),this}pause(){return this.isPaused||!this.timeoutId||this.isCompleted||(clearTimeout(this.timeoutId),this.timeoutId=null,this.remaining-=Date.now()-this.startTime,this.remaining=Math.max(0,this.remaining),this.isPaused=!0),this}resume(){return!this.isPaused||this.isCompleted||(this.isPaused=!1,this.start()),this}clear(){return this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null),this.isCompleted=!0,this}getRemainingTime(){return this.isCompleted?0:this.isPaused?this.remaining:this.timeoutId?Math.max(0,this.remaining-(Date.now()-this.startTime)):this.delay}}const y=new Map,g=new Map,w=[];let b=0;async function v(t={}){try{const e=function(t={}){return`${String(t.type).trim().toLowerCase()}|${function(t){let e=5381;for(let n=0;n<t.length;n++)e=(e<<5)+e+t.charCodeAt(n);return e>>>0}(String(t.message||"")).toString(16)}|${String(t.position).trim().toLowerCase()}`}(t);if(y.has(e)){const n=y.get(e);if(!n)throw new Error(`Active toast with key ${e} not found`);return n.count++,n.timer.clear(),n.timer=E(n.toast,t),await S(n),await M(n),e}if(g.has(e)){const t=g.get(e);if(!t)throw new Error(`Pending toast with key ${e} not found`);return t.count++,e}const n={options:t,count:1,rafId:0};return g.set(e,n),n.rafId=requestAnimationFrame(async()=>{const t=g.get(e);if(t){if(g.delete(e),b>=3)return w.push({options:t.options,key:e,count:t.count}),void await L();try{await x(t.options,e,t.count)}catch(t){console.error("showToast failed:",t)}}}),e}catch(t){console.error("showToast failed:",t)}}async function x(e,n,o){try{if(!e||"object"!=typeof e)throw new TypeError("options must be an object");b++;const r=await f(e,p);if(!r)throw new Error("Failed to create toast container");const i=await async function(e,n){if(!document.querySelector('[id^="toast-container-"]'))return null;let o;try{return o=await t("div","toast"),await l(o,e,n),o}catch(t){return console.warn("toast creation failed with error showing fallback one: ",t),o=await c(e,n),o}}(e,T);if(!i)throw new Error("Toast element creation failed");const a=document.createElement("div");Object.assign(a.style,{position:"relative",display:"inline-block",overflow:"visible",marginBottom:"10px",zIndex:"0",width:"100%"});const s=document.createElement("div");Object.assign(s.style,{position:"relative",overflow:"hidden",zIndex:"1"}),s.appendChild(i),a.appendChild(s),r.id.includes("toast-container-")&&r.appendChild(a);const u=!1!==e.pauseOnHover&&(!0===e.pauseOnHover||!!e.cta),d={outer:a,toast:i,count:Math.max(1,Math.floor(null!=o?o:0)),timeout:null,pauseOnHover:u};y.set(n,d),i._key=n,d.count>1&&await M(d),d.timer=E(i,e),await S(d)}catch(t){console.error("Something went wrong: ",t),b=Math.max(0,b-1);(document.querySelector('[id^="toast-container-"]')||document.body).appendChild(await c(e,T))}}const C=async function(){try{if(0===y.size)return;let t=null;if(document.querySelectorAll('[id^="toast-container-"]').forEach(e=>{const n=Array.from(e.children||[]);if(0===n.length)return;const o=n.at(-1);o&&(t=o.querySelector('[id^="toast-"]')||o)}),!t){const e=Array.from(y.entries());if(e.length>0){const[,n]=e.at(-1);t=n.toast||n.outer&&n.outer.querySelector('[id^="toast-"]')}}if(!t)return;const e=t._key?t:t.querySelector('[id^="toast-"]')||t;await T(e)}catch(t){console.error("dismissMostRecent failed:",t)}},k=async function(){try{const t=Array.from(y.values()).map(t=>t.toast).filter(Boolean);w.length=0,g.clear();for(const e of t)try{await T(e)}catch(t){console.warn("closeAllToasts: failed to close one toast:",t)}}catch(t){console.error("closeAllToasts failed:",t)}};function E(t,e){var n;const o=Number(null!==(n=e.duration)&&void 0!==n?n:1800)+5,r=new h(async()=>await T(t),o);return r.start(),r}async function S(t){if(!t.pauseOnHover||!t.outer||!t.timer)return;const{outer:e,timer:n,toast:o}=t,r=()=>{var t;n.pause(),null==o||null===(t=o._progressAnimation)||void 0===t||t.pause()},i=()=>{var t;n.resume(),null==o||null===(t=o._progressAnimation)||void 0===t||t.play()},a=t=>{var e;t.target.matches("[tabindex], div, span, button, a")&&(n.pause(),null==o||null===(e=o._progressAnimation)||void 0===e||e.pause())},s=t=>{var r;e.contains(t.relatedTarget)||(n.resume(),null==o||null===(r=o._progressAnimation)||void 0===r||r.play())};e.addEventListener("mouseenter",r),e.addEventListener("mouseleave",i),e.addEventListener("focusin",a),e.addEventListener("focusout",s),e._pauseCleanup=()=>{e.removeEventListener("mouseenter",r),e.removeEventListener("mouseleave",i),e.removeEventListener("focusin",a),e.removeEventListener("focusout",s)}}async function T(t){if(null!=t&&t._key)return A(t._key)}async function A(t){try{var e,n,o;if(!t)return;const r=g.get(t);if(r)return cancelAnimationFrame(r.rafId),void g.delete(t);const i=w.findIndex(e=>e.key===t);if(-1!==i)return void w.splice(i,1);const a=y.get(t);if(!a)return;null===(e=a.timer)||void 0===e||e.clear(),null===(n=a.outer)||void 0===n||null===(o=n._pauseCleanup)||void 0===o||o.call(n),y.delete(t),b=Math.max(0,b-1);const s=a.outer.querySelector(".toast-count-badge");s&&s.remove(),await async function(t){return t?new Promise(e=>{let n=!1;const o=()=>{n||(n=!0,async function(t){if(!t)return!0;try{var e;if(null!=t&&null!==(e=t.parentNode)&&void 0!==e&&e.id.includes("toast-container-"))return t.parentNode.removeChild(t),!0}catch(t){}try{if(t.remove)return t.remove(),!0}catch(t){}try{return Object.assign(t.style,{display:"none",opacity:"0",pointerEvents:"none",position:"absolute",left:"-9999px"}),!0}catch(t){}}(t),e())},r=t.firstElementChild||t;if(!r)return e();const i=t=>{try{if(t.target!==r)return;r.removeEventListener("transitionend",i,!0),o()}catch(t){console.error("removeWithTransition error:",t)}};try{r.addEventListener("transitionend",i,!0)}catch(t){console.error("removeWithTransition error:",t)}setTimeout(()=>{try{r.removeEventListener("transitionend",i,!0),o()}catch(t){console.error("removeWithTransition error:",t)}},700)}):Promise.resolve()}(a.outer),await L()}catch(t){console.error("Closing Toast failed!: ",t)}}async function L(){for(;b<3&&w.length;){const t=w.shift();if(y.has(t.key)){const e=y.get(t.key);e.count+=t.count,await M(e);continue}x(t.options,t.key,t.count)}}async function M({outer:t,count:e}){if(!(t&&t instanceof HTMLElement))throw new Error("updateBadge: outer must be a valid HTMLElement");if(e<2){const e=t.querySelector(".toast-count-badge");return void(e&&e.remove())}let n=t.querySelector(".toast-count-badge");n||(n=document.createElement("span"),n.className="toast-count-badge",n.setAttribute("aria-label",`${e} identical notifications`),Object.assign(n.style,{position:"absolute",top:"6px",right:"6px",backgroundColor:"#f44336",color:"#fff",borderRadius:"50%",minWidth:"20px",height:"20px",fontSize:"12px",fontWeight:"600",display:"flex",alignItems:"center",justifyContent:"center",border:"2px solid #fff",boxShadow:"0 2px 6px rgba(0,0,0,0.3)",zIndex:"2",pointerEvents:"none",transition:"transform 150ms ease"}),t.appendChild(n)),n.textContent=e>99?"99+":String(e);try{n.style.transform="scale(1.2)",setTimeout(()=>n.style.transform="scale(1)",150)}catch(t){console.error("updateBadge animation error:",t)}}let I={success:"#28a745",error:"#dc3545",warning:"#ffc107",info:"#17a2b8"},O={success:"Operation completed successfully!",error:"Something went wrong!",warning:"Warning message!",info:"Information message!"};const $=[];let D=!1;async function N(t={}){try{const e=await async function(t){var e,n;const r=null==t||null===(e=t.position)||void 0===e||null===(e=e.toLowerCase())||void 0===e?void 0:e.trim(),i=null!=r&&r.includes("top-full-width")||null!=r&&r.includes("bottom-full-width")?"100vw":"400px",a={allowHtml:!1,sanitizeHtml:!0,pauseOnHover:void 0,duration:2500,position:"bottom-right",type:"info",borderRadius:"50px",backgroundColor:void 0,textColor:void 0,showCloseButton:!0,animationDuration:"0.4s",animationEasing:"ease",showProgressBar:!0,progressColor:void 0,progressHeight:"4px",progressPosition:"bottom",fontPosition:"relative",fontPadding:void 0,fontBorderRadius:void 0,fontBackgroundColor:void 0,fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',fontSize:"14px",fontWeight:"400",fontLineHeight:"1.4",fontDirection:"auto",wrapText:"normal",maxWidth:i,..."object"!=typeof t||Array.isArray(t)?{}:t};a.message=null!==(n=null==t?void 0:t.message)&&void 0!==n?n:a.message;try{var s,l;if(!a.backgroundColor)a.backgroundColor=null!==(s=null===(l=I)||void 0===l?void 0:l[a.type])&&void 0!==s?s:window.matchMedia("(prefers-color-scheme: dark)").matches?"#f5f5f5":"#111111"}catch(t){console.warn("Background color resolution failed:",t)}try{var c;a.message=a.message||(null===(c=O)||void 0===c?void 0:c[a.type])||"No Message Provided!"}catch(t){console.warn("Default message resolution failed:",t)}try{!a.textColor&&a.backgroundColor&&(a.textColor=o(a.backgroundColor))}catch(t){console.warn("Text color resolution failed:",t)}try{!a.progressColor&&a.backgroundColor&&(a.progressColor=a.textColor||o(a.backgroundColor))}catch(t){console.warn("Progress bar color resolution failed:",t)}"string"!=typeof a.message&&(a.message="No Message Provided!");return a}(t);return await async function(t){try{return await f(t,p)}catch(t){return console.error("Failed to create toast container:",t),document.body}}(e),await v(e)}catch(e){console.error("CreateToast failed:",e);const n="string"==typeof(null==t?void 0:t.message)&&null!==(null==t?void 0:t.message)?`${t.message.substring(0,200)} toast creation failed!`:"Toast creation failed!";return alert(n),null}}function B(t){try{t&&"object"==typeof t&&!Array.isArray(t)&&(I={...I,...t})}catch(t){console.error("setDefaultColors failed:",t)}}function j(t){try{t&&"object"==typeof t&&!Array.isArray(t)&&(O={...O,...t})}catch(t){console.error("setDefaultMessages failed:",t)}}let z=!1,P=null;const W=async function(t={}){return"undefined"!=typeof window&&"undefined"!=typeof document?(await async function(){if(D)return;"undefined"!=typeof window&&"undefined"!=typeof document&&("complete"===document.readyState||"interactive"===document.readyState?(D=!0,$.forEach(t=>setTimeout(()=>N(t),200)),$.length=0):document.addEventListener("DOMContentLoaded",()=>{D=!0,$.forEach(t=>setTimeout(()=>N(t),200)),$.length=0},{once:!0}))}(),D?await N(t):($.push(t),null)):(console.warn("ToastNotification: running in non-browser environment, no DOM available."),null)};async function H(t={}){const e=await async function(t){if(z&&P)try{await P}catch(t){console.warn("Previous close operation failed (continuing anyway):",t)}return t()}(()=>W(t));return{dismiss:()=>e?A(e):Promise.resolve()}}const R=async()=>{z=!0,P=(async()=>{try{await C()}finally{z=!1,P=null}})(),await P},_=async()=>{z=!0,P=(async()=>{try{await k()}finally{z=!1,P=null}})(),await P};async function q(t,e={},n={}){var o;const r=null!==(o=e.loading)&&void 0!==o?o:"Loading...",i=await H({...n,type:"info",message:r,duration:864e5,showProgressBar:!1}),a="function"==typeof t?t():t;try{var s;const t=await a;await i.dismiss();const o="function"==typeof e.success?e.success(t):null!==(s=e.success)&&void 0!==s?s:"Done!";return await H({...n,type:"success",message:o}),t}catch(t){var l;await i.dismiss();const o="function"==typeof e.error?e.error(t):null!==(l=e.error)&&void 0!==l?l:"Something went wrong.";throw await H({...n,type:"error",message:o}),t}}if("undefined"!=typeof window&&"undefined"!=typeof document){const t=t=>{"Escape"!==t.key&&"Esc"!==t.key||(async()=>{z=!0,P=(async()=>{try{await C()}finally{z=!1,P=null}})(),await P})()};window.addEventListener("keydown",t,{passive:!0})}try{"undefined"!=typeof window&&(window.customizableToast={createToast:H,setDefaultColors:B,setDefaultMessages:j,noop:_,dismiss:R,toastPromise:q})}catch(t){console.error("Global assignment failed:",t)}export{H as createToast,R as dismiss,_ as noop,B as setDefaultColors,j as setDefaultMessages,q as toastPromise};
|
|
16
16
|
//# sourceMappingURL=index.esm.mjs.map
|