@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,506 @@
|
|
|
1
|
+
import { Node, F_VISIBLE, F_EXTENDED, F_IMPLICIT_AMPERSAND, defineType } from './node.js';
|
|
2
|
+
import { Nil } from './nil.js';
|
|
3
|
+
import { Bool } from './bool.js';
|
|
4
|
+
import { atIndex } from './util/collections.js';
|
|
5
|
+
import { isNode } from './util/is-node.js';
|
|
6
|
+
import { ComplexSelector } from './selector-complex.js';
|
|
7
|
+
import { SelectorList } from './selector-list.js';
|
|
8
|
+
import { PseudoSelector } from './selector-pseudo.js';
|
|
9
|
+
import { getPrintOptions } from './util/print.js';
|
|
10
|
+
import { pipe, isThenable } from '@jesscss/awaitable-pipe';
|
|
11
|
+
import { serializeRulesContainer, normalizeIndent, indent } from './util/serialize-helper.js';
|
|
12
|
+
import { getImplicitSelector as getImplicitSelectorUtil } from './util/selector-utils.js';
|
|
13
|
+
import { processLeadingIs } from './util/process-leading-is.js';
|
|
14
|
+
import { registerRulesetWithRoot } from './util/extend-roots.js';
|
|
15
|
+
import { ensureRulesetTraceId } from './util/ruleset-trace.js';
|
|
16
|
+
/**
|
|
17
|
+
* A qualified rule. This is historically called a "Ruleset"
|
|
18
|
+
* by older CSS documentation and by Less.
|
|
19
|
+
*
|
|
20
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/CSS/Syntax#css_rulesets
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* .box {
|
|
24
|
+
* color: black;
|
|
25
|
+
* }
|
|
26
|
+
*/
|
|
27
|
+
export class Ruleset extends Node {
|
|
28
|
+
type = 'Ruleset';
|
|
29
|
+
shortType = 'ruleset';
|
|
30
|
+
allowRuleRoot = true;
|
|
31
|
+
allowRoot = true;
|
|
32
|
+
// Ruleset has preEval method but doesn't need to set flags - preEvaluated is tracked as boolean
|
|
33
|
+
frames;
|
|
34
|
+
get selector() {
|
|
35
|
+
return this.value.selector;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* If this ruleset shares its value object with a descendant ruleset, give those
|
|
39
|
+
* descendants their own value so mutating this ruleset's value.selector does not
|
|
40
|
+
* overwrite the descendant's selector (e.g. .rep_ace nested ruleset case).
|
|
41
|
+
*/
|
|
42
|
+
static ensureDescendantRulesetsHaveOwnValue(ruleset, sharedValue) {
|
|
43
|
+
const rules = ruleset.value?.rules;
|
|
44
|
+
if (!rules || !isNode(rules, 'Rules')) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const children = rules.value;
|
|
48
|
+
if (!Array.isArray(children)) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
for (const child of children) {
|
|
52
|
+
if (!isNode(child, 'Ruleset')) {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
const rs = child;
|
|
56
|
+
if (rs.value === sharedValue) {
|
|
57
|
+
rs.value = {
|
|
58
|
+
selector: rs.value.selector,
|
|
59
|
+
rules: rs.value.rules,
|
|
60
|
+
...(rs.value.guard !== undefined && { guard: rs.value.guard })
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
Ruleset.ensureDescendantRulesetsHaveOwnValue(rs, sharedValue);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
isHoisted(options) {
|
|
67
|
+
return this.hoistToRoot ?? options.collapseNesting ?? false;
|
|
68
|
+
}
|
|
69
|
+
_valueOf;
|
|
70
|
+
/** Used for equality comparison with other rulesets */
|
|
71
|
+
valueOf() {
|
|
72
|
+
if (this._valueOf !== undefined) {
|
|
73
|
+
return this._valueOf;
|
|
74
|
+
}
|
|
75
|
+
const selector = this.selector;
|
|
76
|
+
if (selector instanceof Nil) {
|
|
77
|
+
this._valueOf = '';
|
|
78
|
+
return this._valueOf;
|
|
79
|
+
}
|
|
80
|
+
const normalizedResult = processLeadingIs(selector);
|
|
81
|
+
const normalizedSelector = Array.isArray(normalizedResult)
|
|
82
|
+
? SelectorList.create(normalizedResult.map(s => s.copy(true))).inherit(selector)
|
|
83
|
+
: normalizedResult;
|
|
84
|
+
this._valueOf = normalizedSelector instanceof Nil ? '' : normalizedSelector.valueOf();
|
|
85
|
+
return this._valueOf;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Invalidate cached selector-based string value.
|
|
89
|
+
*
|
|
90
|
+
* `Ruleset.valueOf()` is used by serialization frame tracking; when an extend
|
|
91
|
+
* mutates `value.selector`, we must clear this cache so frame/header caching
|
|
92
|
+
* reflects the updated selector.
|
|
93
|
+
*/
|
|
94
|
+
invalidateSelectorValueCache() {
|
|
95
|
+
this._valueOf = undefined;
|
|
96
|
+
}
|
|
97
|
+
toTrimmedString(options) {
|
|
98
|
+
options = getPrintOptions(options);
|
|
99
|
+
return serializeRulesContainer(this, options);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Render the opening of this ruleset (selector)
|
|
103
|
+
* @todo - Efficiently serialize the selector with and without comments?
|
|
104
|
+
*/
|
|
105
|
+
/** Ensure every node in the selector has F_VISIBLE so toString() does not skip them (rep_ace bug).
|
|
106
|
+
* Do NOT add F_VISIBLE to implicit ampersands: they must stay invisible so nested output stays short. */
|
|
107
|
+
static ensureSelectorVisible(sel) {
|
|
108
|
+
if (!sel || sel instanceof Nil || typeof sel.addFlag !== 'function') {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const n = sel;
|
|
112
|
+
if (isNode(sel, 'Ampersand') && n.hasFlag(F_IMPLICIT_AMPERSAND)) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
if (!n.hasFlag(F_VISIBLE)) {
|
|
116
|
+
n.addFlag(F_VISIBLE);
|
|
117
|
+
}
|
|
118
|
+
if (isNode(sel, 'SelectorList')) {
|
|
119
|
+
const list = sel;
|
|
120
|
+
if (Array.isArray(list.value)) {
|
|
121
|
+
for (const item of list.value) {
|
|
122
|
+
Ruleset.ensureSelectorVisible(item);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
if (isNode(sel, 'ComplexSelector')) {
|
|
128
|
+
const comps = sel.value;
|
|
129
|
+
if (Array.isArray(comps)) {
|
|
130
|
+
for (const c of comps) {
|
|
131
|
+
Ruleset.ensureSelectorVisible(c);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
const v = sel.value;
|
|
137
|
+
if (Array.isArray(v)) {
|
|
138
|
+
for (const c of v) {
|
|
139
|
+
Ruleset.ensureSelectorVisible(c);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
static materializeHoistedImplicitAmpersands(sel) {
|
|
144
|
+
if (!sel || sel instanceof Nil) {
|
|
145
|
+
return sel;
|
|
146
|
+
}
|
|
147
|
+
const materialize = (node) => {
|
|
148
|
+
if (isNode(node, 'Ampersand')) {
|
|
149
|
+
const amp = node;
|
|
150
|
+
const n = amp;
|
|
151
|
+
if (n.hasFlag(F_IMPLICIT_AMPERSAND)) {
|
|
152
|
+
const resolved = amp.getResolvedSelector();
|
|
153
|
+
if (resolved && !(resolved instanceof Nil)) {
|
|
154
|
+
return resolved.copy(true);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return node.copy(true);
|
|
158
|
+
}
|
|
159
|
+
if (isNode(node, 'SelectorList')) {
|
|
160
|
+
const list = node;
|
|
161
|
+
return SelectorList.create(list.value.map(item => materialize(item))).inherit(node);
|
|
162
|
+
}
|
|
163
|
+
if (isNode(node, 'ComplexSelector')) {
|
|
164
|
+
const complex = node;
|
|
165
|
+
const parts = [];
|
|
166
|
+
for (const part of complex.value) {
|
|
167
|
+
if (isNode(part, 'Ampersand')) {
|
|
168
|
+
const amp = part;
|
|
169
|
+
const n = amp;
|
|
170
|
+
if (n.hasFlag(F_IMPLICIT_AMPERSAND)) {
|
|
171
|
+
const resolved = amp.getResolvedSelector();
|
|
172
|
+
if (resolved && !(resolved instanceof Nil)) {
|
|
173
|
+
const repl = materialize(resolved);
|
|
174
|
+
if (isNode(repl, 'ComplexSelector')) {
|
|
175
|
+
parts.push(...repl.value.map(c => c.copy(true)));
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
parts.push(repl);
|
|
179
|
+
}
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
parts.push(materialize(part));
|
|
185
|
+
}
|
|
186
|
+
return ComplexSelector.create(parts).inherit(node);
|
|
187
|
+
}
|
|
188
|
+
const arr = node.value;
|
|
189
|
+
if (Array.isArray(arr)) {
|
|
190
|
+
const cloned = node.copy(true);
|
|
191
|
+
cloned.value = arr.map(item => materialize(item));
|
|
192
|
+
return cloned;
|
|
193
|
+
}
|
|
194
|
+
return node.copy(true);
|
|
195
|
+
};
|
|
196
|
+
return materialize(sel);
|
|
197
|
+
}
|
|
198
|
+
static hasExtendedTopLevelSelector(sel) {
|
|
199
|
+
if (!sel || sel instanceof Nil) {
|
|
200
|
+
return false;
|
|
201
|
+
}
|
|
202
|
+
if (isNode(sel, 'SelectorList')) {
|
|
203
|
+
return sel.value.some(item => item.hasFlag(F_EXTENDED));
|
|
204
|
+
}
|
|
205
|
+
return sel.hasFlag(F_EXTENDED);
|
|
206
|
+
}
|
|
207
|
+
static filterExtendedTopLevelSelectorItems(sel) {
|
|
208
|
+
if (!isNode(sel, 'SelectorList')) {
|
|
209
|
+
return sel.hasFlag(F_EXTENDED) ? sel : new Nil();
|
|
210
|
+
}
|
|
211
|
+
const seen = new Set();
|
|
212
|
+
const kept = [];
|
|
213
|
+
for (const item of sel.value) {
|
|
214
|
+
if (!item.hasFlag(F_EXTENDED)) {
|
|
215
|
+
continue;
|
|
216
|
+
}
|
|
217
|
+
const key = item.valueOf();
|
|
218
|
+
if (seen.has(key)) {
|
|
219
|
+
continue;
|
|
220
|
+
}
|
|
221
|
+
seen.add(key);
|
|
222
|
+
kept.push(item.copy(true));
|
|
223
|
+
}
|
|
224
|
+
if (kept.length === 0) {
|
|
225
|
+
return new Nil();
|
|
226
|
+
}
|
|
227
|
+
if (kept.length === 1) {
|
|
228
|
+
return kept[0];
|
|
229
|
+
}
|
|
230
|
+
return SelectorList.create(kept).inherit(sel);
|
|
231
|
+
}
|
|
232
|
+
getHeaderString(options, withoutComments) {
|
|
233
|
+
const w = options.writer;
|
|
234
|
+
const { selector } = this.value;
|
|
235
|
+
const idt = indent(options.depth);
|
|
236
|
+
// Should never be called for Nil selectors (serializeRulesContainer guards this),
|
|
237
|
+
// but keep it safe for TypeScript and invariants.
|
|
238
|
+
if (selector instanceof Nil) {
|
|
239
|
+
return '';
|
|
240
|
+
}
|
|
241
|
+
const normalizedResult = processLeadingIs(selector);
|
|
242
|
+
const normalizedSelector = Array.isArray(normalizedResult)
|
|
243
|
+
? SelectorList.create(normalizedResult.map(s => s.copy(true))).inherit(selector)
|
|
244
|
+
: normalizedResult;
|
|
245
|
+
this.value.selector = normalizedSelector;
|
|
246
|
+
this.invalidateSelectorValueCache();
|
|
247
|
+
let renderSelector = withoutComments ? this.value.selector.copy(true) : this.value.selector;
|
|
248
|
+
if (this.hoistToRoot && options.depth === 0 && !(renderSelector instanceof Nil)) {
|
|
249
|
+
renderSelector = Ruleset.materializeHoistedImplicitAmpersands(renderSelector);
|
|
250
|
+
}
|
|
251
|
+
const renderNormalizedResult = processLeadingIs(renderSelector);
|
|
252
|
+
renderSelector = Array.isArray(renderNormalizedResult)
|
|
253
|
+
? SelectorList.create(renderNormalizedResult.map(s => s.copy(true))).inherit(renderSelector)
|
|
254
|
+
: renderNormalizedResult;
|
|
255
|
+
if (options.referenceMode === true
|
|
256
|
+
&& options.referenceRenderEnabled === true
|
|
257
|
+
&& !this.hasFlag(F_EXTENDED)
|
|
258
|
+
&& !(renderSelector instanceof Nil)
|
|
259
|
+
&& Ruleset.hasExtendedTopLevelSelector(renderSelector)) {
|
|
260
|
+
renderSelector = Ruleset.filterExtendedTopLevelSelectorItems(renderSelector);
|
|
261
|
+
if (renderSelector instanceof Nil) {
|
|
262
|
+
return '';
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
const prevReferenceFilterTargets = options.referenceFilterTargets === true;
|
|
266
|
+
const disableTargetFilteringForTopLevelList = (this.hasFlag(F_EXTENDED)
|
|
267
|
+
&& !(renderSelector instanceof Nil)
|
|
268
|
+
&& isNode(renderSelector, 'SelectorList'));
|
|
269
|
+
options.referenceFilterTargets = (options.referenceMode === true
|
|
270
|
+
&& options.referenceRenderEnabled === true
|
|
271
|
+
&& !disableTargetFilteringForTopLevelList);
|
|
272
|
+
Ruleset.ensureSelectorVisible(renderSelector);
|
|
273
|
+
const rulesetId = ensureRulesetTraceId(this);
|
|
274
|
+
let out = withoutComments ? '' : w.capture(() => this.processPrePost('pre', undefined, options));
|
|
275
|
+
let selOut = w.capture(() => renderSelector.toString(options));
|
|
276
|
+
options.referenceFilterTargets = prevReferenceFilterTargets;
|
|
277
|
+
/** Normalize single spacing */
|
|
278
|
+
out += selOut.replace(/[ \t]+/g, ' ');
|
|
279
|
+
return normalizeIndent(selOut.replace(/\s+$/, '') + ' {', idt) + '\n';
|
|
280
|
+
}
|
|
281
|
+
preEval(context) {
|
|
282
|
+
if (!this.preEvaluated) {
|
|
283
|
+
const node = this.maybeClone(context);
|
|
284
|
+
node.preEvaluated = true;
|
|
285
|
+
// Index should already be assigned by parent Rules
|
|
286
|
+
node.sourceNode ??= this;
|
|
287
|
+
let { selector, rules, guard } = node.value;
|
|
288
|
+
// Generated wrapper rulesets (e.g. implicit `& { ... }` created by AtRule hoisting)
|
|
289
|
+
// should not force var visibility to `private`, otherwise sibling vars inside the wrapper
|
|
290
|
+
// (like Less `@base`) become inaccessible.
|
|
291
|
+
if (!node.options.generated) {
|
|
292
|
+
if (context.leakyRules) {
|
|
293
|
+
rules.options.rulesVisibility.Mixin = 'public';
|
|
294
|
+
rules.options.rulesVisibility.VarDeclaration = 'optional';
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
297
|
+
rules.options.rulesVisibility.Mixin = 'private';
|
|
298
|
+
rules.options.rulesVisibility.VarDeclaration = 'private';
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
// Check if there's a root-only at-rule between us and the parent ruleset
|
|
302
|
+
// If so, don't inherit the parent selector (root-only at-rules like @keyframes
|
|
303
|
+
// don't propagate parent selectors to their children)
|
|
304
|
+
let shouldInheritSelector = true;
|
|
305
|
+
const parentRuleset = context.rulesetFrames.at(-1);
|
|
306
|
+
const parentRulesetIndex = parentRuleset ? context.frames.lastIndexOf(parentRuleset) : -1;
|
|
307
|
+
if (parentRulesetIndex >= 0) {
|
|
308
|
+
// Check frames after the parent ruleset for any root-only at-rules
|
|
309
|
+
for (let i = parentRulesetIndex + 1; i < context.frames.length; i++) {
|
|
310
|
+
const frame = context.frames[i];
|
|
311
|
+
if (isNode(frame, 'AtRule') && frame.isRootOnly()) {
|
|
312
|
+
shouldInheritSelector = false;
|
|
313
|
+
break;
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
const parentSelector = parentRuleset?.selector;
|
|
318
|
+
// Store own selector before parent resolution so extend can extend .replace,.c not the resolved form.
|
|
319
|
+
if (node.options) {
|
|
320
|
+
node.options.ownSelector = selector;
|
|
321
|
+
}
|
|
322
|
+
else {
|
|
323
|
+
node.options = { ownSelector: selector };
|
|
324
|
+
}
|
|
325
|
+
if (parentSelector && !(parentSelector instanceof Nil) && !(selector instanceof Nil) && parentRuleset) {
|
|
326
|
+
let selectorForImplicit = selector;
|
|
327
|
+
const shouldCanonicalizeSelectorList = (!context.opts.collapseNesting
|
|
328
|
+
&& isNode(selector, 'SelectorList')
|
|
329
|
+
&& selector.value.some(item => isNode(item, 'ComplexSelector')));
|
|
330
|
+
if (shouldCanonicalizeSelectorList) {
|
|
331
|
+
const synthetic = PseudoSelector.create({ name: ':is', arg: selector.copy(true) });
|
|
332
|
+
synthetic.generated = true;
|
|
333
|
+
selectorForImplicit = synthetic;
|
|
334
|
+
}
|
|
335
|
+
selector = getImplicitSelectorUtil(selectorForImplicit, parentRuleset, context.opts.collapseNesting);
|
|
336
|
+
selector.sourceNode = node === this ? selector.clone(true) : selector;
|
|
337
|
+
}
|
|
338
|
+
// DO NOT evaluate guard here - guards are evaluated at call time in getFunctionFromMixins
|
|
339
|
+
// Just evaluate the selector
|
|
340
|
+
return pipe(() => selector.eval(context), (sel) => {
|
|
341
|
+
// If this ruleset shares its value with a descendant ruleset, give descendants
|
|
342
|
+
// their own value before we overwrite value.selector so they keep their selector.
|
|
343
|
+
Ruleset.ensureDescendantRulesetsHaveOwnValue(node, node.value);
|
|
344
|
+
// Store the evaluated selector - this is what will be in the frame
|
|
345
|
+
node.value.selector = sel;
|
|
346
|
+
if (sel.hoistToRoot) {
|
|
347
|
+
node.hoistToRoot = true;
|
|
348
|
+
}
|
|
349
|
+
// Register to extend root's registry for extend lookups
|
|
350
|
+
const extendRoot = context.extendRoots.getCurrentExtendRoot();
|
|
351
|
+
if (extendRoot) {
|
|
352
|
+
extendRoot.getRegistry('ruleset').add(node);
|
|
353
|
+
// Keep a per-root registry list for visibility processing
|
|
354
|
+
registerRulesetWithRoot(extendRoot, node);
|
|
355
|
+
}
|
|
356
|
+
// Depth-first: preEval child rules immediately so all nested rulesets/extends
|
|
357
|
+
// are registered in source order before we process extends.
|
|
358
|
+
// Push this ruleset to the frame so nested rulesets get the correct parent selector
|
|
359
|
+
// when building implicit selectors (e.g. .header-nav inside .header → .header .header-nav).
|
|
360
|
+
const childRules = node.value.rules;
|
|
361
|
+
if (childRules && !childRules.preEvaluated) {
|
|
362
|
+
context.rulesetFrames.push(node);
|
|
363
|
+
const preEvaldRules = childRules.preEval(context);
|
|
364
|
+
if (isThenable(preEvaldRules)) {
|
|
365
|
+
return preEvaldRules.then((rules) => {
|
|
366
|
+
context.rulesetFrames.pop();
|
|
367
|
+
node.value.rules = rules;
|
|
368
|
+
return node;
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
context.rulesetFrames.pop();
|
|
372
|
+
node.value.rules = preEvaldRules;
|
|
373
|
+
}
|
|
374
|
+
return node;
|
|
375
|
+
});
|
|
376
|
+
}
|
|
377
|
+
return this;
|
|
378
|
+
}
|
|
379
|
+
/** Attach an (invisible) ampersand to the selector(s) if it's not already there */
|
|
380
|
+
getImplicitSelector(parentSelector, collapseNesting = false) {
|
|
381
|
+
if (this.selector instanceof Nil) {
|
|
382
|
+
return this.selector;
|
|
383
|
+
}
|
|
384
|
+
return getImplicitSelectorUtil(this.selector, parentSelector, collapseNesting);
|
|
385
|
+
}
|
|
386
|
+
copy(deep) {
|
|
387
|
+
const node = super.copy(deep);
|
|
388
|
+
const selectorSourceNode = this.value.selector.sourceNode;
|
|
389
|
+
node.value.selector = selectorSourceNode.copy(true);
|
|
390
|
+
node.value.selector.sourceNode = selectorSourceNode;
|
|
391
|
+
return node;
|
|
392
|
+
}
|
|
393
|
+
evalNode(context) {
|
|
394
|
+
if (this.evaluated) {
|
|
395
|
+
return this;
|
|
396
|
+
}
|
|
397
|
+
let pushedFrames = false;
|
|
398
|
+
/** Should have been maybe cloned in preEval */
|
|
399
|
+
this.evaluated = true;
|
|
400
|
+
const collapseNesting = context.opts.collapseNesting;
|
|
401
|
+
// Store frames snapshot for collapseNesting serialization
|
|
402
|
+
if (collapseNesting) {
|
|
403
|
+
this.frames = [...context.frames];
|
|
404
|
+
}
|
|
405
|
+
return pipe(() => {
|
|
406
|
+
const selectorText = String(this.value.selector?.valueOf?.() ?? '');
|
|
407
|
+
if (selectorText.includes('.call-lock-mixin')
|
|
408
|
+
|| selectorText.includes('#guarded-caller')
|
|
409
|
+
|| selectorText.includes('#guarded-deeper')) {
|
|
410
|
+
}
|
|
411
|
+
let { guard } = this.value;
|
|
412
|
+
// Guard was already set to Nil (failed in a previous eval)
|
|
413
|
+
if (guard instanceof Nil) {
|
|
414
|
+
return guard;
|
|
415
|
+
}
|
|
416
|
+
// Evaluate guard at definition time (not call time like mixins)
|
|
417
|
+
// This is different from mixins because rulesets can't use caller scope for guards
|
|
418
|
+
if (guard) {
|
|
419
|
+
return pipe(() => guard.eval(context), (guardResult) => {
|
|
420
|
+
const selectorText = String(this.value.selector?.valueOf?.() ?? '');
|
|
421
|
+
const guardPasses = Boolean(guardResult instanceof Bool && guardResult.value === true);
|
|
422
|
+
if (selectorText.includes('#guarded') || selectorText.includes('#top') || selectorText.includes('#deeper')) {
|
|
423
|
+
}
|
|
424
|
+
if (!guardPasses) {
|
|
425
|
+
// Guard failed - mark as Nil and return it
|
|
426
|
+
this.value.guard = new Nil();
|
|
427
|
+
return new Nil();
|
|
428
|
+
}
|
|
429
|
+
// Guard passed - clear it and continue with selector evaluation
|
|
430
|
+
this.value.guard = undefined;
|
|
431
|
+
return undefined;
|
|
432
|
+
});
|
|
433
|
+
}
|
|
434
|
+
return undefined;
|
|
435
|
+
}, (guardResult) => {
|
|
436
|
+
// If guard failed, return Nil (ruleset produces no output)
|
|
437
|
+
if (guardResult instanceof Nil) {
|
|
438
|
+
return guardResult;
|
|
439
|
+
}
|
|
440
|
+
let { selector } = this.value;
|
|
441
|
+
const frame = atIndex(context.rulesetFrames, -1);
|
|
442
|
+
if (frame && (this.hoistToRoot ?? context.opts.collapseNesting)) {
|
|
443
|
+
this.hoistToRoot = true;
|
|
444
|
+
}
|
|
445
|
+
if (selector instanceof Nil) {
|
|
446
|
+
// If selector evaluates to Nil, return the rules body directly instead of the ruleset
|
|
447
|
+
// This allows rules to be output even when there's no selector context
|
|
448
|
+
// We don't push frames because there's no selector context
|
|
449
|
+
// Store Nil in selector so next step can detect this case
|
|
450
|
+
this.value.selector = selector;
|
|
451
|
+
const evaluatedRules = this.value.rules.eval(context);
|
|
452
|
+
// Update this.value.rules to point to evaluated Rules to prevent circular reference
|
|
453
|
+
// when debug code traverses the AST
|
|
454
|
+
if (isThenable(evaluatedRules)) {
|
|
455
|
+
return evaluatedRules.then((rules) => {
|
|
456
|
+
this.value.rules = rules;
|
|
457
|
+
return rules;
|
|
458
|
+
});
|
|
459
|
+
}
|
|
460
|
+
this.value.rules = evaluatedRules;
|
|
461
|
+
return evaluatedRules;
|
|
462
|
+
}
|
|
463
|
+
// Preserve the sourceNode from the current selector before replacing it
|
|
464
|
+
const preservedSourceNode = this.value.selector?.sourceNode;
|
|
465
|
+
this.value.selector = selector;
|
|
466
|
+
// Restore the sourceNode on the new selector so it's available when copying
|
|
467
|
+
if (preservedSourceNode && this.value.selector) {
|
|
468
|
+
this.value.selector.sourceNode = preservedSourceNode;
|
|
469
|
+
}
|
|
470
|
+
if (context.opts.collapseNesting) {
|
|
471
|
+
this.hoistToRoot = true;
|
|
472
|
+
}
|
|
473
|
+
context.rulesetFrames.push(this);
|
|
474
|
+
context.frames.push(this);
|
|
475
|
+
pushedFrames = true;
|
|
476
|
+
return this.value.rules.eval(context);
|
|
477
|
+
}, (evaluatedRules) => {
|
|
478
|
+
if (pushedFrames) {
|
|
479
|
+
context.rulesetFrames.pop();
|
|
480
|
+
context.frames.pop();
|
|
481
|
+
}
|
|
482
|
+
if (evaluatedRules instanceof Nil) {
|
|
483
|
+
return evaluatedRules;
|
|
484
|
+
}
|
|
485
|
+
const selectorText = String(this.value.selector?.valueOf?.() ?? '');
|
|
486
|
+
if (selectorText.includes('.call-lock-mixin')
|
|
487
|
+
|| selectorText.includes('#guarded-caller')
|
|
488
|
+
|| selectorText.includes('#guarded-deeper')) {
|
|
489
|
+
}
|
|
490
|
+
// If selector was Nil, evaluatedRules is already Rules (not wrapped in Ruleset)
|
|
491
|
+
// In that case, return it directly without wrapping back in Ruleset
|
|
492
|
+
if (this.value.selector instanceof Nil) {
|
|
493
|
+
// Selector was Nil, so we already returned Rules directly - just return it
|
|
494
|
+
return evaluatedRules;
|
|
495
|
+
}
|
|
496
|
+
this.value.rules = evaluatedRules;
|
|
497
|
+
const rules = this.value.rules;
|
|
498
|
+
if (rules.visibleRules().length === 0) {
|
|
499
|
+
this.removeFlag(F_VISIBLE);
|
|
500
|
+
}
|
|
501
|
+
return this;
|
|
502
|
+
});
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
export const ruleset = defineType(Ruleset, 'Ruleset');
|
|
506
|
+
//# sourceMappingURL=ruleset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ruleset.js","sourceRoot":"","sources":["../../src/tree/ruleset.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type LocationInfo, type Node } from './node.js';
|
|
2
|
+
import { type TreeContext } from '../context.js';
|
|
3
|
+
import { SimpleSelector } from './selector-simple.js';
|
|
4
|
+
import { type PrintOptions } from './util/print.js';
|
|
5
|
+
import type { Context } from '../context.js';
|
|
6
|
+
import { type MaybePromise } from '@jesscss/awaitable-pipe';
|
|
7
|
+
export type AttributeSelectorValue = {
|
|
8
|
+
/** The name of the attribute */
|
|
9
|
+
name: string | Node;
|
|
10
|
+
/** The operator */
|
|
11
|
+
op?: string;
|
|
12
|
+
/** The value of the attribute */
|
|
13
|
+
value?: Node;
|
|
14
|
+
/** The modifier (case insensitivity) */
|
|
15
|
+
mod?: string;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* An attribute selector
|
|
19
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors
|
|
20
|
+
* e.g. [id="foo"]
|
|
21
|
+
*/
|
|
22
|
+
export declare class AttributeSelector extends SimpleSelector<AttributeSelectorValue> {
|
|
23
|
+
type: "AttributeSelector";
|
|
24
|
+
shortType: "attr";
|
|
25
|
+
evalNode(context: Context): MaybePromise<this>;
|
|
26
|
+
toTrimmedString(options?: PrintOptions): string;
|
|
27
|
+
valueOf(): string;
|
|
28
|
+
}
|
|
29
|
+
/** Not sure why types couldn't be properly inferred */
|
|
30
|
+
export declare const attr: (value: AttributeSelectorValue, options?: undefined, location?: LocationInfo | 0, treeContext?: TreeContext) => AttributeSelector;
|
|
31
|
+
//# sourceMappingURL=selector-attr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selector-attr.d.ts","sourceRoot":"","sources":["../../src/tree/selector-attr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,YAAY,EAAE,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,KAAK,YAAY,EAAmB,MAAM,iBAAiB,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG9E,MAAM,MAAM,sBAAsB,GAAG;IACnC,gCAAgC;IAChC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,mBAAmB;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iCAAiC;IACjC,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,wCAAwC;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;EAIE;AACF,qBAAa,iBAAkB,SAAQ,cAAc,CAAC,sBAAsB,CAAC;IAC3E,IAAI,EAAG,mBAAmB,CAAU;IACpC,SAAS,EAAG,MAAM,CAAU;IAEnB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC;IA6C9C,eAAe,CAAC,OAAO,CAAC,EAAE,YAAY;IAyBtC,OAAO;CAcjB;AAED,uDAAuD;AACvD,eAAO,MAAM,IAAI,EAAyF,CACxG,KAAK,EAAE,sBAAsB,EAC7B,OAAO,CAAC,EAAE,SAAS,EACnB,QAAQ,CAAC,EAAE,YAAY,GAAG,CAAC,EAC3B,WAAW,CAAC,EAAE,WAAW,KACtB,iBAAiB,CAAC"}
|