added other units

This commit is contained in:
Benjamin Adovasio
2025-11-16 22:54:34 -05:00
parent 5bd461229a
commit ca92b603be
46 changed files with 2779 additions and 0 deletions

View File

@@ -0,0 +1,92 @@
(function (window) {
class Dismissible {
/**
*
* @param {HTMLElement} root Root Element
*/
constructor(root, config = {
icons: {
dismiss: ['lni', 'lni-16', 'lni-close'],
info: ['lni', 'lni-32', 'lni-popup'],
success: ['lni', 'lni-32', 'lni-checkmark-circle'],
error: ['lni', 'lni-32', 'lni-warning']
}
}) {
this._container = root;
this._config = config;
this._container.classList.add('dismissible-container');
}
show(level, message, icon) {
this.dismiss();
const dismissible = this._createDismissible(level, message, icon);
this._container.appendChild(dismissible);
}
dismiss() {
while (this._container.firstChild) {
this._container.firstChild.remove();
}
}
error(message) {
this.show('error', message, this._config.icons.error);
}
info(message) {
this.show('info', message, this._config.icons.info);
}
success(message) {
this.show('success', message, this._config.icons.success);
}
_createDismissible(level, message, icon) {
const dismissible = document.createElement('div');
dismissible.classList.add('dismissible');
dismissible.classList.add(level);
dismissible.appendChild(this._createIcon(icon));
dismissible.appendChild(this._createMessage(message));
dismissible.appendChild(this._createDismissButton());
return dismissible;
}
_createDismissButton() {
const {
icons
} = this._config;
const button = document.createElement('button');
button.classList.add('dismiss');
button.addEventListener('click', () => this.dismiss());
const buttonIcon = document.createElement('i');
buttonIcon.classList.add(...icons.dismiss);
button.appendChild(buttonIcon);
return button;
}
_createMessage(message) {
const element = document.createElement('div');
element.classList.add('dismissible-message');
element.innerText = message;
return element;
}
_createIcon(icon, text) {
const element = document.createElement('i');
element.classList.add(...icon, 'dismissible-icon');
return element;
}
}
window.Dismissible = Dismissible;
})(window);