@taiga-ui/stylelint-config 0.519.0 → 0.521.0

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/index.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import { type Config } from 'stylelint';
2
+ type StylelintConfig = Config & {
3
+ readonly $schema: string;
4
+ };
5
+ declare const config: StylelintConfig;
6
+ export = config;
package/index.js CHANGED
@@ -1,10 +1,13 @@
1
- const {defaults: browserslist} = require('@taiga-ui/browserslist-config');
2
-
3
- /** @type {import('stylelint').Config} */
4
- module.exports = {
5
- $schema:
6
- 'https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/stylelintrc.json',
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ const browserslist_config_1 = __importDefault(require("@taiga-ui/browserslist-config"));
6
+ const { defaults: browserslist } = browserslist_config_1.default;
7
+ const config = {
8
+ $schema: 'https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/stylelintrc.json',
7
9
  plugins: [
10
+ './rules/no-mask-shorthand.js',
8
11
  './rules/no-webkit-box-orient-block-axis.js',
9
12
  './rules/relative-less-import-extension.js',
10
13
  'stylelint-order',
@@ -43,6 +46,7 @@ module.exports = {
43
46
  '@stylistic/selector-pseudo-class-parentheses-space-inside': null,
44
47
  '@stylistic/string-quotes': 'single',
45
48
  '@stylistic/value-list-comma-newline-after': null,
49
+ '@taiga-ui/no-mask-shorthand': true,
46
50
  '@taiga-ui/no-webkit-box-orient-block-axis': true,
47
51
  '@taiga-ui/relative-less-import-extension': true,
48
52
  'alpha-value-notation': 'number',
@@ -66,20 +70,10 @@ module.exports = {
66
70
  'at-rule-no-unknown': true,
67
71
  'at-rule-no-vendor-prefix': true,
68
72
  'block-no-empty': true,
69
- 'color-function-notation': [
70
- 'legacy',
71
- {
72
- ignore: ['with-var-inside'],
73
- },
74
- ],
73
+ 'color-function-notation': ['legacy', { ignore: ['with-var-inside'] }],
75
74
  'color-hex-alpha': 'never',
76
75
  'color-hex-length': 'short',
77
- 'color-named': [
78
- 'never',
79
- {
80
- ignoreProperties: ['mask', 'mask-image'],
81
- },
82
- ],
76
+ 'color-named': ['never', { ignoreProperties: ['mask', 'mask-image'] }],
83
77
  'color-no-invalid-hex': true,
84
78
  'comment-no-empty': true,
85
79
  'comment-whitespace-inside': 'always',
@@ -106,15 +100,14 @@ module.exports = {
106
100
  'declaration-block-no-duplicate-custom-properties': true,
107
101
  'declaration-block-no-duplicate-properties': [
108
102
  true,
109
- {
110
- ignore: ['consecutive-duplicates'],
111
- },
103
+ { ignore: ['consecutive-duplicates'] },
112
104
  ],
113
105
  'declaration-block-no-redundant-longhand-properties': [
114
106
  true,
115
107
  {
116
108
  ignoreShorthands: [
117
109
  'inset',
110
+ 'mask',
118
111
  'overflow',
119
112
  'margin-inline',
120
113
  'margin-block',
@@ -145,22 +138,12 @@ module.exports = {
145
138
  'function-calc-no-unspaced-operator': true,
146
139
  'function-linear-gradient-no-nonstandard-direction': true,
147
140
  'function-name-case': 'lower',
148
- 'function-no-unknown': [
149
- true,
150
- {
151
- ignoreFunctions: ['fade', 'lighten', 'darken'],
152
- },
153
- ],
141
+ 'function-no-unknown': [true, { ignoreFunctions: ['fade', 'lighten', 'darken'] }],
154
142
  'function-url-no-scheme-relative': true,
155
143
  'function-url-quotes': 'always',
156
144
  'keyframe-block-no-duplicate-selectors': true,
157
145
  'keyframe-declaration-no-important': true,
158
- 'length-zero-no-unit': [
159
- true,
160
- {
161
- ignore: ['custom-properties'],
162
- },
163
- ],
146
+ 'length-zero-no-unit': [true, { ignore: ['custom-properties'] }],
164
147
  'lightness-notation': 'percentage',
165
148
  'logical-css/require-logical-keywords': [
166
149
  true,
@@ -226,9 +209,7 @@ module.exports = {
226
209
  'z-index',
227
210
  'display',
228
211
  ],
229
- {
230
- unspecified: 'bottom',
231
- },
212
+ { unspecified: 'bottom' },
232
213
  ],
233
214
  'plugin/no-unsupported-browser-features': [
234
215
  true,
@@ -324,12 +305,7 @@ module.exports = {
324
305
  'property-disallowed-list': [
325
306
  '/^word-wrap$/', // The word-wrap property was renamed to overflow-wrap in CSS3
326
307
  ],
327
- 'property-no-unknown': [
328
- true,
329
- {
330
- ignoreProperties: ['interpolate-size'],
331
- },
332
- ],
308
+ 'property-no-unknown': [true, { ignoreProperties: ['interpolate-size'] }],
333
309
  'property-no-vendor-prefix': null,
334
310
  'rem-over-px/rem-over-px': [
335
311
  true,
@@ -371,12 +347,7 @@ module.exports = {
371
347
  'selector-no-vendor-prefix': true,
372
348
  'selector-pseudo-class-no-unknown': true,
373
349
  'selector-pseudo-element-colon-notation': 'double',
374
- 'selector-pseudo-element-no-unknown': [
375
- true,
376
- {
377
- ignorePseudoElements: ['ng-deep'],
378
- },
379
- ],
350
+ 'selector-pseudo-element-no-unknown': [true, { ignorePseudoElements: ['ng-deep'] }],
380
351
  'selector-type-case': 'lower',
381
352
  'selector-type-no-unknown': [
382
353
  true,
@@ -417,9 +388,11 @@ module.exports = {
417
388
  'lower',
418
389
  {
419
390
  ignoreKeywords: ['currentColor', 'backgroundColor', 'optimizeLegibility'],
420
- ignoreProperties: ['/^--/', String.raw`/^\$/`],
391
+ ignoreProperties: ['/^--/', String.raw `/^\$/`],
421
392
  },
422
393
  ],
423
394
  'value-no-vendor-prefix': true,
424
395
  },
425
396
  };
397
+ module.exports = config;
398
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../projects/stylelint-config/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/stylelint-config",
3
- "version": "0.519.0",
3
+ "version": "0.521.0",
4
4
  "description": "Taiga UI stylelint config",
5
5
  "keywords": [
6
6
  "stylelint",
@@ -34,25 +34,24 @@
34
34
  }
35
35
  ],
36
36
  "main": "index.js",
37
- "peerDependencies": {
38
- "@stylistic/stylelint-config": "^5.0.0",
39
- "@stylistic/stylelint-plugin": "^5.1.0",
40
- "@taiga-ui/browserslist-config": "^0.519.0",
41
- "postcss": "^8.5.12",
42
- "postcss-less": "^6.0.0",
43
- "stylelint": "^17.9.1",
44
- "stylelint-config-standard": "^40.0.0",
45
- "stylelint-no-unsupported-browser-features": "^8.1.1",
46
- "stylelint-order": "^8.1.1",
47
- "stylelint-plugin-logical-css": "^2.1.0",
48
- "stylelint-plugin-use-baseline": "^1.4.1",
49
- "stylelint-rem-over-px": "^1.0.2",
50
- "stylelint-use-logical": "^2.1.3"
37
+ "types": "index.d.ts",
38
+ "dependencies": {
39
+ "@stylistic/stylelint-config": "5.0.0",
40
+ "@stylistic/stylelint-plugin": "5.1.0",
41
+ "@taiga-ui/browserslist-config": "^0.521.0",
42
+ "postcss": "8.5.14",
43
+ "postcss-less": "6.0.0",
44
+ "postcss-value-parser": "4.2.0",
45
+ "stylelint-config-standard": "40.0.0",
46
+ "stylelint-no-unsupported-browser-features": "8.1.1",
47
+ "stylelint-order": "8.1.1",
48
+ "stylelint-plugin-logical-css": "2.1.0",
49
+ "stylelint-plugin-use-baseline": "1.4.2",
50
+ "stylelint-rem-over-px": "1.0.2",
51
+ "stylelint-use-logical": "2.1.3"
51
52
  },
52
- "peerDependenciesMeta": {
53
- "@taiga-ui/browserslist-config": {
54
- "optional": true
55
- }
53
+ "peerDependencies": {
54
+ "stylelint": "^17.9.1"
56
55
  },
57
56
  "publishConfig": {
58
57
  "access": "public"
@@ -0,0 +1,9 @@
1
+ import stylelint from 'stylelint';
2
+ declare const plugin: stylelint.Plugin & {
3
+ messages: {
4
+ expected: string;
5
+ };
6
+ meta: stylelint.RuleMeta;
7
+ ruleName: string;
8
+ };
9
+ export = plugin;
@@ -0,0 +1,433 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ const postcss_value_parser_1 = __importDefault(require("postcss-value-parser"));
6
+ const stylelint_1 = __importDefault(require("stylelint"));
7
+ const { createPlugin, utils: { report, ruleMessages, validateOptions }, } = stylelint_1.default;
8
+ const ruleName = '@taiga-ui/no-mask-shorthand';
9
+ const messages = ruleMessages(ruleName, {
10
+ expected: 'Expected "mask" shorthand to be expanded into longhand properties',
11
+ });
12
+ const meta = {
13
+ fixable: true,
14
+ url: 'https://github.com/taiga-family/toolkit/tree/main/projects/stylelint-config',
15
+ };
16
+ const cssWideKeywords = new Set([
17
+ 'inherit',
18
+ 'initial',
19
+ 'revert',
20
+ 'revert-layer',
21
+ 'unset',
22
+ ]);
23
+ const geometryBoxes = new Set([
24
+ 'border-box',
25
+ 'content-box',
26
+ 'fill-box',
27
+ 'margin-box',
28
+ 'padding-box',
29
+ 'stroke-box',
30
+ 'view-box',
31
+ ]);
32
+ const imageFunctions = new Set([
33
+ '-webkit-gradient',
34
+ 'conic-gradient',
35
+ 'cross-fade',
36
+ 'element',
37
+ 'image',
38
+ 'image-set',
39
+ 'linear-gradient',
40
+ 'paint',
41
+ 'radial-gradient',
42
+ 'repeating-conic-gradient',
43
+ 'repeating-linear-gradient',
44
+ 'repeating-radial-gradient',
45
+ 'url',
46
+ ]);
47
+ const positionSizeFunctions = new Set([
48
+ 'anchor',
49
+ 'anchor-size',
50
+ 'calc',
51
+ 'clamp',
52
+ 'env',
53
+ 'max',
54
+ 'min',
55
+ 'round',
56
+ ]);
57
+ const maskModes = new Set(['alpha', 'luminance', 'match-source']);
58
+ const maskComposites = new Set(['add', 'exclude', 'intersect', 'subtract']);
59
+ const dimensionPattern = /^-?(?:\d+|\d*\.\d+)(?:%|[a-z]+)?$/i;
60
+ const positionKeywords = new Set([
61
+ 'block-end',
62
+ 'block-start',
63
+ 'bottom',
64
+ 'center',
65
+ 'end',
66
+ 'inline-end',
67
+ 'inline-start',
68
+ 'left',
69
+ 'right',
70
+ 'start',
71
+ 'top',
72
+ 'x-end',
73
+ 'x-start',
74
+ 'y-end',
75
+ 'y-start',
76
+ ]);
77
+ const sizeKeywords = new Set(['auto', 'contain', 'cover']);
78
+ const repeatKeywords = new Set(['no-repeat', 'repeat', 'round', 'space']);
79
+ const singleRepeatKeywords = new Set([
80
+ 'repeat-block',
81
+ 'repeat-inline',
82
+ 'repeat-x',
83
+ 'repeat-y',
84
+ ]);
85
+ const longhandDefinitions = [
86
+ { always: true, initial: 'none', key: 'image', prop: 'mask-image' },
87
+ { initial: 'repeat', key: 'repeat', prop: 'mask-repeat' },
88
+ { initial: '0% 0%', key: 'position', prop: 'mask-position' },
89
+ { initial: 'auto', key: 'size', prop: 'mask-size' },
90
+ { initial: 'border-box', key: 'origin', prop: 'mask-origin' },
91
+ { initial: 'border-box', key: 'clip', prop: 'mask-clip' },
92
+ { initial: 'match-source', key: 'mode', prop: 'mask-mode' },
93
+ { initial: 'add', key: 'composite', prop: 'mask-composite' },
94
+ ];
95
+ function stringifyNodes(nodes) {
96
+ return postcss_value_parser_1.default.stringify(nodes).trim();
97
+ }
98
+ function containsVar(nodes) {
99
+ return nodes.some((node) => {
100
+ if (node.type !== 'function') {
101
+ return false;
102
+ }
103
+ return node.value.toLowerCase() === 'var' ? true : containsVar(node.nodes);
104
+ });
105
+ }
106
+ function splitLayers(nodes) {
107
+ const layers = [];
108
+ let current = [];
109
+ for (const node of nodes) {
110
+ if (node.type === 'div' && node.value === ',') {
111
+ layers.push(current);
112
+ current = [];
113
+ continue;
114
+ }
115
+ current.push(node);
116
+ }
117
+ layers.push(current);
118
+ return layers.filter((layer) => stringifyNodes(layer));
119
+ }
120
+ function pushTerm(terms, nodes) {
121
+ if (nodes.length === 0) {
122
+ return;
123
+ }
124
+ terms.push({
125
+ nodes,
126
+ type: 'value',
127
+ value: stringifyNodes(nodes),
128
+ });
129
+ }
130
+ function createTerms(nodes) {
131
+ const terms = [];
132
+ let current = [];
133
+ for (const node of nodes) {
134
+ if (node.type === 'comment') {
135
+ return null;
136
+ }
137
+ if (node.type === 'space') {
138
+ pushTerm(terms, current);
139
+ current = [];
140
+ continue;
141
+ }
142
+ if (node.type === 'div') {
143
+ if (node.value !== '/') {
144
+ return null;
145
+ }
146
+ pushTerm(terms, current);
147
+ current = [];
148
+ terms.push({ type: 'slash' });
149
+ continue;
150
+ }
151
+ current.push(node);
152
+ }
153
+ pushTerm(terms, current);
154
+ return terms;
155
+ }
156
+ function getWord(term) {
157
+ if (!term || term.type === 'slash' || term.nodes.length !== 1) {
158
+ return null;
159
+ }
160
+ const node = term.nodes[0];
161
+ return node?.type === 'word' ? node.value.toLowerCase() : null;
162
+ }
163
+ function getFunctionName(term) {
164
+ if (!term || term.type === 'slash' || term.nodes.length !== 1) {
165
+ return null;
166
+ }
167
+ const node = term.nodes[0];
168
+ return node?.type === 'function' ? node.value.toLowerCase() : null;
169
+ }
170
+ function isImage(term) {
171
+ const word = getWord(term);
172
+ if (word === 'none' || word?.startsWith('@') || word?.startsWith('$')) {
173
+ return true;
174
+ }
175
+ const functionName = getFunctionName(term);
176
+ return Boolean(functionName && imageFunctions.has(functionName));
177
+ }
178
+ function isPreprocessorValue(word) {
179
+ return word.startsWith('@') || word.startsWith('$') || word.startsWith('~');
180
+ }
181
+ function isPositionSizeFunction(term) {
182
+ const functionName = getFunctionName(term);
183
+ return Boolean(functionName && positionSizeFunctions.has(functionName));
184
+ }
185
+ function isPosition(term) {
186
+ const word = getWord(term);
187
+ return word
188
+ ? isPreprocessorValue(word) ||
189
+ positionKeywords.has(word) ||
190
+ dimensionPattern.test(word)
191
+ : isPositionSizeFunction(term);
192
+ }
193
+ function isSize(term) {
194
+ const word = getWord(term);
195
+ return word
196
+ ? isPreprocessorValue(word) ||
197
+ sizeKeywords.has(word) ||
198
+ dimensionPattern.test(word)
199
+ : isPositionSizeFunction(term);
200
+ }
201
+ function getRepeat(terms, index) {
202
+ const word = getWord(terms[index]);
203
+ if (!word) {
204
+ return null;
205
+ }
206
+ if (singleRepeatKeywords.has(word)) {
207
+ return { consumed: 1, value: word };
208
+ }
209
+ if (!repeatKeywords.has(word)) {
210
+ return null;
211
+ }
212
+ const nextWord = getWord(terms[index + 1]);
213
+ return nextWord && repeatKeywords.has(nextWord)
214
+ ? { consumed: 2, value: `${word} ${nextWord}` }
215
+ : { consumed: 1, value: word };
216
+ }
217
+ function assignGeometry(layer, geometry) {
218
+ if (geometry.length === 0) {
219
+ return true;
220
+ }
221
+ const boxes = geometry.filter((value) => value !== 'no-clip');
222
+ const clips = geometry.filter((value) => value === 'no-clip');
223
+ const hasTooManyGeometryValues = boxes.length > 2 || clips.length > 1;
224
+ if (hasTooManyGeometryValues) {
225
+ return false;
226
+ }
227
+ if (clips.length > 0) {
228
+ layer.clip = 'no-clip';
229
+ if (boxes.length > 0) {
230
+ const origin = boxes[0];
231
+ if (!origin) {
232
+ return false;
233
+ }
234
+ layer.origin = origin;
235
+ }
236
+ return true;
237
+ }
238
+ if (boxes.length === 1) {
239
+ const box = boxes[0];
240
+ if (!box) {
241
+ return false;
242
+ }
243
+ layer.clip = box;
244
+ layer.origin = box;
245
+ return true;
246
+ }
247
+ const origin = boxes[0];
248
+ const clip = boxes[1];
249
+ if (!origin || !clip) {
250
+ return false;
251
+ }
252
+ layer.origin = origin;
253
+ layer.clip = clip;
254
+ return true;
255
+ }
256
+ function assignValue(layer, key, value) {
257
+ if (layer[key]) {
258
+ return false;
259
+ }
260
+ layer[key] = value;
261
+ return true;
262
+ }
263
+ function parseLayer(nodes) {
264
+ const terms = createTerms(nodes);
265
+ if (!terms) {
266
+ return null;
267
+ }
268
+ const layer = {
269
+ clip: null,
270
+ composite: null,
271
+ image: null,
272
+ mode: null,
273
+ origin: null,
274
+ position: null,
275
+ repeat: null,
276
+ size: null,
277
+ };
278
+ const geometry = [];
279
+ const position = [];
280
+ const size = [];
281
+ let isParsingSize = false;
282
+ for (let index = 0; index < terms.length; index++) {
283
+ const term = terms[index];
284
+ if (!term) {
285
+ return null;
286
+ }
287
+ if (term.type === 'slash') {
288
+ if (isParsingSize) {
289
+ return null;
290
+ }
291
+ isParsingSize = true;
292
+ continue;
293
+ }
294
+ const word = getWord(term);
295
+ if (word && maskModes.has(word)) {
296
+ if (!assignValue(layer, 'mode', word)) {
297
+ return null;
298
+ }
299
+ continue;
300
+ }
301
+ if (word && maskComposites.has(word)) {
302
+ if (!assignValue(layer, 'composite', word)) {
303
+ return null;
304
+ }
305
+ continue;
306
+ }
307
+ const repeat = getRepeat(terms, index);
308
+ if (repeat) {
309
+ if (!assignValue(layer, 'repeat', repeat.value)) {
310
+ return null;
311
+ }
312
+ index += repeat.consumed - 1;
313
+ continue;
314
+ }
315
+ if (word && (geometryBoxes.has(word) || word === 'no-clip')) {
316
+ geometry.push(word);
317
+ continue;
318
+ }
319
+ if (!isParsingSize && !layer.image && isImage(term)) {
320
+ layer.image = term.value;
321
+ continue;
322
+ }
323
+ if (isParsingSize) {
324
+ if (!isSize(term)) {
325
+ return null;
326
+ }
327
+ size.push(term.value);
328
+ }
329
+ else {
330
+ if (!isPosition(term)) {
331
+ return null;
332
+ }
333
+ position.push(term.value);
334
+ }
335
+ }
336
+ if (!assignGeometry(layer, geometry)) {
337
+ return null;
338
+ }
339
+ if (position.length > 0) {
340
+ layer.position = position.join(' ');
341
+ }
342
+ if (size.length > 0) {
343
+ layer.size = size.join(' ');
344
+ }
345
+ if (!layer.image) {
346
+ layer.image = 'none';
347
+ }
348
+ return layer;
349
+ }
350
+ function isCssWideKeyword(value) {
351
+ return cssWideKeywords.has(value.trim().toLowerCase());
352
+ }
353
+ function getLonghandValue(layers, definition) {
354
+ const values = layers.map((layer) => layer[definition.key] || definition.initial);
355
+ const firstValue = values[0];
356
+ if (firstValue === undefined) {
357
+ return definition.initial;
358
+ }
359
+ const hasSameValue = values.every((value) => value === firstValue);
360
+ return hasSameValue ? firstValue : values.join(', ');
361
+ }
362
+ function isMaskLayer(layer) {
363
+ return layer !== null;
364
+ }
365
+ function hasExplicitLonghandValue(layers, definition) {
366
+ return definition.always === true || layers.some((layer) => layer[definition.key]);
367
+ }
368
+ function buildLonghands(value) {
369
+ if (isCssWideKeyword(value)) {
370
+ return null;
371
+ }
372
+ const nodes = (0, postcss_value_parser_1.default)(value).nodes;
373
+ if (containsVar(nodes)) {
374
+ return null;
375
+ }
376
+ const parsedLayers = splitLayers(nodes).map(parseLayer);
377
+ const hasUnparseableLayer = parsedLayers.some((layer) => !layer);
378
+ if (hasUnparseableLayer || parsedLayers.length === 0) {
379
+ return null;
380
+ }
381
+ const layers = parsedLayers.filter(isMaskLayer);
382
+ return [
383
+ ...longhandDefinitions
384
+ .filter((definition) => hasExplicitLonghandValue(layers, definition))
385
+ .map((definition) => ({
386
+ prop: definition.prop,
387
+ value: getLonghandValue(layers, definition),
388
+ })),
389
+ ];
390
+ }
391
+ function replaceDeclaration(decl, longhands) {
392
+ for (const longhand of longhands) {
393
+ decl.cloneBefore({
394
+ important: decl.important,
395
+ prop: longhand.prop,
396
+ value: longhand.value,
397
+ });
398
+ }
399
+ decl.remove();
400
+ }
401
+ const ruleFunction = (primary) => (root, result) => {
402
+ const validOptions = validateOptions(result, ruleName, {
403
+ actual: primary,
404
+ possible: [true],
405
+ });
406
+ if (!validOptions) {
407
+ return;
408
+ }
409
+ root.walkDecls('mask', (decl) => {
410
+ const longhands = buildLonghands(decl.value);
411
+ report({
412
+ fix: longhands
413
+ ? () => {
414
+ replaceDeclaration(decl, longhands);
415
+ }
416
+ : undefined,
417
+ message: messages.expected,
418
+ node: decl,
419
+ result,
420
+ ruleName,
421
+ });
422
+ });
423
+ };
424
+ ruleFunction.ruleName = ruleName;
425
+ ruleFunction.messages = messages;
426
+ ruleFunction.meta = meta;
427
+ const plugin = Object.assign(createPlugin(ruleName, ruleFunction), {
428
+ messages,
429
+ meta,
430
+ ruleName,
431
+ });
432
+ module.exports = plugin;
433
+ //# sourceMappingURL=no-mask-shorthand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-mask-shorthand.js","sourceRoot":"","sources":["../../../projects/stylelint-config/rules/no-mask-shorthand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import stylelint from 'stylelint';
2
+ declare const plugin: stylelint.Plugin & {
3
+ messages: {
4
+ expected: string;
5
+ };
6
+ meta: stylelint.RuleMeta;
7
+ ruleName: string;
8
+ };
9
+ export = plugin;
@@ -1,36 +1,29 @@
1
- const stylelint = require('stylelint');
2
-
3
- const {
4
- createPlugin,
5
- utils: {report, ruleMessages, validateOptions},
6
- } = stylelint;
7
-
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ const stylelint_1 = __importDefault(require("stylelint"));
6
+ const { createPlugin, utils: { report, ruleMessages, validateOptions }, } = stylelint_1.default;
8
7
  const ruleName = '@taiga-ui/no-webkit-box-orient-block-axis';
9
8
  const messages = ruleMessages(ruleName, {
10
- expected:
11
- 'Expected "-webkit-box-orient: block-axis" to be "-webkit-box-orient: vertical"',
9
+ expected: 'Expected "-webkit-box-orient: block-axis" to be "-webkit-box-orient: vertical"',
12
10
  });
13
-
14
11
  const meta = {
15
12
  fixable: true,
13
+ url: 'https://github.com/taiga-family/toolkit/tree/main/projects/stylelint-config',
16
14
  };
17
-
18
- /** @type {import('stylelint').Rule} */
19
15
  const ruleFunction = (primary) => (root, result) => {
20
16
  const validOptions = validateOptions(result, ruleName, {
21
17
  actual: primary,
22
18
  possible: [true],
23
19
  });
24
-
25
20
  if (!validOptions) {
26
21
  return;
27
22
  }
28
-
29
23
  root.walkDecls('-webkit-box-orient', (decl) => {
30
24
  if (decl.value.trim().toLowerCase() !== 'block-axis') {
31
25
  return;
32
26
  }
33
-
34
27
  report({
35
28
  fix: () => {
36
29
  decl.value = 'vertical';
@@ -42,12 +35,13 @@ const ruleFunction = (primary) => (root, result) => {
42
35
  });
43
36
  });
44
37
  };
45
-
46
38
  ruleFunction.ruleName = ruleName;
47
39
  ruleFunction.messages = messages;
48
40
  ruleFunction.meta = meta;
49
-
50
- module.exports = createPlugin(ruleName, ruleFunction);
51
- module.exports.ruleName = ruleName;
52
- module.exports.messages = messages;
53
- module.exports.meta = meta;
41
+ const plugin = Object.assign(createPlugin(ruleName, ruleFunction), {
42
+ messages,
43
+ meta,
44
+ ruleName,
45
+ });
46
+ module.exports = plugin;
47
+ //# sourceMappingURL=no-webkit-box-orient-block-axis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-webkit-box-orient-block-axis.js","sourceRoot":"","sources":["../../../projects/stylelint-config/rules/no-webkit-box-orient-block-axis.ts"],"names":[],"mappings":";;;;AAAA,0DAAkC;AAElC,MAAM,EACF,YAAY,EACZ,KAAK,EAAE,EAAC,MAAM,EAAE,YAAY,EAAE,eAAe,EAAC,GACjD,GAAG,mBAAS,CAAC;AAEd,MAAM,QAAQ,GAAG,2CAA2C,CAAC;AAE7D,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE;IACpC,QAAQ,EACJ,gFAAgF;CACvF,CAAC,CAAC;AAEH,MAAM,IAAI,GAAuB;IAC7B,OAAO,EAAE,IAAI;IACb,GAAG,EAAE,6EAA6E;CACrF,CAAC;AAEF,MAAM,YAAY,GACd,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;IAC1B,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE;QACnD,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE,CAAC,IAAI,CAAC;KACnB,CAAC,CAAC;IAEH,IAAI,CAAC,YAAY,EAAE,CAAC;QAChB,OAAO;IACX,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE;QAC1C,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,YAAY,EAAE,CAAC;YACnD,OAAO;QACX,CAAC;QAED,MAAM,CAAC;YACH,GAAG,EAAE,GAAG,EAAE;gBACN,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;YAC5B,CAAC;YACD,OAAO,EAAE,QAAQ,CAAC,QAAQ;YAC1B,IAAI,EAAE,IAAI;YACV,MAAM;YACN,QAAQ;SACX,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEN,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;AAEzB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE;IAC/D,QAAQ;IACR,IAAI;IACJ,QAAQ;CACX,CAAC,CAAC;AAEH,iBAAS,MAAM,CAAC"}
@@ -0,0 +1,9 @@
1
+ import stylelint from 'stylelint';
2
+ declare const plugin: stylelint.Plugin & {
3
+ messages: {
4
+ expected: (actual: string, expected: string) => string;
5
+ };
6
+ meta: stylelint.RuleMeta;
7
+ ruleName: string;
8
+ };
9
+ export = plugin;
@@ -1,117 +1,83 @@
1
- const path = require('node:path');
2
- const stylelint = require('stylelint');
3
-
4
- const {
5
- createPlugin,
6
- utils: {report, ruleMessages, validateOptions},
7
- } = stylelint;
8
-
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ const node_path_1 = require("node:path");
6
+ const stylelint_1 = __importDefault(require("stylelint"));
7
+ const { createPlugin, utils: { report, ruleMessages, validateOptions }, } = stylelint_1.default;
9
8
  const ruleName = '@taiga-ui/relative-less-import-extension';
10
9
  const messages = ruleMessages(ruleName, {
11
10
  expected: (actual, expected) => `Expected "${actual}" to be "${expected}"`,
12
11
  });
13
-
14
12
  const meta = {
15
13
  fixable: true,
14
+ url: 'https://github.com/taiga-family/toolkit/tree/main/projects/stylelint-config',
16
15
  };
17
-
18
16
  function getExpectedExtension(root) {
19
- const file = root.source && root.source.input && root.source.input.file;
20
-
17
+ const file = root.source?.input.file;
21
18
  if (!file) {
22
19
  return '.less';
23
20
  }
24
-
25
- const ext = path.extname(file).toLowerCase();
26
-
27
- if (ext === '.scss' || ext === '.css' || ext === '.less') {
28
- return ext;
29
- }
30
-
31
- return '.less';
21
+ const ext = (0, node_path_1.extname)(file).toLowerCase();
22
+ return ext === '.scss' || ext === '.css' || ext === '.less' ? ext : '.less';
32
23
  }
33
-
34
24
  function hasKnownStyleExtension(value) {
35
25
  return /\.(?:less|scss|css)(?:\?.*)?$/i.test(value);
36
26
  }
37
-
38
27
  function isExternalImport(value) {
39
- return (
40
- value.startsWith('@') ||
28
+ return (value.startsWith('@') ||
41
29
  value.startsWith('~') ||
42
30
  value.startsWith('/') ||
43
31
  value.startsWith('//') ||
44
32
  /^https?:/i.test(value) ||
45
- /^data:/i.test(value)
46
- );
33
+ /^data:/i.test(value));
47
34
  }
48
-
49
35
  function isUrlImport(params) {
50
36
  return /^url\(/i.test(params.trim());
51
37
  }
52
-
53
38
  function isLocalImportPath(value) {
54
- if (!value) {
39
+ if (!value || isExternalImport(value)) {
55
40
  return false;
56
41
  }
57
-
58
- if (isExternalImport(value)) {
59
- return false;
60
- }
61
-
62
42
  return true;
63
43
  }
64
-
65
44
  function splitQueryAndHash(value) {
66
- const match = value.match(/^([^?#]+)([?#].*)?$/);
67
-
45
+ const match = /^([^?#]+)([?#].*)?$/.exec(value);
68
46
  return {
69
- pathname: match ? match[1] : value,
70
- suffix: match ? match[2] || '' : '',
47
+ pathname: match?.[1] ?? value,
48
+ suffix: match?.[2] ?? '',
71
49
  };
72
50
  }
73
-
74
- /** @type {import('stylelint').Rule} */
75
51
  const ruleFunction = (primary) => (root, result) => {
76
52
  const validOptions = validateOptions(result, ruleName, {
77
53
  actual: primary,
78
54
  possible: [true],
79
55
  });
80
-
81
56
  if (!validOptions) {
82
57
  return;
83
58
  }
84
-
85
59
  const expectedExtension = getExpectedExtension(root);
86
-
87
60
  root.walkAtRules('import', (atRule) => {
88
61
  const params = atRule.params.trim();
89
-
90
62
  if (isUrlImport(params)) {
91
63
  return;
92
64
  }
93
-
94
- const match = params.match(/^(['"])([^'"]+)\1(.*)$/);
95
-
65
+ const match = /^(['"])([^'"]+)\1(.*)$/.exec(params);
96
66
  if (!match) {
97
67
  return;
98
68
  }
99
-
100
- const [, quote, rawImportPath, tail] = match;
101
-
102
- if (!isLocalImportPath(rawImportPath)) {
69
+ const quote = match[1];
70
+ const rawImportPath = match[2];
71
+ const tail = match[3] ?? '';
72
+ if (!quote || !rawImportPath || !isLocalImportPath(rawImportPath)) {
103
73
  return;
104
74
  }
105
-
106
- const {pathname, suffix} = splitQueryAndHash(rawImportPath);
107
-
75
+ const { pathname, suffix } = splitQueryAndHash(rawImportPath);
108
76
  if (hasKnownStyleExtension(pathname)) {
109
77
  return;
110
78
  }
111
-
112
79
  const fixedPath = `${pathname}${expectedExtension}${suffix}`;
113
80
  const fixedParams = `${quote}${fixedPath}${quote}${tail}`;
114
-
115
81
  report({
116
82
  fix: () => {
117
83
  atRule.params = fixedParams;
@@ -123,12 +89,13 @@ const ruleFunction = (primary) => (root, result) => {
123
89
  });
124
90
  });
125
91
  };
126
-
127
92
  ruleFunction.ruleName = ruleName;
128
93
  ruleFunction.messages = messages;
129
94
  ruleFunction.meta = meta;
130
-
131
- module.exports = createPlugin(ruleName, ruleFunction);
132
- module.exports.ruleName = ruleName;
133
- module.exports.messages = messages;
134
- module.exports.meta = meta;
95
+ const plugin = Object.assign(createPlugin(ruleName, ruleFunction), {
96
+ messages,
97
+ meta,
98
+ ruleName,
99
+ });
100
+ module.exports = plugin;
101
+ //# sourceMappingURL=relative-less-import-extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relative-less-import-extension.js","sourceRoot":"","sources":["../../../projects/stylelint-config/rules/relative-less-import-extension.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { type Config } from 'stylelint';
2
+ type StylelintConfig = Config & {
3
+ readonly $schema: string;
4
+ };
5
+ declare const config: StylelintConfig;
6
+ export = config;
package/taiga-specific.js CHANGED
@@ -1,6 +1,6 @@
1
- module.exports = {
2
- $schema:
3
- 'https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/stylelintrc.json',
1
+ "use strict";
2
+ const config = {
3
+ $schema: 'https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/stylelintrc.json',
4
4
  rules: {
5
5
  'custom-property-pattern': [
6
6
  '^(tui|t|docsearch)-.([a-z][a-z0-9]*)(-[a-z0-9]+)*$',
@@ -11,3 +11,5 @@ module.exports = {
11
11
  ],
12
12
  },
13
13
  };
14
+ module.exports = config;
15
+ //# sourceMappingURL=taiga-specific.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taiga-specific.js","sourceRoot":"","sources":["../../projects/stylelint-config/taiga-specific.ts"],"names":[],"mappings":";AAMA,MAAM,MAAM,GAAoB;IAC5B,OAAO,EACH,oGAAoG;IACxG,KAAK,EAAE;QACH,yBAAyB,EAAE;YACvB,oDAAoD;YACpD;gBACI,OAAO,EAAE,gDAAgD;gBACzD,QAAQ,EAAE,OAAO;aACpB;SACJ;KACJ;CACJ,CAAC;AAEF,iBAAS,MAAM,CAAC"}