mirror of
https://github.com/owncast/owncast.git
synced 2024-10-10 19:16:02 +00:00
64 lines
1.6 KiB
JavaScript
64 lines
1.6 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = _default;
|
|
|
|
var _buildSelectorVariant = _interopRequireDefault(require("../util/buildSelectorVariant"));
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
function _default({
|
|
addVariant,
|
|
config,
|
|
postcss,
|
|
prefix
|
|
}) {
|
|
addVariant('dark', ({
|
|
container,
|
|
separator,
|
|
modifySelectors
|
|
}) => {
|
|
if (config('dark') === false) {
|
|
return postcss.root();
|
|
}
|
|
|
|
if (config('dark') === 'media') {
|
|
const modified = modifySelectors(({
|
|
selector
|
|
}) => {
|
|
return (0, _buildSelectorVariant.default)(selector, 'dark', separator, message => {
|
|
throw container.error(message);
|
|
});
|
|
});
|
|
const mediaQuery = postcss.atRule({
|
|
name: 'media',
|
|
params: '(prefers-color-scheme: dark)'
|
|
});
|
|
mediaQuery.append(modified);
|
|
container.append(mediaQuery);
|
|
return container;
|
|
}
|
|
|
|
if (config('dark') === 'class') {
|
|
const modified = modifySelectors(({
|
|
selector
|
|
}) => {
|
|
return (0, _buildSelectorVariant.default)(selector, 'dark', separator, message => {
|
|
throw container.error(message);
|
|
});
|
|
});
|
|
modified.walkRules(rule => {
|
|
rule.selectors = rule.selectors.map(selector => {
|
|
return `${prefix('.dark')} ${selector}`;
|
|
});
|
|
});
|
|
return modified;
|
|
}
|
|
|
|
throw new Error("The `dark` config option must be either 'media' or 'class'.");
|
|
}, {
|
|
unstable_stack: true
|
|
});
|
|
} |