wix / stylable

Stylable - CSS for components
https://stylable.io
MIT License
1.26k stars 62 forks source link

fix: initial mapped-selector infer with experimentalSelectorInference #2908

Closed idoros closed 9 months ago

idoros commented 9 months ago

This PR fixes the initial inferred selector for the transform/resolve process for a mapped selector that is created using a @custom-selector with the new experimentalSelectorInference=true (only in flat-mode and not the new structure-mode).

The difference between the old and new inference is that with the old mode the default context was the root of the stylesheet, so any internal custom states/parts were inferred against the root, and that worked fine because only flat structured were allowed, so any custom selector mapping that started with ::part would refer to a part of the root.

With the new experimentalSelectorInference, the selector context defaults to * (universal selector), making ::part unknown. So to handle mapping to ::part, it is assumed that any mapped-selector from a pseudo-element starts with an inferred root, while keeping the context after combinators as *.

this fix will also be backported to version 5.