customizable-toast-notification 3.16.0 → 3.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.css CHANGED
@@ -1,2 +1,2 @@
1
1
  /* Customizable Toast Notifications - https://github.com/sammy-cool/customizable-toast-notification */
2
- :root{--toast-bg: #ffffff;--toast-text: #1a1a1a;--toast-border-radius: 50px;--toast-shadow: 0 4px 6px rgba(0, 0, 0, .1);--toast-padding: 12px 16px;--toast-min-width: 250px;--toast-max-width: 400px;--toast-transition-duration: .4s;--toast-transition-timing: ease;--toast-success-bg: #28a745;--toast-success-text: #ffffff;--toast-error-bg: #dc3545;--toast-error-text: #ffffff;--toast-warning-bg: #ffc107;--toast-warning-text: #000000;--toast-info-bg: #17a2b8;--toast-info-text: #ffffff;--toast-z-index: 9999;--toast-emergency-z-index: 10099;--toast-gap: 10px;--toast-offset: 10px}[data-toast-theme=light]{--toast-bg: #ffffff;--toast-text: #1a1a1a;--toast-shadow: 0 4px 6px rgba(0, 0, 0, .1)}[data-toast-theme=dark]{--toast-bg: #1a1a1a;--toast-text: #f5f5f5;--toast-shadow: 0 4px 6px rgba(0, 0, 0, .4);--toast-success-bg: #1e7e34;--toast-success-text: #e8f5e9;--toast-error-bg: #a71930;--toast-error-text: #ffebee;--toast-warning-bg: #997404;--toast-warning-text: #fff3e0;--toast-info-bg: #0c5460;--toast-info-text: #e0f2f1}[data-toast-theme=high-contrast]{--toast-bg: #000000;--toast-text: #ffff00;--toast-border-radius: 0px;--toast-shadow: 0 0 0 3px #ffff00;--toast-success-bg: #00ff00;--toast-success-text: #000000;--toast-error-bg: #ff0000;--toast-error-text: #ffffff;--toast-warning-bg: #ffff00;--toast-warning-text: #000000;--toast-info-bg: #00ffff;--toast-info-text: #000000}[data-toast-theme=compact]{--toast-padding: 8px 12px;--toast-min-width: 200px;--toast-max-width: 300px;--toast-gap: 6px;--toast-offset: 6px;--toast-border-radius: 6px}[data-toast-theme=spacious]{--toast-padding: 16px 20px;--toast-min-width: 300px;--toast-max-width: 500px;--toast-gap: 15px;--toast-offset: 15px;--toast-border-radius: 12px}[data-toast-theme=glass]{--toast-bg: rgba(255, 255, 255, .1);--toast-text: #ffffff;--toast-shadow: 0 8px 32px rgba(31, 38, 135, .37);--toast-border-radius: 10px;--toast-success-bg: rgba(40, 167, 69, .2);--toast-success-text: #ffffff;--toast-error-bg: rgba(220, 53, 69, .2);--toast-error-text: #ffffff;--toast-warning-bg: rgba(255, 193, 7, .2);--toast-warning-text: #ffffff;--toast-info-bg: rgba(23, 162, 184, .2);--toast-info-text: #ffffff}.toast-container-base{position:fixed;z-index:var(--toast-z-index, 9999);pointer-events:none;display:flex;justify-content:space-between;align-items:center;flex-direction:column;overflow:hidden;inset:auto 10px 10px auto;contain:layout style}.toast-position-bottom-right,.toast-position-bottom{top:auto;right:var(--toast-offset, 10px);bottom:var(--toast-offset, 10px);left:auto;transform:none}.toast-position-bottom-left{top:auto;right:auto;bottom:var(--toast-offset, 10px);left:var(--toast-offset, 10px);transform:none}.toast-position-top-right{top:var(--toast-offset, 10px);right:var(--toast-offset, 10px);bottom:auto;left:auto;transform:none}.toast-position-top-left{top:var(--toast-offset, 10px);right:auto;bottom:auto;left:var(--toast-offset, 10px);transform:none}.toast-position-top-center,.toast-position-top{top:var(--toast-offset, 10px);right:auto;bottom:auto;left:50%;transform:translate(-50%)}.toast-position-bottom-center{top:auto;right:auto;bottom:var(--toast-offset, 10px);left:50%;transform:translate(-50%)}.toast-position-left-center{top:50%;right:auto;bottom:auto;left:var(--toast-offset, 10px);transform:translateY(-50%)}.toast-position-right-center{top:50%;right:var(--toast-offset, 10px);bottom:auto;left:auto;transform:translateY(-50%)}.toast-position-center{inset:50% auto auto 50%;transform:translate(-50%,-50%)}.toast-position-top-full-width{top:var(--toast-offset, 10px);right:var(--toast-offset, 10px);bottom:auto;left:var(--toast-offset, 10px);max-width:100vw;transform:none}.toast-position-bottom-full-width{top:auto;right:var(--toast-offset, 10px);bottom:var(--toast-offset, 10px);left:var(--toast-offset, 10px);max-width:100vw;transform:none}.toast-outer-wrapper{position:relative;display:inline-block;overflow:visible;margin-bottom:var(--toast-gap, 10px);z-index:0;width:100%;pointer-events:auto}.toast-inner-wrapper{position:relative;overflow:hidden;z-index:1}.toast{padding:var(--toast-padding, 12px 16px);margin-bottom:var(--toast-gap, 10px);border-radius:var(--toast-border-radius, 50px);overflow:hidden;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--toast-shadow, 0 4px 6px rgba(0, 0, 0, .1));min-width:var(--toast-min-width, 250px);max-width:var(--toast-max-width, 400px);opacity:0;position:relative;cursor:default;box-sizing:border-box;user-select:text;pointer-events:auto;contain:layout style;will-change:transform,opacity;transition:opacity var(--toast-transition-duration, .4s) var(--toast-transition-timing, ease),transform var(--toast-transition-duration, .4s) var(--toast-transition-timing, ease);transform:translateY(20px);z-index:var(--toast-z-index, 9999);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;background:var(--toast-bg, #ffffff);color:var(--toast-text, #1a1a1a)}.toast-info{background:var(--toast-info-bg, #17a2b8);color:var(--toast-info-text, #ffffff)}.toast-success{background:var(--toast-success-bg, #28a745);color:var(--toast-success-text, #ffffff)}.toast-error{background:var(--toast-error-bg, #dc3545);color:var(--toast-error-text, #ffffff)}.toast-warning{background:var(--toast-warning-bg, #ffc107);color:var(--toast-warning-text, #000000)}.toast-message{flex:1;display:block;font-size:14px;font-weight:400;line-height:1.4;word-break:break-word;white-space:normal;overflow:hidden;text-overflow:ellipsis;user-select:text}.toast-message.is-truncated{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.toast-loader{display:inline-flex;align-items:center;gap:8px}.toast-loader-circle{opacity:.85;stroke-dasharray:90;stroke-dashoffset:60;transform-origin:center;animation:toast-spinner 1s linear infinite}.toast-loader-label{font-size:13px}.toast-message-spacer{display:inline-block;width:8px}.toast-cta{margin-left:10px;padding:6px 10px;border-radius:6px;font-size:12px;font-weight:600;line-height:1;border:1px solid rgba(255,255,255,.3);background:#00000026;color:inherit;cursor:pointer;white-space:nowrap;flex-shrink:0;text-decoration:none;transition:background .2s ease}.toast-cta:hover{background:#00000040}.toast-undo-btn{margin-left:10px;padding:5px 10px;border-radius:6px;font-size:12px;font-weight:700;line-height:1;border:1px solid rgba(255,255,255,.3);background:#ffffff2e;color:inherit;cursor:pointer;white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center;gap:4px;transition:background .2s ease,transform .1s ease}.toast-undo-btn:hover{background:#ffffff47}.toast-undo-btn:active{transform:scale(.96)}.toast-close-btn{background:none;border:none;color:inherit;font-size:18px;margin-left:10px;cursor:pointer;line-height:1;padding:0 4px;transition:opacity .2s ease}.toast-close-btn:hover{opacity:.7}.toast-progress-bar{position:absolute;bottom:0;left:0;width:100%;height:4px;border-radius:2px;background:currentColor;opacity:.8;will-change:width;transition:width var(--toast-transition-duration, .4s) linear}.toast-progress-top{top:0;bottom:auto}.toast-count-badge{position:absolute;top:6px;right:6px;background-color:#f44336;color:#fff;border-radius:50%;min-width:20px;height:20px;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;border:2px solid #ffffff;box-shadow:0 2px 6px #0000004d;z-index:2;pointer-events:none;transition:transform .15s ease}.toast-emergency{background:#333;color:#fff;padding:10px 15px;position:fixed;z-index:var(--toast-emergency-z-index, 10099);border-radius:3px;max-width:250px;word-wrap:break-word;box-shadow:0 2px 10px #0000004d}.toast-emergency-message{display:inline-block}.toast-emergency-close{float:right;margin-left:10px;font-weight:700;cursor:pointer}@keyframes toast-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes toast-entrance{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-exit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(20px)}}.toast.active{opacity:1;transform:translateY(0)}[data-toast-theme=glass] .toast{backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.18)}.toast.pinched{transform:scale(1.1);z-index:1000}.toast.flicked{transition:transform .2s ease-out,opacity .2s ease-out}@keyframes pinch-expand{0%{transform:scale(1)}to{transform:scale(1.15)}}@keyframes pinch-contract{0%{transform:scale(1.15)}to{transform:scale(1)}}[data-stacked=true] .toast-outer-wrapper{transition:transform .24s cubic-bezier(.16,1,.3,1),margin .24s cubic-bezier(.16,1,.3,1),opacity .24s ease}[data-stacked=true] .toast-outer-wrapper[data-stacked-depth=expanded]{transform:none;margin-top:0;margin-bottom:10px;opacity:1;pointer-events:auto}[data-stacked=true] .toast-outer-wrapper[data-stacked-depth="0"]{transform:scale(1);margin-top:0;margin-bottom:0;opacity:1;z-index:30;pointer-events:auto}[data-stacked=true] .toast-outer-wrapper[data-stacked-depth="1"]{transform:scale(.95) translateY(-10px);margin-top:-55px;margin-bottom:0;opacity:.9;z-index:20;pointer-events:auto}[data-stacked=true][id*=top] .toast-outer-wrapper[data-stacked-depth="1"]{transform:scale(.95) translateY(10px)}[data-stacked=true] .toast-outer-wrapper[data-stacked-depth="2"]{transform:scale(.9) translateY(-20px);margin-top:-55px;margin-bottom:0;opacity:.75;z-index:10;pointer-events:auto}[data-stacked=true][id*=top] .toast-outer-wrapper[data-stacked-depth="2"]{transform:scale(.9) translateY(20px)}[data-stacked=true] .toast-outer-wrapper[data-stacked-depth=overflow]{transform:scale(.85) translateY(-30px);margin-top:-55px;margin-bottom:0;opacity:0;z-index:1;pointer-events:none}[data-stacked=true][id*=top] .toast-outer-wrapper[data-stacked-depth=overflow]{transform:scale(.85) translateY(30px)}@media(prefers-reduced-motion:reduce){.toast,.toast-progress-bar,.toast-loader-circle,.toast-count-badge,.toast-cta,.toast-undo-btn,.toast-close-btn,.toast-outer-wrapper{transition:none!important;animation:none!important}}[data-toast-reduced-motion=always] .toast,[data-toast-reduced-motion=always] .toast-progress-bar,[data-toast-reduced-motion=always] .toast-loader-circle,[data-toast-reduced-motion=always] .toast-count-badge,[data-toast-reduced-motion=always] .toast-cta,[data-toast-reduced-motion=always] .toast-undo-btn,[data-toast-reduced-motion=always] .toast-close-btn,[data-toast-reduced-motion=always] .toast-outer-wrapper{transition:none!important;animation:none!important}
2
+ :root{--toast-bg: #ffffff;--toast-text: #1a1a1a;--toast-border-radius: 50px;--toast-shadow: 0 4px 6px rgba(0, 0, 0, .1);--toast-padding: 12px 16px;--toast-min-width: 250px;--toast-max-width: 400px;--toast-transition-duration: .4s;--toast-transition-timing: ease;--toast-success-bg: #28a745;--toast-success-text: #ffffff;--toast-error-bg: #dc3545;--toast-error-text: #ffffff;--toast-warning-bg: #ffc107;--toast-warning-text: #000000;--toast-info-bg: #17a2b8;--toast-info-text: #ffffff;--toast-z-index: 9999;--toast-emergency-z-index: 10099;--toast-gap: 10px;--toast-offset: 10px}[data-toast-theme=light]{--toast-bg: #ffffff;--toast-text: #1a1a1a;--toast-shadow: 0 4px 6px rgba(0, 0, 0, .1)}[data-toast-theme=dark]{--toast-bg: #1a1a1a;--toast-text: #f5f5f5;--toast-shadow: 0 4px 6px rgba(0, 0, 0, .4);--toast-success-bg: #1e7e34;--toast-success-text: #e8f5e9;--toast-error-bg: #a71930;--toast-error-text: #ffebee;--toast-warning-bg: #997404;--toast-warning-text: #fff3e0;--toast-info-bg: #0c5460;--toast-info-text: #e0f2f1}[data-toast-theme=high-contrast]{--toast-bg: #000000;--toast-text: #ffff00;--toast-border-radius: 0px;--toast-shadow: 0 0 0 3px #ffff00;--toast-success-bg: #00ff00;--toast-success-text: #000000;--toast-error-bg: #ff0000;--toast-error-text: #ffffff;--toast-warning-bg: #ffff00;--toast-warning-text: #000000;--toast-info-bg: #00ffff;--toast-info-text: #000000}[data-toast-theme=compact]{--toast-padding: 8px 12px;--toast-min-width: 200px;--toast-max-width: 300px;--toast-gap: 6px;--toast-offset: 6px;--toast-border-radius: 6px}[data-toast-theme=spacious]{--toast-padding: 16px 20px;--toast-min-width: 300px;--toast-max-width: 500px;--toast-gap: 15px;--toast-offset: 15px;--toast-border-radius: 12px}[data-toast-theme=glass]{--toast-bg: rgba(255, 255, 255, .1);--toast-text: #ffffff;--toast-shadow: 0 8px 32px rgba(31, 38, 135, .37);--toast-border-radius: 10px;--toast-success-bg: rgba(40, 167, 69, .2);--toast-success-text: #ffffff;--toast-error-bg: rgba(220, 53, 69, .2);--toast-error-text: #ffffff;--toast-warning-bg: rgba(255, 193, 7, .2);--toast-warning-text: #ffffff;--toast-info-bg: rgba(23, 162, 184, .2);--toast-info-text: #ffffff}.toast-container-base{position:fixed;z-index:var(--toast-z-index, 9999);pointer-events:none;display:flex;justify-content:space-between;align-items:center;flex-direction:column;overflow:hidden;inset:auto 10px 10px auto;contain:layout style}.toast-position-bottom-right,.toast-position-bottom{top:auto;right:var(--toast-offset, 10px);bottom:var(--toast-offset, 10px);left:auto;transform:none}.toast-position-bottom-left{top:auto;right:auto;bottom:var(--toast-offset, 10px);left:var(--toast-offset, 10px);transform:none}.toast-position-top-right{top:var(--toast-offset, 10px);right:var(--toast-offset, 10px);bottom:auto;left:auto;transform:none}.toast-position-top-left{top:var(--toast-offset, 10px);right:auto;bottom:auto;left:var(--toast-offset, 10px);transform:none}.toast-position-top-center,.toast-position-center-top,.toast-position-top{top:var(--toast-offset, 10px);right:auto;bottom:auto;left:50%;transform:translate(-50%)}.toast-position-bottom-center,.toast-position-center-bottom{top:auto;right:auto;bottom:var(--toast-offset, 10px);left:50%;transform:translate(-50%)}.toast-position-left-center,.toast-position-center-left{top:50%;right:auto;bottom:auto;left:var(--toast-offset, 10px);transform:translateY(-50%)}.toast-position-right-center,.toast-position-center-right{top:50%;right:var(--toast-offset, 10px);bottom:auto;left:auto;transform:translateY(-50%)}.toast-position-center{inset:50% auto auto 50%;transform:translate(-50%,-50%)}.toast-position-top-full-width{top:var(--toast-offset, 10px);right:var(--toast-offset, 10px);bottom:auto;left:var(--toast-offset, 10px);max-width:100vw;transform:none}.toast-position-bottom-full-width{top:auto;right:var(--toast-offset, 10px);bottom:var(--toast-offset, 10px);left:var(--toast-offset, 10px);max-width:100vw;transform:none}.toast-outer-wrapper{position:relative;display:inline-block;overflow:visible;margin-bottom:var(--toast-gap, 10px);z-index:0;width:100%;pointer-events:auto}.toast-inner-wrapper{position:relative;overflow:hidden;z-index:1}.toast{padding:var(--toast-padding, 12px 16px);margin-bottom:var(--toast-gap, 10px);border-radius:var(--toast-border-radius, 50px);overflow:hidden;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--toast-shadow, 0 4px 6px rgba(0, 0, 0, .1));min-width:var(--toast-min-width, 250px);max-width:var(--toast-max-width, 400px);opacity:0;position:relative;cursor:default;box-sizing:border-box;user-select:text;pointer-events:auto;contain:layout style;will-change:transform,opacity;transition:opacity var(--toast-transition-duration, .4s) var(--toast-transition-timing, ease),transform var(--toast-transition-duration, .4s) var(--toast-transition-timing, ease);transform:translateY(20px);z-index:var(--toast-z-index, 9999);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;background:var(--toast-bg, #ffffff);color:var(--toast-text, #1a1a1a)}.toast-info{background:var(--toast-info-bg, #17a2b8);color:var(--toast-info-text, #ffffff)}.toast-success{background:var(--toast-success-bg, #28a745);color:var(--toast-success-text, #ffffff)}.toast-error{background:var(--toast-error-bg, #dc3545);color:var(--toast-error-text, #ffffff)}.toast-warning{background:var(--toast-warning-bg, #ffc107);color:var(--toast-warning-text, #000000)}.toast-message{flex:1;display:block;font-size:14px;font-weight:400;line-height:1.4;word-break:break-word;white-space:normal;overflow:hidden;text-overflow:ellipsis;user-select:text}.toast-message.is-truncated{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.toast-loader{display:inline-flex;align-items:center;gap:8px}.toast-loader-circle{opacity:.85;stroke-dasharray:90;stroke-dashoffset:60;transform-origin:center;animation:toast-spinner 1s linear infinite}.toast-loader-label{font-size:13px}.toast-message-spacer{display:inline-block;width:8px}.toast-cta{margin-left:10px;padding:6px 10px;border-radius:6px;font-size:12px;font-weight:600;line-height:1;border:1px solid rgba(255,255,255,.3);background:#00000026;color:inherit;cursor:pointer;white-space:nowrap;flex-shrink:0;text-decoration:none;transition:background .2s ease}.toast-cta+.toast-cta{margin-left:6px}.toast-cta:hover{background:#00000040}.toast-undo-btn{margin-left:10px;padding:5px 10px;border-radius:6px;font-size:12px;font-weight:700;line-height:1;border:1px solid rgba(255,255,255,.3);background:#ffffff2e;color:inherit;cursor:pointer;white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center;gap:4px;transition:background .2s ease,transform .1s ease}.toast-undo-btn:hover{background:#ffffff47}.toast-undo-btn:active{transform:scale(.96)}.toast-close-btn{background:none;border:none;color:inherit;font-size:18px;margin-left:10px;cursor:pointer;line-height:1;padding:0 4px;transition:opacity .2s ease}.toast-close-btn:hover{opacity:.7}.toast-progress-bar{position:absolute;bottom:0;left:0;width:100%;height:4px;border-radius:2px;background:currentColor;opacity:.8;will-change:width;transition:width var(--toast-transition-duration, .4s) linear}.toast-progress-top{top:0;bottom:auto}.toast-count-badge{position:absolute;top:6px;right:6px;background-color:#f44336;color:#fff;border-radius:50%;min-width:20px;height:20px;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;border:2px solid #ffffff;box-shadow:0 2px 6px #0000004d;z-index:2;pointer-events:none;transition:transform .15s ease}.toast-emergency{background:#333;color:#fff;padding:10px 15px;position:fixed;z-index:var(--toast-emergency-z-index, 10099);border-radius:3px;max-width:250px;word-wrap:break-word;box-shadow:0 2px 10px #0000004d}.toast-emergency-message{display:inline-block}.toast-emergency-close{float:right;margin-left:10px;font-weight:700;cursor:pointer}@keyframes toast-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes toast-entrance{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-exit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(20px)}}[class*=toast-position-top] .toast:not(.active){transform:translateY(-20px)}.toast.active{opacity:1;transform:translateY(0)}@keyframes toast-bounce-gentle{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.custom-animation-bounce{animation:toast-bounce-gentle .6s ease-in-out}[data-toast-theme=glass] .toast{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.25);text-shadow:0 1px 2px rgba(0,0,0,.4)}[data-toast-theme=high-contrast] button:focus-visible,[data-toast-theme=high-contrast] a:focus-visible{outline:3px solid #ffff00;outline-offset:2px}.toast.pinched{transform:scale(1.1);z-index:1000}.toast.flicked{transition:transform .2s ease-out,opacity .2s ease-out}@keyframes pinch-expand{0%{transform:scale(1)}to{transform:scale(1.15)}}@keyframes pinch-contract{0%{transform:scale(1.15)}to{transform:scale(1)}}[data-stacked=true] .toast-outer-wrapper{transition:transform .24s cubic-bezier(.16,1,.3,1),margin .24s cubic-bezier(.16,1,.3,1),opacity .24s ease}[data-stacked=true] .toast-outer-wrapper[data-stacked-depth=expanded]{transform:none;margin-top:0;margin-bottom:10px;opacity:1;pointer-events:auto}[data-stacked=true] .toast-outer-wrapper[data-stacked-depth="0"]{transform:scale(1);margin-top:0;margin-bottom:0;opacity:1;z-index:30;pointer-events:auto}[data-stacked=true] .toast-outer-wrapper[data-stacked-depth="1"]{transform:scale(.95) translateY(-10px);margin-top:-55px;margin-bottom:0;opacity:.9;z-index:20;pointer-events:auto}[data-stacked=true][id*=top] .toast-outer-wrapper[data-stacked-depth="1"]{transform:scale(.95) translateY(10px)}[data-stacked=true] .toast-outer-wrapper[data-stacked-depth="2"]{transform:scale(.9) translateY(-20px);margin-top:-55px;margin-bottom:0;opacity:.75;z-index:10;pointer-events:auto}[data-stacked=true][id*=top] .toast-outer-wrapper[data-stacked-depth="2"]{transform:scale(.9) translateY(20px)}[data-stacked=true] .toast-outer-wrapper[data-stacked-depth=overflow]{transform:scale(.85) translateY(-30px);margin-top:-55px;margin-bottom:0;opacity:0;z-index:1;pointer-events:none}.toast-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;margin-right:8px;margin-inline-end:8px;line-height:1}[dir=rtl] .toast-icon,.toast[style*="direction: rtl"] .toast-icon{margin-right:0;margin-left:8px}.toast-icon svg{display:block}.toast.toast-paused{box-shadow:0 0 0 2px #ffffff4d,0 8px 16px #0003!important}.toast.toast-paused .toast-progress-bar{opacity:1!important;filter:brightness(1.2)}@media(prefers-reduced-motion:reduce){.toast,.toast-progress-bar,.toast-loader-circle,.toast-count-badge,.toast-cta,.toast-undo-btn,.toast-close-btn,.toast-outer-wrapper{transition:none!important;animation:none!important}}[data-toast-reduced-motion=always] .toast,[data-toast-reduced-motion=always] .toast-progress-bar,[data-toast-reduced-motion=always] .toast-loader-circle,[data-toast-reduced-motion=always] .toast-count-badge,[data-toast-reduced-motion=always] .toast-cta,[data-toast-reduced-motion=always] .toast-undo-btn,[data-toast-reduced-motion=always] .toast-close-btn,[data-toast-reduced-motion=always] .toast-outer-wrapper{transition:none!important;animation:none!important}
@@ -7,6 +7,7 @@
7
7
  */
8
8
 
9
9
  export const active: string;
10
+ export const custom-animation-bounce: string;
10
11
  export const flicked: string;
11
12
  export const is-truncated: string;
12
13
  export const pinched: string;
@@ -19,6 +20,7 @@ export const toast-emergency: string;
19
20
  export const toast-emergency-close: string;
20
21
  export const toast-emergency-message: string;
21
22
  export const toast-error: string;
23
+ export const toast-icon: string;
22
24
  export const toast-info: string;
23
25
  export const toast-inner-wrapper: string;
24
26
  export const toast-loader: string;
@@ -27,12 +29,17 @@ export const toast-loader-label: string;
27
29
  export const toast-message: string;
28
30
  export const toast-message-spacer: string;
29
31
  export const toast-outer-wrapper: string;
32
+ export const toast-paused: string;
30
33
  export const toast-position-bottom: string;
31
34
  export const toast-position-bottom-center: string;
32
35
  export const toast-position-bottom-full-width: string;
33
36
  export const toast-position-bottom-left: string;
34
37
  export const toast-position-bottom-right: string;
35
38
  export const toast-position-center: string;
39
+ export const toast-position-center-bottom: string;
40
+ export const toast-position-center-left: string;
41
+ export const toast-position-center-right: string;
42
+ export const toast-position-center-top: string;
36
43
  export const toast-position-left-center: string;
37
44
  export const toast-position-right-center: string;
38
45
  export const toast-position-top: string;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/styles.css"],
4
- "sourcesContent": ["/*\n * Customizable Toast Notifications - External CSS Mode\n * Import this file and call `setConfig({ disableInlineStyles: true })` for\n * stricter Content Security Policy deployments.\n *\n * CSS Variables: Fully customizable via :root or [data-toast-theme]\n * Built-in Themes: light (default), dark, high-contrast, compact, spacious, glass\n */\n\n/* ========== ROOT VARIABLES (Customization Foundation) ========== */\n:root {\n /* Colors */\n --toast-bg: #ffffff;\n --toast-text: #1a1a1a;\n --toast-border-radius: 50px;\n --toast-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n --toast-padding: 12px 16px;\n --toast-min-width: 250px;\n --toast-max-width: 400px;\n\n /* Animations */\n --toast-transition-duration: 0.4s;\n --toast-transition-timing: ease;\n\n /* Type-specific Colors */\n --toast-success-bg: #28a745;\n --toast-success-text: #ffffff;\n\n --toast-error-bg: #dc3545;\n --toast-error-text: #ffffff;\n\n --toast-warning-bg: #ffc107;\n --toast-warning-text: #000000;\n\n --toast-info-bg: #17a2b8;\n --toast-info-text: #ffffff;\n\n /* Z-index Stack */\n --toast-z-index: 9999;\n --toast-emergency-z-index: 10099;\n\n /* Spacing */\n --toast-gap: 10px;\n --toast-offset: 10px;\n}\n\n/* ========== THEME: LIGHT (Default) ========== */\n[data-toast-theme=\"light\"] {\n --toast-bg: #ffffff;\n --toast-text: #1a1a1a;\n --toast-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n}\n\n/* ========== THEME: DARK ========== */\n[data-toast-theme=\"dark\"] {\n --toast-bg: #1a1a1a;\n --toast-text: #f5f5f5;\n --toast-shadow: 0 4px 6px rgba(0, 0, 0, 0.4);\n\n --toast-success-bg: #1e7e34;\n --toast-success-text: #e8f5e9;\n\n --toast-error-bg: #a71930;\n --toast-error-text: #ffebee;\n\n --toast-warning-bg: #997404;\n --toast-warning-text: #fff3e0;\n\n --toast-info-bg: #0c5460;\n --toast-info-text: #e0f2f1;\n}\n\n/* ========== THEME: HIGH-CONTRAST (Accessibility) ========== */\n[data-toast-theme=\"high-contrast\"] {\n --toast-bg: #000000;\n --toast-text: #ffff00;\n --toast-border-radius: 0px;\n --toast-shadow: 0 0 0 3px #ffff00;\n\n --toast-success-bg: #00ff00;\n --toast-success-text: #000000;\n\n --toast-error-bg: #ff0000;\n --toast-error-text: #ffffff;\n\n --toast-warning-bg: #ffff00;\n --toast-warning-text: #000000;\n\n --toast-info-bg: #00ffff;\n --toast-info-text: #000000;\n}\n\n/* ========== THEME: COMPACT ========== */\n[data-toast-theme=\"compact\"] {\n --toast-padding: 8px 12px;\n --toast-min-width: 200px;\n --toast-max-width: 300px;\n --toast-gap: 6px;\n --toast-offset: 6px;\n --toast-border-radius: 6px;\n}\n\n/* ========== THEME: SPACIOUS ========== */\n[data-toast-theme=\"spacious\"] {\n --toast-padding: 16px 20px;\n --toast-min-width: 300px;\n --toast-max-width: 500px;\n --toast-gap: 15px;\n --toast-offset: 15px;\n --toast-border-radius: 12px;\n}\n\n/* ========== THEME: GLASSMORPHISM ========== */\n[data-toast-theme=\"glass\"] {\n --toast-bg: rgba(255, 255, 255, 0.1);\n --toast-text: #ffffff;\n --toast-shadow: 0 8px 32px rgba(31, 38, 135, 0.37);\n --toast-border-radius: 10px;\n\n --toast-success-bg: rgba(40, 167, 69, 0.2);\n --toast-success-text: #ffffff;\n\n --toast-error-bg: rgba(220, 53, 69, 0.2);\n --toast-error-text: #ffffff;\n\n --toast-warning-bg: rgba(255, 193, 7, 0.2);\n --toast-warning-text: #ffffff;\n\n --toast-info-bg: rgba(23, 162, 184, 0.2);\n --toast-info-text: #ffffff;\n}\n\n/* ========== CONTAINER BASE ========== */\n.toast-container-base {\n position: fixed;\n z-index: var(--toast-z-index, 9999);\n pointer-events: none;\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-direction: column;\n overflow: hidden;\n inset: auto 10px 10px auto;\n contain: layout style;\n}\n\n/* ========== POSITIONING CLASSES ========== */\n.toast-position-bottom-right,\n.toast-position-bottom {\n top: auto;\n right: var(--toast-offset, 10px);\n bottom: var(--toast-offset, 10px);\n left: auto;\n transform: none;\n}\n\n.toast-position-bottom-left {\n top: auto;\n right: auto;\n bottom: var(--toast-offset, 10px);\n left: var(--toast-offset, 10px);\n transform: none;\n}\n\n.toast-position-top-right {\n top: var(--toast-offset, 10px);\n right: var(--toast-offset, 10px);\n bottom: auto;\n left: auto;\n transform: none;\n}\n\n.toast-position-top-left {\n top: var(--toast-offset, 10px);\n right: auto;\n bottom: auto;\n left: var(--toast-offset, 10px);\n transform: none;\n}\n\n.toast-position-top-center,\n.toast-position-top {\n top: var(--toast-offset, 10px);\n right: auto;\n bottom: auto;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.toast-position-bottom-center {\n top: auto;\n right: auto;\n bottom: var(--toast-offset, 10px);\n left: 50%;\n transform: translateX(-50%);\n}\n\n.toast-position-left-center {\n top: 50%;\n right: auto;\n bottom: auto;\n left: var(--toast-offset, 10px);\n transform: translateY(-50%);\n}\n\n.toast-position-right-center {\n top: 50%;\n right: var(--toast-offset, 10px);\n bottom: auto;\n left: auto;\n transform: translateY(-50%);\n}\n\n.toast-position-center {\n top: 50%;\n right: auto;\n bottom: auto;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.toast-position-top-full-width {\n top: var(--toast-offset, 10px);\n right: var(--toast-offset, 10px);\n bottom: auto;\n left: var(--toast-offset, 10px);\n max-width: 100vw;\n transform: none;\n}\n\n.toast-position-bottom-full-width {\n top: auto;\n right: var(--toast-offset, 10px);\n bottom: var(--toast-offset, 10px);\n left: var(--toast-offset, 10px);\n max-width: 100vw;\n transform: none;\n}\n\n/* ========== WRAPPER STRUCTURE ========== */\n.toast-outer-wrapper {\n position: relative;\n display: inline-block;\n overflow: visible;\n margin-bottom: var(--toast-gap, 10px);\n z-index: 0;\n width: 100%;\n pointer-events: auto;\n}\n\n.toast-inner-wrapper {\n position: relative;\n overflow: hidden;\n z-index: 1;\n}\n\n/* ========== TOAST BASE ========== */\n.toast {\n padding: var(--toast-padding, 12px 16px);\n margin-bottom: var(--toast-gap, 10px);\n border-radius: var(--toast-border-radius, 50px);\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: space-between;\n box-shadow: var(--toast-shadow, 0 4px 6px rgba(0, 0, 0, 0.1));\n min-width: var(--toast-min-width, 250px);\n max-width: var(--toast-max-width, 400px);\n opacity: 0;\n position: relative;\n cursor: default;\n box-sizing: border-box;\n user-select: text;\n pointer-events: auto;\n contain: layout style;\n will-change: transform, opacity;\n transition: opacity var(--toast-transition-duration, 0.4s) var(--toast-transition-timing, ease),\n transform var(--toast-transition-duration, 0.4s) var(--toast-transition-timing, ease);\n transform: translateY(20px);\n z-index: var(--toast-z-index, 9999);\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n background: var(--toast-bg, #ffffff);\n color: var(--toast-text, #1a1a1a);\n}\n\n/* ========== TOAST TYPE VARIANTS ========== */\n.toast-info {\n background: var(--toast-info-bg, #17a2b8);\n color: var(--toast-info-text, #ffffff);\n}\n\n.toast-success {\n background: var(--toast-success-bg, #28a745);\n color: var(--toast-success-text, #ffffff);\n}\n\n.toast-error {\n background: var(--toast-error-bg, #dc3545);\n color: var(--toast-error-text, #ffffff);\n}\n\n.toast-warning {\n background: var(--toast-warning-bg, #ffc107);\n color: var(--toast-warning-text, #000000);\n}\n\n/* ========== TOAST MESSAGE ========== */\n.toast-message {\n flex: 1;\n display: block;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.4;\n word-break: break-word;\n white-space: normal;\n overflow: hidden;\n text-overflow: ellipsis;\n user-select: text;\n}\n\n.toast-message.is-truncated {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 3;\n}\n\n/* ========== LOADER STYLES ========== */\n.toast-loader {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n}\n\n.toast-loader-circle {\n opacity: 0.85;\n stroke-dasharray: 90;\n stroke-dashoffset: 60;\n transform-origin: center;\n animation: toast-spinner 1s linear infinite;\n}\n\n.toast-loader-label {\n font-size: 13px;\n}\n\n.toast-message-spacer {\n display: inline-block;\n width: 8px;\n}\n\n/* ========== CTA & BUTTONS ========== */\n.toast-cta {\n margin-left: 10px;\n padding: 6px 10px;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 600;\n line-height: 1;\n border: 1px solid rgba(255, 255, 255, 0.3);\n background: rgba(0, 0, 0, 0.15);\n color: inherit;\n cursor: pointer;\n white-space: nowrap;\n flex-shrink: 0;\n text-decoration: none;\n transition: background 0.2s ease;\n}\n\n.toast-cta:hover {\n background: rgba(0, 0, 0, 0.25);\n}\n\n.toast-undo-btn {\n margin-left: 10px;\n padding: 5px 10px;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 700;\n line-height: 1;\n border: 1px solid rgba(255, 255, 255, 0.3);\n background: rgba(255, 255, 255, 0.18);\n color: inherit;\n cursor: pointer;\n white-space: nowrap;\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n transition: background 0.2s ease, transform 0.1s ease;\n}\n\n.toast-undo-btn:hover {\n background: rgba(255, 255, 255, 0.28);\n}\n\n.toast-undo-btn:active {\n transform: scale(0.96);\n}\n\n.toast-close-btn {\n background: none;\n border: none;\n color: inherit;\n font-size: 18px;\n margin-left: 10px;\n cursor: pointer;\n line-height: 1;\n padding: 0 4px;\n transition: opacity 0.2s ease;\n}\n\n.toast-close-btn:hover {\n opacity: 0.7;\n}\n\n/* ========== PROGRESS BAR ========== */\n.toast-progress-bar {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 4px;\n border-radius: 2px;\n background: currentColor;\n opacity: 0.8;\n will-change: width;\n transition: width var(--toast-transition-duration, 0.4s) linear;\n}\n\n.toast-progress-top {\n top: 0;\n bottom: auto;\n}\n\n/* ========== COUNT BADGE ========== */\n.toast-count-badge {\n position: absolute;\n top: 6px;\n right: 6px;\n background-color: #f44336;\n color: #ffffff;\n border-radius: 50%;\n min-width: 20px;\n height: 20px;\n font-size: 12px;\n font-weight: 600;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 2px solid #ffffff;\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);\n z-index: 2;\n pointer-events: none;\n transition: transform 150ms ease;\n}\n\n/* ========== EMERGENCY TOAST (Fallback) ========== */\n.toast-emergency {\n background: #333333;\n color: white;\n padding: 10px 15px;\n position: fixed;\n z-index: var(--toast-emergency-z-index, 10099);\n border-radius: 3px;\n max-width: 250px;\n word-wrap: break-word;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);\n}\n\n.toast-emergency-message {\n display: inline-block;\n}\n\n.toast-emergency-close {\n float: right;\n margin-left: 10px;\n font-weight: bold;\n cursor: pointer;\n}\n\n/* ========== ANIMATIONS ========== */\n@keyframes toast-spinner {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n@keyframes toast-entrance {\n from {\n opacity: 0;\n transform: translateY(20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes toast-exit {\n from {\n opacity: 1;\n transform: translateY(0);\n }\n to {\n opacity: 0;\n transform: translateY(20px);\n }\n}\n\n/* ========== ACTIVE STATE ========== */\n.toast.active {\n opacity: 1;\n transform: translateY(0);\n}\n\n/* ========== GLASSMORPHISM SUPPORT ========== */\n[data-toast-theme=\"glass\"] .toast {\n backdrop-filter: blur(4px);\n border: 1px solid rgba(255, 255, 255, 0.18);\n}\n\n/* ========== PINCH & FLICK GESTURES ========== */\n.toast.pinched {\n transform: scale(1.1);\n z-index: 1000;\n}\n\n.toast.flicked {\n transition: transform 200ms ease-out, opacity 200ms ease-out;\n}\n\n@keyframes pinch-expand {\n from {\n transform: scale(1);\n }\n to {\n transform: scale(1.15);\n }\n}\n\n@keyframes pinch-contract {\n from {\n transform: scale(1.15);\n }\n to {\n transform: scale(1);\n }\n}\n\n/* ========== STACKED CARD DECK (CSP MODE & DEFAULT) ========== */\n[data-stacked=\"true\"] .toast-outer-wrapper {\n transition: transform 240ms cubic-bezier(0.16, 1, 0.3, 1), margin 240ms cubic-bezier(0.16, 1, 0.3, 1), opacity 240ms ease;\n}\n\n[data-stacked=\"true\"] .toast-outer-wrapper[data-stacked-depth=\"expanded\"] {\n transform: none;\n margin-top: 0px;\n margin-bottom: 10px;\n opacity: 1;\n pointer-events: auto;\n}\n\n[data-stacked=\"true\"] .toast-outer-wrapper[data-stacked-depth=\"0\"] {\n transform: scale(1);\n margin-top: 0px;\n margin-bottom: 0px;\n opacity: 1;\n z-index: 30;\n pointer-events: auto;\n}\n\n[data-stacked=\"true\"] .toast-outer-wrapper[data-stacked-depth=\"1\"] {\n transform: scale(0.95) translateY(-10px);\n margin-top: -55px;\n margin-bottom: 0px;\n opacity: 0.9;\n z-index: 20;\n pointer-events: auto;\n}\n\n[data-stacked=\"true\"][id*=\"top\"] .toast-outer-wrapper[data-stacked-depth=\"1\"] {\n transform: scale(0.95) translateY(10px);\n}\n\n[data-stacked=\"true\"] .toast-outer-wrapper[data-stacked-depth=\"2\"] {\n transform: scale(0.90) translateY(-20px);\n margin-top: -55px;\n margin-bottom: 0px;\n opacity: 0.75;\n z-index: 10;\n pointer-events: auto;\n}\n\n[data-stacked=\"true\"][id*=\"top\"] .toast-outer-wrapper[data-stacked-depth=\"2\"] {\n transform: scale(0.90) translateY(20px);\n}\n\n[data-stacked=\"true\"] .toast-outer-wrapper[data-stacked-depth=\"overflow\"] {\n transform: scale(0.85) translateY(-30px);\n margin-top: -55px;\n margin-bottom: 0px;\n opacity: 0;\n z-index: 1;\n pointer-events: none;\n}\n\n[data-stacked=\"true\"][id*=\"top\"] .toast-outer-wrapper[data-stacked-depth=\"overflow\"] {\n transform: scale(0.85) translateY(30px);\n}\n\n/* ========== ACCESSIBILITY: REDUCED MOTION ========== */\n@media (prefers-reduced-motion: reduce) {\n .toast,\n .toast-progress-bar,\n .toast-loader-circle,\n .toast-count-badge,\n .toast-cta,\n .toast-undo-btn,\n .toast-close-btn,\n .toast-outer-wrapper {\n transition: none !important;\n animation: none !important;\n }\n}\n\n[data-toast-reduced-motion=\"always\"] .toast,\n[data-toast-reduced-motion=\"always\"] .toast-progress-bar,\n[data-toast-reduced-motion=\"always\"] .toast-loader-circle,\n[data-toast-reduced-motion=\"always\"] .toast-count-badge,\n[data-toast-reduced-motion=\"always\"] .toast-cta,\n[data-toast-reduced-motion=\"always\"] .toast-undo-btn,\n[data-toast-reduced-motion=\"always\"] .toast-close-btn,\n[data-toast-reduced-motion=\"always\"] .toast-outer-wrapper {\n transition: none !important;\n animation: none !important;\n}\n\n\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/*\n * Customizable Toast Notifications - External CSS Mode\n * Import this file and call `setConfig({ disableInlineStyles: true })` for\n * stricter Content Security Policy deployments.\n *\n * CSS Variables: Fully customizable via :root or [data-toast-theme]\n * Built-in Themes: light (default), dark, high-contrast, compact, spacious, glass\n */\n\n/* ========== ROOT VARIABLES (Customization Foundation) ========== */\n:root {\n /* Colors */\n --toast-bg: #ffffff;\n --toast-text: #1a1a1a;\n --toast-border-radius: 50px;\n --toast-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n --toast-padding: 12px 16px;\n --toast-min-width: 250px;\n --toast-max-width: 400px;\n\n /* Animations */\n --toast-transition-duration: 0.4s;\n --toast-transition-timing: ease;\n\n /* Type-specific Colors */\n --toast-success-bg: #28a745;\n --toast-success-text: #ffffff;\n\n --toast-error-bg: #dc3545;\n --toast-error-text: #ffffff;\n\n --toast-warning-bg: #ffc107;\n --toast-warning-text: #000000;\n\n --toast-info-bg: #17a2b8;\n --toast-info-text: #ffffff;\n\n /* Z-index Stack */\n --toast-z-index: 9999;\n --toast-emergency-z-index: 10099;\n\n /* Spacing */\n --toast-gap: 10px;\n --toast-offset: 10px;\n}\n\n/* ========== THEME: LIGHT (Default) ========== */\n[data-toast-theme=\"light\"] {\n --toast-bg: #ffffff;\n --toast-text: #1a1a1a;\n --toast-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n}\n\n/* ========== THEME: DARK ========== */\n[data-toast-theme=\"dark\"] {\n --toast-bg: #1a1a1a;\n --toast-text: #f5f5f5;\n --toast-shadow: 0 4px 6px rgba(0, 0, 0, 0.4);\n\n --toast-success-bg: #1e7e34;\n --toast-success-text: #e8f5e9;\n\n --toast-error-bg: #a71930;\n --toast-error-text: #ffebee;\n\n --toast-warning-bg: #997404;\n --toast-warning-text: #fff3e0;\n\n --toast-info-bg: #0c5460;\n --toast-info-text: #e0f2f1;\n}\n\n/* ========== THEME: HIGH-CONTRAST (Accessibility) ========== */\n[data-toast-theme=\"high-contrast\"] {\n --toast-bg: #000000;\n --toast-text: #ffff00;\n --toast-border-radius: 0px;\n --toast-shadow: 0 0 0 3px #ffff00;\n\n --toast-success-bg: #00ff00;\n --toast-success-text: #000000;\n\n --toast-error-bg: #ff0000;\n --toast-error-text: #ffffff;\n\n --toast-warning-bg: #ffff00;\n --toast-warning-text: #000000;\n\n --toast-info-bg: #00ffff;\n --toast-info-text: #000000;\n}\n\n/* ========== THEME: COMPACT ========== */\n[data-toast-theme=\"compact\"] {\n --toast-padding: 8px 12px;\n --toast-min-width: 200px;\n --toast-max-width: 300px;\n --toast-gap: 6px;\n --toast-offset: 6px;\n --toast-border-radius: 6px;\n}\n\n/* ========== THEME: SPACIOUS ========== */\n[data-toast-theme=\"spacious\"] {\n --toast-padding: 16px 20px;\n --toast-min-width: 300px;\n --toast-max-width: 500px;\n --toast-gap: 15px;\n --toast-offset: 15px;\n --toast-border-radius: 12px;\n}\n\n/* ========== THEME: GLASSMORPHISM ========== */\n[data-toast-theme=\"glass\"] {\n --toast-bg: rgba(255, 255, 255, 0.1);\n --toast-text: #ffffff;\n --toast-shadow: 0 8px 32px rgba(31, 38, 135, 0.37);\n --toast-border-radius: 10px;\n\n --toast-success-bg: rgba(40, 167, 69, 0.2);\n --toast-success-text: #ffffff;\n\n --toast-error-bg: rgba(220, 53, 69, 0.2);\n --toast-error-text: #ffffff;\n\n --toast-warning-bg: rgba(255, 193, 7, 0.2);\n --toast-warning-text: #ffffff;\n\n --toast-info-bg: rgba(23, 162, 184, 0.2);\n --toast-info-text: #ffffff;\n}\n\n/* ========== CONTAINER BASE ========== */\n.toast-container-base {\n position: fixed;\n z-index: var(--toast-z-index, 9999);\n pointer-events: none;\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-direction: column;\n overflow: hidden;\n inset: auto 10px 10px auto;\n contain: layout style;\n}\n\n/* ========== POSITIONING CLASSES ========== */\n.toast-position-bottom-right,\n.toast-position-bottom {\n top: auto;\n right: var(--toast-offset, 10px);\n bottom: var(--toast-offset, 10px);\n left: auto;\n transform: none;\n}\n\n.toast-position-bottom-left {\n top: auto;\n right: auto;\n bottom: var(--toast-offset, 10px);\n left: var(--toast-offset, 10px);\n transform: none;\n}\n\n.toast-position-top-right {\n top: var(--toast-offset, 10px);\n right: var(--toast-offset, 10px);\n bottom: auto;\n left: auto;\n transform: none;\n}\n\n.toast-position-top-left {\n top: var(--toast-offset, 10px);\n right: auto;\n bottom: auto;\n left: var(--toast-offset, 10px);\n transform: none;\n}\n\n.toast-position-top-center,\n.toast-position-center-top,\n.toast-position-top {\n top: var(--toast-offset, 10px);\n right: auto;\n bottom: auto;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.toast-position-bottom-center,\n.toast-position-center-bottom {\n top: auto;\n right: auto;\n bottom: var(--toast-offset, 10px);\n left: 50%;\n transform: translateX(-50%);\n}\n\n.toast-position-left-center,\n.toast-position-center-left {\n top: 50%;\n right: auto;\n bottom: auto;\n left: var(--toast-offset, 10px);\n transform: translateY(-50%);\n}\n\n.toast-position-right-center,\n.toast-position-center-right {\n top: 50%;\n right: var(--toast-offset, 10px);\n bottom: auto;\n left: auto;\n transform: translateY(-50%);\n}\n\n.toast-position-center {\n top: 50%;\n right: auto;\n bottom: auto;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.toast-position-top-full-width {\n top: var(--toast-offset, 10px);\n right: var(--toast-offset, 10px);\n bottom: auto;\n left: var(--toast-offset, 10px);\n max-width: 100vw;\n transform: none;\n}\n\n.toast-position-bottom-full-width {\n top: auto;\n right: var(--toast-offset, 10px);\n bottom: var(--toast-offset, 10px);\n left: var(--toast-offset, 10px);\n max-width: 100vw;\n transform: none;\n}\n\n/* ========== WRAPPER STRUCTURE ========== */\n.toast-outer-wrapper {\n position: relative;\n display: inline-block;\n overflow: visible;\n margin-bottom: var(--toast-gap, 10px);\n z-index: 0;\n width: 100%;\n pointer-events: auto;\n}\n\n.toast-inner-wrapper {\n position: relative;\n overflow: hidden;\n z-index: 1;\n}\n\n/* ========== TOAST BASE ========== */\n.toast {\n padding: var(--toast-padding, 12px 16px);\n margin-bottom: var(--toast-gap, 10px);\n border-radius: var(--toast-border-radius, 50px);\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: space-between;\n box-shadow: var(--toast-shadow, 0 4px 6px rgba(0, 0, 0, 0.1));\n min-width: var(--toast-min-width, 250px);\n max-width: var(--toast-max-width, 400px);\n opacity: 0;\n position: relative;\n cursor: default;\n box-sizing: border-box;\n user-select: text;\n pointer-events: auto;\n contain: layout style;\n will-change: transform, opacity;\n transition: opacity var(--toast-transition-duration, 0.4s) var(--toast-transition-timing, ease),\n transform var(--toast-transition-duration, 0.4s) var(--toast-transition-timing, ease);\n transform: translateY(20px);\n z-index: var(--toast-z-index, 9999);\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n background: var(--toast-bg, #ffffff);\n color: var(--toast-text, #1a1a1a);\n}\n\n/* ========== TOAST TYPE VARIANTS ========== */\n.toast-info {\n background: var(--toast-info-bg, #17a2b8);\n color: var(--toast-info-text, #ffffff);\n}\n\n.toast-success {\n background: var(--toast-success-bg, #28a745);\n color: var(--toast-success-text, #ffffff);\n}\n\n.toast-error {\n background: var(--toast-error-bg, #dc3545);\n color: var(--toast-error-text, #ffffff);\n}\n\n.toast-warning {\n background: var(--toast-warning-bg, #ffc107);\n color: var(--toast-warning-text, #000000);\n}\n\n/* ========== TOAST MESSAGE ========== */\n.toast-message {\n flex: 1;\n display: block;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.4;\n word-break: break-word;\n white-space: normal;\n overflow: hidden;\n text-overflow: ellipsis;\n user-select: text;\n}\n\n.toast-message.is-truncated {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 3;\n}\n\n/* ========== LOADER STYLES ========== */\n.toast-loader {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n}\n\n.toast-loader-circle {\n opacity: 0.85;\n stroke-dasharray: 90;\n stroke-dashoffset: 60;\n transform-origin: center;\n animation: toast-spinner 1s linear infinite;\n}\n\n.toast-loader-label {\n font-size: 13px;\n}\n\n.toast-message-spacer {\n display: inline-block;\n width: 8px;\n}\n\n/* ========== CTA & BUTTONS ========== */\n.toast-cta {\n margin-left: 10px;\n padding: 6px 10px;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 600;\n line-height: 1;\n border: 1px solid rgba(255, 255, 255, 0.3);\n background: rgba(0, 0, 0, 0.15);\n color: inherit;\n cursor: pointer;\n white-space: nowrap;\n flex-shrink: 0;\n text-decoration: none;\n transition: background 0.2s ease;\n}\n\n.toast-cta + .toast-cta {\n margin-left: 6px;\n}\n\n.toast-cta:hover {\n background: rgba(0, 0, 0, 0.25);\n}\n\n.toast-undo-btn {\n margin-left: 10px;\n padding: 5px 10px;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 700;\n line-height: 1;\n border: 1px solid rgba(255, 255, 255, 0.3);\n background: rgba(255, 255, 255, 0.18);\n color: inherit;\n cursor: pointer;\n white-space: nowrap;\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n transition: background 0.2s ease, transform 0.1s ease;\n}\n\n.toast-undo-btn:hover {\n background: rgba(255, 255, 255, 0.28);\n}\n\n.toast-undo-btn:active {\n transform: scale(0.96);\n}\n\n.toast-close-btn {\n background: none;\n border: none;\n color: inherit;\n font-size: 18px;\n margin-left: 10px;\n cursor: pointer;\n line-height: 1;\n padding: 0 4px;\n transition: opacity 0.2s ease;\n}\n\n.toast-close-btn:hover {\n opacity: 0.7;\n}\n\n/* ========== PROGRESS BAR ========== */\n.toast-progress-bar {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 4px;\n border-radius: 2px;\n background: currentColor;\n opacity: 0.8;\n will-change: width;\n transition: width var(--toast-transition-duration, 0.4s) linear;\n}\n\n.toast-progress-top {\n top: 0;\n bottom: auto;\n}\n\n/* ========== COUNT BADGE ========== */\n.toast-count-badge {\n position: absolute;\n top: 6px;\n right: 6px;\n background-color: #f44336;\n color: #ffffff;\n border-radius: 50%;\n min-width: 20px;\n height: 20px;\n font-size: 12px;\n font-weight: 600;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 2px solid #ffffff;\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);\n z-index: 2;\n pointer-events: none;\n transition: transform 150ms ease;\n}\n\n/* ========== EMERGENCY TOAST (Fallback) ========== */\n.toast-emergency {\n background: #333333;\n color: white;\n padding: 10px 15px;\n position: fixed;\n z-index: var(--toast-emergency-z-index, 10099);\n border-radius: 3px;\n max-width: 250px;\n word-wrap: break-word;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);\n}\n\n.toast-emergency-message {\n display: inline-block;\n}\n\n.toast-emergency-close {\n float: right;\n margin-left: 10px;\n font-weight: bold;\n cursor: pointer;\n}\n\n/* ========== ANIMATIONS ========== */\n@keyframes toast-spinner {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n@keyframes toast-entrance {\n from {\n opacity: 0;\n transform: translateY(20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes toast-exit {\n from {\n opacity: 1;\n transform: translateY(0);\n }\n to {\n opacity: 0;\n transform: translateY(20px);\n }\n}\n\n/* ========== POSITION-SPECIFIC INITIAL TRANSFORMS ========== */\n[class*=\"toast-position-top\"] .toast:not(.active) {\n transform: translateY(-20px);\n}\n\n/* ========== ACTIVE STATE ========== */\n.toast.active {\n opacity: 1;\n transform: translateY(0);\n}\n\n/* ========== CUSTOM ANIMATION UTILITIES ========== */\n@keyframes toast-bounce-gentle {\n 0%, 100% {\n transform: translateY(0);\n }\n 50% {\n transform: translateY(-8px);\n }\n}\n\n.custom-animation-bounce {\n animation: toast-bounce-gentle 0.6s ease-in-out;\n}\n\n/* ========== GLASSMORPHISM SUPPORT ========== */\n[data-toast-theme=\"glass\"] .toast {\n backdrop-filter: blur(8px);\n -webkit-backdrop-filter: blur(8px);\n border: 1px solid rgba(255, 255, 255, 0.25);\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);\n}\n\n/* ========== HIGH-CONTRAST FOCUS ACCESSIBILITY ========== */\n[data-toast-theme=\"high-contrast\"] button:focus-visible,\n[data-toast-theme=\"high-contrast\"] a:focus-visible {\n outline: 3px solid #ffff00;\n outline-offset: 2px;\n}\n\n/* ========== PINCH & FLICK GESTURES ========== */\n.toast.pinched {\n transform: scale(1.1);\n z-index: 1000;\n}\n\n.toast.flicked {\n transition: transform 200ms ease-out, opacity 200ms ease-out;\n}\n\n@keyframes pinch-expand {\n from {\n transform: scale(1);\n }\n to {\n transform: scale(1.15);\n }\n}\n\n@keyframes pinch-contract {\n from {\n transform: scale(1.15);\n }\n to {\n transform: scale(1);\n }\n}\n\n/* ========== STACKED CARD DECK (CSP MODE & DEFAULT) ========== */\n[data-stacked=\"true\"] .toast-outer-wrapper {\n transition: transform 240ms cubic-bezier(0.16, 1, 0.3, 1), margin 240ms cubic-bezier(0.16, 1, 0.3, 1), opacity 240ms ease;\n}\n\n[data-stacked=\"true\"] .toast-outer-wrapper[data-stacked-depth=\"expanded\"] {\n transform: none;\n margin-top: 0px;\n margin-bottom: 10px;\n opacity: 1;\n pointer-events: auto;\n}\n\n[data-stacked=\"true\"] .toast-outer-wrapper[data-stacked-depth=\"0\"] {\n transform: scale(1);\n margin-top: 0px;\n margin-bottom: 0px;\n opacity: 1;\n z-index: 30;\n pointer-events: auto;\n}\n\n[data-stacked=\"true\"] .toast-outer-wrapper[data-stacked-depth=\"1\"] {\n transform: scale(0.95) translateY(-10px);\n margin-top: -55px;\n margin-bottom: 0px;\n opacity: 0.9;\n z-index: 20;\n pointer-events: auto;\n}\n\n[data-stacked=\"true\"][id*=\"top\"] .toast-outer-wrapper[data-stacked-depth=\"1\"] {\n transform: scale(0.95) translateY(10px);\n}\n\n[data-stacked=\"true\"] .toast-outer-wrapper[data-stacked-depth=\"2\"] {\n transform: scale(0.90) translateY(-20px);\n margin-top: -55px;\n margin-bottom: 0px;\n opacity: 0.75;\n z-index: 10;\n pointer-events: auto;\n}\n\n[data-stacked=\"true\"][id*=\"top\"] .toast-outer-wrapper[data-stacked-depth=\"2\"] {\n transform: scale(0.90) translateY(20px);\n}\n\n[data-stacked=\"true\"] .toast-outer-wrapper[data-stacked-depth=\"overflow\"] {\n transform: scale(0.85) translateY(-30px);\n margin-top: -55px;\n margin-bottom: 0px;\n opacity: 0;\n z-index: 1;\n pointer-events: none;\n}\n\n/* ========== STATUS ICONS & HOVER FREEZE SHIMMER ========== */\n.toast-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n margin-right: 8px;\n margin-inline-end: 8px;\n line-height: 1;\n}\n\n[dir=\"rtl\"] .toast-icon,\n.toast[style*=\"direction: rtl\"] .toast-icon {\n margin-right: 0;\n margin-left: 8px;\n}\n\n.toast-icon svg {\n display: block;\n}\n\n.toast.toast-paused {\n box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.3), 0 8px 16px rgba(0, 0, 0, 0.2) !important;\n}\n\n.toast.toast-paused .toast-progress-bar {\n opacity: 1 !important;\n filter: brightness(1.2);\n}\n\n/* ========== ACCESSIBILITY: REDUCED MOTION ========== */\n@media (prefers-reduced-motion: reduce) {\n .toast,\n .toast-progress-bar,\n .toast-loader-circle,\n .toast-count-badge,\n .toast-cta,\n .toast-undo-btn,\n .toast-close-btn,\n .toast-outer-wrapper {\n transition: none !important;\n animation: none !important;\n }\n}\n\n[data-toast-reduced-motion=\"always\"] .toast,\n[data-toast-reduced-motion=\"always\"] .toast-progress-bar,\n[data-toast-reduced-motion=\"always\"] .toast-loader-circle,\n[data-toast-reduced-motion=\"always\"] .toast-count-badge,\n[data-toast-reduced-motion=\"always\"] .toast-cta,\n[data-toast-reduced-motion=\"always\"] .toast-undo-btn,\n[data-toast-reduced-motion=\"always\"] .toast-close-btn,\n[data-toast-reduced-motion=\"always\"] .toast-outer-wrapper {\n transition: none !important;\n animation: none !important;\n}\n\n\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/dist/index.d.ts CHANGED
@@ -58,9 +58,16 @@ type ToastGlobalConfig$1 = {
58
58
  swipeToDismiss: boolean;
59
59
  sound: boolean;
60
60
  soundPreset?: "modern" | "retro" | "futuristic" | "subtle" | "bell" | string;
61
+ pauseOnHover?: boolean;
61
62
  syncTabs: boolean;
62
63
  aiPrioritization: boolean;
63
- priorityScorer?: ((context: any) => number | {
64
+ debug?: boolean;
65
+ priorityScorer?: ((context: {
66
+ type: string;
67
+ message: string;
68
+ duration?: number;
69
+ options?: Record<string, unknown>;
70
+ }) => number | {
64
71
  score: number;
65
72
  }) | null;
66
73
  onMetrics?: ((metrics: ToastMetrics$1) => void) | null;
@@ -81,6 +88,13 @@ declare function updateToastByKey(key: string, newOptions?: Partial<ToastOptions
81
88
 
82
89
  declare function resetContainerRegistry(): void;
83
90
 
91
+ /**
92
+ * Lazily initialize and return a shared AudioContext.
93
+ * Returns null in non-browser or unsupported environments.
94
+ * @param {boolean} [forceResume=true] - Whether to attempt resuming suspended AudioContext
95
+ * @returns {AudioContext | null}
96
+ */
97
+ declare function getAudioContext(forceResume?: boolean): AudioContext | null;
84
98
  /**
85
99
  * Returns a shared AnalyserNode for real-time waveform visualization.
86
100
  * @returns {AnalyserNode | null}
@@ -212,15 +226,19 @@ declare function resetToastBroadcaster(): void;
212
226
  * @typedef {Object} ToastSyncMessage
213
227
  * @property {string} type - Message type: 'create', 'update', 'dismiss', 'sync-request', 'sync-response'
214
228
  * @property {string} toastId - Unique toast identifier
215
- * @property {Object} payload - Message-specific data
229
+ * @property {Record<string, unknown>} payload - Message-specific data
216
230
  * @property {number} timestamp - Message timestamp
217
231
  * @property {string} tabId - Originating tab ID
218
232
  */
219
233
  declare class ToastBroadcaster {
220
- channel: BroadcastChannel;
234
+ /** @type {BroadcastChannel | null} */
235
+ channel: BroadcastChannel | null;
221
236
  tabId: string;
222
237
  isLeadTab: boolean;
223
- listeners: Map<any, any>;
238
+ /** @type {ReturnType<typeof setTimeout> | null} */
239
+ leaderTimer: ReturnType<typeof setTimeout> | null;
240
+ /** @type {Map<string, Array<(data: Record<string, unknown>) => void>>} */
241
+ listeners: Map<string, Array<(data: Record<string, unknown>) => void>>;
224
242
  supportsBroadcastChannel: boolean;
225
243
  /**
226
244
  * Generate unique tab identifier with high cross-tab entropy.
@@ -242,14 +260,13 @@ declare class ToastBroadcaster {
242
260
  * @private
243
261
  */
244
262
  private _becomeLeadIfNeeded;
245
- leaderTimer: any;
246
263
  /**
247
264
  * Broadcast a toast event to other tabs
248
265
  * @param {string} type - Event type
249
266
  * @param {string} [toastId=''] - Toast ID
250
- * @param {Object} [payload={}] - Event payload
267
+ * @param {Record<string, unknown>} [payload={}] - Event payload
251
268
  */
252
- broadcast(type: string, toastId?: string, payload?: any): void;
269
+ broadcast(type: string, toastId?: string, payload?: Record<string, unknown>): void;
253
270
  /**
254
271
  * Handle incoming message from other tab
255
272
  * @private
@@ -324,7 +341,7 @@ type ToastScoringContext = {
324
341
  /**
325
342
  * - Full toast options
326
343
  */
327
- options: any;
344
+ options: Record<string, unknown>;
328
345
  };
329
346
  type ScorerResult = {
330
347
  /**
@@ -334,7 +351,7 @@ type ScorerResult = {
334
351
  /**
335
352
  * - Score breakdown by factor
336
353
  */
337
- breakdown: any;
354
+ breakdown: Record<string, number>;
338
355
  /**
339
356
  * - Detected keywords affecting score
340
357
  */
@@ -360,17 +377,17 @@ declare function isFlick(velocity: number, distance: number, velocityThreshold?:
360
377
  /**
361
378
  * Detect pinch gesture (two-finger distance change)
362
379
  * @param {GestureState} state
363
- * @param {number} sensitivityThreshold - Minimum distance change for pinch (default 20px)
364
- * @returns {Object} - Pinch info { isPinch, scale, direction }
380
+ * @param {number} [sensitivityThreshold=20] - Minimum distance change for pinch (default 20px)
381
+ * @returns {PinchResult} - Pinch info { isPinch, scale, direction, distanceChange }
365
382
  */
366
- declare function detectPinch(state: GestureState, sensitivityThreshold?: number): any;
383
+ declare function detectPinch(state: GestureState, sensitivityThreshold?: number): PinchResult;
367
384
  /**
368
385
  * Create gesture detector function for element
369
386
  * @param {HTMLElement} element
370
- * @param {Object} options
371
- * @returns {Object} - Detector with attach/detach methods
387
+ * @param {GestureDetectorOptions} [options]
388
+ * @returns {GestureDetector} - Detector with attach/detach methods
372
389
  */
373
- declare function createGestureDetector(element: HTMLElement, options?: any): any;
390
+ declare function createGestureDetector(element: HTMLElement, options?: GestureDetectorOptions): GestureDetector;
374
391
  type TouchPoint = {
375
392
  /**
376
393
  * - X coordinate
@@ -411,6 +428,32 @@ type GestureState = {
411
428
  */
412
429
  currentDistance: number;
413
430
  };
431
+ type PinchResult = {
432
+ isPinch: boolean;
433
+ scale: number;
434
+ direction: "none" | "in" | "out";
435
+ distanceChange?: number;
436
+ };
437
+ type SwipeResult = {
438
+ distance: number;
439
+ velocity: number;
440
+ direction: "none" | "left" | "right";
441
+ duration: number;
442
+ };
443
+ type GestureDetectorOptions = {
444
+ onFlick?: ((swipe: SwipeResult) => void);
445
+ onPinch?: ((pinch: PinchResult) => void);
446
+ onSwipe?: ((swipe: SwipeResult) => void);
447
+ flickVelocityThreshold?: number;
448
+ swipeVelocityThreshold?: number;
449
+ swipeDistanceThreshold?: number;
450
+ pinchSensitivity?: number;
451
+ };
452
+ type GestureDetector = {
453
+ attach: () => void;
454
+ detach: () => void;
455
+ getState: () => GestureState | null;
456
+ };
414
457
 
415
458
  /**
416
459
  * Reset the internal monotonic counter (primarily for test isolation)
@@ -534,6 +577,10 @@ type CTAOptions = {
534
577
  rel?: string;
535
578
  ariaLabel?: string;
536
579
  autoClose?: boolean;
580
+ color?: string;
581
+ textColor?: string;
582
+ background?: string;
583
+ backgroundColor?: string;
537
584
  onClick?: (e: MouseEvent) => void | Promise<void>;
538
585
  };
539
586
  type UndoOptions = {
@@ -614,6 +661,7 @@ type ToastOptions = {
614
661
  stacked?: boolean;
615
662
  sound?: boolean | "success" | "error" | "warning" | "info" | "pop" | string;
616
663
  soundPreset?: SoundPreset;
664
+ icon?: boolean | string | HTMLElement | ((options: ToastOptions) => boolean | string | HTMLElement | null | undefined);
617
665
  swipeToDismiss?: boolean;
618
666
  progress?: number;
619
667
  syncTabs?: boolean;
@@ -661,26 +709,129 @@ type ToastGlobalConfig = {
661
709
  soundPreset?: SoundPreset;
662
710
  syncTabs?: boolean;
663
711
  aiPrioritization?: boolean;
664
- priorityScorer?: ((context: any) => number | {
712
+ debug?: boolean;
713
+ priorityScorer?: ((context: {
714
+ type: string;
715
+ message: string;
716
+ duration?: number;
717
+ options?: Record<string, unknown>;
718
+ }) => number | {
665
719
  score: number;
666
720
  }) | null;
667
721
  onMetrics?: ((metrics: ToastMetrics) => void) | null;
668
722
  };
669
723
  type ToastHandle = {
724
+ /**
725
+ * - The unique identifier/key of the toast notification.
726
+ */
727
+ id?: string;
670
728
  dismiss: () => Promise<void>;
671
729
  update: (newOptions: Partial<ToastOptions>) => Promise<void>;
672
730
  };
673
731
  type ToastPromiseMessages = {
674
- loading?: string;
675
- success?: string | ((result: unknown) => string);
676
- error?: string | ((error: unknown) => string);
732
+ loading?: string | Partial<ToastOptions>;
733
+ success?: string | Partial<ToastOptions> | ((result: unknown) => string | Partial<ToastOptions>);
734
+ error?: string | Partial<ToastOptions> | ((error: unknown) => string | Partial<ToastOptions>);
677
735
  };
678
736
  /**
679
737
  * Creates and displays a toast notification.
680
- * @param {ToastOptions} [options]
738
+ * Supports string shorthand: `createToast("Message")` or full options `createToast({ message: "..." })`.
739
+ * Also provides ergonomic shorthand methods: `createToast.success(...)`, `createToast.error(...)`, etc.
740
+ * @param {string | ToastOptions} [messageOrOptions]
741
+ * @param {Partial<ToastOptions>} [maybeOptions]
681
742
  * @returns {Promise<ToastHandle>}
682
743
  */
683
- declare function createToastWithPriority(options?: ToastOptions): Promise<ToastHandle>;
744
+ declare function createToastWithPriority(messageOrOptions?: string | ToastOptions, maybeOptions?: Partial<ToastOptions>): Promise<ToastHandle>;
745
+ declare namespace createToastWithPriority {
746
+ /**
747
+ * Displays a success toast notification.
748
+ * @param {string | ToastOptions} [messageOrOptions]
749
+ * @param {Partial<ToastOptions>} [options]
750
+ * @returns {Promise<ToastHandle>}
751
+ */
752
+ export function success(messageOrOptions?: string | ToastOptions, options?: Partial<ToastOptions>): Promise<ToastHandle>;
753
+ /**
754
+ * Displays an error toast notification.
755
+ * @param {string | ToastOptions} [messageOrOptions]
756
+ * @param {Partial<ToastOptions>} [options]
757
+ * @returns {Promise<ToastHandle>}
758
+ */
759
+ export function error(messageOrOptions?: string | ToastOptions, options?: Partial<ToastOptions>): Promise<ToastHandle>;
760
+ /**
761
+ * Displays a warning toast notification.
762
+ * @param {string | ToastOptions} [messageOrOptions]
763
+ * @param {Partial<ToastOptions>} [options]
764
+ * @returns {Promise<ToastHandle>}
765
+ */
766
+ export function warning(messageOrOptions?: string | ToastOptions, options?: Partial<ToastOptions>): Promise<ToastHandle>;
767
+ /**
768
+ * Displays an informational toast notification.
769
+ * @param {string | ToastOptions} [messageOrOptions]
770
+ * @param {Partial<ToastOptions>} [options]
771
+ * @returns {Promise<ToastHandle>}
772
+ */
773
+ export function info(messageOrOptions?: string | ToastOptions, options?: Partial<ToastOptions>): Promise<ToastHandle>;
774
+ /**
775
+ * Displays a persistent loading toast with an animated spinner.
776
+ * @param {string | ToastOptions} [messageOrOptions]
777
+ * @param {Partial<ToastOptions>} [options]
778
+ * @returns {Promise<ToastHandle>}
779
+ */
780
+ export function loading(messageOrOptions?: string | ToastOptions, options?: Partial<ToastOptions>): Promise<ToastHandle>;
781
+ /**
782
+ * Displays a custom styled HTML toast notification.
783
+ * @param {string | ToastOptions} [messageOrOptions]
784
+ * @param {Partial<ToastOptions>} [options]
785
+ * @returns {Promise<ToastHandle>}
786
+ */
787
+ export function custom(messageOrOptions?: string | ToastOptions, options?: Partial<ToastOptions>): Promise<ToastHandle>;
788
+ export { toastPromise as promise };
789
+ export { dismissToast as dismiss };
790
+ export { noopAll as dismissAll };
791
+ export { noopAll as clear };
792
+ }
793
+ /**
794
+ * Displays a success toast notification.
795
+ * @param {string | ToastOptions} [messageOrOptions]
796
+ * @param {Partial<ToastOptions>} [options]
797
+ * @returns {Promise<ToastHandle>}
798
+ */
799
+ declare function success(messageOrOptions?: string | ToastOptions, options?: Partial<ToastOptions>): Promise<ToastHandle>;
800
+ /**
801
+ * Displays an error toast notification.
802
+ * @param {string | ToastOptions} [messageOrOptions]
803
+ * @param {Partial<ToastOptions>} [options]
804
+ * @returns {Promise<ToastHandle>}
805
+ */
806
+ declare function error(messageOrOptions?: string | ToastOptions, options?: Partial<ToastOptions>): Promise<ToastHandle>;
807
+ /**
808
+ * Displays a warning toast notification.
809
+ * @param {string | ToastOptions} [messageOrOptions]
810
+ * @param {Partial<ToastOptions>} [options]
811
+ * @returns {Promise<ToastHandle>}
812
+ */
813
+ declare function warning(messageOrOptions?: string | ToastOptions, options?: Partial<ToastOptions>): Promise<ToastHandle>;
814
+ /**
815
+ * Displays an informational toast notification.
816
+ * @param {string | ToastOptions} [messageOrOptions]
817
+ * @param {Partial<ToastOptions>} [options]
818
+ * @returns {Promise<ToastHandle>}
819
+ */
820
+ declare function info(messageOrOptions?: string | ToastOptions, options?: Partial<ToastOptions>): Promise<ToastHandle>;
821
+ /**
822
+ * Displays a persistent loading toast with an animated spinner.
823
+ * @param {string | ToastOptions} [messageOrOptions]
824
+ * @param {Partial<ToastOptions>} [options]
825
+ * @returns {Promise<ToastHandle>}
826
+ */
827
+ declare function loading(messageOrOptions?: string | ToastOptions, options?: Partial<ToastOptions>): Promise<ToastHandle>;
828
+ /**
829
+ * Displays a custom styled HTML toast notification.
830
+ * @param {string | ToastOptions} [messageOrOptions]
831
+ * @param {Partial<ToastOptions>} [options]
832
+ * @returns {Promise<ToastHandle>}
833
+ */
834
+ declare function custom(messageOrOptions?: string | ToastOptions, options?: Partial<ToastOptions>): Promise<ToastHandle>;
684
835
  /**
685
836
  * Sets default background colors for toast types.
686
837
  * @param {Partial<Record<ToastType, string>>} colors
@@ -691,9 +842,17 @@ declare function setDefaultColors(colors: Partial<Record<ToastType, string>>): v
691
842
  * @param {Partial<Record<ToastType, string>>} messages
692
843
  */
693
844
  declare function setDefaultMessages(messages: Partial<Record<ToastType, string>>): void;
694
- declare function dismissToast(): Promise<void>;
845
+ /**
846
+ * Dismisses a toast by its key/id, handle, element, or dismisses the most recent toast if target is omitted.
847
+ * @param {string | ToastHandle | HTMLElement | Promise<ToastHandle>} [target]
848
+ * @returns {Promise<void>}
849
+ */
850
+ declare function dismissToast(target?: string | ToastHandle | HTMLElement | Promise<ToastHandle>): Promise<void>;
695
851
  declare function noopAll(): Promise<void>;
696
- declare const version: any;
852
+ declare function dismissAll(): Promise<void>;
853
+ declare function clear(): Promise<void>;
854
+ /** @type {string} */
855
+ declare const version: string;
697
856
  /**
698
857
  * Wraps a promise or function with automatic loading, success, and error toasts.
699
858
  * @template T
@@ -704,5 +863,5 @@ declare const version: any;
704
863
  */
705
864
  declare function toastPromise<T>(promiseOrFn: Promise<T> | (() => Promise<T> | T), messages?: ToastPromiseMessages, options?: ToastOptions): Promise<T>;
706
865
 
707
- export { calculateSpringSettlingDuration, calculateToastPriority, calculateVelocity, categorizeToast, createGestureDetector, createToastWithPriority as createToast, detectPinch, dismissToast as dismiss, generateSpringLinearEasing, generateToastId, getAudioAnalyser, getConfig, getSoundPresets, getSpringPresets, getSpringTransition, getToastBroadcaster, getToastMetrics, getToastPool, isAudioEnabled, isFlick, noopAll as noop, playTone, registerSoundPreset, registerSpringPreset, resetAudioContext, resetConfig, resetContainerRegistry, resetSoundPresets, resetSpringPresets, resetToastBroadcaster, resetToastIdCounter, resetToastManager, resetToastPool, resolveSpringConfig, setAudioEnabled, setConfig, setDefaultColors, setDefaultMessages, shouldReduceMotion, solveSpring, toastPromise, updateToastByKey, version };
866
+ export { calculateSpringSettlingDuration, calculateToastPriority, calculateVelocity, categorizeToast, clear, createGestureDetector, createToastWithPriority as createToast, custom, createToastWithPriority as default, detectPinch, dismissToast as dismiss, dismissAll, error, generateSpringLinearEasing, generateToastId, getAudioAnalyser, getAudioContext, getConfig, getSoundPresets, getSpringPresets, getSpringTransition, getToastBroadcaster, getToastMetrics, getToastPool, info, isAudioEnabled, isFlick, loading, noopAll as noop, playTone, registerSoundPreset, registerSpringPreset, resetAudioContext, resetConfig, resetContainerRegistry, resetSoundPresets, resetSpringPresets, resetToastBroadcaster, resetToastIdCounter, resetToastManager, resetToastPool, resolveSpringConfig, setAudioEnabled, setConfig, setDefaultColors, setDefaultMessages, shouldReduceMotion, solveSpring, success, toastPromise, updateToastByKey, version, warning };
708
867
  export type { CTAOptions, ReducedMotionMode, SoundPreset, SpringConfig, SpringPreset, ToastGlobalConfig, ToastHandle, ToastLoaderOptions, ToastMetrics, ToastMountTarget, ToastOptions, ToastPosition, ToastPromiseMessages, ToastTheme, ToastType, UndoOptions };