customizable-toast-notification 3.12.2 → 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 +15 -0
- package/README.md +33 -1
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +80 -33
- 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 +5 -8
- package/postinstall.js +0 -31
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
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
|
+
|
|
9
|
+
## [3.12.3](https://github.com/sammy-cool/customizable-toast-notification/compare/v3.12.2...v3.12.3) (2026-09-29)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* resolve 22 bugs across positioning, sanitization, timers, cleanup, and a11y ([8d8c181](https://github.com/sammy-cool/customizable-toast-notification/commit/8d8c18195384b2058128817ff823d15c785c8252))
|
|
15
|
+
|
|
1
16
|
## [3.12.2](https://github.com/sammy-cool/customizable-toast-notification/compare/v3.12.1...v3.12.2) (2026-09-20)
|
|
2
17
|
|
|
3
18
|
|
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
|
|
@@ -129,7 +129,17 @@ auto-dismissed on its own — it no-ops rather than throwing.
|
|
|
129
129
|
| `progressPosition` | `string` | `"bottom"` | Progress bar position: `"top"` or `"bottom"` |
|
|
130
130
|
| `pauseOnHover` | `boolean` | `auto` | Pause timer on hover (auto: true for CTA toasts) |
|
|
131
131
|
| `allowHtml` | `boolean` | `false` | Render `message` as sanitized HTML instead of plain text |
|
|
132
|
+
| `sanitizeHtml` | `boolean` | `true` | Sanitize HTML when `allowHtml=true` |
|
|
132
133
|
| `wrapText` | `string` | `"normal"` | `"normal"` wraps naturally; falsy truncates to 3 lines |
|
|
134
|
+
| `maxWidth` | `string` | Auto | Max width (auto: `400px` / `100vw` for full-width) |
|
|
135
|
+
| `fontFamily` | `string` | System default | Font family |
|
|
136
|
+
| `fontSize` | `string` | `"14px"` | Font size |
|
|
137
|
+
| `fontWeight` | `string` | `"400"` | Font weight |
|
|
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`) |
|
|
141
|
+
| `fontDirection` | `string` | `"auto"` | Font direction: `"auto"`, `"ltr"`, `"rtl"` |
|
|
142
|
+
| `fontPadding` | `string` | `undefined` | Custom padding for message container (e.g. `"4px 8px"`) |
|
|
133
143
|
| `cta` | `object` | `null` | Call-to-action configuration (see [CTA](#call-to-action)) |
|
|
134
144
|
|
|
135
145
|
#### Position Options
|
|
@@ -207,6 +217,28 @@ Any toast with a `cta` automatically gets `pauseOnHover: true` unless you overri
|
|
|
207
217
|
| `autoClose` | `boolean` | `true` | Close toast after CTA click |
|
|
208
218
|
| `ariaLabel` | `string` | `label` | Accessibility label |
|
|
209
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
|
+
|
|
210
242
|
### `setDefaultColors(colors)`
|
|
211
243
|
|
|
212
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,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{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){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);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 ${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=o;const r=document.createElement("span");null!=e&&e.wrapText?Object.assign(r.style,{display:"block",whiteSpace:"normal"}):Object.assign(r.style,{display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:"3",whiteSpace:"nowrap"}),Object.assign(r.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 i=!!e.allowHtml,a=e.message??"";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||{});r.appendChild(t);const n=document.createElement("span");n.style.display="inline-block",n.style.width="8px",r.appendChild(n)}if(i&&"string"==typeof a&&a.trim().length>0)try{const t=s(a),e=document.createElement("div");for(e.innerHTML=t;e.firstChild;)r.appendChild(e.firstChild)}catch(t){console.warn("HTML message sanitization failed, falling back to text:",t),r.textContent=a}else r.textContent=String(a);r.setAttribute("aria-label","Toast Notification Center"),r.setAttribute("title","string"==typeof a?a.replace(/<[^>]+>/g,""):String(a)),t.appendChild(r),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;Object.assign(n.style,{position:"absolute",left:`${i}`,height:`${c}px`,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:c/2+"px"}),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{}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(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){const n=Number(e.duration??1800)+5,o=new h(async()=>await T(t),n);return o.start(),o}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{}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),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 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=I)||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=O)||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 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 P(t){try{t&&"object"==typeof t&&!Array.isArray(t)&&(O={...O,...t})}catch(t){console.error("setDefaultMessages failed:",t)}}let j=!1,z=null;const W=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(j&&z)try{await z}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()=>{j=!0,z=(async()=>{try{await C()}finally{j=!1,z=null}})(),await z},_=async()=>{j=!0,z=(async()=>{try{await k()}finally{j=!1,z=null}})(),await z};async function q(t,e={},n={}){const o=e.loading??"Loading...",r=await H({...n,type:"info",message:o,duration:864e5,showProgressBar:!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()=>{j=!0,z=(async()=>{try{await C()}finally{j=!1,z=null}})(),await z})()};window.addEventListener("keydown",t,{passive:!0})}try{"undefined"!=typeof window&&(window.customizableToast={createToast:H,setDefaultColors:B,setDefaultMessages:P,noop:_,dismiss:R,toastPromise:q})}catch(t){console.error("Global assignment failed:",t)}exports.createToast=H,exports.dismiss=R,exports.noop=_,exports.setDefaultColors=B,exports.setDefaultMessages=P,exports.toastPromise=q;
|
|
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
|