eslint-plugin-better-tailwindcss 3.5.2 → 3.6.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.
Files changed (251) hide show
  1. package/README.md +2 -0
  2. package/lib/cjs/configs/config.d.ts +4 -0
  3. package/lib/cjs/configs/config.d.ts.map +1 -1
  4. package/lib/cjs/configs/config.js +4 -0
  5. package/lib/cjs/configs/config.js.map +1 -1
  6. package/lib/cjs/rules/enforce-consistent-class-order.d.ts.map +1 -1
  7. package/lib/cjs/rules/enforce-consistent-class-order.js +4 -3
  8. package/lib/cjs/rules/enforce-consistent-class-order.js.map +1 -1
  9. package/lib/cjs/rules/enforce-consistent-important-position.d.ts +19 -0
  10. package/lib/cjs/rules/enforce-consistent-important-position.d.ts.map +1 -0
  11. package/lib/cjs/rules/enforce-consistent-important-position.js +97 -0
  12. package/lib/cjs/rules/enforce-consistent-important-position.js.map +1 -0
  13. package/lib/cjs/rules/enforce-consistent-variable-syntax.d.ts.map +1 -1
  14. package/lib/cjs/rules/enforce-consistent-variable-syntax.js +14 -48
  15. package/lib/cjs/rules/enforce-consistent-variable-syntax.js.map +1 -1
  16. package/lib/cjs/rules/enforce-shorthand-classes.d.ts +2 -0
  17. package/lib/cjs/rules/enforce-shorthand-classes.d.ts.map +1 -1
  18. package/lib/cjs/rules/enforce-shorthand-classes.js +173 -33
  19. package/lib/cjs/rules/enforce-shorthand-classes.js.map +1 -1
  20. package/lib/cjs/rules/no-conflicting-classes.d.ts.map +1 -1
  21. package/lib/cjs/rules/no-conflicting-classes.js +12 -12
  22. package/lib/cjs/rules/no-conflicting-classes.js.map +1 -1
  23. package/lib/cjs/rules/no-deprecated-classes.d.ts +17 -0
  24. package/lib/cjs/rules/no-deprecated-classes.d.ts.map +1 -0
  25. package/lib/cjs/rules/no-deprecated-classes.js +99 -0
  26. package/lib/cjs/rules/no-deprecated-classes.js.map +1 -0
  27. package/lib/cjs/rules/no-duplicate-classes.js +12 -51
  28. package/lib/cjs/rules/no-duplicate-classes.js.map +1 -1
  29. package/lib/cjs/rules/no-restricted-classes.d.ts.map +1 -1
  30. package/lib/cjs/rules/no-restricted-classes.js +23 -36
  31. package/lib/cjs/rules/no-restricted-classes.js.map +1 -1
  32. package/lib/cjs/rules/no-unregistered-classes.d.ts.map +1 -1
  33. package/lib/cjs/rules/no-unregistered-classes.js +14 -14
  34. package/lib/cjs/rules/no-unregistered-classes.js.map +1 -1
  35. package/lib/cjs/tailwindcss/custom-component-classes.async.v4.d.ts.map +1 -1
  36. package/lib/cjs/tailwindcss/custom-component-classes.async.v4.js +31 -3
  37. package/lib/cjs/tailwindcss/custom-component-classes.async.v4.js.map +1 -1
  38. package/lib/cjs/tailwindcss/dissect-classes.async.v3.d.ts +3 -0
  39. package/lib/cjs/tailwindcss/dissect-classes.async.v3.d.ts.map +1 -0
  40. package/lib/cjs/tailwindcss/{class-variants.async.v3.js → dissect-classes.async.v3.js} +24 -4
  41. package/lib/cjs/tailwindcss/dissect-classes.async.v3.js.map +1 -0
  42. package/lib/cjs/tailwindcss/dissect-classes.async.v4.d.ts +3 -0
  43. package/lib/cjs/tailwindcss/dissect-classes.async.v4.d.ts.map +1 -0
  44. package/lib/cjs/tailwindcss/dissect-classes.async.v4.js +32 -0
  45. package/lib/cjs/tailwindcss/dissect-classes.async.v4.js.map +1 -0
  46. package/lib/cjs/tailwindcss/dissect-classes.async.worker.v3.d.ts +2 -0
  47. package/lib/cjs/tailwindcss/dissect-classes.async.worker.v3.d.ts.map +1 -0
  48. package/lib/cjs/tailwindcss/{class-variants.async.worker.v3.js → dissect-classes.async.worker.v3.js} +3 -3
  49. package/lib/cjs/tailwindcss/dissect-classes.async.worker.v3.js.map +1 -0
  50. package/lib/cjs/tailwindcss/dissect-classes.async.worker.v4.d.ts +2 -0
  51. package/lib/cjs/tailwindcss/dissect-classes.async.worker.v4.d.ts.map +1 -0
  52. package/lib/cjs/tailwindcss/{class-variants.async.worker.v4.js → dissect-classes.async.worker.v4.js} +3 -3
  53. package/lib/cjs/tailwindcss/dissect-classes.async.worker.v4.js.map +1 -0
  54. package/lib/cjs/tailwindcss/dissect-classes.d.ts +23 -0
  55. package/lib/cjs/tailwindcss/dissect-classes.d.ts.map +1 -0
  56. package/lib/cjs/tailwindcss/{shorthand-classes.js → dissect-classes.js} +7 -7
  57. package/lib/cjs/tailwindcss/dissect-classes.js.map +1 -0
  58. package/lib/cjs/utils/class.d.ts +11 -0
  59. package/lib/cjs/utils/class.d.ts.map +1 -0
  60. package/lib/cjs/utils/class.js +24 -0
  61. package/lib/cjs/utils/class.js.map +1 -0
  62. package/lib/cjs/utils/lint.d.ts +7 -0
  63. package/lib/cjs/utils/lint.d.ts.map +1 -0
  64. package/lib/cjs/utils/lint.js +46 -0
  65. package/lib/cjs/utils/lint.js.map +1 -0
  66. package/lib/cjs/utils/utils.d.ts +3 -1
  67. package/lib/cjs/utils/utils.d.ts.map +1 -1
  68. package/lib/cjs/utils/utils.js +20 -15
  69. package/lib/cjs/utils/utils.js.map +1 -1
  70. package/lib/esm/configs/config.d.ts +4 -0
  71. package/lib/esm/configs/config.d.ts.map +1 -1
  72. package/lib/esm/configs/config.js +4 -0
  73. package/lib/esm/configs/config.js.map +1 -1
  74. package/lib/esm/rules/enforce-consistent-class-order.d.ts.map +1 -1
  75. package/lib/esm/rules/enforce-consistent-class-order.js +4 -3
  76. package/lib/esm/rules/enforce-consistent-class-order.js.map +1 -1
  77. package/lib/esm/rules/enforce-consistent-important-position.d.ts +19 -0
  78. package/lib/esm/rules/enforce-consistent-important-position.d.ts.map +1 -0
  79. package/lib/esm/rules/enforce-consistent-important-position.js +93 -0
  80. package/lib/esm/rules/enforce-consistent-important-position.js.map +1 -0
  81. package/lib/esm/rules/enforce-consistent-variable-syntax.d.ts.map +1 -1
  82. package/lib/esm/rules/enforce-consistent-variable-syntax.js +14 -48
  83. package/lib/esm/rules/enforce-consistent-variable-syntax.js.map +1 -1
  84. package/lib/esm/rules/enforce-shorthand-classes.d.ts +2 -0
  85. package/lib/esm/rules/enforce-shorthand-classes.d.ts.map +1 -1
  86. package/lib/esm/rules/enforce-shorthand-classes.js +173 -33
  87. package/lib/esm/rules/enforce-shorthand-classes.js.map +1 -1
  88. package/lib/esm/rules/no-conflicting-classes.d.ts.map +1 -1
  89. package/lib/esm/rules/no-conflicting-classes.js +13 -13
  90. package/lib/esm/rules/no-conflicting-classes.js.map +1 -1
  91. package/lib/esm/rules/no-deprecated-classes.d.ts +17 -0
  92. package/lib/esm/rules/no-deprecated-classes.d.ts.map +1 -0
  93. package/lib/esm/rules/no-deprecated-classes.js +95 -0
  94. package/lib/esm/rules/no-deprecated-classes.js.map +1 -0
  95. package/lib/esm/rules/no-duplicate-classes.js +13 -52
  96. package/lib/esm/rules/no-duplicate-classes.js.map +1 -1
  97. package/lib/esm/rules/no-restricted-classes.d.ts.map +1 -1
  98. package/lib/esm/rules/no-restricted-classes.js +24 -37
  99. package/lib/esm/rules/no-restricted-classes.js.map +1 -1
  100. package/lib/esm/rules/no-unregistered-classes.d.ts.map +1 -1
  101. package/lib/esm/rules/no-unregistered-classes.js +15 -15
  102. package/lib/esm/rules/no-unregistered-classes.js.map +1 -1
  103. package/lib/esm/tailwindcss/custom-component-classes.async.v4.d.ts.map +1 -1
  104. package/lib/esm/tailwindcss/custom-component-classes.async.v4.js +31 -3
  105. package/lib/esm/tailwindcss/custom-component-classes.async.v4.js.map +1 -1
  106. package/lib/esm/tailwindcss/dissect-classes.async.v3.d.ts +3 -0
  107. package/lib/esm/tailwindcss/dissect-classes.async.v3.d.ts.map +1 -0
  108. package/lib/esm/tailwindcss/dissect-classes.async.v3.js +30 -0
  109. package/lib/esm/tailwindcss/dissect-classes.async.v3.js.map +1 -0
  110. package/lib/esm/tailwindcss/dissect-classes.async.v4.d.ts +3 -0
  111. package/lib/esm/tailwindcss/dissect-classes.async.v4.d.ts.map +1 -0
  112. package/lib/esm/tailwindcss/dissect-classes.async.v4.js +29 -0
  113. package/lib/esm/tailwindcss/dissect-classes.async.v4.js.map +1 -0
  114. package/lib/esm/tailwindcss/dissect-classes.async.worker.v3.d.ts +2 -0
  115. package/lib/esm/tailwindcss/dissect-classes.async.worker.v3.d.ts.map +1 -0
  116. package/lib/esm/tailwindcss/{class-variants.async.worker.v3.js → dissect-classes.async.worker.v3.js} +3 -3
  117. package/lib/esm/tailwindcss/dissect-classes.async.worker.v3.js.map +1 -0
  118. package/lib/esm/tailwindcss/dissect-classes.async.worker.v4.d.ts +2 -0
  119. package/lib/esm/tailwindcss/dissect-classes.async.worker.v4.d.ts.map +1 -0
  120. package/lib/esm/tailwindcss/{class-variants.async.worker.v4.js → dissect-classes.async.worker.v4.js} +3 -3
  121. package/lib/esm/tailwindcss/dissect-classes.async.worker.v4.js.map +1 -0
  122. package/lib/esm/tailwindcss/dissect-classes.d.ts +23 -0
  123. package/lib/esm/tailwindcss/dissect-classes.d.ts.map +1 -0
  124. package/lib/esm/tailwindcss/{shorthand-classes.js → dissect-classes.js} +6 -6
  125. package/lib/esm/tailwindcss/dissect-classes.js.map +1 -0
  126. package/lib/esm/utils/class.d.ts +11 -0
  127. package/lib/esm/utils/class.d.ts.map +1 -0
  128. package/lib/esm/utils/class.js +21 -0
  129. package/lib/esm/utils/class.js.map +1 -0
  130. package/lib/esm/utils/lint.d.ts +7 -0
  131. package/lib/esm/utils/lint.d.ts.map +1 -0
  132. package/lib/esm/utils/lint.js +43 -0
  133. package/lib/esm/utils/lint.js.map +1 -0
  134. package/lib/esm/utils/utils.d.ts +3 -1
  135. package/lib/esm/utils/utils.d.ts.map +1 -1
  136. package/lib/esm/utils/utils.js +18 -15
  137. package/lib/esm/utils/utils.js.map +1 -1
  138. package/package.json +9 -9
  139. package/lib/cjs/async-utils/string.d.ts +0 -2
  140. package/lib/cjs/async-utils/string.d.ts.map +0 -1
  141. package/lib/cjs/async-utils/string.js +0 -10
  142. package/lib/cjs/async-utils/string.js.map +0 -1
  143. package/lib/cjs/tailwindcss/class-variants.async.v3.d.ts +0 -3
  144. package/lib/cjs/tailwindcss/class-variants.async.v3.d.ts.map +0 -1
  145. package/lib/cjs/tailwindcss/class-variants.async.v3.js.map +0 -1
  146. package/lib/cjs/tailwindcss/class-variants.async.v4.d.ts +0 -3
  147. package/lib/cjs/tailwindcss/class-variants.async.v4.d.ts.map +0 -1
  148. package/lib/cjs/tailwindcss/class-variants.async.v4.js +0 -14
  149. package/lib/cjs/tailwindcss/class-variants.async.v4.js.map +0 -1
  150. package/lib/cjs/tailwindcss/class-variants.async.worker.v3.d.ts +0 -2
  151. package/lib/cjs/tailwindcss/class-variants.async.worker.v3.d.ts.map +0 -1
  152. package/lib/cjs/tailwindcss/class-variants.async.worker.v3.js.map +0 -1
  153. package/lib/cjs/tailwindcss/class-variants.async.worker.v4.d.ts +0 -2
  154. package/lib/cjs/tailwindcss/class-variants.async.worker.v4.d.ts.map +0 -1
  155. package/lib/cjs/tailwindcss/class-variants.async.worker.v4.js.map +0 -1
  156. package/lib/cjs/tailwindcss/class-variants.d.ts +0 -14
  157. package/lib/cjs/tailwindcss/class-variants.d.ts.map +0 -1
  158. package/lib/cjs/tailwindcss/class-variants.js +0 -24
  159. package/lib/cjs/tailwindcss/class-variants.js.map +0 -1
  160. package/lib/cjs/tailwindcss/custom-component-classes.async.d.ts +0 -2
  161. package/lib/cjs/tailwindcss/custom-component-classes.async.d.ts.map +0 -1
  162. package/lib/cjs/tailwindcss/custom-component-classes.async.js +0 -43
  163. package/lib/cjs/tailwindcss/custom-component-classes.async.js.map +0 -1
  164. package/lib/cjs/tailwindcss/custom-component-classes.async.worker.v3.d.ts +0 -2
  165. package/lib/cjs/tailwindcss/custom-component-classes.async.worker.v3.d.ts.map +0 -1
  166. package/lib/cjs/tailwindcss/custom-component-classes.async.worker.v3.js +0 -6
  167. package/lib/cjs/tailwindcss/custom-component-classes.async.worker.v3.js.map +0 -1
  168. package/lib/cjs/tailwindcss/custom-component-classes.async.worker.v4.d.ts +0 -2
  169. package/lib/cjs/tailwindcss/custom-component-classes.async.worker.v4.d.ts.map +0 -1
  170. package/lib/cjs/tailwindcss/custom-component-classes.async.worker.v4.js +0 -6
  171. package/lib/cjs/tailwindcss/custom-component-classes.async.worker.v4.js.map +0 -1
  172. package/lib/cjs/tailwindcss/shorthand-classes.async.d.ts +0 -4
  173. package/lib/cjs/tailwindcss/shorthand-classes.async.d.ts.map +0 -1
  174. package/lib/cjs/tailwindcss/shorthand-classes.async.js +0 -129
  175. package/lib/cjs/tailwindcss/shorthand-classes.async.js.map +0 -1
  176. package/lib/cjs/tailwindcss/shorthand-classes.async.v3.d.ts +0 -3
  177. package/lib/cjs/tailwindcss/shorthand-classes.async.v3.d.ts.map +0 -1
  178. package/lib/cjs/tailwindcss/shorthand-classes.async.v3.js +0 -54
  179. package/lib/cjs/tailwindcss/shorthand-classes.async.v3.js.map +0 -1
  180. package/lib/cjs/tailwindcss/shorthand-classes.async.v4.d.ts +0 -3
  181. package/lib/cjs/tailwindcss/shorthand-classes.async.v4.d.ts.map +0 -1
  182. package/lib/cjs/tailwindcss/shorthand-classes.async.v4.js +0 -54
  183. package/lib/cjs/tailwindcss/shorthand-classes.async.v4.js.map +0 -1
  184. package/lib/cjs/tailwindcss/shorthand-classes.async.worker.v3.d.ts +0 -2
  185. package/lib/cjs/tailwindcss/shorthand-classes.async.worker.v3.d.ts.map +0 -1
  186. package/lib/cjs/tailwindcss/shorthand-classes.async.worker.v3.js +0 -10
  187. package/lib/cjs/tailwindcss/shorthand-classes.async.worker.v3.js.map +0 -1
  188. package/lib/cjs/tailwindcss/shorthand-classes.async.worker.v4.d.ts +0 -2
  189. package/lib/cjs/tailwindcss/shorthand-classes.async.worker.v4.d.ts.map +0 -1
  190. package/lib/cjs/tailwindcss/shorthand-classes.async.worker.v4.js +0 -10
  191. package/lib/cjs/tailwindcss/shorthand-classes.async.worker.v4.js.map +0 -1
  192. package/lib/cjs/tailwindcss/shorthand-classes.d.ts +0 -15
  193. package/lib/cjs/tailwindcss/shorthand-classes.d.ts.map +0 -1
  194. package/lib/cjs/tailwindcss/shorthand-classes.js.map +0 -1
  195. package/lib/esm/async-utils/string.d.ts +0 -2
  196. package/lib/esm/async-utils/string.d.ts.map +0 -1
  197. package/lib/esm/async-utils/string.js +0 -7
  198. package/lib/esm/async-utils/string.js.map +0 -1
  199. package/lib/esm/tailwindcss/class-variants.async.v3.d.ts +0 -3
  200. package/lib/esm/tailwindcss/class-variants.async.v3.d.ts.map +0 -1
  201. package/lib/esm/tailwindcss/class-variants.async.v3.js +0 -10
  202. package/lib/esm/tailwindcss/class-variants.async.v3.js.map +0 -1
  203. package/lib/esm/tailwindcss/class-variants.async.v4.d.ts +0 -3
  204. package/lib/esm/tailwindcss/class-variants.async.v4.d.ts.map +0 -1
  205. package/lib/esm/tailwindcss/class-variants.async.v4.js +0 -11
  206. package/lib/esm/tailwindcss/class-variants.async.v4.js.map +0 -1
  207. package/lib/esm/tailwindcss/class-variants.async.worker.v3.d.ts +0 -2
  208. package/lib/esm/tailwindcss/class-variants.async.worker.v3.d.ts.map +0 -1
  209. package/lib/esm/tailwindcss/class-variants.async.worker.v3.js.map +0 -1
  210. package/lib/esm/tailwindcss/class-variants.async.worker.v4.d.ts +0 -2
  211. package/lib/esm/tailwindcss/class-variants.async.worker.v4.d.ts.map +0 -1
  212. package/lib/esm/tailwindcss/class-variants.async.worker.v4.js.map +0 -1
  213. package/lib/esm/tailwindcss/class-variants.d.ts +0 -14
  214. package/lib/esm/tailwindcss/class-variants.d.ts.map +0 -1
  215. package/lib/esm/tailwindcss/class-variants.js +0 -21
  216. package/lib/esm/tailwindcss/class-variants.js.map +0 -1
  217. package/lib/esm/tailwindcss/custom-component-classes.async.d.ts +0 -2
  218. package/lib/esm/tailwindcss/custom-component-classes.async.d.ts.map +0 -1
  219. package/lib/esm/tailwindcss/custom-component-classes.async.js +0 -8
  220. package/lib/esm/tailwindcss/custom-component-classes.async.js.map +0 -1
  221. package/lib/esm/tailwindcss/custom-component-classes.async.worker.v3.d.ts +0 -2
  222. package/lib/esm/tailwindcss/custom-component-classes.async.worker.v3.d.ts.map +0 -1
  223. package/lib/esm/tailwindcss/custom-component-classes.async.worker.v3.js +0 -4
  224. package/lib/esm/tailwindcss/custom-component-classes.async.worker.v3.js.map +0 -1
  225. package/lib/esm/tailwindcss/custom-component-classes.async.worker.v4.d.ts +0 -2
  226. package/lib/esm/tailwindcss/custom-component-classes.async.worker.v4.d.ts.map +0 -1
  227. package/lib/esm/tailwindcss/custom-component-classes.async.worker.v4.js +0 -4
  228. package/lib/esm/tailwindcss/custom-component-classes.async.worker.v4.js.map +0 -1
  229. package/lib/esm/tailwindcss/shorthand-classes.async.d.ts +0 -4
  230. package/lib/esm/tailwindcss/shorthand-classes.async.d.ts.map +0 -1
  231. package/lib/esm/tailwindcss/shorthand-classes.async.js +0 -125
  232. package/lib/esm/tailwindcss/shorthand-classes.async.js.map +0 -1
  233. package/lib/esm/tailwindcss/shorthand-classes.async.v3.d.ts +0 -3
  234. package/lib/esm/tailwindcss/shorthand-classes.async.v3.d.ts.map +0 -1
  235. package/lib/esm/tailwindcss/shorthand-classes.async.v3.js +0 -51
  236. package/lib/esm/tailwindcss/shorthand-classes.async.v3.js.map +0 -1
  237. package/lib/esm/tailwindcss/shorthand-classes.async.v4.d.ts +0 -3
  238. package/lib/esm/tailwindcss/shorthand-classes.async.v4.d.ts.map +0 -1
  239. package/lib/esm/tailwindcss/shorthand-classes.async.v4.js +0 -51
  240. package/lib/esm/tailwindcss/shorthand-classes.async.v4.js.map +0 -1
  241. package/lib/esm/tailwindcss/shorthand-classes.async.worker.v3.d.ts +0 -2
  242. package/lib/esm/tailwindcss/shorthand-classes.async.worker.v3.d.ts.map +0 -1
  243. package/lib/esm/tailwindcss/shorthand-classes.async.worker.v3.js +0 -8
  244. package/lib/esm/tailwindcss/shorthand-classes.async.worker.v3.js.map +0 -1
  245. package/lib/esm/tailwindcss/shorthand-classes.async.worker.v4.d.ts +0 -2
  246. package/lib/esm/tailwindcss/shorthand-classes.async.worker.v4.d.ts.map +0 -1
  247. package/lib/esm/tailwindcss/shorthand-classes.async.worker.v4.js +0 -8
  248. package/lib/esm/tailwindcss/shorthand-classes.async.worker.v4.js.map +0 -1
  249. package/lib/esm/tailwindcss/shorthand-classes.d.ts +0 -15
  250. package/lib/esm/tailwindcss/shorthand-classes.d.ts.map +0 -1
  251. package/lib/esm/tailwindcss/shorthand-classes.js.map +0 -1
@@ -4,9 +4,9 @@ exports.noRestrictedClasses = void 0;
4
4
  exports.getOptions = getOptions;
5
5
  const default_options_js_1 = require("../options/default-options.js");
6
6
  const descriptions_js_1 = require("../options/descriptions.js");
7
+ const lint_js_1 = require("../utils/lint.js");
7
8
  const options_js_1 = require("../utils/options.js");
8
9
  const rule_js_1 = require("../utils/rule.js");
9
- const string_js_1 = require("../async-utils/string.js");
10
10
  const utils_js_1 = require("../utils/utils.js");
11
11
  const defaultOptions = {
12
12
  attributes: default_options_js_1.DEFAULT_ATTRIBUTE_NAMES,
@@ -76,47 +76,34 @@ exports.noRestrictedClasses = {
76
76
  function lintLiterals(ctx, literals) {
77
77
  const { restrict: restrictions } = getOptions(ctx);
78
78
  for (const literal of literals) {
79
- const classes = literal.content;
80
- const classChunks = (0, utils_js_1.splitClasses)(classes);
81
- const whitespaceChunks = (0, utils_js_1.splitWhitespaces)(classes);
82
- const startsWithWhitespace = whitespaceChunks.length > 0 && whitespaceChunks[0] !== "";
83
- for (let classIndex = 0, literalIndex = 0; classIndex < classChunks.length; classIndex++) {
84
- const className = classChunks[classIndex];
85
- if (startsWithWhitespace) {
86
- literalIndex += whitespaceChunks[classIndex].length;
87
- }
88
- const classStart = literalIndex;
89
- literalIndex += className.length;
90
- if (!startsWithWhitespace) {
91
- literalIndex += whitespaceChunks[classIndex + 1].length;
92
- }
79
+ (0, lint_js_1.lintClasses)(ctx, literal, (className, classes) => {
93
80
  for (const restriction of restrictions) {
94
- const pattern = typeof restriction === "string" ? restriction : restriction.pattern;
95
- const message = typeof restriction === "string" ? undefined : restriction.message;
81
+ const pattern = typeof restriction === "string"
82
+ ? restriction
83
+ : restriction.pattern;
96
84
  const matches = className.match(pattern);
97
85
  if (!matches) {
98
86
  continue;
99
87
  }
100
- const [literalStart] = literal.range;
101
- ctx.report({
102
- data: {
103
- className
104
- },
105
- loc: (0, utils_js_1.getExactClassLocation)(literal, className),
106
- message: message
107
- ? (0, string_js_1.replacePlaceholders)(message, matches)
108
- : "Restricted class: \"{{ className }}\".",
109
- ...typeof restriction === "object" && restriction.fix !== undefined
110
- ? {
111
- fix: fixer => fixer.replaceTextRange([
112
- literalStart + classStart + 1,
113
- literalStart + classStart + className.length + 1
114
- ], (0, string_js_1.replacePlaceholders)(restriction.fix, matches))
115
- }
116
- : {}
117
- });
88
+ const message = typeof restriction === "string" || !restriction.message
89
+ ? `Restricted class: "${className}".`
90
+ : (0, utils_js_1.replacePlaceholders)(restriction.message, matches);
91
+ if (typeof restriction === "string") {
92
+ return {
93
+ message
94
+ };
95
+ }
96
+ if (restriction.fix !== undefined) {
97
+ return {
98
+ fix: (0, utils_js_1.replacePlaceholders)(restriction.fix, matches),
99
+ message
100
+ };
101
+ }
102
+ return {
103
+ message
104
+ };
118
105
  }
119
- }
106
+ });
120
107
  }
121
108
  }
122
109
  function getOptions(ctx) {
@@ -1 +1 @@
1
- {"version":3,"file":"no-restricted-classes.js","sourceRoot":"","sources":["../../../src/rules/no-restricted-classes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-restricted-classes.js","sourceRoot":"","sources":["../../../src/rules/no-restricted-classes.ts"],"names":[],"mappings":";;;AA6JA,gCAaC;AA1KD,sFAKuD;AACvD,gFAKoD;AACpD,8DAA+D;AAC/D,oEAAuE;AACvE,8DAAsE;AACtE,gEAAwE;AA8BxE,MAAM,cAAc,GAAG;IACrB,UAAU,EAAE,4CAAuB;IACnC,OAAO,EAAE,yCAAoB;IAC7B,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,sCAAiB;IACvB,SAAS,EAAE,2CAAsB;CACJ,CAAC;AAEhC,MAAM,iBAAiB,GAAG,2GAA2G,CAAC;AAEzH,QAAA,mBAAmB,GAAwB;IACtD,IAAI,EAAE,uBAAgC;IACtC,IAAI,EAAE;QACJ,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,IAAA,4BAAkB,EAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC;QACrE,IAAI,EAAE;YACJ,IAAI,EAAE;gBACJ,WAAW,EAAE,8BAA8B;gBAC3C,WAAW,EAAE,KAAK;gBAClB,GAAG,EAAE,iBAAiB;aACvB;YACD,OAAO,EAAE,MAAM;YACf,MAAM,EAAE;gBACN;oBACE,oBAAoB,EAAE,KAAK;oBAC3B,UAAU,EAAE;wBACV,GAAG,+BAAa;wBAChB,GAAG,kCAAgB;wBACnB,GAAG,iCAAe;wBAClB,GAAG,4BAAU;wBACb,QAAQ,EAAE;4BACR,KAAK,EAAE;gCACL,KAAK,EAAE;oCACL;wCACE,oBAAoB,EAAE,KAAK;wCAC3B,UAAU,EAAE;4CACV,GAAG,EAAE;gDACH,WAAW,EAAE,qBAAqB;gDAClC,IAAI,EAAE,QAAQ;6CACf;4CACD,OAAO,EAAE;gDACP,OAAO,EAAE,SAAS;gDAClB,WAAW,EAAE,mDAAmD;gDAChE,IAAI,EAAE,QAAQ;6CACf;4CACD,OAAO,EAAE;gDACP,WAAW,EAAE,gDAAgD;gDAC7D,IAAI,EAAE,QAAQ;6CACf;yCACF;wCACD,QAAQ,EAAE,CAAC,SAAS,CAAC;wCACrB,IAAI,EAAE,QAAQ;qCACf;oCACD;wCACE,IAAI,EAAE,QAAQ;qCACf;iCACF;6BACF;4BACD,IAAI,EAAE,OAAO;yBACd;qBACF;oBACD,IAAI,EAAE,QAAQ;iBACf;aACF;YACD,IAAI,EAAE,SAAS;SAChB;KACF;CACF,CAAC;AAGF,SAAS,YAAY,CAAC,GAAqB,EAAE,QAAmB;IAE9D,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAEnD,KAAI,MAAM,OAAO,IAAI,QAAQ,EAAC,CAAC;QAC7B,IAAA,qBAAW,EAAC,GAAG,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE;YAE/C,KAAI,MAAM,WAAW,IAAI,YAAY,EAAC,CAAC;gBACrC,MAAM,OAAO,GAAG,OAAO,WAAW,KAAK,QAAQ;oBAC7C,CAAC,CAAC,WAAW;oBACb,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC;gBAExB,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAEzC,IAAG,CAAC,OAAO,EAAC,CAAC;oBACX,SAAS;gBACX,CAAC;gBAED,MAAM,OAAO,GAAG,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,OAAO;oBACrE,CAAC,CAAC,sBAAsB,SAAS,IAAI;oBACrC,CAAC,CAAC,IAAA,8BAAmB,EAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAEtD,IAAG,OAAO,WAAW,KAAK,QAAQ,EAAC,CAAC;oBAClC,OAAO;wBACL,OAAO;qBACR,CAAC;gBACJ,CAAC;gBAED,IAAG,WAAW,CAAC,GAAG,KAAK,SAAS,EAAC,CAAC;oBAChC,OAAO;wBACL,GAAG,EAAE,IAAA,8BAAmB,EAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC;wBAClD,OAAO;qBACR,CAAC;gBACJ,CAAC;gBAED,OAAO;oBACL,OAAO;iBACR,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAgB,UAAU,CAAC,GAAqB;IAE9C,MAAM,OAAO,GAAe,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEjD,MAAM,MAAM,GAAG,IAAA,6BAAgB,EAAC,GAAG,CAAC,CAAC;IAErC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC;IAE7D,OAAO;QACL,GAAG,MAAM;QACT,QAAQ;KACT,CAAC;AAEJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-unregistered-classes.d.ts","sourceRoot":"","sources":["../../../src/rules/no-unregistered-classes.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,EACf,MAAM,kCAAkC,CAAC;AAG1C,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CACL,eAAe,GACf,YAAY,GACZ,SAAS,GACT,cAAc,GACd;QACE,sBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CACF;CACF,CAAC;AAEF,eAAO,MAAM,oCAAoC,SAAK,CAAC;AAavD,eAAO,MAAM,qBAAqB,EAAE,UAAU,CAAC,OAAO,CAwCrD,CAAC;AAkDF,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW;;;;;;;;EAe/C"}
1
+ {"version":3,"file":"no-unregistered-classes.d.ts","sourceRoot":"","sources":["../../../src/rules/no-unregistered-classes.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,EACf,MAAM,kCAAkC,CAAC;AAG1C,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CACL,eAAe,GACf,YAAY,GACZ,SAAS,GACT,cAAc,GACd;QACE,sBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CACF;CACF,CAAC;AAEF,eAAO,MAAM,oCAAoC,SAAK,CAAC;AAavD,eAAO,MAAM,qBAAqB,EAAE,UAAU,CAAC,OAAO,CAwCrD,CAAC;AAmDF,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW;;;;;;;;EAe/C"}
@@ -7,6 +7,7 @@ const descriptions_js_1 = require("../options/descriptions.js");
7
7
  const custom_component_classes_js_1 = require("../tailwindcss/custom-component-classes.js");
8
8
  const prefix_js_1 = require("../tailwindcss/prefix.js");
9
9
  const unregistered_classes_js_1 = require("../tailwindcss/unregistered-classes.js");
10
+ const lint_js_1 = require("../utils/lint.js");
10
11
  const options_js_1 = require("../utils/options.js");
11
12
  const rule_js_1 = require("../utils/rule.js");
12
13
  const utils_js_1 = require("../utils/utils.js");
@@ -75,21 +76,20 @@ function lintLiterals(ctx, literals) {
75
76
  if (unregisteredClasses.length === 0) {
76
77
  continue;
77
78
  }
78
- for (const unregisteredClass of unregisteredClasses) {
79
- if (ignore.some(ignoredClass => unregisteredClass.match(ignoredClass)) ||
80
- customComponentClasses.includes(unregisteredClass) ||
81
- unregisteredClass.match(ignoredGroups) ||
82
- unregisteredClass.match(ignoredPeers)) {
83
- continue;
79
+ (0, lint_js_1.lintClasses)(ctx, literal, className => {
80
+ if (!unregisteredClasses.includes(className)) {
81
+ return;
84
82
  }
85
- ctx.report({
86
- data: {
87
- unregistered: (0, utils_js_1.display)(unregisteredClass)
88
- },
89
- loc: (0, utils_js_1.getExactClassLocation)(literal, unregisteredClass),
90
- message: (0, utils_js_1.augmentMessageWithWarnings)("Unregistered class detected: {{ unregistered }}", DOCUMENTATION_URL, warnings)
91
- });
92
- }
83
+ if (ignore.some(ignoredClass => className.match(ignoredClass)) ||
84
+ customComponentClasses.includes(className) ||
85
+ className.match(ignoredGroups) ||
86
+ className.match(ignoredPeers)) {
87
+ return;
88
+ }
89
+ return {
90
+ message: (0, utils_js_1.augmentMessageWithWarnings)(`Unregistered class detected: ${className}`, DOCUMENTATION_URL, warnings)
91
+ };
92
+ });
93
93
  }
94
94
  }
95
95
  function getOptions(ctx) {
@@ -1 +1 @@
1
- {"version":3,"file":"no-unregistered-classes.js","sourceRoot":"","sources":["../../../src/rules/no-unregistered-classes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-unregistered-classes.js","sourceRoot":"","sources":["../../../src/rules/no-unregistered-classes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"custom-component-classes.async.v4.d.ts","sourceRoot":"","sources":["../../../src/tailwindcss/custom-component-classes.async.v4.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,gCAAgC,EAChC,iCAAiC,EAClC,MAAM,+BAA+B,CAAC;AAKvC,wBAAgB,yBAAyB,CAAC,EAAE,UAAU,EAAE,EAAE,gCAAgC,GAAG,iCAAiC,CAI7H"}
1
+ {"version":3,"file":"custom-component-classes.async.v4.d.ts","sourceRoot":"","sources":["../../../src/tailwindcss/custom-component-classes.async.v4.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,gCAAgC,EAChC,iCAAiC,EAClC,MAAM,+BAA+B,CAAC;AAKvC,wBAAgB,yBAAyB,CAAC,EAAE,UAAU,EAAE,EAAE,gCAAgC,GAAG,iCAAiC,CAS7H"}
@@ -2,13 +2,41 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getCustomComponentClasses = getCustomComponentClasses;
4
4
  const node_fs_1 = require("node:fs");
5
+ const node_path_1 = require("node:path");
5
6
  const css_tree_1 = require("@eslint/css-tree");
6
7
  const tailwind_csstree_1 = require("tailwind-csstree");
7
8
  const { findAll, generate, parse } = (0, css_tree_1.fork)(tailwind_csstree_1.tailwind4);
8
9
  function getCustomComponentClasses({ configPath }) {
9
- const entryFile = (0, node_fs_1.readFileSync)(configPath, "utf-8");
10
- const ast = parse(entryFile);
11
- return getCustomComponentUtilities(ast);
10
+ const files = parseCssFile(configPath);
11
+ const utilities = Object.values(files).reduce((customComponentClasses, ast) => {
12
+ customComponentClasses.push(...getCustomComponentUtilities(ast));
13
+ return customComponentClasses;
14
+ }, []);
15
+ return utilities;
16
+ }
17
+ function parseCssFile(filePath) {
18
+ const content = (0, node_fs_1.readFileSync)(filePath, "utf-8");
19
+ const files = {
20
+ [filePath]: parse(content)
21
+ };
22
+ const importNodes = findAll(files[filePath], node => node.type === "Atrule" &&
23
+ node.name === "import" &&
24
+ node.prelude?.type === "AtrulePrelude");
25
+ for (const importNode of importNodes) {
26
+ if (importNode.type !== "Atrule" || !importNode.prelude) {
27
+ continue;
28
+ }
29
+ const importPath = generate(importNode.prelude).trim()
30
+ .replace(/["']/g, "");
31
+ if (!importPath.endsWith(".css")) {
32
+ continue;
33
+ }
34
+ const importFiles = parseCssFile((0, node_path_1.resolve)((0, node_path_1.dirname)(filePath), importPath));
35
+ for (const importFilePath in importFiles) {
36
+ files[importFilePath] = importFiles[importFilePath];
37
+ }
38
+ }
39
+ return files;
12
40
  }
13
41
  function getCustomComponentUtilities(ast) {
14
42
  const customComponentUtilities = [];
@@ -1 +1 @@
1
- {"version":3,"file":"custom-component-classes.async.v4.js","sourceRoot":"","sources":["../../../src/tailwindcss/custom-component-classes.async.v4.ts"],"names":[],"mappings":";;AAeA,8DAIC;AAnBD,qCAAuC;AAEvC,+CAAwC;AACxC,uDAA6C;AAU7C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAA,eAAI,EAAC,4BAAS,CAAC,CAAC;AAErD,SAAgB,yBAAyB,CAAC,EAAE,UAAU,EAAoC;IACxF,MAAM,SAAS,GAAG,IAAA,sBAAY,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7B,OAAO,2BAA2B,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,2BAA2B,CAAC,GAAY;IAC/C,MAAM,wBAAwB,GAAa,EAAE,CAAC;IAE9C,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE;QAC1C,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;YAC3B,IAAI,CAAC,IAAI,KAAK,OAAO;YACrB,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,eAAe;YACtC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,YAAY,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,KAAI,MAAM,KAAK,IAAI,eAAe,EAAC,CAAC;QAClC,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;QAE7E,KAAI,MAAM,SAAS,IAAI,cAAc,EAAC,CAAC;YACrC,IAAG,SAAS,CAAC,IAAI,KAAK,eAAe,EAAC,CAAC;gBACrC,SAAS;YACX,CAAC;YAED,IAAG,wBAAwB,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC,CAAC;gBACpD,SAAS;YACX,CAAC;YAED,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,OAAO,wBAAwB,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"custom-component-classes.async.v4.js","sourceRoot":"","sources":["../../../src/tailwindcss/custom-component-classes.async.v4.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { GetDissectedClassResponse } from "./dissect-classes.js";
2
+ export declare function getDissectedClasses(context: any, classes: string[]): GetDissectedClassResponse;
3
+ //# sourceMappingURL=dissect-classes.async.v3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dissect-classes.async.v3.d.ts","sourceRoot":"","sources":["../../../src/tailwindcss/dissect-classes.async.v3.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAGtE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,yBAAyB,CAgC9F"}
@@ -33,14 +33,34 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.getClassVariants = getClassVariants;
36
+ exports.getDissectedClasses = getDissectedClasses;
37
37
  const utils = __importStar(require("tailwindcss/lib/util/splitAtTopLevelOnly.js"));
38
- function getClassVariants(context, classes) {
38
+ const prefix_async_v3_js_1 = require("./prefix.async.v3.js");
39
+ function getDissectedClasses(context, classes) {
40
+ const prefix = (0, prefix_async_v3_js_1.getPrefix)(context);
39
41
  const separator = context.tailwindConfig.separator ?? ":";
40
42
  return classes.map(className => {
41
43
  const splitChunks = utils.splitAtTopLevelOnly?.(className, separator) ?? utils.default?.splitAtTopLevelOnly?.(className, separator);
42
44
  const variants = splitChunks.slice(0, -1);
43
- return [className, variants];
45
+ let base = className
46
+ .replace(variants.join(separator), "")
47
+ .replace(prefix, "")
48
+ .replace(new RegExp(`^${separator}`), "");
49
+ const isNegative = base.startsWith("-");
50
+ base = base.replace(/^-/, "");
51
+ const isImportantAtStart = base.startsWith("!");
52
+ base = base.replace(/^!/, "");
53
+ const isImportantAtEnd = base.endsWith("!");
54
+ base = base.replace(/!$/, "");
55
+ return {
56
+ base,
57
+ className,
58
+ important: [isImportantAtStart, isImportantAtEnd],
59
+ negative: isNegative,
60
+ prefix,
61
+ separator,
62
+ variants
63
+ };
44
64
  });
45
65
  }
46
- //# sourceMappingURL=class-variants.async.v3.js.map
66
+ //# sourceMappingURL=dissect-classes.async.v3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dissect-classes.async.v3.js","sourceRoot":"","sources":["../../../src/tailwindcss/dissect-classes.async.v3.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,kDAgCC;AAvCD,oFAAsE;AAEtE,6DAAiD;AAKjD,SAAgB,mBAAmB,CAAC,OAAY,EAAE,OAAiB;IACjE,MAAM,MAAM,GAAG,IAAA,8BAAS,EAAC,OAAO,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,IAAI,GAAG,CAAC;IAE1D,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAC7B,MAAM,WAAW,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,mBAAmB,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACpI,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAE1C,IAAI,IAAI,GAAG,SAAS;aACjB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;aACrC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;aACnB,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAE5C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAE9B,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAE9B,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAE9B,OAAO;YACL,IAAI;YACJ,SAAS;YACT,SAAS,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;YACjD,QAAQ,EAAE,UAAU;YACpB,MAAM;YACN,SAAS;YACT,QAAQ;SACmC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { GetDissectedClassResponse } from "./dissect-classes.js";
2
+ export declare function getDissectedClasses(context: any, classes: string[]): GetDissectedClassResponse;
3
+ //# sourceMappingURL=dissect-classes.async.v4.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dissect-classes.async.v4.d.ts","sourceRoot":"","sources":["../../../src/tailwindcss/dissect-classes.async.v4.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAGtE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,yBAAyB,CAiC9F"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDissectedClasses = getDissectedClasses;
4
+ const prefix_async_v4_js_1 = require("./prefix.async.v4.js");
5
+ function getDissectedClasses(context, classes) {
6
+ const prefix = (0, prefix_async_v4_js_1.getPrefix)(context);
7
+ const separator = ":";
8
+ return classes.map(className => {
9
+ const [parsed] = context.parseCandidate(className);
10
+ const variants = parsed?.variants?.map(variant => context.printVariant(variant)).reverse() ?? [];
11
+ let base = className
12
+ .replace(variants.join(separator), "")
13
+ .replace(prefix + separator, "")
14
+ .replace(new RegExp(`^${separator}`), "");
15
+ const isNegative = base.startsWith("-");
16
+ base = base.replace(/^-/, "");
17
+ const isImportantAtStart = base.startsWith("!");
18
+ base = base.replace(/^!/, "");
19
+ const isImportantAtEnd = base.endsWith("!");
20
+ base = base.replace(/!$/, "");
21
+ return {
22
+ base,
23
+ className,
24
+ important: [isImportantAtStart, isImportantAtEnd],
25
+ negative: isNegative,
26
+ prefix,
27
+ separator,
28
+ variants
29
+ };
30
+ });
31
+ }
32
+ //# sourceMappingURL=dissect-classes.async.v4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dissect-classes.async.v4.js","sourceRoot":"","sources":["../../../src/tailwindcss/dissect-classes.async.v4.ts"],"names":[],"mappings":";;AAKA,kDAiCC;AAtCD,6DAAiD;AAKjD,SAAgB,mBAAmB,CAAC,OAAY,EAAE,OAAiB;IACjE,MAAM,MAAM,GAAG,IAAA,8BAAS,EAAC,OAAO,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,GAAG,CAAC;IAEtB,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAC7B,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAEnD,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;QAEjG,IAAI,IAAI,GAAG,SAAS;aACjB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;aACrC,OAAO,CAAC,MAAM,GAAG,SAAS,EAAE,EAAE,CAAC;aAC/B,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAE5C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAE9B,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAE9B,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAE9B,OAAO;YACL,IAAI;YACJ,SAAS;YACT,SAAS,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;YACjD,QAAQ,EAAE,UAAU;YACpB,MAAM;YACN,SAAS;YACT,QAAQ;SACmC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dissect-classes.async.worker.v3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dissect-classes.async.worker.v3.d.ts","sourceRoot":"","sources":["../../../src/tailwindcss/dissect-classes.async.worker.v3.ts"],"names":[],"mappings":""}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const synckit_1 = require("synckit");
4
- const class_variants_async_v3_js_1 = require("./class-variants.async.v3.js");
5
4
  const context_async_v3_js_1 = require("./context.async.v3.js");
5
+ const dissect_classes_async_v3_js_1 = require("./dissect-classes.async.v3.js");
6
6
  (0, synckit_1.runAsWorker)(async ({ classes, configPath }) => {
7
7
  const context = await (0, context_async_v3_js_1.createTailwindContext)(configPath);
8
- return (0, class_variants_async_v3_js_1.getClassVariants)(context, classes);
8
+ return (0, dissect_classes_async_v3_js_1.getDissectedClasses)(context, classes);
9
9
  });
10
- //# sourceMappingURL=class-variants.async.worker.v3.js.map
10
+ //# sourceMappingURL=dissect-classes.async.worker.v3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dissect-classes.async.worker.v3.js","sourceRoot":"","sources":["../../../src/tailwindcss/dissect-classes.async.worker.v3.ts"],"names":[],"mappings":";;AAAA,qCAAsC;AAEtC,+DAA8D;AAC9D,+EAAoE;AAKpE,IAAA,qBAAW,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAA4B,EAAE,EAAE;IACtE,MAAM,OAAO,GAAG,MAAM,IAAA,2CAAqB,EAAC,UAAU,CAAC,CAAC;IACxD,OAAO,IAAA,iDAAmB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dissect-classes.async.worker.v4.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dissect-classes.async.worker.v4.d.ts","sourceRoot":"","sources":["../../../src/tailwindcss/dissect-classes.async.worker.v4.ts"],"names":[],"mappings":""}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const synckit_1 = require("synckit");
4
- const class_variants_async_v4_js_1 = require("./class-variants.async.v4.js");
5
4
  const context_async_v4_js_1 = require("./context.async.v4.js");
5
+ const dissect_classes_async_v4_js_1 = require("./dissect-classes.async.v4.js");
6
6
  (0, synckit_1.runAsWorker)(async ({ classes, configPath }) => {
7
7
  const context = await (0, context_async_v4_js_1.createTailwindContext)(configPath);
8
- return (0, class_variants_async_v4_js_1.getClassVariants)(context, classes);
8
+ return (0, dissect_classes_async_v4_js_1.getDissectedClasses)(context, classes);
9
9
  });
10
- //# sourceMappingURL=class-variants.async.worker.v4.js.map
10
+ //# sourceMappingURL=dissect-classes.async.worker.v4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dissect-classes.async.worker.v4.js","sourceRoot":"","sources":["../../../src/tailwindcss/dissect-classes.async.worker.v4.ts"],"names":[],"mappings":";;AAAA,qCAAsC;AAEtC,+DAA8D;AAC9D,+EAAoE;AAKpE,IAAA,qBAAW,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAA4B,EAAE,EAAE;IACtE,MAAM,OAAO,GAAG,MAAM,IAAA,2CAAqB,EAAC,UAAU,CAAC,CAAC;IACxD,OAAO,IAAA,iDAAmB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ export interface GetDissectedClassRequest {
2
+ classes: string[];
3
+ configPath: string;
4
+ }
5
+ export interface DissectedClass {
6
+ base: string;
7
+ className: string;
8
+ important: [start: boolean, end: boolean];
9
+ negative: boolean;
10
+ prefix: string;
11
+ separator: string;
12
+ variants: string[];
13
+ }
14
+ export type GetDissectedClassResponse = DissectedClass[];
15
+ export declare function getDissectedClasses({ classes, configPath, cwd }: {
16
+ classes: string[];
17
+ configPath: string | undefined;
18
+ cwd: string;
19
+ }): {
20
+ dissectedClasses: GetDissectedClassResponse;
21
+ warnings: ((Omit<import("../utils/utils").Warning<Record<string, any>>, "url"> & Partial<Pick<import("../utils/utils").Warning<Record<string, any>>, "url">>) | undefined)[];
22
+ };
23
+ //# sourceMappingURL=dissect-classes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dissect-classes.d.ts","sourceRoot":"","sources":["../../../src/tailwindcss/dissect-classes.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC1C,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,MAAM,yBAAyB,GAAG,cAAc,EAAE,CAAC;AAEzD,wBAAgB,mBAAmB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;CAAE;;;EAKpI"}
@@ -1,24 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getShorthandClasses = getShorthandClasses;
3
+ exports.getDissectedClasses = getDissectedClasses;
4
4
  const node_path_1 = require("node:path");
5
5
  const synckit_1 = require("synckit");
6
6
  const config_js_1 = require("./config.js");
7
7
  const version_js_1 = require("../async-utils/version.js");
8
8
  const worker_js_1 = require("../async-utils/worker.js");
9
- function getShorthandClasses({ classes, configPath, cwd }) {
9
+ function getDissectedClasses({ classes, configPath, cwd }) {
10
10
  const { path, warning } = (0, config_js_1.getTailwindConfigPath)({ configPath, cwd });
11
- const shorthandClasses = getShorthandClassesSync({ classes, configPath: path });
12
- return { shorthandClasses, warnings: [warning] };
11
+ const dissectedClasses = getDissectedClassesSync({ classes, configPath: path });
12
+ return { dissectedClasses, warnings: [warning] };
13
13
  }
14
- const getShorthandClassesSync = (0, synckit_1.createSyncFn)(getWorkerPath(), (0, worker_js_1.getWorkerOptions)());
14
+ const getDissectedClassesSync = (0, synckit_1.createSyncFn)(getWorkerPath(), (0, worker_js_1.getWorkerOptions)());
15
15
  function getWorkerPath() {
16
16
  const { major } = (0, version_js_1.getTailwindcssVersion)();
17
- return (0, node_path_1.resolve)(getCurrentDirectory(), `./shorthand-classes.async.worker.v${major}.js`);
17
+ return (0, node_path_1.resolve)(getCurrentDirectory(), `./dissect-classes.async.worker.v${major}.js`);
18
18
  }
19
19
  function getCurrentDirectory() {
20
20
  // eslint-disable-next-line eslint-plugin-typescript/prefer-ts-expect-error
21
21
  // @ts-ignore - `import.meta` doesn't exist in CommonJS -> will be transformed in build step
22
22
  return __dirname;
23
23
  }
24
- //# sourceMappingURL=shorthand-classes.js.map
24
+ //# sourceMappingURL=dissect-classes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dissect-classes.js","sourceRoot":"","sources":["../../../src/tailwindcss/dissect-classes.ts"],"names":[],"mappings":";;AA4BA,kDAKC;AAjCD,yCAAoC;AAEpC,qCAAuC;AAEvC,wEAAiF;AACjF,oEAA4E;AAC5E,kEAAsE;AAsBtE,SAAgB,mBAAmB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAuE;IACnI,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAA,iCAAqB,EAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;IACrE,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhF,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;AACnD,CAAC;AAED,MAAM,uBAAuB,GAAG,IAAA,sBAAY,EAE1C,aAAa,EAAE,EAAE,IAAA,4BAAgB,GAAE,CAAC,CAAC;AAEvC,SAAS,aAAa;IACpB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,kCAAqB,GAAE,CAAC;IAC1C,OAAO,IAAA,mBAAO,EAAC,mBAAmB,EAAE,EAAE,mCAAmC,KAAK,KAAK,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,mBAAmB;IAC1B,2EAA2E;IAC3E,4FAA4F;IAC5F,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,11 @@
1
+ interface ClassParts {
2
+ base: string;
3
+ important: [boolean, boolean];
4
+ negative: boolean;
5
+ prefix: string;
6
+ separator: string;
7
+ variants: string[];
8
+ }
9
+ export declare function buildClass({ base, important, negative, prefix, separator, variants }: ClassParts): string;
10
+ export {};
11
+ //# sourceMappingURL=class.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"class.d.ts","sourceRoot":"","sources":["../../../src/utils/class.ts"],"names":[],"mappings":"AAGA,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,UAAU,GAAG,MAAM,CAmBzG"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildClass = buildClass;
4
+ const version_js_1 = require("../async-utils/version.js");
5
+ function buildClass({ base, important, negative, prefix, separator, variants }) {
6
+ const { major } = (0, version_js_1.getTailwindcssVersion)();
7
+ const importantAtStart = important[0] && "!";
8
+ const importantAtEnd = important[1] && "!";
9
+ const negativePrefix = negative && "-";
10
+ if (major >= 4 /* TailwindcssVersion.V4 */) {
11
+ return [
12
+ prefix,
13
+ ...variants,
14
+ [importantAtStart, negativePrefix, base, importantAtEnd].filter(Boolean).join("")
15
+ ].filter(Boolean).join(separator);
16
+ }
17
+ else {
18
+ return [
19
+ ...variants,
20
+ [importantAtStart, prefix, negativePrefix, base, importantAtEnd].filter(Boolean).join("")
21
+ ].filter(Boolean).join(separator);
22
+ }
23
+ }
24
+ //# sourceMappingURL=class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"class.js","sourceRoot":"","sources":["../../../src/utils/class.ts"],"names":[],"mappings":";;AAYA,gCAmBC;AA/BD,oEAAgG;AAYhG,SAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAc;IAC/F,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,kCAAqB,GAAE,CAAC;IAE1C,MAAM,gBAAgB,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;IAC7C,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;IAC3C,MAAM,cAAc,GAAG,QAAQ,IAAI,GAAG,CAAC;IAEvC,IAAG,KAAK,iCAAyB,EAAC,CAAC;QACjC,OAAO;YACL,MAAM;YACN,GAAG,QAAQ;YACX,CAAC,gBAAgB,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;SAClF,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,OAAO;YACL,GAAG,QAAQ;YACX,CAAC,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;SAC1F,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { Rule } from "eslint";
2
+ import type { Literal } from "../types/ast.js";
3
+ export declare function lintClasses(ctx: Rule.RuleContext, literal: Literal, report: (className: string, index: number, after: string[]) => boolean | undefined | {
4
+ fix?: string;
5
+ message?: string;
6
+ }): void;
7
+ //# sourceMappingURL=lint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../../src/utils/lint.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAG/D,wBAAgB,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,OAAO,GAAG,SAAS,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAAE,GAAG,IAAI,CA2DnM"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.lintClasses = lintClasses;
4
+ const utils_js_1 = require("./utils.js");
5
+ function lintClasses(ctx, literal, report) {
6
+ const classChunks = (0, utils_js_1.splitClasses)(literal.content);
7
+ const whitespaceChunks = (0, utils_js_1.splitWhitespaces)(literal.content);
8
+ const startsWithWhitespace = whitespaceChunks.length > 0 && whitespaceChunks[0] !== "";
9
+ const after = [...classChunks];
10
+ for (let classIndex = 0, stringIndex = 0; classIndex < classChunks.length; classIndex++) {
11
+ const className = classChunks[classIndex];
12
+ if (startsWithWhitespace) {
13
+ stringIndex += whitespaceChunks[classIndex].length;
14
+ }
15
+ const classStart = stringIndex;
16
+ stringIndex += className.length;
17
+ if (!startsWithWhitespace) {
18
+ stringIndex += whitespaceChunks[classIndex + 1].length;
19
+ }
20
+ const result = report(className, classIndex, after);
21
+ if (result === undefined || result === false || result === className) {
22
+ continue;
23
+ }
24
+ const [literalStart] = literal.range;
25
+ if (typeof result === "object" && result.fix !== undefined) {
26
+ after[classIndex] = result.fix;
27
+ }
28
+ ctx.report({
29
+ data: {
30
+ className
31
+ },
32
+ loc: (0, utils_js_1.getExactClassLocation)(literal, stringIndex, className),
33
+ message: typeof result === "object" && result.message
34
+ ? result.message
35
+ : "Expected {{ before }} to be {{ after }}.",
36
+ ...typeof result === "object" && result.fix !== undefined &&
37
+ {
38
+ fix: fixer => fixer.replaceTextRange([
39
+ literalStart + classStart + 1,
40
+ literalStart + classStart + className.length + 1
41
+ ], result.fix)
42
+ }
43
+ });
44
+ }
45
+ }
46
+ //# sourceMappingURL=lint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../../src/utils/lint.ts"],"names":[],"mappings":";;AAOA,kCA2DC;AAlED,gEAA0G;AAO1G,SAAgB,WAAW,CAAC,GAAqB,EAAE,OAAgB,EAAE,MAAwH;IAE3L,MAAM,WAAW,GAAG,IAAA,uBAAY,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,gBAAgB,GAAG,IAAA,2BAAgB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3D,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAEvF,MAAM,KAAK,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IAE/B,KAAI,IAAI,UAAU,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,EAAC,CAAC;QAEtF,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QAE1C,IAAG,oBAAoB,EAAC,CAAC;YACvB,WAAW,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QACrD,CAAC;QAED,MAAM,UAAU,GAAG,WAAW,CAAC;QAE/B,WAAW,IAAI,SAAS,CAAC,MAAM,CAAC;QAEhC,IAAG,CAAC,oBAAoB,EAAC,CAAC;YACxB,WAAW,IAAI,gBAAgB,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QACzD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAEpD,IAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,SAAS,EAAC,CAAC;YACnE,SAAS;QACX,CAAC;QAED,MAAM,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QAErC,IAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAC,CAAC;YACzD,KAAK,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;QACjC,CAAC;QAED,GAAG,CAAC,MAAM,CAAC;YACT,IAAI,EAAE;gBACJ,SAAS;aACV;YACD,GAAG,EAAE,IAAA,gCAAqB,EAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC;YAC3D,OAAO,EAAE,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO;gBACnD,CAAC,CAAC,MAAM,CAAC,OAAO;gBAChB,CAAC,CAAC,0CAA0C;YAC9C,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS;gBACzD;oBACE,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAClC;wBACE,YAAY,GAAG,UAAU,GAAG,CAAC;wBAC7B,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;qBACjD,EACD,MAAM,CAAC,GAAI,CACZ;iBACF;SACF,CAAC,CAAC;IAEL,CAAC;AAEH,CAAC"}
@@ -16,7 +16,8 @@ export declare function augmentMessageWithWarnings(message: string, documentatio
16
16
  export declare function splitWhitespaces(classes: string): string[];
17
17
  export declare function getIndentation(line: string): number;
18
18
  export declare function escapeForRegex(word: string): string;
19
- export declare function getExactClassLocation(literal: Literal, className: string, partial?: boolean, lastIndex?: boolean): {
19
+ export declare function isClassSticky(literal: Literal, classIndex: number): boolean;
20
+ export declare function getExactClassLocation(literal: Literal, stringIndex: number, className: string): {
20
21
  end: {
21
22
  column: number;
22
23
  line: number;
@@ -27,6 +28,7 @@ export declare function getExactClassLocation(literal: Literal, className: strin
27
28
  };
28
29
  };
29
30
  export declare function matchesName(pattern: string, name: string | undefined): boolean;
31
+ export declare function replacePlaceholders(template: string, match: RegExpMatchArray | string[]): string;
30
32
  export declare function deduplicateLiterals(literals: Literal[]): Literal[];
31
33
  export interface GenericNodeWithParent {
32
34
  parent: GenericNodeWithParent;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAGtF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM;;;EAK5C;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAQhD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,UAAU,UAK9E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAQtD;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED,MAAM,WAAW,OAAO,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAChF,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,UAgBvH;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAE1D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,UAE1C;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,EAAE,SAAS,GAAE,OAAe;;;;;;;;;EAwC9H;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAK9E;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAQlE;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,qBAAqB,CAQpF"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAGtF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM;;;EAK5C;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAQhD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,UAAU,UAK9E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAQtD;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED,MAAM,WAAW,OAAO,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAChF,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,UAgBvH;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAE1D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,UAE1C;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAa3E;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;;;;;;;EAsB7F;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAK9E;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,MAAM,EAAE,GAAG,MAAM,CAKhG;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAQlE;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,qBAAqB,CAQpF"}