@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.
- package/LICENSE +21 -0
- package/README.md +9 -0
- package/lib/context.d.ts +352 -0
- package/lib/context.d.ts.map +1 -0
- package/lib/context.js +636 -0
- package/lib/context.js.map +1 -0
- package/lib/conversions.d.ts +73 -0
- package/lib/conversions.d.ts.map +1 -0
- package/lib/conversions.js +253 -0
- package/lib/conversions.js.map +1 -0
- package/lib/debug-log.d.ts +2 -0
- package/lib/debug-log.d.ts.map +1 -0
- package/lib/debug-log.js +27 -0
- package/lib/debug-log.js.map +1 -0
- package/lib/define-function.d.ts +587 -0
- package/lib/define-function.d.ts.map +1 -0
- package/lib/define-function.js +726 -0
- package/lib/define-function.js.map +1 -0
- package/lib/deprecation.d.ts +34 -0
- package/lib/deprecation.d.ts.map +1 -0
- package/lib/deprecation.js +57 -0
- package/lib/deprecation.js.map +1 -0
- package/lib/index.d.ts +22 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +23 -0
- package/lib/index.js.map +1 -0
- package/lib/jess-error.d.ts +343 -0
- package/lib/jess-error.d.ts.map +1 -0
- package/lib/jess-error.js +508 -0
- package/lib/jess-error.js.map +1 -0
- package/lib/logger/deprecation-processing.d.ts +41 -0
- package/lib/logger/deprecation-processing.d.ts.map +1 -0
- package/lib/logger/deprecation-processing.js +81 -0
- package/lib/logger/deprecation-processing.js.map +1 -0
- package/lib/logger.d.ts +10 -0
- package/lib/logger.d.ts.map +1 -0
- package/lib/logger.js +20 -0
- package/lib/logger.js.map +1 -0
- package/lib/plugin.d.ts +94 -0
- package/lib/plugin.d.ts.map +1 -0
- package/lib/plugin.js +174 -0
- package/lib/plugin.js.map +1 -0
- package/lib/tree/ampersand.d.ts +94 -0
- package/lib/tree/ampersand.d.ts.map +1 -0
- package/lib/tree/ampersand.js +269 -0
- package/lib/tree/ampersand.js.map +1 -0
- package/lib/tree/any.d.ts +58 -0
- package/lib/tree/any.d.ts.map +1 -0
- package/lib/tree/any.js +101 -0
- package/lib/tree/any.js.map +1 -0
- package/lib/tree/at-rule.d.ts +53 -0
- package/lib/tree/at-rule.d.ts.map +1 -0
- package/lib/tree/at-rule.js +503 -0
- package/lib/tree/at-rule.js.map +1 -0
- package/lib/tree/block.d.ts +22 -0
- package/lib/tree/block.d.ts.map +1 -0
- package/lib/tree/block.js +24 -0
- package/lib/tree/block.js.map +1 -0
- package/lib/tree/bool.d.ts +17 -0
- package/lib/tree/bool.d.ts.map +1 -0
- package/lib/tree/bool.js +24 -0
- package/lib/tree/bool.js.map +1 -0
- package/lib/tree/call.d.ts +66 -0
- package/lib/tree/call.d.ts.map +1 -0
- package/lib/tree/call.js +306 -0
- package/lib/tree/call.js.map +1 -0
- package/lib/tree/collection.d.ts +30 -0
- package/lib/tree/collection.d.ts.map +1 -0
- package/lib/tree/collection.js +37 -0
- package/lib/tree/collection.js.map +1 -0
- package/lib/tree/color.d.ts +101 -0
- package/lib/tree/color.d.ts.map +1 -0
- package/lib/tree/color.js +513 -0
- package/lib/tree/color.js.map +1 -0
- package/lib/tree/combinator.d.ts +12 -0
- package/lib/tree/combinator.d.ts.map +1 -0
- package/lib/tree/combinator.js +8 -0
- package/lib/tree/combinator.js.map +1 -0
- package/lib/tree/comment.d.ts +20 -0
- package/lib/tree/comment.d.ts.map +1 -0
- package/lib/tree/comment.js +18 -0
- package/lib/tree/comment.js.map +1 -0
- package/lib/tree/condition.d.ts +31 -0
- package/lib/tree/condition.d.ts.map +1 -0
- package/lib/tree/condition.js +103 -0
- package/lib/tree/condition.js.map +1 -0
- package/lib/tree/control.d.ts +104 -0
- package/lib/tree/control.d.ts.map +1 -0
- package/lib/tree/control.js +430 -0
- package/lib/tree/control.js.map +1 -0
- package/lib/tree/declaration-custom.d.ts +18 -0
- package/lib/tree/declaration-custom.d.ts.map +1 -0
- package/lib/tree/declaration-custom.js +24 -0
- package/lib/tree/declaration-custom.js.map +1 -0
- package/lib/tree/declaration-var.d.ts +36 -0
- package/lib/tree/declaration-var.d.ts.map +1 -0
- package/lib/tree/declaration-var.js +63 -0
- package/lib/tree/declaration-var.js.map +1 -0
- package/lib/tree/declaration.d.ts +78 -0
- package/lib/tree/declaration.d.ts.map +1 -0
- package/lib/tree/declaration.js +289 -0
- package/lib/tree/declaration.js.map +1 -0
- package/lib/tree/default-guard.d.ts +15 -0
- package/lib/tree/default-guard.d.ts.map +1 -0
- package/lib/tree/default-guard.js +19 -0
- package/lib/tree/default-guard.js.map +1 -0
- package/lib/tree/dimension.d.ts +33 -0
- package/lib/tree/dimension.d.ts.map +1 -0
- package/lib/tree/dimension.js +291 -0
- package/lib/tree/dimension.js.map +1 -0
- package/lib/tree/expression.d.ts +24 -0
- package/lib/tree/expression.d.ts.map +1 -0
- package/lib/tree/expression.js +28 -0
- package/lib/tree/expression.js.map +1 -0
- package/lib/tree/extend-list.d.ts +23 -0
- package/lib/tree/extend-list.d.ts.map +1 -0
- package/lib/tree/extend-list.js +20 -0
- package/lib/tree/extend-list.js.map +1 -0
- package/lib/tree/extend.d.ts +47 -0
- package/lib/tree/extend.d.ts.map +1 -0
- package/lib/tree/extend.js +292 -0
- package/lib/tree/extend.js.map +1 -0
- package/lib/tree/function.d.ts +48 -0
- package/lib/tree/function.d.ts.map +1 -0
- package/lib/tree/function.js +74 -0
- package/lib/tree/function.js.map +1 -0
- package/lib/tree/import-js.d.ts +35 -0
- package/lib/tree/import-js.d.ts.map +1 -0
- package/lib/tree/import-js.js +45 -0
- package/lib/tree/import-js.js.map +1 -0
- package/lib/tree/import-style.d.ts +156 -0
- package/lib/tree/import-style.d.ts.map +1 -0
- package/lib/tree/import-style.js +556 -0
- package/lib/tree/import-style.js.map +1 -0
- package/lib/tree/index.d.ts +71 -0
- package/lib/tree/index.d.ts.map +1 -0
- package/lib/tree/index.js +95 -0
- package/lib/tree/index.js.map +1 -0
- package/lib/tree/interpolated-reference.d.ts +24 -0
- package/lib/tree/interpolated-reference.d.ts.map +1 -0
- package/lib/tree/interpolated-reference.js +37 -0
- package/lib/tree/interpolated-reference.js.map +1 -0
- package/lib/tree/interpolated.d.ts +62 -0
- package/lib/tree/interpolated.d.ts.map +1 -0
- package/lib/tree/interpolated.js +204 -0
- package/lib/tree/interpolated.js.map +1 -0
- package/lib/tree/js-array.d.ts +10 -0
- package/lib/tree/js-array.d.ts.map +1 -0
- package/lib/tree/js-array.js +10 -0
- package/lib/tree/js-array.js.map +1 -0
- package/lib/tree/js-expr.d.ts +23 -0
- package/lib/tree/js-expr.d.ts.map +1 -0
- package/lib/tree/js-expr.js +28 -0
- package/lib/tree/js-expr.js.map +1 -0
- package/lib/tree/js-function.d.ts +20 -0
- package/lib/tree/js-function.d.ts.map +1 -0
- package/lib/tree/js-function.js +16 -0
- package/lib/tree/js-function.js.map +1 -0
- package/lib/tree/js-object.d.ts +10 -0
- package/lib/tree/js-object.d.ts.map +1 -0
- package/lib/tree/js-object.js +10 -0
- package/lib/tree/js-object.js.map +1 -0
- package/lib/tree/list.d.ts +38 -0
- package/lib/tree/list.d.ts.map +1 -0
- package/lib/tree/list.js +83 -0
- package/lib/tree/list.js.map +1 -0
- package/lib/tree/log.d.ts +29 -0
- package/lib/tree/log.d.ts.map +1 -0
- package/lib/tree/log.js +56 -0
- package/lib/tree/log.js.map +1 -0
- package/lib/tree/mixin.d.ts +87 -0
- package/lib/tree/mixin.d.ts.map +1 -0
- package/lib/tree/mixin.js +112 -0
- package/lib/tree/mixin.js.map +1 -0
- package/lib/tree/negative.d.ts +17 -0
- package/lib/tree/negative.d.ts.map +1 -0
- package/lib/tree/negative.js +22 -0
- package/lib/tree/negative.js.map +1 -0
- package/lib/tree/nil.d.ts +31 -0
- package/lib/tree/nil.d.ts.map +1 -0
- package/lib/tree/nil.js +36 -0
- package/lib/tree/nil.js.map +1 -0
- package/lib/tree/node-base.d.ts +359 -0
- package/lib/tree/node-base.d.ts.map +1 -0
- package/lib/tree/node-base.js +884 -0
- package/lib/tree/node-base.js.map +1 -0
- package/lib/tree/node.d.ts +10 -0
- package/lib/tree/node.d.ts.map +1 -0
- package/lib/tree/node.js +45 -0
- package/lib/tree/node.js.map +1 -0
- package/lib/tree/number.d.ts +21 -0
- package/lib/tree/number.d.ts.map +1 -0
- package/lib/tree/number.js +27 -0
- package/lib/tree/number.js.map +1 -0
- package/lib/tree/operation.d.ts +26 -0
- package/lib/tree/operation.d.ts.map +1 -0
- package/lib/tree/operation.js +103 -0
- package/lib/tree/operation.js.map +1 -0
- package/lib/tree/paren.d.ts +18 -0
- package/lib/tree/paren.d.ts.map +1 -0
- package/lib/tree/paren.js +86 -0
- package/lib/tree/paren.js.map +1 -0
- package/lib/tree/query-condition.d.ts +17 -0
- package/lib/tree/query-condition.d.ts.map +1 -0
- package/lib/tree/query-condition.js +39 -0
- package/lib/tree/query-condition.js.map +1 -0
- package/lib/tree/quoted.d.ts +27 -0
- package/lib/tree/quoted.d.ts.map +1 -0
- package/lib/tree/quoted.js +66 -0
- package/lib/tree/quoted.js.map +1 -0
- package/lib/tree/range.d.ts +33 -0
- package/lib/tree/range.d.ts.map +1 -0
- package/lib/tree/range.js +47 -0
- package/lib/tree/range.js.map +1 -0
- package/lib/tree/reference.d.ts +76 -0
- package/lib/tree/reference.d.ts.map +1 -0
- package/lib/tree/reference.js +521 -0
- package/lib/tree/reference.js.map +1 -0
- package/lib/tree/rest.d.ts +15 -0
- package/lib/tree/rest.d.ts.map +1 -0
- package/lib/tree/rest.js +32 -0
- package/lib/tree/rest.js.map +1 -0
- package/lib/tree/rules-raw.d.ts +17 -0
- package/lib/tree/rules-raw.d.ts.map +1 -0
- package/lib/tree/rules-raw.js +37 -0
- package/lib/tree/rules-raw.js.map +1 -0
- package/lib/tree/rules.d.ts +255 -0
- package/lib/tree/rules.d.ts.map +1 -0
- package/lib/tree/rules.js +2293 -0
- package/lib/tree/rules.js.map +1 -0
- package/lib/tree/ruleset.d.ts +91 -0
- package/lib/tree/ruleset.d.ts.map +1 -0
- package/lib/tree/ruleset.js +506 -0
- package/lib/tree/ruleset.js.map +1 -0
- package/lib/tree/selector-attr.d.ts +31 -0
- package/lib/tree/selector-attr.d.ts.map +1 -0
- package/lib/tree/selector-attr.js +99 -0
- package/lib/tree/selector-attr.js.map +1 -0
- package/lib/tree/selector-basic.d.ts +23 -0
- package/lib/tree/selector-basic.d.ts.map +1 -0
- package/lib/tree/selector-basic.js +34 -0
- package/lib/tree/selector-basic.js.map +1 -0
- package/lib/tree/selector-capture.d.ts +23 -0
- package/lib/tree/selector-capture.d.ts.map +1 -0
- package/lib/tree/selector-capture.js +34 -0
- package/lib/tree/selector-capture.js.map +1 -0
- package/lib/tree/selector-complex.d.ts +40 -0
- package/lib/tree/selector-complex.d.ts.map +1 -0
- package/lib/tree/selector-complex.js +143 -0
- package/lib/tree/selector-complex.js.map +1 -0
- package/lib/tree/selector-compound.d.ts +16 -0
- package/lib/tree/selector-compound.d.ts.map +1 -0
- package/lib/tree/selector-compound.js +114 -0
- package/lib/tree/selector-compound.js.map +1 -0
- package/lib/tree/selector-interpolated.d.ts +23 -0
- package/lib/tree/selector-interpolated.d.ts.map +1 -0
- package/lib/tree/selector-interpolated.js +27 -0
- package/lib/tree/selector-interpolated.js.map +1 -0
- package/lib/tree/selector-list.d.ts +17 -0
- package/lib/tree/selector-list.d.ts.map +1 -0
- package/lib/tree/selector-list.js +184 -0
- package/lib/tree/selector-list.js.map +1 -0
- package/lib/tree/selector-pseudo.d.ts +42 -0
- package/lib/tree/selector-pseudo.d.ts.map +1 -0
- package/lib/tree/selector-pseudo.js +191 -0
- package/lib/tree/selector-pseudo.js.map +1 -0
- package/lib/tree/selector-simple.d.ts +5 -0
- package/lib/tree/selector-simple.d.ts.map +1 -0
- package/lib/tree/selector-simple.js +6 -0
- package/lib/tree/selector-simple.js.map +1 -0
- package/lib/tree/selector.d.ts +43 -0
- package/lib/tree/selector.d.ts.map +1 -0
- package/lib/tree/selector.js +56 -0
- package/lib/tree/selector.js.map +1 -0
- package/lib/tree/sequence.d.ts +43 -0
- package/lib/tree/sequence.d.ts.map +1 -0
- package/lib/tree/sequence.js +148 -0
- package/lib/tree/sequence.js.map +1 -0
- package/lib/tree/tree.d.ts +87 -0
- package/lib/tree/tree.d.ts.map +1 -0
- package/lib/tree/tree.js +2 -0
- package/lib/tree/tree.js.map +1 -0
- package/lib/tree/url.d.ts +18 -0
- package/lib/tree/url.d.ts.map +1 -0
- package/lib/tree/url.js +35 -0
- package/lib/tree/url.js.map +1 -0
- package/lib/tree/util/__tests__/debug-log.d.ts +1 -0
- package/lib/tree/util/__tests__/debug-log.d.ts.map +1 -0
- package/lib/tree/util/__tests__/debug-log.js +36 -0
- package/lib/tree/util/__tests__/debug-log.js.map +1 -0
- package/lib/tree/util/calculate.d.ts +3 -0
- package/lib/tree/util/calculate.d.ts.map +1 -0
- package/lib/tree/util/calculate.js +10 -0
- package/lib/tree/util/calculate.js.map +1 -0
- package/lib/tree/util/cast.d.ts +10 -0
- package/lib/tree/util/cast.d.ts.map +1 -0
- package/lib/tree/util/cast.js +87 -0
- package/lib/tree/util/cast.js.map +1 -0
- package/lib/tree/util/cloning.d.ts +4 -0
- package/lib/tree/util/cloning.d.ts.map +1 -0
- package/lib/tree/util/cloning.js +8 -0
- package/lib/tree/util/cloning.js.map +1 -0
- package/lib/tree/util/collections.d.ts +57 -0
- package/lib/tree/util/collections.d.ts.map +1 -0
- package/lib/tree/util/collections.js +136 -0
- package/lib/tree/util/collections.js.map +1 -0
- package/lib/tree/util/compare.d.ts +11 -0
- package/lib/tree/util/compare.d.ts.map +1 -0
- package/lib/tree/util/compare.js +89 -0
- package/lib/tree/util/compare.js.map +1 -0
- package/lib/tree/util/extend-helpers.d.ts +2 -0
- package/lib/tree/util/extend-helpers.d.ts.map +1 -0
- package/lib/tree/util/extend-helpers.js +2 -0
- package/lib/tree/util/extend-helpers.js.map +1 -0
- package/lib/tree/util/extend-roots.d.ts +37 -0
- package/lib/tree/util/extend-roots.d.ts.map +1 -0
- package/lib/tree/util/extend-roots.js +682 -0
- package/lib/tree/util/extend-roots.js.map +1 -0
- package/lib/tree/util/extend-roots.old.d.ts +132 -0
- package/lib/tree/util/extend-roots.old.d.ts.map +1 -0
- package/lib/tree/util/extend-roots.old.js +2272 -0
- package/lib/tree/util/extend-roots.old.js.map +1 -0
- package/lib/tree/util/extend-trace-debug.d.ts +13 -0
- package/lib/tree/util/extend-trace-debug.d.ts.map +1 -0
- package/lib/tree/util/extend-trace-debug.js +34 -0
- package/lib/tree/util/extend-trace-debug.js.map +1 -0
- package/lib/tree/util/extend.d.ts +218 -0
- package/lib/tree/util/extend.d.ts.map +1 -0
- package/lib/tree/util/extend.js +3033 -0
- package/lib/tree/util/extend.js.map +1 -0
- package/lib/tree/util/find-extendable-locations.d.ts +2 -0
- package/lib/tree/util/find-extendable-locations.d.ts.map +1 -0
- package/lib/tree/util/find-extendable-locations.js +2 -0
- package/lib/tree/util/find-extendable-locations.js.map +1 -0
- package/lib/tree/util/format.d.ts +20 -0
- package/lib/tree/util/format.d.ts.map +1 -0
- package/lib/tree/util/format.js +67 -0
- package/lib/tree/util/format.js.map +1 -0
- package/lib/tree/util/is-node.d.ts +13 -0
- package/lib/tree/util/is-node.d.ts.map +1 -0
- package/lib/tree/util/is-node.js +43 -0
- package/lib/tree/util/is-node.js.map +1 -0
- package/lib/tree/util/print.d.ts +80 -0
- package/lib/tree/util/print.d.ts.map +1 -0
- package/lib/tree/util/print.js +205 -0
- package/lib/tree/util/print.js.map +1 -0
- package/lib/tree/util/process-leading-is.d.ts +25 -0
- package/lib/tree/util/process-leading-is.d.ts.map +1 -0
- package/lib/tree/util/process-leading-is.js +364 -0
- package/lib/tree/util/process-leading-is.js.map +1 -0
- package/lib/tree/util/recursion-helper.d.ts +15 -0
- package/lib/tree/util/recursion-helper.d.ts.map +1 -0
- package/lib/tree/util/recursion-helper.js +43 -0
- package/lib/tree/util/recursion-helper.js.map +1 -0
- package/lib/tree/util/regex.d.ts +4 -0
- package/lib/tree/util/regex.d.ts.map +1 -0
- package/lib/tree/util/regex.js +4 -0
- package/lib/tree/util/regex.js.map +1 -0
- package/lib/tree/util/registry-utils.d.ts +192 -0
- package/lib/tree/util/registry-utils.d.ts.map +1 -0
- package/lib/tree/util/registry-utils.js +1242 -0
- package/lib/tree/util/registry-utils.js.map +1 -0
- package/lib/tree/util/ruleset-trace.d.ts +4 -0
- package/lib/tree/util/ruleset-trace.d.ts.map +1 -0
- package/lib/tree/util/ruleset-trace.js +14 -0
- package/lib/tree/util/ruleset-trace.js.map +1 -0
- package/lib/tree/util/selector-compare.d.ts +2 -0
- package/lib/tree/util/selector-compare.d.ts.map +1 -0
- package/lib/tree/util/selector-compare.js +2 -0
- package/lib/tree/util/selector-compare.js.map +1 -0
- package/lib/tree/util/selector-match-core.d.ts +171 -0
- package/lib/tree/util/selector-match-core.d.ts.map +1 -0
- package/lib/tree/util/selector-match-core.js +1578 -0
- package/lib/tree/util/selector-match-core.js.map +1 -0
- package/lib/tree/util/selector-utils.d.ts +30 -0
- package/lib/tree/util/selector-utils.d.ts.map +1 -0
- package/lib/tree/util/selector-utils.js +100 -0
- package/lib/tree/util/selector-utils.js.map +1 -0
- package/lib/tree/util/serialize-helper.d.ts +13 -0
- package/lib/tree/util/serialize-helper.d.ts.map +1 -0
- package/lib/tree/util/serialize-helper.js +387 -0
- package/lib/tree/util/serialize-helper.js.map +1 -0
- package/lib/tree/util/serialize-types.d.ts +9 -0
- package/lib/tree/util/serialize-types.d.ts.map +1 -0
- package/lib/tree/util/serialize-types.js +216 -0
- package/lib/tree/util/serialize-types.js.map +1 -0
- package/lib/tree/util/should-operate.d.ts +23 -0
- package/lib/tree/util/should-operate.d.ts.map +1 -0
- package/lib/tree/util/should-operate.js +46 -0
- package/lib/tree/util/should-operate.js.map +1 -0
- package/lib/tree/util/sourcemap.d.ts +7 -0
- package/lib/tree/util/sourcemap.d.ts.map +1 -0
- package/lib/tree/util/sourcemap.js +25 -0
- package/lib/tree/util/sourcemap.js.map +1 -0
- package/lib/types/config.d.ts +205 -0
- package/lib/types/config.d.ts.map +1 -0
- package/lib/types/config.js +2 -0
- package/lib/types/config.js.map +1 -0
- package/lib/types/index.d.ts +15 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +3 -0
- package/lib/types/index.js.map +1 -0
- package/lib/types/modes.d.ts +24 -0
- package/lib/types/modes.d.ts.map +1 -0
- package/lib/types/modes.js +2 -0
- package/lib/types/modes.js.map +1 -0
- package/lib/types.d.ts +61 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +2 -0
- package/lib/types.js.map +1 -0
- package/lib/use-webpack-resolver.d.ts +9 -0
- package/lib/use-webpack-resolver.d.ts.map +1 -0
- package/lib/use-webpack-resolver.js +41 -0
- package/lib/use-webpack-resolver.js.map +1 -0
- package/lib/visitor/index.d.ts +136 -0
- package/lib/visitor/index.d.ts.map +1 -0
- package/lib/visitor/index.js +135 -0
- package/lib/visitor/index.js.map +1 -0
- package/lib/visitor/less-visitor.d.ts +7 -0
- package/lib/visitor/less-visitor.d.ts.map +1 -0
- package/lib/visitor/less-visitor.js +7 -0
- package/lib/visitor/less-visitor.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1,503 @@
|
|
|
1
|
+
import { Node, defineType, F_VISIBLE } from './node.js';
|
|
2
|
+
import { Ruleset } from './ruleset.js';
|
|
3
|
+
import { Any } from './any.js';
|
|
4
|
+
import { Rules } from './rules.js';
|
|
5
|
+
/**
|
|
6
|
+
* When collapseNesting/hoist wrapped at-rule rules in a single Ruleset(&),
|
|
7
|
+
* the real rulesets (.ma, .md, etc.) registered to the inner Rules (the wrapper
|
|
8
|
+
* Ruleset's rules). Register that inner Rules as a child extend root so
|
|
9
|
+
* processExtends can find them. Extend behavior must not depend on collapseNesting.
|
|
10
|
+
*/
|
|
11
|
+
function registerInnerExtendRootIfHoisted(wrapperRules, context, layerName) {
|
|
12
|
+
if (wrapperRules.value.length !== 1) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const first = wrapperRules.value[0];
|
|
16
|
+
if (!isNode(first, 'Ruleset')) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const innerRules = first.value.rules;
|
|
20
|
+
if (!innerRules || !isNode(innerRules, 'Rules')) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
context.extendRoots.registerRoot(innerRules, wrapperRules, { layerName });
|
|
24
|
+
}
|
|
25
|
+
import { getPrintOptions } from './util/print.js';
|
|
26
|
+
import { isThenable, pipe } from '@jesscss/awaitable-pipe';
|
|
27
|
+
import { Ampersand } from './ampersand.js';
|
|
28
|
+
import { isNode } from './util/is-node.js';
|
|
29
|
+
import { indent, normalizeIndent, serializeRulesContainer } from './util/serialize-helper.js';
|
|
30
|
+
import { Interpolated } from './interpolated.js';
|
|
31
|
+
import { Nil } from './nil.js';
|
|
32
|
+
export const NESTABLE_AT_RULES = ['@media', '@supports', '@layer', '@container', '@scope'];
|
|
33
|
+
export const ROOT_ONLY_AT_RULES = [
|
|
34
|
+
'@charset',
|
|
35
|
+
'@import',
|
|
36
|
+
'@namespace',
|
|
37
|
+
'@font-face',
|
|
38
|
+
'@keyframes',
|
|
39
|
+
'@page',
|
|
40
|
+
'@property',
|
|
41
|
+
'@counter-style',
|
|
42
|
+
'@viewport'
|
|
43
|
+
];
|
|
44
|
+
/**
|
|
45
|
+
* A rule like @charset or @media
|
|
46
|
+
*/
|
|
47
|
+
export class AtRule extends Node {
|
|
48
|
+
type = 'AtRule';
|
|
49
|
+
shortType = 'atrule';
|
|
50
|
+
allowRoot = true;
|
|
51
|
+
frames;
|
|
52
|
+
_valueOf;
|
|
53
|
+
/** Used for equality comparison with other at-rules */
|
|
54
|
+
valueOf() {
|
|
55
|
+
return (this._valueOf ??= (this.value.name.toString() + (this.value.prelude ? ' ' + this.value.prelude.valueOf() : '')));
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Means: can bubble ruleset parents to children.
|
|
59
|
+
*/
|
|
60
|
+
isNestable() {
|
|
61
|
+
return NESTABLE_AT_RULES.includes(this.value.name.valueOf());
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* For legacy collapseNesting, will push ruleset to root silently.
|
|
65
|
+
*/
|
|
66
|
+
isRootOnly() {
|
|
67
|
+
return ROOT_ONLY_AT_RULES.includes(this.value.name.valueOf());
|
|
68
|
+
}
|
|
69
|
+
isHoisted(opts) {
|
|
70
|
+
return this.hoistToRoot ?? opts.collapseNesting ?? false;
|
|
71
|
+
}
|
|
72
|
+
toTrimmedString(options) {
|
|
73
|
+
options = getPrintOptions(options);
|
|
74
|
+
return serializeRulesContainer(this, options);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Pre-evaluate name and prelude (similar to Ruleset.preEval)
|
|
78
|
+
* This allows us to extract layer names before rules are evaluated
|
|
79
|
+
*/
|
|
80
|
+
preEval(context) {
|
|
81
|
+
if (!this.preEvaluated) {
|
|
82
|
+
const node = this.maybeClone(context);
|
|
83
|
+
node.preEvaluated = true;
|
|
84
|
+
// Index should already be assigned by parent Rules
|
|
85
|
+
node.sourceNode ??= this;
|
|
86
|
+
// Evaluate name if needed (for interpolated names)
|
|
87
|
+
let { name } = node.value;
|
|
88
|
+
if (name && name instanceof Interpolated) {
|
|
89
|
+
const maybeKey = name.eval(context);
|
|
90
|
+
if (isThenable(maybeKey)) {
|
|
91
|
+
return maybeKey.then((key) => {
|
|
92
|
+
node.value.name = key;
|
|
93
|
+
return this._preEvalPrelude(node, context);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
node.value.name = maybeKey;
|
|
97
|
+
}
|
|
98
|
+
return this._preEvalPrelude(node, context);
|
|
99
|
+
}
|
|
100
|
+
return this;
|
|
101
|
+
}
|
|
102
|
+
_preEvalPrelude(node, context) {
|
|
103
|
+
const { prelude, rules } = node.value;
|
|
104
|
+
// Preserve @import prelude as-authored (including comments). Evaluation here can
|
|
105
|
+
// normalize/strip comment tokens inside the prelude, but less.js expects them preserved.
|
|
106
|
+
const atRuleName = String(node.value.name.valueOf?.() ?? node.value.name ?? '').trim();
|
|
107
|
+
if (atRuleName === '@import') {
|
|
108
|
+
if (prelude) {
|
|
109
|
+
node.value.prelude = prelude;
|
|
110
|
+
}
|
|
111
|
+
// Reference branches are traversed for symbol/extend resolution, but plain
|
|
112
|
+
// CSS @import hoisting must remain a visible-output concern only.
|
|
113
|
+
if (!context.inReferenceImportScope) {
|
|
114
|
+
const topImports = (context.topImports ??= []);
|
|
115
|
+
const nodeLoc = node.location?.join(':') ?? '';
|
|
116
|
+
const nodeSig = `${node.value.name.valueOf?.() ?? node.value.name}:${node.value.prelude?.valueOf?.() ?? ''}`;
|
|
117
|
+
const alreadyQueued = topImports.some((queuedNode) => {
|
|
118
|
+
if (!isNode(queuedNode, 'AtRule')) {
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
const queued = queuedNode;
|
|
122
|
+
return (queued === node
|
|
123
|
+
|| queued.sourceNode === node.sourceNode
|
|
124
|
+
|| queued.sourceNode === node
|
|
125
|
+
|| ((queued.location?.join(':') ?? '') === nodeLoc
|
|
126
|
+
&& `${queued.value.name.valueOf?.() ?? queued.value.name}:${queued.value.prelude?.valueOf?.() ?? ''}` === nodeSig));
|
|
127
|
+
});
|
|
128
|
+
if (!alreadyQueued) {
|
|
129
|
+
topImports.push(node);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return new Nil();
|
|
133
|
+
}
|
|
134
|
+
// Defer prelude evaluation to evalNode so variable lookups happen in the correct
|
|
135
|
+
// call-time scope (e.g. mixin parameters referenced from nested @media preludes).
|
|
136
|
+
if (prelude) {
|
|
137
|
+
node.value.prelude = prelude;
|
|
138
|
+
}
|
|
139
|
+
// Depth-first: preEval child rules immediately so all nested rulesets/extends
|
|
140
|
+
// are registered in source order before we process extends.
|
|
141
|
+
if (rules && !rules.preEvaluated) {
|
|
142
|
+
// For nestable at-rules we do NOT push the original here. The body's Rules.preEval
|
|
143
|
+
// pushes the clone (the Rules that ends up in the tree) so rulesets register to it.
|
|
144
|
+
// Pushing the original would leave the clone's registry empty (extend + collapseNesting bug).
|
|
145
|
+
let pushedExtendRootForPreEval = false;
|
|
146
|
+
if (!node.isNestable()) {
|
|
147
|
+
context.extendRoots.pushExtendRoot(rules);
|
|
148
|
+
pushedExtendRootForPreEval = true;
|
|
149
|
+
}
|
|
150
|
+
// Root-only at-rules (@keyframes, @font-face, etc.): do not let parent ruleset frames
|
|
151
|
+
// pierce into the body — clear rulesetFrames so 0%/100% etc. are not combined with .parent.
|
|
152
|
+
const savedRulesetFramesForPreEval = node.isRootOnly() ? context.rulesetFrames : undefined;
|
|
153
|
+
if (node.isRootOnly()) {
|
|
154
|
+
context.rulesetFrames = [];
|
|
155
|
+
}
|
|
156
|
+
const preEvaldRules = rules.preEval(context);
|
|
157
|
+
if (isThenable(preEvaldRules)) {
|
|
158
|
+
return preEvaldRules.then((evaldRules) => {
|
|
159
|
+
if (savedRulesetFramesForPreEval !== undefined) {
|
|
160
|
+
context.rulesetFrames = savedRulesetFramesForPreEval;
|
|
161
|
+
}
|
|
162
|
+
if (pushedExtendRootForPreEval) {
|
|
163
|
+
context.extendRoots.popExtendRoot();
|
|
164
|
+
}
|
|
165
|
+
node.value.rules = evaldRules;
|
|
166
|
+
return node;
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
if (savedRulesetFramesForPreEval !== undefined) {
|
|
170
|
+
context.rulesetFrames = savedRulesetFramesForPreEval;
|
|
171
|
+
}
|
|
172
|
+
if (pushedExtendRootForPreEval) {
|
|
173
|
+
context.extendRoots.popExtendRoot();
|
|
174
|
+
}
|
|
175
|
+
node.value.rules = preEvaldRules;
|
|
176
|
+
}
|
|
177
|
+
return node;
|
|
178
|
+
}
|
|
179
|
+
_extractAndStoreLayerName(node, context) {
|
|
180
|
+
const atRuleName = node.value.name?.toTrimmedString?.() ?? node.value.name?.toString?.() ?? '';
|
|
181
|
+
if (atRuleName === '@layer' && node.value.prelude) {
|
|
182
|
+
const preludeStr = String(node.value.prelude.valueOf?.() ?? node.value.prelude.toTrimmedString?.() ?? node.value.prelude.toString?.() ?? '');
|
|
183
|
+
if (preludeStr) {
|
|
184
|
+
let parentLayerName;
|
|
185
|
+
for (let i = context.frames.length - 2; i >= 0; i--) {
|
|
186
|
+
const frame = context.frames[i];
|
|
187
|
+
if (isNode(frame, 'AtRule') && frame.value.name?.toTrimmedString?.() === '@layer' && frame.value.rules?.value?.includes(node)) {
|
|
188
|
+
parentLayerName = context.extendRoots.getLayerName(frame);
|
|
189
|
+
if (parentLayerName) {
|
|
190
|
+
break;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
const layerName = parentLayerName ? `${parentLayerName}.${preludeStr}` : preludeStr;
|
|
195
|
+
context.extendRoots.setLayerName(node, layerName);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
/** Render the opening of this at-rule (name and prelude) */
|
|
200
|
+
getHeaderString(options, withoutComments) {
|
|
201
|
+
const w = options.writer;
|
|
202
|
+
let { name, prelude, rules } = this.value;
|
|
203
|
+
let idt = indent(options.depth);
|
|
204
|
+
let out = idt;
|
|
205
|
+
if (withoutComments) {
|
|
206
|
+
name = name.copy(true);
|
|
207
|
+
if (prelude) {
|
|
208
|
+
prelude = prelude.copy(true);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
const nameOut = w.capture(() => name.toString(options));
|
|
212
|
+
const nameEndsWithSpace = /\s$/.test(nameOut);
|
|
213
|
+
if (prelude) {
|
|
214
|
+
const preludeOut = w.capture(() => prelude.toString(options));
|
|
215
|
+
const preludeStartsWithSpace = /^\s/.test(preludeOut);
|
|
216
|
+
out += nameOut;
|
|
217
|
+
// If name ends with space AND prelude starts with space, trim the prelude's leading space
|
|
218
|
+
// Otherwise, add a space only if neither has spacing
|
|
219
|
+
let finalPreludeOut = preludeOut;
|
|
220
|
+
if (nameEndsWithSpace && preludeStartsWithSpace) {
|
|
221
|
+
finalPreludeOut = preludeOut.replace(/^\s+/, '');
|
|
222
|
+
}
|
|
223
|
+
else if (!nameEndsWithSpace && !preludeStartsWithSpace) {
|
|
224
|
+
out += ' ';
|
|
225
|
+
}
|
|
226
|
+
out += finalPreludeOut;
|
|
227
|
+
if (rules) {
|
|
228
|
+
const preludeEndsWithSpace = /\s$/.test(preludeOut);
|
|
229
|
+
if (!preludeEndsWithSpace) {
|
|
230
|
+
out += ' ';
|
|
231
|
+
}
|
|
232
|
+
out = normalizeIndent(out + '{', idt) + '\n';
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
out = normalizeIndent(out + ';', idt);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
out += nameOut;
|
|
240
|
+
if (rules) {
|
|
241
|
+
if (!nameEndsWithSpace) {
|
|
242
|
+
out += ' ';
|
|
243
|
+
}
|
|
244
|
+
out = normalizeIndent(out + '{', idt) + '\n';
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
out = normalizeIndent(out + ';', idt);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
return out;
|
|
251
|
+
}
|
|
252
|
+
evalNode(context) {
|
|
253
|
+
let node = this;
|
|
254
|
+
// @plugin is handled by the Less compatibility plugin (preEval). If we reach eval and it's still visible, no plugin processed it.
|
|
255
|
+
const atName = String(node.value?.name?.valueOf?.() ?? '');
|
|
256
|
+
if (atName === '@plugin' && node.visible) {
|
|
257
|
+
throw new Error('@plugin is only supported when using the Less compatibility plugin (@jesscss/plugin-less-compat).');
|
|
258
|
+
}
|
|
259
|
+
// Check if this is a root-only at-rule that should bubble to root
|
|
260
|
+
// when nested inside a Ruleset. Use hoistToRoot for in-place rendering.
|
|
261
|
+
let shouldClearRulesetFrames = false;
|
|
262
|
+
if (context.bubbleRootAtRules && node.isRootOnly()) {
|
|
263
|
+
const hasRulesetParent = context.frames.some(f => isNode(f, 'Ruleset'));
|
|
264
|
+
if (hasRulesetParent) {
|
|
265
|
+
// Mark for hoisting - this will render at root level but in-place
|
|
266
|
+
node.hoistToRoot = true;
|
|
267
|
+
// We'll clear rulesetFrames when evaluating internal rules
|
|
268
|
+
// to prevent selector inheritance from piercing through
|
|
269
|
+
shouldClearRulesetFrames = true;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
// Store frames snapshot for hoisting serialization
|
|
273
|
+
if (context.opts.collapseNesting || node.hoistToRoot) {
|
|
274
|
+
node.frames = [...context.frames];
|
|
275
|
+
}
|
|
276
|
+
const tryMergeNestedMedia = () => {
|
|
277
|
+
// Nested @media merge is currently disabled to match less.js fixture expectations.
|
|
278
|
+
// (Some fixtures expect nested @media blocks to remain nested rather than being
|
|
279
|
+
// rewritten as `@media a and b`.)
|
|
280
|
+
if (process.env.ENABLE_NESTED_MEDIA_MERGE !== 'true') {
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
if (node.value.name?.valueOf?.() !== '@media') {
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
const outerRules = node.value.rules;
|
|
287
|
+
if (!outerRules) {
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
const visible = outerRules.value.filter(n => n.visible);
|
|
291
|
+
if (visible.length !== 1) {
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
const only = visible[0];
|
|
295
|
+
if (!isNode(only, 'AtRule') || only.value.name?.valueOf?.() !== '@media') {
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
const inner = only;
|
|
299
|
+
const innerRules = inner.value.rules;
|
|
300
|
+
if (!innerRules) {
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
// Combine media queries using "and" like Less does.
|
|
304
|
+
const outerPrelude = node.value.prelude;
|
|
305
|
+
const innerPrelude = inner.value.prelude;
|
|
306
|
+
if (outerPrelude && innerPrelude) {
|
|
307
|
+
// Build a normalized text prelude to avoid double-spacing from nested sequences.
|
|
308
|
+
const outerText = outerPrelude.toTrimmedString().trim();
|
|
309
|
+
const innerText = innerPrelude.toTrimmedString().trim();
|
|
310
|
+
const combined = `${outerText} and ${innerText}`.replace(/[ \t]+/g, ' ').trim();
|
|
311
|
+
node.value.prelude = new Any(combined);
|
|
312
|
+
}
|
|
313
|
+
else {
|
|
314
|
+
node.value.prelude = outerPrelude ?? innerPrelude;
|
|
315
|
+
}
|
|
316
|
+
// Replace outer rules with the inner rules (flatten nested media).
|
|
317
|
+
node.value.rules = innerRules;
|
|
318
|
+
node.adopt(innerRules);
|
|
319
|
+
};
|
|
320
|
+
return pipe(() => {
|
|
321
|
+
// Evaluate prelude in the correct scope (mixin params, vars, etc.).
|
|
322
|
+
let { prelude } = node.value;
|
|
323
|
+
if (prelude) {
|
|
324
|
+
// Evaluate the prelude in the outer (enclosing) Rules scope, not the nested @media Rules scope.
|
|
325
|
+
// This matches Less behavior for mixin parameters referenced from nested @media preludes.
|
|
326
|
+
const savedRulesContext = context.rulesContext;
|
|
327
|
+
let liftedRulesContext = savedRulesContext;
|
|
328
|
+
// If our current rulesContext is a Rules whose parent is an AtRule, lift to the enclosing Rules.
|
|
329
|
+
if (liftedRulesContext && isNode(liftedRulesContext, 'Rules')) {
|
|
330
|
+
let cursor = liftedRulesContext;
|
|
331
|
+
let depth = 0;
|
|
332
|
+
while (cursor?.parent && depth++ < 10) {
|
|
333
|
+
if (isNode(cursor.parent, 'AtRule') && isNode(cursor.parent.parent, 'Rules')) {
|
|
334
|
+
cursor = cursor.parent.parent;
|
|
335
|
+
continue;
|
|
336
|
+
}
|
|
337
|
+
break;
|
|
338
|
+
}
|
|
339
|
+
liftedRulesContext = cursor;
|
|
340
|
+
}
|
|
341
|
+
context.rulesContext = liftedRulesContext;
|
|
342
|
+
const out = prelude.eval(context);
|
|
343
|
+
context.rulesContext = savedRulesContext;
|
|
344
|
+
if (isThenable(out)) {
|
|
345
|
+
return out.then((n) => {
|
|
346
|
+
node.value.prelude = n;
|
|
347
|
+
return undefined;
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
node.value.prelude = out;
|
|
351
|
+
}
|
|
352
|
+
}, () => {
|
|
353
|
+
let { rules } = node.value;
|
|
354
|
+
if (rules) {
|
|
355
|
+
if (context.opts.collapseNesting) {
|
|
356
|
+
node.hoistToRoot = true;
|
|
357
|
+
}
|
|
358
|
+
// Push to frames before evaluating rules so we can use context.frames to find parent layers
|
|
359
|
+
// This allows nested layers to find their parent layer names
|
|
360
|
+
// NOTE: We do NOT pop here - the frame must remain accessible during rules evaluation
|
|
361
|
+
// The frame will be popped at the end of evalNode
|
|
362
|
+
context.frames.push(node);
|
|
363
|
+
// Extract and store layer name AFTER pushing to frames but BEFORE evaluating rules
|
|
364
|
+
// This ensures parent layers are already on the stack when we look for them
|
|
365
|
+
this._extractAndStoreLayerName(node, context);
|
|
366
|
+
// Wrap in Ruleset(&) when hoisted for nestable at-rules only. Do NOT wrap @keyframes,
|
|
367
|
+
// @font-face, or other at-rules in ROOT_ONLY_AT_RULES — their children must not get
|
|
368
|
+
// a wrapper so keyframe percentages (0%, 100%) etc. are not combined with parent selectors.
|
|
369
|
+
// Required for serialization: rulesets inside @media need this wrapper to output
|
|
370
|
+
// e.g. ".parent { font-size: 14px; }" inside @media.
|
|
371
|
+
if (node.isNestable() && !node.isRootOnly() && node.isHoisted(context.opts)) {
|
|
372
|
+
let existingRules = rules;
|
|
373
|
+
rules = Rules.create([
|
|
374
|
+
Ruleset.create({
|
|
375
|
+
selector: Ampersand.create(undefined),
|
|
376
|
+
rules: existingRules
|
|
377
|
+
}, { generated: true })
|
|
378
|
+
]).inherit(existingRules);
|
|
379
|
+
node.adopt(rules);
|
|
380
|
+
}
|
|
381
|
+
// Register extend root for nestable at-rules (including @layer).
|
|
382
|
+
// Run preEval first so we push and later register the Rules that is actually evaluated
|
|
383
|
+
// (clone or original). Otherwise we push the original but eval runs on a clone, so the
|
|
384
|
+
// registered root has no rulesets and extend-chaining / nested at-rule extends fail.
|
|
385
|
+
let pushedExtendRoot = false;
|
|
386
|
+
let parentExtendRoot;
|
|
387
|
+
let bodyToEval = rules;
|
|
388
|
+
if (node.isNestable()) {
|
|
389
|
+
parentExtendRoot = context.extendRoots.getCurrentExtendRoot();
|
|
390
|
+
const preEvalResult = rules.preEval(context);
|
|
391
|
+
if (isThenable(preEvalResult)) {
|
|
392
|
+
return preEvalResult.then((resolved) => {
|
|
393
|
+
bodyToEval = resolved;
|
|
394
|
+
context.extendRoots.pushExtendRoot(bodyToEval);
|
|
395
|
+
pushedExtendRoot = true;
|
|
396
|
+
const savedRulesetFrames = shouldClearRulesetFrames ? context.rulesetFrames : undefined;
|
|
397
|
+
if (shouldClearRulesetFrames) {
|
|
398
|
+
context.rulesetFrames = [];
|
|
399
|
+
}
|
|
400
|
+
const onlyRuleSetChild = isNode(bodyToEval.value[0], 'Ruleset');
|
|
401
|
+
const evalOut = bodyToEval.eval(context);
|
|
402
|
+
const doRegister = (r) => {
|
|
403
|
+
if (savedRulesetFrames !== undefined) {
|
|
404
|
+
context.rulesetFrames = savedRulesetFrames;
|
|
405
|
+
}
|
|
406
|
+
const finalRules = onlyRuleSetChild && isNode(r.value[0], 'Rules') ? r.value[0] : r;
|
|
407
|
+
node.value.rules = finalRules;
|
|
408
|
+
tryMergeNestedMedia();
|
|
409
|
+
context.extendRoots.popExtendRoot();
|
|
410
|
+
const layerName = context.extendRoots.takeLayerName(node);
|
|
411
|
+
const parent = parentExtendRoot ?? context.root ?? undefined;
|
|
412
|
+
context.extendRoots.registerRoot(bodyToEval, parent, {
|
|
413
|
+
layerName
|
|
414
|
+
});
|
|
415
|
+
registerInnerExtendRootIfHoisted(bodyToEval, context, layerName);
|
|
416
|
+
if (finalRules !== bodyToEval) {
|
|
417
|
+
registerInnerExtendRootIfHoisted(finalRules, context, layerName);
|
|
418
|
+
}
|
|
419
|
+
context.extendRoots.pushExtendRoot(bodyToEval);
|
|
420
|
+
context.extendRoots.popExtendRoot();
|
|
421
|
+
return node;
|
|
422
|
+
};
|
|
423
|
+
if (isThenable(evalOut)) {
|
|
424
|
+
return evalOut.then(doRegister);
|
|
425
|
+
}
|
|
426
|
+
return doRegister(evalOut);
|
|
427
|
+
});
|
|
428
|
+
}
|
|
429
|
+
bodyToEval = preEvalResult;
|
|
430
|
+
context.extendRoots.pushExtendRoot(bodyToEval);
|
|
431
|
+
pushedExtendRoot = true;
|
|
432
|
+
}
|
|
433
|
+
let onlyRuleSetChild = isNode(bodyToEval.value[0], 'Ruleset');
|
|
434
|
+
// For root-only at-rules that are hoisted, clear rulesetFrames
|
|
435
|
+
// so internal rulesets don't inherit parent selectors
|
|
436
|
+
const savedRulesetFrames = shouldClearRulesetFrames ? context.rulesetFrames : undefined;
|
|
437
|
+
if (shouldClearRulesetFrames) {
|
|
438
|
+
context.rulesetFrames = [];
|
|
439
|
+
}
|
|
440
|
+
let out = bodyToEval.eval(context);
|
|
441
|
+
if (isThenable(out)) {
|
|
442
|
+
return out.then((r) => {
|
|
443
|
+
// Restore rulesetFrames
|
|
444
|
+
if (savedRulesetFrames !== undefined) {
|
|
445
|
+
context.rulesetFrames = savedRulesetFrames;
|
|
446
|
+
}
|
|
447
|
+
// If the only rule was a ruleset, and it evaluated to Rules,
|
|
448
|
+
// discard the extra rules wrapper
|
|
449
|
+
const finalRules = onlyRuleSetChild && isNode(r.value[0], 'Rules') ? r.value[0] : r;
|
|
450
|
+
node.value.rules = finalRules;
|
|
451
|
+
tryMergeNestedMedia();
|
|
452
|
+
if (pushedExtendRoot && node.isNestable()) {
|
|
453
|
+
context.extendRoots.popExtendRoot();
|
|
454
|
+
const layerName = context.extendRoots.takeLayerName(node);
|
|
455
|
+
const parent = parentExtendRoot ?? context.root ?? undefined;
|
|
456
|
+
context.extendRoots.registerRoot(bodyToEval, parent, {
|
|
457
|
+
layerName
|
|
458
|
+
});
|
|
459
|
+
registerInnerExtendRootIfHoisted(bodyToEval, context, layerName);
|
|
460
|
+
if (finalRules !== bodyToEval) {
|
|
461
|
+
registerInnerExtendRootIfHoisted(finalRules, context, layerName);
|
|
462
|
+
}
|
|
463
|
+
context.extendRoots.pushExtendRoot(bodyToEval);
|
|
464
|
+
context.extendRoots.popExtendRoot();
|
|
465
|
+
}
|
|
466
|
+
return node;
|
|
467
|
+
});
|
|
468
|
+
}
|
|
469
|
+
// Restore rulesetFrames (sync path)
|
|
470
|
+
if (savedRulesetFrames !== undefined) {
|
|
471
|
+
context.rulesetFrames = savedRulesetFrames;
|
|
472
|
+
}
|
|
473
|
+
const finalRules = onlyRuleSetChild && isNode(out.value[0], 'Rules') ? out.value[0] : out;
|
|
474
|
+
node.value.rules = finalRules;
|
|
475
|
+
tryMergeNestedMedia();
|
|
476
|
+
if (pushedExtendRoot && node.isNestable()) {
|
|
477
|
+
context.extendRoots.popExtendRoot();
|
|
478
|
+
const layerName = context.extendRoots.takeLayerName(node);
|
|
479
|
+
const parent = parentExtendRoot ?? context.root ?? undefined;
|
|
480
|
+
context.extendRoots.registerRoot(bodyToEval, parent, { layerName });
|
|
481
|
+
registerInnerExtendRootIfHoisted(bodyToEval, context, layerName);
|
|
482
|
+
if (finalRules !== bodyToEval) {
|
|
483
|
+
registerInnerExtendRootIfHoisted(finalRules, context, layerName);
|
|
484
|
+
}
|
|
485
|
+
context.extendRoots.pushExtendRoot(bodyToEval);
|
|
486
|
+
context.extendRoots.popExtendRoot();
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
return node;
|
|
490
|
+
}, () => {
|
|
491
|
+
// Pop the frame that was pushed in preEval
|
|
492
|
+
// This frame was kept on the stack during rules evaluation so children could access it
|
|
493
|
+
context.frames.pop();
|
|
494
|
+
let rules = node.value.rules;
|
|
495
|
+
if (rules && rules.visibleRules().length === 0) {
|
|
496
|
+
this.removeFlag(F_VISIBLE);
|
|
497
|
+
}
|
|
498
|
+
return node;
|
|
499
|
+
});
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
export const atrule = defineType(AtRule, 'AtRule');
|
|
503
|
+
//# sourceMappingURL=at-rule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"at-rule.js","sourceRoot":"","sources":["../../src/tree/at-rule.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Context } from '../context.js';
|
|
2
|
+
import { Node } from './node.js';
|
|
3
|
+
import { type PrintOptions } from './util/print.js';
|
|
4
|
+
export type BlockOptions = {
|
|
5
|
+
type: 'curly' | 'square';
|
|
6
|
+
};
|
|
7
|
+
export interface Block extends Node<Node, BlockOptions> {
|
|
8
|
+
eval(context: Context): Block;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* A block like `{ ... }` or `[ ... ]`. This is used
|
|
12
|
+
* for things like custom properties and unknown at-rules.
|
|
13
|
+
*/
|
|
14
|
+
export declare class Block extends Node<Node, BlockOptions> {
|
|
15
|
+
type: "Block";
|
|
16
|
+
shortType: "block";
|
|
17
|
+
toTrimmedString(options?: PrintOptions): string;
|
|
18
|
+
}
|
|
19
|
+
type BlockParams = ConstructorParameters<typeof Block>;
|
|
20
|
+
export declare const block: (value: BlockParams[0], options?: BlockParams[1], location?: BlockParams[2], treeContext?: BlockParams[3]) => Block;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=block.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../src/tree/block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAc,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,KAAK,YAAY,EAAmB,MAAM,iBAAiB,CAAC;AAErE,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC1B,CAAC;AAEF,MAAM,WAAW,KAAM,SAAQ,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;IACrD,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC;CAC/B;AAED;;;GAGG;AACH,qBAAa,KAAM,SAAQ,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;IACjD,IAAI,EAAG,OAAO,CAAU;IACxB,SAAS,EAAG,OAAO,CAAU;IAEpB,eAAe,CAAC,OAAO,CAAC,EAAE,YAAY;CAYhD;AAED,KAAK,WAAW,GAAG,qBAAqB,CAAC,OAAO,KAAK,CAAC,CAAC;AAEvD,eAAO,MAAM,KAAK,EAAiC,CACjD,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EACrB,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EACxB,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EACzB,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KACzB,KAAK,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Node, defineType } from './node.js';
|
|
2
|
+
import { getPrintOptions } from './util/print.js';
|
|
3
|
+
/**
|
|
4
|
+
* A block like `{ ... }` or `[ ... ]`. This is used
|
|
5
|
+
* for things like custom properties and unknown at-rules.
|
|
6
|
+
*/
|
|
7
|
+
export class Block extends Node {
|
|
8
|
+
type = 'Block';
|
|
9
|
+
shortType = 'block';
|
|
10
|
+
toTrimmedString(options) {
|
|
11
|
+
options = getPrintOptions(options);
|
|
12
|
+
const w = options.writer;
|
|
13
|
+
const mark = w.mark();
|
|
14
|
+
let { type } = this.options ?? {};
|
|
15
|
+
let start = type === 'square' ? '[' : '{';
|
|
16
|
+
let end = type === 'square' ? ']' : '}';
|
|
17
|
+
w.add(start);
|
|
18
|
+
super.toTrimmedString(options);
|
|
19
|
+
w.add(end);
|
|
20
|
+
return w.getSince(mark);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export const block = defineType(Block, 'Block');
|
|
24
|
+
//# sourceMappingURL=block.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block.js","sourceRoot":"","sources":["../../src/tree/block.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAqB,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAUrE;;;GAGG;AACH,MAAM,OAAO,KAAM,SAAQ,IAAwB;IACjD,IAAI,GAAG,OAAgB,CAAC;IACxB,SAAS,GAAG,OAAgB,CAAC;IAEpB,eAAe,CAAC,OAAsB;QAC7C,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAO,CAAC;QAC1B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACtB,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAClC,IAAI,KAAK,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC1C,IAAI,GAAG,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACxC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACb,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACX,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF;AAID,MAAM,CAAC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,CAKpC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Context } from '../context.js';
|
|
2
|
+
import { Node } from './node.js';
|
|
3
|
+
import { type PrintOptions } from './util/print.js';
|
|
4
|
+
export interface Bool extends Node<boolean> {
|
|
5
|
+
eval(context: Context): Bool;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* A boolean. Named `Bool` to avoid conflict with the built-in `Boolean` class.
|
|
9
|
+
*/
|
|
10
|
+
export declare class Bool extends Node<boolean> {
|
|
11
|
+
type: "Bool";
|
|
12
|
+
shortType: "bool";
|
|
13
|
+
compare(other: Node): 0 | 1 | -1 | undefined;
|
|
14
|
+
toTrimmedString(options?: PrintOptions): string;
|
|
15
|
+
}
|
|
16
|
+
export declare const bool: (value?: boolean | undefined, options?: import("./node-base.js").NodeOptions | undefined, location?: import("./node-base.js").LocationInfo | undefined) => Bool;
|
|
17
|
+
//# sourceMappingURL=bool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bool.d.ts","sourceRoot":"","sources":["../../src/tree/bool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAc,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,KAAK,YAAY,EAAmB,MAAM,iBAAiB,CAAC;AAErE,MAAM,WAAW,IAAK,SAAQ,IAAI,CAAC,OAAO,CAAC;IACzC,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,IAAK,SAAQ,IAAI,CAAC,OAAO,CAAC;IACrC,IAAI,EAAG,MAAM,CAAU;IACvB,SAAS,EAAG,MAAM,CAAU;IAEnB,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS;IAO5C,eAAe,CAAC,OAAO,CAAC,EAAE,YAAY;CAOhD;AACD,eAAO,MAAM,IAAI,iKAA2B,CAAC"}
|
package/lib/tree/bool.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Node, defineType } from './node.js';
|
|
2
|
+
import { getPrintOptions } from './util/print.js';
|
|
3
|
+
/**
|
|
4
|
+
* A boolean. Named `Bool` to avoid conflict with the built-in `Boolean` class.
|
|
5
|
+
*/
|
|
6
|
+
export class Bool extends Node {
|
|
7
|
+
type = 'Bool';
|
|
8
|
+
shortType = 'bool';
|
|
9
|
+
compare(other) {
|
|
10
|
+
if (other instanceof Bool) {
|
|
11
|
+
return this.value === other.value ? 0 : undefined;
|
|
12
|
+
}
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
toTrimmedString(options) {
|
|
16
|
+
options = getPrintOptions(options);
|
|
17
|
+
const w = options.writer;
|
|
18
|
+
const mark = w.mark();
|
|
19
|
+
w.add(this.value ? 'true' : 'false', this);
|
|
20
|
+
return w.getSince(mark);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export const bool = defineType(Bool, 'Bool');
|
|
24
|
+
//# sourceMappingURL=bool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bool.js","sourceRoot":"","sources":["../../src/tree/bool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAqB,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAMrE;;GAEG;AACH,MAAM,OAAO,IAAK,SAAQ,IAAa;IACrC,IAAI,GAAG,MAAe,CAAC;IACvB,SAAS,GAAG,MAAe,CAAC;IAEnB,OAAO,CAAC,KAAW;QAC1B,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEQ,eAAe,CAAC,OAAsB;QAC7C,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAO,CAAC;QAC1B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3C,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF;AACD,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC"}
|