@@ -157,29 +157,33 @@ keywordSets.levelOneAndTwoPseudoElements = new Set([
157157 'first-letter' ,
158158] ) ;
159159
160- // These are the ones that require double-colon notation
161160keywordSets . levelThreeAndUpPseudoElements = new Set ( [
162161 'before' ,
163162 'after' ,
164163 'first-line' ,
165164 'first-letter' ,
166- 'selection' ,
167- 'spelling-error' ,
168- 'grammar-error' ,
165+ // These are the ones that require double-colon notation
169166 'backdrop' ,
167+ 'content' ,
168+ 'cue' ,
169+ 'file-selector-button' ,
170+ 'grammar-error' ,
170171 'marker' ,
171172 'placeholder' ,
173+ 'selection' ,
172174 'shadow' ,
175+ 'spelling-error' ,
173176 'slotted' ,
174- 'content' ,
175- 'file-selector-button' ,
177+ 'target-text' ,
176178] ) ;
177179
178180keywordSets . shadowTreePseudoElements = new Set ( [ 'part' ] ) ;
179181
180182keywordSets . vendorSpecificPseudoElements = new Set ( [
181183 '-moz-focus-inner' ,
182184 '-moz-focus-outer' ,
185+ '-moz-list-bullet' ,
186+ '-moz-meter-bar' ,
183187 '-moz-placeholder' ,
184188 '-moz-progress-bar' ,
185189 '-moz-range-progress' ,
@@ -199,11 +203,60 @@ keywordSets.vendorSpecificPseudoElements = new Set([
199203 '-ms-tooltip' ,
200204 '-ms-track' ,
201205 '-ms-value' ,
206+ '-webkit-color-swatch' ,
207+ '-webkit-color-swatch-wrapper' ,
208+ '-webkit-calendar-picker-indicator' ,
209+ '-webkit-clear-button' ,
210+ '-webkit-date-and-time-value' ,
211+ '-webkit-datetime-edit' ,
212+ '-webkit-datetime-edit-ampm-field' ,
213+ '-webkit-datetime-edit-day-field' ,
214+ '-webkit-datetime-edit-fields-wrapper' ,
215+ '-webkit-datetime-edit-hour-field' ,
216+ '-webkit-datetime-edit-millisecond-field' ,
217+ '-webkit-datetime-edit-minute-field' ,
218+ '-webkit-datetime-edit-month-field' ,
219+ '-webkit-datetime-edit-second-field' ,
220+ '-webkit-datetime-edit-text' ,
221+ '-webkit-datetime-edit-week-field' ,
222+ '-webkit-datetime-edit-year-field' ,
223+ '-webkit-details-marker' ,
224+ '-webkit-distributed' ,
225+ '-webkit-file-upload-button' ,
202226 '-webkit-input-placeholder' ,
227+ '-webkit-keygen-select' ,
228+ '-webkit-meter-bar' ,
229+ '-webkit-meter-even-less-good-value' ,
230+ '-webkit-meter-inner-element' ,
231+ '-webkit-meter-optimum-value' ,
232+ '-webkit-meter-suboptimum-value' ,
203233 '-webkit-progress-bar' ,
234+ '-webkit-progress-inner-element' ,
204235 '-webkit-progress-value' ,
236+ '-webkit-search-cancel-button' ,
237+ '-webkit-search-decoration' ,
238+ '-webkit-search-results-button' ,
239+ '-webkit-search-results-decoration' ,
205240 '-webkit-slider-runnable-track' ,
206241 '-webkit-slider-thumb' ,
242+ '-webkit-textfield-decoration-container' ,
243+ '-webkit-validation-bubble' ,
244+ '-webkit-validation-bubble-arrow' ,
245+ '-webkit-validation-bubble-arrow-clipper' ,
246+ '-webkit-validation-bubble-heading' ,
247+ '-webkit-validation-bubble-message' ,
248+ '-webkit-validation-bubble-text-block' ,
249+ ...keywordSets . webkitScrollbarPseudoElements ,
250+ ] ) ;
251+
252+ keywordSets . webkitScrollbarPseudoElements = new Set ( [
253+ '-webkit-resizer' ,
254+ '-webkit-scrollbar' ,
255+ '-webkit-scrollbar-button' ,
256+ '-webkit-scrollbar-corner' ,
257+ '-webkit-scrollbar-thumb' ,
258+ '-webkit-scrollbar-track' ,
259+ '-webkit-scrollbar-track-piece' ,
207260] ) ;
208261
209262keywordSets . pseudoElements = uniteSets (
@@ -238,22 +291,22 @@ keywordSets.otherPseudoClasses = new Set([
238291 'default' ,
239292 'defined' ,
240293 'disabled' ,
241- 'drop' ,
242294 'empty' ,
243295 'enabled' ,
244296 'first-child' ,
245297 'first-of-type' ,
246298 'focus' ,
247- 'focus-ring' ,
248299 'focus-within' ,
249300 'focus-visible' ,
250301 'fullscreen' ,
302+ 'fullscreen-ancestor' ,
251303 'future' ,
252304 'host' ,
253305 'host-context' ,
254306 'hover' ,
255307 'indeterminate' ,
256308 'in-range' ,
309+ 'invalid' ,
257310 'last-child' ,
258311 'last-of-type' ,
259312 'link' ,
@@ -264,6 +317,7 @@ keywordSets.otherPseudoClasses = new Set([
264317 'past' ,
265318 'placeholder-shown' ,
266319 'playing' ,
320+ 'picture-in-picture' ,
267321 'paused' ,
268322 'read-only' ,
269323 'read-write' ,
@@ -272,35 +326,48 @@ keywordSets.otherPseudoClasses = new Set([
272326 'scope' ,
273327 'state' ,
274328 'target' ,
329+ 'unresolved' ,
275330 'user-invalid' ,
276331 'user-valid' ,
277- 'invalid' ,
278332 'valid' ,
279333 'visited' ,
334+ 'window-inactive' , // for ::selection (chrome)
280335] ) ;
281336
282337keywordSets . vendorSpecificPseudoClasses = new Set ( [
338+ '-khtml-drag' ,
339+ '-moz-any' ,
340+ '-moz-any-link' ,
341+ '-moz-broken' ,
342+ '-moz-drag-over' ,
343+ '-moz-first-node' ,
344+ '-moz-focusring' ,
345+ '-moz-full-screen' ,
346+ '-moz-full-screen-ancestor' ,
347+ '-moz-last-node' ,
348+ '-moz-loading' ,
349+ '-moz-meter-optimum' ,
350+ '-moz-meter-sub-optimum' ,
351+ '-moz-meter-sub-sub-optimum' ,
283352 '-moz-placeholder' ,
353+ '-moz-submit-invalid' ,
354+ '-moz-suppressed' ,
284355 '-moz-ui-invalid' ,
285356 '-moz-ui-valid' ,
357+ '-moz-user-disabled' ,
358+ '-moz-window-inactive' ,
359+ '-ms-fullscreen' ,
286360 '-ms-input-placeholder' ,
361+ '-webkit-drag' ,
362+ '-webkit-any' ,
363+ '-webkit-any-link' ,
364+ '-webkit-autofill' ,
365+ '-webkit-full-screen' ,
366+ '-webkit-full-screen-ancestor' ,
287367] ) ;
288368
289- // TODO migrate to vendorSpecificPseudoElements
290- // see #2264
291- keywordSets . webkitProprietaryPseudoElements = new Set ( [
292- 'scrollbar' ,
293- 'scrollbar-button' ,
294- 'scrollbar-track' ,
295- 'scrollbar-track-piece' ,
296- 'scrollbar-thumb' ,
297- 'scrollbar-corner' ,
298- 'resize' ,
299- ] ) ;
300-
301- // TODO migrate to vendorSpecificPseudoClasses
302- // see #2264
303- keywordSets . webkitProprietaryPseudoClasses = new Set ( [
369+ // https://webkit.org/blog/363/styling-scrollbars/
370+ keywordSets . webkitScrollbarPseudoClasses = new Set ( [
304371 'horizontal' ,
305372 'vertical' ,
306373 'decrement' ,
0 commit comments