✨ (bootsier): Añade AdminLTE 4 y Bootstrap Icons
Integra AdminLTE 4.0.0 (SCSS y JS), Bootstrap Icons 1.13.1 y las fuentes Source Sans 3 VF; reorganiza los SCSS del tema con la nueva estructura de *pagetop-build*.
This commit is contained in:
parent
f27790c3a2
commit
1bd97d5705
160 changed files with 13401 additions and 133 deletions
65
extensions/pagetop-bootsier/assets/bootsier.shell.js
Normal file
65
extensions/pagetop-bootsier/assets/bootsier.shell.js
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
(function () {
|
||||
'use strict';
|
||||
|
||||
// Fullscreen: keeps maximize/minimize icons in sync with the actual fullscreen state.
|
||||
document.addEventListener('fullscreenchange', function () {
|
||||
var isFs = !!document.fullscreenElement;
|
||||
document.querySelectorAll('[data-lte-icon="maximize"]').forEach(function (el) {
|
||||
el.classList.toggle('d-none', isFs);
|
||||
});
|
||||
document.querySelectorAll('[data-lte-icon="minimize"]').forEach(function (el) {
|
||||
el.classList.toggle('d-none', !isFs);
|
||||
});
|
||||
});
|
||||
|
||||
// Color mode selector (light / dark / auto).
|
||||
var STORAGE_KEY = 'lte-theme';
|
||||
var getStored = function () { return localStorage.getItem(STORAGE_KEY); };
|
||||
var setStored = function (theme) { localStorage.setItem(STORAGE_KEY, theme); };
|
||||
var prefersDark = function () {
|
||||
return window.matchMedia('(prefers-color-scheme: dark)').matches;
|
||||
};
|
||||
|
||||
var setTheme = function (theme) {
|
||||
var resolved = (theme === 'auto') ? (prefersDark() ? 'dark' : 'light') : theme;
|
||||
document.documentElement.setAttribute('data-bs-theme', resolved);
|
||||
};
|
||||
|
||||
var showActiveTheme = function (theme) {
|
||||
document.querySelectorAll('[data-bs-theme-value]').forEach(function (el) {
|
||||
el.classList.remove('active');
|
||||
el.setAttribute('aria-pressed', 'false');
|
||||
var check = el.querySelector('.bi-check-lg');
|
||||
if (check) { check.classList.add('d-none'); }
|
||||
});
|
||||
var active = document.querySelector('[data-bs-theme-value="' + theme + '"]');
|
||||
if (active) {
|
||||
active.classList.add('active');
|
||||
active.setAttribute('aria-pressed', 'true');
|
||||
var check = active.querySelector('.bi-check-lg');
|
||||
if (check) { check.classList.remove('d-none'); }
|
||||
}
|
||||
document.querySelectorAll('[data-lte-theme-icon]').forEach(function (icon) {
|
||||
icon.classList.toggle('d-none', icon.dataset.lteThemeIcon !== theme);
|
||||
});
|
||||
};
|
||||
|
||||
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', function () {
|
||||
var stored = getStored();
|
||||
if (!stored || stored === 'auto') { setTheme('auto'); }
|
||||
});
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
var theme = getStored() || 'auto';
|
||||
setTheme(theme);
|
||||
showActiveTheme(theme);
|
||||
document.querySelectorAll('[data-bs-theme-value]').forEach(function (toggle) {
|
||||
toggle.addEventListener('click', function () {
|
||||
var t = toggle.getAttribute('data-bs-theme-value');
|
||||
setStored(t);
|
||||
setTheme(t);
|
||||
showActiveTheme(t);
|
||||
});
|
||||
});
|
||||
});
|
||||
}());
|
||||
Loading…
Add table
Add a link
Reference in a new issue