@culur/config-stylelint 1.6.5 → 1.7.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.
Files changed (161) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/factory-BTQtj5HJ.cjs +278 -0
  3. package/dist/factory-BTQtj5HJ.cjs.map +1 -0
  4. package/dist/factory-wCIsmB0H.mjs +273 -0
  5. package/dist/factory-wCIsmB0H.mjs.map +1 -0
  6. package/dist/factory.cjs +2 -10
  7. package/dist/factory.d.cts +5 -4
  8. package/dist/factory.d.mts +8 -0
  9. package/dist/factory.mjs +2 -0
  10. package/dist/shareable-configs/auto.cjs +10 -9
  11. package/dist/shareable-configs/auto.cjs.map +1 -1
  12. package/dist/shareable-configs/auto.d.cts +5 -4
  13. package/dist/shareable-configs/auto.d.mts +7 -0
  14. package/dist/shareable-configs/auto.mjs +13 -0
  15. package/dist/shareable-configs/auto.mjs.map +1 -0
  16. package/dist/shareable-configs/none.cjs +8 -9
  17. package/dist/shareable-configs/none.cjs.map +1 -1
  18. package/dist/shareable-configs/none.d.cts +5 -4
  19. package/dist/shareable-configs/none.d.mts +7 -0
  20. package/dist/shareable-configs/none.mjs +11 -0
  21. package/dist/shareable-configs/none.mjs.map +1 -0
  22. package/dist/shareable-configs/sass-vue.cjs +8 -9
  23. package/dist/shareable-configs/sass-vue.cjs.map +1 -1
  24. package/dist/shareable-configs/sass-vue.d.cts +5 -4
  25. package/dist/shareable-configs/sass-vue.d.mts +7 -0
  26. package/dist/shareable-configs/sass-vue.mjs +11 -0
  27. package/dist/shareable-configs/sass-vue.mjs.map +1 -0
  28. package/dist/shareable-configs/sass.cjs +8 -9
  29. package/dist/shareable-configs/sass.cjs.map +1 -1
  30. package/dist/shareable-configs/sass.d.cts +5 -4
  31. package/dist/shareable-configs/sass.d.mts +7 -0
  32. package/dist/shareable-configs/sass.mjs +11 -0
  33. package/dist/shareable-configs/sass.mjs.map +1 -0
  34. package/dist/shareable-configs/tailwind3-sass-vue.cjs +8 -9
  35. package/dist/shareable-configs/tailwind3-sass-vue.cjs.map +1 -1
  36. package/dist/shareable-configs/tailwind3-sass-vue.d.cts +5 -4
  37. package/dist/shareable-configs/tailwind3-sass-vue.d.mts +7 -0
  38. package/dist/shareable-configs/tailwind3-sass-vue.mjs +11 -0
  39. package/dist/shareable-configs/tailwind3-sass-vue.mjs.map +1 -0
  40. package/dist/shareable-configs/tailwind3-sass.cjs +8 -9
  41. package/dist/shareable-configs/tailwind3-sass.cjs.map +1 -1
  42. package/dist/shareable-configs/tailwind3-sass.d.cts +5 -4
  43. package/dist/shareable-configs/tailwind3-sass.d.mts +7 -0
  44. package/dist/shareable-configs/tailwind3-sass.mjs +11 -0
  45. package/dist/shareable-configs/tailwind3-sass.mjs.map +1 -0
  46. package/dist/shareable-configs/tailwind3.cjs +8 -9
  47. package/dist/shareable-configs/tailwind3.cjs.map +1 -1
  48. package/dist/shareable-configs/tailwind3.d.cts +5 -4
  49. package/dist/shareable-configs/tailwind3.d.mts +7 -0
  50. package/dist/shareable-configs/tailwind3.mjs +11 -0
  51. package/dist/shareable-configs/tailwind3.mjs.map +1 -0
  52. package/dist/shareable-configs/tailwind4-vue.cjs +8 -9
  53. package/dist/shareable-configs/tailwind4-vue.cjs.map +1 -1
  54. package/dist/shareable-configs/tailwind4-vue.d.cts +5 -4
  55. package/dist/shareable-configs/tailwind4-vue.d.mts +7 -0
  56. package/dist/shareable-configs/tailwind4-vue.mjs +11 -0
  57. package/dist/shareable-configs/tailwind4-vue.mjs.map +1 -0
  58. package/dist/shareable-configs/tailwind4.cjs +8 -9
  59. package/dist/shareable-configs/tailwind4.cjs.map +1 -1
  60. package/dist/shareable-configs/tailwind4.d.cts +5 -4
  61. package/dist/shareable-configs/tailwind4.d.mts +7 -0
  62. package/dist/shareable-configs/tailwind4.mjs +11 -0
  63. package/dist/shareable-configs/tailwind4.mjs.map +1 -0
  64. package/dist/shareable-configs/vue.cjs +8 -9
  65. package/dist/shareable-configs/vue.cjs.map +1 -1
  66. package/dist/shareable-configs/vue.d.cts +5 -4
  67. package/dist/shareable-configs/vue.d.mts +7 -0
  68. package/dist/shareable-configs/vue.mjs +11 -0
  69. package/dist/shareable-configs/vue.mjs.map +1 -0
  70. package/package.json +16 -15
  71. package/src/__tests__/describe-rule-or-config.ts +5 -12
  72. package/src/rules/function-no-unknown.ts +2 -1
  73. package/src/rules/order.ts +3 -1
  74. package/src/utils/index.ts +1 -4
  75. package/src/utils/utils.ts +11 -6
  76. package/dist/chunk-4NUI5NSE.js +0 -12
  77. package/dist/chunk-4NUI5NSE.js.map +0 -1
  78. package/dist/chunk-4YAD5VQL.js +0 -12
  79. package/dist/chunk-4YAD5VQL.js.map +0 -1
  80. package/dist/chunk-5UBWHXRE.js +0 -12
  81. package/dist/chunk-5UBWHXRE.js.map +0 -1
  82. package/dist/chunk-6OBN7KHD.js +0 -294
  83. package/dist/chunk-6OBN7KHD.js.map +0 -1
  84. package/dist/chunk-7ZUITFGA.js +0 -12
  85. package/dist/chunk-7ZUITFGA.js.map +0 -1
  86. package/dist/chunk-AFCQFKUH.js +0 -13
  87. package/dist/chunk-AFCQFKUH.js.map +0 -1
  88. package/dist/chunk-BHT5EOA2.cjs +0 -14
  89. package/dist/chunk-BHT5EOA2.cjs.map +0 -1
  90. package/dist/chunk-EQCVQC35.js +0 -31
  91. package/dist/chunk-EQCVQC35.js.map +0 -1
  92. package/dist/chunk-EWMD7NRS.cjs +0 -35
  93. package/dist/chunk-EWMD7NRS.cjs.map +0 -1
  94. package/dist/chunk-FWOPRDUM.js +0 -12
  95. package/dist/chunk-FWOPRDUM.js.map +0 -1
  96. package/dist/chunk-GCV5C6BZ.cjs +0 -14
  97. package/dist/chunk-GCV5C6BZ.cjs.map +0 -1
  98. package/dist/chunk-IA64Z5UZ.cjs +0 -14
  99. package/dist/chunk-IA64Z5UZ.cjs.map +0 -1
  100. package/dist/chunk-J25EZAJ4.js +0 -12
  101. package/dist/chunk-J25EZAJ4.js.map +0 -1
  102. package/dist/chunk-JYXCCHVU.cjs +0 -14
  103. package/dist/chunk-JYXCCHVU.cjs.map +0 -1
  104. package/dist/chunk-MIEGJBQU.js +0 -12
  105. package/dist/chunk-MIEGJBQU.js.map +0 -1
  106. package/dist/chunk-OENPZ3K4.cjs +0 -14
  107. package/dist/chunk-OENPZ3K4.cjs.map +0 -1
  108. package/dist/chunk-R2TQLDIH.cjs +0 -14
  109. package/dist/chunk-R2TQLDIH.cjs.map +0 -1
  110. package/dist/chunk-RD436EBS.cjs +0 -14
  111. package/dist/chunk-RD436EBS.cjs.map +0 -1
  112. package/dist/chunk-TB3LMVRG.js +0 -12
  113. package/dist/chunk-TB3LMVRG.js.map +0 -1
  114. package/dist/chunk-TKBQZWT7.cjs +0 -14
  115. package/dist/chunk-TKBQZWT7.cjs.map +0 -1
  116. package/dist/chunk-VZLSZBBN.js +0 -12
  117. package/dist/chunk-VZLSZBBN.js.map +0 -1
  118. package/dist/chunk-XZC4I6JL.cjs +0 -15
  119. package/dist/chunk-XZC4I6JL.cjs.map +0 -1
  120. package/dist/chunk-YZM2MVV3.cjs +0 -14
  121. package/dist/chunk-YZM2MVV3.cjs.map +0 -1
  122. package/dist/chunk-ZQACBLEL.cjs +0 -296
  123. package/dist/chunk-ZQACBLEL.cjs.map +0 -1
  124. package/dist/factory.cjs.map +0 -1
  125. package/dist/factory.d.ts +0 -6
  126. package/dist/factory.js +0 -4
  127. package/dist/factory.js.map +0 -1
  128. package/dist/magic-string.es-6P4WW7RB.js +0 -1307
  129. package/dist/magic-string.es-6P4WW7RB.js.map +0 -1
  130. package/dist/magic-string.es-PN2DQOGS.cjs +0 -1313
  131. package/dist/magic-string.es-PN2DQOGS.cjs.map +0 -1
  132. package/dist/shareable-configs/auto.d.ts +0 -5
  133. package/dist/shareable-configs/auto.js +0 -5
  134. package/dist/shareable-configs/auto.js.map +0 -1
  135. package/dist/shareable-configs/none.d.ts +0 -5
  136. package/dist/shareable-configs/none.js +0 -5
  137. package/dist/shareable-configs/none.js.map +0 -1
  138. package/dist/shareable-configs/sass-vue.d.ts +0 -5
  139. package/dist/shareable-configs/sass-vue.js +0 -5
  140. package/dist/shareable-configs/sass-vue.js.map +0 -1
  141. package/dist/shareable-configs/sass.d.ts +0 -5
  142. package/dist/shareable-configs/sass.js +0 -5
  143. package/dist/shareable-configs/sass.js.map +0 -1
  144. package/dist/shareable-configs/tailwind3-sass-vue.d.ts +0 -5
  145. package/dist/shareable-configs/tailwind3-sass-vue.js +0 -5
  146. package/dist/shareable-configs/tailwind3-sass-vue.js.map +0 -1
  147. package/dist/shareable-configs/tailwind3-sass.d.ts +0 -5
  148. package/dist/shareable-configs/tailwind3-sass.js +0 -5
  149. package/dist/shareable-configs/tailwind3-sass.js.map +0 -1
  150. package/dist/shareable-configs/tailwind3.d.ts +0 -5
  151. package/dist/shareable-configs/tailwind3.js +0 -5
  152. package/dist/shareable-configs/tailwind3.js.map +0 -1
  153. package/dist/shareable-configs/tailwind4-vue.d.ts +0 -5
  154. package/dist/shareable-configs/tailwind4-vue.js +0 -5
  155. package/dist/shareable-configs/tailwind4-vue.js.map +0 -1
  156. package/dist/shareable-configs/tailwind4.d.ts +0 -5
  157. package/dist/shareable-configs/tailwind4.js +0 -5
  158. package/dist/shareable-configs/tailwind4.js.map +0 -1
  159. package/dist/shareable-configs/vue.d.ts +0 -5
  160. package/dist/shareable-configs/vue.js +0 -5
  161. package/dist/shareable-configs/vue.js.map +0 -1
@@ -1,11 +1,10 @@
1
- 'use strict';
1
+ //#region src/shareable-configs/tailwind4.ts
2
+ var tailwind4_default = require("../factory-BTQtj5HJ.cjs").defineConfig({
3
+ tailwind: 4,
4
+ sass: false,
5
+ vue: false
6
+ });
7
+ //#endregion
8
+ module.exports = tailwind4_default;
2
9
 
3
- var chunkTKBQZWT7_cjs = require('../chunk-TKBQZWT7.cjs');
4
- require('../chunk-ZQACBLEL.cjs');
5
- require('../chunk-EWMD7NRS.cjs');
6
-
7
-
8
-
9
- module.exports = chunkTKBQZWT7_cjs.tailwind4_default;
10
- //# sourceMappingURL=tailwind4.cjs.map
11
10
  //# sourceMappingURL=tailwind4.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"tailwind4.cjs"}
1
+ {"version":3,"file":"tailwind4.cjs","names":["defineConfig"],"sources":["../../src/shareable-configs/tailwind4.ts"],"sourcesContent":["import defineConfig from '~/factory';\n\nexport default defineConfig({\n tailwind: 4,\n sass: false,\n vue: false,\n});\n"],"mappings":";AAEA,IAAA,uDAAeA,aAAa;CAC1B,UAAU;CACV,MAAM;CACN,KAAK;CACN,CAAC"}
@@ -1,5 +1,6 @@
1
- import * as stylelint from 'stylelint';
1
+ import * as _$stylelint from "stylelint";
2
2
 
3
- declare const _default: stylelint.Config;
4
-
5
- export { _default as default };
3
+ //#region src/shareable-configs/tailwind4.d.ts
4
+ declare const _default: _$stylelint.Config;
5
+ export = _default;
6
+ //# sourceMappingURL=tailwind4.d.cts.map
@@ -0,0 +1,7 @@
1
+ import * as _$stylelint from "stylelint";
2
+
3
+ //#region src/shareable-configs/tailwind4.d.ts
4
+ declare const _default: _$stylelint.Config;
5
+ //#endregion
6
+ export { _default as default };
7
+ //# sourceMappingURL=tailwind4.d.mts.map
@@ -0,0 +1,11 @@
1
+ import { t as defineConfig } from "../factory-wCIsmB0H.mjs";
2
+ //#region src/shareable-configs/tailwind4.ts
3
+ var tailwind4_default = defineConfig({
4
+ tailwind: 4,
5
+ sass: false,
6
+ vue: false
7
+ });
8
+ //#endregion
9
+ export { tailwind4_default as default };
10
+
11
+ //# sourceMappingURL=tailwind4.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailwind4.mjs","names":[],"sources":["../../src/shareable-configs/tailwind4.ts"],"sourcesContent":["import defineConfig from '~/factory';\n\nexport default defineConfig({\n tailwind: 4,\n sass: false,\n vue: false,\n});\n"],"mappings":";;AAEA,IAAA,oBAAe,aAAa;CAC1B,UAAU;CACV,MAAM;CACN,KAAK;CACN,CAAC"}
@@ -1,11 +1,10 @@
1
- 'use strict';
1
+ //#region src/shareable-configs/vue.ts
2
+ var vue_default = require("../factory-BTQtj5HJ.cjs").defineConfig({
3
+ tailwind: false,
4
+ sass: false,
5
+ vue: true
6
+ });
7
+ //#endregion
8
+ module.exports = vue_default;
2
9
 
3
- var chunkOENPZ3K4_cjs = require('../chunk-OENPZ3K4.cjs');
4
- require('../chunk-ZQACBLEL.cjs');
5
- require('../chunk-EWMD7NRS.cjs');
6
-
7
-
8
-
9
- module.exports = chunkOENPZ3K4_cjs.vue_default;
10
- //# sourceMappingURL=vue.cjs.map
11
10
  //# sourceMappingURL=vue.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"vue.cjs"}
1
+ {"version":3,"file":"vue.cjs","names":["defineConfig"],"sources":["../../src/shareable-configs/vue.ts"],"sourcesContent":["import defineConfig from '~/factory';\n\nexport default defineConfig({\n tailwind: false,\n sass: false,\n vue: true,\n});\n"],"mappings":";AAEA,IAAA,iDAAeA,aAAa;CAC1B,UAAU;CACV,MAAM;CACN,KAAK;CACN,CAAC"}
@@ -1,5 +1,6 @@
1
- import * as stylelint from 'stylelint';
1
+ import * as _$stylelint from "stylelint";
2
2
 
3
- declare const _default: stylelint.Config;
4
-
5
- export { _default as default };
3
+ //#region src/shareable-configs/vue.d.ts
4
+ declare const _default: _$stylelint.Config;
5
+ export = _default;
6
+ //# sourceMappingURL=vue.d.cts.map
@@ -0,0 +1,7 @@
1
+ import * as _$stylelint from "stylelint";
2
+
3
+ //#region src/shareable-configs/vue.d.ts
4
+ declare const _default: _$stylelint.Config;
5
+ //#endregion
6
+ export { _default as default };
7
+ //# sourceMappingURL=vue.d.mts.map
@@ -0,0 +1,11 @@
1
+ import { t as defineConfig } from "../factory-wCIsmB0H.mjs";
2
+ //#region src/shareable-configs/vue.ts
3
+ var vue_default = defineConfig({
4
+ tailwind: false,
5
+ sass: false,
6
+ vue: true
7
+ });
8
+ //#endregion
9
+ export { vue_default as default };
10
+
11
+ //# sourceMappingURL=vue.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vue.mjs","names":[],"sources":["../../src/shareable-configs/vue.ts"],"sourcesContent":["import defineConfig from '~/factory';\n\nexport default defineConfig({\n tailwind: false,\n sass: false,\n vue: true,\n});\n"],"mappings":";;AAEA,IAAA,cAAe,aAAa;CAC1B,UAAU;CACV,MAAM;CACN,KAAK;CACN,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@culur/config-stylelint",
3
- "version": "1.6.5",
3
+ "version": "1.7.0",
4
4
  "description": "Culur's stylelint configuration",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -25,8 +25,8 @@
25
25
  "exports": {
26
26
  ".": {
27
27
  "import": {
28
- "types": "./dist/shareable-configs/auto.d.ts",
29
- "default": "./dist/shareable-configs/auto.js"
28
+ "types": "./dist/shareable-configs/auto.d.mts",
29
+ "default": "./dist/shareable-configs/auto.mjs"
30
30
  },
31
31
  "require": {
32
32
  "types": "./dist/shareable-configs/auto.d.cts",
@@ -35,8 +35,8 @@
35
35
  },
36
36
  "./*": {
37
37
  "import": {
38
- "types": "./dist/shareable-configs/*.d.ts",
39
- "default": "./dist/shareable-configs/*.js"
38
+ "types": "./dist/shareable-configs/*.d.mts",
39
+ "default": "./dist/shareable-configs/*.mjs"
40
40
  },
41
41
  "require": {
42
42
  "types": "./dist/shareable-configs/*.d.cts",
@@ -45,8 +45,8 @@
45
45
  },
46
46
  "./factory": {
47
47
  "import": {
48
- "types": "./dist/factory.d.ts",
49
- "default": "./dist/factory.js"
48
+ "types": "./dist/factory.d.mts",
49
+ "default": "./dist/factory.mjs"
50
50
  },
51
51
  "require": {
52
52
  "types": "./dist/factory.d.cts",
@@ -75,26 +75,27 @@
75
75
  "stylelint-config-standard": "^40.0.0",
76
76
  "stylelint-config-standard-scss": "^17.0.0",
77
77
  "stylelint-config-standard-vue": "^1.0.0",
78
- "stylelint-order": "^7.0.1",
78
+ "stylelint-order": "^8.1.1",
79
79
  "stylelint-scss": "^7.0.0",
80
80
  "stylelint-selector-bem-pattern": "^4.0.1",
81
- "@culur/utils-packages": "1.2.9"
81
+ "@culur/utils-packages": "1.3.0"
82
82
  },
83
83
  "devDependencies": {
84
- "dedent": "^1.7.1",
85
- "postcss": "^8.5.6",
84
+ "dedent": "^1.7.2",
85
+ "postcss": "^8.5.8",
86
86
  "postcss-html": "^1.8.1",
87
87
  "postcss-sass": "^0.5.0",
88
88
  "postcss-scss": "^4.0.9",
89
- "@culur/config-tsup": "1.2.6",
90
- "@culur/config-typescript": "1.1.2"
89
+ "stylelint": "^17.6.0",
90
+ "@culur/config-tsdown": "1.1.0",
91
+ "@culur/config-typescript": "2.0.0"
91
92
  },
92
93
  "peerDependencies": {
93
- "stylelint": ">=16.14.1"
94
+ "stylelint": ">=17.0.0"
94
95
  },
95
96
  "scripts": {
96
97
  "clean": "rimraf dist coverage",
97
- "build": "tsup",
98
+ "build": "tsdown",
98
99
  "test": "tsc --noEmit && vitest run",
99
100
  "🧹 ----- LINT ----- 🧹": "",
100
101
  "es-config": "eslint-config-inspector",
@@ -1,22 +1,15 @@
1
1
  import type { Packages } from '@culur/utils-packages';
2
2
  import type { Config, ConfigRuleSettings } from 'stylelint';
3
- import type {
4
- ConfigRulePrimaryOption,
5
- ConfigRuleSecondaryOptions,
6
- } from '~/utils';
3
+ import type { Primary, Secondary } from '~/utils';
7
4
  import { describe, expect, it } from 'vitest';
8
5
 
9
6
  type Fn<
10
- TRuleOrConfig extends
11
- | ConfigRuleSettings<ConfigRulePrimaryOption, ConfigRuleSecondaryOptions>
12
- | Config,
7
+ TRuleOrConfig extends ConfigRuleSettings<Primary, Secondary> | Config,
13
8
  TTestCase extends Partial<Packages>,
14
9
  > = (rule: TRuleOrConfig, testCase: TTestCase) => Promise<void> | void;
15
10
 
16
11
  function describeRuleOrConfigFactory<
17
- TBaseRuleOrConfig extends
18
- | ConfigRuleSettings<ConfigRulePrimaryOption, ConfigRuleSecondaryOptions>
19
- | Config,
12
+ TBaseRuleOrConfig extends ConfigRuleSettings<Primary, Secondary> | Config,
20
13
  >(describeName: string) {
21
14
  return function describeRuleOrConfig<
22
15
  TRuleOrConfig extends TBaseRuleOrConfig,
@@ -60,7 +53,7 @@ function describeRuleOrConfigFactory<
60
53
  export const describeConfig = describeRuleOrConfigFactory<Config>('config');
61
54
  export const describeRule = describeRuleOrConfigFactory<
62
55
  ConfigRuleSettings<
63
- ConfigRulePrimaryOption, //
64
- ConfigRuleSecondaryOptions
56
+ Primary, //
57
+ Secondary
65
58
  >
66
59
  >('rule');
@@ -30,6 +30,7 @@ const getIgnoreFunctionsByTailwindVersion = (
30
30
  }
31
31
  };
32
32
 
33
+ const sassFunctionRegex = /^(list|math|color)\..+/;
33
34
  const getIgnoreFunctions = (packages: Partial<Packages>) => [
34
35
  // https://tailwindcss.com
35
36
  ...getIgnoreFunctionsByTailwindVersion(packages.tailwind),
@@ -38,7 +39,7 @@ const getIgnoreFunctions = (packages: Partial<Packages>) => [
38
39
  // https://sass-lang.com/documentation/modules/math
39
40
  // https://sass-lang.com/documentation/modules/color
40
41
  ...(packages.sass //
41
- ? [/^(list|math|color)\..+/]
42
+ ? [sassFunctionRegex]
42
43
  : []),
43
44
 
44
45
  // https://vuejs.org/api/sfc-css-features.html#v-bind-in-css
@@ -33,6 +33,8 @@ interface SecondaryOptions {
33
33
  const definePrimaryOption = (...options: (PrimaryOption[number] | false | undefined)[]) =>
34
34
  options.filter((option): option is PrimaryOption[number] => !!option);
35
35
 
36
+ const blockRuleRegex = /^&::[\w-]+/;
37
+
36
38
  export const orderRule = (packages: Partial<Packages>) =>
37
39
  defineRule<PrimaryOption, SecondaryOptions>([
38
40
  definePrimaryOption(
@@ -73,7 +75,7 @@ export const orderRule = (packages: Partial<Packages>) =>
73
75
  'declarations', // css: display: block;
74
76
 
75
77
  //! block rules
76
- { type: 'rule', selector: /^&::[\w-]+/ }, // css: &::after {}
78
+ { type: 'rule', selector: blockRuleRegex }, // css: &::after {}
77
79
  'rules', // css: child-component {}
78
80
 
79
81
  //! blocks nested
@@ -1,5 +1,2 @@
1
- export type {
2
- ConfigRulePrimaryOption,
3
- ConfigRuleSecondaryOptions,
4
- } from './utils';
1
+ export type { Primary, Secondary } from './utils';
5
2
  export { defineRule, defineRules, isInRange, mergeConfigs } from './utils';
@@ -1,11 +1,16 @@
1
- import type {
2
- Primary,
3
- Secondary,
4
- } from 'node_modules/stylelint/types/stylelint';
5
1
  import type { Config, ConfigRuleSettings } from 'stylelint';
6
2
 
7
- export type ConfigRulePrimaryOption = Primary;
8
- export type ConfigRuleSecondaryOptions = Secondary;
3
+ // import type Primary, Secondary from stylelint
4
+
5
+ type StringOrRegex = string | RegExp;
6
+ type OneOrMany<S> = S | S[];
7
+
8
+ export type Primary =
9
+ | number
10
+ | true
11
+ | OneOrMany<StringOrRegex>
12
+ | Record<string, any>;
13
+ export type Secondary = Record<string, any>;
9
14
 
10
15
  export const defineRule = <
11
16
  PrimaryOption extends Primary,
@@ -1,12 +0,0 @@
1
- import { defineConfig } from './chunk-6OBN7KHD.js';
2
-
3
- // src/shareable-configs/sass.ts
4
- var sass_default = defineConfig({
5
- tailwind: false,
6
- sass: true,
7
- vue: false
8
- });
9
-
10
- export { sass_default };
11
- //# sourceMappingURL=chunk-4NUI5NSE.js.map
12
- //# sourceMappingURL=chunk-4NUI5NSE.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/shareable-configs/sass.ts"],"names":[],"mappings":";;;AAEA,IAAO,eAAQ,YAAA,CAAa;AAAA,EAC1B,QAAA,EAAU,KAAA;AAAA,EACV,IAAA,EAAM,IAAA;AAAA,EACN,GAAA,EAAK;AACP,CAAC","file":"chunk-4NUI5NSE.js","sourcesContent":["import defineConfig from '~/factory';\n\nexport default defineConfig({\n tailwind: false,\n sass: true,\n vue: false,\n});\n"]}
@@ -1,12 +0,0 @@
1
- import { defineConfig } from './chunk-6OBN7KHD.js';
2
-
3
- // src/shareable-configs/tailwind3-sass.ts
4
- var tailwind3_sass_default = defineConfig({
5
- tailwind: 3,
6
- sass: true,
7
- vue: false
8
- });
9
-
10
- export { tailwind3_sass_default };
11
- //# sourceMappingURL=chunk-4YAD5VQL.js.map
12
- //# sourceMappingURL=chunk-4YAD5VQL.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/shareable-configs/tailwind3-sass.ts"],"names":[],"mappings":";;;AAEA,IAAO,yBAAQ,YAAA,CAAa;AAAA,EAC1B,QAAA,EAAU,CAAA;AAAA,EACV,IAAA,EAAM,IAAA;AAAA,EACN,GAAA,EAAK;AACP,CAAC","file":"chunk-4YAD5VQL.js","sourcesContent":["import defineConfig from '~/factory';\n\nexport default defineConfig({\n tailwind: 3,\n sass: true,\n vue: false,\n});\n"]}
@@ -1,12 +0,0 @@
1
- import { defineConfig } from './chunk-6OBN7KHD.js';
2
-
3
- // src/shareable-configs/sass-vue.ts
4
- var sass_vue_default = defineConfig({
5
- tailwind: false,
6
- sass: true,
7
- vue: true
8
- });
9
-
10
- export { sass_vue_default };
11
- //# sourceMappingURL=chunk-5UBWHXRE.js.map
12
- //# sourceMappingURL=chunk-5UBWHXRE.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/shareable-configs/sass-vue.ts"],"names":[],"mappings":";;;AAEA,IAAO,mBAAQ,YAAA,CAAa;AAAA,EAC1B,QAAA,EAAU,KAAA;AAAA,EACV,IAAA,EAAM,IAAA;AAAA,EACN,GAAA,EAAK;AACP,CAAC","file":"chunk-5UBWHXRE.js","sourcesContent":["import defineConfig from '~/factory';\n\nexport default defineConfig({\n tailwind: false,\n sass: true,\n vue: true,\n});\n"]}
@@ -1,294 +0,0 @@
1
- // src/utils/utils.ts
2
- var defineRule = (rule) => rule;
3
- var defineRules = (rule) => rule;
4
- var mergeConfigs = (...configsOrNull) => {
5
- const configs = configsOrNull.filter((c) => !!c);
6
- return {
7
- plugins: [...new Set(configs.flatMap((c) => c.plugins ?? []))],
8
- overrides: [...new Set(configs.flatMap((c) => c.overrides ?? []))],
9
- extends: configs.flatMap((c) => c.extends ?? []).filter((item, index, arr) => arr.lastIndexOf(item) === index),
10
- rules: configs.reduce(
11
- (acc, config) => ({ ...acc, ...config.rules }),
12
- {}
13
- ),
14
- ...configs.reduce(
15
- (acc, { plugins: _p, overrides: _o, extends: _e, rules: _r, ...config }) => ({ ...acc, ...config }),
16
- {}
17
- )
18
- };
19
- };
20
- var isInRange = (version, ...versions) => typeof version === "number" && versions.includes(version);
21
-
22
- // src/rules/at-rule-no-unknown.ts
23
- var getIgnoreAtRulesByTailwindVersion = (tailwindVersion) => {
24
- switch (tailwindVersion) {
25
- // https://tailwindcss-v0.netlify.app//docs/functions-and-directives
26
- case 0:
27
- return [
28
- // Directives
29
- "tailwind",
30
- "apply",
31
- "variants",
32
- "responsive",
33
- "screen"
34
- ];
35
- // https://v1.tailwindcss.com/docs/functions-and-directives
36
- // https://v2.tailwindcss.com/docs/functions-and-directives
37
- case 1:
38
- case 2:
39
- return [
40
- // Directives
41
- "tailwind",
42
- "apply",
43
- "layer",
44
- // new
45
- "variants",
46
- "responsive",
47
- "screen"
48
- ];
49
- // https://v3.tailwindcss.com/docs/functions-and-directives
50
- case 3:
51
- return [
52
- // Directives
53
- "tailwind",
54
- "layer",
55
- "apply",
56
- "config"
57
- // new
58
- ];
59
- // https://tailwindcss.com/docs/functions-and-directives
60
- case 4:
61
- return [
62
- // Directives
63
- "import",
64
- "theme",
65
- "source",
66
- "utility",
67
- "variant",
68
- "custom-variant",
69
- "apply",
70
- "reference",
71
- // Compatibility
72
- "config",
73
- "plugin"
74
- ];
75
- default:
76
- return [];
77
- }
78
- };
79
- var atRuleNoUnknownRule = (packages) => defineRule([
80
- true,
81
- { ignoreAtRules: getIgnoreAtRulesByTailwindVersion(packages.tailwind) }
82
- ]);
83
- var atRuleNoUnknownCSS = (packages) => defineRules({
84
- "at-rule-no-unknown": atRuleNoUnknownRule(packages)
85
- });
86
- var atRuleNoUnknownSCSS = (packages) => defineRules({
87
- "at-rule-no-unknown": null,
88
- "scss/at-rule-no-unknown": atRuleNoUnknownRule(packages)
89
- });
90
-
91
- // src/rules/declaration-block-no-redundant-longhand-properties.ts
92
- var declarationBlockNoRedundantLonghandPropertiesRule = defineRule([true, { ignoreShorthands: ["grid-template"] }]);
93
- var declarationBlockNoRedundantLonghandProperties = defineRules({
94
- "declaration-block-no-redundant-longhand-properties": declarationBlockNoRedundantLonghandPropertiesRule
95
- });
96
-
97
- // src/rules/function-no-unknown.ts
98
- var getIgnoreFunctionsByTailwindVersion = (tailwindVersion) => {
99
- switch (tailwindVersion) {
100
- // https://tailwindcss-v0.netlify.app//docs/functions-and-directives
101
- case 0:
102
- return ["config"];
103
- // https://v1.tailwindcss.com/docs/functions-and-directives
104
- case 1:
105
- return ["theme"];
106
- // https://v2.tailwindcss.com/docs/functions-and-directives
107
- case 2:
108
- return ["screen", "theme"];
109
- // https://v3.tailwindcss.com/docs/functions-and-directives
110
- case 3:
111
- return ["theme", "screen"];
112
- // https://tailwindcss.com/docs/functions-and-directives
113
- case 4:
114
- return ["--alpha", "--spacing", "theme"];
115
- default:
116
- return [];
117
- }
118
- };
119
- var getIgnoreFunctions = (packages) => [
120
- // https://tailwindcss.com
121
- ...getIgnoreFunctionsByTailwindVersion(packages.tailwind),
122
- // https://sass-lang.com/documentation/modules/list
123
- // https://sass-lang.com/documentation/modules/math
124
- // https://sass-lang.com/documentation/modules/color
125
- ...packages.sass ? [/^(list|math|color)\..+/] : [],
126
- // https://vuejs.org/api/sfc-css-features.html#v-bind-in-css
127
- ...packages.vue ? ["v-bind"] : []
128
- ];
129
- function functionNoUnknownRule(packages) {
130
- return defineRule([
131
- true,
132
- { ignoreFunctions: getIgnoreFunctions(packages) }
133
- ]);
134
- }
135
- var functionNoUnknown = (packages) => defineRules({
136
- "function-no-unknown": functionNoUnknownRule(packages)
137
- });
138
-
139
- // src/rules/import-notation.ts
140
- var importNotationCSS = (packages) => defineRules(
141
- isInRange(packages.tailwind, 4) ? { "import-notation": null } : {}
142
- );
143
-
144
- // src/rules/order.ts
145
- var definePrimaryOption = (...options) => options.filter((option) => !!option);
146
- var orderRule = (packages) => defineRule([
147
- definePrimaryOption(
148
- //! import
149
- packages.sass && { type: "at-rule", name: "use" },
150
- // scss: @use 'path/path';
151
- packages.sass && { type: "at-rule", name: "forward" },
152
- // scss: @forward 'path/path';
153
- packages.sass && { type: "at-rule", name: "import" },
154
- // scss: @import 'path/path';
155
- isInRange(packages.tailwind, 4) && { type: "at-rule", name: "import" },
156
- // tailwind 4: @import "tailwindcss";
157
- isInRange(packages.tailwind, 4) && { type: "at-rule", name: "source" },
158
- // tailwind 4: @source "../node_modules/@culur/ui-lib";
159
- isInRange(packages.tailwind, 4) && { type: "at-rule", name: "reference" },
160
- // tailwind 4: @reference "../../app.css";
161
- //! root
162
- isInRange(packages.tailwind, 0, 1, 2, 3) && { type: "at-rule", name: "tailwind" },
163
- // tailwind 0,1,2,3 : @tailwind base;
164
- isInRange(packages.tailwind, 3, 4) && { type: "at-rule", name: "config" },
165
- // tailwind 3,4: @config 'tailwind.custom.config.js'
166
- isInRange(packages.tailwind, 4) && { type: "at-rule", name: "plugin" },
167
- // tailwind 4: @plugin '@tailwindcss/typography'
168
- isInRange(packages.tailwind, 1, 2, 3) && { type: "at-rule", name: "layer" },
169
- // tailwind 1,2,3 : @layer base {}
170
- //! variables
171
- "dollar-variables",
172
- // css: $variable: 10px;
173
- "at-variables",
174
- // css: @variable: 10px;
175
- { type: "at-rule", hasBlock: false },
176
- // css: @variable: 10px;
177
- "custom-properties",
178
- // css: --property: 10px;
179
- //! tailwind
180
- isInRange(packages.tailwind, 4) && { type: "at-rule", name: "theme" },
181
- // tailwind 4: @theme {}
182
- isInRange(packages.tailwind, 4) && { type: "at-rule", name: "custom-variant" },
183
- // tailwind 4: @custom-variant pointer-coarse (@media (pointer: coarse));
184
- //! functions, methods
185
- packages.sass && { type: "at-rule", name: "function" },
186
- // scss: @function sum() {}
187
- packages.sass && { type: "at-rule", name: "mixin" },
188
- // scss: @mixin mixin-name {}
189
- isInRange(packages.tailwind, 4) && { type: "at-rule", name: "utility" },
190
- // tailwind 4: @utility tab-4 { tab-size: 4; }
191
- //! declarations
192
- packages.sass && { type: "at-rule", name: "extend" },
193
- // scss: @extend .class-name;
194
- packages.sass && { type: "at-rule", name: "include" },
195
- // scss: @include mixin-name;
196
- isInRange(packages.tailwind, 0, 1, 2, 3, 4) && { type: "at-rule", name: "apply" },
197
- // tailwind 0,1,2,3,4: @apply p-3;
198
- "less-mixins",
199
- // less: .mixin();
200
- "declarations",
201
- // css: display: block;
202
- //! block rules
203
- { type: "rule", selector: /^&::[\w-]+/ },
204
- // css: &::after {}
205
- "rules",
206
- // css: child-component {}
207
- //! blocks nested
208
- packages.sass && { type: "at-rule", name: "at-root" },
209
- // scss: @at-root selector { /* content */ }
210
- isInRange(packages.tailwind, 0, 1, 2) && { type: "at-rule", name: "responsive" },
211
- // tailwind 0,1,2 : @responsive {}
212
- isInRange(packages.tailwind, 0, 1, 2) && { type: "at-rule", name: "variants" },
213
- // tailwind 0,1,2 : @variants hover {}
214
- isInRange(packages.tailwind, 0, 1, 2) && { type: "at-rule", name: "screen" },
215
- // tailwind 0,1,2 : @screen sm {}
216
- isInRange(packages.tailwind, 4) && { type: "at-rule", name: "variants" },
217
- // tailwind 4: @variant dark {}
218
- { type: "at-rule", hasBlock: true }
219
- // css: @media () {}
220
- ),
221
- {
222
- unspecified: "bottom"
223
- }
224
- ]);
225
- var order = (packages) => defineRules({
226
- "order/order": orderRule(packages)
227
- });
228
-
229
- // src/rules/selector-pseudo-class-no-unknown.ts
230
- var selectorPseudoClassNoUnknownRule = defineRule([true, { ignorePseudoClasses: ["global", "local"] }]);
231
- var selectorPseudoClassNoUnknown = defineRules({
232
- "selector-pseudo-class-no-unknown": selectorPseudoClassNoUnknownRule
233
- });
234
-
235
- // src/configs/css.ts
236
- var configCss = (packages) => ({
237
- extends: ["stylelint-config-standard", "stylelint-config-clean-order"],
238
- plugins: ["stylelint-order", "stylelint-selector-bem-pattern"],
239
- rules: {
240
- ...atRuleNoUnknownCSS(packages),
241
- ...declarationBlockNoRedundantLonghandProperties,
242
- ...functionNoUnknown(packages),
243
- ...importNotationCSS(packages),
244
- ...order(packages),
245
- ...selectorPseudoClassNoUnknown,
246
- "declaration-empty-line-before": null
247
- }
248
- });
249
-
250
- // src/rules/dollar-variable-pattern.ts
251
- var dollarVariablePatternRule = defineRule([
252
- "^(-{0,2}?[a-z][a-z0-9]*)(-[a-z0-9]+)*$",
253
- { message: "Expected variable to be kebab-case" }
254
- ]);
255
- var dollarVariablePatternSCSS = defineRules({
256
- "scss/dollar-variable-pattern": dollarVariablePatternRule
257
- });
258
-
259
- // src/configs/scss.ts
260
- var configScss = (packages) => ({
261
- extends: ["stylelint-config-standard-scss"],
262
- rules: {
263
- ...atRuleNoUnknownSCSS(packages),
264
- ...dollarVariablePatternSCSS
265
- }
266
- });
267
-
268
- // src/configs/shared.ts
269
- var configShared = () => ({
270
- extends: ["stylelint-config-html"]
271
- });
272
-
273
- // src/configs/vue.ts
274
- var configVue = (packages) => ({
275
- extends: [
276
- packages.sass ? "stylelint-config-standard-vue/scss" : "stylelint-config-standard-vue"
277
- ]
278
- });
279
-
280
- // src/factory.ts
281
- function defineConfig(packages, config) {
282
- const packages_ = packages ?? {};
283
- return mergeConfigs(
284
- configShared(),
285
- configCss(packages_),
286
- packages_.sass && configScss(packages_),
287
- packages_.vue && configVue(packages_),
288
- config
289
- );
290
- }
291
-
292
- export { defineConfig };
293
- //# sourceMappingURL=chunk-6OBN7KHD.js.map
294
- //# sourceMappingURL=chunk-6OBN7KHD.js.map