diff --git a/src/rules/no-invalid-named-grid-areas.js b/src/rules/no-invalid-named-grid-areas.js index 976f2ca6..1f8897f0 100644 --- a/src/rules/no-invalid-named-grid-areas.js +++ b/src/rules/no-invalid-named-grid-areas.js @@ -22,6 +22,11 @@ */ const nullCellToken = /^\.+$/u; +/** + * Regular expression to match sequences of CSS whitespace + */ +const cssWhitespace = /[\t\n ]+/u; + /** * Finds non-rectangular grid areas in a 2D grid * @param {string[][]} grid 2D array representing the grid areas @@ -131,7 +136,7 @@ export default /** @satisfies {NoInvalidNamedGridAreasRuleDefinition} */ ({ continue; } - const row = trimmedValue.split(" ").filter(Boolean); + const row = trimmedValue.split(cssWhitespace); grid.push(row); if (firstRowLen === null) { diff --git a/tests/rules/no-invalid-named-grid-areas.test.js b/tests/rules/no-invalid-named-grid-areas.test.js index ea4203c5..98d439da 100644 --- a/tests/rules/no-invalid-named-grid-areas.test.js +++ b/tests/rules/no-invalid-named-grid-areas.test.js @@ -29,6 +29,9 @@ ruleTester.run("no-invalid-named-grid-areas", rule, { '.grid { grid-template-areas: "a a a" "b b b"; }', '.grid { grid-template-areas: " a a a " "b b b"; }', '.grid { GRID-TEMPLATE-AREAS: "a a a" "b b b"; }', + '.grid { grid-template-areas: "a\tb" "a b"; }', + '.grid { grid-template-areas: "a\t b" "a b"; }', + dedent` .grid { grid-template-areas: "head head" "nav main" @@ -76,6 +79,18 @@ ruleTester.run("no-invalid-named-grid-areas", rule, { }, ], }, + { + code: 'a { grid-template-areas: "a\ta" "a b c"; }', + errors: [ + { + messageId: "unevenGridArea", + line: 1, + column: 32, + endLine: 1, + endColumn: 39, + }, + ], + }, { code: 'a { grid-template-areas: "a a a" "b b a"; }', errors: [