basex-lsp/webapp/static/clients/codemirror/wa-setup.js
2025-12-09 16:09:00 +00:00

48 lines
No EOL
2.2 KiB
JavaScript

import { setBasePath, registerIconLibrary } from '../../webawesome/dist-cdn/webawesome.js';
import '../../webawesome/dist-cdn/components/button/button.js';
import '../../webawesome/dist-cdn/components/button-group/button-group.js';
import '../../webawesome/dist-cdn/components/details/details.js';
import '../../webawesome/dist-cdn/components/dropdown/dropdown.js';
import '../../webawesome/dist-cdn/components/divider/divider.js';
import '../../webawesome/dist-cdn/components/icon/icon.js';
import '../../webawesome/dist-cdn/components/input/input.js';
import '../../webawesome/dist-cdn/components/relative-time/relative-time.js';
import '../../webawesome/dist-cdn/components/tooltip/tooltip.js';
import '../../webawesome/dist-cdn/components/popover/popover.js';
import '../../webawesome/dist-cdn/components/split-panel/split-panel.js';
import '../../webawesome/dist-cdn/components/tree/tree.js';
setBasePath('/static/webawesome/dist-cdn');
registerIconLibrary('tabler', {
resolver: name => `https://cdn.jsdelivr.net/npm/@tabler/icons@3.35.0/icons/outline/${name}.svg`,
mutator: svg => {
svg.style.fill = 'none';
svg.setAttribute('stroke', 'currentColor');
}
});
registerIconLibrary('codicon', {
resolver: (name, family) => {
return `/static/clients/codicon@0.0.40/icons/${name}.svg`
},
mutator: svg => {
svg.style.fill = 'none';
svg.setAttribute('stroke', 'currentColor');
}
});
// @TODO color scheme https://github.com/shoelace-style/webawesome/issues/1304
// Set the initial color scheme before the page renders to prevent flashing
const value = localStorage.getItem('color-scheme') || 'auto';
const isDark = value === 'dark' || (value === 'auto' && matchMedia('(prefers-color-scheme: dark)').matches);
document.documentElement.classList.toggle('wa-dark', isDark);
const colorScheme = "light"
const systemDark = window.matchMedia('(prefers-color-scheme: dark)');
const applyDark = function (event = systemDark) {
const isDark = colorScheme === 'auto' ? event.matches : colorScheme === 'dark';
document.documentElement.classList.toggle('wa-dark', isDark);
};
systemDark.addEventListener('change', applyDark);
applyDark();