1<===> options.yml
2---
3:todo:
4- sass/libsass#3154
5
6<===> README.md
7Because `:is()` is extremely flexible, there are more cases where it is
8technically a superselector or subselector than those represented here. However,
9universally supporting these would require the equivalent of fully resolving the
10`:is()` declaration in the same manner as `@extend` which would add way too
11much implementation complexity for such a marginal edge case.
12
13In particular, we don't require that superselectors be detected when the
14subselector contains `:is()` and the superselector does not (even though
15`c` is semantically a superselector of `:is(c)`).
16
17Most changes here should also be reflected in `matches.hrx`.
18
19<===>
20================================================================================
21<===> simple/equal/input.scss
22a {b: is-superselector(":is(c)", "c")}
23
24<===> simple/equal/output.css
25a {
26  b: true;
27}
28
29<===>
30================================================================================
31<===> simple/unequal/input.scss
32a {b: is-superselector(":is(c)", "d")}
33
34<===> simple/unequal/output.css
35a {
36  b: false;
37}
38
39<===>
40================================================================================
41<===> compound/superset/input.scss
42a {b: is-superselector(":is(c.e)", "c.d.e")}
43
44<===> compound/superset/output.css
45a {
46  b: true;
47}
48
49<===>
50================================================================================
51<===> compound/subset/input.scss
52a {b: is-superselector(":is(c.d.e)", "c e")}
53
54<===> compound/subset/output.css
55a {
56  b: false;
57}
58
59<===>
60================================================================================
61<===> complex/superset/options.yml
62---
63:todo:
64- sass/libsass#2972
65
66<===> complex/superset/input.scss
67a {b: is-superselector(":is(c e)", "c d e")}
68
69<===> complex/superset/output.css
70a {
71  b: true;
72}
73
74<===>
75================================================================================
76<===> complex/subset/input.scss
77a {b: is-superselector(":is(c d e)", "c e")}
78
79<===> complex/subset/output.css
80a {
81  b: false;
82}
83
84<===>
85================================================================================
86<===> list/superset/options.yml
87---
88:todo:
89- sass/libsass#2972
90
91<===> list/superset/input.scss
92a {b: is-superselector(":is(c d, e f, g h)", "c d, e f")}
93
94<===> list/superset/output.css
95a {
96  b: true;
97}
98
99<===>
100================================================================================
101<===> list/subset/input.scss
102a {b: is-superselector(":is(c d, e f)", "c d, e f, g h")}
103
104<===> list/subset/output.css
105a {
106  b: false;
107}
108
109<===>
110================================================================================
111<===> both/README.md
112We do *allow* `:is()` in the subselector, we just require there to be a
113corresponding `:is()` in the superselector. Then we do a superselector
114check on those two selectors in isolation.
115
116<===>
117================================================================================
118<===> both/superset/input.scss
119a {b: is-superselector(":is(c d, e f, g h)", ":is(c d.i, e j f)")}
120
121<===> both/superset/output.css
122a {
123  b: true;
124}
125
126<===>
127================================================================================
128<===> both/subset/input.scss
129a {b: is-superselector(":is(c d.i, e j f)", ":is(c d, e f, g h)")}
130
131<===> both/subset/output.css
132a {
133  b: false;
134}
135
136<===>
137================================================================================
138<===> prefix/superset/options.yml
139---
140:todo:
141- sass/libsass#2972
142
143<===> prefix/superset/input.scss
144a {b: is-superselector(":-pfx-matches(c d, e f, g h)", "c d.i, e j f")}
145
146<===> prefix/superset/output.css
147a {
148  b: true;
149}
150
151<===>
152================================================================================
153<===> prefix/subset/input.scss
154a {b: is-superselector(":-pfx-matches(c d.i, e j f)", "c d, e f, g h")}
155
156<===> prefix/subset/output.css
157a {
158  b: false;
159}
160
161<===>
162================================================================================
163<===> not_superselector_of/README.md
164`:is()` isn't considered a superselector of other selectors with the same
165semantics, because in practice they match different browsers.
166
167<===>
168================================================================================
169<===> not_superselector_of/any/input.scss
170a {b: is-superselector(":is(c, d)", ":any(c, d)")}
171
172<===> not_superselector_of/any/output.css
173a {
174  b: false;
175}
176
177<===>
178================================================================================
179<===> not_superselector_of/prefixed/input.scss
180a {b: is-superselector(":is(c, d)", ":-pfx-matches(c, d)")}
181
182<===> not_superselector_of/prefixed/output.css
183a {
184  b: false;
185}
186