From 4c5e6efaa3c03d332c33a6f87c6c2e4a5ec73ad1 Mon Sep 17 00:00:00 2001 From: fcbvirus0k Date: Mon, 13 Nov 2023 14:31:32 +0300 Subject: [PATCH 1/2] feat: add support for ':root' selector --- src/index.js | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/index.js b/src/index.js index 7cc2bf6..095ba61 100644 --- a/src/index.js +++ b/src/index.js @@ -17,6 +17,7 @@ const viewportUnitRe = /^([+-]?[0-9.]+)(vh|vw|vmin|vmax)$/; const percentRe = /^([+-]?(?:\d*\.)?\d+(?:[Ee][+-]?\d+)?%)$/; const unsupportedUnitRe = /^([+-]?(?:\d*\.)?\d+(?:[Ee][+-]?\d+)?(ch|em|ex|cm|mm|in|pc|pt))$/; const cssPartRe = /::?part\(([^)]+)\)/; +const rootRe = /:root/ const shorthandBorderProps = [ "border-radius", "border-width", @@ -100,16 +101,20 @@ const transform = (css, options) => { } if ( - rule.selectors[s].indexOf(".") !== 0 || - (rule.selectors[s].indexOf(":") !== -1 && - (options != null && options.parsePartSelectors - ? !cssPartRe.test(rule.selectors[s]) - : true)) || - rule.selectors[s].indexOf("[") !== -1 || - rule.selectors[s].indexOf("~") !== -1 || - rule.selectors[s].indexOf(">") !== -1 || - rule.selectors[s].indexOf("+") !== -1 || - rule.selectors[s].indexOf(" ") !== -1 + rootRe.test(rule.selectors[s]) + ? false + : ( + rule.selectors[s].indexOf(".") !== 0 || + (rule.selectors[s].indexOf(":") !== -1 && + (options != null && options.parsePartSelectors + ? !cssPartRe.test(rule.selectors[s]) + : true)) || + rule.selectors[s].indexOf("[") !== -1 || + rule.selectors[s].indexOf("~") !== -1 || + rule.selectors[s].indexOf(">") !== -1 || + rule.selectors[s].indexOf("+") !== -1 || + rule.selectors[s].indexOf(" ") !== -1 + ) ) { continue; } From 92eff47db0c95f26d3636d5d8c5530c772c76d0f Mon Sep 17 00:00:00 2001 From: fcbvirus0k Date: Mon, 13 Nov 2023 16:05:00 +0300 Subject: [PATCH 2/2] fix: missing ; --- src/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index 095ba61..0304360 100644 --- a/src/index.js +++ b/src/index.js @@ -17,7 +17,7 @@ const viewportUnitRe = /^([+-]?[0-9.]+)(vh|vw|vmin|vmax)$/; const percentRe = /^([+-]?(?:\d*\.)?\d+(?:[Ee][+-]?\d+)?%)$/; const unsupportedUnitRe = /^([+-]?(?:\d*\.)?\d+(?:[Ee][+-]?\d+)?(ch|em|ex|cm|mm|in|pc|pt))$/; const cssPartRe = /::?part\(([^)]+)\)/; -const rootRe = /:root/ +const rootRe = /:root/; const shorthandBorderProps = [ "border-radius", "border-width",