minisnackbar 1.0.2 → 3.0.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/LICENSE +21 -21
- package/README.md +60 -40
- package/dist/constants.d.ts +10 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/controller.d.ts +27 -0
- package/dist/controller.d.ts.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/minisnackbar.cjs +430 -0
- package/dist/minisnackbar.cjs.map +1 -0
- package/dist/minisnackbar.esm.js +423 -380
- package/dist/minisnackbar.esm.js.map +1 -1
- package/dist/minisnackbar.js +430 -385
- package/dist/minisnackbar.js.map +1 -1
- package/dist/minisnackbar.min.js +4 -3
- package/dist/minisnackbar.min.js.map +1 -1
- package/dist/renderer.d.ts +18 -0
- package/dist/renderer.d.ts.map +1 -0
- package/dist/styles.d.ts +4 -0
- package/dist/styles.d.ts.map +1 -0
- package/dist/types.d.ts +14 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/validation.d.ts +6 -0
- package/dist/validation.d.ts.map +1 -0
- package/docs.md +514 -0
- package/package.json +64 -55
- package/src/index.d.ts +0 -35
package/dist/minisnackbar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minisnackbar.js","sources":["../src/index.js"],"sourcesContent":["/**\r\n * MiniSnackbar - A simple vanilla JavaScript snackbar/toast library\r\n *\r\n * @version 1.0.0\r\n * @author Shanto Islam <shantoislamdev@gmail.com>\r\n * @license MIT\r\n * @description A lightweight, zero-dependency snackbar library with Material Design integration\r\n * @repository https://github.com/shantoislamdev/minisnackbar\r\n * @homepage https://github.com/shantoislamdev/minisnackbar#readme\r\n */\r\n\r\nclass Snackbar {\r\n static _queue = []\r\n static _isShowing = false\r\n static _currentTimeout = null\r\n static _state = 'idle' // idle, showing, transitioning\r\n static _currentActionHandler = null\r\n static _transitionDuration = 250\r\n static _initialized = false\r\n\r\n static init(options = {}) {\r\n if (this._initialized) return\r\n\r\n if (typeof document === 'undefined' || !document.body) {\r\n console.error('Snackbar: DOM is not available')\r\n return\r\n }\r\n\r\n if (options.transitionDuration && typeof options.transitionDuration === 'number') {\r\n this._transitionDuration = options.transitionDuration\r\n }\r\n\r\n if (document.getElementById('mini-snackbar')) {\r\n this._initialized = true\r\n return\r\n }\r\n\r\n if (!document.getElementById('mini-snackbar-styles')) {\r\n const style = document.createElement('style')\r\n style.id = 'mini-snackbar-styles'\r\n style.textContent = `\r\n .mini-snackbar {\r\n /* Positioning */\r\n position: fixed;\r\n z-index: 1000;\r\n left: 50%;\r\n bottom: 30px;\r\n transform: translateX(-50%) translateY(100%);\r\n \r\n /* Sizing */\r\n min-width: 250px;\r\n max-width: 90%;\r\n \r\n /* Layout */\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 8px;\r\n padding: 0.875rem 1rem;\r\n \r\n /* Visibility */\r\n visibility: hidden;\r\n \r\n /* Theming */\r\n background-color: var(--mini-snackbar-bg, var(--md-sys-color-inverse-surface, rgba(255, 255, 255, 1)));\r\n color: var(--mini-snackbar-text, var(--md-sys-color-inverse-on-surface, rgba(27, 27, 27, 1)));\r\n border: var(--mini-snackbar-border, none);\r\n font-family: var(--mini-snackbar-font-family, inherit);\r\n font-size: 0.875rem;\r\n text-align: left;\r\n border-radius: var(--mini-snackbar-radius, 1rem);\r\n box-shadow: var(--mini-snackbar-shadow, 0 3px 5px -1px rgba(0,0,0,.2), 0 6px 10px 0 rgba(0,0,0,.14), 0 1px 18px 0 rgba(0,0,0,.12));\r\n \r\n /* Animation */\r\n transition: var(--mini-snackbar-transition, transform ${this._transitionDuration}ms ease-in-out);\r\n }\r\n\r\n .mini-snackbar.show {\r\n visibility: visible;\r\n transform: translateX(-50%) translateY(0);\r\n }\r\n\r\n /* Material Component Action Button */\r\n .mini-snackbar .mini-snackbar-action {\r\n flex-shrink: 0;\r\n padding: 0.5rem 1rem;\r\n margin: -0.5rem -0.5rem -0.5rem 0;\r\n }\r\n\r\n /* Fallback Action Button (when Material Components unavailable) */\r\n .mini-snackbar md-text-button[data-fallback] {\r\n display: inline-block;\r\n flex-shrink: 0;\r\n padding: 0.5rem 1rem;\r\n margin: -0.5rem -0.5rem -0.5rem 0;\r\n border: none;\r\n background: var(--mini-snackbar-btn-bg, transparent);\r\n font-size: inherit;\r\n font-family: inherit;\r\n font-weight: 500;\r\n letter-spacing: 0.0892857143em;\r\n text-transform: uppercase;\r\n color: var(--mini-snackbar-btn-text, inherit);\r\n cursor: pointer;\r\n user-select: none;\r\n border-radius: var(--mini-snackbar-btn-radius, 1rem);\r\n transition: opacity 0.2s ease;\r\n }\r\n\r\n .mini-snackbar md-text-button[data-fallback]:hover {\r\n opacity: var(--mini-snackbar-btn-hover-opacity, 0.8);\r\n outline: var(--mini-snackbar-btn-hover-outline, 2px solid var(--mini-snackbar-btn-text, inherit));\r\n outline-offset: var(--mini-snackbar-btn-outline-offset, 2px);\r\n background-color: var(--mini-snackbar-btn-hover-bg, transparent);\r\n }\r\n\r\n .mini-snackbar md-text-button[data-fallback]:focus {\r\n outline: var(--mini-snackbar-btn-focus-outline, 2px solid var(--mini-snackbar-btn-text, inherit));\r\n outline-offset: var(--mini-snackbar-btn-outline-offset, 2px);\r\n }\r\n\r\n /* Mobile responsive */\r\n @media (max-width: 600px) {\r\n .mini-snackbar {\r\n bottom: 90px;\r\n }\r\n }\r\n\r\n /* Accessibility: Reduced motion */\r\n @media (prefers-reduced-motion: reduce) {\r\n .mini-snackbar {\r\n transition: opacity 0.15s ease;\r\n }\r\n }\r\n `\r\n document.head.appendChild(style)\r\n }\r\n\r\n const snackbar = document.createElement('div')\r\n snackbar.id = 'mini-snackbar'\r\n snackbar.className = 'mini-snackbar'\r\n snackbar.setAttribute('role', 'alert')\r\n snackbar.setAttribute('aria-live', 'assertive')\r\n snackbar.setAttribute('aria-atomic', 'true')\r\n\r\n const snackbarText = document.createElement('span')\r\n snackbarText.className = 'mini-snackbar-text'\r\n snackbar.appendChild(snackbarText)\r\n\r\n document.body.appendChild(snackbar)\r\n this._initialized = true\r\n }\r\n\r\n static destroy() {\r\n this.hideCurrent()\r\n this.clearQueue()\r\n\r\n const snackbar = document.getElementById('mini-snackbar')\r\n if (snackbar) snackbar.remove()\r\n\r\n const styles = document.getElementById('mini-snackbar-styles')\r\n if (styles) styles.remove()\r\n\r\n this._state = 'idle'\r\n this._isShowing = false\r\n this._currentActionHandler = null\r\n this._currentTimeout = null\r\n this._initialized = false\r\n }\r\n\r\n static getTransitionDuration() {\r\n const snackbar = document.getElementById('mini-snackbar')\r\n if (!snackbar) return this._transitionDuration\r\n\r\n try {\r\n const computedStyle = window.getComputedStyle(snackbar)\r\n const duration = computedStyle.transitionDuration\r\n if (duration && duration !== '0s') {\r\n const value = parseFloat(duration)\r\n return duration.includes('ms') ? value : value * 1000\r\n }\r\n } catch (e) {\r\n console.warn('Snackbar: Could not read transition duration from CSS', e)\r\n }\r\n\r\n return this._transitionDuration\r\n }\r\n\r\n static add(message, action = null, duration = 3000) {\r\n if (!this._initialized) {\r\n console.warn('Snackbar: Not initialized. Call Snackbar.init() first.')\r\n return\r\n }\r\n\r\n if (typeof message !== 'string' || message.trim() === '') {\r\n console.warn('Snackbar: Message must be a non-empty string')\r\n return\r\n }\r\n if (action !== null && (typeof action !== 'object' || typeof action.text !== 'string' || typeof action.handler !== 'function')) {\r\n console.warn('Snackbar: Action must be an object with \"text\" (string) and \"handler\" (function) properties')\r\n return\r\n }\r\n if (typeof duration !== 'number' || duration <= 0) {\r\n console.warn('Snackbar: Duration must be a positive number')\r\n return\r\n }\r\n\r\n this._queue.push({ message, action, duration })\r\n if (this._state === 'idle') this.showNext()\r\n }\r\n\r\n static _cleanupAction() {\r\n const snackbar = document.getElementById('mini-snackbar')\r\n if (!snackbar) return\r\n\r\n const actionButton = snackbar.querySelector('.mini-snackbar-action')\r\n if (actionButton && this._currentActionHandler) {\r\n actionButton.removeEventListener('click', this._currentActionHandler)\r\n this._currentActionHandler = null\r\n actionButton.remove()\r\n }\r\n }\r\n\r\n static _showSnackbar(message, action, duration, onHide = null) {\r\n const snackbar = document.getElementById('mini-snackbar')\r\n if (!snackbar) {\r\n console.error('Snackbar: Snackbar element not found. Ensure init() has been called.')\r\n return\r\n }\r\n\r\n this._state = 'showing'\r\n this._isShowing = true\r\n const snackbarText = snackbar.querySelector('.mini-snackbar-text')\r\n snackbarText.textContent = message\r\n\r\n if (action) {\r\n const actionButton = document.createElement('md-text-button')\r\n actionButton.classList.add('mini-snackbar-action')\r\n\r\n // Fallback for when Material Components are not available\r\n if (customElements.get('md-text-button') === undefined) {\r\n actionButton.setAttribute('data-fallback', '')\r\n }\r\n\r\n actionButton.textContent = action.text\r\n\r\n this._currentActionHandler = () => {\r\n action.handler()\r\n this._hideSnackbar(onHide)\r\n }\r\n\r\n actionButton.addEventListener('click', this._currentActionHandler)\r\n snackbar.appendChild(actionButton)\r\n }\r\n\r\n snackbar.classList.add('show')\r\n\r\n this._currentTimeout = setTimeout(() => {\r\n this._hideSnackbar(onHide)\r\n }, duration)\r\n }\r\n\r\n static _hideSnackbar(onHide = null) {\r\n if (this._currentTimeout) {\r\n clearTimeout(this._currentTimeout)\r\n this._currentTimeout = null\r\n }\r\n\r\n this._state = 'transitioning'\r\n const snackbar = document.getElementById('mini-snackbar')\r\n if (snackbar) {\r\n snackbar.classList.remove('show')\r\n }\r\n\r\n this._cleanupAction()\r\n\r\n // Wait for CSS transition to complete\r\n const transitionDuration = this.getTransitionDuration()\r\n setTimeout(() => {\r\n this._isShowing = false\r\n this._state = 'idle'\r\n if (onHide) onHide()\r\n }, transitionDuration)\r\n }\r\n\r\n static show(message, action = null, duration = 3000) {\r\n if (!this._initialized) {\r\n console.warn('Snackbar: Not initialized. Call Snackbar.init() first.')\r\n return\r\n }\r\n\r\n if (typeof message !== 'string' || message.trim() === '') {\r\n console.warn('Snackbar: Message must be a non-empty string')\r\n return\r\n }\r\n if (action !== null && (typeof action !== 'object' || typeof action.text !== 'string' || typeof action.handler !== 'function')) {\r\n console.warn('Snackbar: Action must be an object with \"text\" (string) and \"handler\" (function) properties')\r\n return\r\n }\r\n if (typeof duration !== 'number' || duration <= 0) {\r\n console.warn('Snackbar: Duration must be a positive number')\r\n return\r\n }\r\n\r\n // Queue message if currently transitioning\r\n if (this._state === 'transitioning') {\r\n this.add(message, action, duration)\r\n return\r\n }\r\n\r\n // Interrupt current snackbar if showing\r\n if (this._isShowing) {\r\n this._state = 'transitioning'\r\n if (this._currentTimeout) {\r\n clearTimeout(this._currentTimeout)\r\n this._currentTimeout = null\r\n }\r\n const snackbar = document.getElementById('mini-snackbar')\r\n if (snackbar) {\r\n snackbar.classList.remove('show')\r\n }\r\n this._cleanupAction()\r\n\r\n const transitionDuration = this.getTransitionDuration()\r\n setTimeout(() => {\r\n this._isShowing = false\r\n this._state = 'idle'\r\n this._showSnackbar(message, action, duration)\r\n }, transitionDuration)\r\n } else {\r\n this._showSnackbar(message, action, duration)\r\n }\r\n }\r\n\r\n static showNext() {\r\n if (this._queue.length === 0) {\r\n this._isShowing = false\r\n this._state = 'idle'\r\n return\r\n }\r\n\r\n const { message, action, duration } = this._queue.shift()\r\n this._showSnackbar(message, action, duration, () => {\r\n setTimeout(() => this.showNext(), 200)\r\n })\r\n }\r\n\r\n static clearQueue() {\r\n this._queue = []\r\n }\r\n\r\n static hideCurrent() {\r\n if (this._isShowing && this._state !== 'transitioning') {\r\n this._hideSnackbar()\r\n }\r\n }\r\n\r\n static isInitialized() {\r\n return this._initialized\r\n }\r\n\r\n // Getters/setters for testing\r\n static get queue() { return this._queue }\r\n static set queue(value) { this._queue = value }\r\n static get isShowing() { return this._isShowing }\r\n static set isShowing(value) { this._isShowing = value }\r\n static get currentTimeout() { return this._currentTimeout }\r\n static set currentTimeout(value) { this._currentTimeout = value }\r\n static get state() { return this._state }\r\n static set state(value) { this._state = value }\r\n}\r\n\r\n// Module exports\r\nif (typeof module !== 'undefined' && module.exports) {\r\n module.exports = Snackbar\r\n}\r\n\r\n// Make available globally in browser\r\nif (typeof window !== 'undefined') {\r\n window.Snackbar = Snackbar\r\n}\r\n\r\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"minisnackbar.js","sources":["../src/constants.ts","../src/styles.ts","../src/renderer.ts","../src/validation.ts","../src/controller.ts","../src/index.ts","../src/browser.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":[],"mappings":"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"}
|
package/dist/minisnackbar.min.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
!function(t){"function"
|
|
1
|
+
var Snackbar=function(){"use strict";const t="mini-snackbar",n="mini-snackbar-styles",i="show",e="mini-snackbar-text";class r{constructor(t){this.actionButton=null,this.actionHandler=null,this.document=t}ensureRoot(i){if(!this.document.body)return!1;if(function(t,i){if(t.getElementById(n))return;const e=t.createElement("style");e.id=n,e.textContent=function(t){return`\n .mini-snackbar {\n position: fixed;\n z-index: 1000;\n left: 50%;\n bottom: 30px;\n transform: translateX(-50%) translateY(100%);\n min-width: 250px;\n max-width: 90%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 0.875rem 1rem;\n visibility: hidden;\n background-color: var(--mini-snackbar-bg, var(--md-sys-color-inverse-surface, rgba(255, 255, 255, 1)));\n color: var(--mini-snackbar-text, var(--md-sys-color-inverse-on-surface, rgba(27, 27, 27, 1)));\n border: var(--mini-snackbar-border, none);\n font-family: var(--mini-snackbar-font-family, inherit);\n font-size: 0.875rem;\n text-align: left;\n border-radius: var(--mini-snackbar-radius, 1rem);\n box-shadow: var(--mini-snackbar-shadow, 0 3px 5px -1px rgba(0,0,0,.2), 0 6px 10px 0 rgba(0,0,0,.14), 0 1px 18px 0 rgba(0,0,0,.12));\n transition: var(--mini-snackbar-transition, transform ${t}ms ease-in-out);\n }\n\n .mini-snackbar.show {\n visibility: visible;\n transform: translateX(-50%) translateY(0);\n }\n\n .mini-snackbar .mini-snackbar-action {\n flex-shrink: 0;\n padding: 0.5rem 1rem;\n margin: -0.5rem -0.5rem -0.5rem 0;\n }\n\n .mini-snackbar button.mini-snackbar-action {\n border: none;\n background: var(--mini-snackbar-btn-bg, transparent);\n font-size: inherit;\n font-family: inherit;\n font-weight: 500;\n letter-spacing: 0.0892857143em;\n text-transform: uppercase;\n color: var(--mini-snackbar-btn-text, inherit);\n cursor: pointer;\n user-select: none;\n border-radius: var(--mini-snackbar-btn-radius, 1rem);\n transition: opacity 0.2s ease;\n }\n\n .mini-snackbar button.mini-snackbar-action:hover {\n opacity: var(--mini-snackbar-btn-hover-opacity, 0.8);\n outline: var(--mini-snackbar-btn-hover-outline, 2px solid var(--mini-snackbar-btn-text, inherit));\n outline-offset: var(--mini-snackbar-btn-outline-offset, 2px);\n background-color: var(--mini-snackbar-btn-hover-bg, transparent);\n }\n\n .mini-snackbar button.mini-snackbar-action:focus {\n outline: var(--mini-snackbar-btn-focus-outline, 2px solid var(--mini-snackbar-btn-text, inherit));\n outline-offset: var(--mini-snackbar-btn-outline-offset, 2px);\n }\n\n @media (max-width: 600px) {\n .mini-snackbar {\n bottom: 90px;\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n .mini-snackbar {\n transition: opacity 0.15s ease;\n }\n }\n `}(i),t.head.appendChild(e)}(this.document,i),this.getRoot())return!0;const r=this.document.createElement("div");r.id=t,r.className="mini-snackbar",r.setAttribute("role","alert"),r.setAttribute("aria-live","assertive"),r.setAttribute("aria-atomic","true");const s=this.document.createElement("span");return s.className=e,r.appendChild(s),this.document.body.appendChild(r),!0}destroy(){this.cleanupAction(),this.getRoot()?.remove(),function(t){t.getElementById(n)?.remove()}(this.document)}setMessage(t){const n=this.getRoot()?.querySelector(`.${e}`);n&&(n.textContent=t)}setAction(t,n){if(this.cleanupAction(),!t)return;const i=this.createActionButton();i.classList.add("mini-snackbar-action"),i.textContent=t.text,this.actionHandler=n,i.addEventListener("click",this.actionHandler),this.actionButton=i,this.getRoot()?.appendChild(i)}show(){this.getRoot()?.classList.add(i)}hide(){this.getRoot()?.classList.remove(i)}cleanupAction(){this.actionButton&&this.actionHandler&&this.actionButton.removeEventListener("click",this.actionHandler),this.actionButton?.remove(),this.actionButton=null,this.actionHandler=null}getTransitionDuration(t){const n=this.getRoot(),i=this.document.defaultView;if(!n||!i)return t;try{return function(t,n){if(!t||"0s"===t)return n;const i=t.split(",")[0]?.trim();if(!i)return n;const e=Number.parseFloat(i);return Number.isFinite(e)?i.endsWith("ms")?e:1e3*e:n}(i.getComputedStyle(n).transitionDuration,t)}catch(n){return console.warn("Snackbar: Could not read transition duration from CSS",n),t}}getRoot(){return this.document.getElementById(t)}createActionButton(){const t=this.document.defaultView?.customElements;if(t?.get("md-text-button"))return this.document.createElement("md-text-button");const n=this.document.createElement("button");return n.type="button",n}}function s(t,n=null,i=3e3,e=console.warn){return"string"!=typeof t||""===t.trim()?(e("Snackbar: Message must be a non-empty string"),null):null===n||"object"==typeof n&&"string"==typeof n.text&&"function"==typeof n.handler?(t=>"number"==typeof t&&Number.isFinite(t)&&t>0)(i)?{message:t,action:n,duration:i}:(e("Snackbar: Duration must be a positive number"),null):(e('Snackbar: Action must be an object with "text" (string) and "handler" (function) properties'),null)}
|
|
2
2
|
/**
|
|
3
3
|
* MiniSnackbar - A simple vanilla JavaScript snackbar/toast library
|
|
4
4
|
*
|
|
5
|
-
* @version
|
|
5
|
+
* @version 3.0.0
|
|
6
6
|
* @author Shanto Islam <shantoislamdev@gmail.com>
|
|
7
7
|
* @license MIT
|
|
8
8
|
* @description A lightweight, zero-dependency snackbar library with Material Design integration
|
|
9
9
|
* @repository https://github.com/shantoislamdev/minisnackbar
|
|
10
10
|
* @homepage https://github.com/shantoislamdev/minisnackbar#readme
|
|
11
|
-
*/
|
|
11
|
+
*/
|
|
12
|
+
const a=new class{constructor(){this.queue=[],this.state="idle",this.renderer=null,this.displayTimer=null,this.transitionTimer=null,this.queueGapTimer=null,this.transitionDuration=250,this.initialized=!1}init(t={}){if(this.initialized)return;if("undefined"==typeof document)return void console.error("Snackbar: DOM is not available");const n=function(t,n=console.warn){return void 0===t?null:"number"!=typeof t||!Number.isFinite(t)||t<0?(n("Snackbar: transitionDuration must be a non-negative number"),null):t}(t.transitionDuration);if(null!==n&&(this.transitionDuration=n),this.renderer=new r(document),!this.renderer.ensureRoot(this.transitionDuration))return console.error("Snackbar: DOM is not available"),void(this.renderer=null);this.initialized=!0}destroy(){this.clearTimers(),this.clearQueue(),this.renderer?.destroy(),this.renderer=null,this.state="idle",this.transitionDuration=250,this.initialized=!1}add(t,n=null,i){if(!this.ensureInitialized())return;const e=s(t,n,i);e&&(this.queue.push(e),"idle"===this.state&&this.showNext())}show(t,n=null,i){if(!this.ensureInitialized())return;const e=s(t,n,i);if(e){if(this.clearQueue(),"idle"!==this.state)return"transitioning"===this.state?(this.clearTimer("transitionTimer"),this.state="idle",void this.showItem(e)):void this.hideActiveItem(()=>this.showItem(e));this.showItem(e)}}clearQueue(){this.queue=[],this.clearTimer("queueGapTimer")}hideCurrent(){"showing"===this.state&&this.hideActiveItem(()=>this.finishCurrentItem())}isInitialized(){return this.initialized}getTransitionDuration(){return this.renderer?.getTransitionDuration(this.transitionDuration)??this.transitionDuration}showNext(){if("idle"!==this.state)return;const t=this.queue.shift();t&&this.showItem(t)}showItem(t){this.renderer&&(this.clearTimers(),this.state="showing",this.renderer.setMessage(t.message),this.renderer.setAction(t.action,()=>{try{t.action?.handler()}finally{this.hideActiveItem(()=>this.finishCurrentItem())}}),this.renderer.show(),this.displayTimer=setTimeout(()=>{this.hideActiveItem(()=>this.finishCurrentItem())},t.duration))}hideActiveItem(t){this.renderer&&"transitioning"!==this.state&&(this.clearTimer("displayTimer"),this.state="transitioning",this.renderer.hide(),this.renderer.cleanupAction(),this.transitionTimer=setTimeout(()=>{this.transitionTimer=null,this.state="idle",t?.()},this.getTransitionDuration()))}finishCurrentItem(){"idle"===this.state&&0!==this.queue.length&&(this.clearTimer("queueGapTimer"),this.queueGapTimer=setTimeout(()=>{this.queueGapTimer=null,this.showNext()},200))}ensureInitialized(){return!!this.initialized||(console.warn("Snackbar: Not initialized. Call Snackbar.init() first."),!1)}clearTimers(){this.clearTimer("displayTimer"),this.clearTimer("transitionTimer"),this.clearTimer("queueGapTimer")}clearTimer(t){const n=this[t];n&&clearTimeout(n),this[t]=null}};class o{static init(t={}){a.init(t)}static destroy(){a.destroy()}static getTransitionDuration(){return a.getTransitionDuration()}static add(t,n=null,i){a.add(t,n,i)}static show(t,n=null,i){a.show(t,n,i)}static clearQueue(){a.clearQueue()}static hideCurrent(){a.hideCurrent()}static isInitialized(){return a.isInitialized()}}return"undefined"!=typeof window&&(window.Snackbar=o),o}();
|
|
12
13
|
//# sourceMappingURL=minisnackbar.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minisnackbar.min.js","sources":["../src/index.js"],"sourcesContent":["/**\r\n * MiniSnackbar - A simple vanilla JavaScript snackbar/toast library\r\n *\r\n * @version 1.0.0\r\n * @author Shanto Islam <shantoislamdev@gmail.com>\r\n * @license MIT\r\n * @description A lightweight, zero-dependency snackbar library with Material Design integration\r\n * @repository https://github.com/shantoislamdev/minisnackbar\r\n * @homepage https://github.com/shantoislamdev/minisnackbar#readme\r\n */\r\n\r\nclass Snackbar {\r\n static _queue = []\r\n static _isShowing = false\r\n static _currentTimeout = null\r\n static _state = 'idle' // idle, showing, transitioning\r\n static _currentActionHandler = null\r\n static _transitionDuration = 250\r\n static _initialized = false\r\n\r\n static init(options = {}) {\r\n if (this._initialized) return\r\n\r\n if (typeof document === 'undefined' || !document.body) {\r\n console.error('Snackbar: DOM is not available')\r\n return\r\n }\r\n\r\n if (options.transitionDuration && typeof options.transitionDuration === 'number') {\r\n this._transitionDuration = options.transitionDuration\r\n }\r\n\r\n if (document.getElementById('mini-snackbar')) {\r\n this._initialized = true\r\n return\r\n }\r\n\r\n if (!document.getElementById('mini-snackbar-styles')) {\r\n const style = document.createElement('style')\r\n style.id = 'mini-snackbar-styles'\r\n style.textContent = `\r\n .mini-snackbar {\r\n /* Positioning */\r\n position: fixed;\r\n z-index: 1000;\r\n left: 50%;\r\n bottom: 30px;\r\n transform: translateX(-50%) translateY(100%);\r\n \r\n /* Sizing */\r\n min-width: 250px;\r\n max-width: 90%;\r\n \r\n /* Layout */\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 8px;\r\n padding: 0.875rem 1rem;\r\n \r\n /* Visibility */\r\n visibility: hidden;\r\n \r\n /* Theming */\r\n background-color: var(--mini-snackbar-bg, var(--md-sys-color-inverse-surface, rgba(255, 255, 255, 1)));\r\n color: var(--mini-snackbar-text, var(--md-sys-color-inverse-on-surface, rgba(27, 27, 27, 1)));\r\n border: var(--mini-snackbar-border, none);\r\n font-family: var(--mini-snackbar-font-family, inherit);\r\n font-size: 0.875rem;\r\n text-align: left;\r\n border-radius: var(--mini-snackbar-radius, 1rem);\r\n box-shadow: var(--mini-snackbar-shadow, 0 3px 5px -1px rgba(0,0,0,.2), 0 6px 10px 0 rgba(0,0,0,.14), 0 1px 18px 0 rgba(0,0,0,.12));\r\n \r\n /* Animation */\r\n transition: var(--mini-snackbar-transition, transform ${this._transitionDuration}ms ease-in-out);\r\n }\r\n\r\n .mini-snackbar.show {\r\n visibility: visible;\r\n transform: translateX(-50%) translateY(0);\r\n }\r\n\r\n /* Material Component Action Button */\r\n .mini-snackbar .mini-snackbar-action {\r\n flex-shrink: 0;\r\n padding: 0.5rem 1rem;\r\n margin: -0.5rem -0.5rem -0.5rem 0;\r\n }\r\n\r\n /* Fallback Action Button (when Material Components unavailable) */\r\n .mini-snackbar md-text-button[data-fallback] {\r\n display: inline-block;\r\n flex-shrink: 0;\r\n padding: 0.5rem 1rem;\r\n margin: -0.5rem -0.5rem -0.5rem 0;\r\n border: none;\r\n background: var(--mini-snackbar-btn-bg, transparent);\r\n font-size: inherit;\r\n font-family: inherit;\r\n font-weight: 500;\r\n letter-spacing: 0.0892857143em;\r\n text-transform: uppercase;\r\n color: var(--mini-snackbar-btn-text, inherit);\r\n cursor: pointer;\r\n user-select: none;\r\n border-radius: var(--mini-snackbar-btn-radius, 1rem);\r\n transition: opacity 0.2s ease;\r\n }\r\n\r\n .mini-snackbar md-text-button[data-fallback]:hover {\r\n opacity: var(--mini-snackbar-btn-hover-opacity, 0.8);\r\n outline: var(--mini-snackbar-btn-hover-outline, 2px solid var(--mini-snackbar-btn-text, inherit));\r\n outline-offset: var(--mini-snackbar-btn-outline-offset, 2px);\r\n background-color: var(--mini-snackbar-btn-hover-bg, transparent);\r\n }\r\n\r\n .mini-snackbar md-text-button[data-fallback]:focus {\r\n outline: var(--mini-snackbar-btn-focus-outline, 2px solid var(--mini-snackbar-btn-text, inherit));\r\n outline-offset: var(--mini-snackbar-btn-outline-offset, 2px);\r\n }\r\n\r\n /* Mobile responsive */\r\n @media (max-width: 600px) {\r\n .mini-snackbar {\r\n bottom: 90px;\r\n }\r\n }\r\n\r\n /* Accessibility: Reduced motion */\r\n @media (prefers-reduced-motion: reduce) {\r\n .mini-snackbar {\r\n transition: opacity 0.15s ease;\r\n }\r\n }\r\n `\r\n document.head.appendChild(style)\r\n }\r\n\r\n const snackbar = document.createElement('div')\r\n snackbar.id = 'mini-snackbar'\r\n snackbar.className = 'mini-snackbar'\r\n snackbar.setAttribute('role', 'alert')\r\n snackbar.setAttribute('aria-live', 'assertive')\r\n snackbar.setAttribute('aria-atomic', 'true')\r\n\r\n const snackbarText = document.createElement('span')\r\n snackbarText.className = 'mini-snackbar-text'\r\n snackbar.appendChild(snackbarText)\r\n\r\n document.body.appendChild(snackbar)\r\n this._initialized = true\r\n }\r\n\r\n static destroy() {\r\n this.hideCurrent()\r\n this.clearQueue()\r\n\r\n const snackbar = document.getElementById('mini-snackbar')\r\n if (snackbar) snackbar.remove()\r\n\r\n const styles = document.getElementById('mini-snackbar-styles')\r\n if (styles) styles.remove()\r\n\r\n this._state = 'idle'\r\n this._isShowing = false\r\n this._currentActionHandler = null\r\n this._currentTimeout = null\r\n this._initialized = false\r\n }\r\n\r\n static getTransitionDuration() {\r\n const snackbar = document.getElementById('mini-snackbar')\r\n if (!snackbar) return this._transitionDuration\r\n\r\n try {\r\n const computedStyle = window.getComputedStyle(snackbar)\r\n const duration = computedStyle.transitionDuration\r\n if (duration && duration !== '0s') {\r\n const value = parseFloat(duration)\r\n return duration.includes('ms') ? value : value * 1000\r\n }\r\n } catch (e) {\r\n console.warn('Snackbar: Could not read transition duration from CSS', e)\r\n }\r\n\r\n return this._transitionDuration\r\n }\r\n\r\n static add(message, action = null, duration = 3000) {\r\n if (!this._initialized) {\r\n console.warn('Snackbar: Not initialized. Call Snackbar.init() first.')\r\n return\r\n }\r\n\r\n if (typeof message !== 'string' || message.trim() === '') {\r\n console.warn('Snackbar: Message must be a non-empty string')\r\n return\r\n }\r\n if (action !== null && (typeof action !== 'object' || typeof action.text !== 'string' || typeof action.handler !== 'function')) {\r\n console.warn('Snackbar: Action must be an object with \"text\" (string) and \"handler\" (function) properties')\r\n return\r\n }\r\n if (typeof duration !== 'number' || duration <= 0) {\r\n console.warn('Snackbar: Duration must be a positive number')\r\n return\r\n }\r\n\r\n this._queue.push({ message, action, duration })\r\n if (this._state === 'idle') this.showNext()\r\n }\r\n\r\n static _cleanupAction() {\r\n const snackbar = document.getElementById('mini-snackbar')\r\n if (!snackbar) return\r\n\r\n const actionButton = snackbar.querySelector('.mini-snackbar-action')\r\n if (actionButton && this._currentActionHandler) {\r\n actionButton.removeEventListener('click', this._currentActionHandler)\r\n this._currentActionHandler = null\r\n actionButton.remove()\r\n }\r\n }\r\n\r\n static _showSnackbar(message, action, duration, onHide = null) {\r\n const snackbar = document.getElementById('mini-snackbar')\r\n if (!snackbar) {\r\n console.error('Snackbar: Snackbar element not found. Ensure init() has been called.')\r\n return\r\n }\r\n\r\n this._state = 'showing'\r\n this._isShowing = true\r\n const snackbarText = snackbar.querySelector('.mini-snackbar-text')\r\n snackbarText.textContent = message\r\n\r\n if (action) {\r\n const actionButton = document.createElement('md-text-button')\r\n actionButton.classList.add('mini-snackbar-action')\r\n\r\n // Fallback for when Material Components are not available\r\n if (customElements.get('md-text-button') === undefined) {\r\n actionButton.setAttribute('data-fallback', '')\r\n }\r\n\r\n actionButton.textContent = action.text\r\n\r\n this._currentActionHandler = () => {\r\n action.handler()\r\n this._hideSnackbar(onHide)\r\n }\r\n\r\n actionButton.addEventListener('click', this._currentActionHandler)\r\n snackbar.appendChild(actionButton)\r\n }\r\n\r\n snackbar.classList.add('show')\r\n\r\n this._currentTimeout = setTimeout(() => {\r\n this._hideSnackbar(onHide)\r\n }, duration)\r\n }\r\n\r\n static _hideSnackbar(onHide = null) {\r\n if (this._currentTimeout) {\r\n clearTimeout(this._currentTimeout)\r\n this._currentTimeout = null\r\n }\r\n\r\n this._state = 'transitioning'\r\n const snackbar = document.getElementById('mini-snackbar')\r\n if (snackbar) {\r\n snackbar.classList.remove('show')\r\n }\r\n\r\n this._cleanupAction()\r\n\r\n // Wait for CSS transition to complete\r\n const transitionDuration = this.getTransitionDuration()\r\n setTimeout(() => {\r\n this._isShowing = false\r\n this._state = 'idle'\r\n if (onHide) onHide()\r\n }, transitionDuration)\r\n }\r\n\r\n static show(message, action = null, duration = 3000) {\r\n if (!this._initialized) {\r\n console.warn('Snackbar: Not initialized. Call Snackbar.init() first.')\r\n return\r\n }\r\n\r\n if (typeof message !== 'string' || message.trim() === '') {\r\n console.warn('Snackbar: Message must be a non-empty string')\r\n return\r\n }\r\n if (action !== null && (typeof action !== 'object' || typeof action.text !== 'string' || typeof action.handler !== 'function')) {\r\n console.warn('Snackbar: Action must be an object with \"text\" (string) and \"handler\" (function) properties')\r\n return\r\n }\r\n if (typeof duration !== 'number' || duration <= 0) {\r\n console.warn('Snackbar: Duration must be a positive number')\r\n return\r\n }\r\n\r\n // Queue message if currently transitioning\r\n if (this._state === 'transitioning') {\r\n this.add(message, action, duration)\r\n return\r\n }\r\n\r\n // Interrupt current snackbar if showing\r\n if (this._isShowing) {\r\n this._state = 'transitioning'\r\n if (this._currentTimeout) {\r\n clearTimeout(this._currentTimeout)\r\n this._currentTimeout = null\r\n }\r\n const snackbar = document.getElementById('mini-snackbar')\r\n if (snackbar) {\r\n snackbar.classList.remove('show')\r\n }\r\n this._cleanupAction()\r\n\r\n const transitionDuration = this.getTransitionDuration()\r\n setTimeout(() => {\r\n this._isShowing = false\r\n this._state = 'idle'\r\n this._showSnackbar(message, action, duration)\r\n }, transitionDuration)\r\n } else {\r\n this._showSnackbar(message, action, duration)\r\n }\r\n }\r\n\r\n static showNext() {\r\n if (this._queue.length === 0) {\r\n this._isShowing = false\r\n this._state = 'idle'\r\n return\r\n }\r\n\r\n const { message, action, duration } = this._queue.shift()\r\n this._showSnackbar(message, action, duration, () => {\r\n setTimeout(() => this.showNext(), 200)\r\n })\r\n }\r\n\r\n static clearQueue() {\r\n this._queue = []\r\n }\r\n\r\n static hideCurrent() {\r\n if (this._isShowing && this._state !== 'transitioning') {\r\n this._hideSnackbar()\r\n }\r\n }\r\n\r\n static isInitialized() {\r\n return this._initialized\r\n }\r\n\r\n // Getters/setters for testing\r\n static get queue() { return this._queue }\r\n static set queue(value) { this._queue = value }\r\n static get isShowing() { return this._isShowing }\r\n static set isShowing(value) { this._isShowing = value }\r\n static get currentTimeout() { return this._currentTimeout }\r\n static set currentTimeout(value) { this._currentTimeout = value }\r\n static get state() { return this._state }\r\n static set state(value) { this._state = value }\r\n}\r\n\r\n// Module exports\r\nif (typeof module !== 'undefined' && module.exports) {\r\n module.exports = Snackbar\r\n}\r\n\r\n// Make available globally in browser\r\nif (typeof window !== 'undefined') {\r\n window.Snackbar = Snackbar\r\n}\r\n\r\n"],"names":["Snackbar","static","init","options","this","_initialized","document","body","console","error","transitionDuration","_transitionDuration","getElementById","style","createElement","id","textContent","head","appendChild","snackbar","className","setAttribute","snackbarText","destroy","hideCurrent","clearQueue","remove","styles","_state","_isShowing","_currentActionHandler","_currentTimeout","getTransitionDuration","duration","window","getComputedStyle","value","parseFloat","includes","e","warn","add","message","action","trim","text","handler","_queue","push","showNext","_cleanupAction","actionButton","querySelector","removeEventListener","_showSnackbar","onHide","classList","undefined","customElements","get","_hideSnackbar","addEventListener","setTimeout","clearTimeout","show","length","shift","isInitialized","queue","isShowing","currentTimeout","state","module","exports"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"minisnackbar.min.js","sources":["../src/constants.ts","../src/renderer.ts","../src/styles.ts","../src/validation.ts","../src/index.ts","../src/controller.ts","../src/browser.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["SNACKBAR_ID","STYLES_ID","SNACKBAR_VISIBLE_CLASS","SNACKBAR_TEXT_CLASS","SnackbarRenderer","constructor","document","this","actionButton","actionHandler","ensureRoot","transitionDuration","body","getElementById","styles","createElement","id","textContent","createSnackbarStyles","head","appendChild","installSnackbarStyles","getRoot","snackbar","className","setAttribute","text","destroy","cleanupAction","remove","removeSnackbarStyles","setMessage","message","querySelector","setAction","action","onClick","createActionButton","classList","add","addEventListener","show","hide","removeEventListener","getTransitionDuration","fallback","view","defaultView","duration","firstDuration","split","trim","value","Number","parseFloat","isFinite","endsWith","parseTransitionDuration","getComputedStyle","error","console","warn","registry","customElements","get","button","type","normalizeItem","handler","isValidDuration","controller","queue","state","renderer","displayTimer","transitionTimer","queueGapTimer","initialized","init","options","undefined","normalizeTransitionDuration","clearTimers","clearQueue","ensureInitialized","item","push","showNext","clearTimer","showItem","hideActiveItem","hideCurrent","finishCurrentItem","isInitialized","shift","setTimeout","afterHidden","length","timer","timeout","clearTimeout","Snackbar","window"],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { SnackbarAction } from './types';
|
|
2
|
+
export declare class SnackbarRenderer {
|
|
3
|
+
private readonly document;
|
|
4
|
+
private actionButton;
|
|
5
|
+
private actionHandler;
|
|
6
|
+
constructor(document: Document);
|
|
7
|
+
ensureRoot(transitionDuration: number): boolean;
|
|
8
|
+
destroy(): void;
|
|
9
|
+
setMessage(message: string): void;
|
|
10
|
+
setAction(action: SnackbarAction | null, onClick: () => void): void;
|
|
11
|
+
show(): void;
|
|
12
|
+
hide(): void;
|
|
13
|
+
cleanupAction(): void;
|
|
14
|
+
getTransitionDuration(fallback: number): number;
|
|
15
|
+
private getRoot;
|
|
16
|
+
private createActionButton;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,aAAa,CAA4B;gBAErC,QAAQ,EAAE,QAAQ;IAI9B,UAAU,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO;IAsB/C,OAAO,IAAI,IAAI;IAMf,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKjC,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI;IAcnE,IAAI,IAAI,IAAI;IAIZ,IAAI,IAAI,IAAI;IAIZ,aAAa,IAAI,IAAI;IAUrB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAc/C,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,kBAAkB;CAW3B"}
|
package/dist/styles.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function createSnackbarStyles(transitionDuration: number): string;
|
|
2
|
+
export declare function installSnackbarStyles(document: Document, transitionDuration: number): void;
|
|
3
|
+
export declare function removeSnackbarStyles(document: Document): void;
|
|
4
|
+
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAEA,wBAAgB,oBAAoB,CAAC,kBAAkB,EAAE,MAAM,GAAG,MAAM,CA6EvE;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAQ1F;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAE7D"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface SnackbarAction {
|
|
2
|
+
text: string;
|
|
3
|
+
handler: () => void;
|
|
4
|
+
}
|
|
5
|
+
export interface SnackbarOptions {
|
|
6
|
+
transitionDuration?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface SnackbarItem {
|
|
9
|
+
message: string;
|
|
10
|
+
action: SnackbarAction | null;
|
|
11
|
+
duration: number;
|
|
12
|
+
}
|
|
13
|
+
export type SnackbarState = 'idle' | 'showing' | 'transitioning';
|
|
14
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,cAAc,GAAG,IAAI,CAAA;IAC7B,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,eAAe,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { SnackbarItem } from './types';
|
|
2
|
+
type Warn = (message: string) => void;
|
|
3
|
+
export declare function normalizeItem(message: unknown, action?: unknown, duration?: unknown, warn?: Warn): SnackbarItem | null;
|
|
4
|
+
export declare function normalizeTransitionDuration(duration: unknown, warn?: Warn): number | null;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,SAAS,CAAA;AAE3D,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;AAKrC,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,MAAM,GAAE,OAAc,EACtB,QAAQ,GAAE,OAA0B,EACpC,IAAI,GAAE,IAAmB,GACxB,YAAY,GAAG,IAAI,CA4BrB;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,OAAO,EACjB,IAAI,GAAE,IAAmB,GACxB,MAAM,GAAG,IAAI,CASf"}
|