customizable-toast-notification 3.12.3 → 3.12.4
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 +8 -0
- package/README.md +26 -1
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +54 -154
- package/dist/index.esm.mjs +3 -3
- package/dist/index.esm.mjs.map +1 -1
- package/dist/index.umd.js +3 -5
- package/dist/index.umd.js.map +1 -1
- package/package.json +3 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
## [3.12.4](https://github.com/sammy-cool/customizable-toast-notification/compare/v3.12.3...v3.12.4) (2026-10-03)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* resolve 22 bugs across positioning, sanitization, timers, cleanup, and a11y ([cdbf56a](https://github.com/sammy-cool/customizable-toast-notification/commit/cdbf56a5b54ad2cb45506ea9f424a54a137a90fa))
|
|
7
|
+
* resolve 28 bugs across positioning, sanitization, timers, workflows, and a11y… ([#45](https://github.com/sammy-cool/customizable-toast-notification/issues/45)) ([a60bd70](https://github.com/sammy-cool/customizable-toast-notification/commit/a60bd70155a2255b28fbec45d07f27f21e34d38b))
|
|
8
|
+
|
|
1
9
|
## [3.12.3](https://github.com/sammy-cool/customizable-toast-notification/compare/v3.12.2...v3.12.3) (2026-09-29)
|
|
2
10
|
|
|
3
11
|
|
package/README.md
CHANGED
|
@@ -68,7 +68,7 @@ Global Variable Name: `customizableToast`
|
|
|
68
68
|
<script src="https://cdn.jsdelivr.net/npm/customizable-toast-notification/dist/index.umd.js"></script>
|
|
69
69
|
|
|
70
70
|
<!-- OR pin to a specific version (recommended for stability) -->
|
|
71
|
-
<script src="https://cdn.jsdelivr.net/npm/customizable-toast-notification@3.
|
|
71
|
+
<script src="https://cdn.jsdelivr.net/npm/customizable-toast-notification@3.12.3/dist/index.umd.js"></script>
|
|
72
72
|
|
|
73
73
|
<script>
|
|
74
74
|
// Access the global UMD export
|
|
@@ -136,7 +136,10 @@ auto-dismissed on its own — it no-ops rather than throwing.
|
|
|
136
136
|
| `fontSize` | `string` | `"14px"` | Font size |
|
|
137
137
|
| `fontWeight` | `string` | `"400"` | Font weight |
|
|
138
138
|
| `fontLineHeight` | `string` | `"1.4"` | Font line height |
|
|
139
|
+
| `showLoader` | `boolean` | `false` | Show spinner loader before the message |
|
|
140
|
+
| `loader` | `object` | `null` | Custom loader config (`size`, `color`, `text`) |
|
|
139
141
|
| `fontDirection` | `string` | `"auto"` | Font direction: `"auto"`, `"ltr"`, `"rtl"` |
|
|
142
|
+
| `fontPadding` | `string` | `undefined` | Custom padding for message container (e.g. `"4px 8px"`) |
|
|
140
143
|
| `cta` | `object` | `null` | Call-to-action configuration (see [CTA](#call-to-action)) |
|
|
141
144
|
|
|
142
145
|
#### Position Options
|
|
@@ -214,6 +217,28 @@ Any toast with a `cta` automatically gets `pauseOnHover: true` unless you overri
|
|
|
214
217
|
| `autoClose` | `boolean` | `true` | Close toast after CTA click |
|
|
215
218
|
| `ariaLabel` | `string` | `label` | Accessibility label |
|
|
216
219
|
|
|
220
|
+
### Loader Options
|
|
221
|
+
|
|
222
|
+
Add an animated SVG spinner directly alongside the message:
|
|
223
|
+
|
|
224
|
+
```js
|
|
225
|
+
createToast({
|
|
226
|
+
message: "Processing file...",
|
|
227
|
+
showLoader: true,
|
|
228
|
+
loader: {
|
|
229
|
+
size: 16,
|
|
230
|
+
color: "currentColor",
|
|
231
|
+
text: "Working...",
|
|
232
|
+
},
|
|
233
|
+
});
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
| Parameter | Type | Default | Description |
|
|
237
|
+
| --------- | -------- | ---------------- | ---------------------------------------------- |
|
|
238
|
+
| `size` | `number` | `14` | Spinner width and height in pixels |
|
|
239
|
+
| `color` | `string` | `"currentColor"` | SVG stroke color |
|
|
240
|
+
| `text` | `string` | `""` | Optional inline label text next to the spinner |
|
|
241
|
+
|
|
217
242
|
### `setDefaultColors(colors)`
|
|
218
243
|
|
|
219
244
|
Configure default colors for toast types.
|
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Customizable Toast Notifications
|
|
3
|
-
* Build: 2026-
|
|
4
|
-
* Cache-Buster:
|
|
3
|
+
* Build: 2026-10-03 17:19:09
|
|
4
|
+
* Cache-Buster: 1791047949836
|
|
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
|
-
"use strict";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){if(!t)return"snow";const o=String(t),r=e.get(o);if(r)return r;if(n[null==t?void 0:t.toLowerCase()]){const r=n[t.toLowerCase()];return e.set(o,r),r}let i,a,s;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:i,g:a,b:s}=e)}catch{i=a=s=128}const l=(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]},c=(t,e)=>{const n=l(...t),o=l(...e);return(Math.max(n,o)+.05)/(Math.min(n,o)+.05)};let[u,d,m]=((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]})(i,a,s);let f=m<.5?Math.min(m+.5,1):Math.max(m-.5,0),[p,h,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)]})(u,d,f);if(c([i,a,s],[p,h,g])<4.5){const t=c([i,a,s],[0,0,0]),e=c([i,a,s],[255,255,255]);[p,h,g]=t>=e?[0,0,0]:[255,255,255]}const y=((t,e,n)=>`#${t.toString(16).padStart(2,"0")}${e.toString(16).padStart(2,"0")}${n.toString(16).padStart(2,"0")}`)(p,h,g);return e.set(o,y),y}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|svg|math|img|video|audio|details|dialog|applet|embed|frame|frameset|textarea|select|option|optgroup|fieldset|legend|datalist|output|progress|meter|keygen|canvas|map|area|base|basefont|bgsound|blink|center|dir|font|frame|frameset|hgroup|isindex|listing|marquee|multicol|nextid|noembed|noframes|plaintext|rb|rtc|spacer|strike|tt|xmp)[^>]*>/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)}function l(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(!l._stylesInjected&&(l._stylesInjected=!0,!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}async function c(t,e,n){const o=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),r=`${o}ms`;t.className=`toast toast-${(null==e?void 0:e.type)??"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 ${r} ${null==e?void 0:e.animationEasing}, transform ${r} ${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=o;const i=document.createElement("span");null!=e&&e.wrapText?Object.assign(i.style,{display:"block",whiteSpace:"normal"}):Object.assign(i.style,{display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:"3",whiteSpace:"nowrap"}),Object.assign(i.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 a=!!e.allowHtml,c=e.message??"";if(e.loader||e.showLoader){const t=l(e.loader||{});i.appendChild(t);const n=document.createElement("span");n.style.display="inline-block",n.style.width="8px",i.appendChild(n)}if(a&&"string"==typeof c&&c.trim().length>0)try{const t=s(c),e=document.createElement("div");for(e.innerHTML=t;e.firstChild;)i.appendChild(e.firstChild)}catch(t){console.warn("HTML message sanitization failed, falling back to text:",t),i.textContent=c}else i.textContent=String(c);i.setAttribute("aria-label","Toast Notification Center"),i.setAttribute("title","string"==typeof c?c.replace(/<[^>]+>/g,""):String(c)),t.appendChild(i),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%",c=parseInt(e.progressHeight,10)||4,u=Number(e.duration??1800)+5;Object.assign(n.style,{position:"absolute",left:`${i}`,height:`${c}px`,background:e.progressColor||"rgba(255, 255, 255, 0.3)",width:`${l}`,transition:`width ${u}ms linear`,["top"===e.progressPosition?"top":"bottom"]:"0",borderRadius:c/2+"px"}),t.appendChild(n),"function"==typeof n.animate?t._progressAnimation=n.animate([{width:l},{width:"0%"}],{duration:u,easing:"linear",fill:"forwards",delay:50}):(n.style.transition=`width ${u}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 u(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 d=new Map,m=new Map;function f(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 p(t,e){const n=f(t.position);if(m.has(n))return m.get(n);const o=(async()=>{const o=d.get(n);if(null!=o&&o.isConnected)return o;o&&!o.isConnected&&d.delete(n);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{}return d.set(n,r),r})();m.set(n,o);try{return await o}finally{m.delete(n)}}async function h(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(),n="top-full-width"===e||"bottom-full-width"===e||"fullwidth"===e;return{hasTop:e.startsWith("top")||"center"!==e&&e.includes("top"),hasBottom:e.startsWith("bottom")||e.includes("below"),hasLeft:e.startsWith("left"),hasRight:e.startsWith("right"),hasCenter:"center"===e||e.includes("center")&&!e.includes("left")&&!e.includes("right")&&!e.includes("top")&&!e.includes("bottom"),hasFullWidth:n}}(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":t.style.bottom="10px";e.hasRight?t.style.right="10px":e.hasLeft?t.style.left="10px":(t.style.left="50%",t.style.transform="translateX(-50%)")}(t,n)}class g{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,b=new Map,w=[];let v=0;async function x(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=S(n.toast,t),await T(n),await I(n),e}if(b.has(e)){const t=b.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 b.set(e,n),n.rafId=requestAnimationFrame(async()=>{const t=b.get(e);if(t){if(b.delete(e),v>=3)return w.push({options:t.options,key:e,count:t.count}),void await M();try{await C(t.options,e,t.count)}catch(t){console.error("showToast failed:",t)}}}),e}catch(t){console.error("showToast failed:",t)}}async function C(e,n,o){try{if(!e||"object"!=typeof e)throw new TypeError("options must be an object");v++;const r=await p(e,h);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 c(o,e,n),o}catch(t){return console.warn("toast creation failed with error showing fallback one: ",t),o=await u(e,n),o}}(e,A);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 l=!1!==e.pauseOnHover&&(!0===e.pauseOnHover||!!e.cta),d={outer:a,toast:i,count:Math.max(1,Math.floor(o??0)),timeout:null,pauseOnHover:l};y.set(n,d),i._key=n,d.count>1&&await I(d),d.timer=S(i,e),await T(d)}catch(t){console.error("Something went wrong: ",t),v=Math.max(0,v-1);(document.querySelector('[id^="toast-container-"]')||document.body).appendChild(await u(e,A))}}const k=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 A(e)}catch(t){console.error("dismissMostRecent failed:",t)}},E=async function(){try{const t=Array.from(y.values()).map(t=>t.toast).filter(Boolean);w.length=0,b.clear();for(const e of t)try{await A(e)}catch(t){console.warn("closeAllToasts: failed to close one toast:",t)}}catch(t){console.error("closeAllToasts failed:",t)}};function S(t,e){const n=Number(e.duration??1800)+5,o=new g(async()=>await A(t),n);return o.start(),o}async function T(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 A(t){if(null!=t&&t._key)return L(t._key)}async function L(t){try{var e,n,o,r,i,a,s,l,c,u;if(!t)return;const d=b.get(t);if(d)return cancelAnimationFrame(d.rafId),void b.delete(t);const m=w.findIndex(e=>e.key===t);if(-1!==m)return void w.splice(m,1);const f=y.get(t);if(!f)return;null===(e=f.timer)||void 0===e||e.clear(),null===(n=f.outer)||void 0===n||null===(o=n._pauseCleanup)||void 0===o||o.call(n),null===(r=f.toast)||void 0===r||null===(i=r._cleanupCloseButton)||void 0===i||i.call(r),null===(a=f.toast)||void 0===a||null===(s=a._cleanup)||void 0===s||s.call(a);const p=null===(l=f.toast)||void 0===l?void 0:l.querySelector("button, a");null==p||null===(c=p._cleanup)||void 0===c||c.call(p),y.delete(t),v=Math.max(0,v-1);const h=f.outer.querySelector(".toast-count-badge");h&&h.remove();const g=(null===(u=f.toast)||void 0===u?void 0:u._animationDuration)??400;await async function(t,e=400){return t?new Promise(n=>{let o=!1;const r=()=>{o||(o=!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{}try{if(t.remove)return t.remove(),!0}catch{}try{return Object.assign(t.style,{display:"none",opacity:"0",pointerEvents:"none",position:"absolute",left:"-9999px"}),!0}catch{}}(t),n())},i=t.firstElementChild||t;if(!i)return n();const a=t=>{try{if(t.target!==i)return;i.removeEventListener("transitionend",a,!0),r()}catch(t){console.error("removeWithTransition error:",t)}};try{i.addEventListener("transitionend",a,!0)}catch(t){console.error("removeWithTransition error:",t)}setTimeout(()=>{try{i.removeEventListener("transitionend",a,!0),r()}catch(t){console.error("removeWithTransition error:",t)}},e+300)}):Promise.resolve()}(f.outer,g),await M()}catch(t){console.error("Closing Toast failed!: ",t)}}async function M(){for(;v<3&&w.length;){const t=w.shift();if(y.has(t.key)){const e=y.get(t.key);e.count+=t.count,await I(e);continue}C(t.options,t.key,t.count)}}async function I({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 O={success:"#28a745",error:"#dc3545",warning:"#ffc107",info:"#17a2b8"},j={success:"Operation completed successfully!",error:"Something went wrong!",warning:"Warning message!",info:"Information message!"};const D=[];let $=!1;async function N(t={}){try{const e=await async function(t){var e;const n=null==t||null===(e=t.position)||void 0===e||null===(e=e.toLowerCase())||void 0===e?void 0:e.trim(),r=null!=n&&n.includes("top-full-width")||null!=n&&n.includes("bottom-full-width")?"100vw":"400px",i={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:r,..."object"!=typeof t||Array.isArray(t)?{}:t};i.message=(null==t?void 0:t.message)??i.message;try{var a;if(!i.backgroundColor)i.backgroundColor=(null===(a=O)||void 0===a?void 0:a[i.type])??(window.matchMedia("(prefers-color-scheme: dark)").matches?"#f5f5f5":"#111111")}catch(t){console.warn("Background color resolution failed:",t)}try{var s;i.message=i.message||(null===(s=j)||void 0===s?void 0:s[i.type])||"No Message Provided!"}catch(t){console.warn("Default message resolution failed:",t)}try{!i.textColor&&i.backgroundColor&&(i.textColor=o(i.backgroundColor))}catch(t){console.warn("Text color resolution failed:",t)}try{!i.progressColor&&i.backgroundColor&&(i.progressColor=i.textColor||o(i.backgroundColor))}catch(t){console.warn("Progress bar color resolution failed:",t)}"string"!=typeof i.message&&(i.message="No Message Provided!");return i}(t);return await async function(t){try{return await p(t,h)}catch(t){return console.error("Failed to create toast container:",t),document.body}}(e),await x(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 W(t){try{if(t&&"object"==typeof t&&!Array.isArray(t)){const e=["success","error","warning","info"],n={};for(const[o,r]of Object.entries(t))e.includes(o)&&"string"==typeof r&&r.trim()&&(n[o]=r.trim());Object.keys(n).length>0&&(O={...O,...n})}}catch(t){console.error("setDefaultColors failed:",t)}}function B(t){try{if(t&&"object"==typeof t&&!Array.isArray(t)){const e=["success","error","warning","info"],n={};for(const[o,r]of Object.entries(t))e.includes(o)&&"string"==typeof r&&r.trim()&&(n[o]=r.trim());Object.keys(n).length>0&&(j={...j,...n})}}catch(t){console.error("setDefaultMessages failed:",t)}}let P=!1,z=null;const _=async function(t={}){return"undefined"!=typeof window&&"undefined"!=typeof document?(await async function(){if($)return;"undefined"!=typeof window&&"undefined"!=typeof document&&("complete"===document.readyState||"interactive"===document.readyState?($=!0,D.forEach(t=>setTimeout(()=>N(t),200)),D.length=0):document.addEventListener("DOMContentLoaded",()=>{$=!0,D.forEach(t=>setTimeout(()=>N(t),200)),D.length=0},{once:!0}))}(),$?await N(t):(D.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(P&&z)try{await z}catch(t){console.warn("Previous close operation failed (continuing anyway):",t)}return t()}(()=>_(t));return{dismiss:()=>e?L(e):Promise.resolve()}}const R=async()=>{P=!0,z=(async()=>{try{await k()}finally{P=!1,z=null}})(),await z},q=async()=>{P=!0,z=(async()=>{try{await E()}finally{P=!1,z=null}})(),await z};async function F(t,e={},n={}){const o=e.loading??"Loading...",r=await H({...n,type:"info",message:o,duration:864e5,showProgressBar:!1,pauseOnHover:!1}),i="function"==typeof t?t():t;try{const t=await i;await r.dismiss();const o="function"==typeof e.success?e.success(t):e.success??"Done!";return await H({...n,type:"success",message:o}),t}catch(t){await r.dismiss();const o="function"==typeof e.error?e.error(t):e.error??"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()=>{try{P=!0,z=(async()=>{try{await k()}finally{P=!1,z=null}})(),await z}catch(t){console.error("Escape key dismiss failed:",t),P=!1,z=null}})()};window.addEventListener("keydown",t,{passive:!0})}try{"undefined"!=typeof window&&(window.customizableToast={createToast:H,setDefaultColors:W,setDefaultMessages:B,noop:q,dismiss:R,toastPromise:F})}catch(t){console.error("Global assignment failed:",t)}exports.createToast=H,exports.dismiss=R,exports.noop=q,exports.setDefaultColors=W,exports.setDefaultMessages=B,exports.toastPromise=F;
|
|
15
|
+
"use strict";const t=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),e={};function o(o){if(!o)return"snow";const n=String(o),r=t.get(n);if(r)return r;if(e[null==o?void 0:o.toLowerCase()]){const r=e[o.toLowerCase()];return t.set(n,r),r}let i,a,s;try{const t=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 o=null==t?void 0:t.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*[\d.]+)?\)/i);if(o)return{r:Number(o[1]),g:Number(o[2]),b:Number(o[3])};const n=null==t?void 0:t.match(/hsla?\(\s*([\d.]+)(?:deg)?\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%(?:\s*,\s*[\d.]+)?\)/i);if(n){const t=Number(n[1])/360,e=Number(n[2])/100,o=Number(n[3])/100;if(0===e){const t=Math.round(255*o);return{r:t,g:t,b:t}}const r=(t,e,o)=>(o<0&&(o+=1),o>1&&(o-=1),o<1/6?t+6*(e-t)*o:o<.5?e:o<2/3?t+(e-t)*(2/3-o)*6:t),i=o<.5?o*(1+e):o+e-o*e,a=2*o-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 o=null==t?void 0:t.match(/^var\((--[\w-]+)(?:\s*,\s*(.+))?\)$/i);if(!o)return t;try{if("undefined"!=typeof document&&"function"==typeof getComputedStyle){const t=getComputedStyle(document.documentElement).getPropertyValue(o[1]).trim();if(t)return t}}catch(t){}return(null===(e=o[2])||void 0===e?void 0:e.trim())||t}(o));if(!t)throw new Error("Unknown color");({r:i,g:a,b:s}=t)}catch{i=a=s=128}const l=(t,e,o)=>{const n=[t,e,o].map(t=>(t/=255)<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4));return.2126*n[0]+.7152*n[1]+.0722*n[2]},c=(t,e)=>{const o=l(...t),n=l(...e);return(Math.max(o,n)+.05)/(Math.min(o,n)+.05)};let[u,d,m]=((t,e,o)=>{t/=255,e/=255,o/=255;const n=Math.max(t,e,o),r=Math.min(t,e,o);let i,a,s=(n+r)/2;if(n===r)i=a=0;else{const l=n-r;switch(a=s>.5?l/(2-n-r):l/(n+r),n){case t:i=(e-o)/l+(e<o?6:0);break;case e:i=(o-t)/l+2;break;case o:i=(t-e)/l+4}i/=6}return[360*i,a,s]})(i,a,s),f=m<.5?Math.min(m+.5,1):Math.max(m-.5,0),[p,h,y]=((t,e,o)=>{let n,r,i;if(t/=360,0===e)n=r=i=o;else{const a=(t,e,o)=>(o<0&&(o+=1),o>1&&(o-=1),o<1/6?t+6*(e-t)*o:o<.5?e:o<2/3?t+(e-t)*(2/3-o)*6:t),s=o<.5?o*(1+e):o+e-o*e,l=2*o-s;n=a(l,s,t+1/3),r=a(l,s,t),i=a(l,s,t-1/3)}return[Math.round(255*n),Math.round(255*r),Math.round(255*i)]})(u,d,f);if(c([i,a,s],[p,h,y])<4.5){const t=c([i,a,s],[0,0,0]),e=c([i,a,s],[255,255,255]);[p,h,y]=t>=e?[0,0,0]:[255,255,255]}const g=((t,e,o)=>`#${t.toString(16).padStart(2,"0")}${e.toString(16).padStart(2,"0")}${o.toString(16).padStart(2,"0")}`)(p,h,y);return t.set(n,g),g}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,[o,n,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(o)+.7152*i(n)+.0722*i(r),s=(a+.05)/.05,l=1.05/(a+.05);e[t.toLowerCase()]=s>=l?"#000000":"#ffffff"});const n=new Set(["DIV","SPAN","P","BR","STRONG","B","EM","I","U","SMALL","UL","OL","LI","A","IMG","PRE","CODE","MARK"]),r=new Set(["href","src","alt","title","class","target","rel","loading"]),i=/<\/?(script|iframe|object|embed|link|meta|style|form|input|button|svg|math|video|audio|details|dialog|applet|frame|frameset|textarea|select|option|optgroup|fieldset|legend|datalist|output|progress|meter|keygen|canvas|map|area|base|basefont|bgsound|blink|center|dir|font|hgroup|isindex|listing|marquee|multicol|nextid|noembed|noframes|plaintext|rb|rtc|spacer|strike|tt|xmp)[^>]*>/gi,a=/\s(on\w+)\s*=\s*(['"])[\s\S]*?\2/gi,s=/(href|src)\s*=\s*(['"])\s*javascript:[^'"]*\2/gi;function l(t,e,o){if(t.nodeType===Node.TEXT_NODE)return document.createTextNode(t.nodeValue);if(t.nodeType===Node.COMMENT_NODE)return null;if(t.nodeType!==Node.ELEMENT_NODE)return null;const n=t.tagName.toUpperCase();if(!e.has(n)){const n=document.createDocumentFragment();return Array.from(t.childNodes).forEach(t=>{const r=l(t,e,o);r&&n.appendChild(r)}),n}const r=document.createElement(t.tagName);return Array.from(t.attributes||[]).forEach(t=>{r.setAttribute(t.name,t.value)}),function(t,e){const o=[];Array.from(t.attributes||[]).forEach(n=>{const r=n.name.toLowerCase(),i=n.value;if(e.has(r))if("href"!==r&&"src"!==r||!/^\s*javascript:/i.test(i))if("src"!==r||/^\s*(https?:|data:image\/)/i.test(i)){if("target"===r&&"_blank"===i){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(" "))}}else o.push(r);else o.push(r);else o.push(r)}),o.forEach(e=>t.removeAttribute(e))}(r,o),Array.from(t.childNodes).forEach(t=>{const n=l(t,e,o);n&&r.appendChild(n)}),r}function c(t,e={}){if("string"!=typeof t||!t.trim())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(n),ALLOWED_ATTR:Array.from(r),ALLOWED_URI_REGEXP:/^(?:(?:https?|mailto|ftp|tel|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i}),o=document.createElement("div");return o.innerHTML=e,o.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(" "))}),o.innerHTML}}catch(t){console.warn("DOMPurify sanitization failed, falling back:",t)}return function(t){if(!t||"string"!=typeof t)return"";let e=t.replace(i,"");e=e.replace(a,""),e=e.replace(s,"$1=$2#$2");const o=document.createElement("div");o.innerHTML=e;const c=document.createDocumentFragment();Array.from(o.childNodes).forEach(t=>{const e=l(t,n,r);e&&c.appendChild(e)});const u=document.createElement("div");return u.appendChild(c),u.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(" "))}),u.innerHTML}(t)}async function u(t,e,n){const r=await async function(t){if("number"==typeof t&&Number.isFinite(t)&&t>0)return t;if("string"==typeof t){if(t.endsWith("s")&&!t.endsWith("ms")){const e=1e3*parseFloat(t);return Number.isFinite(e)&&e>0?e:500}const e=parseFloat(t);return Number.isFinite(e)&&e>0?e:500}return 500}(null==e?void 0:e.animationDuration),i=`${r}ms`,a="string"==typeof(null==e?void 0:e.animationEasing)&&e.animationEasing.trim()?e.animationEasing.trim():"ease",s="string"==typeof(null==e?void 0:e.className)&&e.className.trim()?` ${e.className.trim()}`:"";t.className=`toast toast-${(null==e?void 0:e.type)??"info"}${s}`,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",pointerEvents:"auto",transition:`opacity ${i} ${a}, transform ${i} ${a}`,transform:"translateY(20px)",zIndex:"9999"}),t.setAttribute("role","alert"),t.setAttribute("aria-live","polite"),t.tabIndex=0,t._animationDuration=r;const l=document.createElement("span");null!=e&&e.wrapText?Object.assign(l.style,{display:"block",whiteSpace:"normal"}):Object.assign(l.style,{display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:"3",whiteSpace:"normal",overflow:"hidden",textOverflow:"ellipsis"}),Object.assign(l.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",direction:null!=e&&e.fontDirection&&"auto"!==e.fontDirection?e.fontDirection:void 0});const u=!!e.allowHtml,d=e.message??"";if(e.loader||e.showLoader){const t=function(t={}){const e=t&&"object"==typeof t&&!Array.isArray(t)?t:{},o=Number(e.size)||14,n="string"==typeof e.color&&e.color.trim()?e.color.trim():"currentColor",r="string"==typeof e.text?e.text:"",i=document.createElement("span");i.className="toast-loader",i.style.display="inline-flex",i.style.alignItems="center",i.style.gap="8px";const a="http://www.w3.org/2000/svg",s=document.createElementNS(a,"svg");s.setAttribute("width",String(o)),s.setAttribute("height",String(o)),s.setAttribute("viewBox","0 0 50 50"),s.setAttribute("aria-hidden","true");const l=document.createElementNS(a,"circle");if(l.setAttribute("cx","25"),l.setAttribute("cy","25"),l.setAttribute("r","20"),l.setAttribute("fill","none"),l.setAttribute("stroke",n),l.setAttribute("stroke-width","4"),l.setAttribute("stroke-linecap","round"),l.style.opacity="0.85",l.style.strokeDasharray="90",l.style.strokeDashoffset="60",l.style.transformOrigin="center",l.style.animation="toast-spinner 1s linear infinite",s.appendChild(l),i.appendChild(s),r){const t=document.createElement("span");t.style.fontSize="13px",t.textContent=r,i.appendChild(t)}if("undefined"!=typeof document&&!document.getElementById("toast-spinner-styles")){const t=document.createElement("style");t.id="toast-spinner-styles",t.textContent="@keyframes toast-spinner { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }";const e=document.head||document.documentElement;e&&e.appendChild(t)}return i}(e.loader||{});l.appendChild(t);const o=document.createElement("span");o.style.display="inline-block",o.style.width="8px",l.appendChild(o)}if(u&&"string"==typeof d&&d.trim().length>0)try{const t=c(d),e=document.createElement("div");for(e.innerHTML=t;e.firstChild;)l.appendChild(e.firstChild)}catch(t){console.warn("HTML message sanitization failed, falling back to text:",t),l.appendChild(document.createTextNode(String(d)))}else l.appendChild(document.createTextNode(String(d)));l.setAttribute("title","string"==typeof d?d.replace(/<[^>]+>/g,""):String(d)),t.appendChild(l),null!=e&&e.cta&&0!==Object.keys(e.cta).length&&function(t,e,n){const r=null==e?void 0:e.cta;if(!r||"object"!=typeof r||Array.isArray(r))return;const i={...r};i.label||(i.label="CTA Label Missing!");const a=!!i.href&&"link"===i.variant,s=document.createElement(a?"a":"button");a?(s.href=i.href,i.target&&(s.target=i.target),s.rel=i.rel||("_blank"===i.target?"noopener noreferrer":"")):s.type="button",s.setAttribute("aria-label",i.ariaLabel||i.label);const l=e.textColor||o(e.backgroundColor),c=e.backgroundColor&&(d=e.backgroundColor)&&"#000000"===o(d)?"rgba(0,0,0,0.15)":"rgba(255,255,255,0.15)",u="string"==typeof l&&/^#[0-9a-fA-F]{6}$/.test(l.trim())?`${l.trim()}44`:"rgba(128, 128, 128, 0.3)";var d;Object.assign(s.style,{marginLeft:"10px",padding:"6px 10px",borderRadius:"6px",fontSize:"12px",fontWeight:"600",lineHeight:"1",border:`1px solid ${u}`,color:l,background:c,cursor:"pointer",whiteSpace:"nowrap",flexShrink:"0"}),s.textContent=i.label;const m=async e=>{try{if("function"==typeof i.onClick){const t=i.onClick(e);null!=t&&t.then&&await t}}catch(t){console.error("CTA onClick handler error:",t)}finally{!1!==i.autoClose&&"function"==typeof n&&n(t)}};s.addEventListener("click",m),s._cleanup=()=>s.removeEventListener("click",m),t._cleanupCTA=()=>s.removeEventListener("click",m),t.appendChild(s)}(t,e,n),null!=e&&e.showCloseButton&&function(t,e,n){const r=document.createElement("button");r.setAttribute("aria-label","Close notification"),r.setAttribute("title","Close"),r.textContent="×";const i=e.textColor||o(e.backgroundColor);Object.assign(r.style,{background:"none",border:"none",color:i,fontSize:"18px",marginLeft:"10px",cursor:"pointer",lineHeight:"1",padding:"0 4px"});const a=()=>{"function"==typeof n&&n(t)};r.addEventListener("click",a),t._cleanupCloseButton=()=>{r.removeEventListener("click",a)},t.appendChild(r)}(t,e,n),null!=e&&e.showProgressBar&&function(t,e){const o=document.createElement("div"),n=e.borderRadius||"0",r=parseInt(n,10),i=parseInt(e.progressHeight,10)||4,a=Number(e.duration??2500)+5,s=Math.min(r,2*i),l=r>0?`calc(100% - ${s}px)`:"100%";Object.assign(o.style,{position:"absolute",left:`${s}px`,height:`${i}px`,background:e.progressColor||"currentColor",width:`${l}`,transition:`width ${a}ms linear`,["top"===e.progressPosition?"top":"bottom"]:"0",borderRadius:i/2+"px",opacity:"0.8"}),t.appendChild(o),"function"==typeof o.animate?t._progressAnimation=o.animate([{width:l},{width:"0%"}],{duration:a,easing:"linear",fill:"forwards",delay:50}):(o.style.transition=`width ${a}ms linear`,setTimeout(()=>{o.offsetWidth,o.style.width="0%"},50))}(t,e),function(t){setTimeout(()=>{requestAnimationFrame(()=>{t.style.opacity="1",t.style.transform="translateY(0)"})},50)}(t)}async function d(t,e){try{const o=document.createElement("div"),n=((null==t?void 0:t.position)||"bottom-right").toLowerCase().trim();let r="auto",i="auto",a="auto",s="auto",l="none";n.startsWith("top")?r="20px":(n.startsWith("bottom")||n.includes("below"))&&(i="20px"),n.startsWith("left")?a="20px":n.startsWith("right")?s="20px":"center"===n?(a="50%",r="50%",l="translate(-50%, -50%)"):n.includes("center")?n.includes("left")?(a="20px",r="50%",l="translateY(-50%)"):n.includes("right")?(s="20px",r="50%",l="translateY(-50%)"):n.includes("top")?(r="20px",a="50%",l="translateX(-50%)"):n.includes("bottom")&&(i="20px",a="50%",l="translateX(-50%)"):(s="20px",i="20px"),Object.assign(o.style,{background:"#333",color:"white",padding:"10px 15px",position:"fixed",top:r,bottom:i,left:a,right:s,transform:l,zIndex:"99999",borderRadius:"3px",maxWidth:"250px",wordWrap:"break-word",boxShadow:"0 2px 10px rgba(0,0,0,0.3)"});const u=document.createElement("div"),d=document.createElement("span");d.style.display="inline-block",t.allowHtml?d.innerHTML=c(String(t.message||"Emergency Toast Showing!")):d.textContent=String(t.message||"Emergency Toast Creation Showing!"),u.appendChild(d);const m=document.createElement("span");for(m.style.cssText="float: right; margin-left: 10px; font-weight: bold; cursor: pointer;",m.textContent="×",u.appendChild(m);o.firstChild;)o.removeChild(o.firstChild);o.appendChild(u),m.addEventListener("click",()=>{o.remove(),"function"==typeof e&&e(o)}),document.body.appendChild(o);const f=Number(null==t?void 0:t.duration)||2500,p=setTimeout(()=>{o.remove(),"function"==typeof e&&e(o)},f);return"function"==typeof(null==p?void 0:p.unref)&&p.unref(),o}catch(t){return console.error("Emergency toast creation failed:",t),"function"==typeof e&&e(null),null}}const m=new Map,f=new Map;function p(t){if(!t||"string"!=typeof t)return"bottom-right";const e=t.toLowerCase().trim();return e?e.replace(/\bbelow\b/g,"bottom").replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"-").replace(/-{2,}/g,"-"):"bottom-right"}async function h(t,e){const o=`toast-container-${p((null==t?void 0:t.position)||"bottom-right")}`;if(f.has(o))return f.get(o);const n=(async()=>{const n=m.get(o),r="undefined"==typeof document||(null==n?void 0:n.ownerDocument)===document;if(null!=n&&n.isConnected&&r)return n;n&&m.delete(o);let i=document.getElementById(o);i&&!i.isConnected&&document.body.appendChild(i),i?(i.style.position=i.style.position||"fixed",i.style.zIndex=i.style.zIndex||"9999","function"==typeof e&&await e(i,t)):(i=document.createElement("div"),i.id=o,i.setAttribute("role","status"),i.setAttribute("aria-atomic","true"),i.style.position="fixed",i.style.zIndex="9999",i.style.pointerEvents="none",i.style.inset="auto 10px 10px auto",i.style.display="flex",i.style.justifyContent="space-between",i.style.alignItems="center",i.style.flexDirection="column",i.style.overflow="hidden","function"==typeof e&&await e(i,t),document.body.appendChild(i));const a=document.querySelectorAll(`#${o}`);if(a.length>1)for(let t=1;t<a.length;t++)try{a[t].remove()}catch{}return m.set(o,i),i})();f.set(o,n);try{return await n}finally{f.delete(o)}}const y=new Set(["top-left","top-right","bottom-left","bottom-right","top-center","bottom-center","left-center","right-center","top-full-width","bottom-full-width","center"]),g=new Set(["top","bottom"]);async function b(t,e){if(!t||null==e||!e.position)throw new Error("Invalid container or position!");const o=String(e.position).toLowerCase().trim();let n=o;var r;r=o,y.has(r)||g.has(o)||(console.warn(`Unknown position "${e.position}", defaulting to "bottom-right"`),n="bottom-right"),function(t){t.style.top="auto",t.style.bottom="auto",t.style.left="auto",t.style.right="auto",t.style.transform="none"}(t);const i=function(t){const e=t.toLowerCase().trim();return{hasTop:e.startsWith("top"),hasBottom:e.startsWith("bottom")||e.startsWith("below"),hasLeft:e.startsWith("left"),hasRight:e.startsWith("right"),hasCenter:"center"===e||e.includes("center")&&!e.includes("left")&&!e.includes("right")&&!e.includes("top")&&!e.includes("bottom"),hasFullWidth:"top-full-width"===e||"bottom-full-width"===e}}(n);(function(t,e,o){if(!o.hasFullWidth)return!1;t.style.maxWidth="100vw";try{e&&!e.maxWidth&&(e.maxWidth="100vw")}catch{}return o.hasTop?(t.style.top="10px",t.style.left="10px",t.style.right="10px",!0):!!o.hasBottom&&(t.style.bottom="10px",t.style.left="10px",t.style.right="10px",!0)})(t,e,i)||function(t,e){return!!e.hasCenter&&(!e.hasTop||e.hasLeft||e.hasRight?!e.hasBottom||e.hasLeft||e.hasRight?!e.hasLeft||e.hasTop||e.hasBottom?!e.hasRight||e.hasTop||e.hasBottom?!(e.hasLeft||e.hasRight||e.hasTop||e.hasBottom)&&(t.style.top="50%",t.style.left="50%",t.style.transform="translate(-50%, -50%)",!0):(t.style.right="10px",t.style.top="50%",t.style.transform="translateY(-50%)",!0):(t.style.left="10px",t.style.top="50%",t.style.transform="translateY(-50%)",!0):(t.style.bottom="10px",t.style.left="50%",t.style.transform="translateX(-50%)",!0):(t.style.top="10px",t.style.left="50%",t.style.transform="translateX(-50%)",!0))}(t,i)||function(t,e){e.hasBottom?t.style.bottom="10px":e.hasTop?t.style.top="10px":t.style.bottom="10px",e.hasRight?t.style.right="10px":e.hasLeft?t.style.left="10px":(t.style.left="50%",t.style.transform="translateX(-50%)")}(t,i)}class w{constructor(t,e){this.callback="function"==typeof t?t:()=>{};const o=Number.isFinite(e)&&e>=0?e:0;this.delay=o,this.remaining=o,this.startTime=null,this.timeoutId=null,this.isPaused=!1,this.isCompleted=!1}start(){var t;return this.isCompleted||this.timeoutId||(this.startTime=Date.now(),this.timeoutId=setTimeout(()=>{this.isCompleted=!0,this.timeoutId=null;try{this.callback()}catch(t){console.error("PausableTimer callback error:",t)}},this.remaining),"function"==typeof(null===(t=this.timeoutId)||void 0===t?void 0:t.unref)&&this.timeoutId.unref()),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 v=new Map,x=new Map,C=[];let k=0;async function E(t,e,o){try{if(!t||"object"!=typeof t)throw new TypeError("options must be an object");k++;const n=await h(t,b);if(!n)throw new Error("Failed to create toast container");const r=await async function(t,e){let o;try{return o=await async function(t,e){const o=document.createElement(t);return o.id=function(t="toast"){return`${"string"==typeof t&&t.trim()?t.trim():"toast"}-${Date.now().toString(36)}-${Math.floor(1048575*Math.random()).toString(36)}`}(e),o}("div","toast"),await u(o,t,e),o}catch(n){return console.warn("toast creation failed with error showing fallback one: ",n),o=await d(t,e),o}}(t,L);if(!r)throw new Error("Toast element creation failed");const i=document.createElement("div");Object.assign(i.style,{position:"relative",display:"inline-block",overflow:"visible",marginBottom:"10px",zIndex:"0",width:"100%",pointerEvents:"auto"});const a=document.createElement("div");Object.assign(a.style,{position:"relative",overflow:"hidden",zIndex:"1"}),a.appendChild(r),i.appendChild(a),n.id.includes("toast-container-")&&n.appendChild(i);const s=!1!==t.pauseOnHover&&(!0===t.pauseOnHover||!!t.cta),l={outer:i,toast:r,options:t,count:Math.max(1,Math.floor(o??0)),timeout:null,pauseOnHover:s};v.set(e,l),r._key=e,l.count>1&&await N(l),l.timer=S(r,t),await T(l)}catch(e){console.error("Something went wrong: ",e),k=Math.max(0,k-1),(document.querySelector('[id^="toast-container-"]')||document.body).appendChild(await d(t,L))}}const A=async function(){try{if(0===v.size)return;let t=null;const e=Array.from(v.values());if(e.length>0){const o=e.at(-1);t=o.toast||o.outer&&o.outer.querySelector('[id^="toast-"]')}if(t||document.querySelectorAll('[id^="toast-container-"]').forEach(e=>{const o=Array.from(e.children||[]);if(0===o.length)return;const n=o.at(-1);n&&(t=n.querySelector('[id^="toast-"]')||n)}),!t)return;const o=t._key?t:t.querySelector('[id^="toast-"]')||t;await L(o)}catch(t){console.error("dismissMostRecent failed:",t)}};function S(t,e){const o=Number(null==e?void 0:e.duration),n=Number.isFinite(o)&&o>0?o:2500,r=new w(async()=>await L(t),n+5);return r.start(),r}async function T(t){if(!t.pauseOnHover||!t.outer||!t.timer)return;const{outer:e,timer:o,toast:n}=t,r=()=>{var t;o.pause(),null==n||null===(t=n._progressAnimation)||void 0===t||t.pause()},i=()=>{var t;o.resume(),null==n||null===(t=n._progressAnimation)||void 0===t||t.play()},a=t=>{var e;t.target.matches("[tabindex], div, span, button, a")&&(o.pause(),null==n||null===(e=n._progressAnimation)||void 0===e||e.pause())},s=t=>{var r;e.contains(t.relatedTarget)||(o.resume(),null==n||null===(r=n._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 L(t){if(null!=t&&t._key)return M(t._key)}async function M(t){try{var e,o,n,r,i,a,s,l,c,u,d,m,f,p;if(!t)return;const h=x.get(t);if(h)return cancelAnimationFrame(h.rafId),void x.delete(t);const y=C.findIndex(e=>e.key===t);if(-1!==y)return void C.splice(y,1);const g=v.get(t);if(!g)return;null===(e=g.timer)||void 0===e||e.clear(),null===(o=g.outer)||void 0===o||null===(n=o._pauseCleanup)||void 0===n||n.call(o),null===(r=g.toast)||void 0===r||null===(i=r._cleanupCloseButton)||void 0===i||i.call(r),null===(a=g.toast)||void 0===a||null===(s=a._cleanupCTA)||void 0===s||s.call(a),null===(l=g.toast)||void 0===l||null===(c=l._cleanup)||void 0===c||c.call(l);const b=null===(u=g.toast)||void 0===u?void 0:u.querySelector("button, a");null==b||null===(d=b._cleanup)||void 0===d||d.call(b),v.delete(t),k=Math.max(0,k-1);const w=g.outer.querySelector(".toast-count-badge");w&&w.remove();const E=(null===(m=g.toast)||void 0===m?void 0:m._animationDuration)??400;g.toast&&(g.toast.style.opacity="0",g.toast.style.transform="translateY(20px)");const A=null===(f=g.outer)||void 0===f?void 0:f.parentElement;if(await async function(t,e,o=400){return t?new Promise(n=>{let r=!1;const i=()=>{r||(r=!0,async function(t){if(!t)return!0;try{if("function"==typeof t.remove)return t.remove(),!0}catch{}try{if(t.parentNode)return t.parentNode.removeChild(t),!0}catch{}}(t),n())},a=e||t.firstElementChild||t;if(!a)return n();const s=t=>{try{if(t.target!==a)return;a.removeEventListener("transitionend",s,!0),i()}catch(t){console.error("removeWithTransition error:",t)}};try{a.addEventListener("transitionend",s,!0)}catch(t){console.error("removeWithTransition error:",t)}setTimeout(()=>{try{a.removeEventListener("transitionend",s,!0),i()}catch(t){console.error("removeWithTransition error:",t)}},o+100)}):Promise.resolve()}(g.outer,g.toast,E),A&&0===A.children.length&&null!==(p=A.id)&&void 0!==p&&p.startsWith("toast-container-"))try{A.remove()}catch{}await I()}catch(t){console.error("Closing Toast failed!: ",t)}}async function I(){for(;k<3&&C.length;){const t=C.shift();if(v.has(t.key)){const e=v.get(t.key);e.count+=t.count,await N(e);continue}E(t.options,t.key,t.count)}}async function N({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 o=t.querySelector(".toast-count-badge");o||(o=document.createElement("span"),o.className="toast-count-badge",o.setAttribute("aria-label",`${e} identical notifications`),Object.assign(o.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(o)),o.textContent=e>99?"99+":String(e);try{o.style.transform="scale(1.2)",setTimeout(()=>o.style.transform="scale(1)",150)}catch(t){console.error("updateBadge animation error:",t)}}let O={success:"#28a745",error:"#dc3545",warning:"#ffc107",info:"#17a2b8"},j={success:"Operation completed successfully!",error:"Something went wrong!",warning:"Warning message!",info:"Information message!"};const D=[];let W=!1;async function $(t={}){try{const e=await async function(t){var e;const n=null==t||null===(e=t.position)||void 0===e||null===(e=e.toLowerCase())||void 0===e?void 0:e.trim(),r={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",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:null!=n&&n.includes("top-full-width")||null!=n&&n.includes("bottom-full-width")?"100vw":"400px",..."object"!=typeof t||Array.isArray(t)?{}:t};r.message=(null==t?void 0:t.message)??r.message;try{var i;r.backgroundColor||(r.backgroundColor=(null===(i=O)||void 0===i?void 0:i[r.type])??(window.matchMedia("(prefers-color-scheme: dark)").matches?"#f5f5f5":"#111111"))}catch(t){console.warn("Background color resolution failed:",t)}try{var a;r.message=r.message||(null===(a=j)||void 0===a?void 0:a[r.type])||"No Message Provided!"}catch(t){console.warn("Default message resolution failed:",t)}try{!r.textColor&&r.backgroundColor&&(r.textColor=o(r.backgroundColor))}catch(t){console.warn("Text color resolution failed:",t)}try{!r.progressColor&&r.backgroundColor&&(r.progressColor=r.textColor||o(r.backgroundColor))}catch(t){console.warn("Progress bar color resolution failed:",t)}return"string"!=typeof r.message&&(r.message="No Message Provided!"),r}(t);return await async function(t){try{return await h(t,b)}catch(t){return console.error("Failed to create toast container:",t),document.body}}(e),await async function(t={}){try{const e=function(t={}){const e=t&&"object"==typeof t?t:{};return`${String(e.type||"info").trim().toLowerCase()}|${function(t){let e=5381;for(let o=0;o<t.length;o++)e=(e<<5)+e+t.charCodeAt(o);return e>>>0}(String(e.message||"")).toString(16)}|${p(e.position||"bottom-right")}`}(t);if(v.has(e)){const o=v.get(e);if(!o)throw new Error(`Active toast with key ${e} not found`);return o.count++,o.timer.clear(),o.timer=S(o.toast,t),await T(o),await N(o),e}if(x.has(e)){const t=x.get(e);if(!t)throw new Error(`Pending toast with key ${e} not found`);return t.count++,e}const o={options:t,count:1,rafId:0};return x.set(e,o),o.rafId=requestAnimationFrame(async()=>{const t=x.get(e);if(t){if(x.delete(e),k>=3)return C.push({options:t.options,key:e,count:t.count}),void await I();try{await E(t.options,e,t.count)}catch(t){console.error("showToast failed:",t)}}}),e}catch(t){console.error("showToast failed:",t)}}(e)}catch(t){return console.error("CreateToast failed:",t),null}}function _(t){try{if(t&&"object"==typeof t&&!Array.isArray(t)){const e=["success","error","warning","info"],o={};for(const[n,r]of Object.entries(t))e.includes(n)&&"string"==typeof r&&r.trim()&&(o[n]=r.trim());Object.keys(o).length>0&&(O={...O,...o})}}catch(t){console.error("setDefaultColors failed:",t)}}function z(t){try{if(t&&"object"==typeof t&&!Array.isArray(t)){const e=["success","error","warning","info"],o={};for(const[n,r]of Object.entries(t))e.includes(n)&&"string"==typeof r&&r.trim()&&(o[n]=r.trim());Object.keys(o).length>0&&(j={...j,...o})}}catch(t){console.error("setDefaultMessages failed:",t)}}let B=!1,P=null;async function H(t={}){const e=await async function(){if(B&&P)try{await P}catch(t){console.warn("Previous close operation failed (continuing anyway):",t)}return async function(t={}){return"undefined"!=typeof window&&"undefined"!=typeof document?(await async function(){if(!W&&"undefined"!=typeof window&&"undefined"!=typeof document)if("complete"===document.readyState||"interactive"===document.readyState){W=!0;const t=[...D];D.length=0;for(const e of t)setTimeout(()=>$(e),0)}else document.addEventListener("DOMContentLoaded",()=>{setTimeout(()=>{W=!0;const t=[...D];D.length=0;for(const e of t)setTimeout(()=>$(e),0)},200)},{once:!0})}(),W?await $(t):(D.push(t),null)):(console.warn("ToastNotification: running in non-browser environment, no DOM available."),null)}(t)}();return{dismiss:()=>e?M(e):Promise.resolve()}}const R=async()=>{B=!0,P=(async()=>{try{await A()}finally{B=!1,P=null}})(),await P},q=async()=>{B=!0,P=(async()=>{try{await async function(){try{for(const[,t]of x)null!=t&&t.rafId&&cancelAnimationFrame(t.rafId);x.clear(),C.length=0;const t=Array.from(v.values()).map(t=>t.toast).filter(Boolean);for(const e of t)try{await L(e)}catch(t){console.warn("closeAllToasts: failed to close one toast:",t)}}catch(t){console.error("closeAllToasts failed:",t)}}()}finally{B=!1,P=null}})(),await P};async function F(t,e={},o={}){const n=e&&"object"==typeof e?e:{},r=o&&"object"==typeof o?o:{},i=n.loading??"Loading...",a=await H({...r,type:"info",message:i,duration:864e5,showProgressBar:!1,pauseOnHover:!1}),s={...r,pauseOnHover:r.pauseOnHover};try{const e="function"==typeof t?t():t,o=await e;await a.dismiss();const r="function"==typeof n.success?n.success(o):n.success??"Done!";return await H({...s,type:"success",message:r}),o}catch(t){await a.dismiss();const e="function"==typeof n.error?n.error(t):n.error??"Something went wrong.";throw await H({...s,type:"error",message:e}),t}}if("undefined"!=typeof window&&"undefined"!=typeof document&&!window.__customizableToastEscapeAttached){window.__customizableToastEscapeAttached=!0;const t=t=>{"Escape"!==t.key&&"Esc"!==t.key||(async()=>{try{B=!0,P=(async()=>{try{await A()}finally{B=!1,P=null}})(),await P}catch(t){console.error("Escape key dismiss failed:",t),B=!1,P=null}})()};window.addEventListener("keydown",t,{passive:!0})}try{"undefined"!=typeof window&&(window.customizableToast={createToast:H,setDefaultColors:_,setDefaultMessages:z,noop:q,dismiss:R,toastPromise:F})}catch(t){console.error("Global assignment failed:",t)}exports.createToast=H,exports.dismiss=R,exports.noop=q,exports.resetContainerRegistry=function(){m.clear(),f.clear()},exports.resetToastManager=function(){for(const[,t]of x)null!=t&&t.rafId&&cancelAnimationFrame(t.rafId);x.clear(),C.length=0;for(const[,s]of v){var t,e,o,n,r,i,a;null===(t=s.timer)||void 0===t||t.clear(),null===(e=s.outer)||void 0===e||null===(o=e._pauseCleanup)||void 0===o||o.call(e),null===(n=s.toast)||void 0===n||null===(r=n._cleanupCloseButton)||void 0===r||r.call(n),null===(i=s.toast)||void 0===i||null===(a=i._cleanup)||void 0===a||a.call(i)}v.clear(),k=0},exports.setDefaultColors=_,exports.setDefaultMessages=z,exports.toastPromise=F;
|
|
16
16
|
//# sourceMappingURL=index.cjs.map
|