| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- import uniteSets from '../utils/uniteSets.mjs';
- /** @type {ReadonlySet<string>} */
- const deprecatedMediaFeatureNames = new Set([
- 'device-aspect-ratio',
- 'device-height',
- 'device-width',
- ]);
- /** @type {ReadonlySet<string>} */
- export const rangeTypeMediaFeatureNames = uniteSets(deprecatedMediaFeatureNames, [
- 'aspect-ratio',
- 'color',
- 'color-index',
- 'height',
- 'horizontal-viewport-segments',
- 'monochrome',
- 'resolution',
- 'vertical-viewport-segments',
- 'width',
- ]);
- /** @type {ReadonlySet<string>} */
- export const rangeTypeMediaFeatureNamesWithMinMaxPrefix = new Set(
- [...rangeTypeMediaFeatureNames].flatMap((name) => {
- return [`min-${name}`, `max-${name}`];
- }),
- );
- /** @type {ReadonlySet<string>} */
- const discreteTypeMediaFeatureNames = new Set([
- 'any-hover',
- 'any-pointer',
- 'color-gamut',
- 'display-mode',
- 'dynamic-range',
- 'environment-blending',
- 'forced-colors',
- 'grid',
- 'hover',
- 'inverted-colors',
- 'light-level',
- 'nav-controls',
- 'orientation',
- 'overflow-block',
- 'overflow-inline',
- 'pointer',
- 'prefers-color-scheme',
- 'prefers-contrast',
- 'prefers-reduced-data',
- 'prefers-reduced-motion',
- 'prefers-reduced-transparency',
- 'scan',
- 'scripting',
- 'update',
- 'video-color-gamut',
- 'video-dynamic-range',
- ]);
- /** @type {ReadonlySet<string>} */
- export const mediaFeatureNames = uniteSets(
- deprecatedMediaFeatureNames,
- rangeTypeMediaFeatureNames,
- rangeTypeMediaFeatureNamesWithMinMaxPrefix,
- discreteTypeMediaFeatureNames,
- );
- /** @type {ReadonlyMap<string, ReadonlySet<string>>} */
- export const mediaFeatureNameAllowedValueKeywords = new Map([
- ['any-hover', new Set(['none', 'hover'])],
- ['any-pointer', new Set(['none', 'coarse', 'fine'])],
- ['color-gamut', new Set(['srgb', 'p3', 'rec2020'])],
- [
- 'display-mode',
- new Set(['fullscreen', 'standalone', 'minimal-ui', 'browser', 'picture-in-picture']),
- ],
- ['dynamic-range', new Set(['standard', 'high'])],
- ['environment-blending', new Set(['opaque', 'additive', 'subtractive'])],
- ['forced-colors', new Set(['none', 'active'])],
- ['hover', new Set(['none', 'hover'])],
- ['inverted-colors', new Set(['none', 'inverted'])],
- ['nav-controls', new Set(['none', 'back'])],
- ['orientation', new Set(['portrait', 'landscape'])],
- ['overflow-block', new Set(['none', 'scroll', 'paged'])],
- ['overflow-inline', new Set(['none', 'scroll'])],
- ['pointer', new Set(['none', 'coarse', 'fine'])],
- ['prefers-color-scheme', new Set(['light', 'dark'])],
- ['prefers-contrast', new Set(['no-preference', 'less', 'more', 'custom'])],
- ['prefers-reduced-data', new Set(['no-preference', 'reduce'])],
- ['prefers-reduced-motion', new Set(['no-preference', 'reduce'])],
- ['prefers-reduced-transparency', new Set(['no-preference', 'reduce'])],
- ['resolution', new Set(['infinite'])],
- ['scan', new Set(['interlace', 'progressive'])],
- ['scripting', new Set(['none', 'initial-only', 'enabled'])],
- ['update', new Set(['none', 'slow', 'fast'])],
- ['video-color-gamut', new Set(['srgb', 'p3', 'rec2020'])],
- ['video-dynamic-range', new Set(['standard', 'high'])],
- ]);
- /** @type {ReadonlyMap<string, ReadonlySet<string>>} */
- export const mediaFeatureNameAllowedValueTypes = new Map([
- ['aspect-ratio', new Set(['ratio'])],
- ['color', new Set(['integer'])],
- ['color-index', new Set(['integer'])],
- ['device-aspect-ratio', new Set(['ratio'])],
- ['device-height', new Set(['length'])],
- ['device-width', new Set(['length'])],
- ['grid', new Set(['mq-boolean'])],
- ['height', new Set(['length'])],
- ['horizontal-viewport-segments', new Set(['integer'])],
- ['monochrome', new Set(['integer'])],
- ['resolution', new Set(['resolution'])],
- ['vertical-viewport-segments', new Set(['integer'])],
- ['width', new Set(['length'])],
- ]);
|