Incorporate property prioritization into core & resolve conflicts.
Adjust cascade shorthand to feed pseudoelements to the property parsers, now that Stylist Traits provides the APIs for it.
Merge branch 'main' of git.adrian.geek.nz:/srv/git/haskell-stylist into main
New releases of all hackages! + code tidies.
Add utils for implementing :target-within, ensure unlayered styles take precedance.
Tweak priority to be a list for the sake of cascadeLayers.
Remove Stylist-Traits APIs from Stylist Core, leaving backwards-compatible stubs.
Add hook for callers to run their own tests against attributes.
Expand :is/:where lowering.
Codestyle: remove unnecessary parens.
Move :root handling into interpretor.
Start testing counters implementations, fix syntactic shorthand lowering for counter[s]() functions.
Evaluate attribute namespace selectors.
Parse namespace selectors.
Rewrite trivial cases of :where & :is. This is mostly for the psuedoselector rewrites performed in Data.CSS.Preprocessor.PsuedoClasses
Compute correct specificity for :is() & :not() pseudoclasses.
Implement :nth-child() & :nth-of-type(). I don't think I'll implement :nth-last-child() & :nth-last-of-type() until I'm shown their value, Haskell Stylist doesn't yet have access to the data to support them.
Implement :is, :where, & :not functional pseudoclasses. This is needed by some of the lowerings for other pseudoclasses. TODO correctly compute specificity.
Prepare to interpret functional pseudoclasses.
Optimize: use HashMap.Lazy for cascade.