// MDN reference: https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes export const nativePseudoClasses = [ 'active', 'any', 'any-link', 'checked', 'default', 'defined', 'dir', 'disabled', 'empty', 'enabled', 'first', 'first-child', 'first-of-type', 'fullscreen', 'focus', 'focus-within', 'focus-visible', 'hover', 'indeterminate', 'in-range', 'invalid', 'lang', 'last-child', 'last-of-type', 'left', 'link', 'not', 'nth-child', 'nth-last-child', 'nth-last-of-type', 'nth-of-type', 'only-child', 'only-of-type', 'optional', 'out-of-range', 'placeholder-shown', 'read-only', 'read-write', 'required', 'right', 'root', 'scope', 'target', 'valid', 'visited', ]; export const nativePseudoElements = [ 'after', 'backdrop', 'before', 'cue', 'first-letter', 'first-line', 'grammar-error', 'marker', 'placeholder', 'selection', 'slotted', 'spelling-error', ]; export const reservedKeyFrames = [ 'none', 'inherited', 'initial', 'unset', /* single-timing-function */ 'linear', 'ease', 'ease-in', 'ease-in-out', 'ease-out', 'step-start', 'step-end', 'start', 'end', /* single-animation-iteration-count */ 'infinite', /* single-animation-direction */ 'normal', 'reverse', 'alternate', 'alternate-reverse', /* single-animation-fill-mode */ 'forwards', 'backwards', 'both', /* single-animation-play-state */ 'running', 'paused', ]; export const nativeFunctionsDic = { attr: true, blur: true, brightness: true, calc: true, circle: true, constant: true, contrast: true, counter: true, counters: true, 'cubic-bezier': true, 'drop-shadow': true, ellipse: true, env: true, format: true, grayscale: true, hsl: true, hsla: true, 'hue-rotate': true, hwb: true, image: true, inset: true, invert: true, 'linear-gradient': true, local: true, matrix: true, matrix3d: true, minmax: true, opacity: true, paint: true, path: true, perspective: true, polygon: true, 'radial-gradient': true, rect: true, repeat: true, 'repeating-linear-gradient': true, 'repeating-radial-gradient': true, rgb: true, rgba: true, rotate: true, rotate3d: true, rotateX: true, rotateY: true, rotateZ: true, saturate: true, sepia: true, scale: true, scale3d: true, scaleX: true, scaleY: true, scaleZ: true, skew: true, skewX: true, skewY: true, symbols: true, translate: true, translate3d: true, translateX: true, translateY: true, translateZ: true, url: true, var: true, }; export type nativeFunctions = keyof typeof nativeFunctionsDic; export function isCssNativeFunction(name: string): name is nativeFunctions { return nativeFunctionsDic[name as nativeFunctions]; }