@jesscss/core 2.0.0-alpha.5 → 2.0.0-alpha.6

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 (637) hide show
  1. package/lib/index.cjs +20159 -0
  2. package/lib/index.d.cts +5993 -0
  3. package/lib/index.d.cts.map +1 -0
  4. package/lib/index.d.ts +5992 -21
  5. package/lib/index.d.ts.map +1 -1
  6. package/lib/index.js +19926 -22
  7. package/lib/index.js.map +1 -1
  8. package/package.json +15 -14
  9. package/src/__tests__/define-function-record.test.ts +58 -0
  10. package/src/__tests__/define-function-simple.test.ts +55 -0
  11. package/src/__tests__/define-function-split-sequence.test.ts +547 -0
  12. package/src/__tests__/define-function-type-parity.test.ts +9 -0
  13. package/src/__tests__/define-function.test.ts +763 -0
  14. package/src/__tests__/num-operations.test.ts +91 -0
  15. package/src/__tests__/safe-parse.test.ts +374 -0
  16. package/src/context.ts +896 -0
  17. package/src/conversions.ts +282 -0
  18. package/src/debug-log.ts +29 -0
  19. package/src/define-function.ts +1006 -0
  20. package/src/deprecation.ts +67 -0
  21. package/src/globals.d.ts +26 -0
  22. package/src/index.ts +31 -0
  23. package/src/jess-error.ts +773 -0
  24. package/src/logger/deprecation-processing.ts +109 -0
  25. package/src/logger.ts +31 -0
  26. package/src/plugin.ts +292 -0
  27. package/src/tree/LOOKUP_CHAINS.md +35 -0
  28. package/src/tree/README.md +18 -0
  29. package/src/tree/__tests__/__snapshots__/extend-eval-integration.test.ts.snap +1455 -0
  30. package/src/tree/__tests__/ampersand.test.ts +382 -0
  31. package/src/tree/__tests__/at-rule.test.ts +2047 -0
  32. package/src/tree/__tests__/basic-render.test.ts +212 -0
  33. package/src/tree/__tests__/block.test.ts +40 -0
  34. package/src/tree/__tests__/call.test.ts +346 -0
  35. package/src/tree/__tests__/color.test.ts +537 -0
  36. package/src/tree/__tests__/condition.test.ts +186 -0
  37. package/src/tree/__tests__/control.test.ts +564 -0
  38. package/src/tree/__tests__/declaration.test.ts +253 -0
  39. package/src/tree/__tests__/dependency-graph.test.ts +177 -0
  40. package/src/tree/__tests__/detached-rulesets.test.ts +213 -0
  41. package/src/tree/__tests__/dimension.test.ts +236 -0
  42. package/src/tree/__tests__/expression.test.ts +73 -0
  43. package/src/tree/__tests__/ext-node.test.ts +31 -0
  44. package/src/tree/__tests__/extend-eval-integration.test.ts +1033 -0
  45. package/src/tree/__tests__/extend-import-style.test.ts +929 -0
  46. package/src/tree/__tests__/extend-less-fixtures.test.ts +851 -0
  47. package/src/tree/__tests__/extend-list.test.ts +31 -0
  48. package/src/tree/__tests__/extend-roots.test.ts +1045 -0
  49. package/src/tree/__tests__/extend-rules.test.ts +740 -0
  50. package/src/tree/__tests__/func.test.ts +171 -0
  51. package/src/tree/__tests__/import-js.test.ts +33 -0
  52. package/src/tree/__tests__/import-style-test-helpers.ts +56 -0
  53. package/src/tree/__tests__/import-style.test.ts +1967 -0
  54. package/src/tree/__tests__/interpolated-reference.test.ts +44 -0
  55. package/src/tree/__tests__/interpolated.test.ts +41 -0
  56. package/src/tree/__tests__/list.test.ts +177 -0
  57. package/src/tree/__tests__/log.test.ts +83 -0
  58. package/src/tree/__tests__/mixin-recursion.test.ts +639 -0
  59. package/src/tree/__tests__/mixin.test.ts +2171 -0
  60. package/src/tree/__tests__/negative.test.ts +45 -0
  61. package/src/tree/__tests__/nesting-collapse.test.ts +519 -0
  62. package/src/tree/__tests__/node-flags-perf.test.ts +195 -0
  63. package/src/tree/__tests__/node-flags.test.ts +410 -0
  64. package/src/tree/__tests__/node-graph.test.ts +598 -0
  65. package/src/tree/__tests__/node-mutation.test.ts +182 -0
  66. package/src/tree/__tests__/operation.test.ts +18 -0
  67. package/src/tree/__tests__/paren.test.ts +90 -0
  68. package/src/tree/__tests__/preserve-mode-output.test.ts +50 -0
  69. package/src/tree/__tests__/quoted.test.ts +72 -0
  70. package/src/tree/__tests__/range.test.ts +59 -0
  71. package/src/tree/__tests__/reference.test.ts +743 -0
  72. package/src/tree/__tests__/rest.test.ts +29 -0
  73. package/src/tree/__tests__/rules-raw.test.ts +14 -0
  74. package/src/tree/__tests__/rules.test.ts +1271 -0
  75. package/src/tree/__tests__/ruleset.test.ts +597 -0
  76. package/src/tree/__tests__/selector-attr.test.ts +50 -0
  77. package/src/tree/__tests__/selector-basic.test.ts +44 -0
  78. package/src/tree/__tests__/selector-capture.test.ts +22 -0
  79. package/src/tree/__tests__/selector-complex.test.ts +120 -0
  80. package/src/tree/__tests__/selector-compound.test.ts +74 -0
  81. package/src/tree/__tests__/selector-interpolated.test.ts +50 -0
  82. package/src/tree/__tests__/selector-list.test.ts +59 -0
  83. package/src/tree/__tests__/selector-pseudo.test.ts +23 -0
  84. package/src/tree/__tests__/selector.test.ts +182 -0
  85. package/src/tree/__tests__/sequence.test.ts +226 -0
  86. package/src/tree/__tests__/serialize-types.test.ts +529 -0
  87. package/src/tree/__tests__/spaced.test.ts +8 -0
  88. package/src/tree/__tests__/url.test.ts +72 -0
  89. package/src/tree/__tests__/var-declaration.test.ts +90 -0
  90. package/src/tree/ampersand.ts +538 -0
  91. package/src/tree/any.ts +169 -0
  92. package/src/tree/at-rule.ts +760 -0
  93. package/src/tree/block.ts +72 -0
  94. package/src/tree/bool.ts +46 -0
  95. package/src/tree/call.ts +593 -0
  96. package/src/tree/collection.ts +52 -0
  97. package/src/tree/color.ts +629 -0
  98. package/src/tree/combinator.ts +30 -0
  99. package/src/tree/comment.ts +36 -0
  100. package/src/tree/condition.ts +194 -0
  101. package/src/tree/control.ts +452 -0
  102. package/src/tree/declaration-custom.ts +56 -0
  103. package/src/tree/declaration-var.ts +87 -0
  104. package/src/tree/declaration.ts +742 -0
  105. package/src/tree/default-guard.ts +35 -0
  106. package/src/tree/dimension.ts +392 -0
  107. package/src/tree/expression.ts +97 -0
  108. package/src/tree/extend-list.ts +51 -0
  109. package/src/tree/extend.ts +391 -0
  110. package/src/tree/function.ts +254 -0
  111. package/src/tree/import-js.ts +130 -0
  112. package/src/tree/import-style.ts +875 -0
  113. package/{lib/tree/index.js → src/tree/index.ts} +49 -22
  114. package/src/tree/interpolated.ts +346 -0
  115. package/src/tree/js-array.ts +21 -0
  116. package/src/tree/js-expr.ts +50 -0
  117. package/src/tree/js-function.ts +31 -0
  118. package/src/tree/js-object.ts +22 -0
  119. package/src/tree/list.ts +415 -0
  120. package/src/tree/log.ts +89 -0
  121. package/src/tree/mixin.ts +331 -0
  122. package/src/tree/negative.ts +58 -0
  123. package/src/tree/nil.ts +57 -0
  124. package/src/tree/node-base.ts +1716 -0
  125. package/src/tree/node-type.ts +122 -0
  126. package/src/tree/node.ts +118 -0
  127. package/src/tree/number.ts +54 -0
  128. package/src/tree/operation.ts +187 -0
  129. package/src/tree/paren.ts +132 -0
  130. package/src/tree/query-condition.ts +47 -0
  131. package/src/tree/quoted.ts +119 -0
  132. package/src/tree/range.ts +101 -0
  133. package/src/tree/reference.ts +1099 -0
  134. package/src/tree/rest.ts +55 -0
  135. package/src/tree/rules-raw.ts +52 -0
  136. package/src/tree/rules.ts +2896 -0
  137. package/src/tree/ruleset.ts +1217 -0
  138. package/src/tree/selector-attr.ts +172 -0
  139. package/src/tree/selector-basic.ts +75 -0
  140. package/src/tree/selector-capture.ts +85 -0
  141. package/src/tree/selector-complex.ts +189 -0
  142. package/src/tree/selector-compound.ts +205 -0
  143. package/src/tree/selector-interpolated.ts +95 -0
  144. package/src/tree/selector-list.ts +245 -0
  145. package/src/tree/selector-pseudo.ts +173 -0
  146. package/src/tree/selector-simple.ts +10 -0
  147. package/src/tree/selector.ts +152 -0
  148. package/src/tree/sequence.ts +463 -0
  149. package/src/tree/tree.ts +130 -0
  150. package/src/tree/url.ts +95 -0
  151. package/src/tree/util/EXTEND_ARCHITECTURE_ANALYSIS.md +215 -0
  152. package/src/tree/util/EXTEND_AUDIT.md +233 -0
  153. package/src/tree/util/EXTEND_BASELINE.md +64 -0
  154. package/src/tree/util/EXTEND_CALL_GRAPH_ANALYSIS.md +244 -0
  155. package/src/tree/util/EXTEND_DOCS.md +24 -0
  156. package/src/tree/util/EXTEND_FINAL_SUMMARY.md +95 -0
  157. package/src/tree/util/EXTEND_FUNCTION_AUDIT.md +1433 -0
  158. package/src/tree/util/EXTEND_OPTIMIZATION_PLAN.md +114 -0
  159. package/src/tree/util/EXTEND_REFACTORING_SUMMARY.md +152 -0
  160. package/src/tree/util/EXTEND_RULES.md +74 -0
  161. package/src/tree/util/EXTEND_UNUSED_FUNCTIONS.md +127 -0
  162. package/src/tree/util/EXTEND_UNUSED_FUNCTIONS_ANALYSIS.md +227 -0
  163. package/src/tree/util/NODE_COPY_REDUCTION_PLAN.md +12 -0
  164. package/src/tree/util/__tests__/EXTEND_TEST_INDEX.md +59 -0
  165. package/src/tree/util/__tests__/OPTIMIZATION-ANALYSIS.md +130 -0
  166. package/src/tree/util/__tests__/WALK_AND_CONSUME_DESIGN.md +138 -0
  167. package/src/tree/util/__tests__/_archive/2026-02-09__OPTIMIZATION-ANALYSIS.md +9 -0
  168. package/src/tree/util/__tests__/_archive/README.md +4 -0
  169. package/src/tree/util/__tests__/bitset.test.ts +142 -0
  170. package/src/tree/util/__tests__/debug-log.ts +50 -0
  171. package/src/tree/util/__tests__/extend-comment-handling.test.ts +187 -0
  172. package/src/tree/util/__tests__/extend-core-unit.test.ts +941 -0
  173. package/src/tree/util/__tests__/extend-pipeline-bench.test.ts +154 -0
  174. package/src/tree/util/__tests__/extend-pipeline-bench.ts +190 -0
  175. package/src/tree/util/__tests__/fast-reject.test.ts +377 -0
  176. package/src/tree/util/__tests__/is-node.test.ts +63 -0
  177. package/src/tree/util/__tests__/list-like.test.ts +63 -0
  178. package/src/tree/util/__tests__/outputwriter.test.ts +523 -0
  179. package/src/tree/util/__tests__/print.test.ts +183 -0
  180. package/src/tree/util/__tests__/process-extends.test.ts +226 -0
  181. package/src/tree/util/__tests__/process-leading-is.test.ts +205 -0
  182. package/src/tree/util/__tests__/recursion-helper.test.ts +184 -0
  183. package/src/tree/util/__tests__/selector-match-unit.test.ts +1427 -0
  184. package/src/tree/util/__tests__/sourcemap.test.ts +117 -0
  185. package/src/tree/util/ampersand-template.ts +9 -0
  186. package/src/tree/util/bitset.ts +194 -0
  187. package/src/tree/util/calculate.ts +11 -0
  188. package/src/tree/util/cast.ts +89 -0
  189. package/src/tree/util/cloning.ts +8 -0
  190. package/src/tree/util/collections.ts +299 -0
  191. package/src/tree/util/compare.ts +90 -0
  192. package/src/tree/util/cursor.ts +171 -0
  193. package/src/tree/util/extend-core.ts +2139 -0
  194. package/src/tree/util/extend-roots.ts +1108 -0
  195. package/src/tree/util/field-helpers.ts +354 -0
  196. package/src/tree/util/is-node.ts +43 -0
  197. package/src/tree/util/list-like.ts +93 -0
  198. package/src/tree/util/mixin-instance-primitives.ts +2020 -0
  199. package/src/tree/util/print.ts +303 -0
  200. package/src/tree/util/process-leading-is.ts +421 -0
  201. package/src/tree/util/recursion-helper.ts +54 -0
  202. package/src/tree/util/regex.ts +2 -0
  203. package/src/tree/util/registry-utils.ts +1953 -0
  204. package/src/tree/util/ruleset-trace.ts +17 -0
  205. package/src/tree/util/scoped-body-eval.ts +320 -0
  206. package/src/tree/util/selector-match-core.ts +2005 -0
  207. package/src/tree/util/selector-utils.ts +757 -0
  208. package/src/tree/util/serialize-helper.ts +535 -0
  209. package/src/tree/util/serialize-types.ts +318 -0
  210. package/src/tree/util/should-operate.ts +78 -0
  211. package/src/tree/util/sourcemap.ts +37 -0
  212. package/src/types/config.ts +247 -0
  213. package/src/types/index.ts +12 -0
  214. package/{lib/types/modes.d.ts → src/types/modes.ts} +2 -1
  215. package/src/types.d.ts +9 -0
  216. package/src/types.ts +68 -0
  217. package/src/use-webpack-resolver.ts +56 -0
  218. package/src/visitor/__tests__/visitor.test.ts +136 -0
  219. package/src/visitor/index.ts +263 -0
  220. package/{lib/visitor/less-visitor.js → src/visitor/less-visitor.ts} +3 -2
  221. package/lib/context.d.ts +0 -352
  222. package/lib/context.d.ts.map +0 -1
  223. package/lib/context.js +0 -636
  224. package/lib/context.js.map +0 -1
  225. package/lib/conversions.d.ts +0 -73
  226. package/lib/conversions.d.ts.map +0 -1
  227. package/lib/conversions.js +0 -253
  228. package/lib/conversions.js.map +0 -1
  229. package/lib/debug-log.d.ts +0 -2
  230. package/lib/debug-log.d.ts.map +0 -1
  231. package/lib/debug-log.js +0 -27
  232. package/lib/debug-log.js.map +0 -1
  233. package/lib/define-function.d.ts +0 -587
  234. package/lib/define-function.d.ts.map +0 -1
  235. package/lib/define-function.js +0 -726
  236. package/lib/define-function.js.map +0 -1
  237. package/lib/deprecation.d.ts +0 -34
  238. package/lib/deprecation.d.ts.map +0 -1
  239. package/lib/deprecation.js +0 -57
  240. package/lib/deprecation.js.map +0 -1
  241. package/lib/jess-error.d.ts +0 -343
  242. package/lib/jess-error.d.ts.map +0 -1
  243. package/lib/jess-error.js +0 -508
  244. package/lib/jess-error.js.map +0 -1
  245. package/lib/logger/deprecation-processing.d.ts +0 -41
  246. package/lib/logger/deprecation-processing.d.ts.map +0 -1
  247. package/lib/logger/deprecation-processing.js +0 -81
  248. package/lib/logger/deprecation-processing.js.map +0 -1
  249. package/lib/logger.d.ts +0 -10
  250. package/lib/logger.d.ts.map +0 -1
  251. package/lib/logger.js +0 -20
  252. package/lib/logger.js.map +0 -1
  253. package/lib/plugin.d.ts +0 -94
  254. package/lib/plugin.d.ts.map +0 -1
  255. package/lib/plugin.js +0 -174
  256. package/lib/plugin.js.map +0 -1
  257. package/lib/tree/ampersand.d.ts +0 -98
  258. package/lib/tree/ampersand.d.ts.map +0 -1
  259. package/lib/tree/ampersand.js +0 -319
  260. package/lib/tree/ampersand.js.map +0 -1
  261. package/lib/tree/any.d.ts +0 -58
  262. package/lib/tree/any.d.ts.map +0 -1
  263. package/lib/tree/any.js +0 -104
  264. package/lib/tree/any.js.map +0 -1
  265. package/lib/tree/at-rule.d.ts +0 -53
  266. package/lib/tree/at-rule.d.ts.map +0 -1
  267. package/lib/tree/at-rule.js +0 -503
  268. package/lib/tree/at-rule.js.map +0 -1
  269. package/lib/tree/block.d.ts +0 -22
  270. package/lib/tree/block.d.ts.map +0 -1
  271. package/lib/tree/block.js +0 -24
  272. package/lib/tree/block.js.map +0 -1
  273. package/lib/tree/bool.d.ts +0 -18
  274. package/lib/tree/bool.d.ts.map +0 -1
  275. package/lib/tree/bool.js +0 -28
  276. package/lib/tree/bool.js.map +0 -1
  277. package/lib/tree/call.d.ts +0 -66
  278. package/lib/tree/call.d.ts.map +0 -1
  279. package/lib/tree/call.js +0 -306
  280. package/lib/tree/call.js.map +0 -1
  281. package/lib/tree/collection.d.ts +0 -30
  282. package/lib/tree/collection.d.ts.map +0 -1
  283. package/lib/tree/collection.js +0 -37
  284. package/lib/tree/collection.js.map +0 -1
  285. package/lib/tree/color.d.ts +0 -101
  286. package/lib/tree/color.d.ts.map +0 -1
  287. package/lib/tree/color.js +0 -513
  288. package/lib/tree/color.js.map +0 -1
  289. package/lib/tree/combinator.d.ts +0 -13
  290. package/lib/tree/combinator.d.ts.map +0 -1
  291. package/lib/tree/combinator.js +0 -12
  292. package/lib/tree/combinator.js.map +0 -1
  293. package/lib/tree/comment.d.ts +0 -20
  294. package/lib/tree/comment.d.ts.map +0 -1
  295. package/lib/tree/comment.js +0 -19
  296. package/lib/tree/comment.js.map +0 -1
  297. package/lib/tree/condition.d.ts +0 -31
  298. package/lib/tree/condition.d.ts.map +0 -1
  299. package/lib/tree/condition.js +0 -103
  300. package/lib/tree/condition.js.map +0 -1
  301. package/lib/tree/control.d.ts +0 -104
  302. package/lib/tree/control.d.ts.map +0 -1
  303. package/lib/tree/control.js +0 -430
  304. package/lib/tree/control.js.map +0 -1
  305. package/lib/tree/declaration-custom.d.ts +0 -18
  306. package/lib/tree/declaration-custom.d.ts.map +0 -1
  307. package/lib/tree/declaration-custom.js +0 -24
  308. package/lib/tree/declaration-custom.js.map +0 -1
  309. package/lib/tree/declaration-var.d.ts +0 -35
  310. package/lib/tree/declaration-var.d.ts.map +0 -1
  311. package/lib/tree/declaration-var.js +0 -63
  312. package/lib/tree/declaration-var.js.map +0 -1
  313. package/lib/tree/declaration.d.ts +0 -78
  314. package/lib/tree/declaration.d.ts.map +0 -1
  315. package/lib/tree/declaration.js +0 -286
  316. package/lib/tree/declaration.js.map +0 -1
  317. package/lib/tree/default-guard.d.ts +0 -15
  318. package/lib/tree/default-guard.d.ts.map +0 -1
  319. package/lib/tree/default-guard.js +0 -19
  320. package/lib/tree/default-guard.js.map +0 -1
  321. package/lib/tree/dimension.d.ts +0 -34
  322. package/lib/tree/dimension.d.ts.map +0 -1
  323. package/lib/tree/dimension.js +0 -294
  324. package/lib/tree/dimension.js.map +0 -1
  325. package/lib/tree/expression.d.ts +0 -25
  326. package/lib/tree/expression.d.ts.map +0 -1
  327. package/lib/tree/expression.js +0 -32
  328. package/lib/tree/expression.js.map +0 -1
  329. package/lib/tree/extend-list.d.ts +0 -23
  330. package/lib/tree/extend-list.d.ts.map +0 -1
  331. package/lib/tree/extend-list.js +0 -23
  332. package/lib/tree/extend-list.js.map +0 -1
  333. package/lib/tree/extend.d.ts +0 -47
  334. package/lib/tree/extend.d.ts.map +0 -1
  335. package/lib/tree/extend.js +0 -296
  336. package/lib/tree/extend.js.map +0 -1
  337. package/lib/tree/function.d.ts +0 -48
  338. package/lib/tree/function.d.ts.map +0 -1
  339. package/lib/tree/function.js +0 -74
  340. package/lib/tree/function.js.map +0 -1
  341. package/lib/tree/import-js.d.ts +0 -35
  342. package/lib/tree/import-js.d.ts.map +0 -1
  343. package/lib/tree/import-js.js +0 -45
  344. package/lib/tree/import-js.js.map +0 -1
  345. package/lib/tree/import-style.d.ts +0 -156
  346. package/lib/tree/import-style.d.ts.map +0 -1
  347. package/lib/tree/import-style.js +0 -566
  348. package/lib/tree/import-style.js.map +0 -1
  349. package/lib/tree/index.d.ts +0 -71
  350. package/lib/tree/index.d.ts.map +0 -1
  351. package/lib/tree/index.js.map +0 -1
  352. package/lib/tree/interpolated-reference.d.ts +0 -24
  353. package/lib/tree/interpolated-reference.d.ts.map +0 -1
  354. package/lib/tree/interpolated-reference.js +0 -37
  355. package/lib/tree/interpolated-reference.js.map +0 -1
  356. package/lib/tree/interpolated.d.ts +0 -62
  357. package/lib/tree/interpolated.d.ts.map +0 -1
  358. package/lib/tree/interpolated.js +0 -204
  359. package/lib/tree/interpolated.js.map +0 -1
  360. package/lib/tree/js-array.d.ts +0 -10
  361. package/lib/tree/js-array.d.ts.map +0 -1
  362. package/lib/tree/js-array.js +0 -10
  363. package/lib/tree/js-array.js.map +0 -1
  364. package/lib/tree/js-expr.d.ts +0 -23
  365. package/lib/tree/js-expr.d.ts.map +0 -1
  366. package/lib/tree/js-expr.js +0 -28
  367. package/lib/tree/js-expr.js.map +0 -1
  368. package/lib/tree/js-function.d.ts +0 -20
  369. package/lib/tree/js-function.d.ts.map +0 -1
  370. package/lib/tree/js-function.js +0 -16
  371. package/lib/tree/js-function.js.map +0 -1
  372. package/lib/tree/js-object.d.ts +0 -10
  373. package/lib/tree/js-object.d.ts.map +0 -1
  374. package/lib/tree/js-object.js +0 -10
  375. package/lib/tree/js-object.js.map +0 -1
  376. package/lib/tree/list.d.ts +0 -38
  377. package/lib/tree/list.d.ts.map +0 -1
  378. package/lib/tree/list.js +0 -83
  379. package/lib/tree/list.js.map +0 -1
  380. package/lib/tree/log.d.ts +0 -29
  381. package/lib/tree/log.d.ts.map +0 -1
  382. package/lib/tree/log.js +0 -56
  383. package/lib/tree/log.js.map +0 -1
  384. package/lib/tree/mixin.d.ts +0 -87
  385. package/lib/tree/mixin.d.ts.map +0 -1
  386. package/lib/tree/mixin.js +0 -112
  387. package/lib/tree/mixin.js.map +0 -1
  388. package/lib/tree/negative.d.ts +0 -17
  389. package/lib/tree/negative.d.ts.map +0 -1
  390. package/lib/tree/negative.js +0 -22
  391. package/lib/tree/negative.js.map +0 -1
  392. package/lib/tree/nil.d.ts +0 -30
  393. package/lib/tree/nil.d.ts.map +0 -1
  394. package/lib/tree/nil.js +0 -35
  395. package/lib/tree/nil.js.map +0 -1
  396. package/lib/tree/node-base.d.ts +0 -361
  397. package/lib/tree/node-base.d.ts.map +0 -1
  398. package/lib/tree/node-base.js +0 -930
  399. package/lib/tree/node-base.js.map +0 -1
  400. package/lib/tree/node.d.ts +0 -10
  401. package/lib/tree/node.d.ts.map +0 -1
  402. package/lib/tree/node.js +0 -45
  403. package/lib/tree/node.js.map +0 -1
  404. package/lib/tree/number.d.ts +0 -21
  405. package/lib/tree/number.d.ts.map +0 -1
  406. package/lib/tree/number.js +0 -27
  407. package/lib/tree/number.js.map +0 -1
  408. package/lib/tree/operation.d.ts +0 -26
  409. package/lib/tree/operation.d.ts.map +0 -1
  410. package/lib/tree/operation.js +0 -103
  411. package/lib/tree/operation.js.map +0 -1
  412. package/lib/tree/paren.d.ts +0 -19
  413. package/lib/tree/paren.d.ts.map +0 -1
  414. package/lib/tree/paren.js +0 -92
  415. package/lib/tree/paren.js.map +0 -1
  416. package/lib/tree/query-condition.d.ts +0 -17
  417. package/lib/tree/query-condition.d.ts.map +0 -1
  418. package/lib/tree/query-condition.js +0 -39
  419. package/lib/tree/query-condition.js.map +0 -1
  420. package/lib/tree/quoted.d.ts +0 -28
  421. package/lib/tree/quoted.d.ts.map +0 -1
  422. package/lib/tree/quoted.js +0 -75
  423. package/lib/tree/quoted.js.map +0 -1
  424. package/lib/tree/range.d.ts +0 -33
  425. package/lib/tree/range.d.ts.map +0 -1
  426. package/lib/tree/range.js +0 -47
  427. package/lib/tree/range.js.map +0 -1
  428. package/lib/tree/reference.d.ts +0 -76
  429. package/lib/tree/reference.d.ts.map +0 -1
  430. package/lib/tree/reference.js +0 -521
  431. package/lib/tree/reference.js.map +0 -1
  432. package/lib/tree/rest.d.ts +0 -15
  433. package/lib/tree/rest.d.ts.map +0 -1
  434. package/lib/tree/rest.js +0 -32
  435. package/lib/tree/rest.js.map +0 -1
  436. package/lib/tree/rules-raw.d.ts +0 -17
  437. package/lib/tree/rules-raw.d.ts.map +0 -1
  438. package/lib/tree/rules-raw.js +0 -37
  439. package/lib/tree/rules-raw.js.map +0 -1
  440. package/lib/tree/rules.d.ts +0 -262
  441. package/lib/tree/rules.d.ts.map +0 -1
  442. package/lib/tree/rules.js +0 -2359
  443. package/lib/tree/rules.js.map +0 -1
  444. package/lib/tree/ruleset.d.ts +0 -92
  445. package/lib/tree/ruleset.d.ts.map +0 -1
  446. package/lib/tree/ruleset.js +0 -528
  447. package/lib/tree/ruleset.js.map +0 -1
  448. package/lib/tree/selector-attr.d.ts +0 -31
  449. package/lib/tree/selector-attr.d.ts.map +0 -1
  450. package/lib/tree/selector-attr.js +0 -99
  451. package/lib/tree/selector-attr.js.map +0 -1
  452. package/lib/tree/selector-basic.d.ts +0 -24
  453. package/lib/tree/selector-basic.d.ts.map +0 -1
  454. package/lib/tree/selector-basic.js +0 -38
  455. package/lib/tree/selector-basic.js.map +0 -1
  456. package/lib/tree/selector-capture.d.ts +0 -23
  457. package/lib/tree/selector-capture.d.ts.map +0 -1
  458. package/lib/tree/selector-capture.js +0 -34
  459. package/lib/tree/selector-capture.js.map +0 -1
  460. package/lib/tree/selector-complex.d.ts +0 -40
  461. package/lib/tree/selector-complex.d.ts.map +0 -1
  462. package/lib/tree/selector-complex.js +0 -143
  463. package/lib/tree/selector-complex.js.map +0 -1
  464. package/lib/tree/selector-compound.d.ts +0 -16
  465. package/lib/tree/selector-compound.d.ts.map +0 -1
  466. package/lib/tree/selector-compound.js +0 -114
  467. package/lib/tree/selector-compound.js.map +0 -1
  468. package/lib/tree/selector-interpolated.d.ts +0 -23
  469. package/lib/tree/selector-interpolated.d.ts.map +0 -1
  470. package/lib/tree/selector-interpolated.js +0 -27
  471. package/lib/tree/selector-interpolated.js.map +0 -1
  472. package/lib/tree/selector-list.d.ts +0 -17
  473. package/lib/tree/selector-list.d.ts.map +0 -1
  474. package/lib/tree/selector-list.js +0 -174
  475. package/lib/tree/selector-list.js.map +0 -1
  476. package/lib/tree/selector-pseudo.d.ts +0 -42
  477. package/lib/tree/selector-pseudo.d.ts.map +0 -1
  478. package/lib/tree/selector-pseudo.js +0 -204
  479. package/lib/tree/selector-pseudo.js.map +0 -1
  480. package/lib/tree/selector-simple.d.ts +0 -5
  481. package/lib/tree/selector-simple.d.ts.map +0 -1
  482. package/lib/tree/selector-simple.js +0 -6
  483. package/lib/tree/selector-simple.js.map +0 -1
  484. package/lib/tree/selector.d.ts +0 -43
  485. package/lib/tree/selector.d.ts.map +0 -1
  486. package/lib/tree/selector.js +0 -56
  487. package/lib/tree/selector.js.map +0 -1
  488. package/lib/tree/sequence.d.ts +0 -43
  489. package/lib/tree/sequence.d.ts.map +0 -1
  490. package/lib/tree/sequence.js +0 -151
  491. package/lib/tree/sequence.js.map +0 -1
  492. package/lib/tree/tree.d.ts +0 -87
  493. package/lib/tree/tree.d.ts.map +0 -1
  494. package/lib/tree/tree.js +0 -2
  495. package/lib/tree/tree.js.map +0 -1
  496. package/lib/tree/url.d.ts +0 -18
  497. package/lib/tree/url.d.ts.map +0 -1
  498. package/lib/tree/url.js +0 -35
  499. package/lib/tree/url.js.map +0 -1
  500. package/lib/tree/util/__tests__/debug-log.d.ts +0 -1
  501. package/lib/tree/util/__tests__/debug-log.d.ts.map +0 -1
  502. package/lib/tree/util/__tests__/debug-log.js +0 -36
  503. package/lib/tree/util/__tests__/debug-log.js.map +0 -1
  504. package/lib/tree/util/calculate.d.ts +0 -3
  505. package/lib/tree/util/calculate.d.ts.map +0 -1
  506. package/lib/tree/util/calculate.js +0 -10
  507. package/lib/tree/util/calculate.js.map +0 -1
  508. package/lib/tree/util/cast.d.ts +0 -10
  509. package/lib/tree/util/cast.d.ts.map +0 -1
  510. package/lib/tree/util/cast.js +0 -87
  511. package/lib/tree/util/cast.js.map +0 -1
  512. package/lib/tree/util/cloning.d.ts +0 -4
  513. package/lib/tree/util/cloning.d.ts.map +0 -1
  514. package/lib/tree/util/cloning.js +0 -8
  515. package/lib/tree/util/cloning.js.map +0 -1
  516. package/lib/tree/util/collections.d.ts +0 -57
  517. package/lib/tree/util/collections.d.ts.map +0 -1
  518. package/lib/tree/util/collections.js +0 -136
  519. package/lib/tree/util/collections.js.map +0 -1
  520. package/lib/tree/util/compare.d.ts +0 -11
  521. package/lib/tree/util/compare.d.ts.map +0 -1
  522. package/lib/tree/util/compare.js +0 -89
  523. package/lib/tree/util/compare.js.map +0 -1
  524. package/lib/tree/util/extend-helpers.d.ts +0 -2
  525. package/lib/tree/util/extend-helpers.d.ts.map +0 -1
  526. package/lib/tree/util/extend-helpers.js +0 -2
  527. package/lib/tree/util/extend-helpers.js.map +0 -1
  528. package/lib/tree/util/extend-roots.d.ts +0 -37
  529. package/lib/tree/util/extend-roots.d.ts.map +0 -1
  530. package/lib/tree/util/extend-roots.js +0 -700
  531. package/lib/tree/util/extend-roots.js.map +0 -1
  532. package/lib/tree/util/extend-roots.old.d.ts +0 -132
  533. package/lib/tree/util/extend-roots.old.d.ts.map +0 -1
  534. package/lib/tree/util/extend-roots.old.js +0 -2272
  535. package/lib/tree/util/extend-roots.old.js.map +0 -1
  536. package/lib/tree/util/extend-trace-debug.d.ts +0 -13
  537. package/lib/tree/util/extend-trace-debug.d.ts.map +0 -1
  538. package/lib/tree/util/extend-trace-debug.js +0 -34
  539. package/lib/tree/util/extend-trace-debug.js.map +0 -1
  540. package/lib/tree/util/extend-walk.d.ts +0 -53
  541. package/lib/tree/util/extend-walk.d.ts.map +0 -1
  542. package/lib/tree/util/extend-walk.js +0 -881
  543. package/lib/tree/util/extend-walk.js.map +0 -1
  544. package/lib/tree/util/extend.d.ts +0 -218
  545. package/lib/tree/util/extend.d.ts.map +0 -1
  546. package/lib/tree/util/extend.js +0 -3182
  547. package/lib/tree/util/extend.js.map +0 -1
  548. package/lib/tree/util/find-extendable-locations.d.ts +0 -2
  549. package/lib/tree/util/find-extendable-locations.d.ts.map +0 -1
  550. package/lib/tree/util/find-extendable-locations.js +0 -2
  551. package/lib/tree/util/find-extendable-locations.js.map +0 -1
  552. package/lib/tree/util/format.d.ts +0 -20
  553. package/lib/tree/util/format.d.ts.map +0 -1
  554. package/lib/tree/util/format.js +0 -67
  555. package/lib/tree/util/format.js.map +0 -1
  556. package/lib/tree/util/is-node.d.ts +0 -13
  557. package/lib/tree/util/is-node.d.ts.map +0 -1
  558. package/lib/tree/util/is-node.js +0 -43
  559. package/lib/tree/util/is-node.js.map +0 -1
  560. package/lib/tree/util/print.d.ts +0 -80
  561. package/lib/tree/util/print.d.ts.map +0 -1
  562. package/lib/tree/util/print.js +0 -205
  563. package/lib/tree/util/print.js.map +0 -1
  564. package/lib/tree/util/process-leading-is.d.ts +0 -25
  565. package/lib/tree/util/process-leading-is.d.ts.map +0 -1
  566. package/lib/tree/util/process-leading-is.js +0 -364
  567. package/lib/tree/util/process-leading-is.js.map +0 -1
  568. package/lib/tree/util/recursion-helper.d.ts +0 -15
  569. package/lib/tree/util/recursion-helper.d.ts.map +0 -1
  570. package/lib/tree/util/recursion-helper.js +0 -43
  571. package/lib/tree/util/recursion-helper.js.map +0 -1
  572. package/lib/tree/util/regex.d.ts +0 -4
  573. package/lib/tree/util/regex.d.ts.map +0 -1
  574. package/lib/tree/util/regex.js +0 -4
  575. package/lib/tree/util/regex.js.map +0 -1
  576. package/lib/tree/util/registry-utils.d.ts +0 -192
  577. package/lib/tree/util/registry-utils.d.ts.map +0 -1
  578. package/lib/tree/util/registry-utils.js +0 -1214
  579. package/lib/tree/util/registry-utils.js.map +0 -1
  580. package/lib/tree/util/ruleset-trace.d.ts +0 -4
  581. package/lib/tree/util/ruleset-trace.d.ts.map +0 -1
  582. package/lib/tree/util/ruleset-trace.js +0 -14
  583. package/lib/tree/util/ruleset-trace.js.map +0 -1
  584. package/lib/tree/util/selector-compare.d.ts +0 -2
  585. package/lib/tree/util/selector-compare.d.ts.map +0 -1
  586. package/lib/tree/util/selector-compare.js +0 -2
  587. package/lib/tree/util/selector-compare.js.map +0 -1
  588. package/lib/tree/util/selector-match-core.d.ts +0 -184
  589. package/lib/tree/util/selector-match-core.d.ts.map +0 -1
  590. package/lib/tree/util/selector-match-core.js +0 -1603
  591. package/lib/tree/util/selector-match-core.js.map +0 -1
  592. package/lib/tree/util/selector-utils.d.ts +0 -30
  593. package/lib/tree/util/selector-utils.d.ts.map +0 -1
  594. package/lib/tree/util/selector-utils.js +0 -100
  595. package/lib/tree/util/selector-utils.js.map +0 -1
  596. package/lib/tree/util/serialize-helper.d.ts +0 -13
  597. package/lib/tree/util/serialize-helper.d.ts.map +0 -1
  598. package/lib/tree/util/serialize-helper.js +0 -387
  599. package/lib/tree/util/serialize-helper.js.map +0 -1
  600. package/lib/tree/util/serialize-types.d.ts +0 -9
  601. package/lib/tree/util/serialize-types.d.ts.map +0 -1
  602. package/lib/tree/util/serialize-types.js +0 -216
  603. package/lib/tree/util/serialize-types.js.map +0 -1
  604. package/lib/tree/util/should-operate.d.ts +0 -23
  605. package/lib/tree/util/should-operate.d.ts.map +0 -1
  606. package/lib/tree/util/should-operate.js +0 -46
  607. package/lib/tree/util/should-operate.js.map +0 -1
  608. package/lib/tree/util/sourcemap.d.ts +0 -7
  609. package/lib/tree/util/sourcemap.d.ts.map +0 -1
  610. package/lib/tree/util/sourcemap.js +0 -25
  611. package/lib/tree/util/sourcemap.js.map +0 -1
  612. package/lib/types/config.d.ts +0 -205
  613. package/lib/types/config.d.ts.map +0 -1
  614. package/lib/types/config.js +0 -2
  615. package/lib/types/config.js.map +0 -1
  616. package/lib/types/index.d.ts +0 -15
  617. package/lib/types/index.d.ts.map +0 -1
  618. package/lib/types/index.js +0 -3
  619. package/lib/types/index.js.map +0 -1
  620. package/lib/types/modes.d.ts.map +0 -1
  621. package/lib/types/modes.js +0 -2
  622. package/lib/types/modes.js.map +0 -1
  623. package/lib/types.d.ts +0 -61
  624. package/lib/types.d.ts.map +0 -1
  625. package/lib/types.js +0 -2
  626. package/lib/types.js.map +0 -1
  627. package/lib/use-webpack-resolver.d.ts +0 -9
  628. package/lib/use-webpack-resolver.d.ts.map +0 -1
  629. package/lib/use-webpack-resolver.js +0 -41
  630. package/lib/use-webpack-resolver.js.map +0 -1
  631. package/lib/visitor/index.d.ts +0 -136
  632. package/lib/visitor/index.d.ts.map +0 -1
  633. package/lib/visitor/index.js +0 -135
  634. package/lib/visitor/index.js.map +0 -1
  635. package/lib/visitor/less-visitor.d.ts +0 -7
  636. package/lib/visitor/less-visitor.d.ts.map +0 -1
  637. package/lib/visitor/less-visitor.js.map +0 -1
@@ -1,528 +0,0 @@
1
- import { Node, F_VISIBLE, F_EXTENDED, F_EXTEND_TARGET, F_IMPLICIT_AMPERSAND, defineType } from './node.js';
2
- import { Nil } from './nil.js';
3
- import { Bool } from './bool.js';
4
- import { atIndex } from './util/collections.js';
5
- import { isNode } from './util/is-node.js';
6
- import { ComplexSelector } from './selector-complex.js';
7
- import { SelectorList } from './selector-list.js';
8
- import { PseudoSelector } from './selector-pseudo.js';
9
- import { getPrintOptions } from './util/print.js';
10
- import { pipe, isThenable } from '@jesscss/awaitable-pipe';
11
- import { serializeRulesContainer, normalizeIndent, indent } from './util/serialize-helper.js';
12
- import { getImplicitSelector as getImplicitSelectorUtil } from './util/selector-utils.js';
13
- import { processLeadingIs } from './util/process-leading-is.js';
14
- import { registerRulesetWithRoot } from './util/extend-roots.js';
15
- import { ensureRulesetTraceId } from './util/ruleset-trace.js';
16
- /**
17
- * A qualified rule. This is historically called a "Ruleset"
18
- * by older CSS documentation and by Less.
19
- *
20
- * @see https://developer.mozilla.org/en-US/docs/Web/CSS/Syntax#css_rulesets
21
- *
22
- * @example
23
- * .box {
24
- * color: black;
25
- * }
26
- */
27
- export class Ruleset extends Node {
28
- type = 'Ruleset';
29
- shortType = 'ruleset';
30
- allowRuleRoot = true;
31
- allowRoot = true;
32
- // Ruleset has preEval method but doesn't need to set flags - preEvaluated is tracked as boolean
33
- frames;
34
- get selector() {
35
- return this.value.selector;
36
- }
37
- /**
38
- * If this ruleset shares its value object with a descendant ruleset, give those
39
- * descendants their own value so mutating this ruleset's value.selector does not
40
- * overwrite the descendant's selector (e.g. .rep_ace nested ruleset case).
41
- */
42
- static ensureDescendantRulesetsHaveOwnValue(ruleset, sharedValue) {
43
- const rules = ruleset.value?.rules;
44
- if (!rules || !isNode(rules, 'Rules')) {
45
- return;
46
- }
47
- const children = rules.value;
48
- if (!Array.isArray(children)) {
49
- return;
50
- }
51
- for (const child of children) {
52
- if (!isNode(child, 'Ruleset')) {
53
- continue;
54
- }
55
- const rs = child;
56
- if (rs.value === sharedValue) {
57
- rs.value = {
58
- selector: rs.value.selector,
59
- rules: rs.value.rules,
60
- ...(rs.value.guard !== undefined && { guard: rs.value.guard })
61
- };
62
- }
63
- Ruleset.ensureDescendantRulesetsHaveOwnValue(rs, sharedValue);
64
- }
65
- }
66
- isHoisted(options) {
67
- return this.hoistToRoot ?? options.collapseNesting ?? false;
68
- }
69
- _valueOf;
70
- /** Used for equality comparison with other rulesets */
71
- valueOf() {
72
- if (this._valueOf !== undefined) {
73
- return this._valueOf;
74
- }
75
- const selector = this.selector;
76
- if (selector instanceof Nil) {
77
- this._valueOf = '';
78
- return this._valueOf;
79
- }
80
- const normalizedResult = processLeadingIs(selector);
81
- const normalizedSelector = Array.isArray(normalizedResult)
82
- ? SelectorList.create(normalizedResult.map(s => s.copy(true))).inherit(selector)
83
- : normalizedResult;
84
- this._valueOf = normalizedSelector instanceof Nil ? '' : normalizedSelector.valueOf();
85
- return this._valueOf;
86
- }
87
- /**
88
- * Invalidate cached selector-based string value.
89
- *
90
- * `Ruleset.valueOf()` is used by serialization frame tracking; when an extend
91
- * mutates `value.selector`, we must clear this cache so frame/header caching
92
- * reflects the updated selector.
93
- */
94
- invalidateSelectorValueCache() {
95
- this._valueOf = undefined;
96
- }
97
- toTrimmedString(options) {
98
- options = getPrintOptions(options);
99
- const opts = options;
100
- if (opts.referenceMode === true
101
- && opts.referenceRenderEnabled !== false
102
- && this.hoistToRoot) {
103
- const ownSelector = this.options?.ownSelector;
104
- if (ownSelector && Ruleset.isBareAmpersandSelector(ownSelector)) {
105
- return '';
106
- }
107
- }
108
- return serializeRulesContainer(this, opts);
109
- }
110
- /**
111
- * Render the opening of this ruleset (selector)
112
- * @todo - Efficiently serialize the selector with and without comments?
113
- */
114
- /** Ensure every node in the selector has F_VISIBLE so toString() does not skip them (rep_ace bug).
115
- * Do NOT add F_VISIBLE to implicit ampersands: they must stay invisible so nested output stays short. */
116
- static ensureSelectorVisible(sel) {
117
- if (!sel || sel instanceof Nil || typeof sel.addFlag !== 'function') {
118
- return;
119
- }
120
- const n = sel;
121
- if (isNode(sel, 'Ampersand') && n.hasFlag(F_IMPLICIT_AMPERSAND)) {
122
- return;
123
- }
124
- if (!n.hasFlag(F_VISIBLE)) {
125
- n.addFlag(F_VISIBLE);
126
- }
127
- if (isNode(sel, 'SelectorList')) {
128
- const list = sel;
129
- if (Array.isArray(list.value)) {
130
- for (const item of list.value) {
131
- Ruleset.ensureSelectorVisible(item);
132
- }
133
- }
134
- return;
135
- }
136
- if (isNode(sel, 'ComplexSelector')) {
137
- const comps = sel.value;
138
- if (Array.isArray(comps)) {
139
- for (const c of comps) {
140
- Ruleset.ensureSelectorVisible(c);
141
- }
142
- }
143
- return;
144
- }
145
- const v = sel.value;
146
- if (Array.isArray(v)) {
147
- for (const c of v) {
148
- Ruleset.ensureSelectorVisible(c);
149
- }
150
- }
151
- }
152
- static materializeHoistedImplicitAmpersands(sel) {
153
- if (!sel || sel instanceof Nil) {
154
- return sel;
155
- }
156
- const materialize = (node) => {
157
- if (isNode(node, 'Ampersand')) {
158
- const amp = node;
159
- const n = amp;
160
- if (n.hasFlag(F_IMPLICIT_AMPERSAND)) {
161
- const resolved = amp.getResolvedSelector();
162
- if (resolved && !(resolved instanceof Nil)) {
163
- return resolved.copy(true);
164
- }
165
- }
166
- return node.copy(true);
167
- }
168
- if (isNode(node, 'SelectorList')) {
169
- const list = node;
170
- return SelectorList.create(list.value.map(item => materialize(item))).inherit(node);
171
- }
172
- if (isNode(node, 'ComplexSelector')) {
173
- const complex = node;
174
- const parts = [];
175
- for (const part of complex.value) {
176
- if (isNode(part, 'Ampersand')) {
177
- const amp = part;
178
- const n = amp;
179
- if (n.hasFlag(F_IMPLICIT_AMPERSAND)) {
180
- const resolved = amp.getResolvedSelector();
181
- if (resolved && !(resolved instanceof Nil)) {
182
- const repl = materialize(resolved);
183
- if (isNode(repl, 'ComplexSelector')) {
184
- parts.push(...repl.value.map(c => c.copy(true)));
185
- }
186
- else {
187
- parts.push(repl);
188
- }
189
- continue;
190
- }
191
- }
192
- }
193
- parts.push(materialize(part));
194
- }
195
- return ComplexSelector.create(parts).inherit(node);
196
- }
197
- const arr = node.value;
198
- if (Array.isArray(arr)) {
199
- const cloned = node.copy(true);
200
- cloned.value = arr.map(item => materialize(item));
201
- return cloned;
202
- }
203
- return node.copy(true);
204
- };
205
- return materialize(sel);
206
- }
207
- static isBareAmpersandSelector(sel) {
208
- if (!sel || sel instanceof Nil) {
209
- return false;
210
- }
211
- if (isNode(sel, 'Ampersand')) {
212
- return true;
213
- }
214
- if (isNode(sel, 'SelectorList')) {
215
- return sel.value.every(item => isNode(item, 'Ampersand'));
216
- }
217
- return false;
218
- }
219
- static hasExtendedTopLevelSelector(sel) {
220
- if (!sel || sel instanceof Nil) {
221
- return false;
222
- }
223
- if (isNode(sel, 'SelectorList')) {
224
- return sel.value.some(item => item.hasFlag(F_EXTENDED));
225
- }
226
- return sel.hasFlag(F_EXTENDED);
227
- }
228
- static filterExtendedTopLevelSelectorItems(sel) {
229
- if (!isNode(sel, 'SelectorList')) {
230
- return (sel.hasFlag(F_EXTENDED) && !sel.hasFlag(F_EXTEND_TARGET)) ? sel : new Nil();
231
- }
232
- const seen = new Set();
233
- const kept = [];
234
- for (const item of sel.value) {
235
- if (!item.hasFlag(F_EXTENDED) || item.hasFlag(F_EXTEND_TARGET)) {
236
- continue;
237
- }
238
- const key = item.valueOf();
239
- if (seen.has(key)) {
240
- continue;
241
- }
242
- seen.add(key);
243
- kept.push(item.copy(true));
244
- }
245
- if (kept.length === 0) {
246
- return new Nil();
247
- }
248
- if (kept.length === 1) {
249
- return kept[0];
250
- }
251
- return SelectorList.create(kept).inherit(sel);
252
- }
253
- getHeaderString(options, withoutComments) {
254
- const w = options.writer;
255
- const { selector } = this.value;
256
- const idt = indent(options.depth);
257
- // Should never be called for Nil selectors (serializeRulesContainer guards this),
258
- // but keep it safe for TypeScript and invariants.
259
- if (selector instanceof Nil) {
260
- return '';
261
- }
262
- const normalizedResult = processLeadingIs(selector);
263
- const normalizedSelector = Array.isArray(normalizedResult)
264
- ? SelectorList.create(normalizedResult.map(s => s.copy(true))).inherit(selector)
265
- : normalizedResult;
266
- this.value.selector = normalizedSelector;
267
- this.invalidateSelectorValueCache();
268
- let renderSelector = withoutComments ? this.value.selector.copy(true) : this.value.selector;
269
- if (this.hoistToRoot && options.depth === 0 && !(renderSelector instanceof Nil)) {
270
- renderSelector = Ruleset.materializeHoistedImplicitAmpersands(renderSelector);
271
- }
272
- const renderNormalizedResult = processLeadingIs(renderSelector);
273
- renderSelector = Array.isArray(renderNormalizedResult)
274
- ? SelectorList.create(renderNormalizedResult.map(s => s.copy(true))).inherit(renderSelector)
275
- : renderNormalizedResult;
276
- if (options.referenceMode === true
277
- && options.referenceRenderEnabled === true
278
- && !(renderSelector instanceof Nil)
279
- && Ruleset.hasExtendedTopLevelSelector(renderSelector)) {
280
- renderSelector = Ruleset.filterExtendedTopLevelSelectorItems(renderSelector);
281
- if (renderSelector instanceof Nil) {
282
- return '';
283
- }
284
- this.value.selector = renderSelector;
285
- this.invalidateSelectorValueCache();
286
- }
287
- const prevReferenceFilterTargets = options.referenceFilterTargets === true;
288
- const disableTargetFilteringForTopLevelList = (this.hasFlag(F_EXTENDED)
289
- && !(renderSelector instanceof Nil)
290
- && isNode(renderSelector, 'SelectorList'));
291
- options.referenceFilterTargets = (options.referenceMode === true
292
- && options.referenceRenderEnabled === true
293
- && !disableTargetFilteringForTopLevelList);
294
- Ruleset.ensureSelectorVisible(renderSelector);
295
- const rulesetId = ensureRulesetTraceId(this);
296
- let out = withoutComments ? '' : w.capture(() => this.processPrePost('pre', undefined, options));
297
- let selOut = w.capture(() => renderSelector.toString(options));
298
- options.referenceFilterTargets = prevReferenceFilterTargets;
299
- /** Normalize single spacing */
300
- out += selOut.replace(/[ \t]+/g, ' ');
301
- return normalizeIndent(selOut.replace(/\s+$/, '') + ' {', idt) + '\n';
302
- }
303
- preEval(context) {
304
- if (!this.preEvaluated) {
305
- const node = this.maybeClone(context);
306
- node.preEvaluated = true;
307
- // Index should already be assigned by parent Rules
308
- node.sourceNode ??= this;
309
- let { selector, rules, guard } = node.value;
310
- // Generated wrapper rulesets (e.g. implicit `& { ... }` created by AtRule hoisting)
311
- // should not force var visibility to `private`, otherwise sibling vars inside the wrapper
312
- // (like Less `@base`) become inaccessible.
313
- if (!node.options.generated) {
314
- if (context.leakyRules) {
315
- rules.options.rulesVisibility.Mixin = 'public';
316
- rules.options.rulesVisibility.VarDeclaration = 'optional';
317
- }
318
- else {
319
- rules.options.rulesVisibility.Mixin = 'private';
320
- rules.options.rulesVisibility.VarDeclaration = 'private';
321
- }
322
- }
323
- // Check if there's a root-only at-rule between us and the parent ruleset
324
- // If so, don't inherit the parent selector (root-only at-rules like @keyframes
325
- // don't propagate parent selectors to their children)
326
- let shouldInheritSelector = true;
327
- const parentRuleset = context.rulesetFrames.at(-1);
328
- const parentRulesetIndex = parentRuleset ? context.frames.lastIndexOf(parentRuleset) : -1;
329
- if (parentRulesetIndex >= 0) {
330
- // Check frames after the parent ruleset for any root-only at-rules
331
- for (let i = parentRulesetIndex + 1; i < context.frames.length; i++) {
332
- const frame = context.frames[i];
333
- if (isNode(frame, 'AtRule') && frame.isRootOnly()) {
334
- shouldInheritSelector = false;
335
- break;
336
- }
337
- }
338
- }
339
- const parentSelector = parentRuleset?.selector;
340
- // Store own selector before parent resolution so extend can extend .replace,.c not the resolved form.
341
- if (node.options) {
342
- node.options.ownSelector = selector;
343
- }
344
- else {
345
- node.options = { ownSelector: selector };
346
- }
347
- if (parentSelector && !(parentSelector instanceof Nil) && !(selector instanceof Nil) && parentRuleset) {
348
- let selectorForImplicit = selector;
349
- const shouldCanonicalizeSelectorList = (!context.opts.collapseNesting
350
- && isNode(selector, 'SelectorList')
351
- && selector.value.some(item => isNode(item, 'ComplexSelector')));
352
- if (shouldCanonicalizeSelectorList) {
353
- const synthetic = PseudoSelector.create({ name: ':is', arg: selector.copy(true) });
354
- synthetic.generated = true;
355
- selectorForImplicit = synthetic;
356
- }
357
- selector = getImplicitSelectorUtil(selectorForImplicit, parentRuleset, context.opts.collapseNesting);
358
- selector.sourceNode = node === this ? selector.clone(true) : selector;
359
- }
360
- // DO NOT evaluate guard here - guards are evaluated at call time in getFunctionFromMixins
361
- // Just evaluate the selector
362
- return pipe(() => selector.eval(context), (sel) => {
363
- // If this ruleset shares its value with a descendant ruleset, give descendants
364
- // their own value before we overwrite value.selector so they keep their selector.
365
- Ruleset.ensureDescendantRulesetsHaveOwnValue(node, node.value);
366
- // Store the evaluated selector - this is what will be in the frame
367
- node.value.selector = sel;
368
- if (sel.hoistToRoot) {
369
- node.hoistToRoot = true;
370
- }
371
- // Register to extend root's registry for extend lookups
372
- const extendRoot = context.extendRoots.getCurrentExtendRoot();
373
- if (extendRoot) {
374
- extendRoot.getRegistry('ruleset').add(node);
375
- // Keep a per-root registry list for visibility processing
376
- registerRulesetWithRoot(extendRoot, node);
377
- }
378
- // Depth-first: preEval child rules immediately so all nested rulesets/extends
379
- // are registered in source order before we process extends.
380
- // Push this ruleset to the frame so nested rulesets get the correct parent selector
381
- // when building implicit selectors (e.g. .header-nav inside .header → .header .header-nav).
382
- const childRules = node.value.rules;
383
- if (childRules && !childRules.preEvaluated) {
384
- context.rulesetFrames.push(node);
385
- const preEvaldRules = childRules.preEval(context);
386
- if (isThenable(preEvaldRules)) {
387
- return preEvaldRules.then((rules) => {
388
- context.rulesetFrames.pop();
389
- node.value.rules = rules;
390
- return node;
391
- });
392
- }
393
- context.rulesetFrames.pop();
394
- node.value.rules = preEvaldRules;
395
- }
396
- return node;
397
- });
398
- }
399
- return this;
400
- }
401
- /** Attach an (invisible) ampersand to the selector(s) if it's not already there */
402
- getImplicitSelector(parentSelector, collapseNesting = false) {
403
- if (this.selector instanceof Nil) {
404
- return this.selector;
405
- }
406
- return getImplicitSelectorUtil(this.selector, parentSelector, collapseNesting);
407
- }
408
- copy(deep) {
409
- const node = super.copy(deep);
410
- const selectorSourceNode = this.value.selector.sourceNode;
411
- node.value.selector = selectorSourceNode.copy(true);
412
- node.value.selector.sourceNode = selectorSourceNode;
413
- return node;
414
- }
415
- evalNode(context) {
416
- if (this.evaluated) {
417
- return this;
418
- }
419
- let pushedFrames = false;
420
- /** Should have been maybe cloned in preEval */
421
- this.evaluated = true;
422
- const collapseNesting = context.opts.collapseNesting;
423
- // Store frames snapshot for collapseNesting serialization
424
- if (collapseNesting) {
425
- this.frames = [...context.frames];
426
- }
427
- return pipe(() => {
428
- const selectorText = String(this.value.selector?.valueOf?.() ?? '');
429
- if (selectorText.includes('.call-lock-mixin')
430
- || selectorText.includes('#guarded-caller')
431
- || selectorText.includes('#guarded-deeper')) {
432
- }
433
- let { guard } = this.value;
434
- // Guard was already set to Nil (failed in a previous eval)
435
- if (guard instanceof Nil) {
436
- return guard;
437
- }
438
- // Evaluate guard at definition time (not call time like mixins)
439
- // This is different from mixins because rulesets can't use caller scope for guards
440
- if (guard) {
441
- return pipe(() => guard.eval(context), (guardResult) => {
442
- const selectorText = String(this.value.selector?.valueOf?.() ?? '');
443
- const guardPasses = Boolean(guardResult instanceof Bool && guardResult.value === true);
444
- if (selectorText.includes('#guarded') || selectorText.includes('#top') || selectorText.includes('#deeper')) {
445
- }
446
- if (!guardPasses) {
447
- // Guard failed - mark as Nil and return it
448
- this.value.guard = new Nil();
449
- return new Nil();
450
- }
451
- // Guard passed - clear it and continue with selector evaluation
452
- this.value.guard = undefined;
453
- return undefined;
454
- });
455
- }
456
- return undefined;
457
- }, (guardResult) => {
458
- // If guard failed, return Nil (ruleset produces no output)
459
- if (guardResult instanceof Nil) {
460
- return guardResult;
461
- }
462
- let { selector } = this.value;
463
- const frame = atIndex(context.rulesetFrames, -1);
464
- if (frame && (this.hoistToRoot ?? context.opts.collapseNesting)) {
465
- this.hoistToRoot = true;
466
- }
467
- if (selector instanceof Nil) {
468
- // If selector evaluates to Nil, return the rules body directly instead of the ruleset
469
- // This allows rules to be output even when there's no selector context
470
- // We don't push frames because there's no selector context
471
- // Store Nil in selector so next step can detect this case
472
- this.value.selector = selector;
473
- const evaluatedRules = this.value.rules.eval(context);
474
- // Update this.value.rules to point to evaluated Rules to prevent circular reference
475
- // when debug code traverses the AST
476
- if (isThenable(evaluatedRules)) {
477
- return evaluatedRules.then((rules) => {
478
- this.value.rules = rules;
479
- return rules;
480
- });
481
- }
482
- this.value.rules = evaluatedRules;
483
- return evaluatedRules;
484
- }
485
- // Preserve the sourceNode from the current selector before replacing it
486
- const preservedSourceNode = this.value.selector?.sourceNode;
487
- this.value.selector = selector;
488
- // Restore the sourceNode on the new selector so it's available when copying
489
- if (preservedSourceNode && this.value.selector) {
490
- this.value.selector.sourceNode = preservedSourceNode;
491
- }
492
- if (context.opts.collapseNesting) {
493
- this.hoistToRoot = true;
494
- }
495
- context.rulesetFrames.push(this);
496
- context.frames.push(this);
497
- pushedFrames = true;
498
- return this.value.rules.eval(context);
499
- }, (evaluatedRules) => {
500
- if (pushedFrames) {
501
- context.rulesetFrames.pop();
502
- context.frames.pop();
503
- }
504
- if (evaluatedRules instanceof Nil) {
505
- return evaluatedRules;
506
- }
507
- const selectorText = String(this.value.selector?.valueOf?.() ?? '');
508
- if (selectorText.includes('.call-lock-mixin')
509
- || selectorText.includes('#guarded-caller')
510
- || selectorText.includes('#guarded-deeper')) {
511
- }
512
- // If selector was Nil, evaluatedRules is already Rules (not wrapped in Ruleset)
513
- // In that case, return it directly without wrapping back in Ruleset
514
- if (this.value.selector instanceof Nil) {
515
- // Selector was Nil, so we already returned Rules directly - just return it
516
- return evaluatedRules;
517
- }
518
- this.value.rules = evaluatedRules;
519
- const rules = this.value.rules;
520
- if (rules.visibleRules().length === 0) {
521
- this.removeFlag(F_VISIBLE);
522
- }
523
- return this;
524
- });
525
- }
526
- }
527
- export const ruleset = defineType(Ruleset, 'Ruleset');
528
- //# sourceMappingURL=ruleset.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ruleset.js","sourceRoot":"","sources":["../../src/tree/ruleset.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- import { type LocationInfo, type Node } from './node.js';
2
- import { type TreeContext } from '../context.js';
3
- import { SimpleSelector } from './selector-simple.js';
4
- import { type PrintOptions } from './util/print.js';
5
- import type { Context } from '../context.js';
6
- import { type MaybePromise } from '@jesscss/awaitable-pipe';
7
- export type AttributeSelectorValue = {
8
- /** The name of the attribute */
9
- name: string | Node;
10
- /** The operator */
11
- op?: string;
12
- /** The value of the attribute */
13
- value?: Node;
14
- /** The modifier (case insensitivity) */
15
- mod?: string;
16
- };
17
- /**
18
- * An attribute selector
19
- * @see https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors
20
- * e.g. [id="foo"]
21
- */
22
- export declare class AttributeSelector extends SimpleSelector<AttributeSelectorValue> {
23
- type: "AttributeSelector";
24
- shortType: "attr";
25
- evalNode(context: Context): MaybePromise<this>;
26
- toTrimmedString(options?: PrintOptions): string;
27
- valueOf(): string;
28
- }
29
- /** Not sure why types couldn't be properly inferred */
30
- export declare const attr: (value: AttributeSelectorValue, options?: undefined, location?: LocationInfo | 0, treeContext?: TreeContext) => AttributeSelector;
31
- //# sourceMappingURL=selector-attr.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"selector-attr.d.ts","sourceRoot":"","sources":["../../src/tree/selector-attr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,YAAY,EAAE,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,KAAK,YAAY,EAAmB,MAAM,iBAAiB,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG9E,MAAM,MAAM,sBAAsB,GAAG;IACnC,gCAAgC;IAChC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,mBAAmB;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iCAAiC;IACjC,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,wCAAwC;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;EAIE;AACF,qBAAa,iBAAkB,SAAQ,cAAc,CAAC,sBAAsB,CAAC;IAC3E,IAAI,EAAG,mBAAmB,CAAU;IACpC,SAAS,EAAG,MAAM,CAAU;IAEnB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC;IA6C9C,eAAe,CAAC,OAAO,CAAC,EAAE,YAAY;IAyBtC,OAAO;CAcjB;AAED,uDAAuD;AACvD,eAAO,MAAM,IAAI,EAAyF,CACxG,KAAK,EAAE,sBAAsB,EAC7B,OAAO,CAAC,EAAE,SAAS,EACnB,QAAQ,CAAC,EAAE,YAAY,GAAG,CAAC,EAC3B,WAAW,CAAC,EAAE,WAAW,KACtB,iBAAiB,CAAC"}