@@ -108,6 +108,15 @@ impl<'a, 'o, 'i> parcel_selectors::parser::Parser<'i> for SelectorParser<'a, 'o,
108108 "-moz-full-screen" => Fullscreen(VendorPrefix::Moz),
109109 "-ms-fullscreen" => Fullscreen(VendorPrefix::Ms),
110110
111+ // https://drafts.csswg.org/selectors/#display-state-pseudos
112+ "open" => Open,
113+ "closed" => Closed,
114+ "modal" => Modal,
115+ "picture-in-picture" => PictureInPicture,
116+
117+ // https://html.spec.whatwg.org/multipage/semantics-other.html#selector-popover-open
118+ "popover-open" => PopoverOpen,
119+
111120 // https://drafts.csswg.org/selectors-4/#the-defined-pseudo
112121 "defined" => Defined,
113122
@@ -399,6 +408,20 @@ pub enum PseudoClass<'i> {
399408 #[cfg_attr(feature = "serde", serde(with = "PrefixWrapper"))]
400409 Fullscreen(VendorPrefix),
401410
411+ // https://drafts.csswg.org/selectors/#display-state-pseudos
412+ /// The [:open](https://drafts.csswg.org/selectors/#selectordef-open) pseudo class.
413+ Open,
414+ /// The [:closed](https://drafts.csswg.org/selectors/#selectordef-closed) pseudo class.
415+ Closed,
416+ /// The [:modal](https://drafts.csswg.org/selectors/#modal-state) pseudo class.
417+ Modal,
418+ /// The [:picture-in-picture](https://drafts.csswg.org/selectors/#pip-state) pseudo class.
419+ PictureInPicture,
420+
421+ // https://html.spec.whatwg.org/multipage/semantics-other.html#selector-popover-open
422+ /// The [:popover-open](https://html.spec.whatwg.org/multipage/semantics-other.html#selector-popover-open) pseudo class.
423+ PopoverOpen,
424+
402425 /// The [:defined](https://drafts.csswg.org/selectors-4/#the-defined-pseudo) pseudo class.
403426 Defined,
404427
@@ -670,6 +693,15 @@ where
670693 }
671694 }
672695
696+ // https://drafts.csswg.org/selectors/#display-state-pseudos
697+ Open => dest.write_str(":open"),
698+ Closed => dest.write_str(":closed"),
699+ Modal => dest.write_str(":modal"),
700+ PictureInPicture => dest.write_str(":picture-in-picture"),
701+
702+ // https://html.spec.whatwg.org/multipage/semantics-other.html#selector-popover-open
703+ PopoverOpen => dest.write_str(":popover-open"),
704+
673705 // https://drafts.csswg.org/selectors-4/#the-defined-pseudo
674706 Defined => dest.write_str(":defined"),
675707
0 commit comments