Spaces:
Sleeping
Sleeping
| ; | |
| Object.defineProperty(exports, "__esModule", { | |
| value: true | |
| }); | |
| Object.defineProperty(exports, "applyImportantSelector", { | |
| enumerable: true, | |
| get: function() { | |
| return applyImportantSelector; | |
| } | |
| }); | |
| const _postcssselectorparser = /*#__PURE__*/ _interop_require_default(require("postcss-selector-parser")); | |
| const _pseudoElements = require("./pseudoElements"); | |
| function _interop_require_default(obj) { | |
| return obj && obj.__esModule ? obj : { | |
| default: obj | |
| }; | |
| } | |
| function applyImportantSelector(selector, important) { | |
| let sel = (0, _postcssselectorparser.default)().astSync(selector); | |
| sel.each((sel)=>{ | |
| // For nesting, we only need to wrap a selector with :is() if it has a top-level combinator, | |
| // e.g. `.dark .text-white`, to be independent of DOM order. Any other selector, including | |
| // combinators inside of pseudos like `:where()`, are ok to nest. | |
| let shouldWrap = sel.nodes.some((node)=>node.type === "combinator"); | |
| if (shouldWrap) { | |
| sel.nodes = [ | |
| _postcssselectorparser.default.pseudo({ | |
| value: ":is", | |
| nodes: [ | |
| sel.clone() | |
| ] | |
| }) | |
| ]; | |
| } | |
| (0, _pseudoElements.movePseudos)(sel); | |
| }); | |
| return `${important} ${sel.toString()}`; | |
| } | |