css-to-tailwind-react 0.1.2 → 0.2.1
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/dist/cssParser.d.ts +16 -1
- package/dist/cssParser.js +161 -33
- package/dist/index.d.ts +3 -1
- package/dist/index.js +11 -2
- package/dist/jsxDescendantTransformer.d.ts +16 -0
- package/dist/jsxDescendantTransformer.js +335 -0
- package/dist/transformer.js +59 -21
- package/dist/utils/conflictResolver.d.ts +39 -0
- package/dist/utils/conflictResolver.js +140 -0
- package/dist/utils/descendantSelectorResolver.d.ts +20 -0
- package/dist/utils/descendantSelectorResolver.js +186 -0
- package/dist/utils/propertyMapper.d.ts +7 -0
- package/dist/utils/propertyMapper.js +277 -0
- package/dist/utils/specificityCalculator.d.ts +25 -0
- package/dist/utils/specificityCalculator.js +150 -0
- package/package.json +1 -1
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ZERO_SPECIFICITY = void 0;
|
|
4
|
+
exports.createSpecificity = createSpecificity;
|
|
5
|
+
exports.addSpecificity = addSpecificity;
|
|
6
|
+
exports.compareSpecificity = compareSpecificity;
|
|
7
|
+
exports.specificityToString = specificityToString;
|
|
8
|
+
exports.calculateSelectorSpecificity = calculateSelectorSpecificity;
|
|
9
|
+
exports.calculateDescendantSpecificity = calculateDescendantSpecificity;
|
|
10
|
+
exports.calculateSelectorSpecificityFromParts = calculateSelectorSpecificityFromParts;
|
|
11
|
+
exports.isHigherSpecificity = isHigherSpecificity;
|
|
12
|
+
exports.isEqualSpecificity = isEqualSpecificity;
|
|
13
|
+
exports.getHigherSpecificity = getHigherSpecificity;
|
|
14
|
+
const logger_1 = require("./logger");
|
|
15
|
+
exports.ZERO_SPECIFICITY = { inline: 0, id: 0, class: 0, element: 0 };
|
|
16
|
+
function createSpecificity(inline = 0, id = 0, cls = 0, element = 0) {
|
|
17
|
+
return { inline, id, class: cls, element };
|
|
18
|
+
}
|
|
19
|
+
function addSpecificity(a, b) {
|
|
20
|
+
return {
|
|
21
|
+
inline: a.inline + b.inline,
|
|
22
|
+
id: a.id + b.id,
|
|
23
|
+
class: a.class + b.class,
|
|
24
|
+
element: a.element + b.element
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function compareSpecificity(a, b) {
|
|
28
|
+
if (a.inline !== b.inline)
|
|
29
|
+
return a.inline - b.inline;
|
|
30
|
+
if (a.id !== b.id)
|
|
31
|
+
return a.id - b.id;
|
|
32
|
+
if (a.class !== b.class)
|
|
33
|
+
return a.class - b.class;
|
|
34
|
+
return a.element - b.element;
|
|
35
|
+
}
|
|
36
|
+
function specificityToString(spec) {
|
|
37
|
+
return `(${spec.inline}, ${spec.id}, ${spec.class}, ${spec.element})`;
|
|
38
|
+
}
|
|
39
|
+
const ID_SELECTOR_REGEX = /#[a-zA-Z_-][a-zA-Z0-9_-]*/g;
|
|
40
|
+
const CLASS_SELECTOR_REGEX = /\.[a-zA-Z_-][a-zA-Z0-9_-]*/g;
|
|
41
|
+
const PSEUDO_CLASS_REGEX = /:[a-zA-Z-]+/g;
|
|
42
|
+
const ATTRIBUTE_SELECTOR_REGEX = /\[[^\]]+\]/g;
|
|
43
|
+
const ELEMENT_REGEX = /^[a-zA-Z][a-zA-Z0-9]*/;
|
|
44
|
+
const PSEUDO_ELEMENTS = new Set(['before', 'after', 'first-line', 'first-letter', 'selection', 'marker', 'placeholder']);
|
|
45
|
+
const PSEUDO_CLASSES_WITH_ARGS = new Set(['not', 'has', 'is', 'where', 'nth-child', 'nth-of-type', 'nth-last-child', 'nth-last-of-type']);
|
|
46
|
+
function countIds(selector) {
|
|
47
|
+
const matches = selector.match(ID_SELECTOR_REGEX);
|
|
48
|
+
return matches ? matches.length : 0;
|
|
49
|
+
}
|
|
50
|
+
function countClasses(selector) {
|
|
51
|
+
const matches = selector.match(CLASS_SELECTOR_REGEX);
|
|
52
|
+
return matches ? matches.length : 0;
|
|
53
|
+
}
|
|
54
|
+
function countAttributeSelectors(selector) {
|
|
55
|
+
const matches = selector.match(ATTRIBUTE_SELECTOR_REGEX);
|
|
56
|
+
return matches ? matches.length : 0;
|
|
57
|
+
}
|
|
58
|
+
function countPseudoClasses(selector) {
|
|
59
|
+
let count = 0;
|
|
60
|
+
const pseudoMatches = selector.match(PSEUDO_CLASS_REGEX);
|
|
61
|
+
if (pseudoMatches) {
|
|
62
|
+
for (const match of pseudoMatches) {
|
|
63
|
+
const pseudoName = match.slice(1);
|
|
64
|
+
if (PSEUDO_ELEMENTS.has(pseudoName)) {
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
if (PSEUDO_CLASSES_WITH_ARGS.has(pseudoName)) {
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
count++;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return count;
|
|
74
|
+
}
|
|
75
|
+
function countElements(selector) {
|
|
76
|
+
let count = 0;
|
|
77
|
+
const cleaned = selector
|
|
78
|
+
.replace(ID_SELECTOR_REGEX, ' ')
|
|
79
|
+
.replace(CLASS_SELECTOR_REGEX, ' ')
|
|
80
|
+
.replace(PSEUDO_CLASS_REGEX, ' ')
|
|
81
|
+
.replace(ATTRIBUTE_SELECTOR_REGEX, ' ')
|
|
82
|
+
.replace(/[>+~]/g, ' ')
|
|
83
|
+
.trim();
|
|
84
|
+
const parts = cleaned.split(/\s+/).filter(Boolean);
|
|
85
|
+
for (const part of parts) {
|
|
86
|
+
if (ELEMENT_REGEX.test(part)) {
|
|
87
|
+
if (!PSEUDO_ELEMENTS.has(part) && !PSEUDO_CLASSES_WITH_ARGS.has(part)) {
|
|
88
|
+
count++;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return count;
|
|
93
|
+
}
|
|
94
|
+
function calculateSelectorSpecificity(selector) {
|
|
95
|
+
const trimmed = selector.trim();
|
|
96
|
+
if (!trimmed) {
|
|
97
|
+
return exports.ZERO_SPECIFICITY;
|
|
98
|
+
}
|
|
99
|
+
if (trimmed.startsWith('style=')) {
|
|
100
|
+
return createSpecificity(1, 0, 0, 0);
|
|
101
|
+
}
|
|
102
|
+
try {
|
|
103
|
+
const idCount = countIds(trimmed);
|
|
104
|
+
const classCount = countClasses(trimmed);
|
|
105
|
+
const attrCount = countAttributeSelectors(trimmed);
|
|
106
|
+
const pseudoClassCount = countPseudoClasses(trimmed);
|
|
107
|
+
const elementCount = countElements(trimmed);
|
|
108
|
+
return createSpecificity(0, idCount, classCount + attrCount + pseudoClassCount, elementCount);
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
logger_1.logger.verbose(`Failed to calculate specificity for: ${selector}`);
|
|
112
|
+
return exports.ZERO_SPECIFICITY;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
function calculateDescendantSpecificity(parentType, parentName, targetType, targetName) {
|
|
116
|
+
const parentSpec = parentType === 'class'
|
|
117
|
+
? createSpecificity(0, 0, 1, 0)
|
|
118
|
+
: createSpecificity(0, 0, 0, 1);
|
|
119
|
+
const targetSpec = targetType === 'class'
|
|
120
|
+
? createSpecificity(0, 0, 1, 0)
|
|
121
|
+
: createSpecificity(0, 0, 0, 1);
|
|
122
|
+
return addSpecificity(parentSpec, targetSpec);
|
|
123
|
+
}
|
|
124
|
+
function calculateSelectorSpecificityFromParts(parts) {
|
|
125
|
+
let spec = exports.ZERO_SPECIFICITY;
|
|
126
|
+
if (parts.hasClass) {
|
|
127
|
+
spec = addSpecificity(spec, createSpecificity(0, 0, 1, 0));
|
|
128
|
+
}
|
|
129
|
+
if (parts.hasElement) {
|
|
130
|
+
spec = addSpecificity(spec, createSpecificity(0, 0, 0, 1));
|
|
131
|
+
}
|
|
132
|
+
if (parts.hasPseudo) {
|
|
133
|
+
const pseudoCount = parts.pseudoCount || 1;
|
|
134
|
+
spec = addSpecificity(spec, createSpecificity(0, 0, pseudoCount, 0));
|
|
135
|
+
}
|
|
136
|
+
if (parts.isDescendant && parts.parentType && parts.targetType) {
|
|
137
|
+
spec = calculateDescendantSpecificity(parts.parentType, '', parts.targetType, '');
|
|
138
|
+
}
|
|
139
|
+
return spec;
|
|
140
|
+
}
|
|
141
|
+
function isHigherSpecificity(a, b) {
|
|
142
|
+
return compareSpecificity(a, b) > 0;
|
|
143
|
+
}
|
|
144
|
+
function isEqualSpecificity(a, b) {
|
|
145
|
+
return compareSpecificity(a, b) === 0;
|
|
146
|
+
}
|
|
147
|
+
function getHigherSpecificity(a, b) {
|
|
148
|
+
return compareSpecificity(a, b) >= 0 ? a : b;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lmaWNpdHlDYWxjdWxhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3NwZWNpZmljaXR5Q2FsY3VsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFXQSw4Q0FFQztBQUVELHdDQU9DO0FBRUQsZ0RBS0M7QUFFRCxrREFFQztBQXlFRCxvRUE0QkM7QUFFRCx3RUFlQztBQUVELHNGQTZCQztBQUVELGtEQUVDO0FBRUQsZ0RBRUM7QUFFRCxvREFFQztBQWxNRCxxQ0FBa0M7QUFTckIsUUFBQSxnQkFBZ0IsR0FBZ0IsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFFeEYsU0FBZ0IsaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLENBQUM7SUFDeEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQztBQUM3QyxDQUFDO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLENBQWMsRUFBRSxDQUFjO0lBQzNELE9BQU87UUFDTCxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTTtRQUMzQixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRTtRQUNmLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLO1FBQ3hCLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPO0tBQy9CLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0Isa0JBQWtCLENBQUMsQ0FBYyxFQUFFLENBQWM7SUFDL0QsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxNQUFNO1FBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDdEQsSUFBSSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFO1FBQUUsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDdEMsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxLQUFLO1FBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDbEQsT0FBTyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUM7QUFDL0IsQ0FBQztBQUVELFNBQWdCLG1CQUFtQixDQUFDLElBQWlCO0lBQ25ELE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUM7QUFDeEUsQ0FBQztBQUVELE1BQU0saUJBQWlCLEdBQUcsNEJBQTRCLENBQUM7QUFDdkQsTUFBTSxvQkFBb0IsR0FBRyw2QkFBNkIsQ0FBQztBQUMzRCxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FBQztBQUMxQyxNQUFNLHdCQUF3QixHQUFHLGFBQWEsQ0FBQztBQUMvQyxNQUFNLGFBQWEsR0FBRyx1QkFBdUIsQ0FBQztBQUU5QyxNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7QUFDekgsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixDQUFDLENBQUMsQ0FBQztBQUUxSSxTQUFTLFFBQVEsQ0FBQyxRQUFnQjtJQUNoQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDbEQsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsUUFBZ0I7SUFDcEMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3JELE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEMsQ0FBQztBQUVELFNBQVMsdUJBQXVCLENBQUMsUUFBZ0I7SUFDL0MsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQ3pELE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEMsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsUUFBZ0I7SUFDMUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRXpELElBQUksYUFBYSxFQUFFLENBQUM7UUFDbEIsS0FBSyxNQUFNLEtBQUssSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRWxDLElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUNwQyxTQUFTO1lBQ1gsQ0FBQztZQUVELElBQUksd0JBQXdCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQzdDLFNBQVM7WUFDWCxDQUFDO1lBRUQsS0FBSyxFQUFFLENBQUM7UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLFFBQWdCO0lBQ3JDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztJQUVkLE1BQU0sT0FBTyxHQUFHLFFBQVE7U0FDckIsT0FBTyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQztTQUMvQixPQUFPLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxDQUFDO1NBQ2xDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLENBQUM7U0FDaEMsT0FBTyxDQUFDLHdCQUF3QixFQUFFLEdBQUcsQ0FBQztTQUN0QyxPQUFPLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQztTQUN0QixJQUFJLEVBQUUsQ0FBQztJQUVWLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRW5ELEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDekIsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDdEUsS0FBSyxFQUFFLENBQUM7WUFDVixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxTQUFnQiw0QkFBNEIsQ0FBQyxRQUFnQjtJQUMzRCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFaEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsT0FBTyx3QkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDakMsT0FBTyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QyxNQUFNLFNBQVMsR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuRCxNQUFNLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU1QyxPQUFPLGlCQUFpQixDQUN0QixDQUFDLEVBQ0QsT0FBTyxFQUNQLFVBQVUsR0FBRyxTQUFTLEdBQUcsZ0JBQWdCLEVBQ3pDLFlBQVksQ0FDYixDQUFDO0lBQ0osQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixlQUFNLENBQUMsT0FBTyxDQUFDLHdDQUF3QyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLE9BQU8sd0JBQWdCLENBQUM7SUFDMUIsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFnQiw4QkFBOEIsQ0FDNUMsVUFBK0IsRUFDL0IsVUFBa0IsRUFDbEIsVUFBK0IsRUFDL0IsVUFBa0I7SUFFbEIsTUFBTSxVQUFVLEdBQUcsVUFBVSxLQUFLLE9BQU87UUFDdkMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFbEMsTUFBTSxVQUFVLEdBQUcsVUFBVSxLQUFLLE9BQU87UUFDdkMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFbEMsT0FBTyxjQUFjLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRCxTQUFnQixxQ0FBcUMsQ0FBQyxLQVFyRDtJQUNDLElBQUksSUFBSSxHQUFHLHdCQUFnQixDQUFDO0lBRTVCLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25CLElBQUksR0FBRyxjQUFjLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3JCLElBQUksR0FBRyxjQUFjLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDO1FBQzNDLElBQUksR0FBRyxjQUFjLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMvRCxJQUFJLEdBQUcsOEJBQThCLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsU0FBZ0IsbUJBQW1CLENBQUMsQ0FBYyxFQUFFLENBQWM7SUFDaEUsT0FBTyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FBQyxDQUFjLEVBQUUsQ0FBYztJQUMvRCxPQUFPLGtCQUFrQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVELFNBQWdCLG9CQUFvQixDQUFDLENBQWMsRUFBRSxDQUFjO0lBQ2pFLE9BQU8sa0JBQWtCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4vbG9nZ2VyJztcblxuZXhwb3J0IGludGVyZmFjZSBTcGVjaWZpY2l0eSB7XG4gIGlubGluZTogbnVtYmVyO1xuICBpZDogbnVtYmVyO1xuICBjbGFzczogbnVtYmVyO1xuICBlbGVtZW50OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjb25zdCBaRVJPX1NQRUNJRklDSVRZOiBTcGVjaWZpY2l0eSA9IHsgaW5saW5lOiAwLCBpZDogMCwgY2xhc3M6IDAsIGVsZW1lbnQ6IDAgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNwZWNpZmljaXR5KGlubGluZSA9IDAsIGlkID0gMCwgY2xzID0gMCwgZWxlbWVudCA9IDApOiBTcGVjaWZpY2l0eSB7XG4gIHJldHVybiB7IGlubGluZSwgaWQsIGNsYXNzOiBjbHMsIGVsZW1lbnQgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFNwZWNpZmljaXR5KGE6IFNwZWNpZmljaXR5LCBiOiBTcGVjaWZpY2l0eSk6IFNwZWNpZmljaXR5IHtcbiAgcmV0dXJuIHtcbiAgICBpbmxpbmU6IGEuaW5saW5lICsgYi5pbmxpbmUsXG4gICAgaWQ6IGEuaWQgKyBiLmlkLFxuICAgIGNsYXNzOiBhLmNsYXNzICsgYi5jbGFzcyxcbiAgICBlbGVtZW50OiBhLmVsZW1lbnQgKyBiLmVsZW1lbnRcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBhcmVTcGVjaWZpY2l0eShhOiBTcGVjaWZpY2l0eSwgYjogU3BlY2lmaWNpdHkpOiBudW1iZXIge1xuICBpZiAoYS5pbmxpbmUgIT09IGIuaW5saW5lKSByZXR1cm4gYS5pbmxpbmUgLSBiLmlubGluZTtcbiAgaWYgKGEuaWQgIT09IGIuaWQpIHJldHVybiBhLmlkIC0gYi5pZDtcbiAgaWYgKGEuY2xhc3MgIT09IGIuY2xhc3MpIHJldHVybiBhLmNsYXNzIC0gYi5jbGFzcztcbiAgcmV0dXJuIGEuZWxlbWVudCAtIGIuZWxlbWVudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNwZWNpZmljaXR5VG9TdHJpbmcoc3BlYzogU3BlY2lmaWNpdHkpOiBzdHJpbmcge1xuICByZXR1cm4gYCgke3NwZWMuaW5saW5lfSwgJHtzcGVjLmlkfSwgJHtzcGVjLmNsYXNzfSwgJHtzcGVjLmVsZW1lbnR9KWA7XG59XG5cbmNvbnN0IElEX1NFTEVDVE9SX1JFR0VYID0gLyNbYS16QS1aXy1dW2EtekEtWjAtOV8tXSovZztcbmNvbnN0IENMQVNTX1NFTEVDVE9SX1JFR0VYID0gL1xcLlthLXpBLVpfLV1bYS16QS1aMC05Xy1dKi9nO1xuY29uc3QgUFNFVURPX0NMQVNTX1JFR0VYID0gLzpbYS16QS1aLV0rL2c7XG5jb25zdCBBVFRSSUJVVEVfU0VMRUNUT1JfUkVHRVggPSAvXFxbW15cXF1dK1xcXS9nO1xuY29uc3QgRUxFTUVOVF9SRUdFWCA9IC9eW2EtekEtWl1bYS16QS1aMC05XSovO1xuXG5jb25zdCBQU0VVRE9fRUxFTUVOVFMgPSBuZXcgU2V0KFsnYmVmb3JlJywgJ2FmdGVyJywgJ2ZpcnN0LWxpbmUnLCAnZmlyc3QtbGV0dGVyJywgJ3NlbGVjdGlvbicsICdtYXJrZXInLCAncGxhY2Vob2xkZXInXSk7XG5jb25zdCBQU0VVRE9fQ0xBU1NFU19XSVRIX0FSR1MgPSBuZXcgU2V0KFsnbm90JywgJ2hhcycsICdpcycsICd3aGVyZScsICdudGgtY2hpbGQnLCAnbnRoLW9mLXR5cGUnLCAnbnRoLWxhc3QtY2hpbGQnLCAnbnRoLWxhc3Qtb2YtdHlwZSddKTtcblxuZnVuY3Rpb24gY291bnRJZHMoc2VsZWN0b3I6IHN0cmluZyk6IG51bWJlciB7XG4gIGNvbnN0IG1hdGNoZXMgPSBzZWxlY3Rvci5tYXRjaChJRF9TRUxFQ1RPUl9SRUdFWCk7XG4gIHJldHVybiBtYXRjaGVzID8gbWF0Y2hlcy5sZW5ndGggOiAwO1xufVxuXG5mdW5jdGlvbiBjb3VudENsYXNzZXMoc2VsZWN0b3I6IHN0cmluZyk6IG51bWJlciB7XG4gIGNvbnN0IG1hdGNoZXMgPSBzZWxlY3Rvci5tYXRjaChDTEFTU19TRUxFQ1RPUl9SRUdFWCk7XG4gIHJldHVybiBtYXRjaGVzID8gbWF0Y2hlcy5sZW5ndGggOiAwO1xufVxuXG5mdW5jdGlvbiBjb3VudEF0dHJpYnV0ZVNlbGVjdG9ycyhzZWxlY3Rvcjogc3RyaW5nKTogbnVtYmVyIHtcbiAgY29uc3QgbWF0Y2hlcyA9IHNlbGVjdG9yLm1hdGNoKEFUVFJJQlVURV9TRUxFQ1RPUl9SRUdFWCk7XG4gIHJldHVybiBtYXRjaGVzID8gbWF0Y2hlcy5sZW5ndGggOiAwO1xufVxuXG5mdW5jdGlvbiBjb3VudFBzZXVkb0NsYXNzZXMoc2VsZWN0b3I6IHN0cmluZyk6IG51bWJlciB7XG4gIGxldCBjb3VudCA9IDA7XG4gIGNvbnN0IHBzZXVkb01hdGNoZXMgPSBzZWxlY3Rvci5tYXRjaChQU0VVRE9fQ0xBU1NfUkVHRVgpO1xuICBcbiAgaWYgKHBzZXVkb01hdGNoZXMpIHtcbiAgICBmb3IgKGNvbnN0IG1hdGNoIG9mIHBzZXVkb01hdGNoZXMpIHtcbiAgICAgIGNvbnN0IHBzZXVkb05hbWUgPSBtYXRjaC5zbGljZSgxKTtcbiAgICAgIFxuICAgICAgaWYgKFBTRVVET19FTEVNRU5UUy5oYXMocHNldWRvTmFtZSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGlmIChQU0VVRE9fQ0xBU1NFU19XSVRIX0FSR1MuaGFzKHBzZXVkb05hbWUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgXG4gICAgICBjb3VudCsrO1xuICAgIH1cbiAgfVxuICBcbiAgcmV0dXJuIGNvdW50O1xufVxuXG5mdW5jdGlvbiBjb3VudEVsZW1lbnRzKHNlbGVjdG9yOiBzdHJpbmcpOiBudW1iZXIge1xuICBsZXQgY291bnQgPSAwO1xuICBcbiAgY29uc3QgY2xlYW5lZCA9IHNlbGVjdG9yXG4gICAgLnJlcGxhY2UoSURfU0VMRUNUT1JfUkVHRVgsICcgJylcbiAgICAucmVwbGFjZShDTEFTU19TRUxFQ1RPUl9SRUdFWCwgJyAnKVxuICAgIC5yZXBsYWNlKFBTRVVET19DTEFTU19SRUdFWCwgJyAnKVxuICAgIC5yZXBsYWNlKEFUVFJJQlVURV9TRUxFQ1RPUl9SRUdFWCwgJyAnKVxuICAgIC5yZXBsYWNlKC9bPit+XS9nLCAnICcpXG4gICAgLnRyaW0oKTtcbiAgXG4gIGNvbnN0IHBhcnRzID0gY2xlYW5lZC5zcGxpdCgvXFxzKy8pLmZpbHRlcihCb29sZWFuKTtcbiAgXG4gIGZvciAoY29uc3QgcGFydCBvZiBwYXJ0cykge1xuICAgIGlmIChFTEVNRU5UX1JFR0VYLnRlc3QocGFydCkpIHtcbiAgICAgIGlmICghUFNFVURPX0VMRU1FTlRTLmhhcyhwYXJ0KSAmJiAhUFNFVURPX0NMQVNTRVNfV0lUSF9BUkdTLmhhcyhwYXJ0KSkge1xuICAgICAgICBjb3VudCsrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBcbiAgcmV0dXJuIGNvdW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlU2VsZWN0b3JTcGVjaWZpY2l0eShzZWxlY3Rvcjogc3RyaW5nKTogU3BlY2lmaWNpdHkge1xuICBjb25zdCB0cmltbWVkID0gc2VsZWN0b3IudHJpbSgpO1xuICBcbiAgaWYgKCF0cmltbWVkKSB7XG4gICAgcmV0dXJuIFpFUk9fU1BFQ0lGSUNJVFk7XG4gIH1cbiAgXG4gIGlmICh0cmltbWVkLnN0YXJ0c1dpdGgoJ3N0eWxlPScpKSB7XG4gICAgcmV0dXJuIGNyZWF0ZVNwZWNpZmljaXR5KDEsIDAsIDAsIDApO1xuICB9XG4gIFxuICB0cnkge1xuICAgIGNvbnN0IGlkQ291bnQgPSBjb3VudElkcyh0cmltbWVkKTtcbiAgICBjb25zdCBjbGFzc0NvdW50ID0gY291bnRDbGFzc2VzKHRyaW1tZWQpO1xuICAgIGNvbnN0IGF0dHJDb3VudCA9IGNvdW50QXR0cmlidXRlU2VsZWN0b3JzKHRyaW1tZWQpO1xuICAgIGNvbnN0IHBzZXVkb0NsYXNzQ291bnQgPSBjb3VudFBzZXVkb0NsYXNzZXModHJpbW1lZCk7XG4gICAgY29uc3QgZWxlbWVudENvdW50ID0gY291bnRFbGVtZW50cyh0cmltbWVkKTtcbiAgICBcbiAgICByZXR1cm4gY3JlYXRlU3BlY2lmaWNpdHkoXG4gICAgICAwLFxuICAgICAgaWRDb3VudCxcbiAgICAgIGNsYXNzQ291bnQgKyBhdHRyQ291bnQgKyBwc2V1ZG9DbGFzc0NvdW50LFxuICAgICAgZWxlbWVudENvdW50XG4gICAgKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBsb2dnZXIudmVyYm9zZShgRmFpbGVkIHRvIGNhbGN1bGF0ZSBzcGVjaWZpY2l0eSBmb3I6ICR7c2VsZWN0b3J9YCk7XG4gICAgcmV0dXJuIFpFUk9fU1BFQ0lGSUNJVFk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZURlc2NlbmRhbnRTcGVjaWZpY2l0eShcbiAgcGFyZW50VHlwZTogJ2NsYXNzJyB8ICdlbGVtZW50JyxcbiAgcGFyZW50TmFtZTogc3RyaW5nLFxuICB0YXJnZXRUeXBlOiAnY2xhc3MnIHwgJ2VsZW1lbnQnLFxuICB0YXJnZXROYW1lOiBzdHJpbmdcbik6IFNwZWNpZmljaXR5IHtcbiAgY29uc3QgcGFyZW50U3BlYyA9IHBhcmVudFR5cGUgPT09ICdjbGFzcydcbiAgICA/IGNyZWF0ZVNwZWNpZmljaXR5KDAsIDAsIDEsIDApXG4gICAgOiBjcmVhdGVTcGVjaWZpY2l0eSgwLCAwLCAwLCAxKTtcbiAgXG4gIGNvbnN0IHRhcmdldFNwZWMgPSB0YXJnZXRUeXBlID09PSAnY2xhc3MnXG4gICAgPyBjcmVhdGVTcGVjaWZpY2l0eSgwLCAwLCAxLCAwKVxuICAgIDogY3JlYXRlU3BlY2lmaWNpdHkoMCwgMCwgMCwgMSk7XG4gIFxuICByZXR1cm4gYWRkU3BlY2lmaWNpdHkocGFyZW50U3BlYywgdGFyZ2V0U3BlYyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVTZWxlY3RvclNwZWNpZmljaXR5RnJvbVBhcnRzKHBhcnRzOiB7XG4gIGhhc0NsYXNzOiBib29sZWFuO1xuICBoYXNFbGVtZW50OiBib29sZWFuO1xuICBoYXNQc2V1ZG86IGJvb2xlYW47XG4gIHBzZXVkb0NvdW50PzogbnVtYmVyO1xuICBpc0Rlc2NlbmRhbnQ/OiBib29sZWFuO1xuICBwYXJlbnRUeXBlPzogJ2NsYXNzJyB8ICdlbGVtZW50JztcbiAgdGFyZ2V0VHlwZT86ICdjbGFzcycgfCAnZWxlbWVudCc7XG59KTogU3BlY2lmaWNpdHkge1xuICBsZXQgc3BlYyA9IFpFUk9fU1BFQ0lGSUNJVFk7XG4gIFxuICBpZiAocGFydHMuaGFzQ2xhc3MpIHtcbiAgICBzcGVjID0gYWRkU3BlY2lmaWNpdHkoc3BlYywgY3JlYXRlU3BlY2lmaWNpdHkoMCwgMCwgMSwgMCkpO1xuICB9XG4gIFxuICBpZiAocGFydHMuaGFzRWxlbWVudCkge1xuICAgIHNwZWMgPSBhZGRTcGVjaWZpY2l0eShzcGVjLCBjcmVhdGVTcGVjaWZpY2l0eSgwLCAwLCAwLCAxKSk7XG4gIH1cbiAgXG4gIGlmIChwYXJ0cy5oYXNQc2V1ZG8pIHtcbiAgICBjb25zdCBwc2V1ZG9Db3VudCA9IHBhcnRzLnBzZXVkb0NvdW50IHx8IDE7XG4gICAgc3BlYyA9IGFkZFNwZWNpZmljaXR5KHNwZWMsIGNyZWF0ZVNwZWNpZmljaXR5KDAsIDAsIHBzZXVkb0NvdW50LCAwKSk7XG4gIH1cbiAgXG4gIGlmIChwYXJ0cy5pc0Rlc2NlbmRhbnQgJiYgcGFydHMucGFyZW50VHlwZSAmJiBwYXJ0cy50YXJnZXRUeXBlKSB7XG4gICAgc3BlYyA9IGNhbGN1bGF0ZURlc2NlbmRhbnRTcGVjaWZpY2l0eShwYXJ0cy5wYXJlbnRUeXBlLCAnJywgcGFydHMudGFyZ2V0VHlwZSwgJycpO1xuICB9XG4gIFxuICByZXR1cm4gc3BlYztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSGlnaGVyU3BlY2lmaWNpdHkoYTogU3BlY2lmaWNpdHksIGI6IFNwZWNpZmljaXR5KTogYm9vbGVhbiB7XG4gIHJldHVybiBjb21wYXJlU3BlY2lmaWNpdHkoYSwgYikgPiAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNFcXVhbFNwZWNpZmljaXR5KGE6IFNwZWNpZmljaXR5LCBiOiBTcGVjaWZpY2l0eSk6IGJvb2xlYW4ge1xuICByZXR1cm4gY29tcGFyZVNwZWNpZmljaXR5KGEsIGIpID09PSAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGlnaGVyU3BlY2lmaWNpdHkoYTogU3BlY2lmaWNpdHksIGI6IFNwZWNpZmljaXR5KTogU3BlY2lmaWNpdHkge1xuICByZXR1cm4gY29tcGFyZVNwZWNpZmljaXR5KGEsIGIpID49IDAgPyBhIDogYjtcbn0iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "css-to-tailwind-react",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Convert traditional CSS (inline, internal, and external) into Tailwind CSS utility classes for React-based frameworks",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|