Web Inspector: Styles: variable swatch not shown for var() with a fallback
[WebKit-https.git] / Source / WebInspectorUI / UserInterface / Models / CSSKeywordCompletions.js
1 /*
2  * Copyright (C) 2011 Google Inc. All rights reserved.
3  * Copyright (C) 2013 Apple Inc. All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are
7  * met:
8  *
9  *     * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *     * Redistributions in binary form must reproduce the above
12  * copyright notice, this list of conditions and the following disclaimer
13  * in the documentation and/or other materials provided with the
14  * distribution.
15  *     * Neither the name of Google Inc. nor the names of its
16  * contributors may be used to endorse or promote products derived from
17  * this software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30  */
31
32 WI.CSSKeywordCompletions = {};
33
34 WI.CSSKeywordCompletions.forProperty = function(propertyName)
35 {
36     let acceptedKeywords = ["initial", "unset", "revert", "var()", "env()"];
37
38     function addKeywordsForName(name) {
39         let isNotPrefixed = name.charAt(0) !== "-";
40
41         if (name in WI.CSSKeywordCompletions._propertyKeywordMap)
42             acceptedKeywords = acceptedKeywords.concat(WI.CSSKeywordCompletions._propertyKeywordMap[name]);
43         else if (isNotPrefixed && ("-webkit-" + name) in WI.CSSKeywordCompletions._propertyKeywordMap)
44             acceptedKeywords = acceptedKeywords.concat(WI.CSSKeywordCompletions._propertyKeywordMap["-webkit-" + name]);
45
46         if (WI.CSSKeywordCompletions.isColorAwareProperty(name))
47             acceptedKeywords = acceptedKeywords.concat(WI.CSSKeywordCompletions._colors);
48
49         // Only suggest "inherit" on inheritable properties even though it is valid on all properties.
50         if (WI.CSSKeywordCompletions.InheritedProperties.has(name))
51             acceptedKeywords.push("inherit");
52         else if (isNotPrefixed && WI.CSSKeywordCompletions.InheritedProperties.has("-webkit-" + name))
53             acceptedKeywords.push("inherit");
54     }
55
56     addKeywordsForName(propertyName);
57
58     let unaliasedName = WI.CSSKeywordCompletions.PropertyNameForAlias.get(propertyName);
59     if (unaliasedName)
60         addKeywordsForName(unaliasedName);
61
62     let longhandNames = WI.CSSKeywordCompletions.LonghandNamesForShorthandProperty.get(propertyName);
63     if (longhandNames) {
64         for (let longhandName of longhandNames)
65             addKeywordsForName(longhandName);
66     }
67
68     if (acceptedKeywords.includes(WI.CSSKeywordCompletions.AllPropertyNamesPlaceholder) && WI.CSSCompletions.cssNameCompletions) {
69         acceptedKeywords.remove(WI.CSSKeywordCompletions.AllPropertyNamesPlaceholder);
70         acceptedKeywords = acceptedKeywords.concat(WI.CSSCompletions.cssNameCompletions.values);
71     }
72
73     return new WI.CSSCompletions(Array.from(new Set(acceptedKeywords)), true);
74 };
75
76 WI.CSSKeywordCompletions.isColorAwareProperty = function(name)
77 {
78     if (WI.CSSKeywordCompletions._colorAwareProperties.has(name))
79         return true;
80
81     let isNotPrefixed = name.charAt(0) !== "-";
82     if (isNotPrefixed && WI.CSSKeywordCompletions._colorAwareProperties.has("-webkit-" + name))
83         return true;
84
85     if (name.endsWith("color"))
86         return true;
87
88     return false;
89 };
90
91 WI.CSSKeywordCompletions.isTimingFunctionAwareProperty = function(name)
92 {
93     if (WI.CSSKeywordCompletions._timingFunctionAwareProperties.has(name))
94         return true;
95
96     let isNotPrefixed = name.charAt(0) !== "-";
97     if (isNotPrefixed && WI.CSSKeywordCompletions._timingFunctionAwareProperties.has("-webkit-" + name))
98         return true;
99
100     return false;
101 };
102
103 WI.CSSKeywordCompletions.forFunction = function(functionName)
104 {
105     let suggestions = ["var()"];
106
107     if (functionName === "var")
108         suggestions = [];
109     else if (functionName === "calc" || functionName === "min" || functionName === "max")
110         suggestions = suggestions.concat(["calc()", "min()", "max()"]);
111     else if (functionName === "env")
112         suggestions = suggestions.concat(["safe-area-inset-top", "safe-area-inset-right", "safe-area-inset-bottom", "safe-area-inset-left"]);
113     else if (functionName === "image-set")
114         suggestions.push("url()");
115     else if (functionName === "repeat")
116         suggestions = suggestions.concat(["auto", "auto-fill", "auto-fit", "min-content", "max-content"]);
117     else if (functionName.endsWith("gradient")) {
118         suggestions = suggestions.concat(["to", "left", "right", "top", "bottom"]);
119         suggestions = suggestions.concat(WI.CSSKeywordCompletions._colors);
120     }
121
122     return new WI.CSSCompletions(suggestions, true);
123 };
124
125 WI.CSSKeywordCompletions.addCustomCompletions = function(properties)
126 {
127     for (var property of properties) {
128         if (property.aliases) {
129             for (let alias of property.aliases)
130                 WI.CSSKeywordCompletions.PropertyNameForAlias.set(alias, property.name);
131         }
132
133         if (property.values)
134             WI.CSSKeywordCompletions.addPropertyCompletionValues(property.name, property.values);
135
136         if (property.inherited)
137             WI.CSSKeywordCompletions.InheritedProperties.add(property.name);
138
139         if (property.longhands)
140             WI.CSSKeywordCompletions.LonghandNamesForShorthandProperty.set(property.name, property.longhands);
141     }
142 };
143
144 WI.CSSKeywordCompletions.addPropertyCompletionValues = function(propertyName, newValues)
145 {
146     var existingValues = WI.CSSKeywordCompletions._propertyKeywordMap[propertyName];
147     if (!existingValues) {
148         WI.CSSKeywordCompletions._propertyKeywordMap[propertyName] = newValues;
149         return;
150     }
151
152     var union = new Set;
153     for (var value of existingValues)
154         union.add(value);
155     for (var value of newValues)
156         union.add(value);
157
158     WI.CSSKeywordCompletions._propertyKeywordMap[propertyName] = [...union.values()];
159 };
160
161 WI.CSSKeywordCompletions.AllPropertyNamesPlaceholder = "__all-properties__";
162
163 // Populated by CSS.getSupportedCSSProperties.
164 WI.CSSKeywordCompletions.PropertyNameForAlias = new Map;
165 WI.CSSKeywordCompletions.LonghandNamesForShorthandProperty = new Map;
166
167 WI.CSSKeywordCompletions.InheritedProperties = new Set([
168     // Compatibility (iOS 12): `inherited` didn't exist on `CSSPropertyInfo`
169     "-apple-color-filter",
170     "-webkit-animation-trigger",
171     "-webkit-aspect-ratio",
172     "-webkit-border-horizontal-spacing",
173     "-webkit-border-vertical-spacing",
174     "-webkit-box-direction",
175     "-webkit-cursor-visibility",
176     "-webkit-font-kerning",
177     "-webkit-font-smoothing",
178     "-webkit-hyphenate-character",
179     "-webkit-hyphenate-limit-after",
180     "-webkit-hyphenate-limit-before",
181     "-webkit-hyphenate-limit-lines",
182     "-webkit-hyphens",
183     "-webkit-line-align",
184     "-webkit-line-break",
185     "-webkit-line-box-contain",
186     "-webkit-line-grid",
187     "-webkit-line-snap",
188     "-webkit-locale",
189     "-webkit-nbsp-mode",
190     "-webkit-overflow-scrolling",
191     "-webkit-print-color-adjust",
192     "-webkit-rtl-ordering",
193     "-webkit-ruby-position",
194     "-webkit-text-align-last",
195     "-webkit-text-combine",
196     "-webkit-text-decoration-skip",
197     "-webkit-text-decorations-in-effect",
198     "-webkit-text-emphasis",
199     "-webkit-text-emphasis-color",
200     "-webkit-text-emphasis-position",
201     "-webkit-text-emphasis-style",
202     "-webkit-text-fill-color",
203     "-webkit-text-justify",
204     "-webkit-text-orientation",
205     "-webkit-text-security",
206     "-webkit-text-size-adjust",
207     "-webkit-text-stroke",
208     "-webkit-text-stroke-color",
209     "-webkit-text-stroke-width",
210     "-webkit-text-underline-position",
211     "-webkit-text-zoom",
212     "-webkit-touch-callout",
213     "-webkit-user-modify",
214     "-webkit-user-select",
215     "border-collapse",
216     "border-spacing",
217     "caption-side",
218     "caret-color",
219     "clip-rule",
220     "color",
221     "color-interpolation",
222     "color-interpolation-filters",
223     "color-rendering",
224     "cursor",
225     "direction",
226     "empty-cells",
227     "fill",
228     "fill-opacity",
229     "fill-rule",
230     "font",
231     "font-family",
232     "font-feature-settings",
233     "font-optical-sizing",
234     "font-size",
235     "font-stretch",
236     "font-style",
237     "font-synthesis",
238     "font-variant",
239     "font-variant-alternates",
240     "font-variant-caps",
241     "font-variant-east-asian",
242     "font-variant-ligatures",
243     "font-variant-numeric",
244     "font-variant-position",
245     "font-variation-settings",
246     "font-weight",
247     "glyph-orientation-horizontal",
248     "glyph-orientation-vertical",
249     "hanging-punctuation",
250     "image-orientation",
251     "image-rendering",
252     "image-resolution",
253     "kerning",
254     "letter-spacing",
255     "line-break",
256     "line-height",
257     "list-style",
258     "list-style-image",
259     "list-style-position",
260     "list-style-type",
261     "marker",
262     "marker-end",
263     "marker-mid",
264     "marker-start",
265     "orphans",
266     "pointer-events",
267     "quotes",
268     "resize",
269     "shape-rendering",
270     "speak-as",
271     "stroke",
272     "stroke-color",
273     "stroke-dasharray",
274     "stroke-dashoffset",
275     "stroke-linecap",
276     "stroke-linejoin",
277     "stroke-miterlimit",
278     "stroke-opacity",
279     "stroke-width",
280     "tab-size",
281     "text-align",
282     "text-anchor",
283     "text-indent",
284     "text-rendering",
285     "text-shadow",
286     "text-transform",
287     "visibility",
288     "white-space",
289     "widows",
290     "word-break",
291     "word-spacing",
292     "word-wrap",
293     "writing-mode",
294 ]);
295
296 WI.CSSKeywordCompletions._colors = [
297     "aqua", "black", "blue", "fuchsia", "gray", "green", "lime", "maroon", "navy", "olive", "orange", "purple", "red",
298     "silver", "teal", "white", "yellow", "transparent", "currentcolor", "grey", "aliceblue", "antiquewhite",
299     "aquamarine", "azure", "beige", "bisque", "blanchedalmond", "blueviolet", "brown", "burlywood", "cadetblue",
300     "chartreuse", "chocolate", "coral", "cornflowerblue", "cornsilk", "crimson", "cyan", "darkblue", "darkcyan",
301     "darkgoldenrod", "darkgray", "darkgreen", "darkgrey", "darkkhaki", "darkmagenta", "darkolivegreen", "darkorange",
302     "darkorchid", "darkred", "darksalmon", "darkseagreen", "darkslateblue", "darkslategray", "darkslategrey",
303     "darkturquoise", "darkviolet", "deeppink", "deepskyblue", "dimgray", "dimgrey", "dodgerblue", "firebrick",
304     "floralwhite", "forestgreen", "gainsboro", "ghostwhite", "gold", "goldenrod", "greenyellow", "honeydew", "hotpink",
305     "indianred", "indigo", "ivory", "khaki", "lavender", "lavenderblush", "lawngreen", "lemonchiffon", "lightblue",
306     "lightcoral", "lightcyan", "lightgoldenrodyellow", "lightgray", "lightgreen", "lightgrey", "lightpink",
307     "lightsalmon", "lightseagreen", "lightskyblue", "lightslategray", "lightslategrey", "lightsteelblue", "lightyellow",
308     "limegreen", "linen", "magenta", "mediumaquamarine", "mediumblue", "mediumorchid", "mediumpurple", "mediumseagreen",
309     "mediumslateblue", "mediumspringgreen", "mediumturquoise", "mediumvioletred", "midnightblue", "mintcream",
310     "mistyrose", "moccasin", "navajowhite", "oldlace", "olivedrab", "orangered", "orchid", "palegoldenrod", "palegreen",
311     "paleturquoise", "palevioletred", "papayawhip", "peachpuff", "peru", "pink", "plum", "powderblue", "rebeccapurple", "rosybrown",
312     "royalblue", "saddlebrown", "salmon", "sandybrown", "seagreen", "seashell", "sienna", "skyblue", "slateblue",
313     "slategray", "slategrey", "snow", "springgreen", "steelblue", "tan", "thistle", "tomato", "turquoise", "violet",
314     "wheat", "whitesmoke", "yellowgreen", "rgb()", "rgba()", "hsl()", "hsla()"
315 ];
316
317 WI.CSSKeywordCompletions._colorAwareProperties = new Set([
318     "background",
319     "background-color",
320     "background-image",
321     "border",
322     "border-color",
323     "border-bottom",
324     "border-bottom-color",
325     "border-left",
326     "border-left-color",
327     "border-right",
328     "border-right-color",
329     "border-top",
330     "border-top-color",
331     "box-shadow", "-webkit-box-shadow",
332     "color",
333     "column-rule", "-webkit-column-rule",
334     "column-rule-color", "-webkit-column-rule-color",
335     "fill",
336     "outline",
337     "outline-color",
338     "stroke",
339     "text-decoration-color", "-webkit-text-decoration-color",
340     "text-emphasis", "-webkit-text-emphasis",
341     "text-emphasis-color", "-webkit-text-emphasis-color",
342     "text-line-through",
343     "text-line-through-color",
344     "text-overline",
345     "text-overline-color",
346     "text-shadow",
347     "text-underline",
348     "text-underline-color",
349     "-webkit-text-fill-color",
350     "-webkit-text-stroke",
351     "-webkit-text-stroke-color",
352
353     // iOS Properties
354     "-webkit-tap-highlight-color",
355 ]);
356
357 WI.CSSKeywordCompletions._timingFunctionAwareProperties = new Set([
358     "animation", "-webkit-animation",
359     "animation-timing-function", "-webkit-animation-timing-function",
360     "transition", "-webkit-transition",
361     "transition-timing-function", "-webkit-transition-timing-function",
362 ]);
363
364 WI.CSSKeywordCompletions._propertyKeywordMap = {
365     "content": [
366         "list-item", "close-quote", "no-close-quote", "no-open-quote", "open-quote", "attr()", "counter()", "counters()", "url()", "linear-gradient()", "radial-gradient()", "repeating-linear-gradient()", "repeating-radial-gradient()", "-webkit-canvas()", "cross-fade()", "image-set()"
367     ],
368     "list-style-image": [
369         "none", "url()", "linear-gradient()", "radial-gradient()", "repeating-linear-gradient()", "repeating-radial-gradient()", "-webkit-canvas()", "cross-fade()", "image-set()"
370     ],
371     "baseline-shift": [
372         "baseline", "sub", "super"
373     ],
374     "border-bottom-width": [
375         "medium", "thick", "thin", "calc()"
376     ],
377     "font-stretch": [
378         "normal", "wider", "narrower", "ultra-condensed", "extra-condensed", "condensed", "semi-condensed",
379         "semi-expanded", "expanded", "extra-expanded", "ultra-expanded"
380     ],
381     "border-left-width": [
382         "medium", "thick", "thin", "calc()"
383     ],
384     "border-top-width": [
385         "medium", "thick", "thin", "calc()"
386     ],
387     "outline-color": [
388         "invert", "-webkit-focus-ring-color"
389     ],
390     "cursor": [
391         "auto", "default", "none", "context-menu", "help", "pointer", "progress", "wait", "cell", "crosshair", "text", "vertical-text",
392         "alias", "copy", "move", "no-drop", "not-allowed", "grab", "grabbing",
393         "e-resize", "n-resize", "ne-resize", "nw-resize", "s-resize", "se-resize", "sw-resize", "w-resize", "ew-resize", "ns-resize", "nesw-resize", "nwse-resize",
394         "col-resize", "row-resize", "all-scroll", "zoom-in", "zoom-out",
395         "-webkit-grab", "-webkit-grabbing", "-webkit-zoom-in", "-webkit-zoom-out",
396         "url()", "image-set()"
397     ],
398     "border-width": [
399         "medium", "thick", "thin", "calc()"
400     ],
401     "size": [
402         "a3", "a4", "a5", "b4", "b5", "landscape", "ledger", "legal", "letter", "portrait"
403     ],
404     "background": [
405         "none", "url()", "linear-gradient()", "radial-gradient()", "repeating-linear-gradient()", "repeating-radial-gradient()", "-webkit-canvas()", "cross-fade()", "image-set()",
406         "repeat", "repeat-x", "repeat-y", "no-repeat", "space", "round",
407         "scroll", "fixed", "local",
408         "auto", "contain", "cover",
409         "top", "right", "left", "bottom", "center",
410         "border-box", "padding-box", "content-box"
411     ],
412     "background-image": [
413         "none", "url()", "linear-gradient()", "radial-gradient()", "repeating-linear-gradient()", "repeating-radial-gradient()", "-webkit-canvas()", "cross-fade()", "image-set()"
414     ],
415     "background-size": [
416         "auto", "contain", "cover"
417     ],
418     "background-attachment": [
419         "scroll", "fixed", "local"
420     ],
421     "background-repeat": [
422         "repeat", "repeat-x", "repeat-y", "no-repeat", "space", "round"
423     ],
424     "background-blend-mode": [
425         "normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"
426     ],
427     "background-position": [
428         "top", "right", "left", "bottom", "center"
429     ],
430     "background-origin": [
431         "border-box", "padding-box", "content-box"
432     ],
433     "background-clip": [
434         "border-box", "padding-box", "content-box"
435     ],
436     "enable-background": [
437         "accumulate", "new"
438     ],
439     "hanging-punctuation": [
440         "none", "first", "last", "allow-end", "force-end"
441     ],
442     "overflow": [
443         "hidden", "auto", "visible", "scroll", "marquee", "-webkit-paged-x", "-webkit-paged-y"
444     ],
445     "-webkit-box-reflect": [
446         "none", "left", "right", "above", "below"
447     ],
448     "margin-bottom": [
449         "auto"
450     ],
451     "font-weight": [
452         "normal", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "700", "800", "900"
453     ],
454     "font-synthesis": [
455         "none", "weight", "style"
456     ],
457     "font-style": [
458         "italic", "oblique", "normal"
459     ],
460     "outline": [
461         "none", "hidden", "inset", "groove", "ridge", "outset", "dotted", "dashed", "solid", "double"
462     ],
463     "font": [
464         "caption", "icon", "menu", "message-box", "small-caption", "-webkit-mini-control", "-webkit-small-control",
465         "-webkit-control", "status-bar", "italic", "oblique", "small-caps", "normal", "bold", "bolder", "lighter",
466         "100", "200", "300", "400", "500", "600", "700", "800", "900", "xx-small", "x-small", "small", "medium",
467         "large", "x-large", "xx-large", "-webkit-xxx-large", "smaller", "larger", "serif", "sans-serif", "cursive",
468         "fantasy", "monospace", "-webkit-body", "-webkit-pictograph", "-apple-system",
469         "-apple-system-headline", "-apple-system-body", "-apple-system-subheadline", "-apple-system-footnote",
470         "-apple-system-caption1", "-apple-system-caption2", "-apple-system-short-headline", "-apple-system-short-body",
471         "-apple-system-short-subheadline", "-apple-system-short-footnote", "-apple-system-short-caption1",
472         "-apple-system-tall-body", "-apple-system-title0", "-apple-system-title1", "-apple-system-title2", "-apple-system-title3", "-apple-system-title4", "system-ui"
473     ],
474     "outline-width": [
475         "medium", "thick", "thin", "calc()"
476     ],
477     "box-shadow": [
478         "none"
479     ],
480     "text-shadow": [
481         "none"
482     ],
483     "-webkit-box-shadow": [
484         "none"
485     ],
486     "border-right-width": [
487         "medium", "thick", "thin"
488     ],
489     "line-height": [
490         "normal"
491     ],
492     "counter-increment": [
493         "none"
494     ],
495     "counter-reset": [
496         "none"
497     ],
498     "page-break-after": [
499         "left", "right", "auto", "always", "avoid"
500     ],
501     "page-break-before": [
502         "left", "right", "auto", "always", "avoid"
503     ],
504     "page-break-inside": [
505         "auto", "avoid"
506     ],
507     "-webkit-column-break-after": [
508         "left", "right", "auto", "always", "avoid"
509     ],
510     "-webkit-column-break-before": [
511         "left", "right", "auto", "always", "avoid"
512     ],
513     "-webkit-column-break-inside": [
514         "auto", "avoid"
515     ],
516     "border-image": [
517         "repeat", "stretch", "url()", "linear-gradient()", "radial-gradient()", "repeating-linear-gradient()", "repeating-radial-gradient()", "-webkit-canvas()", "cross-fade()", "image-set()"
518     ],
519     "border-image-repeat": [
520         "repeat", "stretch", "space", "round"
521     ],
522     "-webkit-mask-box-image-repeat": [
523         "repeat", "stretch", "space", "round"
524     ],
525     "font-family": [
526         "serif", "sans-serif", "cursive", "fantasy", "monospace", "-webkit-body", "-webkit-pictograph",
527         "-apple-system", "-apple-system-headline", "-apple-system-body",
528         "-apple-system-subheadline", "-apple-system-footnote", "-apple-system-caption1", "-apple-system-caption2",
529         "-apple-system-short-headline", "-apple-system-short-body", "-apple-system-short-subheadline",
530         "-apple-system-short-footnote", "-apple-system-short-caption1", "-apple-system-tall-body",
531         "-apple-system-title0", "-apple-system-title1", "-apple-system-title2", "-apple-system-title3", "-apple-system-title4", "system-ui"
532     ],
533     "margin-left": [
534         "auto"
535     ],
536     "margin-top": [
537         "auto"
538     ],
539     "zoom": [
540         "normal", "document", "reset"
541     ],
542     "z-index": [
543         "auto"
544     ],
545     "width": [
546         "auto", "intrinsic", "min-intrinsic", "min-content", "-webkit-min-content", "max-content", "-webkit-max-content", "-webkit-fill-available", "fit-content", "-webkit-fit-content", "calc()"
547     ],
548     "height": [
549         "auto", "intrinsic", "min-intrinsic", "min-content", "-webkit-min-content", "max-content", "-webkit-max-content", "-webkit-fill-available", "fit-content", "-webkit-fit-content", "calc()"
550     ],
551     "max-width": [
552         "auto", "intrinsic", "min-intrinsic", "min-content", "-webkit-min-content", "max-content", "-webkit-max-content", "-webkit-fill-available", "fit-content", "-webkit-fit-content", "none", "calc()"
553     ],
554     "min-width": [
555         "auto", "intrinsic", "min-intrinsic", "min-content", "-webkit-min-content", "max-content", "-webkit-max-content", "-webkit-fill-available", "fit-content", "-webkit-fit-content", "calc()"
556     ],
557     "max-height": [
558         "auto", "intrinsic", "min-intrinsic", "min-content", "-webkit-min-content", "max-content", "-webkit-max-content", "-webkit-fill-available", "fit-content", "-webkit-fit-content", "none", "calc()"
559     ],
560     "min-height": [
561         "auto", "intrinsic", "min-intrinsic", "min-content", "-webkit-min-content", "max-content", "-webkit-max-content", "-webkit-fill-available", "fit-content", "-webkit-fit-content", "calc()"
562     ],
563     "letter-spacing": [
564         "normal", "calc()"
565     ],
566     "word-spacing": [
567         "normal", "calc()"
568     ],
569     "border": [
570         "none", "hidden", "inset", "groove", "ridge", "outset", "dotted", "dashed", "solid", "double"
571     ],
572     "font-size": [
573         "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "-webkit-xxx-large", "smaller", "larger"
574     ],
575     "font-variant": [
576         "small-caps", "normal"
577     ],
578     "font-variant-numeric": [
579         "normal", "ordinal", "slashed-zero", "lining-nums", "oldstyle-nums", "proportional-nums", "tabular-nums",
580         "diagonal-fractions", "stacked-fractions"
581     ],
582     "vertical-align": [
583         "baseline", "middle", "sub", "super", "text-top", "text-bottom", "top", "bottom", "-webkit-baseline-middle"
584     ],
585     "text-indent": [
586         "-webkit-each-line", "-webkit-hanging"
587     ],
588     "clip": [
589         "auto", "rect()"
590     ],
591     "clip-path": [
592         "none", "url()", "circle()", "ellipse()", "inset()", "polygon()", "margin-box", "border-box", "padding-box", "content-box"
593     ],
594     "shape-outside": [
595         "none", "url()", "circle()", "ellipse()", "inset()", "polygon()", "margin-box", "border-box", "padding-box", "content-box"
596     ],
597     "orphans": [
598         "auto"
599     ],
600     "widows": [
601         "auto"
602     ],
603     "margin": [
604         "auto"
605     ],
606     "page": [
607         "auto"
608     ],
609     "perspective": [
610         "none"
611     ],
612     "perspective-origin": [
613         "none", "left", "right", "bottom", "top", "center"
614     ],
615     "-webkit-marquee-increment": [
616         "small", "large", "medium"
617     ],
618     "-webkit-marquee-repetition": [
619         "infinite"
620     ],
621     "-webkit-marquee-speed": [
622         "normal", "slow", "fast"
623     ],
624     "margin-right": [
625         "auto"
626     ],
627     "-webkit-text-emphasis": [
628         "circle", "filled", "open", "dot", "double-circle", "triangle", "sesame"
629     ],
630     "-webkit-text-emphasis-style": [
631         "circle", "filled", "open", "dot", "double-circle", "triangle", "sesame"
632     ],
633     "-webkit-text-emphasis-position": [
634         "over", "under", "left", "right"
635     ],
636     "transform": [
637         "none",
638         "scale()", "scaleX()", "scaleY()", "scale3d()", "rotate()", "rotateX()", "rotateY()", "rotateZ()", "rotate3d()", "skew()", "skewX()", "skewY()",
639         "translate()", "translateX()", "translateY()", "translateZ()", "translate3d()", "matrix()", "matrix3d()", "perspective()"
640     ],
641     "text-decoration": [
642         "none", "underline", "overline", "line-through", "blink"
643     ],
644     "-webkit-text-decorations-in-effect": [
645         "none", "underline", "overline", "line-through", "blink"
646     ],
647     "-webkit-text-decoration-line": [
648         "none", "underline", "overline", "line-through", "blink"
649     ],
650     "-webkit-text-decoration-skip": [
651         "auto", "none", "objects", "ink"
652     ],
653     "-webkit-text-underline-position": [
654         "auto", "alphabetic", "under"
655     ],
656     "transition": [
657         "none", "ease", "linear", "ease-in", "ease-out", "ease-in-out", "step-start", "step-end", "steps()", "cubic-bezier()", "spring()", "all", WI.CSSKeywordCompletions.AllPropertyNamesPlaceholder
658     ],
659     "transition-timing-function": [
660         "ease", "linear", "ease-in", "ease-out", "ease-in-out", "step-start", "step-end", "steps()", "cubic-bezier()", "spring()"
661     ],
662     "transition-property": [
663         "all", "none", WI.CSSKeywordCompletions.AllPropertyNamesPlaceholder
664     ],
665     "animation-direction": [
666         "normal", "alternate", "reverse", "alternate-reverse"
667     ],
668     "animation-fill-mode": [
669         "none", "forwards", "backwards", "both"
670     ],
671     "animation-iteration-count": [
672         "infinite"
673     ],
674     "animation-play-state": [
675         "paused", "running"
676     ],
677     "animation-timing-function": [
678         "ease", "linear", "ease-in", "ease-out", "ease-in-out", "step-start", "step-end", "steps()", "cubic-bezier()", "spring()"
679     ],
680     "align-content": [
681         "auto",
682         "baseline", "last-baseline",
683         "space-between", "space-around", "space-evenly", "stretch",
684         "center", "start", "end", "flex-start", "flex-end", "left", "right",
685         "true", "safe"
686     ],
687     "justify-content": [
688         "auto",
689         "baseline", "last-baseline", "space-between", "space-around", "space-evenly", "stretch",
690         "center", "start", "end", "flex-start", "flex-end", "left", "right",
691         "true", "safe"
692     ],
693     "align-items": [
694         "auto", "stretch",
695         "baseline", "last-baseline",
696         "center", "start", "end", "self-start", "self-end", "flex-start", "flex-end", "left", "right",
697         "true", "safe"
698     ],
699     "align-self": [
700         "auto", "stretch",
701         "baseline", "last-baseline",
702         "center", "start", "end", "self-start", "self-end", "flex-start", "flex-end", "left", "right",
703         "true", "safe"
704     ],
705     "justify-items": [
706         "auto", "stretch",
707         "baseline", "last-baseline",
708         "center", "start", "end", "self-start", "self-end", "flex-start", "flex-end", "left", "right",
709         "true", "safe"
710     ],
711     "justify-self": [
712         "auto", "stretch",
713         "baseline", "last-baseline",
714         "center", "start", "end", "self-start", "self-end", "flex-start", "flex-end", "left", "right",
715         "true", "safe"
716     ],
717     "flex-flow": [
718         "row", "row-reverse", "column", "column-reverse",
719         "nowrap", "wrap", "wrap-reverse"
720     ],
721     "flex": [
722         "none"
723     ],
724     "flex-basis": [
725         "auto"
726     ],
727     "grid": [
728         "none"
729     ],
730     "grid-area": [
731         "auto"
732     ],
733     "grid-auto-columns": [
734         "auto", "max-content", "-webkit-max-content", "min-content", "-webkit-min-content", "minmax()",
735     ],
736     "grid-auto-flow": [
737         "row", "column", "dense"
738     ],
739     "grid-auto-rows": [
740         "auto", "max-content", "-webkit-max-content", "min-content", "-webkit-min-content", "minmax()",
741     ],
742     "grid-column": [
743         "auto"
744     ],
745     "grid-column-start": [
746         "auto"
747     ],
748     "grid-column-end": [
749         "auto"
750     ],
751     "grid-row": [
752         "auto"
753     ],
754     "grid-row-start": [
755         "auto"
756     ],
757     "grid-row-end": [
758         "auto"
759     ],
760     "grid-template": [
761         "none"
762     ],
763     "grid-template-areas": [
764         "none"
765     ],
766     "grid-template-columns": [
767         "none", "auto", "max-content", "-webkit-max-content", "min-content", "-webkit-min-content", "minmax()", "repeat()"
768     ],
769     "grid-template-rows": [
770         "none", "auto", "max-content", "-webkit-max-content", "min-content", "-webkit-min-content", "minmax()", "repeat()"
771     ],
772     "scroll-snap-align": [
773         "none", "start", "center", "end"
774     ],
775     "scroll-snap-type": [
776         "none", "mandatory", "proximity", "x", "y", "inline", "block", "both"
777     ],
778     "-webkit-background-composite": [
779         "clear", "copy", "source-over", "source-in", "source-out", "source-atop", "destination-over", "destination-in", "destination-out", "destination-atop", "xor", "plus-darker", "plus-lighter"
780     ],
781     "-webkit-mask-composite": [
782         "clear", "copy", "source-over", "source-in", "source-out", "source-atop", "destination-over", "destination-in", "destination-out", "destination-atop", "xor", "plus-darker", "plus-lighter"
783     ],
784     "-webkit-text-stroke-width": [
785         "medium", "thick", "thin", "calc()"
786     ],
787     "-webkit-aspect-ratio": [
788         "auto", "from-dimensions", "from-intrinsic", "/"
789     ],
790     "filter": [
791         "none", "grayscale()", "sepia()", "saturate()", "hue-rotate()", "invert()", "opacity()", "brightness()", "contrast()", "blur()", "drop-shadow()", "custom()"
792     ],
793     "-webkit-backdrop-filter": [
794         "none", "grayscale()", "sepia()", "saturate()", "hue-rotate()", "invert()", "opacity()", "brightness()", "contrast()", "blur()", "drop-shadow()", "custom()"
795     ],
796     "-webkit-hyphenate-character": [
797         "none"
798     ],
799     "-webkit-hyphenate-limit-after": [
800         "auto"
801     ],
802     "-webkit-hyphenate-limit-before": [
803         "auto"
804     ],
805     "-webkit-hyphenate-limit-lines": [
806         "no-limit"
807     ],
808     "-webkit-line-grid": [
809         "none"
810     ],
811     "-webkit-locale": [
812         "auto"
813     ],
814     "-webkit-line-box-contain": [
815         "block", "inline", "font", "glyphs", "replaced", "inline-box", "none"
816     ],
817     "font-feature-settings": [
818         "normal"
819     ],
820     "-webkit-animation-trigger": [
821         "auto", "container-scroll()"
822     ],
823
824     // iOS Properties
825     "-webkit-text-size-adjust": [
826         "none", "auto"
827     ],
828
829     // Compatibility (iOS 12): `inherited` didn't exist on `CSSPropertyInfo`
830     "-apple-pay-button-style": [
831         "black", "white", "white-outline",
832     ],
833     "-apple-pay-button-type": [
834         "plain", "buy", "set-up", "donate", "check-out", "book", "subscribe",
835     ],
836     "-webkit-alt": [
837         "attr()",
838     ],
839     "-webkit-animation-direction": [
840         "normal", "alternate", "reverse", "alternate-reverse",
841     ],
842     "-webkit-animation-fill-mode": [
843         "none", "forwards", "backwards", "both",
844     ],
845     "-webkit-animation-iteration-count": [
846         "infinite",
847     ],
848     "-webkit-animation-play-state": [
849         "paused", "running",
850     ],
851     "-webkit-animation-timing-function": [
852         "ease", "linear", "ease-in", "ease-out", "ease-in-out", "step-start", "step-end", "steps()", "cubic-bezier()", "spring()",
853     ],
854     "-webkit-appearance": [
855         "none", "checkbox", "radio", "push-button", "square-button", "button", "button-bevel", "default-button", "inner-spin-button", "listbox", "listitem", "media-controls-background", "media-controls-dark-bar-background", "media-controls-fullscreen-background", "media-controls-light-bar-background", "media-current-time-display", "media-enter-fullscreen-button", "media-exit-fullscreen-button", "media-fullscreen-volume-slider", "media-fullscreen-volume-slider-thumb", "media-mute-button", "media-overlay-play-button", "media-play-button", "media-return-to-realtime-button", "media-rewind-button", "media-seek-back-button", "media-seek-forward-button", "media-slider", "media-sliderthumb", "media-time-remaining-display", "media-toggle-closed-captions-button", "media-volume-slider", "media-volume-slider-container", "media-volume-slider-mute-button", "media-volume-sliderthumb", "menulist", "menulist-button", "menulist-text", "menulist-textfield", "meter", "progress-bar", "progress-bar-value", "slider-horizontal", "slider-vertical", "sliderthumb-horizontal", "sliderthumb-vertical", "caret", "searchfield", "searchfield-decoration", "searchfield-results-decoration", "searchfield-results-button", "searchfield-cancel-button", "snapshotted-plugin-overlay", "textfield", "relevancy-level-indicator", "continuous-capacity-level-indicator", "discrete-capacity-level-indicator", "rating-level-indicator", "image-controls-button", "-apple-pay-button", "textarea", "attachment", "borderless-attachment", "caps-lock-indicator",
856     ],
857     "-webkit-backface-visibility": [
858         "hidden", "visible",
859     ],
860     "-webkit-border-after-width": [
861         "medium", "thick", "thin", "calc()",
862     ],
863     "-webkit-border-before-width": [
864         "medium", "thick", "thin", "calc()",
865     ],
866     "-webkit-border-end-width": [
867         "medium", "thick", "thin", "calc()",
868     ],
869     "-webkit-border-fit": [
870         "border", "lines",
871     ],
872     "-webkit-border-start-width": [
873         "medium", "thick", "thin", "calc()",
874     ],
875     "-webkit-box-align": [
876         "baseline", "center", "stretch", "start", "end",
877     ],
878     "-webkit-box-decoration-break": [
879         "clone", "slice",
880     ],
881     "-webkit-box-direction": [
882         "normal", "reverse",
883     ],
884     "-webkit-box-lines": [
885         "single", "multiple",
886     ],
887     "-webkit-box-orient": [
888         "horizontal", "vertical", "inline-axis", "block-axis",
889     ],
890     "-webkit-box-pack": [
891         "center", "justify", "start", "end",
892     ],
893     "-webkit-column-axis": [
894         "auto", "horizontal", "vertical",
895     ],
896     "-webkit-column-count": [
897         "auto", "calc()",
898     ],
899     "-webkit-column-fill": [
900         "auto", "balance",
901     ],
902     "-webkit-column-gap": [
903         "normal", "calc()",
904     ],
905     "-webkit-column-progression": [
906         "normal", "reverse",
907     ],
908     "-webkit-column-rule-width": [
909         "medium", "thick", "thin", "calc()",
910     ],
911     "-webkit-column-span": [
912         "all", "none", "calc()",
913     ],
914     "-webkit-column-width": [
915         "auto", "calc()",
916     ],
917     "-webkit-cursor-visibility": [
918         "auto", "auto-hide",
919     ],
920     "-webkit-font-kerning": [
921         "none", "normal", "auto",
922     ],
923     "-webkit-font-smoothing": [
924         "none", "auto", "antialiased", "subpixel-antialiased",
925     ],
926     "-webkit-hyphens": [
927         "none", "auto", "manual",
928     ],
929     "-webkit-line-align": [
930         "none", "edges",
931     ],
932     "-webkit-line-break": [
933         "auto", "loose", "normal", "strict", "after-white-space",
934     ],
935     "-webkit-line-snap": [
936         "none", "baseline", "contain",
937     ],
938     "-webkit-logical-height": [
939         "auto", "intrinsic", "min-intrinsic", "min-content", "-webkit-min-content", "max-content", "-webkit-max-content", "-webkit-fill-available", "fit-content", "-webkit-fit-content", "calc()"
940     ],
941     "-webkit-logical-width": [
942         "auto", "intrinsic", "min-intrinsic", "min-content", "-webkit-min-content", "max-content", "-webkit-max-content", "-webkit-fill-available", "fit-content", "-webkit-fit-content", "calc()"
943     ],
944     "-webkit-margin-after-collapse": [
945         "collapse", "separate", "discard",
946     ],
947     "-webkit-margin-before-collapse": [
948         "collapse", "separate", "discard",
949     ],
950     "-webkit-margin-bottom-collapse": [
951         "collapse", "separate", "discard",
952     ],
953     "-webkit-margin-top-collapse": [
954         "collapse", "separate", "discard",
955     ],
956     "-webkit-marquee-direction": [
957         "left", "right", "auto", "reverse", "forwards", "backwards", "ahead", "up", "down",
958     ],
959     "-webkit-marquee-style": [
960         "none", "scroll", "slide", "alternate",
961     ],
962     "-webkit-max-logical-height": [
963         "auto", "intrinsic", "min-intrinsic", "min-content", "-webkit-min-content", "max-content", "-webkit-max-content", "-webkit-fill-available", "fit-content", "-webkit-fit-content", "none", "calc()"
964     ],
965     "-webkit-max-logical-width": [
966         "auto", "intrinsic", "min-intrinsic", "min-content", "-webkit-min-content", "max-content", "-webkit-max-content", "-webkit-fill-available", "fit-content", "-webkit-fit-content", "none", "calc()"
967     ],
968     "-webkit-min-logical-height": [
969         "auto", "intrinsic", "min-intrinsic", "min-content", "-webkit-min-content", "max-content", "-webkit-max-content", "-webkit-fill-available", "fit-content", "-webkit-fit-content", "calc()"
970     ],
971     "-webkit-min-logical-width": [
972         "auto", "intrinsic", "min-intrinsic", "min-content", "-webkit-min-content", "max-content", "-webkit-max-content", "-webkit-fill-available", "fit-content", "-webkit-fit-content", "calc()"
973     ],
974     "-webkit-nbsp-mode": [
975         "normal", "space",
976     ],
977     "-webkit-overflow-scrolling": [
978         "auto", "touch",
979     ],
980     "-webkit-print-color-adjust": [
981         "economy", "exact",
982     ],
983     "-webkit-rtl-ordering": [
984         "logical", "visual",
985     ],
986     "-webkit-ruby-position": [
987         "after", "before", "inter-character",
988     ],
989     "-webkit-text-align-last": [
990         "auto", "start", "end", "left", "right", "center", "justify",
991     ],
992     "-webkit-text-combine": [
993         "none", "horizontal",
994     ],
995     "-webkit-text-decoration-style": [
996         "dotted", "dashed", "solid", "double", "wavy",
997     ],
998     "-webkit-text-justify": [
999         "auto", "none", "inter-word", "inter-ideograph", "inter-cluster", "distribute", "kashida",
1000     ],
1001     "-webkit-text-orientation": [
1002         "sideways", "sideways-right", "upright", "mixed",
1003     ],
1004     "-webkit-text-security": [
1005         "none", "disc", "circle", "square",
1006     ],
1007     "-webkit-text-zoom": [
1008         "normal", "reset",
1009     ],
1010     "-webkit-transform-style": [
1011         "flat", "preserve-3d",
1012     ],
1013     "-webkit-user-drag": [
1014         "none", "auto", "element",
1015     ],
1016     "-webkit-user-modify": [
1017         "read-only", "read-write", "read-write-plaintext-only",
1018     ],
1019     "-webkit-user-select": [
1020         "none", "all", "auto", "text",
1021     ],
1022     "-webkit-writing-mode": [
1023         "lr", "rl", "tb", "lr-tb", "rl-tb", "tb-rl", "horizontal-tb", "vertical-rl", "vertical-lr", "horizontal-bt",
1024     ],
1025     "alignment-baseline": [
1026         "baseline", "middle", "auto", "alphabetic", "before-edge", "after-edge", "central", "text-before-edge", "text-after-edge", "ideographic", "hanging", "mathematical",
1027     ],
1028     "border-block-end-style": [
1029         "none", "hidden", "inset", "groove", "outset", "ridge", "dotted", "dashed", "solid", "double",
1030     ],
1031     "border-block-start-style": [
1032         "none", "hidden", "inset", "groove", "outset", "ridge", "dotted", "dashed", "solid", "double",
1033     ],
1034     "border-bottom-style": [
1035         "none", "hidden", "inset", "groove", "outset", "ridge", "dotted", "dashed", "solid", "double",
1036     ],
1037     "border-collapse": [
1038         "collapse", "separate",
1039     ],
1040     "border-inline-end-style": [
1041         "none", "hidden", "inset", "groove", "outset", "ridge", "dotted", "dashed", "solid", "double",
1042     ],
1043     "border-inline-start-style": [
1044         "none", "hidden", "inset", "groove", "outset", "ridge", "dotted", "dashed", "solid", "double",
1045     ],
1046     "border-left-style": [
1047         "none", "hidden", "inset", "groove", "outset", "ridge", "dotted", "dashed", "solid", "double",
1048     ],
1049     "border-right-style": [
1050         "none", "hidden", "inset", "groove", "outset", "ridge", "dotted", "dashed", "solid", "double",
1051     ],
1052     "border-top-style": [
1053         "none", "hidden", "inset", "groove", "outset", "ridge", "dotted", "dashed", "solid", "double",
1054     ],
1055     "box-sizing": [
1056         "border-box", "content-box",
1057     ],
1058     "break-after": [
1059         "left", "right", "auto", "avoid", "column", "avoid-column", "avoid-page", "page", "recto", "verso",
1060     ],
1061     "break-before": [
1062         "left", "right", "auto", "avoid", "column", "avoid-column", "avoid-page", "page", "recto", "verso",
1063     ],
1064     "break-inside": [
1065         "auto", "avoid", "avoid-column", "avoid-page",
1066     ],
1067     "buffered-rendering": [
1068         "auto", "static", "dynamic",
1069     ],
1070     "caption-side": [
1071         "top", "bottom", "left", "right",
1072     ],
1073     "clear": [
1074         "none", "left", "right", "both",
1075     ],
1076     "clip-rule": [
1077         "nonzero", "evenodd",
1078     ],
1079     "color-interpolation": [
1080         "auto", "sRGB", "linearRGB",
1081     ],
1082     "color-interpolation-filters": [
1083         "auto", "sRGB", "linearRGB",
1084     ],
1085     "color-rendering": [
1086         "auto", "optimizeSpeed", "optimizeQuality",
1087     ],
1088     "column-fill": [
1089         "auto", "balance",
1090     ],
1091     "column-rule-style": [
1092         "none", "hidden", "inset", "groove", "outset", "ridge", "dotted", "dashed", "solid", "double",
1093     ],
1094     "direction": [
1095         "ltr", "rtl",
1096     ],
1097     "display": [
1098         "none", "inline", "block", "list-item", "compact", "inline-block", "table", "inline-table", "table-row-group", "table-header-group", "table-footer-group", "table-row", "table-column-group", "table-column", "table-cell", "table-caption", "-webkit-box", "-webkit-inline-box", "flex", "-webkit-flex", "inline-flex", "-webkit-inline-flex", "contents", "grid", "inline-grid",
1099     ],
1100     "dominant-baseline": [
1101         "middle", "auto", "alphabetic", "central", "text-before-edge", "text-after-edge", "ideographic", "hanging", "mathematical", "use-script", "no-change", "reset-size",
1102     ],
1103     "empty-cells": [
1104         "hide", "show",
1105     ],
1106     "fill-rule": [
1107         "nonzero", "evenodd",
1108     ],
1109     "flex-direction": [
1110         "row", "row-reverse", "column", "column-reverse",
1111     ],
1112     "flex-wrap": [
1113         "nowrap", "wrap-reverse", "wrap",
1114     ],
1115     "float": [
1116         "none", "left", "right",
1117     ],
1118     "font-optical-sizing": [
1119         "none", "auto",
1120     ],
1121     "font-variant-alternates": [
1122         "historical-forms", "normal",
1123     ],
1124     "font-variant-caps": [
1125         "small-caps", "all-small-caps", "petite-caps", "all-petite-caps", "unicase", "titling-caps", "normal",
1126     ],
1127     "font-variant-position": [
1128         "normal", "sub", "super",
1129     ],
1130     "image-rendering": [
1131         "auto", "optimizeSpeed", "optimizeQuality", "crisp-edges", "pixelated", "-webkit-crisp-edges", "-webkit-optimize-contrast",
1132     ],
1133     "image-resolution": [
1134         "from-image", "snap",
1135     ],
1136     "isolation": [
1137         "auto", "isolate",
1138     ],
1139     "line-break": [
1140         "normal", "auto", "loose", "strict", "after-white-space",
1141     ],
1142     "list-style-position": [
1143         "outside", "inside",
1144     ],
1145     "list-style-type": [
1146         "none", "disc", "circle", "square", "decimal", "decimal-leading-zero", "arabic-indic", "binary", "bengali", "cambodian", "khmer", "devanagari", "gujarati", "gurmukhi", "kannada", "lower-hexadecimal", "lao", "malayalam", "mongolian", "myanmar", "octal", "oriya", "persian", "urdu", "telugu", "tibetan", "thai", "upper-hexadecimal", "lower-roman", "upper-roman", "lower-greek", "lower-alpha", "lower-latin", "upper-alpha", "upper-latin", "afar", "ethiopic-halehame-aa-et", "ethiopic-halehame-aa-er", "amharic", "ethiopic-halehame-am-et", "amharic-abegede", "ethiopic-abegede-am-et", "cjk-earthly-branch", "cjk-heavenly-stem", "ethiopic", "ethiopic-halehame-gez", "ethiopic-abegede", "ethiopic-abegede-gez", "hangul-consonant", "hangul", "lower-norwegian", "oromo", "ethiopic-halehame-om-et", "sidama", "ethiopic-halehame-sid-et", "somali", "ethiopic-halehame-so-et", "tigre", "ethiopic-halehame-tig", "tigrinya-er", "ethiopic-halehame-ti-er", "tigrinya-er-abegede", "ethiopic-abegede-ti-er", "tigrinya-et", "ethiopic-halehame-ti-et", "tigrinya-et-abegede", "ethiopic-abegede-ti-et", "upper-greek", "upper-norwegian", "asterisks", "footnotes", "hebrew", "armenian", "lower-armenian", "upper-armenian", "georgian", "cjk-ideographic", "hiragana", "katakana", "hiragana-iroha", "katakana-iroha",
1147     ],
1148     "mask-type": [
1149         "alpha", "luminance",
1150     ],
1151     "max-zoom": [
1152         "auto",
1153     ],
1154     "min-zoom": [
1155         "auto",
1156     ],
1157     "mix-blend-mode": [
1158         "normal", "plus-darker", "plus-lighter", "overlay", "multiply", "screen", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity",
1159     ],
1160     "object-fit": [
1161         "none", "contain", "cover", "fill", "scale-down",
1162     ],
1163     "orientation": [
1164         "auto", "portait", "landscape",
1165     ],
1166     "outline-style": [
1167         "none", "inset", "groove", "outset", "ridge", "dotted", "dashed", "solid", "double", "auto",
1168     ],
1169     "overflow-wrap": [
1170         "normal", "break-word",
1171     ],
1172     "overflow-x": [
1173         "hidden", "auto", "visible", "scroll",
1174     ],
1175     "overflow-y": [
1176         "hidden", "auto", "visible", "scroll", "-webkit-paged-x", "-webkit-paged-y",
1177     ],
1178     "pointer-events": [
1179         "none", "all", "auto", "visible", "visiblePainted", "visibleFill", "visibleStroke", "painted", "fill", "stroke",
1180     ],
1181     "position": [
1182         "absolute", "fixed", "relative", "static", "sticky", "-webkit-sticky",
1183     ],
1184     "resize": [
1185         "none", "auto", "both", "horizontal", "vertical",
1186     ],
1187     "shape-rendering": [
1188         "auto", "optimizeSpeed", "geometricPrecision", "crispedges",
1189     ],
1190     "stroke-linecap": [
1191         "square", "round", "butt",
1192     ],
1193     "stroke-linejoin": [
1194         "round", "miter", "bevel",
1195     ],
1196     "table-layout": [
1197         "auto", "fixed",
1198     ],
1199     "text-align": [
1200         "-webkit-auto", "left", "right", "center", "justify", "-webkit-left", "-webkit-right", "-webkit-center", "-webkit-match-parent", "start", "end",
1201     ],
1202     "text-anchor": [
1203         "middle", "start", "end",
1204     ],
1205     "text-line-through": [
1206         "none", "dotted", "dashed", "solid", "double", "dot-dash", "dot-dot-dash", "wave", "continuous", "skip-white-space",
1207     ],
1208     "text-line-through-mode": [
1209         "continuous", "skip-white-space",
1210     ],
1211     "text-line-through-style": [
1212         "none", "dotted", "dashed", "solid", "double", "dot-dash", "dot-dot-dash", "wave",
1213     ],
1214     "text-line-through-width": [
1215         "normal", "medium", "auto", "thick", "thin",
1216     ],
1217     "text-overflow": [
1218         "clip", "ellipsis",
1219     ],
1220     "text-overline-mode": [
1221         "continuous", "skip-white-space",
1222     ],
1223     "text-overline-style": [
1224         "none", "dotted", "dashed", "solid", "double", "dot-dash", "dot-dot-dash", "wave",
1225     ],
1226     "text-overline-width": [
1227         "normal", "medium", "auto", "thick", "thin", "calc()",
1228     ],
1229     "text-rendering": [
1230         "auto", "optimizeSpeed", "optimizeLegibility", "geometricPrecision",
1231     ],
1232     "text-transform": [
1233         "none", "capitalize", "uppercase", "lowercase",
1234     ],
1235     "text-underline": [
1236         "none", "dotted", "dashed", "solid", "double", "dot-dash", "dot-dot-dash", "wave",
1237     ],
1238     "text-underline-mode": [
1239         "continuous", "skip-white-space",
1240     ],
1241     "text-underline-style": [
1242         "none", "dotted", "dashed", "solid", "double", "dot-dash", "dot-dot-dash", "wave",
1243     ],
1244     "text-underline-width": [
1245         "normal", "medium", "auto", "thick", "thin", "calc()",
1246     ],
1247     "transform-style": [
1248         "flat", "preserve-3d",
1249     ],
1250     "unicode-bidi": [
1251         "normal", "bidi-override", "embed", "isolate-override", "plaintext", "-webkit-isolate", "-webkit-isolate-override", "-webkit-plaintext", "isolate",
1252     ],
1253     "user-zoom": [
1254         "zoom", "fixed",
1255     ],
1256     "vector-effect": [
1257         "none",
1258     ],
1259     "visibility": [
1260         "hidden", "visible", "collapse",
1261     ],
1262     "white-space": [
1263         "normal", "nowrap", "pre", "pre-line", "pre-wrap",
1264     ],
1265     "word-break": [
1266         "normal", "break-all", "keep-all", "break-word",
1267     ],
1268     "word-wrap": [
1269         "normal", "break-word",
1270     ],
1271     "writing-mode": [
1272         "lr", "rl", "tb", "lr-tb", "rl-tb", "tb-rl", "horizontal-tb", "vertical-rl", "vertical-lr", "horizontal-bt",
1273     ],
1274 };