eslint-plugin-better-tailwindcss 3.6.2 → 3.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,12 +2,12 @@ import type { Rule } from "eslint";
2
2
  import type { AttributeOption, CalleeOption, ESLintRule, TagOption, VariableOption } from "../types/rule.js";
3
3
  export type Options = [
4
4
  Partial<AttributeOption & CalleeOption & TagOption & VariableOption & {
5
- syntax?: "arbitrary" | "parentheses";
5
+ syntax?: "arbitrary" | "parentheses" | "shorthand" | "variable";
6
6
  }>
7
7
  ];
8
8
  export declare const enforceConsistentVariableSyntax: ESLintRule<Options>;
9
9
  export declare function getOptions(ctx: Rule.RuleContext): {
10
- syntax: "arbitrary" | "parentheses";
10
+ syntax: "shorthand" | "arbitrary" | "parentheses" | "variable";
11
11
  attributes: any;
12
12
  callees: any;
13
13
  tags: any;
@@ -1 +1 @@
1
- {"version":3,"file":"enforce-consistent-variable-syntax.d.ts","sourceRoot":"","sources":["../../../src/rules/enforce-consistent-variable-syntax.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,EACf,MAAM,kCAAkC,CAAC;AAG1C,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CACL,eAAe,GACf,YAAY,GACZ,SAAS,GACT,cAAc,GACd;QACE,MAAM,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC;KACtC,CACF;CACF,CAAC;AAaF,eAAO,MAAM,+BAA+B,EAAE,UAAU,CAAC,OAAO,CAgC/D,CAAC;AA6JF,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW;;;;;;;EAY/C"}
1
+ {"version":3,"file":"enforce-consistent-variable-syntax.d.ts","sourceRoot":"","sources":["../../../src/rules/enforce-consistent-variable-syntax.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,EACf,MAAM,kCAAkC,CAAC;AAG1C,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CACL,eAAe,GACf,YAAY,GACZ,SAAS,GACT,cAAc,GACd;QACE,MAAM,CAAC,EAAE,WAAW,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;KACjE,CACF;CACF,CAAC;AAaF,eAAO,MAAM,+BAA+B,EAAE,UAAU,CAAC,OAAO,CAgC/D,CAAC;AAuNF,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW;;;;;;;EAY/C"}
@@ -7,10 +7,11 @@ const descriptions_js_1 = require("../options/descriptions.js");
7
7
  const lint_js_1 = require("../utils/lint.js");
8
8
  const options_js_1 = require("../utils/options.js");
9
9
  const rule_js_1 = require("../utils/rule.js");
10
+ const version_js_1 = require("../async-utils/version.js");
10
11
  const defaultOptions = {
11
12
  attributes: default_options_js_1.DEFAULT_ATTRIBUTE_NAMES,
12
13
  callees: default_options_js_1.DEFAULT_CALLEE_NAMES,
13
- syntax: "parentheses",
14
+ syntax: "shorthand",
14
15
  tags: default_options_js_1.DEFAULT_TAG_NAMES,
15
16
  variables: default_options_js_1.DEFAULT_VARIABLE_NAMES
16
17
  };
@@ -35,9 +36,9 @@ exports.enforceConsistentVariableSyntax = {
35
36
  ...descriptions_js_1.VARIABLE_SCHEMA,
36
37
  ...descriptions_js_1.TAG_SCHEMA,
37
38
  syntax: {
38
- default: "parentheses",
39
- description: "Preferred syntax for CSS variables. 'arbitrary' uses [var(--foo)], 'parentheses' uses (--foo).",
40
- enum: ["arbitrary", "parentheses"],
39
+ default: "shorthand",
40
+ description: "Preferred syntax for CSS variables. 'variable' uses [var(--foo)], 'shorthand' uses (--foo) in Tailwind CSS v4 or [--foo] in Tailwind CSS v3.",
41
+ enum: ["arbitrary", "parentheses", "shorthand", "variable"],
41
42
  type: "string"
42
43
  }
43
44
  },
@@ -50,11 +51,12 @@ exports.enforceConsistentVariableSyntax = {
50
51
  };
51
52
  function lintLiterals(ctx, literals) {
52
53
  const { syntax } = getOptions(ctx);
54
+ const { major } = (0, version_js_1.getTailwindcssVersion)();
53
55
  for (const literal of literals) {
54
56
  (0, lint_js_1.lintClasses)(ctx, literal, className => {
55
57
  for (let i = 0, isInsideVar = false, isInsideBrackets = false, characters = []; i < className.length; i++) {
56
58
  characters.push(className[i]);
57
- if (syntax === "arbitrary") {
59
+ if (syntax === "arbitrary" || syntax === "variable") {
58
60
  if (isInsideVar) {
59
61
  continue;
60
62
  }
@@ -72,8 +74,21 @@ function lintLiterals(ctx, literals) {
72
74
  message: `Incorrect variable syntax: "${balancedContent}".`
73
75
  };
74
76
  }
77
+ if (isBeginningOfArbitraryShorthand(characters)) {
78
+ const start = i + 1 - (findOpeningBracketOffset(characters) ?? 0);
79
+ const [balancedArbitraryContent] = extractBalanced(className.slice(start), "[", "]");
80
+ if (!balancedArbitraryContent) {
81
+ continue;
82
+ }
83
+ const end = start + balancedArbitraryContent.length + 2;
84
+ const fixedVariable = `${className.slice(0, start)}[var(${balancedArbitraryContent})]${className.slice(end)}`;
85
+ return {
86
+ fix: fixedVariable,
87
+ message: `Incorrect variable syntax: "[${balancedArbitraryContent}]".`
88
+ };
89
+ }
75
90
  }
76
- if (syntax === "parentheses") {
91
+ if (syntax === "parentheses" || syntax === "shorthand") {
77
92
  if (isBeginningOfArbitraryVariable(characters)) {
78
93
  if (isInsideBrackets) {
79
94
  continue;
@@ -85,22 +100,47 @@ function lintLiterals(ctx, literals) {
85
100
  continue;
86
101
  }
87
102
  const end = start + balancedArbitraryContent.length + 2;
88
- const fixedVariable = `${className.slice(0, start)}(${balancedVariableContent})${className.slice(end)}`;
103
+ const fixedVariable = major >= 4 /* TailwindcssVersion.V4 */
104
+ ? `${className.slice(0, start)}(${balancedVariableContent})${className.slice(end)}`
105
+ : `${className.slice(0, start)}[${balancedVariableContent}]${className.slice(end)}`;
89
106
  return {
90
107
  fix: fixedVariable,
91
108
  message: `Incorrect variable syntax: "${balancedArbitraryContent}".`
92
109
  };
93
110
  }
111
+ if (isBeginningOfArbitraryShorthand(characters)) {
112
+ if (major <= 3 /* TailwindcssVersion.V3 */) {
113
+ continue;
114
+ }
115
+ const start = i + 1 - (findOpeningBracketOffset(characters) ?? 0);
116
+ const [balancedArbitraryContent] = extractBalanced(className.slice(start), "[", "]");
117
+ if (!balancedArbitraryContent) {
118
+ continue;
119
+ }
120
+ const end = start + balancedArbitraryContent.length + 2;
121
+ const fixedVariable = `${className.slice(0, start)}(${balancedArbitraryContent})${className.slice(end)}`;
122
+ return {
123
+ fix: fixedVariable,
124
+ message: `Incorrect variable syntax: "[${balancedArbitraryContent}]".`
125
+ };
126
+ }
94
127
  }
95
128
  }
96
129
  });
97
130
  }
98
131
  }
99
132
  function isBeginningOfParenthesizedVariable(characters) {
100
- return characters.slice(-6).join("") !== "var(--" && characters.slice(-3).join("") === "(--";
133
+ return (isBeginningOfArbitrarySyntax(characters, "(--") &&
134
+ !isBeginningOfArbitrarySyntax(characters, "[var(--"));
135
+ }
136
+ function isBeginningOfArbitraryShorthand(characters) {
137
+ return isBeginningOfArbitrarySyntax(characters, "[--");
101
138
  }
102
139
  function isBeginningOfArbitraryVariable(characters) {
103
- const toBe = "[var(--".split("");
140
+ return isBeginningOfArbitrarySyntax(characters, "[var(--");
141
+ }
142
+ function isBeginningOfArbitrarySyntax(characters, syntax) {
143
+ const toBe = syntax.split("");
104
144
  for (let i = characters.length - 1; i >= 0; i--) {
105
145
  if (toBe.length === 0) {
106
146
  return true;
@@ -111,7 +151,7 @@ function isBeginningOfArbitraryVariable(characters) {
111
151
  return false;
112
152
  }
113
153
  if (character !== expectedChar) {
114
- if (expectedChar === "[" && character === "_") {
154
+ if (character === "_") {
115
155
  continue;
116
156
  }
117
157
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"enforce-consistent-variable-syntax.js","sourceRoot":"","sources":["../../../src/rules/enforce-consistent-variable-syntax.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enforce-consistent-variable-syntax.js","sourceRoot":"","sources":["../../../src/rules/enforce-consistent-variable-syntax.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-deprecated-classes.d.ts","sourceRoot":"","sources":["../../../src/rules/no-deprecated-classes.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,EACf,MAAM,kCAAkC,CAAC;AAG1C,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CACL,eAAe,GACf,YAAY,GACZ,SAAS,GACT,cAAc,GACd;QACE,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CACF;CACF,CAAC;AAYF,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC,OAAO,CA4BnD,CAAC;AA4EF,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW;;;;;;EAE/C"}
1
+ {"version":3,"file":"no-deprecated-classes.d.ts","sourceRoot":"","sources":["../../../src/rules/no-deprecated-classes.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,EACf,MAAM,kCAAkC,CAAC;AAG1C,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CACL,eAAe,GACf,YAAY,GACZ,SAAS,GACT,cAAc,GACd;QACE,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CACF;CACF,CAAC;AAYF,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC,OAAO,CA4BnD,CAAC;AAmGF,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW;;;;;;EAE/C"}
@@ -10,6 +10,7 @@ const lint_js_1 = require("../utils/lint.js");
10
10
  const options_js_1 = require("../utils/options.js");
11
11
  const rule_js_1 = require("../utils/rule.js");
12
12
  const utils_js_1 = require("../utils/utils.js");
13
+ const version_js_1 = require("../async-utils/version.js");
13
14
  const defaultOptions = {
14
15
  attributes: default_options_js_1.DEFAULT_ATTRIBUTE_NAMES,
15
16
  callees: default_options_js_1.DEFAULT_CALLEE_NAMES,
@@ -47,25 +48,42 @@ exports.noDeprecatedClasses = {
47
48
  }
48
49
  };
49
50
  const deprecations = [
50
- [/^shadow$/, "shadow-sm"],
51
- [/^drop-shadow$/, "drop-shadow-sm"],
52
- [/^blur$/, "blur-sm"],
53
- [/^backdrop-blur$/, "backdrop-blur-sm"],
54
- [/^rounded$/, "rounded-sm"],
55
- [/^bg-opacity-(.*)$/],
56
- [/^text-opacity-(.*)$/],
57
- [/^border-opacity-(.*)$/],
58
- [/^divide-opacity-(.*)$/],
59
- [/^ring-opacity-(.*)$/],
60
- [/^placeholder-opacity-(.*)$/],
61
- [/^flex-shrink-(.*)$/, "shrink-$1"],
62
- [/^flex-grow-(.*)$/, "grow-$1"],
63
- [/^overflow-ellipsis$/, "text-ellipsis"],
64
- [/^decoration-slice$/, "box-decoration-slice"],
65
- [/^decoration-clone$/, "box-decoration-clone"]
51
+ [
52
+ { major: 4, minor: 0 }, [
53
+ [/^shadow$/, "shadow-sm"],
54
+ [/^inset-shadow$/, "inset-shadow-sm"],
55
+ [/^drop-shadow$/, "drop-shadow-sm"],
56
+ [/^blur$/, "blur-sm"],
57
+ [/^backdrop-blur$/, "backdrop-blur-sm"],
58
+ [/^rounded$/, "rounded-sm"],
59
+ [/^bg-opacity-(.*)$/],
60
+ [/^text-opacity-(.*)$/],
61
+ [/^border-opacity-(.*)$/],
62
+ [/^divide-opacity-(.*)$/],
63
+ [/^ring-opacity-(.*)$/],
64
+ [/^placeholder-opacity-(.*)$/],
65
+ [/^flex-shrink-(.*)$/, "shrink-$1"],
66
+ [/^flex-grow-(.*)$/, "grow-$1"],
67
+ [/^overflow-ellipsis$/, "text-ellipsis"],
68
+ [/^decoration-slice$/, "box-decoration-slice"],
69
+ [/^decoration-clone$/, "box-decoration-clone"]
70
+ ]
71
+ ], [
72
+ { major: 4, minor: 1 }, [
73
+ [/^bg-left-top$/, "bg-top-left"],
74
+ [/^bg-left-bottom$/, "bg-bottom-left"],
75
+ [/^bg-right-top$/, "bg-top-right"],
76
+ [/^bg-right-bottom$/, "bg-bottom-right"],
77
+ [/^object-left-top$/, "object-top-left"],
78
+ [/^object-left-bottom$/, "object-bottom-left"],
79
+ [/^object-right-top$/, "object-top-right"],
80
+ [/^object-right-bottom$/, "object-bottom-right"]
81
+ ]
82
+ ]
66
83
  ];
67
84
  function lintLiterals(ctx, literals) {
68
85
  const { tailwindConfig } = getOptions(ctx);
86
+ const { major, minor } = (0, version_js_1.getTailwindcssVersion)();
69
87
  for (const literal of literals) {
70
88
  const classes = (0, utils_js_1.splitClasses)(literal.content);
71
89
  const { dissectedClasses, warnings } = (0, dissect_classes_js_1.getDissectedClasses)({ classes, configPath: tailwindConfig, cwd: ctx.cwd });
@@ -74,21 +92,26 @@ function lintLiterals(ctx, literals) {
74
92
  if (!dissectedClass) {
75
93
  return;
76
94
  }
77
- for (const [pattern, replacement] of deprecations) {
78
- const match = dissectedClass.base.match(pattern);
79
- if (!match) {
95
+ for (const [version, deprecation] of deprecations) {
96
+ if (major < version.major || major === version.major && minor < version.minor) {
80
97
  continue;
81
98
  }
82
- if (!replacement) {
99
+ for (const [pattern, replacement] of deprecation) {
100
+ const match = dissectedClass.base.match(pattern);
101
+ if (!match) {
102
+ continue;
103
+ }
104
+ if (!replacement) {
105
+ return {
106
+ message: (0, utils_js_1.augmentMessageWithWarnings)(`Class "${className}" is deprecated. Check the tailwindcss documentation for more information: https://tailwindcss.com/docs/upgrade-guide#removed-deprecated-utilities`, DOCUMENTATION_URL, warnings)
107
+ };
108
+ }
109
+ const fix = (0, class_js_1.buildClass)({ ...dissectedClass, base: (0, utils_js_1.replacePlaceholders)(replacement, match) });
83
110
  return {
84
- message: (0, utils_js_1.augmentMessageWithWarnings)(`Class "${className}" is deprecated. Check the tailwindcss documentation for more information: https://tailwindcss.com/docs/upgrade-guide#removed-deprecated-utilities`, DOCUMENTATION_URL, warnings)
111
+ fix,
112
+ message: (0, utils_js_1.augmentMessageWithWarnings)(`Deprecated class detected. Replace "${className}" with ${fix}.`, DOCUMENTATION_URL, warnings)
85
113
  };
86
114
  }
87
- const fix = (0, class_js_1.buildClass)({ ...dissectedClass, base: (0, utils_js_1.replacePlaceholders)(replacement, match) });
88
- return {
89
- fix,
90
- message: (0, utils_js_1.augmentMessageWithWarnings)(`Deprecated class detected. Replace "${className}" with ${fix}.`, DOCUMENTATION_URL, warnings)
91
- };
92
115
  }
93
116
  });
94
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"no-deprecated-classes.js","sourceRoot":"","sources":["../../../src/rules/no-deprecated-classes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-deprecated-classes.js","sourceRoot":"","sources":["../../../src/rules/no-deprecated-classes.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@ function lintClasses(ctx, literal, report) {
29
29
  data: {
30
30
  className
31
31
  },
32
- loc: (0, utils_js_1.getExactClassLocation)(literal, stringIndex, className),
32
+ loc: (0, utils_js_1.getExactClassLocation)(literal, classStart, className),
33
33
  message: typeof result === "object" && result.message
34
34
  ? result.message
35
35
  : "Expected {{ before }} to be {{ after }}.",
@@ -1 +1 @@
1
- {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../../src/utils/lint.ts"],"names":[],"mappings":";;AAOA,kCA2DC;AAlED,gEAA0G;AAO1G,SAAgB,WAAW,CAAC,GAAqB,EAAE,OAAgB,EAAE,MAAwH;IAE3L,MAAM,WAAW,GAAG,IAAA,uBAAY,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,gBAAgB,GAAG,IAAA,2BAAgB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3D,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAEvF,MAAM,KAAK,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IAE/B,KAAI,IAAI,UAAU,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,EAAC,CAAC;QAEtF,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QAE1C,IAAG,oBAAoB,EAAC,CAAC;YACvB,WAAW,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QACrD,CAAC;QAED,MAAM,UAAU,GAAG,WAAW,CAAC;QAE/B,WAAW,IAAI,SAAS,CAAC,MAAM,CAAC;QAEhC,IAAG,CAAC,oBAAoB,EAAC,CAAC;YACxB,WAAW,IAAI,gBAAgB,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QACzD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAEpD,IAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,SAAS,EAAC,CAAC;YACnE,SAAS;QACX,CAAC;QAED,MAAM,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QAErC,IAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAC,CAAC;YACzD,KAAK,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;QACjC,CAAC;QAED,GAAG,CAAC,MAAM,CAAC;YACT,IAAI,EAAE;gBACJ,SAAS;aACV;YACD,GAAG,EAAE,IAAA,gCAAqB,EAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC;YAC3D,OAAO,EAAE,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO;gBACnD,CAAC,CAAC,MAAM,CAAC,OAAO;gBAChB,CAAC,CAAC,0CAA0C;YAC9C,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS;gBACzD;oBACE,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAClC;wBACE,YAAY,GAAG,UAAU,GAAG,CAAC;wBAC7B,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;qBACjD,EACD,MAAM,CAAC,GAAI,CACZ;iBACF;SACF,CAAC,CAAC;IAEL,CAAC;AAEH,CAAC"}
1
+ {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../../src/utils/lint.ts"],"names":[],"mappings":";;AAOA,kCA2DC;AAlED,gEAA0G;AAO1G,SAAgB,WAAW,CAAC,GAAqB,EAAE,OAAgB,EAAE,MAAwH;IAE3L,MAAM,WAAW,GAAG,IAAA,uBAAY,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,gBAAgB,GAAG,IAAA,2BAAgB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3D,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAEvF,MAAM,KAAK,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IAE/B,KAAI,IAAI,UAAU,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,EAAC,CAAC;QAEtF,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QAE1C,IAAG,oBAAoB,EAAC,CAAC;YACvB,WAAW,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QACrD,CAAC;QAED,MAAM,UAAU,GAAG,WAAW,CAAC;QAE/B,WAAW,IAAI,SAAS,CAAC,MAAM,CAAC;QAEhC,IAAG,CAAC,oBAAoB,EAAC,CAAC;YACxB,WAAW,IAAI,gBAAgB,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QACzD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAEpD,IAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,SAAS,EAAC,CAAC;YACnE,SAAS;QACX,CAAC;QAED,MAAM,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QAErC,IAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAC,CAAC;YACzD,KAAK,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;QACjC,CAAC;QAED,GAAG,CAAC,MAAM,CAAC;YACT,IAAI,EAAE;gBACJ,SAAS;aACV;YACD,GAAG,EAAE,IAAA,gCAAqB,EAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC;YAC1D,OAAO,EAAE,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO;gBACnD,CAAC,CAAC,MAAM,CAAC,OAAO;gBAChB,CAAC,CAAC,0CAA0C;YAC9C,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS;gBACzD;oBACE,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAClC;wBACE,YAAY,GAAG,UAAU,GAAG,CAAC;wBAC7B,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;qBACjD,EACD,MAAM,CAAC,GAAI,CACZ;iBACF;SACF,CAAC,CAAC;IAEL,CAAC;AAEH,CAAC"}
@@ -80,12 +80,12 @@ function isClassSticky(literal, classIndex) {
80
80
  !endsWithWhitespace && classIndex === classChunks.length - 1 && !!literal.openingBraces);
81
81
  }
82
82
  function getExactClassLocation(literal, stringIndex, className) {
83
- const linesUpToStartIndex = literal.content.slice(0, stringIndex - className.length).split(/\r?\n/);
83
+ const linesUpToStartIndex = literal.content.slice(0, stringIndex).split(/\r?\n/);
84
84
  const isOnFirstLine = linesUpToStartIndex.length === 1;
85
85
  const containingLine = linesUpToStartIndex.at(-1);
86
86
  const line = literal.loc.start.line + linesUpToStartIndex.length - 1;
87
87
  const column = (isOnFirstLine
88
- ? literal.loc.start.column
88
+ ? literal.loc.start.column + (literal.openingQuote?.length ?? 0) + (literal.closingBraces?.length ?? 0)
89
89
  : 0) + (containingLine?.length ?? 0);
90
90
  return {
91
91
  end: {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,12 @@ import type { Rule } from "eslint";
2
2
  import type { AttributeOption, CalleeOption, ESLintRule, TagOption, VariableOption } from "../types/rule.js";
3
3
  export type Options = [
4
4
  Partial<AttributeOption & CalleeOption & TagOption & VariableOption & {
5
- syntax?: "arbitrary" | "parentheses";
5
+ syntax?: "arbitrary" | "parentheses" | "shorthand" | "variable";
6
6
  }>
7
7
  ];
8
8
  export declare const enforceConsistentVariableSyntax: ESLintRule<Options>;
9
9
  export declare function getOptions(ctx: Rule.RuleContext): {
10
- syntax: "arbitrary" | "parentheses";
10
+ syntax: "shorthand" | "arbitrary" | "parentheses" | "variable";
11
11
  attributes: any;
12
12
  callees: any;
13
13
  tags: any;
@@ -1 +1 @@
1
- {"version":3,"file":"enforce-consistent-variable-syntax.d.ts","sourceRoot":"","sources":["../../../src/rules/enforce-consistent-variable-syntax.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,EACf,MAAM,kCAAkC,CAAC;AAG1C,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CACL,eAAe,GACf,YAAY,GACZ,SAAS,GACT,cAAc,GACd;QACE,MAAM,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC;KACtC,CACF;CACF,CAAC;AAaF,eAAO,MAAM,+BAA+B,EAAE,UAAU,CAAC,OAAO,CAgC/D,CAAC;AA6JF,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW;;;;;;;EAY/C"}
1
+ {"version":3,"file":"enforce-consistent-variable-syntax.d.ts","sourceRoot":"","sources":["../../../src/rules/enforce-consistent-variable-syntax.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,EACf,MAAM,kCAAkC,CAAC;AAG1C,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CACL,eAAe,GACf,YAAY,GACZ,SAAS,GACT,cAAc,GACd;QACE,MAAM,CAAC,EAAE,WAAW,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;KACjE,CACF;CACF,CAAC;AAaF,eAAO,MAAM,+BAA+B,EAAE,UAAU,CAAC,OAAO,CAgC/D,CAAC;AAuNF,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW;;;;;;;EAY/C"}
@@ -3,10 +3,11 @@ import { ATTRIBUTE_SCHEMA, CALLEE_SCHEMA, TAG_SCHEMA, VARIABLE_SCHEMA } from "..
3
3
  import { lintClasses } from "../utils/lint.js";
4
4
  import { getCommonOptions } from "../utils/options.js";
5
5
  import { createRuleListener } from "../utils/rule.js";
6
+ import { getTailwindcssVersion, TailwindcssVersion } from "../async-utils/version.js";
6
7
  const defaultOptions = {
7
8
  attributes: DEFAULT_ATTRIBUTE_NAMES,
8
9
  callees: DEFAULT_CALLEE_NAMES,
9
- syntax: "parentheses",
10
+ syntax: "shorthand",
10
11
  tags: DEFAULT_TAG_NAMES,
11
12
  variables: DEFAULT_VARIABLE_NAMES
12
13
  };
@@ -31,9 +32,9 @@ export const enforceConsistentVariableSyntax = {
31
32
  ...VARIABLE_SCHEMA,
32
33
  ...TAG_SCHEMA,
33
34
  syntax: {
34
- default: "parentheses",
35
- description: "Preferred syntax for CSS variables. 'arbitrary' uses [var(--foo)], 'parentheses' uses (--foo).",
36
- enum: ["arbitrary", "parentheses"],
35
+ default: "shorthand",
36
+ description: "Preferred syntax for CSS variables. 'variable' uses [var(--foo)], 'shorthand' uses (--foo) in Tailwind CSS v4 or [--foo] in Tailwind CSS v3.",
37
+ enum: ["arbitrary", "parentheses", "shorthand", "variable"],
37
38
  type: "string"
38
39
  }
39
40
  },
@@ -46,11 +47,12 @@ export const enforceConsistentVariableSyntax = {
46
47
  };
47
48
  function lintLiterals(ctx, literals) {
48
49
  const { syntax } = getOptions(ctx);
50
+ const { major } = getTailwindcssVersion();
49
51
  for (const literal of literals) {
50
52
  lintClasses(ctx, literal, className => {
51
53
  for (let i = 0, isInsideVar = false, isInsideBrackets = false, characters = []; i < className.length; i++) {
52
54
  characters.push(className[i]);
53
- if (syntax === "arbitrary") {
55
+ if (syntax === "arbitrary" || syntax === "variable") {
54
56
  if (isInsideVar) {
55
57
  continue;
56
58
  }
@@ -68,8 +70,21 @@ function lintLiterals(ctx, literals) {
68
70
  message: `Incorrect variable syntax: "${balancedContent}".`
69
71
  };
70
72
  }
73
+ if (isBeginningOfArbitraryShorthand(characters)) {
74
+ const start = i + 1 - (findOpeningBracketOffset(characters) ?? 0);
75
+ const [balancedArbitraryContent] = extractBalanced(className.slice(start), "[", "]");
76
+ if (!balancedArbitraryContent) {
77
+ continue;
78
+ }
79
+ const end = start + balancedArbitraryContent.length + 2;
80
+ const fixedVariable = `${className.slice(0, start)}[var(${balancedArbitraryContent})]${className.slice(end)}`;
81
+ return {
82
+ fix: fixedVariable,
83
+ message: `Incorrect variable syntax: "[${balancedArbitraryContent}]".`
84
+ };
85
+ }
71
86
  }
72
- if (syntax === "parentheses") {
87
+ if (syntax === "parentheses" || syntax === "shorthand") {
73
88
  if (isBeginningOfArbitraryVariable(characters)) {
74
89
  if (isInsideBrackets) {
75
90
  continue;
@@ -81,22 +96,47 @@ function lintLiterals(ctx, literals) {
81
96
  continue;
82
97
  }
83
98
  const end = start + balancedArbitraryContent.length + 2;
84
- const fixedVariable = `${className.slice(0, start)}(${balancedVariableContent})${className.slice(end)}`;
99
+ const fixedVariable = major >= TailwindcssVersion.V4
100
+ ? `${className.slice(0, start)}(${balancedVariableContent})${className.slice(end)}`
101
+ : `${className.slice(0, start)}[${balancedVariableContent}]${className.slice(end)}`;
85
102
  return {
86
103
  fix: fixedVariable,
87
104
  message: `Incorrect variable syntax: "${balancedArbitraryContent}".`
88
105
  };
89
106
  }
107
+ if (isBeginningOfArbitraryShorthand(characters)) {
108
+ if (major <= TailwindcssVersion.V3) {
109
+ continue;
110
+ }
111
+ const start = i + 1 - (findOpeningBracketOffset(characters) ?? 0);
112
+ const [balancedArbitraryContent] = extractBalanced(className.slice(start), "[", "]");
113
+ if (!balancedArbitraryContent) {
114
+ continue;
115
+ }
116
+ const end = start + balancedArbitraryContent.length + 2;
117
+ const fixedVariable = `${className.slice(0, start)}(${balancedArbitraryContent})${className.slice(end)}`;
118
+ return {
119
+ fix: fixedVariable,
120
+ message: `Incorrect variable syntax: "[${balancedArbitraryContent}]".`
121
+ };
122
+ }
90
123
  }
91
124
  }
92
125
  });
93
126
  }
94
127
  }
95
128
  function isBeginningOfParenthesizedVariable(characters) {
96
- return characters.slice(-6).join("") !== "var(--" && characters.slice(-3).join("") === "(--";
129
+ return (isBeginningOfArbitrarySyntax(characters, "(--") &&
130
+ !isBeginningOfArbitrarySyntax(characters, "[var(--"));
131
+ }
132
+ function isBeginningOfArbitraryShorthand(characters) {
133
+ return isBeginningOfArbitrarySyntax(characters, "[--");
97
134
  }
98
135
  function isBeginningOfArbitraryVariable(characters) {
99
- const toBe = "[var(--".split("");
136
+ return isBeginningOfArbitrarySyntax(characters, "[var(--");
137
+ }
138
+ function isBeginningOfArbitrarySyntax(characters, syntax) {
139
+ const toBe = syntax.split("");
100
140
  for (let i = characters.length - 1; i >= 0; i--) {
101
141
  if (toBe.length === 0) {
102
142
  return true;
@@ -107,7 +147,7 @@ function isBeginningOfArbitraryVariable(characters) {
107
147
  return false;
108
148
  }
109
149
  if (character !== expectedChar) {
110
- if (expectedChar === "[" && character === "_") {
150
+ if (character === "_") {
111
151
  continue;
112
152
  }
113
153
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"enforce-consistent-variable-syntax.js","sourceRoot":"","sources":["../../../src/rules/enforce-consistent-variable-syntax.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enforce-consistent-variable-syntax.js","sourceRoot":"","sources":["../../../src/rules/enforce-consistent-variable-syntax.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-deprecated-classes.d.ts","sourceRoot":"","sources":["../../../src/rules/no-deprecated-classes.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,EACf,MAAM,kCAAkC,CAAC;AAG1C,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CACL,eAAe,GACf,YAAY,GACZ,SAAS,GACT,cAAc,GACd;QACE,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CACF;CACF,CAAC;AAYF,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC,OAAO,CA4BnD,CAAC;AA4EF,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW;;;;;;EAE/C"}
1
+ {"version":3,"file":"no-deprecated-classes.d.ts","sourceRoot":"","sources":["../../../src/rules/no-deprecated-classes.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,EACf,MAAM,kCAAkC,CAAC;AAG1C,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CACL,eAAe,GACf,YAAY,GACZ,SAAS,GACT,cAAc,GACd;QACE,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CACF;CACF,CAAC;AAYF,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC,OAAO,CA4BnD,CAAC;AAmGF,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW;;;;;;EAE/C"}
@@ -6,6 +6,7 @@ import { lintClasses } from "../utils/lint.js";
6
6
  import { getCommonOptions } from "../utils/options.js";
7
7
  import { createRuleListener } from "../utils/rule.js";
8
8
  import { augmentMessageWithWarnings, replacePlaceholders, splitClasses } from "../utils/utils.js";
9
+ import { getTailwindcssVersion } from "../async-utils/version.js";
9
10
  const defaultOptions = {
10
11
  attributes: DEFAULT_ATTRIBUTE_NAMES,
11
12
  callees: DEFAULT_CALLEE_NAMES,
@@ -43,25 +44,42 @@ export const noDeprecatedClasses = {
43
44
  }
44
45
  };
45
46
  const deprecations = [
46
- [/^shadow$/, "shadow-sm"],
47
- [/^drop-shadow$/, "drop-shadow-sm"],
48
- [/^blur$/, "blur-sm"],
49
- [/^backdrop-blur$/, "backdrop-blur-sm"],
50
- [/^rounded$/, "rounded-sm"],
51
- [/^bg-opacity-(.*)$/],
52
- [/^text-opacity-(.*)$/],
53
- [/^border-opacity-(.*)$/],
54
- [/^divide-opacity-(.*)$/],
55
- [/^ring-opacity-(.*)$/],
56
- [/^placeholder-opacity-(.*)$/],
57
- [/^flex-shrink-(.*)$/, "shrink-$1"],
58
- [/^flex-grow-(.*)$/, "grow-$1"],
59
- [/^overflow-ellipsis$/, "text-ellipsis"],
60
- [/^decoration-slice$/, "box-decoration-slice"],
61
- [/^decoration-clone$/, "box-decoration-clone"]
47
+ [
48
+ { major: 4, minor: 0 }, [
49
+ [/^shadow$/, "shadow-sm"],
50
+ [/^inset-shadow$/, "inset-shadow-sm"],
51
+ [/^drop-shadow$/, "drop-shadow-sm"],
52
+ [/^blur$/, "blur-sm"],
53
+ [/^backdrop-blur$/, "backdrop-blur-sm"],
54
+ [/^rounded$/, "rounded-sm"],
55
+ [/^bg-opacity-(.*)$/],
56
+ [/^text-opacity-(.*)$/],
57
+ [/^border-opacity-(.*)$/],
58
+ [/^divide-opacity-(.*)$/],
59
+ [/^ring-opacity-(.*)$/],
60
+ [/^placeholder-opacity-(.*)$/],
61
+ [/^flex-shrink-(.*)$/, "shrink-$1"],
62
+ [/^flex-grow-(.*)$/, "grow-$1"],
63
+ [/^overflow-ellipsis$/, "text-ellipsis"],
64
+ [/^decoration-slice$/, "box-decoration-slice"],
65
+ [/^decoration-clone$/, "box-decoration-clone"]
66
+ ]
67
+ ], [
68
+ { major: 4, minor: 1 }, [
69
+ [/^bg-left-top$/, "bg-top-left"],
70
+ [/^bg-left-bottom$/, "bg-bottom-left"],
71
+ [/^bg-right-top$/, "bg-top-right"],
72
+ [/^bg-right-bottom$/, "bg-bottom-right"],
73
+ [/^object-left-top$/, "object-top-left"],
74
+ [/^object-left-bottom$/, "object-bottom-left"],
75
+ [/^object-right-top$/, "object-top-right"],
76
+ [/^object-right-bottom$/, "object-bottom-right"]
77
+ ]
78
+ ]
62
79
  ];
63
80
  function lintLiterals(ctx, literals) {
64
81
  const { tailwindConfig } = getOptions(ctx);
82
+ const { major, minor } = getTailwindcssVersion();
65
83
  for (const literal of literals) {
66
84
  const classes = splitClasses(literal.content);
67
85
  const { dissectedClasses, warnings } = getDissectedClasses({ classes, configPath: tailwindConfig, cwd: ctx.cwd });
@@ -70,21 +88,26 @@ function lintLiterals(ctx, literals) {
70
88
  if (!dissectedClass) {
71
89
  return;
72
90
  }
73
- for (const [pattern, replacement] of deprecations) {
74
- const match = dissectedClass.base.match(pattern);
75
- if (!match) {
91
+ for (const [version, deprecation] of deprecations) {
92
+ if (major < version.major || major === version.major && minor < version.minor) {
76
93
  continue;
77
94
  }
78
- if (!replacement) {
95
+ for (const [pattern, replacement] of deprecation) {
96
+ const match = dissectedClass.base.match(pattern);
97
+ if (!match) {
98
+ continue;
99
+ }
100
+ if (!replacement) {
101
+ return {
102
+ message: augmentMessageWithWarnings(`Class "${className}" is deprecated. Check the tailwindcss documentation for more information: https://tailwindcss.com/docs/upgrade-guide#removed-deprecated-utilities`, DOCUMENTATION_URL, warnings)
103
+ };
104
+ }
105
+ const fix = buildClass({ ...dissectedClass, base: replacePlaceholders(replacement, match) });
79
106
  return {
80
- message: augmentMessageWithWarnings(`Class "${className}" is deprecated. Check the tailwindcss documentation for more information: https://tailwindcss.com/docs/upgrade-guide#removed-deprecated-utilities`, DOCUMENTATION_URL, warnings)
107
+ fix,
108
+ message: augmentMessageWithWarnings(`Deprecated class detected. Replace "${className}" with ${fix}.`, DOCUMENTATION_URL, warnings)
81
109
  };
82
110
  }
83
- const fix = buildClass({ ...dissectedClass, base: replacePlaceholders(replacement, match) });
84
- return {
85
- fix,
86
- message: augmentMessageWithWarnings(`Deprecated class detected. Replace "${className}" with ${fix}.`, DOCUMENTATION_URL, warnings)
87
- };
88
111
  }
89
112
  });
90
113
  }
@@ -1 +1 @@
1
- {"version":3,"file":"no-deprecated-classes.js","sourceRoot":"","sources":["../../../src/rules/no-deprecated-classes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-deprecated-classes.js","sourceRoot":"","sources":["../../../src/rules/no-deprecated-classes.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ export function lintClasses(ctx, literal, report) {
26
26
  data: {
27
27
  className
28
28
  },
29
- loc: getExactClassLocation(literal, stringIndex, className),
29
+ loc: getExactClassLocation(literal, classStart, className),
30
30
  message: typeof result === "object" && result.message
31
31
  ? result.message
32
32
  : "Expected {{ before }} to be {{ after }}.",
@@ -1 +1 @@
1
- {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../../src/utils/lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAO1G,MAAM,UAAU,WAAW,CAAC,GAAqB,EAAE,OAAgB,EAAE,MAAwH;IAE3L,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3D,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAEvF,MAAM,KAAK,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IAE/B,KAAI,IAAI,UAAU,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,EAAC,CAAC;QAEtF,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QAE1C,IAAG,oBAAoB,EAAC,CAAC;YACvB,WAAW,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QACrD,CAAC;QAED,MAAM,UAAU,GAAG,WAAW,CAAC;QAE/B,WAAW,IAAI,SAAS,CAAC,MAAM,CAAC;QAEhC,IAAG,CAAC,oBAAoB,EAAC,CAAC;YACxB,WAAW,IAAI,gBAAgB,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QACzD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAEpD,IAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,SAAS,EAAC,CAAC;YACnE,SAAS;QACX,CAAC;QAED,MAAM,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QAErC,IAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAC,CAAC;YACzD,KAAK,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;QACjC,CAAC;QAED,GAAG,CAAC,MAAM,CAAC;YACT,IAAI,EAAE;gBACJ,SAAS;aACV;YACD,GAAG,EAAE,qBAAqB,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC;YAC3D,OAAO,EAAE,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO;gBACnD,CAAC,CAAC,MAAM,CAAC,OAAO;gBAChB,CAAC,CAAC,0CAA0C;YAC9C,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS;gBACzD;oBACE,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAClC;wBACE,YAAY,GAAG,UAAU,GAAG,CAAC;wBAC7B,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;qBACjD,EACD,MAAM,CAAC,GAAI,CACZ;iBACF;SACF,CAAC,CAAC;IAEL,CAAC;AAEH,CAAC"}
1
+ {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../../src/utils/lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAO1G,MAAM,UAAU,WAAW,CAAC,GAAqB,EAAE,OAAgB,EAAE,MAAwH;IAE3L,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3D,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAEvF,MAAM,KAAK,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IAE/B,KAAI,IAAI,UAAU,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,EAAC,CAAC;QAEtF,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QAE1C,IAAG,oBAAoB,EAAC,CAAC;YACvB,WAAW,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QACrD,CAAC;QAED,MAAM,UAAU,GAAG,WAAW,CAAC;QAE/B,WAAW,IAAI,SAAS,CAAC,MAAM,CAAC;QAEhC,IAAG,CAAC,oBAAoB,EAAC,CAAC;YACxB,WAAW,IAAI,gBAAgB,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QACzD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAEpD,IAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,SAAS,EAAC,CAAC;YACnE,SAAS;QACX,CAAC;QAED,MAAM,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QAErC,IAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAC,CAAC;YACzD,KAAK,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;QACjC,CAAC;QAED,GAAG,CAAC,MAAM,CAAC;YACT,IAAI,EAAE;gBACJ,SAAS;aACV;YACD,GAAG,EAAE,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC;YAC1D,OAAO,EAAE,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO;gBACnD,CAAC,CAAC,MAAM,CAAC,OAAO;gBAChB,CAAC,CAAC,0CAA0C;YAC9C,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS;gBACzD;oBACE,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAClC;wBACE,YAAY,GAAG,UAAU,GAAG,CAAC;wBAC7B,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;qBACjD,EACD,MAAM,CAAC,GAAI,CACZ;iBACF;SACF,CAAC,CAAC;IAEL,CAAC;AAEH,CAAC"}
@@ -63,12 +63,12 @@ export function isClassSticky(literal, classIndex) {
63
63
  !endsWithWhitespace && classIndex === classChunks.length - 1 && !!literal.openingBraces);
64
64
  }
65
65
  export function getExactClassLocation(literal, stringIndex, className) {
66
- const linesUpToStartIndex = literal.content.slice(0, stringIndex - className.length).split(/\r?\n/);
66
+ const linesUpToStartIndex = literal.content.slice(0, stringIndex).split(/\r?\n/);
67
67
  const isOnFirstLine = linesUpToStartIndex.length === 1;
68
68
  const containingLine = linesUpToStartIndex.at(-1);
69
69
  const line = literal.loc.start.line + linesUpToStartIndex.length - 1;
70
70
  const column = (isOnFirstLine
71
- ? literal.loc.start.column
71
+ ? literal.loc.start.column + (literal.openingQuote?.length ?? 0) + (literal.closingBraces?.length ?? 0)
72
72
  : 0) + (containingLine?.length ?? 0);
73
73
  return {
74
74
  end: {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.6.2",
2
+ "version": "3.6.3",
3
3
  "type": "module",
4
4
  "name": "eslint-plugin-better-tailwindcss",
5
5
  "description": "auto-wraps tailwind classes after a certain print width or class count into multiple lines to improve readability.",