tailwind-typescript-plugin 1.4.0-beta.1 → 1.4.0-beta.11
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.
- package/CHANGELOG.md +73 -0
- package/README.md +373 -34
- package/lib/core/interfaces.d.ts +2 -2
- package/lib/core/interfaces.d.ts.map +1 -1
- package/lib/core/types.d.ts +27 -1
- package/lib/core/types.d.ts.map +1 -1
- package/lib/extractors/BaseExtractor.d.ts +49 -2
- package/lib/extractors/BaseExtractor.d.ts.map +1 -1
- package/lib/extractors/BaseExtractor.js +184 -5
- package/lib/extractors/BaseExtractor.js.map +1 -1
- package/lib/extractors/CvaExtractor.d.ts.map +1 -1
- package/lib/extractors/CvaExtractor.js +7 -3
- package/lib/extractors/CvaExtractor.js.map +1 -1
- package/lib/extractors/ExpressionExtractor.d.ts.map +1 -1
- package/lib/extractors/ExpressionExtractor.js +35 -5
- package/lib/extractors/ExpressionExtractor.js.map +1 -1
- package/lib/extractors/JsxAttributeExtractor.js +1 -1
- package/lib/extractors/JsxAttributeExtractor.js.map +1 -1
- package/lib/extractors/TailwindVariantsExtractor.d.ts +2 -0
- package/lib/extractors/TailwindVariantsExtractor.d.ts.map +1 -1
- package/lib/extractors/TailwindVariantsExtractor.js +12 -8
- package/lib/extractors/TailwindVariantsExtractor.js.map +1 -1
- package/lib/extractors/VariableReferenceExtractor.d.ts.map +1 -1
- package/lib/extractors/VariableReferenceExtractor.js +21 -0
- package/lib/extractors/VariableReferenceExtractor.js.map +1 -1
- package/lib/infrastructure/TailwindConflictDetector.d.ts +83 -0
- package/lib/infrastructure/TailwindConflictDetector.d.ts.map +1 -0
- package/lib/infrastructure/TailwindConflictDetector.js +342 -0
- package/lib/infrastructure/TailwindConflictDetector.js.map +1 -0
- package/lib/infrastructure/TailwindValidator.d.ts +15 -0
- package/lib/infrastructure/TailwindValidator.d.ts.map +1 -1
- package/lib/infrastructure/TailwindValidator.js +84 -5
- package/lib/infrastructure/TailwindValidator.js.map +1 -1
- package/lib/infrastructure/TailwindValidator.spec.js +194 -0
- package/lib/infrastructure/TailwindValidator.spec.js.map +1 -1
- package/lib/plugin/TailwindTypescriptPlugin.d.ts +26 -0
- package/lib/plugin/TailwindTypescriptPlugin.d.ts.map +1 -1
- package/lib/plugin/TailwindTypescriptPlugin.js +180 -1
- package/lib/plugin/TailwindTypescriptPlugin.js.map +1 -1
- package/lib/services/ClassNameExtractionService.d.ts +2 -2
- package/lib/services/ClassNameExtractionService.d.ts.map +1 -1
- package/lib/services/ClassNameExtractionService.js.map +1 -1
- package/lib/services/CompletionService.d.ts +98 -0
- package/lib/services/CompletionService.d.ts.map +1 -0
- package/lib/services/CompletionService.js +484 -0
- package/lib/services/CompletionService.js.map +1 -0
- package/lib/services/CompletionService.spec.d.ts +2 -0
- package/lib/services/CompletionService.spec.d.ts.map +1 -0
- package/lib/services/CompletionService.spec.js +334 -0
- package/lib/services/CompletionService.spec.js.map +1 -0
- package/lib/services/ConflictClassDetection.spec.d.ts +2 -0
- package/lib/services/ConflictClassDetection.spec.d.ts.map +1 -0
- package/lib/services/ConflictClassDetection.spec.js +477 -0
- package/lib/services/ConflictClassDetection.spec.js.map +1 -0
- package/lib/services/DiagnosticService.d.ts +14 -0
- package/lib/services/DiagnosticService.d.ts.map +1 -1
- package/lib/services/DiagnosticService.js +32 -1
- package/lib/services/DiagnosticService.js.map +1 -1
- package/lib/services/DuplicateClassDetection.spec.js +41 -60
- package/lib/services/DuplicateClassDetection.spec.js.map +1 -1
- package/lib/services/PluginConfigService.d.ts +2 -1
- package/lib/services/PluginConfigService.d.ts.map +1 -1
- package/lib/services/PluginConfigService.js +19 -12
- package/lib/services/PluginConfigService.js.map +1 -1
- package/lib/services/ValidationService.d.ts +5 -2
- package/lib/services/ValidationService.d.ts.map +1 -1
- package/lib/services/ValidationService.js +22 -9
- package/lib/services/ValidationService.js.map +1 -1
- package/package.json +4 -2
- package/lib/extractors/StringLiteralExtractor.d.ts +0 -12
- package/lib/extractors/StringLiteralExtractor.d.ts.map +0 -1
- package/lib/extractors/StringLiteralExtractor.js +0 -21
- package/lib/extractors/StringLiteralExtractor.js.map +0 -1
- package/lib/services/ClassNameExtractionService.original.d.ts +0 -20
- package/lib/services/ClassNameExtractionService.original.d.ts.map +0 -1
- package/lib/services/ClassNameExtractionService.original.js +0 -48
- package/lib/services/ClassNameExtractionService.original.js.map +0 -1
|
@@ -151,14 +151,17 @@ class TailwindVariantsExtractor extends BaseExtractor_1.BaseExtractor {
|
|
|
151
151
|
switch (propertyName) {
|
|
152
152
|
case 'base':
|
|
153
153
|
// base: 'flex items-center' or base: ['flex', 'items-center']
|
|
154
|
+
// Base classes are NOT variants (isVariant: false/undefined)
|
|
154
155
|
classNames.push(...this.extractFromValue(property.initializer, context, attributeId));
|
|
155
156
|
break;
|
|
156
157
|
case 'variants':
|
|
157
158
|
// variants: { size: { sm: 'text-sm', lg: 'text-lg' } }
|
|
159
|
+
// Mark all variant classes with isVariant: true
|
|
158
160
|
classNames.push(...this.extractFromVariants(property.initializer, context, attributeId));
|
|
159
161
|
break;
|
|
160
162
|
case 'compoundVariants':
|
|
161
163
|
// compoundVariants: [{ size: 'sm', color: 'primary', class: 'font-bold' }]
|
|
164
|
+
// Mark all compound variant classes with isVariant: true
|
|
162
165
|
classNames.push(...this.extractFromCompoundVariants(property.initializer, context, attributeId));
|
|
163
166
|
break;
|
|
164
167
|
case 'slots':
|
|
@@ -179,6 +182,7 @@ class TailwindVariantsExtractor extends BaseExtractor_1.BaseExtractor {
|
|
|
179
182
|
/**
|
|
180
183
|
* Extract class names from the variants object
|
|
181
184
|
* Structure: { variantName: { optionName: 'classes' } }
|
|
185
|
+
* All classes from variants are marked with isVariant: true
|
|
182
186
|
*/
|
|
183
187
|
extractFromVariants(node, context, attributeId) {
|
|
184
188
|
if (!context.typescript.isObjectLiteralExpression(node)) {
|
|
@@ -197,8 +201,9 @@ class TailwindVariantsExtractor extends BaseExtractor_1.BaseExtractor {
|
|
|
197
201
|
if (!context.typescript.isPropertyAssignment(optionProp)) {
|
|
198
202
|
continue;
|
|
199
203
|
}
|
|
200
|
-
// Extract classes from the option value
|
|
201
|
-
|
|
204
|
+
// Extract classes from the option value and mark as variant
|
|
205
|
+
const extracted = this.extractFromValue(optionProp.initializer, context, attributeId);
|
|
206
|
+
classNames.push(...extracted.map(c => ({ ...c, isVariant: true })));
|
|
202
207
|
}
|
|
203
208
|
}
|
|
204
209
|
}
|
|
@@ -207,6 +212,7 @@ class TailwindVariantsExtractor extends BaseExtractor_1.BaseExtractor {
|
|
|
207
212
|
/**
|
|
208
213
|
* Extract class names from compoundVariants array
|
|
209
214
|
* Structure: [{ condition: value, class: 'classes' or className: 'classes' }]
|
|
215
|
+
* All classes from compoundVariants are marked with isVariant: true
|
|
210
216
|
*/
|
|
211
217
|
extractFromCompoundVariants(node, context, attributeId) {
|
|
212
218
|
if (!context.typescript.isArrayLiteralExpression(node)) {
|
|
@@ -225,7 +231,9 @@ class TailwindVariantsExtractor extends BaseExtractor_1.BaseExtractor {
|
|
|
225
231
|
}
|
|
226
232
|
const propName = this.getPropertyName(prop, context);
|
|
227
233
|
if (propName === 'class' || propName === 'className') {
|
|
228
|
-
|
|
234
|
+
// Extract classes and mark as variant
|
|
235
|
+
const extracted = this.extractFromValue(prop.initializer, context, attributeId);
|
|
236
|
+
classNames.push(...extracted.map(c => ({ ...c, isVariant: true })));
|
|
229
237
|
}
|
|
230
238
|
}
|
|
231
239
|
}
|
|
@@ -416,13 +424,9 @@ class TailwindVariantsExtractor extends BaseExtractor_1.BaseExtractor {
|
|
|
416
424
|
: context.typescript.isPropertyAccessExpression(expr)
|
|
417
425
|
? expr.name.text
|
|
418
426
|
: null;
|
|
419
|
-
if (functionName && context.utilityFunctions
|
|
420
|
-
// Debug: log when skipping utility function
|
|
421
|
-
// console.log(`[TV] Skipping utility function: ${functionName}`);
|
|
427
|
+
if (functionName && this.isUtilityFunctionName(functionName, context.utilityFunctions)) {
|
|
422
428
|
return false;
|
|
423
429
|
}
|
|
424
|
-
// Debug: log function being checked
|
|
425
|
-
// console.log(`[TV] Checking if ${functionName} is tv-created, utility functions:`, context.utilityFunctions);
|
|
426
430
|
// Get the symbol for the called function
|
|
427
431
|
const symbol = context.typeChecker.getSymbolAtLocation(expr);
|
|
428
432
|
if (!symbol) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TailwindVariantsExtractor.js","sourceRoot":"","sources":["../../src/extractors/TailwindVariantsExtractor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TailwindVariantsExtractor.js","sourceRoot":"","sources":["../../src/extractors/TailwindVariantsExtractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VariableReferenceExtractor.d.ts","sourceRoot":"","sources":["../../src/extractors/VariableReferenceExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;;;;;;;;;GAWG;AACH,qBAAa,0BAA2B,SAAQ,aAAa;IAC5D,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO;IAI7D,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB,GAAG,aAAa,EAAE;IAQnE;;OAEG;IACH,qBAAqB,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,iBAAiB,GAAG,aAAa,EAAE;IAgD7F;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;
|
|
1
|
+
{"version":3,"file":"VariableReferenceExtractor.d.ts","sourceRoot":"","sources":["../../src/extractors/VariableReferenceExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;;;;;;;;;GAWG;AACH,qBAAa,0BAA2B,SAAQ,aAAa;IAC5D,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO;IAI7D,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB,GAAG,aAAa,EAAE;IAQnE;;OAEG;IACH,qBAAqB,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,iBAAiB,GAAG,aAAa,EAAE;IAgD7F;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAiK9B;;;OAGG;IACH,OAAO,CAAC,iCAAiC;IAiCzC;;OAEG;IACH,OAAO,CAAC,yBAAyB;CA8BjC"}
|
|
@@ -123,6 +123,27 @@ class VariableReferenceExtractor extends BaseExtractor_1.BaseExtractor {
|
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
|
+
// Handle array literal expressions: const classes = ['flex', 'items-center']
|
|
127
|
+
else if (typescript.isArrayLiteralExpression(initializer)) {
|
|
128
|
+
for (const element of initializer.elements) {
|
|
129
|
+
// Skip empty array holes: [, , 'flex']
|
|
130
|
+
if (element === undefined) {
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
// Handle spread elements: [...otherClasses]
|
|
134
|
+
if (typescript.isSpreadElement(element)) {
|
|
135
|
+
classNames.push(...this.extractFromInitializer(element.expression, variableUsage, context, conditionalBranchId));
|
|
136
|
+
}
|
|
137
|
+
// Handle identifiers (variable references)
|
|
138
|
+
else if (typescript.isIdentifier(element)) {
|
|
139
|
+
classNames.push(...this.extractFromIdentifier(element, context));
|
|
140
|
+
}
|
|
141
|
+
// Handle other expressions (strings, conditionals, etc.)
|
|
142
|
+
else {
|
|
143
|
+
classNames.push(...this.extractFromInitializer(element, variableUsage, context, conditionalBranchId));
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
126
147
|
return classNames;
|
|
127
148
|
}
|
|
128
149
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VariableReferenceExtractor.js","sourceRoot":"","sources":["../../src/extractors/VariableReferenceExtractor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"VariableReferenceExtractor.js","sourceRoot":"","sources":["../../src/extractors/VariableReferenceExtractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { ClassNameInfo } from '../core/types';
|
|
2
|
+
/**
|
|
3
|
+
* Information about a conflicting class
|
|
4
|
+
*/
|
|
5
|
+
export interface ConflictInfo {
|
|
6
|
+
/** The class that has a conflict */
|
|
7
|
+
classInfo: ClassNameInfo;
|
|
8
|
+
/** The class(es) it conflicts with */
|
|
9
|
+
conflictsWith: string[];
|
|
10
|
+
/** The CSS property that is being overwritten (e.g., 'text-align', 'display') */
|
|
11
|
+
cssProperty: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Interface for getting CSS from class names
|
|
15
|
+
*/
|
|
16
|
+
export interface ICssProvider {
|
|
17
|
+
getCssForClasses(classNames: string[]): (string | null)[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Service for detecting conflicting Tailwind CSS utility classes.
|
|
21
|
+
* Uses Tailwind's design system to compile classes and analyze their CSS output.
|
|
22
|
+
* Two classes conflict when they set the same CSS properties in the same context.
|
|
23
|
+
*/
|
|
24
|
+
export declare class TailwindConflictDetector {
|
|
25
|
+
private cssProvider;
|
|
26
|
+
/**
|
|
27
|
+
* Set the CSS provider (TailwindValidator)
|
|
28
|
+
*/
|
|
29
|
+
setCssProvider(provider: ICssProvider): void;
|
|
30
|
+
/**
|
|
31
|
+
* Parse CSS string and extract properties and context
|
|
32
|
+
*/
|
|
33
|
+
private parseCss;
|
|
34
|
+
/**
|
|
35
|
+
* Extract the prefix (variants) from a class name.
|
|
36
|
+
* e.g., "md:hover:text-left" -> "md:hover:"
|
|
37
|
+
*/
|
|
38
|
+
private extractPrefix;
|
|
39
|
+
/**
|
|
40
|
+
* Compare two ClassCssInfo arrays for equality
|
|
41
|
+
*/
|
|
42
|
+
private cssInfoEquals;
|
|
43
|
+
/**
|
|
44
|
+
* Find all conflicting classes in a list of ClassNameInfo.
|
|
45
|
+
* Returns ConflictInfo for each class that conflicts with another.
|
|
46
|
+
*/
|
|
47
|
+
findConflicts(classNames: ClassNameInfo[]): ConflictInfo[];
|
|
48
|
+
/**
|
|
49
|
+
* Find conflicts within a single attribute's classes.
|
|
50
|
+
* Handles conditional branches - classes in mutually exclusive branches don't conflict.
|
|
51
|
+
* Also handles base vs variant separation for tv()/cva() - variants are designed to override base.
|
|
52
|
+
*/
|
|
53
|
+
private findConflictsInAttribute;
|
|
54
|
+
/**
|
|
55
|
+
* Find conflicts within a group of classes (either all base or all variant).
|
|
56
|
+
* Handles conditional branches - classes in mutually exclusive branches don't conflict.
|
|
57
|
+
*/
|
|
58
|
+
private findConflictsInClassGroup;
|
|
59
|
+
/**
|
|
60
|
+
* Get the CSS property that causes a conflict between two classes, or null if no conflict.
|
|
61
|
+
*/
|
|
62
|
+
private getConflictProperty;
|
|
63
|
+
/**
|
|
64
|
+
* Find conflicts in a flat list of classes (no branch handling).
|
|
65
|
+
*/
|
|
66
|
+
private findConflictsInList;
|
|
67
|
+
/**
|
|
68
|
+
* Check if two class names conflict with each other.
|
|
69
|
+
*/
|
|
70
|
+
doClassesConflict(className1: string, className2: string): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Get the conflict group for a class name, if any.
|
|
73
|
+
* Returns the CSS properties that this class affects.
|
|
74
|
+
*/
|
|
75
|
+
getConflictGroup(className: string): string | null;
|
|
76
|
+
/**
|
|
77
|
+
* Get all classes that would conflict with a given class.
|
|
78
|
+
* Note: This is a simplified implementation that returns an empty array
|
|
79
|
+
* since we no longer have a static conflict group map.
|
|
80
|
+
*/
|
|
81
|
+
getConflictingClasses(className: string): string[];
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=TailwindConflictDetector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TailwindConflictDetector.d.ts","sourceRoot":"","sources":["../../src/infrastructure/TailwindConflictDetector.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,oCAAoC;IACpC,SAAS,EAAE,aAAa,CAAC;IACzB,sCAAsC;IACtC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iFAAiF;IACjF,WAAW,EAAE,MAAM,CAAC;CACpB;AAYD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;CAC1D;AAED;;;;GAIG;AACH,qBAAa,wBAAwB;IACpC,OAAO,CAAC,WAAW,CAA6B;IAEhD;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAI5C;;OAEG;IACH,OAAO,CAAC,QAAQ;IAsDhB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAMrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAuBrB;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,YAAY,EAAE;IA2B1D;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAgBhC;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IA8CjC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6B3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA+F3B;;OAEG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;IAIlE;;;OAGG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAgBlD;;;;OAIG;IAEH,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;CAKlD"}
|
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.TailwindConflictDetector = void 0;
|
|
7
|
+
const postcss_1 = __importDefault(require("postcss"));
|
|
8
|
+
/**
|
|
9
|
+
* Service for detecting conflicting Tailwind CSS utility classes.
|
|
10
|
+
* Uses Tailwind's design system to compile classes and analyze their CSS output.
|
|
11
|
+
* Two classes conflict when they set the same CSS properties in the same context.
|
|
12
|
+
*/
|
|
13
|
+
class TailwindConflictDetector {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.cssProvider = null;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Set the CSS provider (TailwindValidator)
|
|
19
|
+
*/
|
|
20
|
+
setCssProvider(provider) {
|
|
21
|
+
this.cssProvider = provider;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Parse CSS string and extract properties and context
|
|
25
|
+
*/
|
|
26
|
+
parseCss(css) {
|
|
27
|
+
const results = [];
|
|
28
|
+
try {
|
|
29
|
+
const root = postcss_1.default.parse(css);
|
|
30
|
+
// Walk through all rules and at-rules
|
|
31
|
+
const visit = (node, contextPath = []) => {
|
|
32
|
+
if (node.type === 'rule') {
|
|
33
|
+
// Extract properties from declarations
|
|
34
|
+
const properties = [];
|
|
35
|
+
node.nodes?.forEach(child => {
|
|
36
|
+
if (child.type === 'decl') {
|
|
37
|
+
properties.push(child.prop);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
if (properties.length > 0) {
|
|
41
|
+
results.push({
|
|
42
|
+
properties: properties.sort(),
|
|
43
|
+
context: contextPath.slice(1) // Skip the class selector itself
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
// Recursively visit nested rules
|
|
47
|
+
node.nodes?.forEach(child => {
|
|
48
|
+
if (child.type === 'rule' || child.type === 'atrule') {
|
|
49
|
+
const newContext = child.type === 'rule' ? child.selector : `@${child.name} ${child.params}`.trim();
|
|
50
|
+
visit(child, [...contextPath, newContext]);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
else if (node.type === 'atrule') {
|
|
55
|
+
const atRuleContext = `@${node.name} ${node.params}`.trim();
|
|
56
|
+
node.nodes?.forEach(child => {
|
|
57
|
+
visit(child, [...contextPath, atRuleContext]);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
root.nodes?.forEach(node => {
|
|
62
|
+
if (node.type === 'rule') {
|
|
63
|
+
visit(node, [node.selector]);
|
|
64
|
+
}
|
|
65
|
+
else if (node.type === 'atrule') {
|
|
66
|
+
visit(node, []);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
// If parsing fails, return empty results
|
|
72
|
+
}
|
|
73
|
+
return results;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Extract the prefix (variants) from a class name.
|
|
77
|
+
* e.g., "md:hover:text-left" -> "md:hover:"
|
|
78
|
+
*/
|
|
79
|
+
extractPrefix(className) {
|
|
80
|
+
const parts = className.split(':');
|
|
81
|
+
if (parts.length <= 1)
|
|
82
|
+
return '';
|
|
83
|
+
return parts.slice(0, -1).join(':') + ':';
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Compare two ClassCssInfo arrays for equality
|
|
87
|
+
*/
|
|
88
|
+
cssInfoEquals(a, b) {
|
|
89
|
+
if (a.length !== b.length)
|
|
90
|
+
return false;
|
|
91
|
+
for (let i = 0; i < a.length; i++) {
|
|
92
|
+
const entryA = a[i];
|
|
93
|
+
const entryB = b[i];
|
|
94
|
+
// Compare properties
|
|
95
|
+
if (entryA.properties.length !== entryB.properties.length)
|
|
96
|
+
return false;
|
|
97
|
+
for (let j = 0; j < entryA.properties.length; j++) {
|
|
98
|
+
if (entryA.properties[j] !== entryB.properties[j])
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
// Compare context
|
|
102
|
+
if (entryA.context.length !== entryB.context.length)
|
|
103
|
+
return false;
|
|
104
|
+
for (let j = 0; j < entryA.context.length; j++) {
|
|
105
|
+
if (entryA.context[j] !== entryB.context[j])
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Find all conflicting classes in a list of ClassNameInfo.
|
|
113
|
+
* Returns ConflictInfo for each class that conflicts with another.
|
|
114
|
+
*/
|
|
115
|
+
findConflicts(classNames) {
|
|
116
|
+
if (!this.cssProvider) {
|
|
117
|
+
return [];
|
|
118
|
+
}
|
|
119
|
+
const conflicts = [];
|
|
120
|
+
// Group classes by attributeId (conflicts are only within same attribute)
|
|
121
|
+
const byAttribute = new Map();
|
|
122
|
+
for (const classInfo of classNames) {
|
|
123
|
+
const key = classInfo.attributeId || `${classInfo.absoluteStart}`;
|
|
124
|
+
if (!byAttribute.has(key)) {
|
|
125
|
+
byAttribute.set(key, []);
|
|
126
|
+
}
|
|
127
|
+
byAttribute.get(key).push(classInfo);
|
|
128
|
+
}
|
|
129
|
+
// For each attribute, find conflicts
|
|
130
|
+
for (const classes of byAttribute.values()) {
|
|
131
|
+
const attributeConflicts = this.findConflictsInAttribute(classes);
|
|
132
|
+
conflicts.push(...attributeConflicts);
|
|
133
|
+
}
|
|
134
|
+
return conflicts;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Find conflicts within a single attribute's classes.
|
|
138
|
+
* Handles conditional branches - classes in mutually exclusive branches don't conflict.
|
|
139
|
+
* Also handles base vs variant separation for tv()/cva() - variants are designed to override base.
|
|
140
|
+
*/
|
|
141
|
+
findConflictsInAttribute(classes) {
|
|
142
|
+
const conflicts = [];
|
|
143
|
+
// First, separate base classes from variant classes (for tv()/cva())
|
|
144
|
+
// Variant classes are designed to override base, so they don't conflict with base
|
|
145
|
+
const baseClasses = classes.filter(c => !c.isVariant);
|
|
146
|
+
const variantClasses = classes.filter(c => c.isVariant);
|
|
147
|
+
// Process base classes and variant classes separately
|
|
148
|
+
// They can conflict within themselves, but NOT with each other
|
|
149
|
+
conflicts.push(...this.findConflictsInClassGroup(baseClasses));
|
|
150
|
+
conflicts.push(...this.findConflictsInClassGroup(variantClasses));
|
|
151
|
+
return conflicts;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Find conflicts within a group of classes (either all base or all variant).
|
|
155
|
+
* Handles conditional branches - classes in mutually exclusive branches don't conflict.
|
|
156
|
+
*/
|
|
157
|
+
findConflictsInClassGroup(classes) {
|
|
158
|
+
const conflicts = [];
|
|
159
|
+
// Separate root classes from branch classes
|
|
160
|
+
const rootClasses = classes.filter(c => !c.conditionalBranchId);
|
|
161
|
+
const branchClasses = classes.filter(c => c.conditionalBranchId);
|
|
162
|
+
// 1. Find conflicts among root classes
|
|
163
|
+
const rootConflicts = this.findConflictsInList(rootClasses);
|
|
164
|
+
conflicts.push(...rootConflicts);
|
|
165
|
+
// 2. Find conflicts between root classes and branch classes
|
|
166
|
+
for (const rootClass of rootClasses) {
|
|
167
|
+
for (const branchClass of branchClasses) {
|
|
168
|
+
const conflictProperty = this.getConflictProperty(rootClass.className, branchClass.className);
|
|
169
|
+
if (conflictProperty) {
|
|
170
|
+
conflicts.push({
|
|
171
|
+
classInfo: branchClass,
|
|
172
|
+
conflictsWith: [rootClass.className],
|
|
173
|
+
cssProperty: conflictProperty
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
// 3. Find conflicts within the same branch
|
|
179
|
+
const byBranch = new Map();
|
|
180
|
+
for (const branchClass of branchClasses) {
|
|
181
|
+
const branchId = branchClass.conditionalBranchId;
|
|
182
|
+
if (!byBranch.has(branchId)) {
|
|
183
|
+
byBranch.set(branchId, []);
|
|
184
|
+
}
|
|
185
|
+
byBranch.get(branchId).push(branchClass);
|
|
186
|
+
}
|
|
187
|
+
for (const branchClassList of byBranch.values()) {
|
|
188
|
+
const branchConflicts = this.findConflictsInList(branchClassList);
|
|
189
|
+
conflicts.push(...branchConflicts);
|
|
190
|
+
}
|
|
191
|
+
return conflicts;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Get the CSS property that causes a conflict between two classes, or null if no conflict.
|
|
195
|
+
*/
|
|
196
|
+
getConflictProperty(className1, className2) {
|
|
197
|
+
if (!this.cssProvider)
|
|
198
|
+
return null;
|
|
199
|
+
if (className1 === className2)
|
|
200
|
+
return null;
|
|
201
|
+
// Classes with different prefixes don't conflict
|
|
202
|
+
const prefix1 = this.extractPrefix(className1);
|
|
203
|
+
const prefix2 = this.extractPrefix(className2);
|
|
204
|
+
if (prefix1 !== prefix2)
|
|
205
|
+
return null;
|
|
206
|
+
const cssResults = this.cssProvider.getCssForClasses([className1, className2]);
|
|
207
|
+
const css1 = cssResults[0];
|
|
208
|
+
const css2 = cssResults[1];
|
|
209
|
+
if (!css1 || !css2)
|
|
210
|
+
return null;
|
|
211
|
+
const info1 = this.parseCss(css1);
|
|
212
|
+
const info2 = this.parseCss(css2);
|
|
213
|
+
// Check if they have the same properties in the same context
|
|
214
|
+
if (this.cssInfoEquals(info1, info2)) {
|
|
215
|
+
// Return the properties as the conflict identifier
|
|
216
|
+
if (info1.length > 0 && info1[0].properties.length > 0) {
|
|
217
|
+
return info1[0].properties.join(', ');
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return null;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Find conflicts in a flat list of classes (no branch handling).
|
|
224
|
+
*/
|
|
225
|
+
findConflictsInList(classes) {
|
|
226
|
+
if (!this.cssProvider || classes.length === 0)
|
|
227
|
+
return [];
|
|
228
|
+
const conflicts = [];
|
|
229
|
+
// Get CSS for all classes at once (batch)
|
|
230
|
+
const classNames = classes.map(c => c.className);
|
|
231
|
+
const cssResults = this.cssProvider.getCssForClasses(classNames);
|
|
232
|
+
// Parse CSS and build info map
|
|
233
|
+
const classInfoMap = new Map();
|
|
234
|
+
for (let i = 0; i < classes.length; i++) {
|
|
235
|
+
const classInfo = classes[i];
|
|
236
|
+
const css = cssResults[i];
|
|
237
|
+
if (css) {
|
|
238
|
+
classInfoMap.set(classInfo, {
|
|
239
|
+
cssInfo: this.parseCss(css),
|
|
240
|
+
prefix: this.extractPrefix(classInfo.className)
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
// Compare all pairs
|
|
245
|
+
const classesWithCss = [...classInfoMap.keys()];
|
|
246
|
+
const conflictMap = new Map();
|
|
247
|
+
for (let i = 0; i < classesWithCss.length; i++) {
|
|
248
|
+
for (let j = i + 1; j < classesWithCss.length; j++) {
|
|
249
|
+
const classA = classesWithCss[i];
|
|
250
|
+
const classB = classesWithCss[j];
|
|
251
|
+
// Skip duplicate classes (same class name) - duplicates are handled separately
|
|
252
|
+
if (classA.className === classB.className)
|
|
253
|
+
continue;
|
|
254
|
+
const infoA = classInfoMap.get(classA);
|
|
255
|
+
const infoB = classInfoMap.get(classB);
|
|
256
|
+
// Different prefixes don't conflict
|
|
257
|
+
if (infoA.prefix !== infoB.prefix)
|
|
258
|
+
continue;
|
|
259
|
+
// Check if same CSS structure (properties + context)
|
|
260
|
+
if (this.cssInfoEquals(infoA.cssInfo, infoB.cssInfo)) {
|
|
261
|
+
const cssProperty = infoA.cssInfo.length > 0 && infoA.cssInfo[0].properties.length > 0
|
|
262
|
+
? infoA.cssInfo[0].properties.join(', ')
|
|
263
|
+
: 'unknown';
|
|
264
|
+
// Add to conflict map for classA
|
|
265
|
+
if (!conflictMap.has(classA)) {
|
|
266
|
+
conflictMap.set(classA, new Set());
|
|
267
|
+
}
|
|
268
|
+
conflictMap.get(classA).add(classB.className);
|
|
269
|
+
// Add to conflict map for classB
|
|
270
|
+
if (!conflictMap.has(classB)) {
|
|
271
|
+
conflictMap.set(classB, new Set());
|
|
272
|
+
}
|
|
273
|
+
conflictMap.get(classB).add(classA.className);
|
|
274
|
+
// Create conflict entries (we'll dedupe below)
|
|
275
|
+
const existingA = conflicts.find(c => c.classInfo === classA);
|
|
276
|
+
const existingB = conflicts.find(c => c.classInfo === classB);
|
|
277
|
+
if (existingA) {
|
|
278
|
+
existingA.conflictsWith.push(classB.className);
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
conflicts.push({
|
|
282
|
+
classInfo: classA,
|
|
283
|
+
conflictsWith: [classB.className],
|
|
284
|
+
cssProperty
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
if (existingB) {
|
|
288
|
+
existingB.conflictsWith.push(classA.className);
|
|
289
|
+
}
|
|
290
|
+
else {
|
|
291
|
+
conflicts.push({
|
|
292
|
+
classInfo: classB,
|
|
293
|
+
conflictsWith: [classA.className],
|
|
294
|
+
cssProperty
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
// Dedupe conflictsWith arrays
|
|
301
|
+
for (const conflict of conflicts) {
|
|
302
|
+
conflict.conflictsWith = [...new Set(conflict.conflictsWith)];
|
|
303
|
+
}
|
|
304
|
+
return conflicts;
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Check if two class names conflict with each other.
|
|
308
|
+
*/
|
|
309
|
+
doClassesConflict(className1, className2) {
|
|
310
|
+
return this.getConflictProperty(className1, className2) !== null;
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Get the conflict group for a class name, if any.
|
|
314
|
+
* Returns the CSS properties that this class affects.
|
|
315
|
+
*/
|
|
316
|
+
getConflictGroup(className) {
|
|
317
|
+
if (!this.cssProvider)
|
|
318
|
+
return null;
|
|
319
|
+
const cssResults = this.cssProvider.getCssForClasses([className]);
|
|
320
|
+
const css = cssResults[0];
|
|
321
|
+
if (!css)
|
|
322
|
+
return null;
|
|
323
|
+
const info = this.parseCss(css);
|
|
324
|
+
if (info.length > 0 && info[0].properties.length > 0) {
|
|
325
|
+
return info[0].properties.join(', ');
|
|
326
|
+
}
|
|
327
|
+
return null;
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Get all classes that would conflict with a given class.
|
|
331
|
+
* Note: This is a simplified implementation that returns an empty array
|
|
332
|
+
* since we no longer have a static conflict group map.
|
|
333
|
+
*/
|
|
334
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
335
|
+
getConflictingClasses(className) {
|
|
336
|
+
// Without a full class list, we can't enumerate all conflicting classes
|
|
337
|
+
// This would require iterating over all possible Tailwind classes
|
|
338
|
+
return [];
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
exports.TailwindConflictDetector = TailwindConflictDetector;
|
|
342
|
+
//# sourceMappingURL=TailwindConflictDetector.js.map
|