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/CHANGELOG.md +34 -0
- package/README.md +60 -22
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.d.ts +7 -0
- package/dist/index.css.map +2 -2
- package/dist/index.d.ts +183 -24
- package/dist/index.esm.mjs +3 -3
- package/dist/index.esm.mjs.map +1 -1
- package/dist/index.umd.js +3 -3
- package/dist/index.umd.js.map +1 -1
- package/package.json +11 -1
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}
|
package/dist/index.css.d.ts
CHANGED
|
@@ -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;
|
package/dist/index.css.map
CHANGED
|
@@ -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": ";AAUA,MAEE,YAAY,QACZ,cAAc,QACd,uBAAuB,KACvB,gBAAgB,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IACxC,iBAAiB,KAAK,KACtB,mBAAmB,MACnB,mBAAmB,MAGnB,6BAA6B,IAC7B,2BAA2B,KAG3B,oBAAoB,QACpB,sBAAsB,QAEtB,kBAAkB,QAClB,oBAAoB,QAEpB,oBAAoB,QACpB,sBAAsB,QAEtB,iBAAiB,QACjB,mBAAmB,QAGnB,iBAAiB,KACjB,2BAA2B,MAG3B,aAAa,KACb,gBAAgB,IAClB,CAGA,CAAC,wBACC,YAAY,QACZ,cAAc,QACd,gBAAgB,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAC1C,CAGA,CAAC,uBACC,YAAY,QACZ,cAAc,QACd,gBAAgB,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAExC,oBAAoB,QACpB,sBAAsB,QAEtB,kBAAkB,QAClB,oBAAoB,QAEpB,oBAAoB,QACpB,sBAAsB,QAEtB,iBAAiB,QACjB,mBAAmB,OACrB,CAGA,CAAC,gCACC,YAAY,QACZ,cAAc,QACd,uBAAuB,IACvB,gBAAgB,EAAE,EAAE,EAAE,IAAI,QAE1B,oBAAoB,QACpB,sBAAsB,QAEtB,kBAAkB,QAClB,oBAAoB,QAEpB,oBAAoB,QACpB,sBAAsB,QAEtB,iBAAiB,QACjB,mBAAmB,OACrB,CAGA,CAAC,0BACC,iBAAiB,IAAI,KACrB,mBAAmB,MACnB,mBAAmB,MACnB,aAAa,IACb,gBAAgB,IAChB,uBAAuB,GACzB,CAGA,CAAC,2BACC,iBAAiB,KAAK,KACtB,mBAAmB,MACnB,mBAAmB,MACnB,aAAa,KACb,gBAAgB,KAChB,uBAAuB,IACzB,CAGA,CAAC,wBACC,YAAY,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAChC,cAAc,QACd,gBAAgB,EAAE,IAAI,KAAK,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAC7C,uBAAuB,KAEvB,oBAAoB,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IACtC,sBAAsB,QAEtB,kBAAkB,KAAK,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IACpC,oBAAoB,QAEpB,oBAAoB,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,IACtC,sBAAsB,QAEtB,iBAAiB,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IACpC,mBAAmB,OACrB,CAGA,CAAC,qBACC,SAAU,MACV,QAAS,IAAI,eAAe,EAAE,MAC9B,eAAgB,KAChB,QAAS,KACT,gBAAiB,cACjB,YAAa,OACb,eAAgB,OAChB,SAAU,OA7IZ,MA8IS,KAAK,KAAK,KAAK,KACtB,QAAS,OAAO,KAClB,CAGA,CAAC,4BACD,CAAC,sBACC,IAAK,KACL,MAAO,IAAI,cAAc,EAAE,MAC3B,OAAQ,IAAI,cAAc,EAAE,MAC5B,KAAM,KACN,UAAW,IACb,CAEA,CAAC,2BACC,IAAK,KACL,MAAO,KACP,OAAQ,IAAI,cAAc,EAAE,MAC5B,KAAM,IAAI,cAAc,EAAE,MAC1B,UAAW,IACb,CAEA,CAAC,yBACC,IAAK,IAAI,cAAc,EAAE,MACzB,MAAO,IAAI,cAAc,EAAE,MAC3B,OAAQ,KACR,KAAM,KACN,UAAW,IACb,CAEA,CAAC,wBACC,IAAK,IAAI,cAAc,EAAE,MACzB,MAAO,KACP,OAAQ,KACR,KAAM,IAAI,cAAc,EAAE,MAC1B,UAAW,IACb,CAEA,CAAC,0BACD,CAAC,0BACD,CAAC,mBACC,IAAK,IAAI,cAAc,EAAE,MACzB,MAAO,KACP,OAAQ,KACR,KAAM,IACN,UAAW,UAAW,KACxB,CAEA,CAAC,6BACD,CAAC,6BACC,IAAK,KACL,MAAO,KACP,OAAQ,IAAI,cAAc,EAAE,MAC5B,KAAM,IACN,UAAW,UAAW,KACxB,CAEA,CAAC,2BACD,CAAC,2BACC,IAAK,IACL,MAAO,KACP,OAAQ,KACR,KAAM,IAAI,cAAc,EAAE,MAC1B,UAAW,WAAW,KACxB,CAEA,CAAC,4BACD,CAAC,4BACC,IAAK,IACL,MAAO,IAAI,cAAc,EAAE,MAC3B,OAAQ,KACR,KAAM,KACN,UAAW,WAAW,KACxB,CAEA,CAAC,sBACC,MAAK,IACE,KACC,KACF,IACN,UAAW,UAAU,IAAI,CAAE,KAC7B,CAEA,CAAC,8BACC,IAAK,IAAI,cAAc,EAAE,MACzB,MAAO,IAAI,cAAc,EAAE,MAC3B,OAAQ,KACR,KAAM,IAAI,cAAc,EAAE,MAC1B,UAAW,MACX,UAAW,IACb,CAEA,CAAC,iCACC,IAAK,KACL,MAAO,IAAI,cAAc,EAAE,MAC3B,OAAQ,IAAI,cAAc,EAAE,MAC5B,KAAM,IAAI,cAAc,EAAE,MAC1B,UAAW,MACX,UAAW,IACb,CAGA,CAAC,oBACC,SAAU,SACV,QAAS,aACT,SAAU,QACV,cAAe,IAAI,WAAW,EAAE,MAChC,QAAS,EACT,MAAO,KACP,eAAgB,IAClB,CAEA,CAAC,oBACC,SAAU,SACV,SAAU,OACV,QAAS,CACX,CAGA,CAAC,MACC,QAAS,IAAI,eAAe,EAAE,KAAK,MACnC,cAAe,IAAI,WAAW,EAAE,MAChC,cAAe,IAAI,qBAAqB,EAAE,MAC1C,SAAU,OACV,QAAS,KACT,YAAa,OACb,gBAAiB,cACjB,WAAY,IAAI,cAAc,EAAE,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KACxD,UAAW,IAAI,iBAAiB,EAAE,OAClC,UAAW,IAAI,iBAAiB,EAAE,OAClC,QAAS,EACT,SAAU,SACV,OAAQ,QACR,WAAY,WACZ,YAAa,KACb,eAAgB,KAChB,QAAS,OAAO,MAChB,YAAa,SAAS,CAAE,QACxB,WAAY,QAAQ,IAAI,2BAA2B,EAAE,KAAM,IAAI,yBAAyB,EAAE,KAAK,CACnF,UAAU,IAAI,2BAA2B,EAAE,KAAM,IAAI,yBAAyB,EAAE,MAC5F,UAAW,WAAW,MACtB,QAAS,IAAI,eAAe,EAAE,MAC9B,YAAa,aAAa,CAAE,kBAAkB,CAAE,QAAU,CAAE,MAAM,CAAE,SAAS,CAAE,KAAK,CAAE,UAAU,CAAE,mBAAmB,CAAE,gBAAgB,CAAE,gBACzI,WAAY,IAAI,UAAU,EAAE,SAC5B,MAAO,IAAI,YAAY,EAAE,QAC3B,CAGA,CAAC,WACC,WAAY,IAAI,eAAe,EAAE,SACjC,MAAO,IAAI,iBAAiB,EAAE,QAChC,CAEA,CAAC,cACC,WAAY,IAAI,kBAAkB,EAAE,SACpC,MAAO,IAAI,oBAAoB,EAAE,QACnC,CAEA,CAAC,YACC,WAAY,IAAI,gBAAgB,EAAE,SAClC,MAAO,IAAI,kBAAkB,EAAE,QACjC,CAEA,CAAC,cACC,WAAY,IAAI,kBAAkB,EAAE,SACpC,MAAO,IAAI,oBAAoB,EAAE,QACnC,CAGA,CAAC,cACC,KAAM,EACN,QAAS,MACT,UAAW,KACX,YAAa,IACb,YAAa,IACb,WAAY,WACZ,YAAa,OACb,SAAU,OACV,cAAe,SACf,YAAa,IACf,CAEA,CAbC,aAaa,CAAC,aACb,QAAS,YACT,mBAAoB,SACpB,mBAAoB,CACtB,CAGA,CAAC,aACC,QAAS,YACT,YAAa,OACb,IAAK,GACP,CAEA,CAAC,oBACC,QAAS,IACT,iBAAkB,GAClB,kBAAmB,GACnB,iBAAkB,OAClB,UAAW,cAAc,GAAG,OAAO,QACrC,CAEA,CAAC,mBACC,UAAW,IACb,CAEA,CAAC,qBACC,QAAS,aACT,MAAO,GACT,CAGA,CAAC,UACC,YAAa,KApWf,QAqWW,IAAI,KArWf,cAsWiB,IACf,UAAW,KACX,YAAa,IACb,YAAa,EACb,OAAQ,IAAI,MAAM,KAAK,GAAG,CAAE,GAAG,CAAE,GAAG,CAAE,IACtC,WAAY,UACZ,MAAO,QACP,OAAQ,QACR,YAAa,OACb,YAAa,EACb,gBAAiB,KACjB,WAAY,WAAW,IAAK,IAC9B,CAEA,CAjBC,SAiBU,CAAE,CAjBZ,UAkBC,YAAa,GACf,CAEA,CArBC,SAqBS,OACR,WAAY,SACd,CAEA,CAAC,eACC,YAAa,KA7Xf,QA8XW,IAAI,KA9Xf,cA+XiB,IACf,UAAW,KACX,YAAa,IACb,YAAa,EACb,OAAQ,IAAI,MAAM,KAAK,GAAG,CAAE,GAAG,CAAE,GAAG,CAAE,IACtC,WAAY,UACZ,MAAO,QACP,OAAQ,QACR,YAAa,OACb,YAAa,EACb,QAAS,YACT,YAAa,OACb,IAAK,IACL,WAAY,WAAW,IAAK,IAAI,CAAE,UAAU,IAAK,IACnD,CAEA,CAnBC,cAmBc,OACb,WAAY,SACd,CAEA,CAvBC,cAuBc,QACb,UAAW,MAAM,IACnB,CAEA,CAAC,gBACC,WAAY,KACZ,OAAQ,KACR,MAAO,QACP,UAAW,KACX,YAAa,KACb,OAAQ,QACR,YAAa,EA9Zf,QA+ZW,EAAE,IACX,WAAY,QAAQ,IAAK,IAC3B,CAEA,CAZC,eAYe,OACd,QAAS,EACX,CAGA,CAAC,mBACC,SAAU,SACV,OAAQ,EACR,KAAM,EACN,MAAO,KACP,OAAQ,IA7aV,cA8aiB,IACf,WAAY,aACZ,QAAS,GACT,YAAa,MACb,WAAY,MAAM,IAAI,2BAA2B,EAAE,KAAM,MAC3D,CAEA,CAAC,mBACC,IAAK,EACL,OAAQ,IACV,CAGA,CAAC,kBACC,SAAU,SACV,IAAK,IACL,MAAO,IACP,iBAAkB,QAClB,MAAO,KAhcT,cAiciB,IACf,UAAW,KACX,OAAQ,KACR,UAAW,KACX,YAAa,IACb,QAAS,KACT,YAAa,OACb,gBAAiB,OACjB,OAAQ,IAAI,MAAM,QAClB,WAAY,EAAE,IAAI,IAAI,UACtB,QAAS,EACT,eAAgB,KAChB,WAAY,UAAU,KAAM,IAC9B,CAGA,CAAC,gBACC,WAAY,KACZ,MAAO,KAndT,QAodW,KAAK,KACd,SAAU,MACV,QAAS,IAAI,yBAAyB,EAAE,OAtd1C,cAudiB,IACf,UAAW,MACX,UAAW,WACX,WAAY,EAAE,IAAI,KAAK,SACzB,CAEA,CAAC,wBACC,QAAS,YACX,CAEA,CAAC,sBACC,MAAO,MACP,YAAa,KACb,YAAa,IACb,OAAQ,OACV,CAGA,WAnJa,cAoJX,GACE,UAAW,OAAO,EACpB,CACA,GACE,UAAW,OAAO,OACpB,CACF,CAEA,WAAW,eACT,GACE,QAAS,EACT,UAAW,WAAW,KACxB,CACA,GACE,QAAS,EACT,UAAW,WAAW,EACxB,CACF,CAEA,WAAW,WACT,GACE,QAAS,EACT,UAAW,WAAW,EACxB,CACA,GACE,QAAS,EACT,UAAW,WAAW,KACxB,CACF,CAGA,CAAC,2BAA6B,CApQ7B,KAoQmC,KAAK,CAAC,QACxC,UAAW,WAAW,MACxB,CAGA,CAzQC,KAyQK,CALoC,OAMxC,QAAS,EACT,UAAW,WAAW,EACxB,CAGA,WAAW,oBACT,MACE,UAAW,WAAW,EACxB,CACA,IACE,UAAW,WAAW,KACxB,CACF,CAEA,CAAC,wBACC,UAAW,oBAAoB,IAAK,WACtC,CAGA,CAAC,wBAA0B,CA7R1B,MA8RC,gBAAiB,KAAK,KACtB,wBAAyB,KAAK,KAC9B,OAAQ,IAAI,MAAM,KAAK,GAAG,CAAE,GAAG,CAAE,GAAG,CAAE,KACtC,YAAa,EAAE,IAAI,IAAI,KAAK,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,GACvC,CAGA,CAAC,gCAAkC,MAAM,eACzC,CAAC,gCAAkC,CAAC,eAClC,QAAS,IAAI,MAAM,QACnB,eAAgB,GAClB,CAGA,CA5SC,KA4SK,CAAC,QACL,UAAW,MAAM,KACjB,QAAS,IACX,CAEA,CAjTC,KAiTK,CAAC,QACL,WAAY,UAAU,IAAM,QAAQ,CAAE,QAAQ,IAAM,QACtD,CAEA,WAAW,aACT,GACE,UAAW,MAAM,EACnB,CACA,GACE,UAAW,MAAM,KACnB,CACF,CAEA,WAAW,eACT,GACE,UAAW,MAAM,KACnB,CACA,GACE,UAAW,MAAM,EACnB,CACF,CAGA,CAAC,mBAAqB,CAzVrB,oBA0VC,WAAY,UAAU,KAAM,aAAa,GAAI,CAAE,CAAC,CAAE,EAAG,CAAE,EAAE,CAAE,OAAO,KAAM,aAAa,GAAI,CAAE,CAAC,CAAE,EAAG,CAAE,EAAE,CAAE,QAAQ,KAAM,IACvH,CAEA,CAAC,mBAAqB,CA7VrB,mBA6VyC,CAAC,6BACzC,UAAW,KACX,WAAY,EACZ,cAAe,KACf,QAAS,EACT,eAAgB,IAClB,CAEA,CAAC,mBAAqB,CArWrB,mBAqWyC,CAAC,wBACzC,UAAW,MAAM,GACjB,WAAY,EACZ,cAAe,EACf,QAAS,EACT,QAAS,GACT,eAAgB,IAClB,CAEA,CAAC,mBAAqB,CA9WrB,mBA8WyC,CAAC,wBACzC,UAAW,MAAM,KAAM,WAAW,OAClC,WAAY,MACZ,cAAe,EACf,QAAS,GACT,QAAS,GACT,eAAgB,IAClB,CAEA,CAAC,kBAAoB,CAAC,SAAW,CAvXhC,mBAuXoD,CAAC,wBACpD,UAAW,MAAM,KAAM,WAAW,KACpC,CAEA,CAAC,mBAAqB,CA3XrB,mBA2XyC,CAAC,wBACzC,UAAW,MAAM,IAAM,WAAW,OAClC,WAAY,MACZ,cAAe,EACf,QAAS,IACT,QAAS,GACT,eAAgB,IAClB,CAEA,CAAC,kBAAoB,CAAC,SAAW,CApYhC,mBAoYoD,CAAC,wBACpD,UAAW,MAAM,IAAM,WAAW,KACpC,CAEA,CAAC,mBAAqB,CAxYrB,mBAwYyC,CAAC,6BACzC,UAAW,MAAM,KAAM,WAAW,OAClC,WAAY,MACZ,cAAe,EACf,QAAS,EACT,QAAS,EACT,eAAgB,IAClB,CAGA,CAAC,WACC,QAAS,YACT,YAAa,OACb,gBAAiB,OACjB,YAAa,EACb,aAAc,IACd,kBAAmB,IACnB,YAAa,CACf,CAEA,CAAC,SAAW,CAVX,WAWD,CA5YC,KA4YK,CAAC,yBAAyB,CAX/B,WAYC,aAAc,EACd,YAAa,GACf,CAEA,CAhBC,WAgBW,IACV,QAAS,KACX,CAEA,CArZC,KAqZK,CAAC,aACL,WAAY,EAAE,EAAE,EAAE,IAAI,SAAwB,CAAE,EAAE,IAAI,KAAK,eAC7D,CAEA,CAzZC,KAyZK,CAJC,aAIa,CAtPnB,mBAuPC,QAAS,YACT,OAAQ,WAAW,IACrB,CAGA,OAAO,uBAAyB,QAC9B,CAhaD,MAiaC,CA9PD,mBA+PC,CAtVD,oBAuVC,CA7OD,kBA8OC,CAtUD,UAuUC,CA9SD,eA+SC,CApRD,gBAqRC,CAxbD,oBAybG,WAAY,eACZ,UAAW,cACb,CACF,CAEA,CAAC,kCAAoC,CA7apC,MA8aD,CAAC,kCAAoC,CA3QpC,mBA4QD,CAAC,kCAAoC,CAnWpC,oBAoWD,CAAC,kCAAoC,CA1PpC,kBA2PD,CAAC,kCAAoC,CAnVpC,UAoVD,CAAC,kCAAoC,CA3TpC,eA4TD,CAAC,kCAAoC,CAjSpC,gBAkSD,CAAC,kCAAoC,CArcpC,oBAscC,WAAY,eACZ,UAAW,cACb",
|
|
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
|
-
|
|
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 {
|
|
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
|
-
|
|
234
|
+
/** @type {BroadcastChannel | null} */
|
|
235
|
+
channel: BroadcastChannel | null;
|
|
221
236
|
tabId: string;
|
|
222
237
|
isLeadTab: boolean;
|
|
223
|
-
|
|
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 {
|
|
267
|
+
* @param {Record<string, unknown>} [payload={}] - Event payload
|
|
251
268
|
*/
|
|
252
|
-
broadcast(type: string, toastId?: string, payload?:
|
|
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:
|
|
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:
|
|
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 {
|
|
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):
|
|
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 {
|
|
371
|
-
* @returns {
|
|
387
|
+
* @param {GestureDetectorOptions} [options]
|
|
388
|
+
* @returns {GestureDetector} - Detector with attach/detach methods
|
|
372
389
|
*/
|
|
373
|
-
declare function createGestureDetector(element: HTMLElement, options?:
|
|
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
|
-
|
|
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
|
-
*
|
|
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(
|
|
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
|
-
|
|
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
|
|
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 };
|