@jesscss/core 2.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (423) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +9 -0
  3. package/lib/context.d.ts +352 -0
  4. package/lib/context.d.ts.map +1 -0
  5. package/lib/context.js +636 -0
  6. package/lib/context.js.map +1 -0
  7. package/lib/conversions.d.ts +73 -0
  8. package/lib/conversions.d.ts.map +1 -0
  9. package/lib/conversions.js +253 -0
  10. package/lib/conversions.js.map +1 -0
  11. package/lib/debug-log.d.ts +2 -0
  12. package/lib/debug-log.d.ts.map +1 -0
  13. package/lib/debug-log.js +27 -0
  14. package/lib/debug-log.js.map +1 -0
  15. package/lib/define-function.d.ts +587 -0
  16. package/lib/define-function.d.ts.map +1 -0
  17. package/lib/define-function.js +726 -0
  18. package/lib/define-function.js.map +1 -0
  19. package/lib/deprecation.d.ts +34 -0
  20. package/lib/deprecation.d.ts.map +1 -0
  21. package/lib/deprecation.js +57 -0
  22. package/lib/deprecation.js.map +1 -0
  23. package/lib/index.d.ts +22 -0
  24. package/lib/index.d.ts.map +1 -0
  25. package/lib/index.js +23 -0
  26. package/lib/index.js.map +1 -0
  27. package/lib/jess-error.d.ts +343 -0
  28. package/lib/jess-error.d.ts.map +1 -0
  29. package/lib/jess-error.js +508 -0
  30. package/lib/jess-error.js.map +1 -0
  31. package/lib/logger/deprecation-processing.d.ts +41 -0
  32. package/lib/logger/deprecation-processing.d.ts.map +1 -0
  33. package/lib/logger/deprecation-processing.js +81 -0
  34. package/lib/logger/deprecation-processing.js.map +1 -0
  35. package/lib/logger.d.ts +10 -0
  36. package/lib/logger.d.ts.map +1 -0
  37. package/lib/logger.js +20 -0
  38. package/lib/logger.js.map +1 -0
  39. package/lib/plugin.d.ts +94 -0
  40. package/lib/plugin.d.ts.map +1 -0
  41. package/lib/plugin.js +174 -0
  42. package/lib/plugin.js.map +1 -0
  43. package/lib/tree/ampersand.d.ts +94 -0
  44. package/lib/tree/ampersand.d.ts.map +1 -0
  45. package/lib/tree/ampersand.js +269 -0
  46. package/lib/tree/ampersand.js.map +1 -0
  47. package/lib/tree/any.d.ts +58 -0
  48. package/lib/tree/any.d.ts.map +1 -0
  49. package/lib/tree/any.js +101 -0
  50. package/lib/tree/any.js.map +1 -0
  51. package/lib/tree/at-rule.d.ts +53 -0
  52. package/lib/tree/at-rule.d.ts.map +1 -0
  53. package/lib/tree/at-rule.js +503 -0
  54. package/lib/tree/at-rule.js.map +1 -0
  55. package/lib/tree/block.d.ts +22 -0
  56. package/lib/tree/block.d.ts.map +1 -0
  57. package/lib/tree/block.js +24 -0
  58. package/lib/tree/block.js.map +1 -0
  59. package/lib/tree/bool.d.ts +17 -0
  60. package/lib/tree/bool.d.ts.map +1 -0
  61. package/lib/tree/bool.js +24 -0
  62. package/lib/tree/bool.js.map +1 -0
  63. package/lib/tree/call.d.ts +66 -0
  64. package/lib/tree/call.d.ts.map +1 -0
  65. package/lib/tree/call.js +306 -0
  66. package/lib/tree/call.js.map +1 -0
  67. package/lib/tree/collection.d.ts +30 -0
  68. package/lib/tree/collection.d.ts.map +1 -0
  69. package/lib/tree/collection.js +37 -0
  70. package/lib/tree/collection.js.map +1 -0
  71. package/lib/tree/color.d.ts +101 -0
  72. package/lib/tree/color.d.ts.map +1 -0
  73. package/lib/tree/color.js +513 -0
  74. package/lib/tree/color.js.map +1 -0
  75. package/lib/tree/combinator.d.ts +12 -0
  76. package/lib/tree/combinator.d.ts.map +1 -0
  77. package/lib/tree/combinator.js +8 -0
  78. package/lib/tree/combinator.js.map +1 -0
  79. package/lib/tree/comment.d.ts +20 -0
  80. package/lib/tree/comment.d.ts.map +1 -0
  81. package/lib/tree/comment.js +18 -0
  82. package/lib/tree/comment.js.map +1 -0
  83. package/lib/tree/condition.d.ts +31 -0
  84. package/lib/tree/condition.d.ts.map +1 -0
  85. package/lib/tree/condition.js +103 -0
  86. package/lib/tree/condition.js.map +1 -0
  87. package/lib/tree/control.d.ts +104 -0
  88. package/lib/tree/control.d.ts.map +1 -0
  89. package/lib/tree/control.js +430 -0
  90. package/lib/tree/control.js.map +1 -0
  91. package/lib/tree/declaration-custom.d.ts +18 -0
  92. package/lib/tree/declaration-custom.d.ts.map +1 -0
  93. package/lib/tree/declaration-custom.js +24 -0
  94. package/lib/tree/declaration-custom.js.map +1 -0
  95. package/lib/tree/declaration-var.d.ts +36 -0
  96. package/lib/tree/declaration-var.d.ts.map +1 -0
  97. package/lib/tree/declaration-var.js +63 -0
  98. package/lib/tree/declaration-var.js.map +1 -0
  99. package/lib/tree/declaration.d.ts +78 -0
  100. package/lib/tree/declaration.d.ts.map +1 -0
  101. package/lib/tree/declaration.js +289 -0
  102. package/lib/tree/declaration.js.map +1 -0
  103. package/lib/tree/default-guard.d.ts +15 -0
  104. package/lib/tree/default-guard.d.ts.map +1 -0
  105. package/lib/tree/default-guard.js +19 -0
  106. package/lib/tree/default-guard.js.map +1 -0
  107. package/lib/tree/dimension.d.ts +33 -0
  108. package/lib/tree/dimension.d.ts.map +1 -0
  109. package/lib/tree/dimension.js +291 -0
  110. package/lib/tree/dimension.js.map +1 -0
  111. package/lib/tree/expression.d.ts +24 -0
  112. package/lib/tree/expression.d.ts.map +1 -0
  113. package/lib/tree/expression.js +28 -0
  114. package/lib/tree/expression.js.map +1 -0
  115. package/lib/tree/extend-list.d.ts +23 -0
  116. package/lib/tree/extend-list.d.ts.map +1 -0
  117. package/lib/tree/extend-list.js +20 -0
  118. package/lib/tree/extend-list.js.map +1 -0
  119. package/lib/tree/extend.d.ts +47 -0
  120. package/lib/tree/extend.d.ts.map +1 -0
  121. package/lib/tree/extend.js +292 -0
  122. package/lib/tree/extend.js.map +1 -0
  123. package/lib/tree/function.d.ts +48 -0
  124. package/lib/tree/function.d.ts.map +1 -0
  125. package/lib/tree/function.js +74 -0
  126. package/lib/tree/function.js.map +1 -0
  127. package/lib/tree/import-js.d.ts +35 -0
  128. package/lib/tree/import-js.d.ts.map +1 -0
  129. package/lib/tree/import-js.js +45 -0
  130. package/lib/tree/import-js.js.map +1 -0
  131. package/lib/tree/import-style.d.ts +156 -0
  132. package/lib/tree/import-style.d.ts.map +1 -0
  133. package/lib/tree/import-style.js +556 -0
  134. package/lib/tree/import-style.js.map +1 -0
  135. package/lib/tree/index.d.ts +71 -0
  136. package/lib/tree/index.d.ts.map +1 -0
  137. package/lib/tree/index.js +95 -0
  138. package/lib/tree/index.js.map +1 -0
  139. package/lib/tree/interpolated-reference.d.ts +24 -0
  140. package/lib/tree/interpolated-reference.d.ts.map +1 -0
  141. package/lib/tree/interpolated-reference.js +37 -0
  142. package/lib/tree/interpolated-reference.js.map +1 -0
  143. package/lib/tree/interpolated.d.ts +62 -0
  144. package/lib/tree/interpolated.d.ts.map +1 -0
  145. package/lib/tree/interpolated.js +204 -0
  146. package/lib/tree/interpolated.js.map +1 -0
  147. package/lib/tree/js-array.d.ts +10 -0
  148. package/lib/tree/js-array.d.ts.map +1 -0
  149. package/lib/tree/js-array.js +10 -0
  150. package/lib/tree/js-array.js.map +1 -0
  151. package/lib/tree/js-expr.d.ts +23 -0
  152. package/lib/tree/js-expr.d.ts.map +1 -0
  153. package/lib/tree/js-expr.js +28 -0
  154. package/lib/tree/js-expr.js.map +1 -0
  155. package/lib/tree/js-function.d.ts +20 -0
  156. package/lib/tree/js-function.d.ts.map +1 -0
  157. package/lib/tree/js-function.js +16 -0
  158. package/lib/tree/js-function.js.map +1 -0
  159. package/lib/tree/js-object.d.ts +10 -0
  160. package/lib/tree/js-object.d.ts.map +1 -0
  161. package/lib/tree/js-object.js +10 -0
  162. package/lib/tree/js-object.js.map +1 -0
  163. package/lib/tree/list.d.ts +38 -0
  164. package/lib/tree/list.d.ts.map +1 -0
  165. package/lib/tree/list.js +83 -0
  166. package/lib/tree/list.js.map +1 -0
  167. package/lib/tree/log.d.ts +29 -0
  168. package/lib/tree/log.d.ts.map +1 -0
  169. package/lib/tree/log.js +56 -0
  170. package/lib/tree/log.js.map +1 -0
  171. package/lib/tree/mixin.d.ts +87 -0
  172. package/lib/tree/mixin.d.ts.map +1 -0
  173. package/lib/tree/mixin.js +112 -0
  174. package/lib/tree/mixin.js.map +1 -0
  175. package/lib/tree/negative.d.ts +17 -0
  176. package/lib/tree/negative.d.ts.map +1 -0
  177. package/lib/tree/negative.js +22 -0
  178. package/lib/tree/negative.js.map +1 -0
  179. package/lib/tree/nil.d.ts +31 -0
  180. package/lib/tree/nil.d.ts.map +1 -0
  181. package/lib/tree/nil.js +36 -0
  182. package/lib/tree/nil.js.map +1 -0
  183. package/lib/tree/node-base.d.ts +359 -0
  184. package/lib/tree/node-base.d.ts.map +1 -0
  185. package/lib/tree/node-base.js +884 -0
  186. package/lib/tree/node-base.js.map +1 -0
  187. package/lib/tree/node.d.ts +10 -0
  188. package/lib/tree/node.d.ts.map +1 -0
  189. package/lib/tree/node.js +45 -0
  190. package/lib/tree/node.js.map +1 -0
  191. package/lib/tree/number.d.ts +21 -0
  192. package/lib/tree/number.d.ts.map +1 -0
  193. package/lib/tree/number.js +27 -0
  194. package/lib/tree/number.js.map +1 -0
  195. package/lib/tree/operation.d.ts +26 -0
  196. package/lib/tree/operation.d.ts.map +1 -0
  197. package/lib/tree/operation.js +103 -0
  198. package/lib/tree/operation.js.map +1 -0
  199. package/lib/tree/paren.d.ts +18 -0
  200. package/lib/tree/paren.d.ts.map +1 -0
  201. package/lib/tree/paren.js +86 -0
  202. package/lib/tree/paren.js.map +1 -0
  203. package/lib/tree/query-condition.d.ts +17 -0
  204. package/lib/tree/query-condition.d.ts.map +1 -0
  205. package/lib/tree/query-condition.js +39 -0
  206. package/lib/tree/query-condition.js.map +1 -0
  207. package/lib/tree/quoted.d.ts +27 -0
  208. package/lib/tree/quoted.d.ts.map +1 -0
  209. package/lib/tree/quoted.js +66 -0
  210. package/lib/tree/quoted.js.map +1 -0
  211. package/lib/tree/range.d.ts +33 -0
  212. package/lib/tree/range.d.ts.map +1 -0
  213. package/lib/tree/range.js +47 -0
  214. package/lib/tree/range.js.map +1 -0
  215. package/lib/tree/reference.d.ts +76 -0
  216. package/lib/tree/reference.d.ts.map +1 -0
  217. package/lib/tree/reference.js +521 -0
  218. package/lib/tree/reference.js.map +1 -0
  219. package/lib/tree/rest.d.ts +15 -0
  220. package/lib/tree/rest.d.ts.map +1 -0
  221. package/lib/tree/rest.js +32 -0
  222. package/lib/tree/rest.js.map +1 -0
  223. package/lib/tree/rules-raw.d.ts +17 -0
  224. package/lib/tree/rules-raw.d.ts.map +1 -0
  225. package/lib/tree/rules-raw.js +37 -0
  226. package/lib/tree/rules-raw.js.map +1 -0
  227. package/lib/tree/rules.d.ts +255 -0
  228. package/lib/tree/rules.d.ts.map +1 -0
  229. package/lib/tree/rules.js +2293 -0
  230. package/lib/tree/rules.js.map +1 -0
  231. package/lib/tree/ruleset.d.ts +91 -0
  232. package/lib/tree/ruleset.d.ts.map +1 -0
  233. package/lib/tree/ruleset.js +506 -0
  234. package/lib/tree/ruleset.js.map +1 -0
  235. package/lib/tree/selector-attr.d.ts +31 -0
  236. package/lib/tree/selector-attr.d.ts.map +1 -0
  237. package/lib/tree/selector-attr.js +99 -0
  238. package/lib/tree/selector-attr.js.map +1 -0
  239. package/lib/tree/selector-basic.d.ts +23 -0
  240. package/lib/tree/selector-basic.d.ts.map +1 -0
  241. package/lib/tree/selector-basic.js +34 -0
  242. package/lib/tree/selector-basic.js.map +1 -0
  243. package/lib/tree/selector-capture.d.ts +23 -0
  244. package/lib/tree/selector-capture.d.ts.map +1 -0
  245. package/lib/tree/selector-capture.js +34 -0
  246. package/lib/tree/selector-capture.js.map +1 -0
  247. package/lib/tree/selector-complex.d.ts +40 -0
  248. package/lib/tree/selector-complex.d.ts.map +1 -0
  249. package/lib/tree/selector-complex.js +143 -0
  250. package/lib/tree/selector-complex.js.map +1 -0
  251. package/lib/tree/selector-compound.d.ts +16 -0
  252. package/lib/tree/selector-compound.d.ts.map +1 -0
  253. package/lib/tree/selector-compound.js +114 -0
  254. package/lib/tree/selector-compound.js.map +1 -0
  255. package/lib/tree/selector-interpolated.d.ts +23 -0
  256. package/lib/tree/selector-interpolated.d.ts.map +1 -0
  257. package/lib/tree/selector-interpolated.js +27 -0
  258. package/lib/tree/selector-interpolated.js.map +1 -0
  259. package/lib/tree/selector-list.d.ts +17 -0
  260. package/lib/tree/selector-list.d.ts.map +1 -0
  261. package/lib/tree/selector-list.js +184 -0
  262. package/lib/tree/selector-list.js.map +1 -0
  263. package/lib/tree/selector-pseudo.d.ts +42 -0
  264. package/lib/tree/selector-pseudo.d.ts.map +1 -0
  265. package/lib/tree/selector-pseudo.js +191 -0
  266. package/lib/tree/selector-pseudo.js.map +1 -0
  267. package/lib/tree/selector-simple.d.ts +5 -0
  268. package/lib/tree/selector-simple.d.ts.map +1 -0
  269. package/lib/tree/selector-simple.js +6 -0
  270. package/lib/tree/selector-simple.js.map +1 -0
  271. package/lib/tree/selector.d.ts +43 -0
  272. package/lib/tree/selector.d.ts.map +1 -0
  273. package/lib/tree/selector.js +56 -0
  274. package/lib/tree/selector.js.map +1 -0
  275. package/lib/tree/sequence.d.ts +43 -0
  276. package/lib/tree/sequence.d.ts.map +1 -0
  277. package/lib/tree/sequence.js +148 -0
  278. package/lib/tree/sequence.js.map +1 -0
  279. package/lib/tree/tree.d.ts +87 -0
  280. package/lib/tree/tree.d.ts.map +1 -0
  281. package/lib/tree/tree.js +2 -0
  282. package/lib/tree/tree.js.map +1 -0
  283. package/lib/tree/url.d.ts +18 -0
  284. package/lib/tree/url.d.ts.map +1 -0
  285. package/lib/tree/url.js +35 -0
  286. package/lib/tree/url.js.map +1 -0
  287. package/lib/tree/util/__tests__/debug-log.d.ts +1 -0
  288. package/lib/tree/util/__tests__/debug-log.d.ts.map +1 -0
  289. package/lib/tree/util/__tests__/debug-log.js +36 -0
  290. package/lib/tree/util/__tests__/debug-log.js.map +1 -0
  291. package/lib/tree/util/calculate.d.ts +3 -0
  292. package/lib/tree/util/calculate.d.ts.map +1 -0
  293. package/lib/tree/util/calculate.js +10 -0
  294. package/lib/tree/util/calculate.js.map +1 -0
  295. package/lib/tree/util/cast.d.ts +10 -0
  296. package/lib/tree/util/cast.d.ts.map +1 -0
  297. package/lib/tree/util/cast.js +87 -0
  298. package/lib/tree/util/cast.js.map +1 -0
  299. package/lib/tree/util/cloning.d.ts +4 -0
  300. package/lib/tree/util/cloning.d.ts.map +1 -0
  301. package/lib/tree/util/cloning.js +8 -0
  302. package/lib/tree/util/cloning.js.map +1 -0
  303. package/lib/tree/util/collections.d.ts +57 -0
  304. package/lib/tree/util/collections.d.ts.map +1 -0
  305. package/lib/tree/util/collections.js +136 -0
  306. package/lib/tree/util/collections.js.map +1 -0
  307. package/lib/tree/util/compare.d.ts +11 -0
  308. package/lib/tree/util/compare.d.ts.map +1 -0
  309. package/lib/tree/util/compare.js +89 -0
  310. package/lib/tree/util/compare.js.map +1 -0
  311. package/lib/tree/util/extend-helpers.d.ts +2 -0
  312. package/lib/tree/util/extend-helpers.d.ts.map +1 -0
  313. package/lib/tree/util/extend-helpers.js +2 -0
  314. package/lib/tree/util/extend-helpers.js.map +1 -0
  315. package/lib/tree/util/extend-roots.d.ts +37 -0
  316. package/lib/tree/util/extend-roots.d.ts.map +1 -0
  317. package/lib/tree/util/extend-roots.js +682 -0
  318. package/lib/tree/util/extend-roots.js.map +1 -0
  319. package/lib/tree/util/extend-roots.old.d.ts +132 -0
  320. package/lib/tree/util/extend-roots.old.d.ts.map +1 -0
  321. package/lib/tree/util/extend-roots.old.js +2272 -0
  322. package/lib/tree/util/extend-roots.old.js.map +1 -0
  323. package/lib/tree/util/extend-trace-debug.d.ts +13 -0
  324. package/lib/tree/util/extend-trace-debug.d.ts.map +1 -0
  325. package/lib/tree/util/extend-trace-debug.js +34 -0
  326. package/lib/tree/util/extend-trace-debug.js.map +1 -0
  327. package/lib/tree/util/extend.d.ts +218 -0
  328. package/lib/tree/util/extend.d.ts.map +1 -0
  329. package/lib/tree/util/extend.js +3033 -0
  330. package/lib/tree/util/extend.js.map +1 -0
  331. package/lib/tree/util/find-extendable-locations.d.ts +2 -0
  332. package/lib/tree/util/find-extendable-locations.d.ts.map +1 -0
  333. package/lib/tree/util/find-extendable-locations.js +2 -0
  334. package/lib/tree/util/find-extendable-locations.js.map +1 -0
  335. package/lib/tree/util/format.d.ts +20 -0
  336. package/lib/tree/util/format.d.ts.map +1 -0
  337. package/lib/tree/util/format.js +67 -0
  338. package/lib/tree/util/format.js.map +1 -0
  339. package/lib/tree/util/is-node.d.ts +13 -0
  340. package/lib/tree/util/is-node.d.ts.map +1 -0
  341. package/lib/tree/util/is-node.js +43 -0
  342. package/lib/tree/util/is-node.js.map +1 -0
  343. package/lib/tree/util/print.d.ts +80 -0
  344. package/lib/tree/util/print.d.ts.map +1 -0
  345. package/lib/tree/util/print.js +205 -0
  346. package/lib/tree/util/print.js.map +1 -0
  347. package/lib/tree/util/process-leading-is.d.ts +25 -0
  348. package/lib/tree/util/process-leading-is.d.ts.map +1 -0
  349. package/lib/tree/util/process-leading-is.js +364 -0
  350. package/lib/tree/util/process-leading-is.js.map +1 -0
  351. package/lib/tree/util/recursion-helper.d.ts +15 -0
  352. package/lib/tree/util/recursion-helper.d.ts.map +1 -0
  353. package/lib/tree/util/recursion-helper.js +43 -0
  354. package/lib/tree/util/recursion-helper.js.map +1 -0
  355. package/lib/tree/util/regex.d.ts +4 -0
  356. package/lib/tree/util/regex.d.ts.map +1 -0
  357. package/lib/tree/util/regex.js +4 -0
  358. package/lib/tree/util/regex.js.map +1 -0
  359. package/lib/tree/util/registry-utils.d.ts +192 -0
  360. package/lib/tree/util/registry-utils.d.ts.map +1 -0
  361. package/lib/tree/util/registry-utils.js +1242 -0
  362. package/lib/tree/util/registry-utils.js.map +1 -0
  363. package/lib/tree/util/ruleset-trace.d.ts +4 -0
  364. package/lib/tree/util/ruleset-trace.d.ts.map +1 -0
  365. package/lib/tree/util/ruleset-trace.js +14 -0
  366. package/lib/tree/util/ruleset-trace.js.map +1 -0
  367. package/lib/tree/util/selector-compare.d.ts +2 -0
  368. package/lib/tree/util/selector-compare.d.ts.map +1 -0
  369. package/lib/tree/util/selector-compare.js +2 -0
  370. package/lib/tree/util/selector-compare.js.map +1 -0
  371. package/lib/tree/util/selector-match-core.d.ts +171 -0
  372. package/lib/tree/util/selector-match-core.d.ts.map +1 -0
  373. package/lib/tree/util/selector-match-core.js +1578 -0
  374. package/lib/tree/util/selector-match-core.js.map +1 -0
  375. package/lib/tree/util/selector-utils.d.ts +30 -0
  376. package/lib/tree/util/selector-utils.d.ts.map +1 -0
  377. package/lib/tree/util/selector-utils.js +100 -0
  378. package/lib/tree/util/selector-utils.js.map +1 -0
  379. package/lib/tree/util/serialize-helper.d.ts +13 -0
  380. package/lib/tree/util/serialize-helper.d.ts.map +1 -0
  381. package/lib/tree/util/serialize-helper.js +387 -0
  382. package/lib/tree/util/serialize-helper.js.map +1 -0
  383. package/lib/tree/util/serialize-types.d.ts +9 -0
  384. package/lib/tree/util/serialize-types.d.ts.map +1 -0
  385. package/lib/tree/util/serialize-types.js +216 -0
  386. package/lib/tree/util/serialize-types.js.map +1 -0
  387. package/lib/tree/util/should-operate.d.ts +23 -0
  388. package/lib/tree/util/should-operate.d.ts.map +1 -0
  389. package/lib/tree/util/should-operate.js +46 -0
  390. package/lib/tree/util/should-operate.js.map +1 -0
  391. package/lib/tree/util/sourcemap.d.ts +7 -0
  392. package/lib/tree/util/sourcemap.d.ts.map +1 -0
  393. package/lib/tree/util/sourcemap.js +25 -0
  394. package/lib/tree/util/sourcemap.js.map +1 -0
  395. package/lib/types/config.d.ts +205 -0
  396. package/lib/types/config.d.ts.map +1 -0
  397. package/lib/types/config.js +2 -0
  398. package/lib/types/config.js.map +1 -0
  399. package/lib/types/index.d.ts +15 -0
  400. package/lib/types/index.d.ts.map +1 -0
  401. package/lib/types/index.js +3 -0
  402. package/lib/types/index.js.map +1 -0
  403. package/lib/types/modes.d.ts +24 -0
  404. package/lib/types/modes.d.ts.map +1 -0
  405. package/lib/types/modes.js +2 -0
  406. package/lib/types/modes.js.map +1 -0
  407. package/lib/types.d.ts +61 -0
  408. package/lib/types.d.ts.map +1 -0
  409. package/lib/types.js +2 -0
  410. package/lib/types.js.map +1 -0
  411. package/lib/use-webpack-resolver.d.ts +9 -0
  412. package/lib/use-webpack-resolver.d.ts.map +1 -0
  413. package/lib/use-webpack-resolver.js +41 -0
  414. package/lib/use-webpack-resolver.js.map +1 -0
  415. package/lib/visitor/index.d.ts +136 -0
  416. package/lib/visitor/index.d.ts.map +1 -0
  417. package/lib/visitor/index.js +135 -0
  418. package/lib/visitor/index.js.map +1 -0
  419. package/lib/visitor/less-visitor.d.ts +7 -0
  420. package/lib/visitor/less-visitor.d.ts.map +1 -0
  421. package/lib/visitor/less-visitor.js +7 -0
  422. package/lib/visitor/less-visitor.js.map +1 -0
  423. package/package.json +66 -0
@@ -0,0 +1,506 @@
1
+ import { Node, F_VISIBLE, F_EXTENDED, 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
+ return serializeRulesContainer(this, options);
100
+ }
101
+ /**
102
+ * Render the opening of this ruleset (selector)
103
+ * @todo - Efficiently serialize the selector with and without comments?
104
+ */
105
+ /** Ensure every node in the selector has F_VISIBLE so toString() does not skip them (rep_ace bug).
106
+ * Do NOT add F_VISIBLE to implicit ampersands: they must stay invisible so nested output stays short. */
107
+ static ensureSelectorVisible(sel) {
108
+ if (!sel || sel instanceof Nil || typeof sel.addFlag !== 'function') {
109
+ return;
110
+ }
111
+ const n = sel;
112
+ if (isNode(sel, 'Ampersand') && n.hasFlag(F_IMPLICIT_AMPERSAND)) {
113
+ return;
114
+ }
115
+ if (!n.hasFlag(F_VISIBLE)) {
116
+ n.addFlag(F_VISIBLE);
117
+ }
118
+ if (isNode(sel, 'SelectorList')) {
119
+ const list = sel;
120
+ if (Array.isArray(list.value)) {
121
+ for (const item of list.value) {
122
+ Ruleset.ensureSelectorVisible(item);
123
+ }
124
+ }
125
+ return;
126
+ }
127
+ if (isNode(sel, 'ComplexSelector')) {
128
+ const comps = sel.value;
129
+ if (Array.isArray(comps)) {
130
+ for (const c of comps) {
131
+ Ruleset.ensureSelectorVisible(c);
132
+ }
133
+ }
134
+ return;
135
+ }
136
+ const v = sel.value;
137
+ if (Array.isArray(v)) {
138
+ for (const c of v) {
139
+ Ruleset.ensureSelectorVisible(c);
140
+ }
141
+ }
142
+ }
143
+ static materializeHoistedImplicitAmpersands(sel) {
144
+ if (!sel || sel instanceof Nil) {
145
+ return sel;
146
+ }
147
+ const materialize = (node) => {
148
+ if (isNode(node, 'Ampersand')) {
149
+ const amp = node;
150
+ const n = amp;
151
+ if (n.hasFlag(F_IMPLICIT_AMPERSAND)) {
152
+ const resolved = amp.getResolvedSelector();
153
+ if (resolved && !(resolved instanceof Nil)) {
154
+ return resolved.copy(true);
155
+ }
156
+ }
157
+ return node.copy(true);
158
+ }
159
+ if (isNode(node, 'SelectorList')) {
160
+ const list = node;
161
+ return SelectorList.create(list.value.map(item => materialize(item))).inherit(node);
162
+ }
163
+ if (isNode(node, 'ComplexSelector')) {
164
+ const complex = node;
165
+ const parts = [];
166
+ for (const part of complex.value) {
167
+ if (isNode(part, 'Ampersand')) {
168
+ const amp = part;
169
+ const n = amp;
170
+ if (n.hasFlag(F_IMPLICIT_AMPERSAND)) {
171
+ const resolved = amp.getResolvedSelector();
172
+ if (resolved && !(resolved instanceof Nil)) {
173
+ const repl = materialize(resolved);
174
+ if (isNode(repl, 'ComplexSelector')) {
175
+ parts.push(...repl.value.map(c => c.copy(true)));
176
+ }
177
+ else {
178
+ parts.push(repl);
179
+ }
180
+ continue;
181
+ }
182
+ }
183
+ }
184
+ parts.push(materialize(part));
185
+ }
186
+ return ComplexSelector.create(parts).inherit(node);
187
+ }
188
+ const arr = node.value;
189
+ if (Array.isArray(arr)) {
190
+ const cloned = node.copy(true);
191
+ cloned.value = arr.map(item => materialize(item));
192
+ return cloned;
193
+ }
194
+ return node.copy(true);
195
+ };
196
+ return materialize(sel);
197
+ }
198
+ static hasExtendedTopLevelSelector(sel) {
199
+ if (!sel || sel instanceof Nil) {
200
+ return false;
201
+ }
202
+ if (isNode(sel, 'SelectorList')) {
203
+ return sel.value.some(item => item.hasFlag(F_EXTENDED));
204
+ }
205
+ return sel.hasFlag(F_EXTENDED);
206
+ }
207
+ static filterExtendedTopLevelSelectorItems(sel) {
208
+ if (!isNode(sel, 'SelectorList')) {
209
+ return sel.hasFlag(F_EXTENDED) ? sel : new Nil();
210
+ }
211
+ const seen = new Set();
212
+ const kept = [];
213
+ for (const item of sel.value) {
214
+ if (!item.hasFlag(F_EXTENDED)) {
215
+ continue;
216
+ }
217
+ const key = item.valueOf();
218
+ if (seen.has(key)) {
219
+ continue;
220
+ }
221
+ seen.add(key);
222
+ kept.push(item.copy(true));
223
+ }
224
+ if (kept.length === 0) {
225
+ return new Nil();
226
+ }
227
+ if (kept.length === 1) {
228
+ return kept[0];
229
+ }
230
+ return SelectorList.create(kept).inherit(sel);
231
+ }
232
+ getHeaderString(options, withoutComments) {
233
+ const w = options.writer;
234
+ const { selector } = this.value;
235
+ const idt = indent(options.depth);
236
+ // Should never be called for Nil selectors (serializeRulesContainer guards this),
237
+ // but keep it safe for TypeScript and invariants.
238
+ if (selector instanceof Nil) {
239
+ return '';
240
+ }
241
+ const normalizedResult = processLeadingIs(selector);
242
+ const normalizedSelector = Array.isArray(normalizedResult)
243
+ ? SelectorList.create(normalizedResult.map(s => s.copy(true))).inherit(selector)
244
+ : normalizedResult;
245
+ this.value.selector = normalizedSelector;
246
+ this.invalidateSelectorValueCache();
247
+ let renderSelector = withoutComments ? this.value.selector.copy(true) : this.value.selector;
248
+ if (this.hoistToRoot && options.depth === 0 && !(renderSelector instanceof Nil)) {
249
+ renderSelector = Ruleset.materializeHoistedImplicitAmpersands(renderSelector);
250
+ }
251
+ const renderNormalizedResult = processLeadingIs(renderSelector);
252
+ renderSelector = Array.isArray(renderNormalizedResult)
253
+ ? SelectorList.create(renderNormalizedResult.map(s => s.copy(true))).inherit(renderSelector)
254
+ : renderNormalizedResult;
255
+ if (options.referenceMode === true
256
+ && options.referenceRenderEnabled === true
257
+ && !this.hasFlag(F_EXTENDED)
258
+ && !(renderSelector instanceof Nil)
259
+ && Ruleset.hasExtendedTopLevelSelector(renderSelector)) {
260
+ renderSelector = Ruleset.filterExtendedTopLevelSelectorItems(renderSelector);
261
+ if (renderSelector instanceof Nil) {
262
+ return '';
263
+ }
264
+ }
265
+ const prevReferenceFilterTargets = options.referenceFilterTargets === true;
266
+ const disableTargetFilteringForTopLevelList = (this.hasFlag(F_EXTENDED)
267
+ && !(renderSelector instanceof Nil)
268
+ && isNode(renderSelector, 'SelectorList'));
269
+ options.referenceFilterTargets = (options.referenceMode === true
270
+ && options.referenceRenderEnabled === true
271
+ && !disableTargetFilteringForTopLevelList);
272
+ Ruleset.ensureSelectorVisible(renderSelector);
273
+ const rulesetId = ensureRulesetTraceId(this);
274
+ let out = withoutComments ? '' : w.capture(() => this.processPrePost('pre', undefined, options));
275
+ let selOut = w.capture(() => renderSelector.toString(options));
276
+ options.referenceFilterTargets = prevReferenceFilterTargets;
277
+ /** Normalize single spacing */
278
+ out += selOut.replace(/[ \t]+/g, ' ');
279
+ return normalizeIndent(selOut.replace(/\s+$/, '') + ' {', idt) + '\n';
280
+ }
281
+ preEval(context) {
282
+ if (!this.preEvaluated) {
283
+ const node = this.maybeClone(context);
284
+ node.preEvaluated = true;
285
+ // Index should already be assigned by parent Rules
286
+ node.sourceNode ??= this;
287
+ let { selector, rules, guard } = node.value;
288
+ // Generated wrapper rulesets (e.g. implicit `& { ... }` created by AtRule hoisting)
289
+ // should not force var visibility to `private`, otherwise sibling vars inside the wrapper
290
+ // (like Less `@base`) become inaccessible.
291
+ if (!node.options.generated) {
292
+ if (context.leakyRules) {
293
+ rules.options.rulesVisibility.Mixin = 'public';
294
+ rules.options.rulesVisibility.VarDeclaration = 'optional';
295
+ }
296
+ else {
297
+ rules.options.rulesVisibility.Mixin = 'private';
298
+ rules.options.rulesVisibility.VarDeclaration = 'private';
299
+ }
300
+ }
301
+ // Check if there's a root-only at-rule between us and the parent ruleset
302
+ // If so, don't inherit the parent selector (root-only at-rules like @keyframes
303
+ // don't propagate parent selectors to their children)
304
+ let shouldInheritSelector = true;
305
+ const parentRuleset = context.rulesetFrames.at(-1);
306
+ const parentRulesetIndex = parentRuleset ? context.frames.lastIndexOf(parentRuleset) : -1;
307
+ if (parentRulesetIndex >= 0) {
308
+ // Check frames after the parent ruleset for any root-only at-rules
309
+ for (let i = parentRulesetIndex + 1; i < context.frames.length; i++) {
310
+ const frame = context.frames[i];
311
+ if (isNode(frame, 'AtRule') && frame.isRootOnly()) {
312
+ shouldInheritSelector = false;
313
+ break;
314
+ }
315
+ }
316
+ }
317
+ const parentSelector = parentRuleset?.selector;
318
+ // Store own selector before parent resolution so extend can extend .replace,.c not the resolved form.
319
+ if (node.options) {
320
+ node.options.ownSelector = selector;
321
+ }
322
+ else {
323
+ node.options = { ownSelector: selector };
324
+ }
325
+ if (parentSelector && !(parentSelector instanceof Nil) && !(selector instanceof Nil) && parentRuleset) {
326
+ let selectorForImplicit = selector;
327
+ const shouldCanonicalizeSelectorList = (!context.opts.collapseNesting
328
+ && isNode(selector, 'SelectorList')
329
+ && selector.value.some(item => isNode(item, 'ComplexSelector')));
330
+ if (shouldCanonicalizeSelectorList) {
331
+ const synthetic = PseudoSelector.create({ name: ':is', arg: selector.copy(true) });
332
+ synthetic.generated = true;
333
+ selectorForImplicit = synthetic;
334
+ }
335
+ selector = getImplicitSelectorUtil(selectorForImplicit, parentRuleset, context.opts.collapseNesting);
336
+ selector.sourceNode = node === this ? selector.clone(true) : selector;
337
+ }
338
+ // DO NOT evaluate guard here - guards are evaluated at call time in getFunctionFromMixins
339
+ // Just evaluate the selector
340
+ return pipe(() => selector.eval(context), (sel) => {
341
+ // If this ruleset shares its value with a descendant ruleset, give descendants
342
+ // their own value before we overwrite value.selector so they keep their selector.
343
+ Ruleset.ensureDescendantRulesetsHaveOwnValue(node, node.value);
344
+ // Store the evaluated selector - this is what will be in the frame
345
+ node.value.selector = sel;
346
+ if (sel.hoistToRoot) {
347
+ node.hoistToRoot = true;
348
+ }
349
+ // Register to extend root's registry for extend lookups
350
+ const extendRoot = context.extendRoots.getCurrentExtendRoot();
351
+ if (extendRoot) {
352
+ extendRoot.getRegistry('ruleset').add(node);
353
+ // Keep a per-root registry list for visibility processing
354
+ registerRulesetWithRoot(extendRoot, node);
355
+ }
356
+ // Depth-first: preEval child rules immediately so all nested rulesets/extends
357
+ // are registered in source order before we process extends.
358
+ // Push this ruleset to the frame so nested rulesets get the correct parent selector
359
+ // when building implicit selectors (e.g. .header-nav inside .header → .header .header-nav).
360
+ const childRules = node.value.rules;
361
+ if (childRules && !childRules.preEvaluated) {
362
+ context.rulesetFrames.push(node);
363
+ const preEvaldRules = childRules.preEval(context);
364
+ if (isThenable(preEvaldRules)) {
365
+ return preEvaldRules.then((rules) => {
366
+ context.rulesetFrames.pop();
367
+ node.value.rules = rules;
368
+ return node;
369
+ });
370
+ }
371
+ context.rulesetFrames.pop();
372
+ node.value.rules = preEvaldRules;
373
+ }
374
+ return node;
375
+ });
376
+ }
377
+ return this;
378
+ }
379
+ /** Attach an (invisible) ampersand to the selector(s) if it's not already there */
380
+ getImplicitSelector(parentSelector, collapseNesting = false) {
381
+ if (this.selector instanceof Nil) {
382
+ return this.selector;
383
+ }
384
+ return getImplicitSelectorUtil(this.selector, parentSelector, collapseNesting);
385
+ }
386
+ copy(deep) {
387
+ const node = super.copy(deep);
388
+ const selectorSourceNode = this.value.selector.sourceNode;
389
+ node.value.selector = selectorSourceNode.copy(true);
390
+ node.value.selector.sourceNode = selectorSourceNode;
391
+ return node;
392
+ }
393
+ evalNode(context) {
394
+ if (this.evaluated) {
395
+ return this;
396
+ }
397
+ let pushedFrames = false;
398
+ /** Should have been maybe cloned in preEval */
399
+ this.evaluated = true;
400
+ const collapseNesting = context.opts.collapseNesting;
401
+ // Store frames snapshot for collapseNesting serialization
402
+ if (collapseNesting) {
403
+ this.frames = [...context.frames];
404
+ }
405
+ return pipe(() => {
406
+ const selectorText = String(this.value.selector?.valueOf?.() ?? '');
407
+ if (selectorText.includes('.call-lock-mixin')
408
+ || selectorText.includes('#guarded-caller')
409
+ || selectorText.includes('#guarded-deeper')) {
410
+ }
411
+ let { guard } = this.value;
412
+ // Guard was already set to Nil (failed in a previous eval)
413
+ if (guard instanceof Nil) {
414
+ return guard;
415
+ }
416
+ // Evaluate guard at definition time (not call time like mixins)
417
+ // This is different from mixins because rulesets can't use caller scope for guards
418
+ if (guard) {
419
+ return pipe(() => guard.eval(context), (guardResult) => {
420
+ const selectorText = String(this.value.selector?.valueOf?.() ?? '');
421
+ const guardPasses = Boolean(guardResult instanceof Bool && guardResult.value === true);
422
+ if (selectorText.includes('#guarded') || selectorText.includes('#top') || selectorText.includes('#deeper')) {
423
+ }
424
+ if (!guardPasses) {
425
+ // Guard failed - mark as Nil and return it
426
+ this.value.guard = new Nil();
427
+ return new Nil();
428
+ }
429
+ // Guard passed - clear it and continue with selector evaluation
430
+ this.value.guard = undefined;
431
+ return undefined;
432
+ });
433
+ }
434
+ return undefined;
435
+ }, (guardResult) => {
436
+ // If guard failed, return Nil (ruleset produces no output)
437
+ if (guardResult instanceof Nil) {
438
+ return guardResult;
439
+ }
440
+ let { selector } = this.value;
441
+ const frame = atIndex(context.rulesetFrames, -1);
442
+ if (frame && (this.hoistToRoot ?? context.opts.collapseNesting)) {
443
+ this.hoistToRoot = true;
444
+ }
445
+ if (selector instanceof Nil) {
446
+ // If selector evaluates to Nil, return the rules body directly instead of the ruleset
447
+ // This allows rules to be output even when there's no selector context
448
+ // We don't push frames because there's no selector context
449
+ // Store Nil in selector so next step can detect this case
450
+ this.value.selector = selector;
451
+ const evaluatedRules = this.value.rules.eval(context);
452
+ // Update this.value.rules to point to evaluated Rules to prevent circular reference
453
+ // when debug code traverses the AST
454
+ if (isThenable(evaluatedRules)) {
455
+ return evaluatedRules.then((rules) => {
456
+ this.value.rules = rules;
457
+ return rules;
458
+ });
459
+ }
460
+ this.value.rules = evaluatedRules;
461
+ return evaluatedRules;
462
+ }
463
+ // Preserve the sourceNode from the current selector before replacing it
464
+ const preservedSourceNode = this.value.selector?.sourceNode;
465
+ this.value.selector = selector;
466
+ // Restore the sourceNode on the new selector so it's available when copying
467
+ if (preservedSourceNode && this.value.selector) {
468
+ this.value.selector.sourceNode = preservedSourceNode;
469
+ }
470
+ if (context.opts.collapseNesting) {
471
+ this.hoistToRoot = true;
472
+ }
473
+ context.rulesetFrames.push(this);
474
+ context.frames.push(this);
475
+ pushedFrames = true;
476
+ return this.value.rules.eval(context);
477
+ }, (evaluatedRules) => {
478
+ if (pushedFrames) {
479
+ context.rulesetFrames.pop();
480
+ context.frames.pop();
481
+ }
482
+ if (evaluatedRules instanceof Nil) {
483
+ return evaluatedRules;
484
+ }
485
+ const selectorText = String(this.value.selector?.valueOf?.() ?? '');
486
+ if (selectorText.includes('.call-lock-mixin')
487
+ || selectorText.includes('#guarded-caller')
488
+ || selectorText.includes('#guarded-deeper')) {
489
+ }
490
+ // If selector was Nil, evaluatedRules is already Rules (not wrapped in Ruleset)
491
+ // In that case, return it directly without wrapping back in Ruleset
492
+ if (this.value.selector instanceof Nil) {
493
+ // Selector was Nil, so we already returned Rules directly - just return it
494
+ return evaluatedRules;
495
+ }
496
+ this.value.rules = evaluatedRules;
497
+ const rules = this.value.rules;
498
+ if (rules.visibleRules().length === 0) {
499
+ this.removeFlag(F_VISIBLE);
500
+ }
501
+ return this;
502
+ });
503
+ }
504
+ }
505
+ export const ruleset = defineType(Ruleset, 'Ruleset');
506
+ //# sourceMappingURL=ruleset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruleset.js","sourceRoot":"","sources":["../../src/tree/ruleset.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
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
@@ -0,0 +1 @@
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"}