@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,556 @@
1
+ import { Node, F_MAY_ASYNC, F_NON_STATIC, F_VISIBLE, defineType } from './node.js';
2
+ import { Rules } from './rules.js';
3
+ import { isThenable } from '@jesscss/awaitable-pipe';
4
+ import { isNode } from './util/is-node.js';
5
+ import { AtRule } from './at-rule.js';
6
+ import { Any } from './any.js';
7
+ /**
8
+ * This is a generic class for:
9
+ * - Sass+ `@use` (for stylesheets)
10
+ * - Jess `@-compose` and Less `@compose`
11
+ * - Less, Sass+, and Jess `@import` / `@-import` that are indicated
12
+ * to be processed by the engine
13
+ *
14
+ * @see https://sass-lang.com/documentation/at-rules/import/
15
+ */
16
+ export class StyleImport extends Node {
17
+ type = 'StyleImport';
18
+ shortType = 'style';
19
+ constructor(value, options, location, treeContext) {
20
+ super(value, options, location, treeContext);
21
+ // Style imports are always non-static and may be async
22
+ this.addFlags(F_MAY_ASYNC, F_NON_STATIC);
23
+ }
24
+ getFinalRules(evaluatedRules) {
25
+ let { importOptions, type } = this.options;
26
+ const reference = importOptions.reference;
27
+ const isForward = importOptions.forward === true;
28
+ // For compose type, default is protected (not mutable). For import type, default is mutable.
29
+ // mutable: false on @import explicitly makes it protected.
30
+ const isProtected = type === 'compose'
31
+ ? !importOptions.mutable // compose: protected unless mutable: true
32
+ : importOptions.mutable === false; // import: mutable unless explicitly mutable: false
33
+ let Ruleset = 'public';
34
+ let Declaration = 'public';
35
+ let Mixin = 'public';
36
+ let VarDeclaration = 'public';
37
+ if (isProtected) {
38
+ Ruleset = 'private';
39
+ }
40
+ else if (reference) {
41
+ /**
42
+ * Not sure if this is true.
43
+ * They won't be output, but that's not the same as being optional,
44
+ * UNLESS we're extending the word 'optional' to mean "not output".
45
+ *
46
+ * I think what we mean here by "optional" it "not ouptut unless extended".
47
+ * Our test for reference therefore should mimic Less behavior.
48
+ */
49
+ Ruleset = 'optional';
50
+ }
51
+ /**
52
+ * Create a rules wrapper so we can set visibility.
53
+ * The inner rules may be static, but the import may
54
+ * have different import settings.
55
+ *
56
+ * For compose type:
57
+ * - Variables and mixins are visible to the direct parent (the file that imports them)
58
+ * - If 'export' flag is set, variables and mixins are also forwarded to downstream stylesheets
59
+ * - The 'local' flag means: visible to direct parent, but not re-exported to parent's parent
60
+ */
61
+ const isReferenceMode = ((type === 'import' && (importOptions?._dedupe === true || reference))
62
+ || (type === 'compose' && reference));
63
+ // De-duped imports mutate node options during markReferenceMode; use deep clone so
64
+ // repeated imports do not retroactively mutate previously emitted import trees.
65
+ // Keep explicit reference imports on shallow clone to preserve existing extend wiring.
66
+ const useDeepClone = Boolean(type === 'import'
67
+ && (importOptions.multiple === true || importOptions._dedupe === true));
68
+ let out = (useDeepClone ? evaluatedRules.clone(true) : evaluatedRules.clone());
69
+ // Import type: variables are visible and re-exported (not local)
70
+ // Compose type: variables are visible to parent but not transitive by default (`local: true`)
71
+ // Forward: not visible locally but *is* transitive (`local: false`)
72
+ const isLocal = type === 'compose' && !isForward;
73
+ out.options = {
74
+ rulesVisibility: { Ruleset, Declaration, Mixin, VarDeclaration },
75
+ local: isLocal,
76
+ forward: isForward,
77
+ referenceMode: isReferenceMode,
78
+ readonly: importOptions.readonly ?? (type === 'compose' ? true : false)
79
+ };
80
+ if (isReferenceMode) {
81
+ const markReferenceMode = (node) => {
82
+ const nodeOptions = node.options;
83
+ nodeOptions.referenceMode = true;
84
+ const maybeRulesValue = node.value;
85
+ const rules = maybeRulesValue?.rules;
86
+ if (rules && isNode(rules, 'Rules')) {
87
+ markReferenceMode(rules);
88
+ }
89
+ const children = node.value;
90
+ if (Array.isArray(children)) {
91
+ for (const child of children) {
92
+ if (isNode(child, ['Rules', 'Ruleset', 'AtRule'])) {
93
+ markReferenceMode(child);
94
+ }
95
+ }
96
+ }
97
+ };
98
+ markReferenceMode(out);
99
+ }
100
+ // Forwarded modules should never render output at this scope.
101
+ if (isForward) {
102
+ out.removeFlag(F_VISIBLE);
103
+ }
104
+ // Set sourceNode so variable lookups know they can cross import boundaries
105
+ out.sourceNode = this;
106
+ this.adopt(out);
107
+ return out;
108
+ }
109
+ /**
110
+ * Defer import-path interpolation to evalNode so unresolved vars can be retried
111
+ * after later imports/assignments in the same Rules scope have evaluated.
112
+ */
113
+ preEval(_context) {
114
+ return this;
115
+ }
116
+ /**
117
+ * @note
118
+ * When imports are evaluated, they should be deeply cloned. The reason is that
119
+ * they can be used in multiple places, and can be evaluated differently
120
+ * each time, so they are more like a function call.
121
+ *
122
+ * @todo
123
+ * How do extends work then?
124
+ */
125
+ evalNode(context) {
126
+ let node = this;
127
+ const { path, with: withValues } = node.value;
128
+ const { options } = node;
129
+ options.importOptions ??= {};
130
+ const { type, importOptions } = options;
131
+ const maybePath = path.eval(context);
132
+ let originalDepth = context.depth;
133
+ context.depth = this.depth;
134
+ /**
135
+ * @todo - Add options
136
+ *
137
+ * Note that the Less plugin should trigger a unique default behavior
138
+ * for `@import` which is that it is de-duplicated by default. Meaning
139
+ * that it won't render rulesets twice per compilation. I think that
140
+ * means that it's just kind of ignored without an explicit `multiple`
141
+ * option. Since all vars are global per compilation, it should just
142
+ * work.
143
+ */
144
+ const finalize = async (finalPath) => {
145
+ const previousTreeContext = context.treeContext;
146
+ // Inherit "reference branch" semantics lexically for nested imports unless
147
+ // `multiple` explicitly opts into fresh output.
148
+ const inheritedReferenceMode = context.inReferenceImportScope;
149
+ const previousExplicitReference = importOptions.reference;
150
+ let pushedImportScope = false;
151
+ if (inheritedReferenceMode && !importOptions.multiple) {
152
+ importOptions.reference = true;
153
+ }
154
+ if (node.treeContext) {
155
+ context.treeContext = node.treeContext;
156
+ }
157
+ if (importOptions.multiple || importOptions.reference) {
158
+ // Scope push/pop is intentionally paired in this method's try/finally.
159
+ // This keeps branch semantics local to this import evaluation path.
160
+ context.pushImportScope({
161
+ multiple: importOptions.multiple === true,
162
+ reference: importOptions.reference === true
163
+ });
164
+ pushedImportScope = true;
165
+ }
166
+ try {
167
+ const isInlineImport = importOptions.inline === true;
168
+ let rules;
169
+ let resolvedPath;
170
+ if (isInlineImport) {
171
+ const resolved = await context.resolveImportPath(finalPath);
172
+ resolvedPath = resolved.resolvedPath;
173
+ const sourceGetter = context.plugins.find(plugin => plugin.getSource);
174
+ if (!sourceGetter) {
175
+ throw new Error('No source getter found');
176
+ }
177
+ const source = await sourceGetter.getSource(resolvedPath);
178
+ const sourceNode = new Any(source, { role: 'any' });
179
+ rules = this.wrapInlineSourceWithPostlude(sourceNode, importOptions.postlude);
180
+ }
181
+ else {
182
+ try {
183
+ ({ node: rules, resolvedPath } = await context.getTree(finalPath, importOptions));
184
+ }
185
+ catch (error) {
186
+ if (importOptions.optional) {
187
+ return Rules.create([]);
188
+ }
189
+ if (importOptions.reference && (error?.phase === 'parse' || String(error?.code ?? '').startsWith('parse/'))) {
190
+ return Rules.create([]);
191
+ }
192
+ throw error;
193
+ }
194
+ }
195
+ // Set sourceNode immediately after getting the Rules, before any evaluation
196
+ // This ensures that when preEval clones the Rules, the cloned Rules will have sourceNode set
197
+ // and registerNode can detect this is an imported Rules
198
+ rules.sourceNode = node;
199
+ let evaldRules = context.evaldTrees.get(resolvedPath);
200
+ // Compose caching semantics:
201
+ // - The first time a module is composed, we evaluate and cache the evaluated Rules.
202
+ // - Subsequent compose imports reuse the cached evaluated Rules (so re-imports don't re-run evaluation).
203
+ // - Subsequent compose imports default to "reference" mode unless `multiple: true` is set,
204
+ // so rulesets / at-rules are not output again.
205
+ if (type === 'compose' && evaldRules) {
206
+ if (withValues) {
207
+ // Sass-style: once configured, cannot be configured again.
208
+ // (We keep parsing show/hide/prefix metadata elsewhere; this is for with/set configs.)
209
+ throw new Error('Cannot configure a stylesheet more than once.');
210
+ }
211
+ // Reuse cached evaluated rules tree.
212
+ rules = evaldRules;
213
+ // Default: de-dupe output for compose re-imports unless explicitly multiple.
214
+ if (!importOptions.multiple) {
215
+ importOptions.reference = true;
216
+ }
217
+ }
218
+ const inMultipleImportBranch = context.inMultipleImportScope;
219
+ if (type === 'import' && importOptions.once !== false && !importOptions.multiple && !inMultipleImportBranch && evaldRules) {
220
+ rules = evaldRules;
221
+ importOptions._dedupe = true;
222
+ }
223
+ if (withValues) {
224
+ // Once configured, cannot be configured again (handled above for compose+cache).
225
+ if (withValues.type === 'set' && evaldRules) {
226
+ throw new Error('Cannot configure a stylesheet more than once.');
227
+ }
228
+ // Clone the imported rules BEFORE evaluation so registries are populated on the clone
229
+ let modifiedRules = rules.clone(true);
230
+ // withValues.node might be a Reference, so evaluate it first to get Rules
231
+ let withRulesNode = withValues.node;
232
+ if (isNode(withRulesNode, 'Reference')) {
233
+ // Evaluate the reference to get the actual Rules
234
+ const evaluated = await withRulesNode.eval(context);
235
+ if (!isNode(evaluated, 'Collection')) {
236
+ throw new Error('with/set node must evaluate to a Collection');
237
+ }
238
+ withRulesNode = evaluated;
239
+ }
240
+ // withRules don't need to be cloned because they are used once
241
+ let withRules = withRulesNode;
242
+ // Build the declaration registry for efficient lookups
243
+ // This avoids O(n*m) complexity when we have many injected variables
244
+ // First, register all nodes in modifiedRules so they're in the registry
245
+ for (const node of modifiedRules.value) {
246
+ modifiedRules.registerNode(node);
247
+ }
248
+ const declarationRegistry = modifiedRules.getRegistry('declaration');
249
+ declarationRegistry.indexPendingItems();
250
+ // Separate injected variables into two groups:
251
+ // 1. Variables that replace existing ones (found in imported rules)
252
+ // 2. Variables that are new (not found in imported rules)
253
+ const newVariables = [];
254
+ // For each injected variable, find and replace the first matching declaration
255
+ // in the imported rules, OR if not found, add it to newVariables to inject at the top.
256
+ // This ensures the injected value "overrides" the original.
257
+ // Works correctly for both scope lookup ($var) and linear lookup ($^var):
258
+ // - For linear lookup: injected vars come first, so they're found first
259
+ // - For scope lookup: original is replaced, so injected value wins
260
+ for (const injectedNode of withRules.value) {
261
+ if (isNode(injectedNode, 'VarDeclaration')) {
262
+ const varName = injectedNode.value.name?.toString();
263
+ if (varName) {
264
+ // Use the registry for efficient lookup instead of linear search
265
+ const declarations = declarationRegistry.index.get(varName);
266
+ if (declarations) {
267
+ // Find the first VarDeclaration in the set (sorted by index)
268
+ const existingDecl = Array.from(declarations).find(decl => isNode(decl, 'VarDeclaration'));
269
+ if (existingDecl) {
270
+ // Remove the old declaration from the registry
271
+ declarations.delete(existingDecl);
272
+ // Find its index in the array and replace it
273
+ const index = modifiedRules.value.indexOf(existingDecl);
274
+ if (index !== -1) {
275
+ // Adopt the new node and replace in array
276
+ modifiedRules.adopt(injectedNode);
277
+ modifiedRules.value[index] = injectedNode;
278
+ // Add the new declaration to the registry
279
+ declarations.add(injectedNode);
280
+ // Register the new node so it's properly indexed
281
+ modifiedRules.registerNode(injectedNode);
282
+ }
283
+ }
284
+ else {
285
+ // Not found, add to newVariables to inject at the top
286
+ newVariables.push(injectedNode);
287
+ }
288
+ }
289
+ else {
290
+ // Not found in registry, add to newVariables to inject at the top
291
+ newVariables.push(injectedNode);
292
+ }
293
+ }
294
+ else {
295
+ // Non-variable nodes (if any) are kept as-is
296
+ newVariables.push(injectedNode);
297
+ }
298
+ }
299
+ else {
300
+ // Non-VarDeclaration nodes are kept as-is
301
+ newVariables.push(injectedNode);
302
+ }
303
+ }
304
+ // Create the final rules structure:
305
+ // [new injected variables (not found in imported), ...all nodes from modified imported rules (with replacements)]
306
+ // Injected variables that aren't found should be at the TOP so they're found first
307
+ // for linear lookup ($^var)
308
+ // We flatten the structure so all variables are in the same Rules scope
309
+ const finalRules = Rules.create([]);
310
+ // First, add new injected variables that weren't found in imported rules (at the top)
311
+ for (const newNode of newVariables) {
312
+ finalRules.adopt(newNode);
313
+ finalRules.value.push(newNode);
314
+ }
315
+ // Then, add all nodes from the modified imported rules (flattened, with replacements)
316
+ for (const node of modifiedRules.value) {
317
+ finalRules.adopt(node);
318
+ finalRules.value.push(node);
319
+ }
320
+ rules = finalRules;
321
+ }
322
+ // For compose type, register and push extend root BEFORE evaluation
323
+ // so extends inside the import use the correct root
324
+ const parentExtendRoot = context.extendRoots.getCurrentExtendRoot();
325
+ let pushedExtendRoot = false;
326
+ if (type === 'compose') {
327
+ // Register the Rules as an extend root (use rules before cloning/evaluation)
328
+ // We'll update the registration after evaluation if the Rules changes
329
+ // For compose type, default is protected (not mutable)
330
+ const isComposeProtected = !importOptions.mutable;
331
+ context.extendRoots.registerRoot(rules, parentExtendRoot, {
332
+ isProtected: isComposeProtected,
333
+ isCompose: true,
334
+ namespace: node.options.namespace
335
+ });
336
+ context.extendRoots.pushExtendRoot(rules);
337
+ pushedExtendRoot = true;
338
+ }
339
+ /** Freshly evaluate the rules in these circumstances
340
+ * - `with` (or `set`) values are present
341
+ * - the rules have not been evaluated yet
342
+ * - the import type is `import`
343
+ */
344
+ let evaluatedInImplicitReferenceMode = false;
345
+ if (withValues || !evaldRules || type === 'import') {
346
+ const preserveOriginalNodes = context.preserveOriginalNodes;
347
+ context.preserveOriginalNodes = true;
348
+ let pushedImplicitReferenceEvalScope = false;
349
+ const isImplicitReferenceModeForEval = (type === 'import'
350
+ && importOptions.reference !== true
351
+ && importOptions._dedupe === true
352
+ && !importOptions.multiple);
353
+ if (isImplicitReferenceModeForEval) {
354
+ evaluatedInImplicitReferenceMode = true;
355
+ // Dedupe re-imports behave like an implicit reference traversal:
356
+ // evaluate for symbol availability, but avoid outward extend side effects.
357
+ context.pushImportScope({ reference: true });
358
+ pushedImplicitReferenceEvalScope = true;
359
+ }
360
+ // For protected imports (mutable: false), push the rules to extend root stack
361
+ // so rulesets register in the import's registry, not the parent's
362
+ const isImportProtected = type === 'import' && importOptions.mutable === false;
363
+ const shouldUseLocalExtendRoot = isImportProtected || isImplicitReferenceModeForEval;
364
+ if (isImplicitReferenceModeForEval) {
365
+ // Link local in-eval root so external extends can still target deduped imports.
366
+ context.extendRoots.registerRoot(rules, parentExtendRoot, {
367
+ isProtected: isImportProtected,
368
+ namespace: node.options.namespace
369
+ });
370
+ }
371
+ if (shouldUseLocalExtendRoot) {
372
+ context.extendRoots.pushExtendRoot(rules);
373
+ }
374
+ try {
375
+ // Call preEval first to get the cloned Rules (if cloning occurs)
376
+ // sourceNode is already set above, so the cloned Rules will have it
377
+ rules = await rules.preEval(context);
378
+ if (type === 'import') {
379
+ /** Needed at evaluation time for older import type */
380
+ node.adopt(rules);
381
+ }
382
+ rules = await rules.eval(context);
383
+ }
384
+ finally {
385
+ context.preserveOriginalNodes = preserveOriginalNodes;
386
+ if (pushedImplicitReferenceEvalScope) {
387
+ context.popImportScope();
388
+ }
389
+ if (shouldUseLocalExtendRoot) {
390
+ context.extendRoots.popExtendRoot();
391
+ }
392
+ }
393
+ // Cache compose modules (and configured modules) after first evaluation.
394
+ if (type === 'compose'
395
+ || withValues?.type === 'set'
396
+ || (type === 'import' && importOptions.once !== false)) {
397
+ context.evaldTrees.set(resolvedPath, rules);
398
+ }
399
+ }
400
+ else {
401
+ // Clone the unevaluated rules BEFORE evaluation so registries are populated on the clone
402
+ // This ensures registration happens post-clone, not on the cached evaldRules
403
+ // sourceNode is already set above, so the cloned Rules will have it
404
+ rules = rules.clone(true);
405
+ let preserveOriginalNodes = context.preserveOriginalNodes;
406
+ context.preserveOriginalNodes = true;
407
+ // Note: For compose type, we don't set rules.parent = node
408
+ // (only import type needs this for older import behavior)
409
+ rules = await rules.eval(context);
410
+ context.preserveOriginalNodes = preserveOriginalNodes;
411
+ }
412
+ // Pop extend root if we pushed one
413
+ if (pushedExtendRoot) {
414
+ context.extendRoots.popExtendRoot();
415
+ }
416
+ if (evaluatedInImplicitReferenceMode) {
417
+ rules.options.referenceMode = false;
418
+ }
419
+ let finalRules = node.getFinalRules(rules);
420
+ if (evaluatedInImplicitReferenceMode) {
421
+ finalRules.options.referenceMode = false;
422
+ }
423
+ if (importOptions.postlude && !isInlineImport) {
424
+ finalRules = this.wrapEvaluatedRulesWithPostlude(finalRules, importOptions.postlude);
425
+ }
426
+ // For import type, register the final Rules as a child root of the parent
427
+ // so extends from the parent can find rulesets in the imported Rules
428
+ // Do this AFTER getFinalRules because it returns a cloned Rules
429
+ if (type === 'import') {
430
+ const currentParentExtendRoot = context.extendRoots.getCurrentExtendRoot();
431
+ // Import type is mutable by default (unless explicitly mutable: false)
432
+ const isImportProtected = importOptions.mutable === false;
433
+ const isImplicitReferenceModeForRegistration = (importOptions._dedupe === true
434
+ && importOptions.reference !== true
435
+ && !importOptions.multiple);
436
+ const shouldReRegisterLocalRootRulesets = isImportProtected || isImplicitReferenceModeForRegistration;
437
+ context.extendRoots.registerRoot(finalRules, currentParentExtendRoot, {
438
+ isProtected: isImportProtected,
439
+ namespace: node.options.namespace
440
+ });
441
+ // For imports that evaluated under a local extend root (protected import or implicit _dedupe
442
+ // reference traversal), rulesets were registered in the pre-finalized Rules root. Since
443
+ // getFinalRules can clone, re-register all descendant rulesets under finalRules.
444
+ // during preEval (when we pushed rules to the stack). Since getFinalRules clones,
445
+ // we need to re-register rulesets in finalRules' registry.
446
+ if (shouldReRegisterLocalRootRulesets) {
447
+ const finalRulesRegistry = finalRules.getRegistry('ruleset');
448
+ for (const maybeRuleset of finalRules.nodes()) {
449
+ if (isNode(maybeRuleset, 'Ruleset')) {
450
+ finalRulesRegistry.add(maybeRuleset);
451
+ }
452
+ }
453
+ }
454
+ // Don't push to stack - import type uses parent's root for extends inside the import
455
+ // But we register it so extends from parent can find rulesets in the imported Rules
456
+ }
457
+ return finalRules;
458
+ }
459
+ finally {
460
+ context.treeContext = previousTreeContext;
461
+ if (pushedImportScope) {
462
+ context.popImportScope();
463
+ }
464
+ importOptions.reference = previousExplicitReference;
465
+ }
466
+ };
467
+ if (isThenable(maybePath)) {
468
+ return maybePath.then(async (p) => {
469
+ const finalPath = p.valueOf();
470
+ context.depth = originalDepth;
471
+ return finalize(finalPath);
472
+ });
473
+ }
474
+ const finalPath = maybePath.valueOf();
475
+ context.depth = originalDepth;
476
+ return finalize(finalPath);
477
+ }
478
+ /**
479
+ * Applies CSS import postlude wrappers around inline source content.
480
+ * Falls back to `@media <postlude>` for plain query nodes.
481
+ */
482
+ wrapInlineSourceWithPostlude(sourceNode, postlude) {
483
+ if (!postlude) {
484
+ return Rules.create([sourceNode]);
485
+ }
486
+ let wrapped = sourceNode;
487
+ const postludeNodes = isNode(postlude, ['Sequence', 'List']) ? postlude.value : [postlude];
488
+ for (let i = postludeNodes.length - 1; i >= 0; i--) {
489
+ const current = postludeNodes[i];
490
+ const body = Rules.create([wrapped]);
491
+ if (isNode(current, 'Call')) {
492
+ const callName = String(current.value.name).toLowerCase();
493
+ if (callName === 'media' || callName === 'supports' || callName === 'layer') {
494
+ const args = current.value.args?.value ?? [];
495
+ const prelude = args.length <= 1 ? args[0] : current.value.args;
496
+ if (prelude) {
497
+ wrapped = new AtRule({
498
+ name: new Any(`@${callName}`, { role: 'atkeyword' }),
499
+ prelude,
500
+ rules: body
501
+ });
502
+ continue;
503
+ }
504
+ }
505
+ }
506
+ wrapped = new AtRule({
507
+ name: new Any('@media', { role: 'atkeyword' }),
508
+ prelude: current,
509
+ rules: body
510
+ });
511
+ }
512
+ return Rules.create([wrapped]);
513
+ }
514
+ /**
515
+ * Applies CSS import postlude wrappers around evaluated stylesheet rules.
516
+ * Used for Less-style imports with media/layer/supports postludes.
517
+ */
518
+ wrapEvaluatedRulesWithPostlude(rules, postlude) {
519
+ if (!postlude) {
520
+ return rules;
521
+ }
522
+ const postludeNodes = isNode(postlude, ['Sequence', 'List']) ? postlude.value : [postlude];
523
+ let wrappedRules = rules;
524
+ for (let i = postludeNodes.length - 1; i >= 0; i--) {
525
+ const current = postludeNodes[i];
526
+ if (isNode(current, 'Call')) {
527
+ const callName = String(current.value.name).toLowerCase();
528
+ if (callName === 'media' || callName === 'supports' || callName === 'layer') {
529
+ const args = current.value.args?.value ?? [];
530
+ const prelude = args.length <= 1 ? args[0] : current.value.args;
531
+ if (prelude) {
532
+ const wrappedAtRule = new AtRule({
533
+ name: new Any(`@${callName}`, { role: 'atkeyword' }),
534
+ prelude,
535
+ rules: wrappedRules
536
+ });
537
+ wrappedRules = Rules.create([wrappedAtRule]);
538
+ continue;
539
+ }
540
+ }
541
+ }
542
+ const mediaAtRule = new AtRule({
543
+ name: new Any('@media', { role: 'atkeyword' }),
544
+ prelude: current,
545
+ rules: wrappedRules
546
+ });
547
+ wrappedRules = Rules.create([mediaAtRule]);
548
+ }
549
+ return wrappedRules;
550
+ }
551
+ }
552
+ defineType(StyleImport, 'StyleImport', 'style');
553
+ export const style = (...args) => {
554
+ return new StyleImport(...args);
555
+ };
556
+ //# sourceMappingURL=import-style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-style.js","sourceRoot":"","sources":["../../src/tree/import-style.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * @note
3
+ * These nodes are actually taking the role of two ASTs,
4
+ * because there are nodes that will be used to produce a module,
5
+ * and that module will create AST nodes to create CSS.
6
+ *
7
+ * @todo - rewrite the above, this is no longer true
8
+ */
9
+ /**
10
+ * Import from node.ts which applies all the prototype patches
11
+ * (nil, operate, treeContext) and re-exports from node-base.ts
12
+ */
13
+ import { Node, type LocationInfo, F_VISIBLE, F_MAY_ASYNC, F_STATIC, F_NON_STATIC } from './node.js';
14
+ import { TreeContext } from '../context.js';
15
+ export { Node, TreeContext, type LocationInfo, F_VISIBLE, F_MAY_ASYNC, F_STATIC, F_NON_STATIC };
16
+ export * from './at-rule.js';
17
+ export * from './block.js';
18
+ export * from './bool.js';
19
+ export * from './ampersand.js';
20
+ export * from './any.js';
21
+ export * from './call.js';
22
+ export * from './color.js';
23
+ export * from './comment.js';
24
+ export * from './combinator.js';
25
+ export * from './condition.js';
26
+ export * from './control.js';
27
+ export * from './declaration.js';
28
+ export * from './declaration-custom.js';
29
+ export * from './declaration-var.js';
30
+ export * from './dimension.js';
31
+ export * from './number.js';
32
+ export * from './expression.js';
33
+ export * from './extend.js';
34
+ export * from './list.js';
35
+ export * from './log.js';
36
+ export * from './mixin.js';
37
+ export * from './negative.js';
38
+ export * from './function.js';
39
+ export * from './js-function.js';
40
+ export * from './js-array.js';
41
+ export * from './js-object.js';
42
+ export * from './nil.js';
43
+ export * from './operation.js';
44
+ export * from './paren.js';
45
+ export * from './quoted.js';
46
+ export * from './range.js';
47
+ export * from './ruleset.js';
48
+ export * from './rules.js';
49
+ export * from './rules-raw.js';
50
+ export * from './collection.js';
51
+ export * from './selector.js';
52
+ export * from './selector-attr.js';
53
+ export * from './selector-basic.js';
54
+ export * from './selector-list.js';
55
+ export * from './selector-pseudo.js';
56
+ export * from './selector-compound.js';
57
+ export * from './selector-complex.js';
58
+ export * from './selector-simple.js';
59
+ export * from './selector-capture.js';
60
+ export * from './sequence.js';
61
+ export * from './query-condition.js';
62
+ export * from './comment.js';
63
+ export * from './reference.js';
64
+ export * from './import-style.js';
65
+ export * from './import-js.js';
66
+ export * from './interpolated.js';
67
+ export * from './selector-interpolated.js';
68
+ export * from './default-guard.js';
69
+ export * from './rest.js';
70
+ export * from './url.js';
71
+ //# sourceMappingURL=index.d.ts.map