@dhzh/eslint-plugin-better-tailwindcss 0.0.0-stage → 4.9.0-patch

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 (423) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +247 -2
  3. package/lib/api/defaults.d.ts +103 -0
  4. package/lib/api/defaults.d.ts.map +1 -0
  5. package/lib/api/defaults.js +34 -0
  6. package/lib/api/defaults.js.map +1 -0
  7. package/lib/api/types.d.ts +9 -0
  8. package/lib/api/types.d.ts.map +1 -0
  9. package/lib/api/types.js +5 -0
  10. package/lib/api/types.js.map +1 -0
  11. package/lib/async-utils/cache.d.ts +30 -0
  12. package/lib/async-utils/cache.d.ts.map +1 -0
  13. package/lib/async-utils/cache.js +116 -0
  14. package/lib/async-utils/cache.js.map +1 -0
  15. package/lib/async-utils/escape.d.ts +2 -0
  16. package/lib/async-utils/escape.d.ts.map +1 -0
  17. package/lib/async-utils/escape.js +5 -0
  18. package/lib/async-utils/escape.js.map +1 -0
  19. package/lib/async-utils/fs.d.ts +3 -0
  20. package/lib/async-utils/fs.d.ts.map +1 -0
  21. package/lib/async-utils/fs.js +28 -0
  22. package/lib/async-utils/fs.js.map +1 -0
  23. package/lib/async-utils/module.d.ts +3 -0
  24. package/lib/async-utils/module.d.ts.map +1 -0
  25. package/lib/async-utils/module.js +7 -0
  26. package/lib/async-utils/module.js.map +1 -0
  27. package/lib/async-utils/operations.d.ts +23 -0
  28. package/lib/async-utils/operations.d.ts.map +1 -0
  29. package/lib/async-utils/operations.js +2 -0
  30. package/lib/async-utils/operations.js.map +1 -0
  31. package/lib/async-utils/order.d.ts +4 -0
  32. package/lib/async-utils/order.d.ts.map +1 -0
  33. package/lib/async-utils/order.js +5 -0
  34. package/lib/async-utils/order.js.map +1 -0
  35. package/lib/async-utils/path.d.ts +2 -0
  36. package/lib/async-utils/path.d.ts.map +1 -0
  37. package/lib/async-utils/path.js +7 -0
  38. package/lib/async-utils/path.js.map +1 -0
  39. package/lib/async-utils/platform.d.ts +2 -0
  40. package/lib/async-utils/platform.d.ts.map +1 -0
  41. package/lib/async-utils/platform.js +4 -0
  42. package/lib/async-utils/platform.js.map +1 -0
  43. package/lib/async-utils/regex.d.ts +3 -0
  44. package/lib/async-utils/regex.d.ts.map +1 -0
  45. package/lib/async-utils/regex.js +32 -0
  46. package/lib/async-utils/regex.js.map +1 -0
  47. package/lib/async-utils/resolvers.d.ts +7 -0
  48. package/lib/async-utils/resolvers.d.ts.map +1 -0
  49. package/lib/async-utils/resolvers.js +64 -0
  50. package/lib/async-utils/resolvers.js.map +1 -0
  51. package/lib/async-utils/segment.d.ts +2 -0
  52. package/lib/async-utils/segment.d.ts.map +1 -0
  53. package/lib/async-utils/segment.js +82 -0
  54. package/lib/async-utils/segment.js.map +1 -0
  55. package/lib/async-utils/worker.d.ts +3 -0
  56. package/lib/async-utils/worker.d.ts.map +1 -0
  57. package/lib/async-utils/worker.js +17 -0
  58. package/lib/async-utils/worker.js.map +1 -0
  59. package/lib/configs/config.d.ts +3521 -0
  60. package/lib/configs/config.d.ts.map +1 -0
  61. package/lib/configs/config.js +98 -0
  62. package/lib/configs/config.js.map +1 -0
  63. package/lib/options/callees/cc.d.ts +30 -0
  64. package/lib/options/callees/cc.d.ts.map +1 -0
  65. package/lib/options/callees/cc.js +25 -0
  66. package/lib/options/callees/cc.js.map +1 -0
  67. package/lib/options/callees/clb.d.ts +35 -0
  68. package/lib/options/callees/clb.d.ts.map +1 -0
  69. package/lib/options/callees/clb.js +39 -0
  70. package/lib/options/callees/clb.js.map +1 -0
  71. package/lib/options/callees/clsx.d.ts +30 -0
  72. package/lib/options/callees/clsx.d.ts.map +1 -0
  73. package/lib/options/callees/clsx.js +25 -0
  74. package/lib/options/callees/clsx.js.map +1 -0
  75. package/lib/options/callees/cn.d.ts +30 -0
  76. package/lib/options/callees/cn.d.ts.map +1 -0
  77. package/lib/options/callees/cn.js +25 -0
  78. package/lib/options/callees/cn.js.map +1 -0
  79. package/lib/options/callees/cnb.d.ts +30 -0
  80. package/lib/options/callees/cnb.d.ts.map +1 -0
  81. package/lib/options/callees/cnb.js +25 -0
  82. package/lib/options/callees/cnb.js.map +1 -0
  83. package/lib/options/callees/ctl.d.ts +17 -0
  84. package/lib/options/callees/ctl.d.ts.map +1 -0
  85. package/lib/options/callees/ctl.js +15 -0
  86. package/lib/options/callees/ctl.js.map +1 -0
  87. package/lib/options/callees/cva.d.ts +40 -0
  88. package/lib/options/callees/cva.d.ts.map +1 -0
  89. package/lib/options/callees/cva.js +37 -0
  90. package/lib/options/callees/cva.js.map +1 -0
  91. package/lib/options/callees/cx.d.ts +30 -0
  92. package/lib/options/callees/cx.d.ts.map +1 -0
  93. package/lib/options/callees/cx.js +25 -0
  94. package/lib/options/callees/cx.js.map +1 -0
  95. package/lib/options/callees/dcnb.d.ts +30 -0
  96. package/lib/options/callees/dcnb.d.ts.map +1 -0
  97. package/lib/options/callees/dcnb.js +25 -0
  98. package/lib/options/callees/dcnb.js.map +1 -0
  99. package/lib/options/callees/objstr.d.ts +24 -0
  100. package/lib/options/callees/objstr.d.ts.map +1 -0
  101. package/lib/options/callees/objstr.js +24 -0
  102. package/lib/options/callees/objstr.js.map +1 -0
  103. package/lib/options/callees/tv.d.ts +64 -0
  104. package/lib/options/callees/tv.d.ts.map +1 -0
  105. package/lib/options/callees/tv.js +70 -0
  106. package/lib/options/callees/tv.js.map +1 -0
  107. package/lib/options/callees/twJoin.d.ts +17 -0
  108. package/lib/options/callees/twJoin.d.ts.map +1 -0
  109. package/lib/options/callees/twJoin.js +15 -0
  110. package/lib/options/callees/twJoin.js.map +1 -0
  111. package/lib/options/callees/twMerge.d.ts +17 -0
  112. package/lib/options/callees/twMerge.d.ts.map +1 -0
  113. package/lib/options/callees/twMerge.js +15 -0
  114. package/lib/options/callees/twMerge.js.map +1 -0
  115. package/lib/options/default-options.d.ts +114 -0
  116. package/lib/options/default-options.d.ts.map +1 -0
  117. package/lib/options/default-options.js +176 -0
  118. package/lib/options/default-options.js.map +1 -0
  119. package/lib/options/descriptions.d.ts +657 -0
  120. package/lib/options/descriptions.d.ts.map +1 -0
  121. package/lib/options/descriptions.js +22 -0
  122. package/lib/options/descriptions.js.map +1 -0
  123. package/lib/options/migrate.d.ts +16 -0
  124. package/lib/options/migrate.d.ts.map +1 -0
  125. package/lib/options/migrate.js +132 -0
  126. package/lib/options/migrate.js.map +1 -0
  127. package/lib/options/schemas/attributes.d.ts +100 -0
  128. package/lib/options/schemas/attributes.d.ts.map +1 -0
  129. package/lib/options/schemas/attributes.js +19 -0
  130. package/lib/options/schemas/attributes.js.map +1 -0
  131. package/lib/options/schemas/callees.d.ts +101 -0
  132. package/lib/options/schemas/callees.d.ts.map +1 -0
  133. package/lib/options/schemas/callees.js +19 -0
  134. package/lib/options/schemas/callees.js.map +1 -0
  135. package/lib/options/schemas/common.d.ts +30 -0
  136. package/lib/options/schemas/common.d.ts.map +1 -0
  137. package/lib/options/schemas/common.js +30 -0
  138. package/lib/options/schemas/common.js.map +1 -0
  139. package/lib/options/schemas/matchers.d.ts +13 -0
  140. package/lib/options/schemas/matchers.d.ts.map +1 -0
  141. package/lib/options/schemas/matchers.js +14 -0
  142. package/lib/options/schemas/matchers.js.map +1 -0
  143. package/lib/options/schemas/selectors.d.ts +1289 -0
  144. package/lib/options/schemas/selectors.d.ts.map +1 -0
  145. package/lib/options/schemas/selectors.js +100 -0
  146. package/lib/options/schemas/selectors.js.map +1 -0
  147. package/lib/options/schemas/tags.d.ts +101 -0
  148. package/lib/options/schemas/tags.d.ts.map +1 -0
  149. package/lib/options/schemas/tags.js +19 -0
  150. package/lib/options/schemas/tags.js.map +1 -0
  151. package/lib/options/schemas/variables.d.ts +100 -0
  152. package/lib/options/schemas/variables.d.ts.map +1 -0
  153. package/lib/options/schemas/variables.js +19 -0
  154. package/lib/options/schemas/variables.js.map +1 -0
  155. package/lib/options/tags/twc.d.ts +36 -0
  156. package/lib/options/tags/twc.d.ts.map +1 -0
  157. package/lib/options/tags/twc.js +26 -0
  158. package/lib/options/tags/twc.js.map +1 -0
  159. package/lib/options/tags/twx.d.ts +36 -0
  160. package/lib/options/tags/twx.d.ts.map +1 -0
  161. package/lib/options/tags/twx.js +26 -0
  162. package/lib/options/tags/twx.js.map +1 -0
  163. package/lib/parsers/angular.d.ts +11 -0
  164. package/lib/parsers/angular.d.ts.map +1 -0
  165. package/lib/parsers/angular.js +736 -0
  166. package/lib/parsers/angular.js.map +1 -0
  167. package/lib/parsers/css.d.ts +5 -0
  168. package/lib/parsers/css.d.ts.map +1 -0
  169. package/lib/parsers/css.js +100 -0
  170. package/lib/parsers/css.js.map +1 -0
  171. package/lib/parsers/es.d.ts +49 -0
  172. package/lib/parsers/es.d.ts.map +1 -0
  173. package/lib/parsers/es.js +924 -0
  174. package/lib/parsers/es.js.map +1 -0
  175. package/lib/parsers/html.d.ts +8 -0
  176. package/lib/parsers/html.d.ts.map +1 -0
  177. package/lib/parsers/html.js +51 -0
  178. package/lib/parsers/html.js.map +1 -0
  179. package/lib/parsers/jsx.d.ts +9 -0
  180. package/lib/parsers/jsx.d.ts.map +1 -0
  181. package/lib/parsers/jsx.js +118 -0
  182. package/lib/parsers/jsx.js.map +1 -0
  183. package/lib/parsers/svelte.d.ts +11 -0
  184. package/lib/parsers/svelte.d.ts.map +1 -0
  185. package/lib/parsers/svelte.js +204 -0
  186. package/lib/parsers/svelte.js.map +1 -0
  187. package/lib/parsers/vue.d.ts +9 -0
  188. package/lib/parsers/vue.d.ts.map +1 -0
  189. package/lib/parsers/vue.js +155 -0
  190. package/lib/parsers/vue.js.map +1 -0
  191. package/lib/rules/enforce-canonical-classes.d.ts +229 -0
  192. package/lib/rules/enforce-canonical-classes.d.ts.map +1 -0
  193. package/lib/rules/enforce-canonical-classes.js +84 -0
  194. package/lib/rules/enforce-canonical-classes.js.map +1 -0
  195. package/lib/rules/enforce-consistent-class-order.d.ts +229 -0
  196. package/lib/rules/enforce-consistent-class-order.d.ts.map +1 -0
  197. package/lib/rules/enforce-consistent-class-order.js +250 -0
  198. package/lib/rules/enforce-consistent-class-order.js.map +1 -0
  199. package/lib/rules/enforce-consistent-important-position.d.ts +225 -0
  200. package/lib/rules/enforce-consistent-important-position.d.ts.map +1 -0
  201. package/lib/rules/enforce-consistent-important-position.js +68 -0
  202. package/lib/rules/enforce-consistent-important-position.js.map +1 -0
  203. package/lib/rules/enforce-consistent-line-wrapping.d.ts +235 -0
  204. package/lib/rules/enforce-consistent-line-wrapping.d.ts.map +1 -0
  205. package/lib/rules/enforce-consistent-line-wrapping.js +537 -0
  206. package/lib/rules/enforce-consistent-line-wrapping.js.map +1 -0
  207. package/lib/rules/enforce-consistent-variable-syntax.d.ts +225 -0
  208. package/lib/rules/enforce-consistent-variable-syntax.d.ts.map +1 -0
  209. package/lib/rules/enforce-consistent-variable-syntax.js +164 -0
  210. package/lib/rules/enforce-consistent-variable-syntax.js.map +1 -0
  211. package/lib/rules/enforce-consistent-variant-order.d.ts +225 -0
  212. package/lib/rules/enforce-consistent-variant-order.d.ts.map +1 -0
  213. package/lib/rules/enforce-consistent-variant-order.js +77 -0
  214. package/lib/rules/enforce-consistent-variant-order.js.map +1 -0
  215. package/lib/rules/enforce-logical-properties.d.ts +227 -0
  216. package/lib/rules/enforce-logical-properties.d.ts.map +1 -0
  217. package/lib/rules/enforce-logical-properties.js +142 -0
  218. package/lib/rules/enforce-logical-properties.js.map +1 -0
  219. package/lib/rules/enforce-shorthand-classes.d.ts +229 -0
  220. package/lib/rules/enforce-shorthand-classes.d.ts.map +1 -0
  221. package/lib/rules/enforce-shorthand-classes.js +217 -0
  222. package/lib/rules/enforce-shorthand-classes.js.map +1 -0
  223. package/lib/rules/no-concatenated-classes.d.ts +225 -0
  224. package/lib/rules/no-concatenated-classes.d.ts.map +1 -0
  225. package/lib/rules/no-concatenated-classes.js +31 -0
  226. package/lib/rules/no-concatenated-classes.js.map +1 -0
  227. package/lib/rules/no-conflicting-classes.d.ts +225 -0
  228. package/lib/rules/no-conflicting-classes.d.ts.map +1 -0
  229. package/lib/rules/no-conflicting-classes.js +60 -0
  230. package/lib/rules/no-conflicting-classes.js.map +1 -0
  231. package/lib/rules/no-deprecated-classes.d.ts +227 -0
  232. package/lib/rules/no-deprecated-classes.d.ts.map +1 -0
  233. package/lib/rules/no-deprecated-classes.js +103 -0
  234. package/lib/rules/no-deprecated-classes.js.map +1 -0
  235. package/lib/rules/no-duplicate-classes.d.ts +225 -0
  236. package/lib/rules/no-duplicate-classes.d.ts.map +1 -0
  237. package/lib/rules/no-duplicate-classes.js +52 -0
  238. package/lib/rules/no-duplicate-classes.js.map +1 -0
  239. package/lib/rules/no-restricted-classes.d.ts +225 -0
  240. package/lib/rules/no-restricted-classes.d.ts.map +1 -0
  241. package/lib/rules/no-restricted-classes.js +57 -0
  242. package/lib/rules/no-restricted-classes.js.map +1 -0
  243. package/lib/rules/no-unknown-classes.d.ts +225 -0
  244. package/lib/rules/no-unknown-classes.d.ts.map +1 -0
  245. package/lib/rules/no-unknown-classes.js +82 -0
  246. package/lib/rules/no-unknown-classes.js.map +1 -0
  247. package/lib/rules/no-unnecessary-whitespace.d.ts +225 -0
  248. package/lib/rules/no-unnecessary-whitespace.d.ts.map +1 -0
  249. package/lib/rules/no-unnecessary-whitespace.js +141 -0
  250. package/lib/rules/no-unnecessary-whitespace.js.map +1 -0
  251. package/lib/tailwindcss/canonical-classes.async.v4.d.ts +3 -0
  252. package/lib/tailwindcss/canonical-classes.async.v4.d.ts.map +1 -0
  253. package/lib/tailwindcss/canonical-classes.async.v4.js +54 -0
  254. package/lib/tailwindcss/canonical-classes.async.v4.js.map +1 -0
  255. package/lib/tailwindcss/canonical-classes.d.ts +21 -0
  256. package/lib/tailwindcss/canonical-classes.d.ts.map +1 -0
  257. package/lib/tailwindcss/canonical-classes.js +16 -0
  258. package/lib/tailwindcss/canonical-classes.js.map +1 -0
  259. package/lib/tailwindcss/class-order.async.v3.d.ts +3 -0
  260. package/lib/tailwindcss/class-order.async.v3.d.ts.map +1 -0
  261. package/lib/tailwindcss/class-order.async.v3.js +4 -0
  262. package/lib/tailwindcss/class-order.async.v3.js.map +1 -0
  263. package/lib/tailwindcss/class-order.async.v4.d.ts +3 -0
  264. package/lib/tailwindcss/class-order.async.v4.d.ts.map +1 -0
  265. package/lib/tailwindcss/class-order.async.v4.js +4 -0
  266. package/lib/tailwindcss/class-order.async.v4.js.map +1 -0
  267. package/lib/tailwindcss/class-order.d.ts +11 -0
  268. package/lib/tailwindcss/class-order.d.ts.map +1 -0
  269. package/lib/tailwindcss/class-order.js +16 -0
  270. package/lib/tailwindcss/class-order.js.map +1 -0
  271. package/lib/tailwindcss/conflicting-classes.async.v4.d.ts +35 -0
  272. package/lib/tailwindcss/conflicting-classes.async.v4.d.ts.map +1 -0
  273. package/lib/tailwindcss/conflicting-classes.async.v4.js +82 -0
  274. package/lib/tailwindcss/conflicting-classes.async.v4.js.map +1 -0
  275. package/lib/tailwindcss/conflicting-classes.d.ts +19 -0
  276. package/lib/tailwindcss/conflicting-classes.d.ts.map +1 -0
  277. package/lib/tailwindcss/conflicting-classes.js +17 -0
  278. package/lib/tailwindcss/conflicting-classes.js.map +1 -0
  279. package/lib/tailwindcss/context.async.v3.d.ts +3 -0
  280. package/lib/tailwindcss/context.async.v3.d.ts.map +1 -0
  281. package/lib/tailwindcss/context.async.v3.js +13 -0
  282. package/lib/tailwindcss/context.async.v3.js.map +1 -0
  283. package/lib/tailwindcss/context.async.v4.d.ts +3 -0
  284. package/lib/tailwindcss/context.async.v4.d.ts.map +1 -0
  285. package/lib/tailwindcss/context.async.v4.js +82 -0
  286. package/lib/tailwindcss/context.async.v4.js.map +1 -0
  287. package/lib/tailwindcss/custom-component-classes.async.v3.d.ts +4 -0
  288. package/lib/tailwindcss/custom-component-classes.async.v3.d.ts.map +1 -0
  289. package/lib/tailwindcss/custom-component-classes.async.v3.js +4 -0
  290. package/lib/tailwindcss/custom-component-classes.async.v3.js.map +1 -0
  291. package/lib/tailwindcss/custom-component-classes.async.v4.d.ts +4 -0
  292. package/lib/tailwindcss/custom-component-classes.async.v4.d.ts.map +1 -0
  293. package/lib/tailwindcss/custom-component-classes.async.v4.js +101 -0
  294. package/lib/tailwindcss/custom-component-classes.async.v4.js.map +1 -0
  295. package/lib/tailwindcss/custom-component-classes.d.ts +11 -0
  296. package/lib/tailwindcss/custom-component-classes.d.ts.map +1 -0
  297. package/lib/tailwindcss/custom-component-classes.js +16 -0
  298. package/lib/tailwindcss/custom-component-classes.js.map +1 -0
  299. package/lib/tailwindcss/dissect-classes.async.v3.d.ts +4 -0
  300. package/lib/tailwindcss/dissect-classes.async.v3.d.ts.map +1 -0
  301. package/lib/tailwindcss/dissect-classes.async.v3.js +32 -0
  302. package/lib/tailwindcss/dissect-classes.async.v3.js.map +1 -0
  303. package/lib/tailwindcss/dissect-classes.async.v4.d.ts +3 -0
  304. package/lib/tailwindcss/dissect-classes.async.v4.d.ts.map +1 -0
  305. package/lib/tailwindcss/dissect-classes.async.v4.js +39 -0
  306. package/lib/tailwindcss/dissect-classes.async.v4.js.map +1 -0
  307. package/lib/tailwindcss/dissect-classes.d.ts +23 -0
  308. package/lib/tailwindcss/dissect-classes.d.ts.map +1 -0
  309. package/lib/tailwindcss/dissect-classes.js +16 -0
  310. package/lib/tailwindcss/dissect-classes.js.map +1 -0
  311. package/lib/tailwindcss/prefix.async.v3.d.ts +4 -0
  312. package/lib/tailwindcss/prefix.async.v3.d.ts.map +1 -0
  313. package/lib/tailwindcss/prefix.async.v3.js +7 -0
  314. package/lib/tailwindcss/prefix.async.v3.js.map +1 -0
  315. package/lib/tailwindcss/prefix.async.v4.d.ts +4 -0
  316. package/lib/tailwindcss/prefix.async.v4.d.ts.map +1 -0
  317. package/lib/tailwindcss/prefix.async.v4.js +7 -0
  318. package/lib/tailwindcss/prefix.async.v4.js.map +1 -0
  319. package/lib/tailwindcss/prefix.d.ts +13 -0
  320. package/lib/tailwindcss/prefix.d.ts.map +1 -0
  321. package/lib/tailwindcss/prefix.js +15 -0
  322. package/lib/tailwindcss/prefix.js.map +1 -0
  323. package/lib/tailwindcss/tailwind.async.worker.v3.d.ts +2 -0
  324. package/lib/tailwindcss/tailwind.async.worker.v3.d.ts.map +1 -0
  325. package/lib/tailwindcss/tailwind.async.worker.v3.js +57 -0
  326. package/lib/tailwindcss/tailwind.async.worker.v3.js.map +1 -0
  327. package/lib/tailwindcss/tailwind.async.worker.v4.d.ts +2 -0
  328. package/lib/tailwindcss/tailwind.async.worker.v4.d.ts.map +1 -0
  329. package/lib/tailwindcss/tailwind.async.worker.v4.js +56 -0
  330. package/lib/tailwindcss/tailwind.async.worker.v4.js.map +1 -0
  331. package/lib/tailwindcss/unknown-classes.async.v3.d.ts +4 -0
  332. package/lib/tailwindcss/unknown-classes.async.v3.d.ts.map +1 -0
  333. package/lib/tailwindcss/unknown-classes.async.v3.js +10 -0
  334. package/lib/tailwindcss/unknown-classes.async.v3.js.map +1 -0
  335. package/lib/tailwindcss/unknown-classes.async.v4.d.ts +3 -0
  336. package/lib/tailwindcss/unknown-classes.async.v4.d.ts.map +1 -0
  337. package/lib/tailwindcss/unknown-classes.async.v4.js +5 -0
  338. package/lib/tailwindcss/unknown-classes.async.v4.js.map +1 -0
  339. package/lib/tailwindcss/unknown-classes.d.ts +11 -0
  340. package/lib/tailwindcss/unknown-classes.d.ts.map +1 -0
  341. package/lib/tailwindcss/unknown-classes.js +21 -0
  342. package/lib/tailwindcss/unknown-classes.js.map +1 -0
  343. package/lib/tailwindcss/variant-order.async.v3.d.ts +3 -0
  344. package/lib/tailwindcss/variant-order.async.v3.d.ts.map +1 -0
  345. package/lib/tailwindcss/variant-order.async.v3.js +4 -0
  346. package/lib/tailwindcss/variant-order.async.v3.js.map +1 -0
  347. package/lib/tailwindcss/variant-order.async.v4.d.ts +3 -0
  348. package/lib/tailwindcss/variant-order.async.v4.d.ts.map +1 -0
  349. package/lib/tailwindcss/variant-order.async.v4.js +34 -0
  350. package/lib/tailwindcss/variant-order.async.v4.js.map +1 -0
  351. package/lib/tailwindcss/variant-order.d.ts +11 -0
  352. package/lib/tailwindcss/variant-order.d.ts.map +1 -0
  353. package/lib/tailwindcss/variant-order.js +16 -0
  354. package/lib/tailwindcss/variant-order.js.map +1 -0
  355. package/lib/types/ast.d.ts +79 -0
  356. package/lib/types/ast.d.ts.map +1 -0
  357. package/lib/types/ast.js +2 -0
  358. package/lib/types/ast.js.map +1 -0
  359. package/lib/types/async.d.ts +7 -0
  360. package/lib/types/async.d.ts.map +1 -0
  361. package/lib/types/async.js +2 -0
  362. package/lib/types/async.js.map +1 -0
  363. package/lib/types/estree.d.ts +7 -0
  364. package/lib/types/estree.d.ts.map +1 -0
  365. package/lib/types/estree.js +2 -0
  366. package/lib/types/estree.js.map +1 -0
  367. package/lib/types/rule.d.ts +163 -0
  368. package/lib/types/rule.d.ts.map +1 -0
  369. package/lib/types/rule.js +24 -0
  370. package/lib/types/rule.js.map +1 -0
  371. package/lib/utils/ast.d.ts +4 -0
  372. package/lib/utils/ast.d.ts.map +1 -0
  373. package/lib/utils/ast.js +9 -0
  374. package/lib/utils/ast.js.map +1 -0
  375. package/lib/utils/class.d.ts +12 -0
  376. package/lib/utils/class.d.ts.map +1 -0
  377. package/lib/utils/class.js +19 -0
  378. package/lib/utils/class.js.map +1 -0
  379. package/lib/utils/context.d.ts +20 -0
  380. package/lib/utils/context.d.ts.map +1 -0
  381. package/lib/utils/context.js +91 -0
  382. package/lib/utils/context.js.map +1 -0
  383. package/lib/utils/lint.d.ts +17 -0
  384. package/lib/utils/lint.d.ts.map +1 -0
  385. package/lib/utils/lint.js +40 -0
  386. package/lib/utils/lint.js.map +1 -0
  387. package/lib/utils/matchers.d.ts +24 -0
  388. package/lib/utils/matchers.d.ts.map +1 -0
  389. package/lib/utils/matchers.js +154 -0
  390. package/lib/utils/matchers.js.map +1 -0
  391. package/lib/utils/quotes.d.ts +3 -0
  392. package/lib/utils/quotes.d.ts.map +1 -0
  393. package/lib/utils/quotes.js +9 -0
  394. package/lib/utils/quotes.js.map +1 -0
  395. package/lib/utils/rule.d.ts +31 -0
  396. package/lib/utils/rule.d.ts.map +1 -0
  397. package/lib/utils/rule.js +349 -0
  398. package/lib/utils/rule.js.map +1 -0
  399. package/lib/utils/selectors.d.ts +3 -0
  400. package/lib/utils/selectors.d.ts.map +1 -0
  401. package/lib/utils/selectors.js +4 -0
  402. package/lib/utils/selectors.js.map +1 -0
  403. package/lib/utils/utils.d.ts +49 -0
  404. package/lib/utils/utils.d.ts.map +1 -0
  405. package/lib/utils/utils.js +203 -0
  406. package/lib/utils/utils.js.map +1 -0
  407. package/lib/utils/valibot.d.ts +4 -0
  408. package/lib/utils/valibot.d.ts.map +1 -0
  409. package/lib/utils/valibot.js +12 -0
  410. package/lib/utils/valibot.js.map +1 -0
  411. package/lib/utils/version.d.ts +7 -0
  412. package/lib/utils/version.d.ts.map +1 -0
  413. package/lib/utils/version.js +6 -0
  414. package/lib/utils/version.js.map +1 -0
  415. package/lib/utils/visitedNodes.d.ts +4 -0
  416. package/lib/utils/visitedNodes.d.ts.map +1 -0
  417. package/lib/utils/visitedNodes.js +11 -0
  418. package/lib/utils/visitedNodes.js.map +1 -0
  419. package/lib/utils/warn.d.ts +2 -0
  420. package/lib/utils/warn.d.ts.map +1 -0
  421. package/lib/utils/warn.js +8 -0
  422. package/lib/utils/warn.js.map +1 -0
  423. package/package.json +163 -4
@@ -0,0 +1,537 @@
1
+ import { boolean, description, literal, minValue, number, optional, pipe, strictObject, union } from "valibot";
2
+ import { createGetDissectedClasses, getDissectedClasses } from "../tailwindcss/dissect-classes.js";
3
+ import { async } from "../utils/context.js";
4
+ import { escapeNestedQuotes } from "../utils/quotes.js";
5
+ import { createRule } from "../utils/rule.js";
6
+ import { display, splitClasses } from "../utils/utils.js";
7
+ export const enforceConsistentLineWrapping = createRule({
8
+ autofix: true,
9
+ category: "stylistic",
10
+ description: "Enforce consistent line wrapping for tailwind classes.",
11
+ docs: "https://github.com/schoero/eslint-plugin-better-tailwindcss/blob/main/docs/rules/enforce-consistent-line-wrapping.md",
12
+ name: "enforce-consistent-line-wrapping",
13
+ recommended: true,
14
+ messages: {
15
+ missing: "Incorrect line wrapping. Expected\n\n{{ notReadable }}\n\nto be\n\n{{ readable }}",
16
+ unnecessary: "Unnecessary line wrapping. Expected\n\n{{ notReadable }}\n\nto be\n\n{{ readable }}"
17
+ },
18
+ schema: strictObject({
19
+ classesPerLine: optional(pipe(number(), minValue(0), description("The maximum amount of classes per line.")), 0),
20
+ group: optional(pipe(union([
21
+ literal("newLine"),
22
+ literal("emptyLine"),
23
+ literal("never")
24
+ ]), description("Defines how different groups of classes should be separated.")), "newLine"),
25
+ indent: optional(pipe(union([
26
+ literal("tab"),
27
+ pipe(number(), minValue(0))
28
+ ]), description("Determines how the code should be indented.")), 2),
29
+ lineBreakStyle: optional(pipe(union([literal("unix"),
30
+ literal("windows")]), description("The line break style.")), "unix"),
31
+ preferSingleLine: optional(pipe(boolean(), description("Prefer a single line for different variants.")), false),
32
+ printWidth: optional(pipe(number(), minValue(0), description("The maximum line length before it gets wrapped.")), 80),
33
+ strictness: optional(pipe(union([
34
+ literal("strict"),
35
+ literal("loose")
36
+ ]), description("Enable this option if prettier is used in your project.")), "strict"),
37
+ tabWidth: optional(pipe(number(), minValue(1), description("The visual width of a tab character when evaluating printWidth.")), 1),
38
+ vueConvertToBinding: optional(pipe(boolean(), description("Convert static class attributes to bound attributes with template literals when wrapping lines. Currently only supported by the vue parser and useful to avoid conflicts with prettier.")), false)
39
+ }),
40
+ initialize: ctx => {
41
+ createGetDissectedClasses(ctx);
42
+ },
43
+ lintLiterals: (ctx, literals) => lintLiterals(ctx, literals)
44
+ });
45
+ function lintLiterals(ctx, literals) {
46
+ const { classesPerLine, group: groupSeparator, messageStyle, preferSingleLine, printWidth, strictness, vueConvertToBinding } = ctx.options;
47
+ const asyncCtx = async(ctx);
48
+ for (const literal of literals) {
49
+ if (!literal.supportsMultiline) {
50
+ continue;
51
+ }
52
+ // convert a static attribute to a bound attribute if the option is enabled and the parser provided a binding
53
+ const binding = vueConvertToBinding ? literal.binding : undefined;
54
+ const multilineQuotes = binding?.multilineQuotes ?? literal.multilineQuotes;
55
+ const lineStartPosition = getLineStartPosition(ctx, literal);
56
+ const literalStartPosition = getLiteralStartPosition(ctx, literal);
57
+ const prettierStartPosition = getPrettierStartPosition(ctx, literal);
58
+ const multilineClasses = new Lines(ctx, lineStartPosition);
59
+ const singlelineClasses = new Lines(ctx, lineStartPosition);
60
+ const classes = splitClasses(literal.content);
61
+ const { dissectedClasses, warnings: dissectWarnings } = getDissectedClasses(asyncCtx, classes);
62
+ const warnings = [...dissectWarnings];
63
+ const invalidLineBreaks = isLineBreakStyleLikelyMisconfigured(ctx, literal.raw);
64
+ const invalidIndentations = isIndentationLikelyMisconfigured(ctx, literal.raw);
65
+ if (invalidLineBreaks) {
66
+ warnings.push({
67
+ option: "lineBreakStyle",
68
+ title: "Inconsistent line endings detected",
69
+ url: `${ctx.docs}#linebreakstyle`
70
+ });
71
+ }
72
+ if (invalidIndentations) {
73
+ warnings.push({
74
+ option: "indent",
75
+ title: "Inconsistent indentation detected",
76
+ url: `${ctx.docs}#indent`
77
+ });
78
+ }
79
+ const groupedClasses = groupClasses(classes, dissectedClasses);
80
+ if (literal.openingQuote) {
81
+ if (multilineQuotes?.includes("`")) {
82
+ multilineClasses.line.addMeta({ openingQuote: "`" });
83
+ }
84
+ else {
85
+ multilineClasses.line.addMeta({ openingQuote: literal.openingQuote });
86
+ }
87
+ }
88
+ if (literal.openingQuote && literal.closingQuote) {
89
+ singlelineClasses.line.addMeta({ closingQuote: literal.closingQuote, openingQuote: literal.openingQuote });
90
+ }
91
+ leadingTemplateLiteralNewLine: if (literal.isInterpolated && literal.closingBraces) {
92
+ multilineClasses.line.addMeta({ closingBraces: literal.closingBraces });
93
+ // skip newline for sticky classes
94
+ if (literal.leadingWhitespace === "" && groupedClasses) {
95
+ break leadingTemplateLiteralNewLine;
96
+ }
97
+ // skip if no classes are present
98
+ if (!groupedClasses) {
99
+ break leadingTemplateLiteralNewLine;
100
+ }
101
+ if (groupSeparator === "emptyLine") {
102
+ multilineClasses.addLine();
103
+ }
104
+ if (groupSeparator === "emptyLine" ||
105
+ groupSeparator === "newLine" ||
106
+ groupSeparator === "never") {
107
+ multilineClasses.addLine();
108
+ multilineClasses.line.indent();
109
+ }
110
+ }
111
+ if (groupedClasses) {
112
+ for (let g = 0; g < groupedClasses.length; g++) {
113
+ const group = groupedClasses.at(g);
114
+ const isFirstGroup = g === 0;
115
+ if (group.classCount === 0) {
116
+ continue;
117
+ }
118
+ if (isFirstGroup && (literal.isInterpolated && !literal.closingBraces ||
119
+ !literal.isInterpolated)) {
120
+ multilineClasses.addLine();
121
+ multilineClasses.line.indent();
122
+ }
123
+ if (!isFirstGroup) {
124
+ if (groupSeparator === "emptyLine") {
125
+ multilineClasses.addLine();
126
+ }
127
+ if (groupSeparator === "emptyLine" || groupSeparator === "newLine") {
128
+ multilineClasses.addLine();
129
+ multilineClasses.line.indent();
130
+ }
131
+ }
132
+ for (let i = 0; i < group.classCount; i++) {
133
+ const isFirstClass = i === 0;
134
+ const isLastClass = i === group.classCount - 1;
135
+ const className = group.at(i);
136
+ const simulatedLine = multilineClasses.line
137
+ .clone()
138
+ .addClass(className);
139
+ // wrap after the first sticky class
140
+ if (isFirstClass &&
141
+ literal.leadingWhitespace === "" &&
142
+ literal.isInterpolated &&
143
+ literal.closingBraces) {
144
+ multilineClasses.line.addClass(className);
145
+ // don't add a new line if the first class is also the last
146
+ if (isLastClass) {
147
+ break;
148
+ }
149
+ if (groupSeparator === "emptyLine") {
150
+ multilineClasses.addLine();
151
+ }
152
+ if (groupSeparator === "emptyLine" || groupSeparator === "newLine") {
153
+ multilineClasses.addLine();
154
+ multilineClasses.line.indent();
155
+ }
156
+ continue;
157
+ }
158
+ // wrap before the last sticky class
159
+ if (isLastClass &&
160
+ literal.trailingWhitespace === "" &&
161
+ literal.isInterpolated &&
162
+ literal.openingBraces) {
163
+ // skip wrapping for the first class of a group
164
+ if (isFirstClass) {
165
+ multilineClasses.line.addClass(className);
166
+ continue;
167
+ }
168
+ if (groupSeparator === "emptyLine") {
169
+ multilineClasses.addLine();
170
+ }
171
+ if (groupSeparator === "emptyLine" || groupSeparator === "newLine") {
172
+ multilineClasses.addLine();
173
+ multilineClasses.line.indent();
174
+ }
175
+ multilineClasses.line.addClass(className);
176
+ continue;
177
+ }
178
+ // wrap if the length exceeds the limits
179
+ if (simulatedLine.length > printWidth && printWidth !== 0 ||
180
+ multilineClasses.line.classCount >= classesPerLine && classesPerLine !== 0) {
181
+ // but only if it is not the first class of a group or classes are not grouped
182
+ if (!isFirstClass || groupSeparator === "never") {
183
+ multilineClasses.addLine();
184
+ multilineClasses.line.indent();
185
+ }
186
+ }
187
+ multilineClasses.line.addClass(className);
188
+ singlelineClasses.line.addClass(className);
189
+ }
190
+ }
191
+ }
192
+ trailingTemplateLiteralNewLine: if (literal.isInterpolated && literal.openingBraces) {
193
+ // skip newline for sticky classes
194
+ if (literal.trailingWhitespace === "" && groupedClasses) {
195
+ multilineClasses.line.addMeta({
196
+ openingBraces: literal.openingBraces
197
+ });
198
+ break trailingTemplateLiteralNewLine;
199
+ }
200
+ if (groupSeparator === "emptyLine" && groupedClasses) {
201
+ multilineClasses.addLine();
202
+ }
203
+ if (groupSeparator === "emptyLine" ||
204
+ groupSeparator === "newLine" ||
205
+ groupSeparator === "never") {
206
+ multilineClasses.addLine();
207
+ multilineClasses.line.indent();
208
+ }
209
+ multilineClasses.line.addMeta({
210
+ openingBraces: literal.openingBraces
211
+ });
212
+ }
213
+ if (literal.closingQuote || literal.trailingSemicolon) {
214
+ multilineClasses.addLine();
215
+ multilineClasses.line.indent(0 - getIndentationWidth(ctx));
216
+ if (multilineQuotes?.includes("`")) {
217
+ multilineClasses.line.addMeta({ closingQuote: "`" });
218
+ }
219
+ else {
220
+ multilineClasses.line.addMeta({ closingQuote: literal.closingQuote });
221
+ }
222
+ }
223
+ // collapse lines if there is no reason for line wrapping or if preferSingleLine is enabled
224
+ collapse: {
225
+ // disallow collapsing if the literal contains variants, except preferSingleLine is enabled
226
+ if (groupedClasses?.length !== 1 && !preferSingleLine) {
227
+ break collapse;
228
+ }
229
+ // disallow collapsing for interpolated literals
230
+ if (literal.isInterpolated && (literal.openingBraces || literal.closingBraces)) {
231
+ break collapse;
232
+ }
233
+ // disallow collapsing if the original literal was a single line (keeps original whitespace)
234
+ if (!literal.content.includes(getLineBreaks(ctx))) {
235
+ break collapse;
236
+ }
237
+ // disallow collapsing if the single line contains more classes than the classesPerLine
238
+ if (singlelineClasses.line.classCount > classesPerLine && classesPerLine !== 0) {
239
+ break collapse;
240
+ }
241
+ // disallow collapsing if the single line including the element and all previous characters is longer than the printWidth
242
+ if (literalStartPosition + singlelineClasses.line.length > printWidth && printWidth !== 0) {
243
+ break collapse;
244
+ }
245
+ // add leading space for apply collapse
246
+ if (literal.leadingApply && !literal.leadingApply.endsWith(" ")) {
247
+ singlelineClasses.line.addMeta({ leadingWhitespace: " " });
248
+ }
249
+ const fixedClasses = singlelineClasses.line.toString(false);
250
+ if (literal.raw === fixedClasses) {
251
+ continue;
252
+ }
253
+ ctx.report({
254
+ data: {
255
+ notReadable: display(messageStyle, literal.raw),
256
+ readable: display(messageStyle, fixedClasses)
257
+ },
258
+ fix: fixedClasses,
259
+ id: "unnecessary",
260
+ range: literal.range,
261
+ warnings
262
+ });
263
+ return;
264
+ }
265
+ // skip if class string was empty
266
+ if (multilineClasses.length === 2) {
267
+ if (!literal.openingBraces && !literal.closingBraces && literal.content.trim() === "") {
268
+ continue;
269
+ }
270
+ }
271
+ // skip line wrapping if preferSingleLine is enabled and the single line does not exceed the printWidth or classesPerLine
272
+ if (preferSingleLine &&
273
+ (literalStartPosition + singlelineClasses.line.length <= printWidth && printWidth !== 0 ||
274
+ singlelineClasses.line.classCount <= classesPerLine && classesPerLine !== 0) ||
275
+ printWidth === 0 && classesPerLine === 0) {
276
+ continue;
277
+ }
278
+ // force skip if prettier would wrap the attribute to a new line and then the single line would fit
279
+ if (strictness === "loose" &&
280
+ literalStartPosition + singlelineClasses.line.length > printWidth && printWidth !== 0 &&
281
+ prettierStartPosition + singlelineClasses.line.length <= printWidth) {
282
+ continue;
283
+ }
284
+ // skip line wrapping if it is not necessary
285
+ skip: {
286
+ // disallow skipping if class string contains multiple groups
287
+ if (groupedClasses && groupedClasses.length > 1) {
288
+ break skip;
289
+ }
290
+ // disallow skipping if the original literal was longer than the printWidth
291
+ if (literalStartPosition + singlelineClasses.line.length > printWidth && printWidth !== 0 ||
292
+ singlelineClasses.line.classCount > classesPerLine && classesPerLine !== 0) {
293
+ break skip;
294
+ }
295
+ // disallow skipping for interpolated literals
296
+ if (literal.isInterpolated && (literal.openingBraces || literal.closingBraces)) {
297
+ break skip;
298
+ }
299
+ const openingQuoteLength = literal.openingQuote?.length ?? 0;
300
+ const closingBracesLength = literal.closingBraces?.length ?? 0;
301
+ const firstLineLength = multilineClasses
302
+ .at(1)
303
+ .toString()
304
+ .trim()
305
+ .length +
306
+ openingQuoteLength +
307
+ closingBracesLength;
308
+ // disallow skipping if the first line including the element and all previous characters is longer than the printWidth
309
+ if (literalStartPosition + firstLineLength > printWidth && printWidth !== 0) {
310
+ break skip;
311
+ }
312
+ // disallow skipping if the first line contains more classes than the classesPerLine
313
+ if (multilineClasses.at(1).classCount > classesPerLine && classesPerLine !== 0) {
314
+ break skip;
315
+ }
316
+ continue;
317
+ }
318
+ const fixedClasses = multilineClasses.toString();
319
+ if (literal.raw === fixedClasses) {
320
+ continue;
321
+ }
322
+ // convert a static attribute to a bound attribute with a template literal, or wrap in place
323
+ const fix = binding
324
+ ? `${binding.opening}${fixedClasses}${binding.closing}`
325
+ : literal.surroundingBraces
326
+ ? `{${fixedClasses}}`
327
+ : fixedClasses;
328
+ ctx.report({
329
+ data: {
330
+ notReadable: display(messageStyle, literal.raw),
331
+ readable: display(messageStyle, fix)
332
+ },
333
+ fix,
334
+ id: "missing",
335
+ range: binding?.range ?? literal.range,
336
+ warnings
337
+ });
338
+ }
339
+ }
340
+ function getLineStartIndentation(ctx, literal) {
341
+ return literal.indentation.tabs * ctx.options.tabWidth + literal.indentation.spaces;
342
+ }
343
+ function getIndentationWidth(ctx) {
344
+ const { indent, tabWidth } = ctx.options;
345
+ return indent === "tab" ? tabWidth : indent ?? 0;
346
+ }
347
+ function getLineStartPosition(ctx, literal) {
348
+ return getLineStartIndentation(ctx, literal) + getIndentationWidth(ctx);
349
+ }
350
+ function getLiteralStartPosition(ctx, literal) {
351
+ return getLineStartIndentation(ctx, literal) + literal.loc.start.column - literal.indentation.tabs - literal.indentation.spaces;
352
+ }
353
+ function getPrettierStartPosition(ctx, literal) {
354
+ return getLineStartPosition(ctx, literal) + (literal.attribute ? literal.attribute.length + 1 : 0);
355
+ }
356
+ class Lines {
357
+ constructor(ctx, indentation) {
358
+ this.lines = [];
359
+ this.indentation = 0;
360
+ this.ctx = ctx;
361
+ this.indentation = indentation;
362
+ this.addLine();
363
+ }
364
+ at(index) {
365
+ return index >= 0
366
+ ? this.lines[index]
367
+ : this.lines[this.lines.length + index];
368
+ }
369
+ get line() {
370
+ return this.currentLine;
371
+ }
372
+ get length() {
373
+ return this.lines.length;
374
+ }
375
+ addLine() {
376
+ const line = new Line(this.ctx, this.indentation);
377
+ this.lines.push(line);
378
+ this.currentLine = line;
379
+ return this;
380
+ }
381
+ toString() {
382
+ const lineBreaks = getLineBreaks(this.ctx);
383
+ return this.lines.map(line => line.toString()).join(lineBreaks);
384
+ }
385
+ }
386
+ class Line {
387
+ constructor(ctx, indentation) {
388
+ this.classes = [];
389
+ this.meta = {};
390
+ this.indentation = 0;
391
+ this.ctx = ctx;
392
+ this.indentation = indentation;
393
+ }
394
+ indent(amount = 0) {
395
+ const { indent } = this.ctx.options;
396
+ if (indent === "tab") {
397
+ const tabCount = Math.floor((this.indentation + amount) / this.ctx.options.tabWidth);
398
+ const remainder = (this.indentation + amount) % this.ctx.options.tabWidth;
399
+ this.meta.indentation = "\t".repeat(tabCount) + " ".repeat(remainder);
400
+ }
401
+ else {
402
+ const spacesCount = this.indentation + amount;
403
+ this.meta.indentation = " ".repeat(spacesCount);
404
+ }
405
+ return this;
406
+ }
407
+ get length() {
408
+ const line = this.toString();
409
+ const { tabWidth } = this.ctx.options;
410
+ if (tabWidth <= 1 || !line.includes("\t")) {
411
+ return line.length;
412
+ }
413
+ let width = 0;
414
+ for (let i = 0; i < line.length; i++) {
415
+ width += line[i] === "\t"
416
+ ? tabWidth
417
+ : 1;
418
+ }
419
+ return width;
420
+ }
421
+ get classCount() {
422
+ return this.classes.length;
423
+ }
424
+ get printWidth() {
425
+ return this.toString().length;
426
+ }
427
+ addMeta(meta) {
428
+ this.meta = { ...this.meta, ...meta };
429
+ return this;
430
+ }
431
+ addClass(className) {
432
+ this.classes.push(className);
433
+ return this;
434
+ }
435
+ clone() {
436
+ const line = new Line(this.ctx, this.indentation);
437
+ line.classes = [...this.classes];
438
+ line.meta = { ...this.meta };
439
+ return line;
440
+ }
441
+ toString(indent = true) {
442
+ return this.join([
443
+ indent ? this.meta.indentation : "",
444
+ this.meta.openingQuote,
445
+ this.meta.closingBraces,
446
+ this.meta.leadingWhitespace ?? "",
447
+ escapeNestedQuotes(this.join(this.classes), this.meta.openingQuote ?? this.meta.closingQuote ?? "`"),
448
+ this.meta.trailingWhitespace ?? "",
449
+ this.meta.openingBraces,
450
+ this.meta.closingQuote
451
+ ], "");
452
+ }
453
+ join(content, separator = " ") {
454
+ return content
455
+ .filter(content => content !== undefined)
456
+ .join(separator);
457
+ }
458
+ }
459
+ function groupClasses(classes, dissectedClasses) {
460
+ if (classes.length === 0) {
461
+ return;
462
+ }
463
+ const groups = new Groups();
464
+ for (const className of classes) {
465
+ const isFirstClass = classes.indexOf(className) === 0;
466
+ const isFirstGroup = groups.length === 1;
467
+ const lastGroup = groups.at(-1);
468
+ const lastClassName = lastGroup?.at(-1);
469
+ if (lastClassName) {
470
+ const lastDissectedClass = dissectedClasses[lastClassName];
471
+ const currentDissectedClass = dissectedClasses[className];
472
+ // parse variants manually for custom component classes
473
+ const lastVariant = lastDissectedClass.variants?.join() ?? lastClassName.match(/^(.*):/)?.[1] ?? "";
474
+ const variant = currentDissectedClass.variants?.join() ?? className.match(/^(.*):/)?.[1] ?? "";
475
+ if (lastVariant !== variant && !(isFirstClass && isFirstGroup)) {
476
+ groups.addGroup();
477
+ }
478
+ }
479
+ groups.group.addClass(className);
480
+ }
481
+ return groups;
482
+ }
483
+ class Groups {
484
+ constructor() {
485
+ this.groups = [];
486
+ this.addGroup();
487
+ }
488
+ get group() {
489
+ return this.currentGroup;
490
+ }
491
+ at(index) {
492
+ return this.groups.at(index);
493
+ }
494
+ get length() {
495
+ return this.groups.length;
496
+ }
497
+ addGroup() {
498
+ const group = new Group();
499
+ this.currentGroup = group;
500
+ this.groups.push(this.currentGroup);
501
+ return this;
502
+ }
503
+ }
504
+ class Group {
505
+ constructor() {
506
+ this.classes = [];
507
+ }
508
+ get classCount() {
509
+ return this.classes.length;
510
+ }
511
+ at(index) {
512
+ return this.classes.at(index);
513
+ }
514
+ addClass(className) {
515
+ this.classes.push(className);
516
+ return this;
517
+ }
518
+ }
519
+ function getLineBreaks(ctx) {
520
+ const { lineBreakStyle } = ctx.options;
521
+ return lineBreakStyle === "unix" ? "\n" : "\r\n";
522
+ }
523
+ function isLineBreakStyleLikelyMisconfigured(ctx, original) {
524
+ const { lineBreakStyle } = ctx.options;
525
+ const hasWindowsLineBreaks = original.includes("\r\n");
526
+ const hasUnixLineBreaks = /(^|[^\r])\n/.test(original);
527
+ return (hasWindowsLineBreaks && lineBreakStyle === "unix" ||
528
+ hasUnixLineBreaks && lineBreakStyle === "windows");
529
+ }
530
+ function isIndentationLikelyMisconfigured(ctx, original) {
531
+ const { indent } = ctx.options;
532
+ const hasSpaceIndentation = /\r?\n +/.test(original);
533
+ const hasTabIndentation = /\r?\n\t+/.test(original);
534
+ return (hasSpaceIndentation && indent === "tab" ||
535
+ hasTabIndentation && typeof indent === "number");
536
+ }
537
+ //# sourceMappingURL=enforce-consistent-line-wrapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enforce-consistent-line-wrapping.js","sourceRoot":"","sources":["../../src/rules/enforce-consistent-line-wrapping.ts"],"names":[],"mappings":"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"}