Skip to content

Commit

Permalink
Merge branch 'main' into fix-media-feature-name-no-unknown-false-posi…
Browse files Browse the repository at this point in the history
…tives-for-environment-blending--considerate-boston-terrier-d8de21226f
  • Loading branch information
romainmenke committed Jun 26, 2023
2 parents 469666b + 67f0a8a commit 57fe5fe
Show file tree
Hide file tree
Showing 8 changed files with 71 additions and 15 deletions.
5 changes: 5 additions & 0 deletions .changeset/great-feet-brake.md
@@ -0,0 +1,5 @@
---
"stylelint": patch
---

Fixed: `selector-pseudo-class-no-unknown` false negatives for pseudo-elements with matching names
5 changes: 5 additions & 0 deletions .changeset/tough-shrimps-walk.md
@@ -0,0 +1,5 @@
---
"stylelint": patch
---

Fixed: `media-feature-name-no-vendor-prefix` positions for `*-device-pixel-ratio`
23 changes: 22 additions & 1 deletion lib/rules/media-feature-name-no-vendor-prefix/__tests__/index.js
Expand Up @@ -41,12 +41,33 @@ testRule({
line: 1,
column: 9,
},
{
code: '@media (min--moz-device-pixel-ratio: 1) {}',
fixed: '@media (min-device-pixel-ratio: 1) {}',
message: messages.rejected,
line: 1,
column: 9,
},
{
code: '@media ( max--moz-device-pixel-ratio: 1) {}',
fixed: '@media ( max-device-pixel-ratio: 1) {}',
message: messages.rejected,
line: 1,
column: 10,
},
{
code: '@media (/* a comment */MIN--moz-device-pixel-ratio: 1) {}',
fixed: '@media (/* a comment */MIN-device-pixel-ratio: 1) {}',
message: messages.rejected,
line: 1,
column: 24,
},
{
code: '@media\n\t(min--moz-device-pixel-ratio: 1) {}',
fixed: '@media\n\t(min-device-pixel-ratio: 1) {}',
message: messages.rejected,
line: 2,
column: 6,
column: 3,
},
{
code: '@media (-o-max-device-pixel-ratio: 1/1) {}',
Expand Down
2 changes: 1 addition & 1 deletion lib/rules/media-feature-name-no-vendor-prefix/index.js
Expand Up @@ -32,7 +32,7 @@ const rule = (primary, _secondaryOptions, context) => {
return;
}

const matches = atRule.toString().match(/-[a-z-]+device-pixel-ratio/gi);
const matches = atRule.toString().match(/(?:min-|max-)?-[a-z-]+device-pixel-ratio/gi);

if (!matches) {
return;
Expand Down
16 changes: 16 additions & 0 deletions lib/rules/selector-pseudo-class-no-unknown/__tests__/index.js
Expand Up @@ -202,6 +202,22 @@ testRule({
endLine: 1,
endColumn: 7,
},
{
code: ':slotted {}',
message: messages.rejected(':slotted'),
line: 1,
column: 1,
endLine: 1,
endColumn: 9,
},
{
code: ':placeholder {}',
message: messages.rejected(':placeholder'),
line: 1,
column: 1,
endLine: 1,
endColumn: 13,
},
{
code: '@page :blank:unknown { }',
message: messages.rejected(':unknown'),
Expand Down
16 changes: 12 additions & 4 deletions lib/rules/selector-pseudo-class-no-unknown/index.js
Expand Up @@ -7,6 +7,7 @@ const isStandardSyntaxRule = require('../../utils/isStandardSyntaxRule');
const isStandardSyntaxSelector = require('../../utils/isStandardSyntaxSelector');
const {
atRulePagePseudoClasses,
levelOneAndTwoPseudoElements,
pseudoClasses,
pseudoElements,
webkitScrollbarPseudoClasses,
Expand Down Expand Up @@ -68,26 +69,33 @@ const rule = (primary, secondaryOptions) => {
return;
}

// Ignore pseudo-elements
if (value.slice(0, 2) === '::') {
if (value.startsWith('::')) {
return;
}

const name = value.replace(/^:*/, '').toLowerCase();

if (levelOneAndTwoPseudoElements.has(name)) {
return;
}

if (optionsMatches(secondaryOptions, 'ignorePseudoClasses', pseudoNode.value.slice(1))) {
return;
}

const hasVendorPrefix = vendor.prefix(name);
let index = null;
const name = value.slice(1).toLowerCase();

if (isAtRule(node) && node.name === 'page') {
if (atRulePagePseudoClasses.has(name)) {
return;
}

index = atRuleParamIndex(node) + pseudoNode.sourceIndex;
} else if (pseudoElements.has(name) && !hasVendorPrefix) {
index = pseudoNode.sourceIndex;
} else {
if (vendor.prefix(name) || pseudoClasses.has(name) || pseudoElements.has(name)) {
if (hasVendorPrefix || pseudoClasses.has(name)) {
return;
}

Expand Down
17 changes: 9 additions & 8 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -199,7 +199,7 @@
"eslint": "^8.43.0",
"eslint-config-stylelint": "^18.0.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-jest": "^27.2.1",
"eslint-plugin-jest": "^27.2.2",
"husky": "^8.0.3",
"jest": "^29.5.0",
"jest-preset-stylelint": "^6.1.0",
Expand Down

0 comments on commit 57fe5fe

Please sign in to comment.